JP2007520112A - Xmlファイルのための迅速にクエリ可能なデータ圧縮フォーマット - Google Patents
Xmlファイルのための迅速にクエリ可能なデータ圧縮フォーマット Download PDFInfo
- Publication number
- JP2007520112A JP2007520112A JP2006546450A JP2006546450A JP2007520112A JP 2007520112 A JP2007520112 A JP 2007520112A JP 2006546450 A JP2006546450 A JP 2006546450A JP 2006546450 A JP2006546450 A JP 2006546450A JP 2007520112 A JP2007520112 A JP 2007520112A
- Authority
- JP
- Japan
- Prior art keywords
- data
- xml
- xml data
- block
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
簡単なクエリ処理によるXML圧縮方法及び装置が提供される。XMLファイルがSAXパーサにより解析され、実用のないタブやホワイトスペースなどの文字が削除され、標識データマークが挿入され、LZ77圧縮が適用され、最終的に、当該データはハフマン符号化され、データブロックにパッキングされる。標識マークは、アルファベット順などに基づき、文書のタグ又はリテラルについて圧縮されたファイル内を検索するのに使用される。標識マークは、タブやXMLコメントなどの特別な文字から構成され、このため、それらはXML互換性を有する。独立したデータブロックによる圧縮ファイルの構成は、圧縮ファイルの迅速なクエリ処理及び部分的解凍を容易にする。
Description
本発明は、データ圧縮及び解凍方法及び装置に関し、特にXML(eXtensible Markup Language)データ圧縮及び解凍方法及び装置に関する。
XMLは、データ通信においてますます普及しつつあるテキストフォーマットである。マルチメディアフィールド、MPEG−7及びTV−Anytimeなどのますます多くの規格が、データを表すのにXMLテキストフォーマットを利用している。
XMLは冗長なフォーマットであり、すなわち、XMLによりデータ及び構造を表現する方法は、比較的に大きなテキストをもたらす。従って、データ圧縮は、送信又は格納のため注意深く検討される必要がある。最も一般的な圧縮方法は、最も良く知られているzip(.zipファイル)やgzip(.gzファイル)などのZlibである。それは、ハフマン、LZ77又はその両方に基づくものである。
従来技術では、圧縮装置は、XMLデータを圧縮し、圧縮されたXMLデータを解凍し、その解析を行う。
図1は、従来技術のコンプレッサの構造図である。コンプレッサ100は、LZ77エンコーダ102と、ハフマンエンコーダ104と、ブロックパッカー106とを有する。コンプレッサ100は、Zlibフォーマットに基づきXMLデータを圧縮する。
まず、コンプレッサ100はXMLデータを受け取り、LZ77エンコーダ102がLZ77アルゴリズムに従ってXMLデータをエンコードし、コードワード及びリテラル群を生成する。当該リテラルは、圧縮不可能なXMLデータからのバイトを有する。1つのコードワードは、XMLデータにおいて以前に遭遇したデータ、すなわち、冗長データをバイトシーケンスに変換することが可能である。典型的なコードワードは、以前に遭遇したシーケンスの長さと、バイトにおけるシーケンスの始めから現在のバイトまでのスペースであるピッチとを有する。
ハフマンエンコーダ104は、コードワード及びリテラルに対してハフマン符号化を実行し、異なる長さのコードシーケンスを出力し、ハフマンリストを生成する。
ブロックパッカー106は、ハフマンエンコーダ104からハフマンリストを取得し、データを複数のブロックにパッキングする。各ブロックは、異なるハフマンリストを利用することが可能であり、又はLZ77符号化及びハフマン符号化を全く必要としないものであってもよい。ここで、当該パッキングは、バイパス圧縮、デフォルトハフマンリストの利用及び従来のハフマンリストの利用の3つの可能性を有する。これら3つの可能性は、情報の平均量と実際の圧縮率とに基づく。各ブロックは、ブロックヘッダから始まる。最終的に、圧縮されたXMLデータが出力され、解凍装置に送信される。
図2は、従来技術による解凍装置のデコンプレッサとアナライザの構造図である。デコンプレッサ200は、圧縮されたXMLデータを解凍し、XMLデータを取得する。デコンプレッサ200は、ブロックヘッダデコーダ202と、ハフマンデコーダ204と、LZ77デコーダ206とを有する。
ブロックヘッダデコーダ202は、圧縮されたXMLデータを復号し、ハフマンリストと、異なる長さのコード及び/又はリテラルを取得する。ハフマンデコーダ204は、圧縮されたXMLデータを再び復号し、コードワード及びリテラルを取得し、最終的に、それらはXMLデータを復号及び取得するため、LZ77デコーダ206に送信される。
アナライザ210は、XMLデータのためのSAX(Simple Application Programming Interface)を有し、SAXは、イベントタイプ及びイベントデータを取得するためXMLデータをSAX解析する。ここで、SAXは、実際、XMLデータを処理するための規格である。それは大変シンプルなものであり、このため大変高速である。SAXは、シーケンスによりXMLデータを処理し、このため、それはZlibベースのイン・シーケンスデコンプレッサ200と良好に適合する。SAXは、XMLデータのシーケンシャルな処理中にSAX解析により遭遇するエンティティに対して生成されるイベントに基づくコンセプトである。アナライザ210のイベントタイプは、実行されるイベントのタイプにより示され、これにより、アナライザ210は対応してイベントデータを解析及び処理し、解析されたXMLデータを取得することが可能である。
SAX解析前、システムは単に、リテラルシーケンスとしてXMLデータとするが(すなわち、コンプレッサは、当該データのプロパティを前提としない)、SAX解析後、要素及び非要素(リテラル)などの異なるXMLエンティティは区別される。従って、SAX解析後の出力は、個々のリテラルでなくイベントシーケンスを有し、各イベントは、XMLデータにおける複数の異なるリテラルから構成されるエンティティに対応する。
従来技術では、大きな圧縮ファイルから特別なデータを抽出することは、受信者にとって負担であるが、小さなXMLデータより大きなXMLデータにおいて、特にコストのかかる帯域幅のドメインにおいて圧縮を実行することが好ましく、圧縮効率の最適化が大変重要である。さらに、ターゲットとなる受信者が格納しない場合、解凍フォーマットによりすべてのデータを1つのデータベースに格納することは不可能であろう。せいぜい、それは圧縮フォーマットによりデータを保持し、又はデータが再び送信されるまで待機する。従って、大きな格納容量などの従来技術によるたくさんのリソースを有する装置は、大きなXMLファイルに対して直接的に機能することはできず、小さな格納容量などの限られたリソースしか有しない装置は、解凍フォーマット又はデータベースフォーマットによりデータを格納することはできない。それらは、圧縮ファイルの基づいてのみデータを抽出することができる。
従来技術の問題点について、本発明は、XMLデータ圧縮及び解凍のための方法及び装置を提供する。
本発明は、XMLデータ圧縮のための方法を提供する。まず、XMLデータが受付及び符号化され、符号化されたXMLデータがいくつかのデータブロックにパッキングされ、最終的に、圧縮されたXMLデータを取得するため、データブロック間に標識データが挿入され、当該標識データは特定のデータを識別するためのものである。
本発明は、他のXMLデータ圧縮方法を提供する。まず、XMLデータが受け付けられ、その後、特定のデータを識別するための標識データがXMLデータに挿入され、最終的に、圧縮されたXMLデータを取得するため、標識データを含むXMLデータが圧縮される。
本発明は、XMLデータ解凍方法を提供する。まず、標識データを有する圧縮されたXMLデータが受け付けられ、その後、圧縮されたXMLデータは解凍され、解凍処理中に標識データが取得され、最終的に、標識データに従って対応する解凍されたXMLデータが破棄される。
本発明は、他のXMLデータ解凍方法を提供する。まず、解凍されたXMLデータを取得するため、圧縮されたXMLが解凍され、その後、解凍されたXMLデータから特定のデータを識別するための標識データが取得され、最終的に、標識データに従って対応する解凍されたXMLデータが破棄される。
本発明は、XMLデータの関連のないデータの解析を回避し、これにより、解析処理を迅速化し、受信装置の処理速度を速めることができる。それがXMLデータの関連する部分のみを処理するとき、比較的大きなサイズのXMLデータを処理することができ、送信されるすべてのXML情報は、比較的大きなXMLデータの1つの小さなデータブロックに分割可能であり、これは、小さなXMLデータの1つの大きなデータブロックを処理するよりはるかに良好である。なぜなら、前者は後者より圧縮のためのZlibをより良好に利用し、これにより、帯域幅を節約することができる。
本発明の他の目的及び実現が明らかにされ、以下の図面及び添付された請求項が参照される場合、本発明の完全なる理解が実現可能である。
図3は、本発明の実施例のコンプレッサの構造ブロック図である。コンプレッサ100は、LZ77エンコーダ102と、ハフマンエンコーダ104と、ブロックパッカー106と、標識データブロック挿入装置302とを有する。
LZエンコーダ102は、XMLデータに対してLZ77符号化を実行し、またXMLデータを受信するための受信装置として機能するかもしれない。ハフマンエンコーダ104は、LZ77符号化されたXMLデータに対してハフマン符号化を実行し、同時にハフマンリストを提供する。LZ77エンコーダ102とハフマンエンコーダ104は、一緒になってXMLデータを符号化する符号化装置を構成することが可能である。
ブロックパッカー106は、ハフマン符号化されたXMLデータをハフマンリストに従っていくつかのデータブロックにパッキングし、各データブロックのブロックヘッダはパーシャルハフマンリストを有する。
標識データブロック挿入装置302は、圧縮されたXMLデータを取得するため、ハフマンリストに従って上記データブロック間の標識データを挿入する。当該標識データは、特定のデータを特定するため、ヌルデータブロックに配置される。
図4は、本発明の実施例の圧縮方法のフローチャートである。まず、XMLデータを受信し(ステップS402)、例えば、受信したXMLデータは、
<Entry><Word>Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
である。
<Entry><Word>Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
である。
その後、LZ77符号化(ステップS404)とハフマン符号化(ステップS406)を含む、XMLデータの符号化が行われる。XMLデータがLZ77符号化されると(ステップS404)、コードワードとリテラル群が取得され、ここで、コードワードはXMLデータにおける単なる繰り返しのリテラル“Word>”であり、それの長さは5であり、それの距離、すなわち、最初の“Word>”から次の“Word>”までのスペースは12である。これらのリテラルは、“Aback”などの圧縮できない他のラテラルである。
異なる長さのコードを取得し、同時にハフマンリストを生成するため、XMLデータに対してハフマン符号化が実行される(ステップS406)。例えば、‘E’‘n’‘t’‘r’‘y’‘>’‘<’‘W’‘o’‘r’‘d’‘>’‘A’‘b’‘a’‘c’‘k’‘<’‘/’の20個のリテラルをハフマン符号化した後、16進数の異なる長さの20個のコード、6C 75 9E A4 A2 A9 6E 6C 87 9F A2 94 6E 71 92 91 93 9B 6C 5Fが取得される。
ハフマンテーブルに従って、ハフマン符号化されたXMLデータが複数のデータブロックにブロックパッキングされる(ステップS408)。例えば、文字‘A’から始まるワードを1つのデータブロックにパッキングし、文字‘B’から始まるワードを次のデータブロックにパッキングするなどにより、いくつかのデータブロックが取得される。
圧縮されたXMLデータを取得するため(ステップS412)、ブロックパッキングされたXMLデータブロックの間に標識データが挿入される(ステップS410)。当該標識データは、特定のデータを識別するためのものである。ここで、特定のデータとは、ワード‘car’などの所望のデータを意味する。
当該標識データは、ヌルデータブロックのブロックヘッダにおいてヌルデータブロックに配置される。
圧縮されたXMLデータが、テーブル1に示される。
図5は、本発明の実施例の解凍装置の構造図である。解凍装置は、デコンプレッサ500と、有限状態マシーン(FSM)510と、標識データブロック検出装置508と、アナライザ512とを有する。
デコンプレッサ500はさらに、ブロックヘッダデコーダ502と、ハフマンデコーダ204と、LZ77デコーダ206とを有する。
ブロックヘッダデコーダ502は、圧縮されたXMLデータブロックをブロックヘッダ復号化するためのものである。ブロックヘッダ復号化中、新たなデータブロックに遭遇する毎に、データブロック信号が生成され、有限状態マシーン510に送信される。ブロックヘッダデコーダ502はさらに、ヌルデータブロックを検出し、当該ヌルデータブロックを標識データブロック検出装置508に提供するのに利用される。ブロックヘッダデコーダ502はまた、ハフマンリストを生成するのに利用され、同時に圧縮されたXMLデータを受信する受信装置として機能する。
ハフマンデコーダ204は、圧縮されたXMLデータをLZ77復号化し、XMLデータを取得するためのものである。当該圧縮XMLデータは、標識データを含む。
LZ77デコーダ206は、圧縮されたXMLデータをLZ77復号化するためのものであり、XMLデータを取得する。この圧縮されたXMLデータは、標識データを含む。
標識データブロック検出装置508は、ブロックヘッダデコーダ502により提供されるヌルデータブロックのブロックヘッダから標識データを取得し、それをアナライザ512に送信するためのものである。当該デコンプレッサ500と標識データブロック検出装置508は一緒になって、圧縮されたXMLデータを解凍するデータ処理装置を構成する。
アナライザ512は、ある状態に基づき標識データのコンテンツを変更し、対応するスキップ信号を生成し、それを有限状態マシーン510に送信する。上記状態は、アナライザ512のあるアプリケーション、すなわち、ワード‘car’などのアナライザ512により所望されるデータに対応する。標識データの変更は2つの結果を有する可能性があり、1つは標識データのコンテンツを実行し、すなわち、対応するスキップ信号は有限状態マシーン510がある関連性のないデータを破棄することを要求し、もう1つは標識データをスキップし、すなわち、対応するスキップ信号のコンテンツがヌルである。
有限状態マシーン510は、データブロック信号と変更された標識データコンテンツ、すなわち、スキップ信号に基づき、対応する圧縮されたXMLデータを破棄する。このアナライザ512と有限状態マシーン510は一緒になって、標識データに従って対応する圧縮されたXMLデータを破棄する破棄装置を構成する。
図6は、本発明の実施例の解凍方法のフローチャートである。まず、圧縮されたXMLデータが受信され(ステップS602)、当該圧縮されたXMLデータは、標識データブロックを含む。
その後、圧縮されたXMLデータの解凍は、以下を含む。
ヌルデータブロックを検出し、データブロック信号を生成するため、圧縮されたXMLデータがブロックヘッダ復号化され(ステップS604)、例えば、データブロック1のブロックヘッダ復号化により、データブロック1のデータブロック信号が生成される。
標識データブロックが検出され(ステップS606)、標識データブロックが検出される場合、データブロック1のコンテンツがブロックヘッダ復号化され、当該データブロックが標識データブロックであるということを意味するヌルであると判明する場合、‘C’などのデータブロック1のブロックヘッダから標識データのコンテンツが取得される(ステップS610)。
ステップS606において標識データブロックが検出されない場合、次のデータブロック、すなわち、データブロック2が検出され、データブロック2が標識データブロックでないと判明する場合、それをハフマン復号化し(ステップS612)、その後LZ77復号化し(ステップS614)、これにより、データブロック2のデータを取得する。
その後、アナライザの内部状態、すなわち、特定の状態と、標識データのコンテンツとに従って、スキップ信号を生成するか判断し(ステップS616)、すなわち、特定の状態に基づき標識データのコンテンツが変更される。この特定状態とは、特定のアプリケーション、すなわち、ワード‘car’などのアナライザの内部状態により所望されるデータであり、その後、標識データ‘C’に基づき標識データのコンテンツが変更され、すなわち、スキップ信号が生成され、直接的に部分“C”にジャンプすることが求められる。
次に、例えば、ワード“Car”の検索時などに、データブロック信号とスキップ信号に基づき、関連のないデータブロックが破棄され(ステップS618)、“Car”が後のデータブロックに出現する文字‘C’から始まるワードであると判断し、これにより、関連のないデータブロックを破棄するため、スキップ信号が生成され、すなわち、データブロック3のデータブロック信号の出現前のデータブロック2のすべてのデータ(部分“B”)が破棄される。圧縮されたXMLデータがブロック構造を有していないため、破棄された各データブロックは、当該データブロック信号に基づき制御される必要がある。
同様にして、上記に従って、データブロック3のブロックヘッダから標識データコンテンツ‘E’が取得され(ステップS610)、データブロック4のデータが取得され(ステップS614)、その後、標識データ‘E’とワード“Car”に基づき、どれが検索されているか判断される(ステップS616)。ワード“Car”は文字‘E’から始まるワードの前にあるため、スキップ信号は生成されない。その後、関連するデータブロック、すなわち、データブロック4が解析され(ステップS620)、最終的に、ワード“Car”などの解析されたXMLデータが取得される。
ここで、対応する解凍されたXMLデータの破棄は、変更された標識データコンテンツ、すなわち、スキップ信号に従って実行される。
ステップS616における判定結果が否定的なものである場合、すなわち、当該破棄が不要であることを意味する場合、関連するデータブロックが直接解析され(ステップS620)、解析されたXMLデータが取得される(ステップS622)。
図7は、本発明の他の実施例の圧縮装置の構造ブロック図である。圧縮装置は、アナライザ702とコンプレッサ100とを有する。
アナライザ702はさらに、実用のないデータ群を標識データマークとして取得し、同時にXMLデータを受信する受信装置として動作する配置装置704と、対応する標識データをある個数の標識データマークの後方に挿入し、残りの標識データマークを実用のないデータ群と置換するデータ挿入装置とを有する。実用のないデータとは、タブマーク、スペースマーク、エンターマークなどのデータの1つである。
コンプレッサ100は、圧縮されたXMLデータを取得するため、標識データにより挿入されたXMLデータを圧縮する。
図8は、本発明の他の実施例の圧縮方法のフローチャートである。まず、
<Entry><Word>→Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→Aback</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
などのXMLデータを受け付ける(S802)。
<Entry><Word>→Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→Aback</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
などのXMLデータを受け付ける(S802)。
その後、XMLデータがSAX解析され、20個の‘→’(タブマーク)、スペースマーク、エンターマークなどのグループなど、XMLデータの実用のないリテラルのグループが検出される。当該実用のない‘→’のグループが標識データマークとしてとられる(ステップS806)。
‘C’など、14などのある個数の標識データマーク‘→’の後方に標識データが挿入され(ステップS808)、その後、スペースなど、残りの‘→’を他の実用のないデータに置換する(ステップS809)。取得されたXMLデータは、
<Entry><Word>→<!――C−
>Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→<!――E――
>Car</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
ここで、XMLデータは、‘→’(タブマーク)などの実用のないグループを取得するため解析することができ、その後、特定数の実用のないデータを標識データパックに変換し、標識データを標識データパックに配備する。このように取得されたXMLデータは、上述のようなものとなる。
<Entry><Word>→<!――C−
>Aback</Word><Definition>saldiufhcnw</Definition></Entry>...
<Entry><Word>→<!――E――
>Car</Word><Definition>lzidnuvgrvgs</Definition></Entry>...
ここで、XMLデータは、‘→’(タブマーク)などの実用のないグループを取得するため解析することができ、その後、特定数の実用のないデータを標識データパックに変換し、標識データを標識データパックに配備する。このように取得されたXMLデータは、上述のようなものとなる。
その後、標識データを含むXMLデータが圧縮され、すなわち、標識データを含むXMLデータがLZ77符号化され(ステップS810)、LZ77符号化されたXMLデータがハフマン符号化され(ステップS812)、ハフマン符号化されたXMLデータがいくつかのデータブロックにパッキングされ(ステップS814)、最終的に、圧縮されたXMLデータが取得される(ステップS816)。
ここで述べられるような標識データとデータブロックマークは、XMLデータが圧縮される前に、XMLデータに挿入される。ここで、挿入された標識データとデータブロックマークは、解凍装置にとって自明である。言い換えると、解凍装置は、それらを用いて特定のデータをスキップし、これにより、解凍装置の機能が向上する。
図9は、本発明の他の実施例の解凍装置の構造ブロック図である。当該解凍装置は、デコンプレッサ200と、検出抽出装置904と、有限状態マシーン510と、アナライザ512とを有する。
デコンプレッサ200は、圧縮されたXMLデータを解凍する。圧縮されたXMLデータは、元のXMLデータに挿入される標識データを含む。デコンプレッサ200は、同時に圧縮されたXMLデータを受信する受信装置として動作する。
検出抽出装置904は、解凍されたXMLデータから標識データマーク群を検出し、当該標識データマークに基づき標識データを取得し、当該標識データをアナライザ512に送信するのに利用される。同時に、検出抽出装置904は、標識データマーク信号を生成し、当該標識データマーク信号を有限状態マシーン510に送信する。デコンプレッサ200と検出抽出装置904は、一緒になってデータ処理装置を構成する。
アナライザ512は、特定の状態に基づき標識データのコンテンツを変更する。この特定状態は、特定のアプリケーション、すなわち、アナライザ512により所望されるデータである。その後、標識データのコンテンツが変更され、対応するスキップ信号が生成され、有限状態マシーン510に送信される。
有限状態マシーン510は、標識データマーク信号と変更された標識データコンテンツ、すなわち、スキップ信号に基づき対応する圧縮されたXMLデータを破棄する。アナライザ512と有限状態マシーン510は、一緒になって当該標識データに従って対応する圧縮されたXMLデータを破棄する破棄装置を構成する。
図10は、本発明の他の実施例の解凍方法のフローチャートである。まず、圧縮されたXMLデータが受信され(ステップS1002)、その後、圧縮されたXMLデータが解凍され(S1004)、解凍されたXMLデータが取得される。
標識データが、特定のデータを識別するため、解凍されたXMLデータから取得される。具体的ステップは以下のようになる。
XMLデータの“→”などの標識データマークが検出され(S1006)、検出された場合、標識データマーク信号が生成される(ステップS1008)。
“C”などのデータブロックマーク付けされた標識データが抽出される。
その後、アナライザの内部状態、すなわち、特定の状態と標識データのコンテンツに基づき、スキップ信号を生成するか判断される(ステップS1010)。すなわち、特定状態に基づき、標識データのコンテンツが変更される。言い換えると、標識データ“C”と特定のアプリケーション、すなわち、アナライザの内部状態により所望されるデータに従ってスキップ信号を生成するか判断される。例えば、ワード‘Car’の検索時には、“Car”が後方のデータブロックに出現する文字‘C’から始まるワードであると判断し、これにより、関連のないデータを破棄するため、スキップ信号が生成される。
次に、ステップS1010において、データを破棄することを求めるスキップ信号が生成される場合、データブロック信号とスキップ信号に従って関連のないデータブロックが破棄され(ステップS1012)、すなわち、次の標識データマーク信号の出現前のすべてのデータが破棄され、検出及び判定を継続するため、ステップS1006に戻る。
同様に、次のデータブロックマーク、すなわち、次の“→”が検出されると、上記に従ってそれの後方の標識データコンテンツ‘E’が取得される(ステップS1009)。標識データ“C”とあるアプリケーション、すなわち、アナライザの内部状態により所望されるデータに従ってスキップ信号を生成するか判断される(ステップS1010)。例えば、ワード‘Car’の検索時には、“Car”が文字“E”から始まるワードの前にあると判断され、スキップ信号は生成されない。その後、関連するXMLデータブロックが解析され(ステップS1014)、最終的に、ワード‘car’など解析されたXMLデータが取得される(ステップS1016)。
ここで、対応する解凍されたXMLデータの破棄は、変更された標識データコンテンツ、すなわち、スキップ信号に従って実行される。
ステップS1006又はS1010の判定結果が否定的なものである場合、関連のあるデータブロックが直接解析され(ステップS1014)、解析されたXMLデータが取得される(ステップS1016)。
本発明の実施例から、XML入力データの関連のないデータブロックの解析を回避し、これにより、受信エンドでの処理をスピードアップすることにより、解析処理を迅速化することが可能であるということが理解できるであろう。XMLデータの関連のある部分のみが処理されるため、より大きなXMLデータ入力を処理することが可能となる。送信されるすべてのXMLデータは、大きなXMLデータの1つの小さなデータブロックに分割することができ、これにより、小さなXMLデータの1つの大きなデータブロックを処理するよりはるかに良好となる。なぜなら、前者は後者より圧縮のためのZlibをより良く利用することができ、これにより帯域幅を節約することができるためである。
本発明は、比較的より大きなXML入力データを圧縮し、このため、より良好な圧縮を行う。解凍装置は情報の再送を待機する必要がないため、解凍装置のストレージの圧縮されたXMLデータは、当該情報への比較的より高速なアクセスを提供することが可能となる。
本発明における標識データによる挿入は、圧縮されたXMLデータは、既存の解凍装置と互換性を有するように、既存の圧縮規格/方式と互換性がある。
本発明は、標識データとXMLデータを1つのデータとしているため、標識データは、XMLデータのコンテンツが更新されているときでさえ、XMLデータのコンテンツと常に一致することが可能である。本発明は、追加的な送信チャネルを標識データに別々に割り当てる必要がないため、別のチャネルを介しデータを送信する余計なコストを節約することができる。また、XMLデータを挿入するとき、標識データがまたZlibにより圧縮される。
本発明が特定の実施例により説明されたが、上記記載に従ってなされる多数の置換、変更及び変形が当業者に明らかであり、これらすべての置換、変更及び変形は、それが添付された請求項の趣旨及び範囲内に属するときには、本発明に含まれるであろう。
Claims (28)
- XMLデータを圧縮する方法であって、
a.前記XMLデータを受け付けるステップと、
b.前記XMLデータを符号化するステップと、
c.前記符号化されたXMLデータをパケット化するステップと、
d.圧縮されたXMLデータを取得するため、前記ブロックパッキングされたXMLデータ間に特定のデータを識別するのに使用される標識データを挿入するステップと、
を有することを特徴とする方法。 - 請求項1記載の方法であって、
前記標識データは、ヌルデータブロックに配置されることを特徴とする方法。 - 請求項2記載の方法であって、
前記標識データは、前記ヌルデータブロックのブロックヘッドに配置されることを特徴とする方法。 - XMLデータを圧縮する方法であって、
a.前記XMLデータを受け付けるステップと、
b.特定のデータを識別するのに使用される標識データを前記XMLデータに挿入するステップと、
c.前記圧縮されたデータを取得するため、前記標識データを有する前記XMLデータを圧縮するステップと、
を有することを特徴とする方法。 - 請求項4記載の方法であって、
前記ステップbは、
実用のないデータ群を標識データマークとして取得するため、前記XMLデータを解析するステップと、
前記対応する標識データを特定数の前記標識データマークの後方に挿入するステップと、
残りの標識データマークを他の実用のないデータ群と置換するステップと、
を有することを特徴とする方法。 - 請求項4記載の方法であって、
前記ステップbは、
実用のないデータ群を取得するため、前記XMLデータを解析するステップと、
特定数の前記実用のないデータを標識データパケットに変換するステップと、
前記標識データを前記標識データパケットに配置するステップと、
を有することを特徴とする方法。 - 請求項5又は6記載の方法であって、
前記実用のないデータは、タブマーク、ブランクマーク及びエンターマークの1つであることを特徴とする方法。 - 圧縮されたXMLデータを解凍する方法であって、
a.標識データを有する前記圧縮されたXMLデータを受け付けるステップと、
b.前記標識データを取得するステップ(i)を有し、前記圧縮されたXMLデータを解凍するステップと、
c.前記標識データに従って前記対応する解凍されたXMLデータを破棄するステップと、
を有することを特徴とする方法。 - 請求項8記載の方法であって、
前記標識データは、ヌルデータブロックに配置されることを特徴とする方法。 - 請求項8記載の方法であって、
前記ステップbのステップ(i)は、
ヌルデータブロックを検出するため、前記圧縮されたXMLデータをブロックヘッド復号化するステップと、
前記ヌルデータブロックのブロックヘッドから前記標識データを取得するステップと、
を有することを特徴とする方法。 - 請求項8記載の方法であって、さらに、
特定の状態に従って前記標識データのコンテンツを変更するステップを有し、
前記ステップcは、前記変更された標識データのコンテンツに従って実行される、
ことを特徴とする方法。 - 請求項8記載の方法であって、
前記破棄されたXMLデータは、前記圧縮されたXMLデータの特定のデータブロックに対応することを特徴とする方法。 - 圧縮されたXMLデータを解凍する方法であって、
a.前記解凍されたXMLデータを取得するため、前記圧縮されたXMLデータを解凍するステップと、
b.前記解凍されたXMLデータから特定のデータを識別するのに使用される標識データを取得するステップと、
c.前記標識データに従って前記対応する解凍されたXMLデータを破棄するステップと、
を有することを特徴とする方法。 - 請求項13記載の方法であって、
前記標識データは、前記元のXMLデータに挿入されることを特徴とする方法。 - 請求項13記載の方法であって、
前記ステップbは、
前記XMLデータにおいて標識データマークを検出するステップと、
前記標識データマークに従って前記標識データを取得するステップと、
を有することを特徴とする方法。 - 請求項13記載の方法であって、さらに、
特定の状態に従って前記標識データのコンテンツを変更するステップを有し、
前記ステップcは、前記変更された標識データのコンテンツに従って実行される、
ことを特徴とする方法。 - XMLデータを圧縮する装置であって、
前記XMLデータを受け付ける受付手段と、
前記XMLデータを符号化する符号化手段と、
前記符号化されたXMLデータをパケット化するパケット化手段と、
圧縮されたXMLデータを取得するため、前記ブロックパッキングされたXMLデータ間に特定のデータを識別するのに使用される標識データを挿入する表示データブロック挿入手段と、
を有することを特徴とする装置。 - 請求項17記載の装置であって、
前記標識データは、ヌルデータブロックに配置されることを特徴とする装置。 - XMLデータを圧縮する装置であって、
前記XMLデータを受け付ける受付手段と、
特定のデータを識別するのに使用される標識データを前記XMLデータに挿入する標識データパケット挿入手段と、
前記圧縮されたデータを取得するため、前記標識データが挿入される前記XMLデータを圧縮する圧縮手段と、
を有することを特徴とする装置。 - 請求項19記載の装置であって、
前記標識データパケット挿入手段は、
前記標識データマークとして実用のないデータ群を取得するため、前記XMLデータを解析する配置手段と、
前記対応する標識データを特定数の標識データマークの後方に挿入し、残りの標識データマークを他の実用のないデータ群と置換するデータ挿入手段と、
を有することを特徴とする装置。 - 請求項20記載の装置であって、
前記実用のないデータは、タブマーク、ブランクマーク及びエンターマークの1つであることを特徴とする装置。 - 圧縮されたXMLデータを解凍する装置であって、
標識データを有する前記圧縮されたXMLデータを受け付ける受付手段と、
前記圧縮されたXMLデータを解凍し、前記標識データを取得するデータ処理手段と、
前記標識データに従って前記対応する圧縮されたXMLデータを破棄する破棄手段と、
を有することを特徴とする装置。 - 請求項22記載の装置であって、
前記標識データは、ヌルデータブロックに配置されることを特徴とする装置。 - 請求項22記載の装置であって、
前記データ処理手段は、
ヌルデータブロックを検出するため、前記圧縮されたXMLデータをブロックヘッド復号化するヌルデータブロック検出手段と、
前記ヌルデータブロックのブロックヘッドから前記標識データを取得する標識データ取得手段と、
を有することを特徴とする装置。 - 請求項22記載の装置であって、さらに、
特定の状態に従って前記標識データのコンテンツを変更するアナライザを有し、
前記破棄手段は、前記変更された標識データのコンテンツに従って動作する、
ことを特徴とする装置。 - 請求項24記載の装置であって、
前記標識データは、前記元のXMLデータに挿入されることを特徴とする装置。 - 請求項24記載の装置であって、
前記標識データは、前記解凍されたXMLデータから取得されることを特徴とする装置。 - 請求項24記載の装置であって、
前記データ処理手段は、前記解凍されたXMLデータから標識データマーク群を検出し、前記標識データマークに従って前記標識データを取得する検出結果取下手段を有することを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2003101245205A CN1635492A (zh) | 2003-12-30 | 2003-12-30 | 一种xml数据的压缩与解压缩方法及装置 |
PCT/IB2004/052842 WO2005067153A1 (en) | 2003-12-30 | 2004-12-17 | Rapidly queryable data compression format for xml files |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007520112A true JP2007520112A (ja) | 2007-07-19 |
Family
ID=34744503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006546450A Pending JP2007520112A (ja) | 2003-12-30 | 2004-12-17 | Xmlファイルのための迅速にクエリ可能なデータ圧縮フォーマット |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070273564A1 (ja) |
EP (1) | EP1702412A1 (ja) |
JP (1) | JP2007520112A (ja) |
CN (2) | CN1635492A (ja) |
WO (1) | WO2005067153A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630997B2 (en) * | 2005-03-23 | 2009-12-08 | Microsoft Corporation | Systems and methods for efficiently compressing and decompressing markup language |
US8024427B2 (en) | 2006-01-09 | 2011-09-20 | Microsoft Corporation | Dynamic storage of documents |
US7593949B2 (en) | 2006-01-09 | 2009-09-22 | Microsoft Corporation | Compression of structured documents |
US7853573B2 (en) * | 2006-05-03 | 2010-12-14 | Oracle International Corporation | Efficient replication of XML data in a relational database management system |
US20070300147A1 (en) * | 2006-06-25 | 2007-12-27 | Bates Todd W | Compression of mark-up language data |
CN101222476B (zh) * | 2007-01-08 | 2010-09-29 | 华为技术有限公司 | 一种可扩展标记语言文件编辑器、文件传输方法及系统 |
WO2008142799A1 (ja) * | 2007-05-24 | 2008-11-27 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索方法、および情報検索装置 |
WO2008142800A1 (ja) * | 2007-05-24 | 2008-11-27 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
US20090006399A1 (en) * | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Compression method for relational tables based on combined column and row coding |
US8645916B2 (en) * | 2008-12-03 | 2014-02-04 | Microsoft Corporation | Crunching dynamically generated script files |
FR2945363B1 (fr) | 2009-05-05 | 2014-11-14 | Canon Kk | Procede et dispositif de codage d'un document structure |
CN102073663B (zh) * | 2009-11-24 | 2013-01-30 | 北大方正集团有限公司 | 一种快速处理xml压缩数据的方法及其装置 |
US8442988B2 (en) | 2010-11-04 | 2013-05-14 | International Business Machines Corporation | Adaptive cell-specific dictionaries for frequency-partitioned multi-dimensional data |
CN102571966B (zh) * | 2012-01-16 | 2014-10-29 | 北大方正集团有限公司 | 一种大型xml文件的网络传输方法 |
JP6467937B2 (ja) | 2015-01-21 | 2019-02-13 | 富士通株式会社 | 文書処理プログラム、情報処理装置および文書処理方法 |
CN106155734B (zh) * | 2015-04-27 | 2020-09-18 | 南京中兴软件有限责任公司 | 一种软件版本的下载方法及装置 |
US9509336B1 (en) * | 2015-05-11 | 2016-11-29 | Via Alliance Semiconductor Co., Ltd. | Hardware data compressor that pre-huffman encodes to decide whether to huffman encode a matched string or a back pointer thereto |
CN106503003A (zh) * | 2015-09-06 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 一种可扩展标记语言xml文档的压缩、解压方法和装置 |
US10944423B2 (en) | 2019-03-14 | 2021-03-09 | International Business Machines Corporation | Verifying the correctness of a deflate compression accelerator |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988025B2 (en) * | 2000-11-28 | 2006-01-17 | Power Measurement Ltd. | System and method for implementing XML on an energy management device |
US7028312B1 (en) * | 1998-03-23 | 2006-04-11 | Webmethods | XML remote procedure call (XML-RPC) |
JP4003854B2 (ja) * | 1998-09-28 | 2007-11-07 | 富士通株式会社 | データ圧縮装置及び復元装置並びにその方法 |
US6635088B1 (en) * | 1998-11-20 | 2003-10-21 | International Business Machines Corporation | Structured document and document type definition compression |
US7031267B2 (en) * | 2000-12-21 | 2006-04-18 | 802 Systems Llc | PLD-based packet filtering methods with PLD configuration data update of filtering rules |
AUPR063400A0 (en) * | 2000-10-06 | 2000-11-02 | Canon Kabushiki Kaisha | Xml encoding scheme |
EP1358751A2 (en) * | 2001-01-26 | 2003-11-05 | Pogo Mobile Solutions Limited | Improvements in or relating to wireless communication systems |
US7080318B2 (en) * | 2001-02-28 | 2006-07-18 | Koninklijke Philips Electronics N.V. | Schema, syntactic analysis method and method of generating a bit stream based on a schema |
EP1573454A2 (en) * | 2002-06-11 | 2005-09-14 | Ashish Pandya | High performance ip processor for tcp/ip, rdma and ip storage applications |
US7774831B2 (en) * | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a network |
US7318194B2 (en) * | 2004-01-13 | 2008-01-08 | International Business Machines Corporation (Ibm) | Methods and apparatus for representing markup language data |
WO2006042008A1 (en) * | 2004-10-05 | 2006-04-20 | Vectormax Corporation | Method and system for authorizing multimedia multicasting |
US8458467B2 (en) * | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
WO2007086654A1 (en) * | 2006-01-25 | 2007-08-02 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
-
2003
- 2003-12-30 CN CNA2003101245205A patent/CN1635492A/zh active Pending
-
2004
- 2004-12-17 US US10/596,705 patent/US20070273564A1/en not_active Abandoned
- 2004-12-17 CN CNA2004800394417A patent/CN1902827A/zh active Pending
- 2004-12-17 WO PCT/IB2004/052842 patent/WO2005067153A1/en not_active Application Discontinuation
- 2004-12-17 JP JP2006546450A patent/JP2007520112A/ja active Pending
- 2004-12-17 EP EP04806582A patent/EP1702412A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20070273564A1 (en) | 2007-11-29 |
CN1902827A (zh) | 2007-01-24 |
EP1702412A1 (en) | 2006-09-20 |
CN1635492A (zh) | 2005-07-06 |
WO2005067153A1 (en) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007520112A (ja) | Xmlファイルのための迅速にクエリ可能なデータ圧縮フォーマット | |
JP3973557B2 (ja) | 構造化された文書を圧縮/伸長する方法 | |
JP2022526098A (ja) | エントロピコーディングにおいて等確率シンボルをハンドリングするための方法およびデバイス | |
US7616138B2 (en) | Data compression using a stream selector with edit-in-place capability for compressed data | |
US7821427B2 (en) | Data processing system and method | |
US7397959B1 (en) | Detection and recompression of embedded compressed data inside existing data streams | |
KR101835340B1 (ko) | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 | |
JPH0817444B2 (ja) | 画像データの符号化装置 | |
US5877711A (en) | Method and apparatus for performing adaptive data compression | |
US7983301B2 (en) | Method for extended transmission capabilities of short message service | |
CN105052040A (zh) | 多流压缩与解压的方法与系统 | |
KR102138892B1 (ko) | 데이터 무손실 압축 장치 및 그 방법 | |
RU2450344C2 (ru) | Устройство и метод формирования потока данных и устройство и метод считывания потока данных | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
KR100732664B1 (ko) | 텍스트 데이터 압축을 위한 방법 및 장치 | |
JP2007537642A (ja) | Xmlデータの構造化されたブロック単位の圧縮及び解凍方法及び装置 | |
KR101114229B1 (ko) | Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법 | |
US7023365B1 (en) | System and method for compression of words and phrases in text based on language features | |
JPH08251033A (ja) | データ処理方法 | |
Jain et al. | An efficient compression algorithm (ECA) for text data | |
KR20150072853A (ko) | 가변길이코딩을 이용한 인코딩 방법, 디코딩 방법, 및 그 시스템 | |
WO2005046059A1 (en) | Method for compressing and decompressing structured documents | |
KR20200040365A (ko) | 일정정보의 압축 기술을 이용한 압축 qr코드로부터 일정 자동등록 방법 | |
CN114006619A (zh) | 一种gzip格式文件转换为lz4格式文件的方法 | |
JPS62209948A (ja) | デ−タ圧縮伝送方法 |