JP4261299B2 - データ圧縮装置、データ復元装置およびデータ管理装置 - Google Patents

データ圧縮装置、データ復元装置およびデータ管理装置 Download PDF

Info

Publication number
JP4261299B2
JP4261299B2 JP2003328428A JP2003328428A JP4261299B2 JP 4261299 B2 JP4261299 B2 JP 4261299B2 JP 2003328428 A JP2003328428 A JP 2003328428A JP 2003328428 A JP2003328428 A JP 2003328428A JP 4261299 B2 JP4261299 B2 JP 4261299B2
Authority
JP
Japan
Prior art keywords
data
template
vertices
vertex
information
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.)
Expired - Fee Related
Application number
JP2003328428A
Other languages
English (en)
Other versions
JP2005094652A (ja
Inventor
英記 行友
雄大 中山
晃 金野
敦 竹下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003328428A priority Critical patent/JP4261299B2/ja
Priority to US10/935,584 priority patent/US7774387B2/en
Priority to EP04021354A priority patent/EP1517449A3/en
Priority to CNB2004100787884A priority patent/CN100354861C/zh
Publication of JP2005094652A publication Critical patent/JP2005094652A/ja
Application granted granted Critical
Publication of JP4261299B2 publication Critical patent/JP4261299B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、電子データの圧縮装置、復元装置およびデータ管理装置に関する。
近年、WWW(World Wide Web)の普及により、HTML(Hyper Text Markup Language)やXML(EXtensible Markup Language)等、構造化文書を用いたデータ交換が増加している。特に、XMLはHTMLを補う次世代の言語として注目を集めており、今後インターネットにおける情報交換の場において最も普及していくことが予想される。
XMLは要素の階層構造を表すデータ表現形式を伴った言語であり、XMLを用いた文書(XML文書)は、例えば図18のように記述される。図18は、XML文書10を示す図である。図18に示すとおり、XMLは大きくマークアップとテキスト情報に分けられる。図18に示すXML文書10では、マークアップは、要素開始記号(開始タグ)Ma、要素終了記号(終了タグ)Mb、空要素記号(空要素タグ)Mcからなっている。図18では、<book>、<title>、<authors>、<author>、<contents>および<chapter>が要素開始記号Maを表している。また、</book>、</title>、</authors>、</author>、</contents>および</chapter>が要素終了記号Mbを表し、<misc/>が空要素記号Mcを表している。これらの要素開始記号Maから対応する要素終了記号Mbまでの領域、または空要素記号Mcが要素(XMLの基本となる情報単位)を表している。
要素開始記号Maと要素終了記号Mbの間には、別な要素記号の他、テキスト情報を記述することができる。例えば、図18に示すXML文書10では、要素<title>には、文字列“XMLの基礎”が、要素<authors>の中に現れる最初の要素<author>には、文字列“山田 太郎”がそれぞれテキスト情報として定義されている。
要素やテキスト情報の間には、親子関係、兄弟関係が定義されている。図18に示すXML文書10の場合、要素開始記号Maが<book>で始まり、要素終了記号Mbが</book>で終了する要素(要素<book>)の中に、要素開始記号Maが<title>で始まり、要素終了記号Mbが</title>で終了する要素(要素<title>)が含まれている。このとき、要素<book>は要素<title>の親要素であるといい、要素<title>は要素<book>の子要素であるという。これが要素の親子関係である。
また、要素<title>と要素<authors>とは、同一の親要素<book>を持ち、かつ連続している。このとき、要素<title>と要素<authors>とは兄弟であるといい、要素<title>は要素<authors>の前兄弟、要素<authors>は要素<title>の次兄弟であるという。これが要素の兄弟関係である。
一般に、XMLは、コンピュータ間で通信を行う際や、ハードディスク装置やフラッシュメモリに蓄積する際には、図18に示すXML文書10ようにテキスト形式で表現されている。一方、コンピュータ内部で検索や修正用に利用するときは、解析されてコンピュータ内部に適したデータ構造に変換されている。
図19は、図18に示すXML文書10を解析し、コンピュータの内部利用に適した形式に変換したデータ構造11を示す図である。図19では、各要素及びテキスト情報が型および値を有する頂点301〜317として記述されている。型は各頂点301〜317の左側に記述され、“E”であれば要素を表し、“T”であればテキスト情報を表している。例えば、頂点301では型301aは“E”である。また、値は頂点の右側に記述され、例えば、頂点301では値301bは“book”である。そして、頂点が要素を表す場合は値に要素の名称(要素名)が記述され、テキスト情報を表す場合は文字列が記述される。例えば、頂点302では要素名<title>を表し、頂点306ではテキスト情報“XMLの基礎”を表している。
また、各頂点301〜317は、もとの(変換前の)XML文書10の親子関係および兄弟関係を表現するため、親参照、子参照、次兄弟参照および前兄弟参照の4つの参照を表す参照情報を有している。上述のXML文書10の場合、要素<title>は要素<book>の子要素であり、要素<book>は要素<title>の親要素であるから、図19に示すデータ構造11では、例えば、頂点301,302については、それぞれ、<book>から<title>への子参照P1と、<title>から<book>への親参照P2を有し、それらが矢印によって表現されている。また、要素<book>は<title>の次の子要素として要素<authors>も有している。この場合、頂点302,303については、要素<title>から要素<authors>への次兄弟参照P3、要素<authors>から要素<title>への前兄弟参照P4が保持されている。なお、兄弟関係にある要素では、先頭の子要素(例えば要素<title>)以外は親参照を直接に有しないものとされている。
データ構造は、各頂点間の参照情報と、要素名やテキスト情報とを分離して管理することができ、例えば、そのそれぞれを図20(a)、図20(b)のように表現することができる。ここで、図20(a)は各頂点間の参照情報を有する相互参照関係データ400を示す図であり、図20(b)は要素とテキスト情報のいずれかに設定される型と値を有する複数の頂点の集合(頂点群ともいう)を示すテーブル450を示す図である。
しかしながら、メモリ等の記憶装置の容量は有限であるため、データ構造を蓄積するときは、そのデータ構造を効率的に圧縮して蓄積することが求められる。この点に関し、非特許文献1には、図20(b)に示すような要素名やテキスト情報を圧縮する方法が開示されている。非特許文献1では、各頂点が保持する要素名やテキスト情報を辞書として別途蓄積し、各頂点には辞書のインデックスを持たせ、同じ文字列を複数蓄積しないようにすることで、圧縮する方法が開示されている。
一方、非特許文献2には、XML文書中の部分的な構造を再利用することで、XML文書を圧縮する方法が開示されている。この方法は元のXML文書を構造、要素名情報、テキスト情報の3つに分離したのち、そのそれぞれをLZ77等の一般的な圧縮アルゴリズムで圧縮するというものである(LZ77について詳しくは、Jacob Ziv,Abraham Lempel:A Universal Algorithm for Sequential Data Compression.IEEE Transactions on Information Theory 23(3):337-343(1977)を参照)。
ここで、非特許文献2に開示されている圧縮方法について説明する。この圧縮方法ではまず、要素開始記号や空要素記号をそれぞれ「#1」、「#2」のような短い要素名で置換し、要素終了記号を「/」で置換する。また、テキスト情報は「C」で置換する。
以上の圧縮方法を分離したXML文書10に適用すると、分離後のデータ構造12、要素名情報13およびテキスト情報14はそれぞれ図21、図22、図23のように表現される。
また、非特許文献2に記載の圧縮方法では、LZ77等に代表される圧縮アルゴリズムを用いてそれぞれを独立に圧縮するが、ここではその圧縮アルゴリズムの概要について説明する。LZ77等の圧縮アルゴリズムは元の入力情報に含まれる部分的なパターンを発見し、それをテンプレートとして繰り返し再利用することにより、圧縮を行う。例えば、図21に示すデータ構造12の圧縮について説明すると、テンプレートとして、テンプレートX,Y,Z,W,Vを用いるとし、それぞれのテンプレートの割り当てを、
X=“#1 #2 C / #3”,Y=”#4C /”,
Z=“/ #5”,W=“#6 C/”,V=“/ #7 / /”のように設定すると、図21に示したデータ構造12は“X Y Y Y Z W W V”のように表せる。これは一部の文書構造をあらわすテンプレートとして、Y,Wを複数回利用している。このように、テンプレートが繰り返し利用でき、元の文書を少ないテンプレートで表現することができれば、元のXML文書を表す情報量が少なくて済むから圧縮が可能になる。
Mathias Neumuller and John N. Wilson: "Compact In-Memory Representation of XML"Internal Report of University of strathclyde Hartmut Liefke and Dan Suciu.: "XMill: An Efficient Compressor for XML Data", In proceedings of ACM SIGMOD International Conference on Management of Data, 2000
しかし、上述した従来の技術では、テンプレートを用いてXML文書のデータ構造を圧縮する際、テンプレート相互の情報が独立していたため、テンプレート数が増えると、その分だけ必要とされる記憶量が増えてしまい、メモリ等の記憶装置を圧迫するという問題があった。
そこで、本発明は上記課題を解決するためになされたもので、テンプレート数が増えても各テンプレートの格納に要するメモリ等の記憶装置を圧迫しないようにすることができる構成を備えたデータ圧縮装置、データ復元装置およびデータ管理装置を提供することを目的とする。
上記課題を解決するため、本発明は型と値をそれぞれ有する複数の頂点と、その頂点間の参照情報とを有する入力データを、頂点間の参照情報を有する相互参照関係データと、型と値を有する複数の頂点からなる頂点群とに分離し、その分離された頂点群のデータを出力する分離手段と、特定のパターンを有する頂点間の参照情報を、頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、分離手段により分離された相互参照関係データから、テンプレート蓄積手段に蓄積されているテンプレートと一致する箇所を検出するテンプレート一致箇所検出手段と、分離手段により分離された相互参照関係データのうち、テンプレート一致箇所検出手段により検出された一致箇所をテンプレートで頂点間の参照情報を参照可能な状態に置換し、その置換された相互参照関係データを出力するテンプレート置換手段とを有するデータ圧縮装置を特徴とする。
このデータ圧縮装置は、テンプレート蓄積手段に蓄積されているテンプレートが頂点間の参照情報が共有可能な構成を有するので、テンプレート数を記憶するための記憶容量が少なくて済むようになる。
また、本発明は、それぞれの値を有し、その各値が属性情報として型を有することが可能な複数の頂点と、その頂点間の参照情報とを有する入力データを、頂点間の参照情報を有する相互参照関係データと、値を有する複数の頂点からなる頂点群とに分離し、その分離された頂点群のデータを出力する分離手段と、特定のパターンを有する頂点間の参照情報を、頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、分離手段により分離された相互参照関係データから、テンプレート蓄積手段に蓄積されているテンプレートと一致する箇所を検出するテンプレート一致箇所検出手段と、分離手段により分離された相互参照関係データのうち、テンプレート一致箇所検出手段により検出された一致箇所をテンプレートで頂点間の参照情報を参照可能な状態に置換し、その置換された相互参照関係データを出力するテンプレート置換手段とを有するデータ圧縮装置を提供する。
このデータ圧縮装置も、テンプレート蓄積手段に蓄積されているテンプレートが頂点間の参照情報が共有可能な構成を有するので、テンプレート数を記憶するための記憶容量が少なくて済むようになる。
上記いずれのデータ圧縮装置も、テンプレートが、頂点間の参照情報の一部または全部の参照方向を反転可能なことが好ましい。
このようなテンプレートを有すると、1つのテンプレートを反転させて適用することができるから、テンプレート数を少なくすることができる。
また、第1から第NまでのN個の頂点を有し、第1の頂点と第2の頂点以外の連続番号を有する頂点は相互に参照し、第1の頂点が第2の頂点を参照し、かつ外部への参照を保持し、第Nの頂点が第N−1の頂点を参照し、第2から第Nまでの各頂点が、外部への参照を保持しないか、またはすべて同数の参照を保持する連続兄弟参照部を有する相互参照関係データに適用するための接続情報を有する連続兄弟参照用テンプレートが、テンプレート蓄積手段に蓄積されているようにすることもできる。
このテンプレートは、各頂点間の参照情報を有しなくてもよいので、記憶容量が少なくて済む。
上記いずれのデータ圧縮装置も、頂点間の参照情報に、テンプレートを適用可能な親テンプレートがテンプレート蓄積手段に蓄積されているとよい。
このテンプレートは、テンプレートを定義するのに他のテンプレートの定義を利用できるため、テンプレートを表現するのに必要な記憶容量を削減することができる。
さらに、複数の入力データに共用可能な共用テンプレートがテンプレート蓄積手段に蓄積されていることが好ましい。
共用テンプレートは、複数の入力データに共用されるから、テンプレート数を少なくすることができるようになる。
そして、本発明は、特定のパターンを有する複数の頂点間の参照情報を、頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、テンプレートにより置換され、圧縮された相互参照関係データを第1の入力データとして入力し、相互参照関係データから、テンプレートを用いて圧縮前の元の相互参照関係データを復元する展開手段と、型と値をそれぞれ有する複数の頂点からなる頂点群のデータを第2の入力データとして入力し、頂点群のデータを展開手段により復元された相互参照関係データと合成したデータを出力する合成手段とを有するデータ復元装置を提供する。
このようなデータ復元装置によれば、圧縮された相互参照関係データをテンプレート蓄積手段に蓄積されたテンプレートを用いて圧縮前の元の相互参照関係データを復元することができる。
さらに、本発明は、圧縮可能なデータを蓄積する第1のデータ蓄積手段と、請求項1〜6のいずれか一項記載のデータ圧縮装置により圧縮されたデータを蓄積する第2のデータ蓄積手段と、第1のデータ蓄積手段及び第2のデータ蓄積手段に蓄積されたそれぞれのデータの利用頻度を観測し、その観測された利用頻度に応じて移動要求を出力する利用頻度観測手段と、その利用頻度観測手段からの移動要求にしたがい、利用頻度が高い高頻度データを請求項7記載のデータ復元装置により復元して第1のデータ蓄積手段へ格納し、利用頻度が高頻度データよりも低いデータを上記データ圧縮装置により圧縮して第2のデータ蓄積手段へ格納するようにして、データを移動させるための制御を行う制御手段と、第1のデータ蓄積手段と第2のデータ蓄積手段のいずれかから、制御手段の指示に応じてデータを取得して出力する選択手段とを有するデータ管理装置を提供する。
このデータ管理装置は、利用頻度に応じて、第1のデータ蓄積手段と第2のデータ蓄積手段との間でデータを移動させることができ、データを圧縮済みまたは非圧縮の状態に適宜変えて蓄積することができる。したがって、利用頻度の高いデータの利用速度が高いまま維持されるため、高速化が可能となる。
本発明によれば、データ構造の圧縮に用いるテンプレート数が増えても、各テンプレートの格納に要するメモリ等の記憶装置を圧迫しないようにすることができる。
以下、図面を参照して本発明に係るデータ圧縮装置、データ復元装置およびデータ管理装置の実施の形態について、添付図面を用いて詳細に説明する。
データ圧縮装置の実施の形態
(第1の実施の形態)
図1は本実施の形態に係るデータ圧縮装置101の構成を示すブロック図である。図1に示すように、データ圧縮装置101はテンプレート蓄積手段102、分離手段103、テンプレート一致箇所検出手段104およびテンプレート置換手段105を有している。このデータ圧縮装置101は、入力データ106から、第1の出力データ107と第2の出力データ108を出力するようになっている。
図1におけるデータ圧縮装置101はテンプレート蓄積手段102、分離手段103、テンプレート一致箇所検出手段104、テンプレート置換手段105までが一体化された単一の装置として構成されているが、必ずしも単一の装置として実現される必要はなく、各手段を図示しない通信手段により接続して実現することも可能である。例えば、データ圧縮装置101からテンプレート蓄積手段102を取り除き、テンプレート蓄積手段102を別体の装置として実現し、データ圧縮装置101とテンプレート蓄積手段102とを通信手段によって接続する構成にしてもよい。そうすると、テンプレート蓄積手段102を含まない複数のデータ圧縮装置を複数設け、それらの間で1つのテンプレート蓄積手段102を共有するといったことも可能になる。
なお、本実施の形態においては、図2に示すXML文書20を圧縮する手順をもって発明の詳細を説明するが、本実施の形態におけるデータ圧縮装置101による圧縮の対象はXML文書20のようなXML文書に限定されるものではなく、型と値を有する頂点、または値を有し、その各値が属性情報として型を有する頂点と、その頂点間の参照情報とを有するような一般的なグラフ構造によって表現されるデータにも適用することができる。値を有し、その各値が属性情報として型を有する頂点とは、例えば値として“1”、属性情報として“整数”といった情報を有するような頂点であり、属性情報から値の型が判定可能であることから、型と値を有する頂点を有するデータと同様に、本実施の形態におけるデータ圧縮装置101により、圧縮を行うことが可能である。
また、一般的なグラフ構造によって表現されるデータとは、XML文書のような根付順序木に限定されず、例えば閉路を有するような、より一般的な無向・有向グラフのことをいう。
図2(a)はXML文書20のテキスト表現の一例を示す図である。XML文書20は既知の手法(例えばhttp://xml.apache.org/xerces2-j/ において示されるXercesなど)により、図2(b)に示すようなコンピュータ内部に適したデータ構造21に変換可能である。そこで、以下では、XML文書20を図2(b)に示すデータ構造21に変換した後の圧縮工程について説明する。このデータ構造21は、型と値をそれぞれ有する複数の頂点と、その頂点間の参照情報とを有している。
一方、図1に示した分離手段103は、図2(b)に示すデータ構造21を入力データ106として入力し、入力データ106を各頂点間の参照情報を有する相互参照関係データと、型と値を有する複数の頂点からなる頂点群とに分離する。すなわち、分離手段103は、各頂点を一意に識別可能なID(頂点ID)を各頂点901〜923に順に割り振ったものを相互参照関係データ900とし、割り振った頂点IDと、対応する頂点901〜923がもともと有していた型および値との組を列記してテーブル950を生成し、そのテーブル950を型と値を持つ頂点901〜923の集合(頂点群)とすることによって、データ構造21を分離している。各頂点901〜923への頂点IDの割り振り方には、幅優先探索や、深さ優先探索等があるが、ここでは幅優先探索を用いている。また、分離手段103は、分離して得られる頂点群のデータを第2の出力データ108として出力する。
そして、XML文書20から分離された相互参照関係データ900、およびテーブル950はそれぞれ、図3(a),図3(b)に示す通りである。ここで、図3(b)は、頂点ID950a、型950bおよび値950cを一行とする形式で表現されている。
テンプレート蓄積手段102は、圧縮に先立ちあらかじめテンプレートとテンプレート実体を蓄積している。このとき、テンプレート蓄積手段102は、テンプレートやテンプレート実体として、例えば、あらかじめ高い頻度で適用されることが分かっている高頻度のものを蓄積している。このようなテンプレートとテンプレート実体としては、それぞれ例えば、図4(a),図4(b)にそれぞれ示すテンプレート1003とテンプレート実体1020とがある。
テンプレート1003は、テンプレートID1001、接続情報1002およびパターン情報1004を有している。テンプレートID1001はテンプレート蓄積手段102に複数のテンプレートが蓄積された際に、その各テンプレートを一意に識別するために用いられる。パターン情報1004はテンプレートによって表現される頂点間の参照情報のパターンを表し、複数の頂点とそれら相互の参照情報とを有している。パターン情報1004に含まれる参照情報には、親参照、子参照、次兄弟参照、前兄弟参照の4つの参照が設けられている。なお、接続先の頂点がない参照のうち、テンプレートを適用し、後述するようにして、相互参照関係データ900を圧縮する際に利用されない参照については、その旨がパターン情報1004に記述されている。これは、例えば、無効な頂点を定義しておき、その頂点への参照とすることで実現可能である。接続情報1002には、テンプレート1003を適用して、相互参照関係データ900を圧縮する際に他のテンプレートや頂点との接続を示す接続参照が列挙されている。
テンプレート1003は、接続参照を有する接続情報1002と、参照情報を有するパターン情報1004とを区別して構成しているから、異なるテンプレート1003同士でパターン情報1004を共有することができる。つまり、接続情報1002を異ならせることにより、接続され得る頂点や他のテンプレートを異ならせ、パターン情報1004が同じでも、別テンプレートのようにして利用することができる。すると、テンプレート内に含まれる頂点間の参照情報が省略可能となり、テンプレート蓄積手段102のメモリ使用量(記憶領域)を効率よく利用することが可能となる。
図4(c)は、テンプレート1003の具体的な一例となる第1のテンプレート1011を示す図である。図4(c)に示す第1のテンプレート1011におけるテンプレートID1012には、“1”が設定されている。第1のテンプレート1011におけるパターン情報1019は、5つの頂点1014〜1018と、それらの間の参照とにより構成され、参照は矢印で記述されている。なお、参照の種類は矢印に対し、親参照はp、子参照はc、次兄弟参照はns、前兄弟参照はpsとして記述されている。例えば、頂点1014の子参照cは頂点1016を指定しており、頂点1016の次兄弟参照は頂点1017を指定している。
また、テンプレートを適用し相互参照関係データ900を圧縮する際に利用されないことを示す参照は端点を「×」で記述し、テンプレートを適用し相互参照関係データ900を圧縮する際に他のテンプレートや頂点と接続されることを示す参照は端点を「○」で記述している。後者に該当する4つの参照、すなわち、頂点1014の親参照、頂点1016、頂点1017、頂点1018の子参照については、接続情報1013に頂点IDと参照の種類が列挙されている。
テンプレート実体1020は、入力データ106に対し、相互参照関係データ900を圧縮する際に、テンプレートを適用したこと(テンプレート適用済み)を表すために用いられる。このテンプレート実体1020は、テンプレート実体ID1005と、反転フラグ1006と、テンプレート独自情報1007とを有している。また、テンプレート独自情報1007は適用するテンプレートを表す利用テンプレートID1008と、実体接続情報1009および実体情報1010とを有している。圧縮後の相互参照関係データにおいて、テンプレート実体1020を参照することにより、テンプレートの適用内容が把握できるようになる。
テンプレート実体ID1005は、テンプレートを適用して相互参照関係データ900を圧縮した際、そのテンプレートの適用箇所を一意に特定するために用いられる。反転フラグ1006は、テンプレートを適用して相互参照関係データ900を圧縮した際に兄弟関係の方向を反転して利用するか否かを示す。本実施の形態では、反転フラグ1006が「偽」のときに次兄弟参照と、前兄弟参照は文字通りの意味を持ち、反転フラグ1006が「真」のときに次兄弟参照が前兄弟参照の意味を、前兄弟参照が次兄弟参照の意味を持つものとしている。
テンプレート独自情報1007に含まれる実体情報1010は、テンプレートを適用して相互参照関係データ900を圧縮した際に接続する先の頂点を列挙するために設けられている。この実体接続情報1010には、テンプレートを適用して相互参照関係データ900を圧縮した際にテンプレート内に内包される頂点のIDが蓄積されている。実体接続情報1009については後述する。なお、反転フラグ1006は、同じテンプレートを反転させて利用する場合には必要であるが、そのようなテンプレートの適用を行わない場合は設けなくてもよい。
次に、テンプレート一致箇所検出手段104は、入力データ106から分離手段103により分離された相互参照関係データ900から、テンプレート蓄積手段102に蓄積されているテンプレートに一致する箇所を検出する。テンプレート蓄積手段102には、複数のテンプレートが蓄積されることが予想されるため、テンプレート一致箇所検出手段104による検出結果は複数通り存在すると考えられる。ただし、例えば後述する図8に示す一致箇所検出手順によれば、検出結果は一意に定まる。
本実施の形態では、テンプレート蓄積手段102に第1のテンプレート1011のみが蓄積されているときに、相互参照関係データ900に対して、図8に示す手順により求めた一致箇所を示す。そのテンプレートの一致箇所1501は、例えば図9(a)に示すように、利用テンプレートID1502、反転フラグ1503およびテンプレートの頂点から元の相互参照関係データ900の頂点への割り当てを表す頂点対応情報1504によって表すことができる。
そして、テンプレート一致箇所検出手段104により、相互参照関係データ900からテンプレート蓄積手段102に蓄積されているテンプレートの一致箇所を検出した結果を表すテンプレート一致箇所情報1505は図9(b)に示す通りである。このテンプレート一致箇所情報1505は、相互参照関係データ900から、テンプレート蓄積手段102に第1のテンプレート1011のみが蓄積されているとき、図8に示す手順にて検出した結果であり、ここでは、第1、第2、第3の一致箇所1506,1507,1508を有し、一致箇所が3箇所あったことを示している。
第1の一致箇所1506及び第2の一致箇所1507は第1のテンプレート1011を反転せず、テンプレートの頂点と元の相互参照関係データ900の頂点をそれぞれ頂点対応情報1509、頂点対応情報1510に示すように対応させることで一致することを表している。また、第3の一致箇所1508は第1のテンプレート1011を反転し、テンプレートの頂点と元の相互参照関係データ900の頂点を頂点対応情報1511に示すように対応させることで一致することを表している。
そして、テンプレート一致箇所検出手段104は、このようなテンプレート一致箇所情報1505をテンプレート置換手段105に伝達(入力)する。
テンプレート置換手段105は、テンプレート一致箇所検出手段104からテンプレート一致箇所情報1505を入力し、そのテンプレート一致箇所情報1505を用いて、元の相互参照関係データ900に対してテンプレートを適用し、テンプレート実体1020を用いて、頂点間の参照情報を参照可能な状態のまま置換し、置換した結果を第1の出力データ107として出力する。
テンプレートを用いて元の相互参照関係データ900を置換する置換手順は、図10に示すとおりで、また、置換した結果は図5に示す相互参照関係データ1100のようになる。この相互参照関係データ1100は圧縮済みの相互参照関係データ(以下「圧縮済み参照データ」ともいう)である。
図10は、置換手順を示す図である。置換手順は、処理開始後、ステップ1に進みiに0をセットして、ステップ2に進み、テンプレート一致箇所情報(テンプレート一致箇所情報1505)に含まれるすべての一致箇所(上述の場合は第1、第2、第3の一致箇所1506,1507,1508)について、それぞれ1つづつステップ3以下の処理を繰り返す。
選択した一致箇所はMiとする。
ステップ3では、テンプレート実体を1つ作成し、実体ID=iとする。このテンプレート実体をOiとし,以下の処理を行う。
利用テンプレートID、反転フラグMiの利用、テンプレートID、反転フラグよりそれぞれ複製する。
実体情報をMiの頂点対応情報より複製する。
実体接続情報は実体情報に記述された対応関係より、元の参照をそのまま代入する。
次に、ステップ4に進んでi=i+1を計算する、
続くステップ5では、作成済のテンプレート実体を1つずつ選択し、以下の処理を繰り返す。選択したテンプレート実体をOiとする。
次に、ステップ6に進み、実体接続情報に記述された参照の接続先頂点が他のテンプレート実体に含まれる場合はテンプレート実体IDとテンプレートの頂点の組に置換する。
図5において、テンプレート実体として、3つのテンプレート実体1124、テンプレート実体1133、テンプレート実体1140が存在している。各テンプレート実体1124、テンプレート実体1133、テンプレート実体1140はそれぞれ実体ID1125、実体ID1131、実体ID1138を有し、そのそれぞれが、“1”,“2”,“3”の値を持っていることで識別可能になっている。各テンプレート実体は、すべて利用テンプレートID1128,1135,1142に“1”が設定され、反転フラグ1126,1132,1139は、前2者が偽、後者が真の値を有している。これにより、テンプレート実体1124,1133は図4(c)に示す第1のテンプレート1011がそのまま適用され、テンプレート実体1140は第1のテンプレート1011が反転して適用されたことを表す。
図5における各テンプレート実体1124,1133,1140の実体情報は、テンプレートが内包する頂点とテンプレート適用前の相互参照関係データの頂点との対応を示す情報が設定されている。そのため、置換された相互参照関係データ1100では、頂点間の参照情報が残り、これらが参照可能になっている。例えば、テンプレート実体1124の場合、実体情報1130には、第1のテンプレート1011の頂点1014,1015,1016,1017および1018がそれぞれ図3(a)に示す圧縮前の相互参照データ900の頂点902,903,904,905,906にそれぞれ一致することを表す情報が設定されている。
また、各テンプレート実体の実体接続情報には、他のテンプレート実体や頂点との接続関係を示す情報が設定されている。各テンプレート実体が適用しているテンプレートは第1のテンプレート1011であるが、第1のテンプレート1011は外部と接続できる参照を4つ保持していることがその接続情報1013に記述されている。
そこで、各テンプレート実体の実体接続情報には、これらの参照先がどの頂点となるのかを記述する。例えばテンプレート実体1124の場合、実体接続情報1129には、頂点1014の親参照は頂点907へ、頂点1016、頂点1017の子参照はそれぞれテンプレート実体IDが“2”の頂点1014、テンプレート実体IDが“3”の頂点1014へ、頂点1018の子参照はどの頂点にも接続しないことを示す情報が設定されている。
図3に示すように、テンプレート適用前の相互参照関係データ900は、各頂点902〜917がそれぞれ4つの参照を持っていたが、図5に示すテンプレート適用後の相互参照関係データ1100は、各頂点間の参照情報を持たないテンプレート実体により置換されている。このような置換を行うことにより、テンプレートの圧縮が可能となっている。また、適用するテンプレートも、従来技術とは以下のような相違がある。つまり、テンプレート一致箇所1508は、第1のテンプレート1011と一致しなかったため、従来技術では、テンプレート一致箇所1508のための別なテンプレートが必要であったが、本実施の形態では、上述したように、第1のテンプレート1011を反転させてテンプレート一致箇所1508に一致させることができるから、テンプレート一致箇所1508のための別なテンプレートを設ける必要がない。そのため、テンプレート蓄積手段102のメモリ使用量(記憶領域)を効率よく利用することが可能となる。
なお、本実施の形態では、図3(b)に示す入力データから分離された型と値を持つ頂点の集合である第2の出力データ108については、分離手段103により分離された後に出力されるだけで圧縮については何ら触れられていない。第2の出力データ108は、例えば、非特許文献1に示される方法等と組み合わせることにより圧縮することが可能である。
また、本実施の形態では、反転フラグは各テンプレート実体に1つずつ用意しているが相互参照関係データ全体で1つとしてもよいし、また両方を設定してもよい。
一方、上述した本実施の形態で示すデータ圧縮装置101を複数種類の入力データに適用する場合、テンプレートについてはその複数種類の入力データ間で共用する共用テンプレートとすることができる。その共用テンプレートは、複数種類の入力データに適用可能であるから、それぞれの入力データに対応してテンプレートを設けることを要しない。したがって、テンプレート蓄積手段102のメモリ使用量の効率化が可能である。
例えば、図11(a)に示すXML文書30の場合、図8に示す一致箇所検出手順により、図2に示すXML文書20と同様、図4(c)に示す第1のテンプレート1011を適用することができる。そこで、テンプレート蓄積手段102は双方のXML文書20,30に適用したテンプレートを区別せずに同一の共用テンプレートとして蓄積することにより、テンプレート蓄積手段102におけるメモリ使用量の効率化(メモリ利用効率の向上)を図ることができる。
なお、図8に示す一致箇所検出手順は以下のとおりである。
処理開始後ステップ11で、パターン蓄積手段に蓄積されたパターンから、頂点の数が多い順に1つずつ選択し、以下の処理を繰り返す。
選択したパターンをPjとする。
次にステップ12に進んで、反転フラグの値を偽、真のそれぞれに対し、以下を繰り返す。
続くステップ13では、相互参照関係データに含まれる頂点から、選択したパターンPの頂点の数と一致する頂点を選択する組み合わせをX1,X2,Xmとし、その中から1つずつ選択して、以下を繰り返す。
選択した組み合わせをXkとする。
次に、ステップ14に進み、Xkに含まれる頂点はすべて置換済みマークが無いか否かを判断し、無ければステップ15に進み、そうでなければ処理を終了する。ステップ15に進むと、XkがPjと同型か否かを判断し、同型であればステップ16に進み、そうでなければ処理を終了する。ステップ16に進むと、Xkを一致箇所として登録し、Xkに含まれる頂点は置換済みとしてマークする。
(第2の実施の形態)
図6(a)に示すような連続する複数の兄弟参照を有する相互参照関係データ1204を圧縮する場合について説明する。データ圧縮装置101によれば、この相互参照関係データ1204は、図6(a)に示す連続兄弟参照部1200を図6(b)に示す第2のテンプレート1201を用いて圧縮する。図6(b)に示す第2のテンプレート1201はテンプレートID1202と、接続情報1203を有するが、第1のテンプレート1101とは異なり、パターン情報を有していない。この第2のテンプレート1201は、相互参照関係データ1204のような連続兄弟参照部を有する相互参照関係データを圧縮するために設けた連続兄弟参照用テンプレートである。
ここで、相互参照関係データ1204では、図6(a)に示すように、連続兄弟参照部1200が、第1、第2、第3から第NまでのN個の頂点2a,2b,2c,・・・2nを有し、第1の頂点2aと第2の頂点2b以外の連続番号を有する各頂点は必ず相互に参照し、第1の頂点2aが第2の頂点2bを参照し、かつ連続兄弟参照部1200の外部にある頂点2pへの参照を保持している。また、第Nの頂点2nは、図示しない第N−1の頂点を参照し、さらに、第2から第Nまでの各頂点が、連続兄弟参照部1200の外部への参照をまったく保持しないようになっている(または、例えば、図3における頂点912,913のように同数の参照を保持するようになっていてもよい)。
このような相互参照関係データ1204を圧縮するには、少なくとも、連続兄弟参照部1200を構成する頂点の個数と、第1の頂点の外部への参照がわかればよいので、第2のテンプレート1201における接続情報1203には、連続兄弟参照部を構成する頂点の個数Nと、テンプレートの親参照pが設定されている。なお、テンプレートID1202は“2”を有している。
図7は、図6(b)に示す第2のテンプレート1201を用いて、相互参照関係データ1204を圧縮した後の相互参照関係データ1300を示す図である。この場合の圧縮では、テンプレートにおける一致箇所の検出やテンプレートの適用は第1の実施の形態と同様にすることで可能である。
図7において、相互参照関係データ1300には、テンプレート実体として、テンプレート実体1318,1323,1329の3つが存在し、実体ID1317,実体ID1322,実体ID1328は、それぞれ“1”,“2”,“3”の値を有している。各テンプレート実体は、すべて利用テンプレートID1326,1334,1333を有していて、いずれも“2”が設定されている(これは、第2のテンプレート1201を用いて圧縮したことを意味している)。なお、本実施の形態では、反転フラグを用いないため各テンプレート実体1318,1323,1329には反転フラグが設けられていない。
各テンプレート実体1318,1323,1329の実体接続情報1320,1325,1331は連続兄弟参照部を構成する頂点の個数N(それぞれ、N=4,3,2)と、各テンプレート実体の親参照pを記録している。例えばテンプレート実体1318の場合では、N=4、pは401になっている。各テンプレート実体の実体情報1321,1327,1332には、テンプレートにより内包される頂点を示す情報が示されている。例えば、テンプレート実体1318の場合は、実体接続情報1320より示されている4つの頂点、すなわち、頂点402、403、404,405を示している。
以上のように相互参照関係データ1204は第2のテンプレート1201を用いて圧縮可能である。その圧縮に用いる第2のテンプレート1201はパターン情報を有していないため、第2のテンプレート1201を記憶するのに必要な記憶容量が少なくて済む。そのため、各テンプレート蓄積手段102のメモリ使用量を削減することが可能である。
データ復元装置の実施の形態
次に、データ復元装置1801について、図12を用いて説明する。図12は本実施の形態に係るデータ復元装置1801の構成を示すブロック図である。このデータ復元装置1801は、図5に示すような圧縮後の相互参照関係データ(圧縮済み参照データ)1100と、図3(b)に示す型と値を有する複数の頂点からなる頂点群のデータとから、それぞれが型と値を有する複数の頂点と、頂点間の参照情報とを有する元の入力データを復元する。データ復元装置1801は、テンプレート蓄積手段1802と、合成手段1803と、テンプレート展開手段1804とを有している。
なお、図12において、データ復元装置1801は各手段が一体化された単一の装置として構成されているが、必ずしも単一の装置として実現される必要はなく、複数の装置を図示しない通信手段により接続して実現することも可能である。例えば、データ復元装置1801からテンプレート蓄積手段1802を分離した上で、テンプレート蓄積手段1802を別な単一装置として実現し、両装置間を図示しない通信手段により接続する構成にしてもよい。そうすると、テンプレート蓄積手段1802を有しない複数のデータ圧縮装置間でテンプレート蓄積手段1802を共有するといったことも可能になる。
テンプレート展開手段1804は第1の入力データ1806として与えられた圧縮後の相互参照関係データをテンプレート蓄積手段1802に蓄積されたテンプレートを用いて展開する。その展開は、例えば上述した図13に示した復元手順で行うことができる。テンプレート展開手段1804により復元された相互参照関係データは、図3に示す相互参照関係データ900のようになる。
合成手段1803は展開された相互参照関係データと、図3(b)に示す第2の入力データとして与えられた複数の型と値を有する頂点群のデータとを合成し、合成されたデータを出力データ1805として出力する。その合成は、図3(b)に示すテーブル950における型と値を持つ頂点群において、各頂点に頂点IDが割り振ってあるため、頂点IDが一致する相互参照関係データの頂点に、型と値をあてはめていくことによって行う。
以上のような手順により、それぞれが型と値を有する元の複数の頂点と、頂点間の参照情報からなる入力データを復元することが可能である。
復元手順は以下のとおりである。
図13において、開始後のステップ21で、圧縮済みの相互参照関係データに含まれるすべてのテンプレート実体をX1,X2,Xnとし、すべてについて以下を行う。
選択したテンプレート実体をXiとする。
次にステップ22に進み、テンプレート実体Xiが利用するテンプレートが持つ頂点間の参照情報を複製し、テンプレート実体Xiの実体情報に記述される頂点のIDを割り振る。
次いでステップ23に進み、テンプレート実体Xiの実体接続情報に記述された頂点が他のテンプレート実体Xmに含まれる頂点の場合、テンプレート実体Xmに記述される頂点IDで置換する。
データ管理装置の実施の形態
本発明によるデータ圧縮装置により、相互参照関係データを圧縮すると、その圧縮後のデータへのアクセス速度の若干の低下が見込まれる。そのため、データの利用頻度を観測しておいて、その時々で利用頻度の高いものは非圧縮とし、いったん圧縮した相互参照関係データについても、利用頻度が高くなれば非圧縮の状態に戻し、逆に利用頻度が低くなれば再度圧縮する、といった方法でデータ管理を行うことが好ましい。このようなデータ管理を行うデータ管理装置を設ければ、装置全体の高速化と省メモリ化を両立させることも可能である。
図14は、このようなデータ管理を行えるデータ管理装置2000の構成を示すブロック図である。データ管理装置2000は、第1のデータ蓄積手段2001と、第2のデータ蓄積手段2004と、データ圧縮装置2002と、データ復元装置2003とを有している。また、データ管理装置2000は、利用頻度観測手段2006と、制御手段2005と、選択手段2008とを有している。
なお、本実施の形態におけるデータ管理装置2000は、各装置が一体化された単一の装置とされているが、本発明によるデータ管理装置は、必ずしも単一の装置として実現される必要はなく、各装置を図示しない通信手段により接続して実現することもできる。例えば、データ管理装置2000より、第1のデータ蓄積手段2001を分離し、データ圧縮装置2002から、後述のテンプレート蓄積手段102を取り除いた上で、第1のデータ蓄積手段2001を別な単一装置として実現し、両装置間を通信手段により接続する構成をとることができる。そうすると、第1のデータ蓄積手段2001を有しない複数のデータ管理装置間で第1のデータ蓄積手段2001を共有するといったことも可能になる。また、その他の構成手段についても同様である。
第1のデータ蓄積手段2001は、圧縮可能なデータとして、圧縮前のコンピュータに適した形式のデータ(例えば図20に示した相互参照関係データ400等)を蓄積している。第2のデータ蓄積手段2004は、圧縮されたデータ(例えば、図5に示す相互参照関係データ1100等)を蓄積している。ここで、データ圧縮装置2002は上述した本発明によるデータ圧縮装置101と同じ構成を有し、データ復元装置2003は上述したデータ復元装置1801と同じ構成を有している。
制御手段2005は第1のデータ蓄積手段2001、第2のデータ蓄積手段2004、データ圧縮装置2002、データ復元装置2003、選択手段2008をシステム外部から入力されるデータ指定2009に基づいて制御する。この制御手段2005は、利用頻度観測手段2006からの移動要求にしたがい、データ指定2009の指定に対応するデータを移動させるための制御を行う。選択手段2008は、制御手段2005の指示にしたがい、第1のデータ蓄積手段2001と第2のデータ蓄積手段2003のいずれかから蓄積されているデータを取得して出力する。
利用頻度観測手段2006は、第1のデータ蓄積手段2001または第2のデータ蓄積手段2004に蓄積されているデータ(相互参照関係データ)の利用頻度を観測し、観測した利用頻度に応じて後述する移動要求を出力する。この利用頻度観測手段2006は、利用履歴リスト2007を内部に保持している。この利用履歴リスト2007には、例えば、利用要求のあったデータの識別IDを利用要求のあった順に複数個(N個)線形リスト(図示せず)として保存している。
本実施の形態におけるデータ管理装置2000は、内部に蓄積するデータを一意に識別するための識別IDを各データに割り振っている。データ指定2009は、そのための識別IDを外部から入力する手段である。
以降、実際の動作内容について説明する。
データ管理装置2000の場合、データは第1、第2いずれかのデータ蓄積手段2001、2004に保存されているが、初期状態では、第1データ蓄積手段2001、第2のデータ蓄積手段2004のいずれにデータを蓄積しておいてもよい。以下の説明では、すべて第2のデータ蓄積手段2004に蓄積しておくことを想定している。
制御手段2005は、データ指定2009により、外部から識別IDが入力されると、それを受けて利用頻度観測手段2006に指示を入力する。利用頻度観測手段2006は制御手段2005の指示を受けて、該当するデータが第1のデータ蓄積手段2001と第2のデータ蓄積手段2004のいずれに蓄積されているか、および、両手段の間でのデータの移動があるか否かを通知する情報を制御手段2005に入力する。
ここで、利用頻度観測手段2006は、第1、第2のデータ蓄積手段2001,2004の指定について、利用履歴リスト2007を参照し、データ指定2009により指定されるデータがその利用履歴リスト2007に有るか否かを判断する。そして、例えばそのデータが有れば第1のデータ蓄積手段2001に蓄積されているとし、無ければ第2のデータ蓄積手段2004から蓄積されている、というようにして返答する。
さらに、利用頻度観測手段2006は、第1、第2のデータ蓄積手段2001,2004の間でデータ移動の有無については、次のようにして制御手段2005に返答する。例えば、利用履歴リスト2007が更新された時、その利用履歴リスト2007に新規に載った(記録された)データは第2のデータ蓄積手段2004から第1のデータ蓄積手段2001へ移動したとし、利用履歴リスト2007から外れたデータは第1のデータ蓄積手段2001から第2のデータ蓄積手段2004へ移動したとして返答する。
そして、制御手段2005は利用頻度観測手段2006からの上述した返答に基づき、第1のデータ蓄積手段2001または第2のデータ蓄積手段2004を制御して、記憶しているデータを出力させ、選択手段2008により、いずれかから得たデータをデータ管理装置2000の外部に出力する。
また、制御手段2005は利用頻度観測手段2006からデータの移動要求があったときに、データ蓄積手段2001,2004の間でデータを移動させるための制御を行う。例えば、第1のデータ蓄積手段2001から第2のデータ蓄積手段2004に移動するような移動要求があったときは、そのデータの利用頻度が低いため、第1のデータ蓄積手段2001からデータを取り出し、そのデータをデータ圧縮装置2002を用いて圧縮した上で、第2のデータ蓄積手段2004に格納するように、データ移動の制御を行う。第1のデータ蓄積装置2001からは取り出したデータを削除するように制御する。
逆に、第2のデータ蓄積手段2004から第1のデータ蓄積手段2001に移動するように、移動要求があったときは、そのデータの利用頻度が高いので、第2のデータ蓄積手段2004からデータを取り出し、その圧縮されているデータをデータ復元装置2003を用いて復元し、その復元されたデータを第1のデータ蓄積手段2001に格納するように制御する。また、第2のデータ圧縮装置2004からは取り出したデータを削除するように制御する。
以上のように、データ管理装置2000によると、利用頻度観測手段2006からの移動要求に応じて制御手段2005がデータの移動を制御することにより、第1のデータ蓄積手段2001と第2のデータ蓄積手段2004との間でデータを移動させることができるから、利用頻度に応じて、相互参照関係データを圧縮済みか、非圧縮の状態に適宜変えて蓄積することができる。すると、利用頻度の高いデータに関しては、非圧縮の状態で蓄積することにより、利用速度が高いまま維持されるため、動作速度を高速にしつつ全体としてのメモリ使用量を抑えることができる。
(その他の実施の形態)
本発明によれば、図15に示すようなテンプレートをテンプレート蓄積手段に格納することもできる。図15は第3のテンプレート2100を示す図である。図15に示す第3のテンプレート2100のパターン情報2103において、エリア2104,2105における頂点間の参照情報は、図4(c)に示す第1のテンプレート1011のパターン情報に一致することが分かる。したがって、テンプレートやテンプレート実体を拡張し、内部に適用されたテンプレートの数や、テンプレート内部の各テンプレートを一意に識別できるID等を記述する情報を付加することにより、テンプレート内部のパターン情報に対しても、前述までのテンプレートを適用することが可能になる。
ここでは説明のためにテンプレート内部のパターン情報に前述までのテンプレートを適用するとき、元のテンプレートを親テンプレート、テンプレート内部のパターン情報に適用されるテンプレートを子テンプレートと呼ぶことにする。
テンプレート内部のパターン情報にも、テンプレートの適用を可能とするための親テンプレート2300と親テンプレート実体2320の構成例をそれぞれ図17(a),(b)に示す。親テンプレート2300と親テンプレート実体2320は、図4に示す第1の実施の形態で用いたテンプレート1003及びテンプレート実体1020に対し、前者に内部テンプレート情報2301を追加し、後者に内部テンプレート実体接続情報2302及び内部テンプレート実体情報2303を追加している。
内部テンプレート情報2301には、例えば、子テンプレートの数や、子テンプレートのIDを記述する。内部テンプレート実体情報2303には、子テンプレートに内包される頂点が親テンプレートを実際に適用するとき、親テンプレート適用前の頂点とどのように対応するのかの対応関係を各頂点毎に記述する。内部テンプレート実体接続情報2302には、親テンプレートを実際に適用した際、子テンプレートが外部の親テンプレートと接続するときの接続情報を記述する。
そして、図16に、図17(a)に示すテンプレートの具体的な親テンプレート2200を示す。この親テンプレート2200は、内部テンプレート情報2216に2種類の子テンプレートを2箇所に適用していることから、ID=1、ID=2としている。パターン情報2203は、第1の実施の形態に示すように、相互参照関係データを圧縮する要領で圧縮されており、第1のテンプレート1011が適用されている。
このように構成した親テンプレート2200を相互参照関係データに適用すれば、テンプレートを定義するのに他のテンプレートの定義を利用できるため、図15に示すような第3のテンプレート2100に比べて、テンプレートの情報量を削減することが可能である。
本発明の実施の形態に係るデータ圧縮装置の構成を示すブロック図である。 (a)はXML文書の一例を示す図、(b)は(a)のXML文書のデータ構造を示す図である。 (a)は図2のXML文書から分離された相互参照関係データを示す図、(b)は頂点の集合のテーブルを示す図である。 (a)はテンプレートの構成を示すブロック図、(b)はテンプレート実体の構成を示すブロック図、(c)は第1のテンプレートの構成を示すブロック図である。 圧縮後の相互参照関係データを示す図である。 (a)は別の相互参照関係データを示す図、(b)は第1のテンプレートの構成を示すブロック図である。 図6における圧縮後の相互参照関係データを示す図である。 一致箇所の検出手順の一例を示す図である。 (a)はテンプレートの一致箇所を示すブロック図、(b)はテンプレート一致箇所情報を示すブロック図である。 置換手順の一例を示す図である。 (a)は別のXML文書を示す図、(b)は(a)のXML文書のデータ構造を示す図である。 本実施の形態に係るデータ復元装置の構成を示すブロック図である。 テンプレートから元の頂点の参照情報を復元する手順の一例を示す図である。 データ管理装置の構成を示すブロック図である。 第1のテンプレートの構成を示すブロック図である。 内部にテンプレートを有する親テンプレートの一例を示すブロック図である。 (a)は親テンプレートを示すブロック図、(b)は親テンプレート実体を示すブロック図である。 XML文書の別の一例を示す図である。 図18のXML文書のデータ構造を示す図である。 (a)は図19のXML文書から分離された相互参照関係データを示す図、(b)は頂点の集合のテーブルを示す図である。 図18のXML文書から分離されたデータ構造を示す図である。 図18のXML文書から分離された要素名情報を示す図である。 図18のXML文書から分離されたテキスト情報を示す図である。
符号の説明
20,30…XML文書
21,31…データ構造
101…データ圧縮装置
102,1802…テンプレート蓄積手段
103…分離手段
104…テンプレート一致箇所検出手段
105…テンプレート置換手段
106…入力データ、107…第1の出力データ
108…第2の出力データ
900,1100…相互参照関係データ
1204、1300…相互参照関係データ
901…頂点、950…テーブル
1003…テンプレート
1020,1124、1133…テンプレート実体
1140,1323,1329…テンプレート実体
1011…第1のテンプレート
1201…第2のテンプレート
1501…一致箇所
1505…テンプレート一致箇所情報
1801,2003…データ復元装置
1803…合成手段
1804…テンプレート展開手段
2000…データ管理装置
2001…第1のデータ蓄積手段
2002…データ圧縮装置
2004…第2のデータ蓄積手段
2005…制御手段、2006…利用頻度観測手段
2008…選択手段、2100…第3のテンプレート
2200、2300…親テンプレート
2320…親テンプレート実体

Claims (8)

  1. 型と値をそれぞれ有する複数の頂点と、該頂点間の参照情報とを有する入力データを、前記頂点間の参照情報を有する相互参照関係データと、前記型と値を有する複数の頂点からなる頂点群とに分離し、その分離された前記頂点群のデータを出力する分離手段と、
    特定のパターンを有する前記頂点間の参照情報を、前記頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、
    前記分離手段により分離された前記相互参照関係データから、前記テンプレート蓄積手段に蓄積されているテンプレートと一致する箇所を検出するテンプレート一致箇所検出手段と、
    前記分離手段により分離された相互参照関係データのうち、前記テンプレート一致箇所検出手段により検出された一致箇所を前記テンプレートで前記頂点間の参照情報を参照可能な状態に置換し、その置換された相互参照関係データを出力するテンプレート置換手段とを有することを特徴とするデータ圧縮装置。
  2. それぞれの値を有し、該各値が属性情報として型を有することが可能な複数の頂点と、該頂点間の参照情報とを有する入力データを、前記頂点間の参照情報を有する相互参照関係データと、前記値を有する複数の頂点からなる頂点群とに分離し、その分離された前記頂点群のデータを出力する分離手段と、
    特定のパターンを有する前記頂点間の参照情報を、前記頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、
    前記分離手段により分離された前記相互参照関係データから、前記テンプレート蓄積手段に蓄積されているテンプレートと一致する箇所を検出するテンプレート一致箇所検出手段と、
    前記分離手段により分離された相互参照関係データのうち、前記テンプレート一致箇所検出手段により検出された一致箇所を前記テンプレートで前記頂点間の参照情報を参照可能な状態に置換し、その置換された相互参照関係データを出力するテンプレート置換手段とを有することを特徴とするデータ圧縮装置。
  3. 前記テンプレートが、前記頂点間の参照情報の一部または全部の参照方向を反転可能なことを特徴とする請求項1または2記載のデータ圧縮装置。
  4. 第1から第NまでのN個の頂点を有し、前記第1の頂点と第2の頂点以外の連続番号を有する前記頂点は相互に参照し、前記第1の頂点が前記第2の頂点を参照し、かつ外部への参照を保持し、前記第Nの頂点が第N−1の頂点を参照し、前記第2から第Nまでの各頂点が、外部への参照を保持しないか、またはすべて同数の参照を保持する連続兄弟参照部を有する前記相互参照関係データに適用するための接続情報を有する連続兄弟参照用テンプレートが、前記テンプレート蓄積手段に蓄積されていることを特徴とする請求項1〜3のいずれか一項記載のデータ圧縮装置。
  5. 前記頂点間の参照情報に、前記テンプレートを適用可能な親テンプレートが前記テンプレート蓄積手段に蓄積されていることを特徴とする請求項1〜4のいずれか一項記載のデータ圧縮装置。
  6. 複数の前記入力データに共用可能な共用テンプレートが前記テンプレート蓄積手段に蓄積されていることを特徴とする請求項1〜5のいずれか一項記載のデータ圧縮装置。
  7. 特定のパターンを有する複数の頂点間の参照情報を、前記頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、
    前記テンプレートにより置換され、圧縮された相互参照関係データを第1の入力データとして入力し、前記相互参照関係データから、前記テンプレートを用いて圧縮前の元の相互参照関係データを復元する展開手段と、
    型と値をそれぞれ有する複数の前記頂点からなる頂点群のデータを第2の入力データとして入力し、前記頂点群のデータを前記展開手段により復元された前記相互参照関係データと合成したデータを出力する合成手段とを有することを特徴とするデータ復元装置。
  8. 圧縮可能なデータを蓄積する第1のデータ蓄積手段と、
    請求項1〜6のいずれか一項記載のデータ圧縮装置により圧縮されたデータを蓄積する第2のデータ蓄積手段と、
    前記第1のデータ蓄積手段及び第2のデータ蓄積手段に蓄積されたそれぞれのデータの利用頻度を観測し、該観測された利用頻度に応じて移動要求を出力する利用頻度観測手段と、
    該利用頻度観測手段からの移動要求にしたがい、前記利用頻度が高い高頻度データを請求項7記載のデータ復元装置により復元して前記第1のデータ蓄積手段へ格納し、前記利用頻度が前記高頻度データよりも低いデータを前記データ圧縮装置により圧縮して前記第2のデータ蓄積手段へ格納するようにして、データを移動させるための制御を行う制御手段と、
    前記第1のデータ蓄積手段と第2のデータ蓄積手段のいずれかから、前記制御手段の指示に応じてデータを取得して出力する選択手段とを有することを特徴とするデータ管理装置。
JP2003328428A 2003-09-19 2003-09-19 データ圧縮装置、データ復元装置およびデータ管理装置 Expired - Fee Related JP4261299B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003328428A JP4261299B2 (ja) 2003-09-19 2003-09-19 データ圧縮装置、データ復元装置およびデータ管理装置
US10/935,584 US7774387B2 (en) 2003-09-19 2004-09-08 Data compressor, data decompressor, and data management system
EP04021354A EP1517449A3 (en) 2003-09-19 2004-09-08 Compression of XML documents
CNB2004100787884A CN100354861C (zh) 2003-09-19 2004-09-17 数据压缩器和数据解压缩器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003328428A JP4261299B2 (ja) 2003-09-19 2003-09-19 データ圧縮装置、データ復元装置およびデータ管理装置

Publications (2)

Publication Number Publication Date
JP2005094652A JP2005094652A (ja) 2005-04-07
JP4261299B2 true JP4261299B2 (ja) 2009-04-30

Family

ID=34191395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003328428A Expired - Fee Related JP4261299B2 (ja) 2003-09-19 2003-09-19 データ圧縮装置、データ復元装置およびデータ管理装置

Country Status (4)

Country Link
US (1) US7774387B2 (ja)
EP (1) EP1517449A3 (ja)
JP (1) JP4261299B2 (ja)
CN (1) CN100354861C (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085737A1 (en) * 2004-10-18 2006-04-20 Nokia Corporation Adaptive compression scheme
US20070005625A1 (en) * 2005-07-01 2007-01-04 Nec Laboratories America, Inc. Storage architecture for embedded systems
FR2907568B1 (fr) * 2006-10-23 2008-12-26 Canon Kk Procede et dispositif de generation de motifs mixtes de reference a partir d'un document ecrit en langage de balisage et procedes et dispositifs de codage et de decodage associes.
US7836396B2 (en) * 2007-01-05 2010-11-16 International Business Machines Corporation Automatically collecting and compressing style attributes within a web document
JP4756003B2 (ja) * 2007-03-01 2011-08-24 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム
FR2914759B1 (fr) 2007-04-03 2009-06-05 Canon Kk Procede et dispositif de codage d'un document hierarchise
US7746250B2 (en) * 2008-01-31 2010-06-29 Microsoft Corporation Message encoding/decoding using templated parameters
CN101499065B (zh) * 2008-02-01 2011-11-02 华为技术有限公司 基于fa的表项压缩方法及装置、表项匹配方法及装置
GB2463920B (en) * 2008-09-30 2012-08-22 Cambridge Broadband Networks Ltd Improved data compression
CN102473175B (zh) * 2009-07-31 2015-02-18 惠普开发有限公司 Xml数据的压缩
CN102053990A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 结构化文档的处理方法和设备
US20120084635A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Parameterized template compression for binary xml
CN102447604B (zh) * 2010-09-30 2016-01-27 迈普通信技术股份有限公司 路由表信息存储方法以及路由设备
CN107193642A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 任务数据压缩切换方法、宜压缩程度评价方法及相关装置
CN106934066B (zh) * 2017-03-31 2024-06-18 联想(北京)有限公司 一种元数据处理方法、装置和存储设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09130616A (ja) 1995-10-27 1997-05-16 Matsushita Electric Ind Co Ltd 画像圧縮方法
US6349372B1 (en) * 1999-05-19 2002-02-19 International Business Machines Corporation Virtual uncompressed cache for compressed main memory
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
JP2001251617A (ja) 2000-03-06 2001-09-14 Japan Science & Technology Corp 自己相似性を利用した平均値伝送符号化・復号化方法及びその装置
JP2001282516A (ja) 2000-03-30 2001-10-12 Digital Electronics Corp ユーザーインターフェース装置、および、そのプログラムが記録された記録媒体
US6874141B1 (en) * 2000-06-29 2005-03-29 Microsoft Corporation Method of compiling schema mapping
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
JP4774145B2 (ja) 2000-11-24 2011-09-14 富士通株式会社 構造化文書圧縮装置および構造化文書復元装置並びに構造化文書処理システム
US7047382B2 (en) * 2000-11-29 2006-05-16 Quickshift, Inc. System and method for managing compression and decompression and decompression of system memory in a computer system
US7194683B2 (en) * 2001-03-02 2007-03-20 International Business Machines Corporation Representing and managing dynamic data content for web documents
JP2003044459A (ja) 2001-08-02 2003-02-14 Hitachi Software Eng Co Ltd 構造化データに対するデータ圧縮方法およびデータ交換方法
US7669120B2 (en) 2002-06-21 2010-02-23 Microsoft Corporation Method and system for encoding a mark-up language document

Also Published As

Publication number Publication date
EP1517449A2 (en) 2005-03-23
EP1517449A3 (en) 2005-08-10
CN1598811A (zh) 2005-03-23
JP2005094652A (ja) 2005-04-07
US20050102304A1 (en) 2005-05-12
US7774387B2 (en) 2010-08-10
CN100354861C (zh) 2007-12-12

Similar Documents

Publication Publication Date Title
JP4261299B2 (ja) データ圧縮装置、データ復元装置およびデータ管理装置
JP6596102B2 (ja) コンテンツ連想シーブに存在している基本データエレメントからデータを導出することによるデータの無損失削減
Ferragina et al. Structuring labeled trees for optimal succinctness, and beyond
JP3973557B2 (ja) 構造化された文書を圧縮/伸長する方法
US7912818B2 (en) Web graph compression through scalable pattern mining
Policriti et al. LZ77 computation based on the run-length encoded BWT
CN102112986B (zh) 对基于列的数据编码的结构的高效的大规模处理
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US20070255748A1 (en) Method of structuring and compressing labeled trees of arbitrary degree and shape
CN104040899B (zh) 生成符号的代码字母表以便为与程序一起使用的字生成代码字
JP5241738B2 (ja) 表からツリー構造データを構築する方法及び装置
Oswald et al. An optimal text compression algorithm based on frequent pattern mining
EP1990737A1 (en) Document transformation system
JP6467937B2 (ja) 文書処理プログラム、情報処理装置および文書処理方法
JP2018524886A (ja) 基本データシーブを用いて無損失削減されたデータに対する多次元検索、コンテンツ連想的な取出し、ならびにキーワードベースの検索および取出しの実行
Policriti et al. From LZ77 to the run-length encoded burrows-wheeler transform, and back
Pibiri et al. Dynamic elias-fano representation
Nishimoto et al. An optimal-time RLBWT construction in BWT-runs bounded space
JPWO2014097359A1 (ja) 圧縮プログラム、圧縮装置、伸張プログラムおよび伸張装置
JP5194856B2 (ja) コンパクトな決定図を用いた効率的インデックス付け
KR100500245B1 (ko) 객체 지향 프로그램이 기록된 저장 매체
Mishra et al. Fast pattern matching in compressed text using wavelet tree
JP5029684B2 (ja) パターンマッチング方法及びプログラム
JP4394964B2 (ja) データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム
Oswald et al. An efficient text compression algorithm-data mining perspective

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090205

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees