(57)【要約】【課題】データをすばやく送信するかまたはコンパクトに格納しなければならない場合に好適なマークアップ言語文書を符号化するための方法およびシステムを提供すること。【解決手段】マークアップ言語文書の固定部分を除去し、変化する部分の発生頻度を使用してマークアップ言語文書を符号化する。【選択図】　　　　図３
2004032774.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語文書を符号化する方法であって、１ブロックのマークアップ言語は複数のエレメントを有し、
どのような頻度で前記マークアップ言語文書内にそれらが生じるかについて、前記複数のエレメントのどれが一定であるか、およびどのような頻度で前記マークアップ言語文書内にそれらが現れるかについておよびどのエレメントが可変であるかを判断することと、
どのような頻度で前記マークアップ言語文書内にそれらが現れるかについて可変であるエレメントを使用し、およびどのような頻度で前記マークアップ言語文書内にそれらが生じるかについて一定であるエレメントを使用しないで、前記マークアップ言語文書の構造を表すことと
を含むことを特徴とする方法。
【請求項２】
請求項１の方法を実施するためのコンピュータ実行可能命令をそこに格納したことを特徴とするコンピュータ読取り可能媒体。
【請求項３】
前記判断するステップは、テンプレートに従って前記マークアップ言語文書をパーズすることを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数のエレメントのそれぞれは、前記エレメントに関連付けられた１組のマークアップ言語タグによって表され、前記方法はテンプレートを参照することをさらに含み、前記テンプレートは、前記複数のエレメントの少なくとも１つについて、前記エレメントが前記マークアップ言語文書内で生じるはずの正確な回数を示し、前記表すステップは、前記マークアップ言語文書から前記少なくとも１つのエレメントに関連付けられた前記１組のマークアップ言語タグを除去することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
テンプレートを参照することをさらに含み、前記テンプレートは、前記複数のエレメントの第１のエレメントについて、前記第１のエレメントが前記複数のエレメントの第２のエレメント内で生じる正確な回数を示すことを特徴とする請求項１に記載の方法。
【請求項６】
前記複数のエレメントのそれぞれは、前記エレメントに関連付けられた１組のマークアップ言語タグによって表され、前記方法はテンプレートを参照することをさらに含み、前記テンプレートは、前記複数のエレメントの第１について、前記第１のエレメントは前記マークアップ言語文書の第２のエレメント内で１回生じなければならないかまたは全く生じないかでなければならないことを示し、前記表すステップは、
前記マークアップ言語文書から前記第１のエレメントに関連付けられた前記１組のマークアップ言語タグを除去することと、
前記第１のエレメントは前記第２のエレメント内で１回生じることを示すためのフラグを作成することと
を含むことを特徴とする請求項１に記載の方法。
【請求項７】
テンプレートを参照することをさらに含み、前記テンプレートは、前記複数のエレメントの少なくとも１つについて、前記エレメントは前記マークアップ言語文書内で１回生じなければならないかまたは全く生じないかでなければならないことを示すことを特徴とする請求項１に記載の方法。
【請求項８】
前記複数のエレメントのそれぞれは、前記エレメントに関連付けられた１組のマークアップ言語タグによって表され、前記方法はテンプレートを参照することをさらに含み、前記テンプレートは、前記複数の第１のエレメントについて、前記第１のエレメントが前記マークアップ言語文書の第２のエレメント内で可変回数生じることを示し、前記表すステップは、
前記マークアップ言語文書から前記第１のエレメントに関連付けられた前記１組のマークアップ言語タグを除去することと、
前記第１のエレメントが前記第２のエレメント内で何回生じるかを示す整数を定義することと
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記複数のエレメントのうちの１つのエレメントが前記マークアップ言語文書内で生じる回数を示す少なくとも１つの整数を有するファイルを作成することと、
前記ファイルを圧縮することと、
前記ファイルを受信側デバイスに送信することと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記マークアップ言語文書は、エクステンシブルマークアップ言語文書であることを特徴とする請求項１に記載の方法。
【請求項１１】
前記テンプレートは、文書種別定義文書であることを特徴とする請求項４に記載の方法。
【請求項１２】
前記テンプレートは、エクステンシブルマークアップ言語スキーマ文書であることを特徴とする請求項４に記載の方法。
【請求項１３】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のデータアイテムのそれぞれは各データタイプを有しおよび１組のタグによって境界付けられ、前記１組のそれぞれのタグはタグ名を有し、前記複数のエレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、同様のデータタイプを有するかまたは同じ名を有するタグによって境界付けられているデータアイテムをグルーピングすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のエレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、
前記複数のデータアイテムを複数のグループに分割することと、
前記複数のグループの少なくともいくつかについて、異なる圧縮ツールを使用してそれぞれのグループの前記データアイテムを圧縮することと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１５】
１ブロックのマークアップ言語テキストを符号化する方法であって、前記ブロックは複数のエレメントを有し、それぞれのエレメントは前記エレメント内に含まれるデータのタイプを示す１組のタグによって境界付けられ、
テンプレートを参照して、前記１ブロックのマークアップ言語テキストの前記複数のエレメントのどれが固定数の発生を持つかおよび前記複数のエレメントのどれが可変数の発生を持つかを判断することと、
１コンパクトブロックのテキストで前記１ブロックのマークアップ言語テキストの構造を表すこととを含み、
前記コンパクトブロックのテキストは、可変数の発生を持つ前記エレメントの発生数を表現し、
前記コンパクトブロックのテキストは、固定数の発生を持つ前記エレメントに関する情報を有さない
ことを特徴とする方法。
【請求項１６】
請求項１５の方法を実施するためのコンピュータ実行可能命令をそこに格納したことを特徴とするコンピュータ読取り可能媒体。
【請求項１７】
前記複数のエレメントのそれぞれは前記１組のタグによって境界付けられているデータアイテムを有し、
前記データアイテムから前記１ブロックのマークアップ言語テキストの前記タグを分離することと、
互いに関連するデータアイテムをグルーピングすることと、
前記コンパクトブロックのテキストを圧縮することと、
前記グルーピングされたデータアイテムを圧縮することと、
前記圧縮するステップの後に、前記コンパクトブロックのテキストを有する少なくとも１つのセクションおよび前記グルーピングされたデータアイテムを有する少なくとも１つのセクションを有するメッセージを作成することと
をさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記グルーピングするステップは、それらがどのようにコンピュータメモリ内に格納されるかに従ってデータアイテムをグルーピングすることを含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記作成されたメッセージは、前記テンプレートの識別情報をさらに有することを特徴とする請求項１７に記載の方法。
【請求項２０】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のデータアイテムのそれぞれは各データタイプを有しおよび１組のタグによって境界付けられ、前記１組のそれぞれのタグはタグ名を有し、前記複数のエレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、同様のデータタイプを有するかまたは同じ名を有するタグによって境界付けられているデータアイテムをグルーピングすることをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２１】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のエレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、
前記複数のデータアイテムを複数のグループに分割することと、
前記複数のグループの少なくともいくつかについて、異なる圧縮ツールを使用してそれぞれのグループの前記データアイテムを圧縮することと
をさらに含むことを特徴とする請求項１５に記載の方法。
【請求項２２】
送信側コンピュータから受信側コンピュータに１ブロックのマークアップ言語を転送するための方法であって、前記１ブロックのマークアップ言語は特定のタイプであり、
前記特定のタイプに関連付けられたテンプレートを参照することを含み、
前記テンプレートは固定エレメントを定義し、これは前記１ブロックのマークアップ言語内の固定数のインスタンス内に常に現れ、
前記テンプレートは可変エレメントを定義し、これは前記１ブロックのマークアップ言語内に現れる場合も現れない場合もあり、または前記１ブロックのマークアップ言語内の可変数のインスタンス内に現れる場合があり、
さらに、前記１ブロックのマークアップ言語から固定エレメントに関連付けられたすべてのタグを除去する
ことを含むことを特徴とする方法。
【請求項２３】
請求項２２に記載の方法を実施するためのコンピュータ実行可能命令をそこに格納したことを特徴とするコンピュータ読取り可能媒体。
【請求項２４】
前記参照するおよび除去するステップは、前記送信側コンピュータによって実施され、前記送信側コンピュータおよび前記受信側コンピュータはそれぞれ、前記テンプレートのコピーを有し、
前記送信側コンピュータは、前記１ブロックのマークアップ言語を前記可変エレメントのインスタンスの数を示す１つまたは複数の数値に凝縮することと、
前記送信側コンピュータは、前記数値を前記受信側コンピュータに送信することと、
前記受信側コンピュータは、前記テンプレートに基づいて前記固定エレメントの前記タグを記入し、前記送信側コンピュータによって送信された前記数値に基づいて前記可変エレメントの前記タグを記入することにより、前記１ブロックのマークアップ言語を再構築することと
をさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２５】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のデータアイテムのそれぞれは各データタイプを有しおよび１組のタグによって境界付けられ、前記１組のそれぞれのタグはタグ名を有し、前記固定エレメントのそれぞれおよび前記可変エレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、同様のデータタイプを有するかまたは同じ名を有するタグによって境界付けられているデータアイテムをグルーピングすることをさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２６】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数の固定エレメントのそれぞれおよび前記複数の可変エレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、
前記複数のデータアイテムを複数のグループに分割することと、
前記複数のグループの少なくともいくつかについて、異なる圧縮ツールを使用してそれぞれのグループの前記データアイテムを圧縮することと
をさらに含むことを特徴とする請求項２２に記載の方法。
【請求項２７】
マークアップ言語文書を転送するためのシステムであって、前記マークアップ言語は複数のエレメントを有し、それぞれのエレメントは１組のタグおよび前記１組のタグによって境界付けられた少なくとも１つのデータアイテムを有し、
どのエレメントが前記マークアップ言語文書内に固定回数現れるかを判断するための手段と、
固定回数現れると判断されたエレメントに対応する前記タグを除去するための手段と、
前記マークアップ言語文書のどのエレメントが前記マークアップ言語文書内に可変回数現れるかを判断するための手段と、
前記マークアップ言語文書内に可変回数現れると判断されたエレメントに関する情報を有するが、前記マークアップ言語文書内に固定回数現れると判断されたエレメントに関する情報を有さないメッセージを作成するための手段とを備える送信側デバイスと、
前記メッセージを受信するための手段と、
前記メッセージに基づいて前記マークアップ言語文書を再作成するための手段とを備える受信側デバイスと
を備えたことを特徴とするシステム。
【請求項２８】
どのエレメントが前記マークアップ言語文書内に固定回数現れるかを判断するための前記手段は、テンプレートを参照するパーサを実行するプロセッサであることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記テンプレートは、文書種別定義文書であることを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記テンプレートは、エクステンシブルマークアップ言語スキーマであることを特徴とする請求項２８に記載のシステム。
【請求項３１】
前記再作成する手段は、テンプレートを参照するパーサを実行するプロセッサであることを特徴とする請求項２７に記載のシステム。
【請求項３２】
前記テンプレートは、文書種別定義文書であることを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記テンプレートは、エクステンシブルマークアップ言語スキーマであることを特徴とする請求項３１に記載のシステム。
【請求項３４】
前記マークアップ言語文書は複数のデータアイテムを有し、前記複数のエレメントのそれぞれは前記複数のデータアイテムの少なくとも１つを有し、同じタイプまたは同様のタイプのデータアイテムがたがいにまとまるように前記複数のデータアイテムを再グルーピングするための手段をさらに備えたことを特徴とする請求項２７に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にデータ圧縮技術に関し、より詳細には、マークアップ言語文書をコンパクトに符号化するための技術に関する。
【０００２】
【従来の技術】
ハイパーテキストマークアップ言語（ＨＴＭＬ）やエクステンシブル（拡張可能）マークアップ言語（ＸＭＬ）などのマークアップ言語が、ここ数年各方面で使用されるようになってきている。マークアップ言語により、ソフトウェア開発者が、テキスト、ロゴ、ピクチャ、サウンドなどのさまざまなデータアイテムを含む文書を作成できるようになり、次いで、これらはウェブブラウザなどのさまざまなタイプのプログラムによってレンダリングできる。マークアップ言語は、タグと呼ばれる特別な表記法を使用して、データアイテムを識別し、どのようにデータアイテムが処理されるのかを示す。これらのタグによりまた、パーサやウェブブラウザなどのコンピュータプログラムが、文書からデータをサーチし、分類し、識別し、抽出できる。
【０００３】
【発明が解決しようとする課題】
マークアップ言語によりデータの使用および交換がより容易になりおよびよりユーザ構成可能になるが、データにタグを追加することにより実質的にデータファイルのサイズが増加する。このことにより、ファイルサイズが増加しまたは「肥大化」が無視できない程になり、データをすばやく送信するかまたはコンパクトに格納しなければならない場合に問題が生じる。
【０００４】
【課題を解決するための手段】
上記に従って、マークアップ言語文書を符号化するための方法およびシステムが提供される。本発明によれば、マークアップ言語文書の構造は、構造の固定である部分を除去すること、どのエレメントが生じるか、エレメントが生じるか否か、またはあるエレメントがどのような頻度で生じるかについて構造の可変部分を表現することによって凝縮される。このことには、マークアップ言語文書の構造をそのコンテントから分離することと、構造およびコンテントを異なる方法で扱うこととを必要とすることがある。本発明の一実施形態に従って１ブロックのマークアップ言語テキストを符号化するためには、テンプレートを使用して、ブロックのエレメントのどれが固定数の発生を持ちおよびエレメントのどれが可変数の発生を持つかを判断する。ブロックの構造は、可変数の発生を持つエレメントの発生数を表現するが、固定数の発生を持つエレメントに関する情報を有さない１コンパクトブロックのテキストで表される。本発明のさまざまな実施形態においては、マークアップ言語文書のコンテントは、それ自体、同様のまたは関連するデータアイテムをまとめてグルーピングすることによって圧縮される。
【０００５】
本発明のさらなる特徴および利点が、添付図を参照しながら記述する実施形態の例についての以下の詳細な説明から自明となろう。
【０００６】
頭記の特許請求の範囲に本発明の特徴を詳細に記述したが、本発明は、以下の詳細な説明を添付図面と合わせて参照することにより最も理解できるであろう。
【０００７】
【発明の実施の形態】
本発明のさまざまな実施形態を説明するのに先立って、本発明のさまざまな実施形態が実践できるコンピュータおよびネットワーキング環境についてまず説明する。必須ではないが、本発明は、コンピュータによって実行されるプログラムモジュールによって実施できる。一般に、プログラムモジュールには、特定のタスクを実施するかまたは特定の抽象データタイプを実施する、ルーチン、オブジェクト、構成要素、データ構造などが含まれる。本明細書で使用する場合、用語「プログラム」とは、単一のプログラムモジュールまたは協力し合って作用する複数のプログラムモジュールを意味することがある。本発明は、さまざまなタイプのコンピュータ上で実施できる。したがって、本明細書で使用する場合、用語「デバイス」および「コンピュータ」には、パーソナルコンピュータ（ＰＣ）、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのプログラマブル大衆消費電子製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明はまた、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散型コンピューティング環境内で用いることもできる。分散型コンピューティング環境においては、モジュールをローカルおよびリモートの記憶装置デバイスの両方に置くことができる。
【０００８】
次に、本発明が使用できるネットワークされた環境の一例を、図１を参照しながら説明する。ネットワークの例には、雲の形で表したネットワーク１０２を介して互いに通信するいくつかのコンピュータ１００が含まれる。ネットワーク１０２には、ルータ、ゲートウェイ、ハブなどの多くの周知の構成要素を含むことができ、およびそれにより、コンピュータ１００がワイヤードおよび／またはワイヤレス媒体を介して通信できるようになる。
【０００９】
図２を参照すると、本明細書で説明するシステムが実施できるコンピュータのための基本構成の一例が示されている。その最も基本の構成において、コンピュータ１００は、一般に、少なくとも１つの処理ユニット１１２およびメモリ１１４を備える。コンピュータ１００の正確な構成およびタイプにより、メモリ１１４は、（ＲＡＭなどの）揮発性、（ＲＯＭやフラッシュメモリなどの）不揮発性、またはその２つのいくつかの組み合わせであり得る。この最も基本の構成は、図２に線１０６で例示されている。さらに、コンピュータはまた、追加の特徴／機能も有することができる。たとえば、コンピュータ１００にはまた、磁気または光学ディスクあるいはテープを含む（ただし、これらに限定されることはない）追加の記憶装置（取り外し可能および／または取り外し不可能）も備えることができる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどのような方法または技術においても実施される揮発性および不揮発性、取り外し可能および取り外し不可能媒体が含まれる。コンピュータ記憶媒体には、所望の情報を格納するために使用できおよびコンピュータ１００からアクセスできる、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ　ＲＯＭ、ディジタルビデオディスク（ＤＶＤ）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置デバイス、または他のどのような媒体をも含むがこれらに限定されることはない。このようなコンピュータ記憶媒体のどれもが、コンピュータ１００の一部分であり得る。
【００１０】
コンピュータ１００はまた、デバイスを他のデバイスと通信できるようにする通信接続も有することができる。通信接続は通信媒体の一例である。通信媒体は、一般に、搬送波や他のトランスポートメカニズムなどの変調データ信号内に、コンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを包含し、どのような情報配信媒体をも含む。例示として、通信媒体には、ワイヤードネットワークや直接ワイヤード接続などのワイヤード媒体と、音響、ＲＦ、赤外線、他のワイヤレス媒体などのワイヤレス媒体とが含まれるがこれらに限定されることはない。本明細書で使用する場合、用語、コンピュータ読取り可能媒体は、記憶媒体および通信媒体の両方を含む。
【００１１】
コンピュータ１００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイスも備えることができる。ディスプレイ１１８、スピーカ、プリンタなどの出力デバイスも備えることができる。これらのすべてのデバイスが当技術分野で周知であり、ここで詳しく説明する必要はない。
【００１２】
本明細書で使用する場合、用語「マークアップ言語」とは、文書の構造を説明するコンピュータ翻訳可能言語を指す。マークアップ言語の例には、標準汎用マークアップ言語（ＳＧＭＬ）と、ハイパーテキストマークアップ言語（ＨＴＭＬ）、エクステンシブルマークアップ言語（ＸＭＬ）、エクステンシブルスタイルシート言語（ＸＳＬ）を含むその変形形態のすべてとが含まれる。さらに、用語「マークアップ言語文書」とは、マークアップ言語を含むどのような文書をも指す。最後に、語句「ブロックのマークアップ言語」は、マークアップ言語文書またはその一部分を示すために使用される。
【００１３】
本発明は、一般に、マークアップ言語文書を符号化するための方法およびシステムを対象とする。本発明によれば、マークアップ言語文書の構造は、構造の固定である部分を除去すること、どのエレメントが生じるか、エレメントが生じるか否か、またはあるエレメントがどのような頻度で生じるかについて構造の可変部分を表現することによって凝縮される。本発明のさまざまな実施形態においては、マークアップ言語文書のサイズをさらに減少するための他のステップも採ることができる。これらのステップには、文書のデータアイテムをその構造から分離することと、データアイテムを関連する意味またはデータタイプでグルーピングすることと、その固有のフォーマットでデータアイテムを符号化することとのうちの１つまたは複数が含まれる。
【００１４】
本発明のさまざまな実施形態に従って、マークアップ言語文書の送信側とマークアップ言語文書の受信側の両方が、文書種別のためのデフォルト構造を定義する共通テンプレートを所有する。このデフォルト構造は、固定エレメント、すなわち、そのタイプのマークアップ言語文書内の固定数の発生内に常に存在するエレメントを有する。デフォルト構造はまた、可変エレメント、すなわち、そのタイプのマークアップ言語文書内に存在する場合もしない場合もあり、あるいは常に存在するが、どのような発生数も有することができるエレメントも有する。
【００１５】
たとえば、表１に示されるマークアップ言語文書は、１組のブックを説明する「ブックス」エレメントを説明する。
【００１６】
【表１】
2004032774.tif 000003
【００１７】
表１の文書は、エクステンシブルマークアップ言語（ＸＭＬ）を使用して書き込まれている。「ブックス」エレメント内には「ブック」エレメントがあり、それぞれがブックを説明する。それぞれの「ブック」エレメントが、「タイトル」エレメント、「著者」エレメント、「価格」エレメント、および任意に、「ＩＳＢＮ」エレメントを有する。「タイトル」エレメントは、ブックのタイトルを有する。「著者」エレメントは、ブックの著者のすべてを説明する。「著者」エレメントは、１つまたは複数の「著者」エレメントを有する。それぞれの「著者」エレメントは、「ｆｉｒｓｔＮａｍｅ」エレメントおよび「ｌａｓｔＮａｍｅ」エレメントを有する。「ｆｉｒｓｔＮａｍｅ」エレメントは著者の下の名前を有し、「ｌａｓｔＮａｍｅ」エレメントは著者の苗字を有する。表１の文書のそれぞれのエレメントが、１対のタグによって境界付けられている。たとえば、表１の最初の「タイトル」エレメントは、＜ｔｉｔｌｅ＞Ｗｉｒｅｌｅｓｓ　＆　Ｎｅｔｗｏｒｋｉｎｇ−Ｉ＜／ｔｉｔｌｅ＞である。エレメント内に含まれるデータは、Ｗｉｒｅｌｅｓｓ　＆　Ｎｅｔｗｏｒｋｉｎｇ−Ｉである。エレメントは、タグ＜ｔｉｔｌｅ＞および＜／ｔｉｔｌｅ＞によって境界付けられている。全体として、表１のマークアップ言語文書のタグのすべてが、文書の構造を構成する。
【００１８】
表２を参照しながら、本発明の一実施形態に従って表１のマークアップ言語文書のために使用できるテンプレートの一例を説明する。テンプレートは、ＸＭＬ文書種別定義（ＤＴＤ）としてフォーマットされる。
【００１９】
【表２】
2004032774.tif 000004
【００２０】
代替形態として、テンプレートは、表３に示されるようにスキーマとしてフォーマットされる。
【００２１】
【表３】
2004032774.tif 000005
【００２２】
テンプレートをフォーマットするための可能な方法は他にも多くある。たとえば、本明細書にした以外の他のマークアップ言語またはプログラミング言語も使用できる。
【００２３】
次に、表２のＤＴＤ文書のラベルおよび用語のいくつかの意味について説明する。ラベル「＃ＰＣＤＡＴＡ」とは、パーズされた文字データ（たとえば、普通テキスト）を表す。記号、？、＋、＊は、以下のように使用される。
「？」は、現れないかまたは１回現れるエレメントを表す。
「＋」は、１回または複数回現れるエレメントを表す。
「＊」は、何回も現れることができるかまたは全く現れないエレメントを表す。
【００２４】
上述の記号の１つを有する表２のテンプレートのこれらのエレメントは、可変エレメントであり、つまりこのタイプのＸＭＬ文書の構造はこれらのエレメントについて変化することがあり、記号によって規定された方法で変化することを意味する。テンプレート内で定義された他のエレメントのすべてが固定エレメントであり、つまりこのタイプのＸＭＬ文書の構造は、正確にこれらのエレメントについてテンプレート内で指定される通りであることを意味する。たとえば、表２のテンプレートに従って、それぞれのブックエレメントには、それぞれタイトルエレメントおよび価格エレメントの正確に１つのインスタンスが含まれる。しかし、ＩＳＢＮエレメントは、１回現れるかまたは全く現れないことがある。同様に、「著者」エレメントには、「著者」エレメントの１つまたは複数のインスタンスが含まれる。
【００２５】
本発明の一実施形態に従って、受信側にマークアップ言語文書を送信することを望む送信側が、固定であるエレメント、すなわち、常に文書内にあり固定数のインスタンス内に常に現れると送信側および受信側の両方が認識するエレメントに関連付けられたタグのすべてを除去する。さらに、送信側は、可変エレメントに関連付けられたタグを送信する必要がなく、それぞれの可変エレメントのうちのいくつのインスタンスが送信されるマークアップ言語文書内に存在するかを示す情報を送信すれば良いだけである。たとえば、送信側および受信側がそれぞれ、表２のＤＴＤ文書のコピーを有し、それぞれが、送信されるべきマークアップ言語文書が表２のＤＴＤ文書に準拠していることを理解すると、表１のマークアップ言語文書の全構造（つまり、タグ）を、１（ｉｎｔｅｇｅｒ）１（ｓｉｎｇｌｅ　ｂｉｔ）、２（ｉｎｔｅｇｅｒ）　０（ｓｉｎｇｌｅ　ｂｉｔ）として表すことができる。ここで、それぞれの対の第１の数は、「著者」エレメントの発生数であり、第２の数は、「ＩＳＢＮ」エレメントがある場合は高く設定され、ない場合は低く設定される単一のビットである。
【００２６】
本発明のいくつかの実施形態に従って、マークアップ言語文書のデータアイテムおよびマークアップ言語文書の構造が互いに分離される。データアイテムを構造から分離することにより、それぞれを別個に処理することができる。構造（たとえば、タグ）を処理することには、上述のテンプレートを使用するなどの技術が必要である。データアイテム（たとえば、タグの対間のテキスト）処理することには、データアイテムを関連する意味またはタイプでグルーピングすることおよびその固有のフォーマットでデータアイテムを符号化することなどの技術が必要である。
【００２７】
さらに本発明を例示するために、次に、表１のマークアップ言語文書がどのように本発明の一実施形態に従って処理されるかについての一例を説明する。まず第１に、表４に示されるように、文書の構造（この場合、タグ）は、コンテント（この場合、タグ間のデータアイテム）から分離される。
【００２８】
【表４】
2004032774.tif 000006
【００２９】
次に、同じタイプまたは同様のタイプのデータアイテムが、表５に示されるようにグルーピングされる。
【００３０】
【表５】
2004032774.tif 000007
【００３１】
この例では、タイトルがグルーピングされ、著者の下の名前がグルーピングされ、著者の苗字がグルーピングされ、価格がグルーピングされることに留意されたい。この方法で同様のデータアイテムをグルーピングすることにより、データアイテムをより効率的に圧縮できる。このことの１つの理由は、データアイテムがタイプによってグルーピングされる場合は、重複するデータアイテムが互いに隣接している可能性が高いことにある。たとえば、ピーターＫ（Ｐｅｔｅｒ　Ｋ．）が、表１のマークアップ言語文書で説明されているブックの両方の著者であるとする。同様のデータタイプをグルーピングした後（表５）、データアイテム「ピーター」は連続して２回生じる。ＧＺｉｐなどの多くの既存圧縮ツールが、単に重複を除去しそれらを何回それらが生じるかを表す数で置換することにより、互いに隣接する繰り返される項を利用できる。さらに、データアイテムは、それらの固有のフォーマットで符号化される。たとえば、浮動小数点の数は、たとえマークアップ言語文書で文字として扱われていたとしても、浮動小数点の数として符号化される。同様に、整数は整数として符号化され、文字は文字として符号化される。他も同様である。
【００３２】
次いでマークアップ言語文書の構造は、上述したように、テンプレートに従って処理される。固定であるこれらのタグのすべてが、これは常に固定数のインスタンス内の文書内にあるが、除去される。可変であるタグのすべてが、それらが表すエレメントの発生数によって表される。
【００３３】
【表６】
2004032774.tif 000008
【００３４】
本発明のさまざまな実施形態に従って、マークアップ言語文書の構造およびマークアップ言語文書のコンテントが、別個に圧縮され、異なる圧縮スキームに従って圧縮される。さらに、あるタイプのコンテントを異なる圧縮スキームに従って圧縮できる。たとえば、（あるデータタイプを使用する）あるアプリケーションからより高い圧縮比を得るために、専用圧縮器が使用できる。整数データや暦日などのいくつかのタイプのデータが、２進で符号化できる。今までの例では、「価格」データアイテムは、整数を使用して符号化できた。差分またはデルタ符号化が、ばらつきのほとんどない数値データには有用である。たとえば、１０２００、１０２４０、１０１８５、、、は、１０２００、＋４０、−５５、−３、、として符号化される。より複雑な圧縮スキームが、画像、サウンド、ＤＮＡシーケンスなどのさまざまな専用データタイプに適用できる。最後に、マークアップ言語文書のそれぞれの別個の構成要素を、すなわち、構造であろうと、データアイテムであろうと、個々のグループのデータアイテムであろうと、ＧＺｉｐやｂｚｉｐ２などの汎用圧縮ツールを使用してさらに圧縮できる。
【００３５】
本明細書に説明する本発明のさまざまな実施形態が実施できる多くの異なる方法がある。次に図３を参照しながら、本発明の一実施形態で使用できるプロセスの一例を説明する。図３は、送信側デバイス１５０および受信側デバイス１５２を示す図である。送信側デバイス１５２のブロック１５４は、送信側デバイス１５０によってオフラインで扱われるタスクを表し、ブロック１５６は、送信側デバイス１５０によってオンラインで扱われるタスクを表す。本明細書で使用する場合、用語「オンライン」は、マークアップ言語文書が、送信側デバイス１５０から受信側デバイスに転送されているプロセス中である間に起きるタスクを指す。本明細書で使用する場合、用語「オフライン」は、それ以外の時間のすべてで起きるタスクを指す。ステップ１５８で、送信側デバイス１５０は、テンプレート１５５（これは、この例ではＤＴＤまたはＸＭＬスキーマである）を検索し、テンプレート１５５をパーズし、ＸＭＬタグ構造を表す論理ツリーを構築する。表２の「ブックス」ＤＴＤのために生成される論理ツリーの一例が、図４にグラフィカルに表されている。次いでステップ１６０で、送信側デバイス１５０は、ツリーに基づいてＸＭＬプロファイルを生成する。ステップ１５８および１６０と平行して、送信側デバイス１５０は、テンプレート１５５を使用して、受信側デバイス１５２に同期する。このことには、送信側デバイス１５０による、マークアップ言語文書を符号化し受信側デバイス１５２に送信する試みに先立って、送信側デバイス１５０がテンプレート１５５を受信側デバイス１５２に送信することが必要である。
【００３６】
ステップ１６４で、送信側デバイス１５０は、ステップ１６０で生成されたＸＭＬ文書１５７およびＸＭＬプロファイルを取得し、構造（ＸＭＬ文書のタグ）をコンテント（タグの組の間のデータアイテム）から分離し、プロファイルに従ってＸＭＬ文書１５７の構造を符号化し、コンテントを最適化する。この符号化および最適化プロセスには、表４、５、６に関連して上記に説明した１つまたは複数の技術が必要である。ステップ１６６で、送信側デバイス１５０は、周知の圧縮スキーム（この例では、ＧＺｉｐまたはＢｚｉｐ２）に従って符号化された構造およびデータコンテントを圧縮する。次いで、送信側デバイス１５０は、圧縮されおよび符号化された構造と、圧縮されたコンテントと、メッセージ１６８を翻訳する場合に受信側デバイス１５２によって使用されるべきプロファイルを識別するデータとを有するメッセージ１６８を作成する。次いで、送信側デバイス１５０は、ネットワーク１５１を介してメッセージ１６８を受信側デバイス１５２に送信する。
【００３７】
送信側デバイス１５０と同様に、受信側デバイス１５２は、ブロック１７０によって表されるあるタスクをオフラインで実施し、ブロック１７２によって表されるあるタスクをオンラインで実施する。オフライン期間中に、受信側デバイス１５２は、ステップ１７４で送信側デバイス１５０からテンプレート１５５を受信する。次いでステップ１７６で、受信側デバイス１５２は、テンプレート１５５をパーズして、ＸＭＬタグ構造を表すツリーを構築する。第２のデバイス１５２によって構築されたツリーは、ステップ１６０で第１のデバイス１５０によって構築されたツリーのように見えるべきである。
【００３８】
オンライン期間中に、第２のデバイス１５２は、メッセージ１６８を受信し、ステップ１８０でそれを伸張する。ステップ１８２で、第２のデバイス１５２は、ステップ１７６で作成されたツリーを使用してメッセージ１６８の構造部分を復号化する。この復号化には、ＸＭＬ文書の固定エレメントに基づいてデフォルトタグ構造を確立することと、可変エレメントを表すタグのインスタンスの正しい数を記入することとが必要であることがある。最後に、ステップ１８４で、第２のデバイス１５２は、ステップ１８２で生成された正しいタグの組間にデータアイテムを挿入することにより、ＸＭＬ文書１５７を再構築する。
【００３９】
したがって、マークアップ言語文書を符号化するための新しい有用な方法およびシステムが提供されることが分かる。本発明の原理が適用できる多くの可能な実施形態の観点から見て、図面中の図について本明細書に説明した実施形態は単に例であり、本発明の範囲を限定すると解釈すべきではないことが理解されるであろう。たとえば、ソフトウェアで示した実施形態の例のエレメントは、ハードウェア内で実施することもでき、その反対も可能であり、または本発明の趣旨から逸脱することなく、実施形態の例を配置および詳細な点で修正できることは当業者なら理解されるであろう。したがって、本明細書に説明した本発明は、頭記の特許請求の範囲およびその均等物の範囲内に含まれるすべてのこのような実施形態を包含している。
【図面の簡単な説明】
【図１】本発明が実践できるコンピュータネットワークの一例を示す図である。
【図２】本発明の少なくともいくつかの部分が実施できるコンピュータの一例を示す図である。
【図３】本発明の一実施形態で使用できる手順の一例を示す図である。
【図４】本発明の一実施形態内のテンプレートに基づいて作成されるツリーの一例を示す図である。
【符号の説明】
１００　コンピュータ
１０２　ネットワーク
１０６　線
１１２　処理ユニット
１１４　メモリ
１１８　ディスプレイ
１５０　送信側デバイス
１５１　ネットワーク
１５２　受信側デバイス
１５４、１５６、１７０、１７２　ブロック
１５５　テンプレート
１５７　ＸＭＬ文書
１６８　メッセージ
【図１】
2004032774.tif 000009
【図２】
2004032774.tif 000010
【図３】
2004032774.tif 000011
【図４】
2004032774.tif 000012