JP2009123019A - データ圧縮装置、データ伸長装置およびデータ圧縮方法 - Google Patents

データ圧縮装置、データ伸長装置およびデータ圧縮方法 Download PDF

Info

Publication number
JP2009123019A
JP2009123019A JP2007297193A JP2007297193A JP2009123019A JP 2009123019 A JP2009123019 A JP 2009123019A JP 2007297193 A JP2007297193 A JP 2007297193A JP 2007297193 A JP2007297193 A JP 2007297193A JP 2009123019 A JP2009123019 A JP 2009123019A
Authority
JP
Japan
Prior art keywords
data
schema
index
schema files
similarity
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.)
Granted
Application number
JP2007297193A
Other languages
English (en)
Other versions
JP5379372B2 (ja
Inventor
Keisuke Tamiya
圭介 田宮
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2007297193A priority Critical patent/JP5379372B2/ja
Priority to US12/270,766 priority patent/US8229975B2/en
Priority to EP08169174A priority patent/EP2077505B1/en
Publication of JP2009123019A publication Critical patent/JP2009123019A/ja
Application granted granted Critical
Publication of JP5379372B2 publication Critical patent/JP5379372B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/146Coding or compression of tree-structured data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】複数の構造化データを効率的に圧縮処理する。
【解決手段】圧縮の対象となる複数の構造化データと各々に対応する複数のスキーマファイルとを入力する入力手段と、入力された複数のスキーマファイルの内、少なくとも2つのスキーマファイルが含まれるスキーマファイルの組に対して、共通のボキャブラリ集合を導出し、当該共通のボキャブラリ集合に含まれるボキャブラリの各々に対しインデックスを関連付けるインデックスデータを生成するインデックスデータ生成手段と、スキーマファイルの組に含まれるスキーマファイルに対応する構造化データの各々について、インデックスデータに基づいて構造化データ内のボキャブラリを対応するインデックスに置換する置換手段と、を備える。
【選択図】図1

Description

本発明は、構造化データの圧縮技術に関するものである。
インターネット上で交換するデータを記述するための言語として、標準化団体であるワールドワイド・ウェブ・コンソーシアム(W3C)が仕様を策定しているXML(eXtensive Markup Language)がある。XMLは、データ内容を要素や属性などの部品単位で記述し、データを構造化して表現することができる。そして、XMLで記述されるデータ内で使用される要素、属性の定義情報を表現するXMLスキーマが用いられる。XMLスキーマを記述するための言語には、W3Cが仕様を策定しているXML Schemaや、国際標準化機構(ISO)が仕様を策定しているRelax NGなどがある。
XMLで記述されたデータは、一般的にはタグと呼ばれる文字列を使って要素や属性を記述するテキスト形式である。しかし、バイナリXMLと呼ばれる技術を使ってXMLで記述されたデータのサイズを圧縮する方法も考えられている(例えば、特許文献1)。バイナリXML技術では、構造化されたデータを構成する要素名、属性名などの文字列を、変換テーブルを用いて、より小さいサイズで表現可能な符号に置換して圧縮する手法が用いられる。
特開2005−215951号公報
しかしながら、上述のデータ圧縮の際に、要素名、属性名をインデックス化する変換テーブルを作成する必要がある。そして、この変換テーブルは、個別の構造化データごと、もしくはSVG言語などXMLスキーマで定義された言語ごとに変換テーブルを作成する必要があった。すなわち、複数の異なる構造化データを圧縮する場合、構造化データ分もしくは、構造化データを記述する言語種別数分変換テーブルが必要であった。
そのため、例えば、Webサービスを使ってネットワーク上の複数の機器から機器の設定情報などのXMLデータを収集して一箇所に保存するような場合、メモリや記憶媒体などのリソースの浪費が発生する場合があった。つまり、機器の設定情報のスキーマが機器のバージョンごとにほとんど変わらない場合でも、ボキャブラリが重複する冗長な変換テーブルをバージョンごとに複数作成しなければならなかった。
上述の問題点を解決するために、本発明のデータ圧縮装置は以下の構成を備える。すなわち、構造化データを圧縮処理するデータ圧縮装置であって、圧縮の対象となる複数の構造化データと該複数の構造化データの各々に対応する複数のスキーマファイルとを入力する入力手段と、入力された複数のスキーマファイルの内、少なくとも2つのスキーマファイルが含まれるスキーマファイルの組に対して、共通のボキャブラリ集合を導出し、該共通のボキャブラリ集合に含まれるボキャブラリの各々に対しインデックスを関連付けるインデックスデータを生成するインデックスデータ生成手段と、前記スキーマファイルの組に含まれるスキーマファイルに対応する構造化データの各々について、前記インデックスデータに基づいて構造化データ内のボキャブラリを対応するインデックスに置換する置換手段と、を備える。
上述の問題点を解決するために、本発明のデータ圧縮方法は以下の構成を備える。すなわち、構造化データを圧縮処理する構造化データ圧縮方法であって、圧縮の対象となる複数の構造化データと該複数の構造化データの各々に対応する複数のスキーマファイルとを入力する入力工程と、入力された複数のスキーマファイルの内、少なくとも2つのスキーマファイルが含まれるスキーマファイルの組に対して、共通のボキャブラリ集合を導出し、該共通のボキャブラリ集合に含まれるボキャブラリの各々に対しインデックスを関連付けるインデックスデータを生成するインデックスデータ生成工程と、前記スキーマファイルの組に含まれるスキーマファイルに対応する構造化データの各々について、前記インデックスデータに基づいて構造化データ内のボキャブラリを対応するインデックスに置換する置換工程と、を備える。
本発明によれば、構造化データの圧縮処理をより効率的に実行可能とする技術を提供することができる。
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施形態は例示であり、本発明の範囲を限定する趣旨のものではない。
(第1実施形態)
本発明に係るデータ圧縮装置の第1実施形態として、XML形式で記述した構造化データを圧縮するデータ圧縮装置を例に挙げて以下に説明する。
<装置構成>
図1は、第1実施形態に係るデータ圧縮装置の内部構成を示す図である。なお、当該データ圧縮装置により圧縮された構造化データを元の構造化データに復元するデータ伸長装置も併せて示している。
データ圧縮装置100は、RAM110、記憶部130、CPU140が含まれる。また、以下で詳細に説明するボキャブラリ抽出部111、スキーマ類似度算出部112、類似スキーマ選択部113、ボキャブラリ収集部120、インデックスデータ生成部114、データ圧縮処理部115が含まれる。
記憶部130は、例えばハードディスクドライブ(HDD)などにより構成され、圧縮の対象となる構造化データ132と、構造化データ132に対応するスキーマ(スキーマファイル)131が格納される。また、圧縮処理の結果生成される、圧縮管理データ135、インデックスデータ133、圧縮データ(圧縮構造化データ)134が生成されて格納される。
ボキャブラリ抽出部111は、スキーマ131から要素名、属性名などのボキャブラリを抽出して、スキーマごとに後述するボキャブラリ一覧表117を生成する機能部である。
スキーマ類似度算出部112は、ボキャブラリ一覧表117に基づいて各スキーマ間の類似度を算出し、スキーマ類似度一覧表118に登録する機能部である。類似スキーマ選択部113は、後述するスキーマ類似度一覧表118を参照して、類似するスキーマをグループ分けし、スキーマグループ一覧表116に結果を登録する機能部である。インデックスデータ生成部114は、スキーマグループ一覧表116とボキャブラリ一覧表117とを参照して後述するスキーマグループごとにインデックスデータ133を生成する機能部である。
データ圧縮処理部115は、インデックスデータ133を参照して構造化データ132内のボキャブラリをインデックス値に置換する機能部である。なお、データ圧縮処理部115は、インデックスデータ133を特定し、圧縮管理データ135に書き出す機能も有する。
ボキャブラリ収集部120は、各スキーマに対応するボキャブラリ一覧表117を参照し、各スキーマに含まれるのボキャブラリの和集合を導出する機能部である。
データ伸長装置200は、RAM210、記憶部230、CPU240が含まれる。また、以下で詳細に説明するデータ伸長処理部211、インデックスデータ選択部212が含まれる。
データ伸長処理部211は、インデックスデータ232を参照して圧縮データ233中のインデックス値をボキャブラリに置換して構造化データ234を復元する機能部である。
インデックスデータ選択部212は、圧縮データ233を伸長する際に、後述する圧縮管理データ231を参照してどのインデックスデータ232を使用するのかを特定する機能部である。
なお、以下の説明では、データ圧縮装置100とデータ伸長装置200とを別体の装置として説明するが、同一の装置内に組み込んでも良い。例えば、同一のPC上で、本発明のデータ圧縮を実行するプログラムとデータ伸長を実行するプログラムとを動作させるよう構成してもよい。
また、ここでは、データ圧縮装置100とデータ伸長装置200とは、各種データをネットワークケーブル300を介して送受信可能なよう構成されているとして説明する。ただし、ハードディスクやCD−ROMなどの記録媒体などを介してデータの受け渡しを行ってもよい。
<データの構造>
図2は、ISOで仕様が策定されているスキーマ言語であるRelax NG(http://www.relaxng.org/spec−20011203.html)で記述したスキーマの例を示す図である。ここでは、書籍リストに係る異なる2つのバージョンのスキーマである”booklist1.rng”(図2(a))および”booklist2.rng”(図2(b))を示している。また、住所リストに係る異なる2つのバージョンのスキーマである”addresslist1.rng”(図2(c))および”addresslist2.rng”(図2(d))を示している。
図3は、W3Cで仕様が策定されているXML形式で記述した構造化データの例を示す図である。なお、”booklist1.xml”(図3(a))および”booklist2.xml”(図3(b))はそれぞれ、”booklist1.rng”および”booklist2.rng”をスキーマとした構造化データである。また、”addresslist1.xml”(図3(c))および”addresslist2.xml”(図3(d))はそれぞれ、”addresslist1.rng”および”addresslist2.rng”をスキーマとした構造化データである。
図7は、構造化データとスキーマとの関係を記述する構造化データ一覧表の例を示す図である。
構造化データ一覧表には、構造化データ名欄701に記述された構造化データが従うスキーマのファイル名がスキーマ名欄702に記述されている。なお、以下の説明では、データ圧縮処理の前に、予め操作者やアプリケーションによって構造化データ一覧表が登録されていることを想定している。しかし、構造化データ内に記述されたスキーマの場所に関する情報(例えば、W3C XML SchemaのschemaLocation属性)や、名前空間URIを参照して自動生成するよう構成してもよい。
<装置の動作:データ圧縮処理>
次に、第1実装形態であるデータ圧縮装置100におけるデータ圧縮処理の流れについて説明する。
図10は、データ圧縮装置におけるデータ圧縮処理の概略フローチャートである。なお以下のステップは、データ圧縮装置100が上述した各機能部を制御することにより実現される。
ステップS1001では、ボキャブラリと、当該ボキャブラリと置換するインデックス値との対応を定義するインデックスデータ133を生成する。
ステップS1002では、ステップS1001で生成したインデックスデータ133を参照し、構造化データ132内のボキャブラリ(要素名、属性名など)をインデックス値に置換することにより圧縮データ134を生成する。
以下では、図10に示した各ステップの詳細について説明する。
図13は、インデックスデータ生成処理(S1001)の詳細フローチャートである。なお、以下のフローは例えばユーザによる操作の受付などにより開始される。
ステップS1301では、インデックスデータ生成部114はボキャブラリ抽出部111に、構造化データ132の文法を定義した各スキーマ131のボキャブラリ一覧表117を生成するよう要求する。つまり、ここでは図2に示した4つのスキーマのそれぞれに対してのボキャブラリの一覧表の生成を要求する。
ステップS1302では、ボキャブラリ抽出部111は、後述するボキャブラリ一覧生成処理を実行し、各スキーマに対応するボキャブラリ一覧表117を生成する。
図4は、スキーマに対応するボキャブラリ一覧表の例を示す図である。なお、図4(a)〜(d)はそれぞれ、図2(a)〜(d)に示したスキーマに対するボキャブラリ一覧表であり、スキーマで定義されたボキャブラリ(要素名、属性名)が登録されている。
ステップS1303では、インデックスデータ生成部114はスキーマ類似度算出部112に、スキーマ類似度一覧表118を生成するよう要求する。つまり、ここでは図2に示した4つのスキーマ間の類似度の一覧表の生成を要求する。
ステップS1304では、スキーマ類似度算出部112は、後述するスキーマ類似度一覧生成処理を実行し、各スキーマ間のボキャブラリの類似度を導出する。そして、スキーマ類似度一覧表118を生成する。
図6は、スキーマ類似度一覧表の例を示す図である。2つのスキーマの類似度は、それぞれのスキーマ名が記述された行と列で指定される項目に登録される。ここでは、類似度を0から1までの数字で表しており、数字が大きいほど類似度が高いことを示している。
ステップS1305では、インデックスデータ生成部114は類似スキーマ選択部113に、類似度が予め設定された値以上(ここでは0.5とする)であるか否かに基づいて類似したスキーマごとにグループ分けするよう要求する。
ステップS1306では、類似スキーマ選択部113は、スキーマ類似度一覧表118を参照し、スキーマをグループ分けする。例えば、スキーマ類似度一覧表118に図6の値が設定されていた場合、まず、閾値が0.5以上のスキーマの組み合わせをリストアップする。そして、スキーマの重複選択を行わないよう類似度が高い組み合わせから順番に選択して1グループにする。選択されなかったスキーマは、1スキーマを1グループとする。ここでは、類似度0.93である(booklist1.rng, booklist2.rng)の組み合わせと、類似度0.71である(addresslist1.rng, addresslist2.rng)の組み合わせと、がそれぞれグループとして選択される。その後、類似スキーマ選択部113は、スキーマグループ一覧表116に、”00000001”から順番にグループ番号を付与し、スキーマ名と共にスキーマ名を登録する。
図15は、スキーマグループ一覧表の例を示す図である。スキーマグループ一覧表は、グループごとに登録されるスキーマ名欄1502と、”00000001”から順番に付与されたグループ番号欄1501と、で構成される。
ステップS1307からステップS1311の処理は、ステップS1306で分けられたグループの各々に対して実行される。
ステップS1308では、ボキャブラリ収集部120は、スキーマグループ一覧表116のスキーマ名欄を参照し、グループに属するスキーマのファイル名一覧を取得する。
ステップS1309では、ボキャブラリ収集部120は、ステップS1308で取得したスキーマのファイル名に基づいて、当該スキーマに対応するボキャブラリ一覧表117をすべて参照し、ボキャブラリの和集合を生成する。例えば、グループ番号”00000001”に属するスキーマは、”booklist1.rng”および”booklist2.rng”であるため、対応するボキャブラリ一覧表に登録してあるボキャブラリの和集合をとると、
{list, book, isbn, name, price, stock, writer}
となる。
ステップS1310では、インデックスデータ生成部114は、ステップS1309で生成した和集合の要素に、インデックス値を関連付ける。インデックス値としては例えば、#1、#2・・・といった番号が使用できる。そして、この関連付けの対応表をインデックスデータ133として生成する。
図5は、インデックスデータの例を示す図である。スキーマグループ一覧表のグループ番号に対応するインデックスデータは、グループ番号+拡張子(ここでは”idx”)で命名される。図5(a)および(b)はそれぞれグループ番号”00000001”および”00000002”に対応するインデックスデータである。なお、ここでは、インデックス番号(#1,#2・・・)とボキャブラリとがコンマで区切られ記述されたCSV形式の例を示している。しかし、両者の対応を定義するものであれば、バイナリデータなど他の任意の形式で記述してかまわない。
図11は、ボキャブラリ一覧生成処理(S1302)の詳細フローチャートである。
ボキャブラリ抽出部111は、ボキャブラリ一覧表生成要求をされると、以下の処理をスキーマ131の数だけ繰り返す。つまり、ここでは4つのスキーマについて計4回繰り返す。
ステップS1102では、ボキャブラリ抽出部111が空のボキャブラリ一覧表117を生成する。
ステップS1103では、スキーマ131を読み込み(入力手段)、スキーマ131の定義の最初から最後まで順番にたどる(S1104〜S1108)。そして、要素名、属性名が定義されていた場合は、ボキャブラリ一覧表117にボキャブラリとして追加する(S1105、S1106、S1107)。
例えば、図2(a)のスキーマの場合、要素の定義(element要素)の名前(name属性)の値を順番に抽出し、抽出された要素名
{list, book, isbn, name, price, stock}
がボキャブラリ(共通のボキャブラリ集合)として登録される。
図12は、スキーマ類似度一覧生成処理(S1304)の詳細フローチャートである。
スキーマ類似度算出部112(類似度導出手段)は、スキーマ類似度一覧生成要求を受け取ると、空のスキーマ類似度一覧表118を生成し(S1201)、以下の処理を比較する2つのスキーマの組み合わせの数だけ繰り返す。つまり、各スキーマファイル間の類似度を導出する。
なおここでは、ベクトルの角度の余弦値でスキーマ間の類似度を導出に、文書検索などで使われるベクトル空間モデルを適用する。
例えば類似度を導出する関数は以下のように定義することができる。
sim(i,j) = cosT = (Vi,Vjの内積)/(Viの大きさ*Vjの大きさ)
= (Vi・Vj)/|Vi||Vj|
ここで、
sim(i,j): スキーマiとスキーマjの類似度
Vi: スキーマiのボキャブラリを表すベクトル
Vj: スキーマjのボキャブラリを表すベクトル
T: Vi,Vjのなす角度
である。算出される値は0から1の間の値であり、0の場合は類似する部分が無いことを示し、1の場合は完全一致することを示す。
まず、スキーマ類似度算出部112は、ボキャブラリ一覧表117を参照して、選択した2つのスキーマのボキャブラリの和集合を生成する(S1203、S1204)。例えば、図2の”booklist1.rng”および”booklist2.rng”の組み合わせを選択した場合、それぞれのボキャブラリ一覧表117は、図4(a)および(b)であるので、その和集合は、
{list, book, isbn, name, price, stock, writer}
となる。
次に、スキーマ類似度算出部112は、和集合内の各要素が各スキーマのボキャブラリ一覧表に存在するかどうかを1(存在する)または0(存在しない)で表現し、ベクトルの成分とする(S1205、S1206)。
例えば、図4(a)から以下の成分をもつベクトルが生成される。
(1, 1, 1, 1, 1, 1, 0)
同様に、図4(b)から以下の成分をもつベクトルが生成される。
(1, 1, 1, 1, 1, 1, 1)
ステップS1208では、スキーマ類似度算出部112は、上述の導出関数を用い、類似度を求め、スキーマ類似度一覧表118に値を登録する。例えば、”booklist1.rng”と”booklist2.rng”との類似度は以下のよう導出される。
sim(booklist1.rng, booklist2.rng)
= (Vbooklist1.rng・Vbooklist2.rng)/|Vbooklist1.rng||Vbooklist2.rng|
= (1*1)+(1*1)+(1*1)+(1*1)+(1*1)+(1*1)+(0*1)
/(1+1+1+1+1+1+0)1/2 * (1+1+1+1+1+1+1)1/2
= 6/(42)1/2 = 0.93
同様に、他のスキーマ間の類似度はそれぞれ以下のように算出される。
sim(booklist1.rng, addresslist1.rng) = 0.33
sim(booklist1.rng, addresslist2.rng) = 0.33
sim(booklist2.rng, addresslist1.rng) = 0.31
sim(booklist2.rng, addresslist2.rng) = 0.31
sim(addresslist1.rng, addresslist2.rng) = 0.71
図14は、ボキャブラリ置換処理(S1002)の詳細フローチャートである。
データ圧縮処理部115は、構造化データ132のデータ圧縮要求を受けると、以下の処理を圧縮する構造化データの数だけ繰り返す。
ステップS1402では、データ圧縮処理部115は、構造化データ一覧表119を参照し、構造化データの文法定義を行うスキーマ名を取得する。
ステップS1402では、データ圧縮処理部115は、スキーマグループ一覧表116を参照してグループ番号を取得する。
ステップS1403では、圧縮に使用するインデックスデータ133を決定する。なお、ここでは、(スキーマグループのグループ番号).idxをスキーマインデックスデータのファイル名としている。
例えば、図3(a)の構造化データ”booklist1.xml”を圧縮する場合、構造化データ一覧表を参照するとスキーマ名”booklist1.rng”が登録されている。また、スキーマグループ一覧表を参照すると、スキーマ名”booklist1.rng”がグループ番号”00000001”のグループに登録されている。そのため、”00000001.idx”がインデックスデータであると決定される。
ステップS1404では、データ圧縮処理部115は、圧縮後の構造化データである圧縮データ134と決定したインデックス名とを記述した圧縮管理データ135を生成あるいは追記する。なお、ここでは、圧縮データ134の名前を、元の構造化データ132の名前の拡張子を”.comp”に変更した名前としている。
ステップS1406では、データ圧縮処理部115は、インデックスデータ133を読み込み、構造化データ132内の要素名、属性名をインデックスデータに記述されているインデックス値に逐次置換する。
ステップS1407では、ステップS1406の置換処理が終了したデータを圧縮データ134として生成する。
例えば、インデックスデータが”00000001.idx”、構造化データが”booklist1.xml”であった場合、置換により生成された圧縮データ134は、”booklist1.comp”として記憶部130に格納される。
図8は、圧縮データの例を示す図である。図8(a)〜(d)は、それぞれ図3(a)〜(d)の構造化データを圧縮した際の圧縮データを示している。図から分かるように、各タグのボキャブラリがインテックス番号に置換され、全体の文字数(つまりデータ容量)が小さくなっていることが分かる。上述したように、ここでは、圧縮データ名を構造化データ名の拡張子を”xml”から”comp”に変更したものを使用している。
図9は、圧縮管理データの例を示す図である。この例では、圧縮データ名とデータ伸長処理に必要なインデックスデータ名とがコンマで区切られたCSV形式で記述した例を示している。しかし、両者の対応が定義できればバイナリデータなど、どのような形式で記述してもよい。
<データ伸長処理>
次に、データ伸長装置200におけるデータ伸長処理全体の流れについて説明する。なお、以下の説明では、圧縮データ233、インデックスデータ232、圧縮管理データ231は、データ伸長装置200の記憶部230にコピーされているものとする。ただし、これらのデータをネットワークケーブル300を介してデータ圧縮装置100の記憶部130から読み取るよう構成してもよい。
図16は、データ伸長装置におけるデータ伸長処理のフローチャートである。
データ伸長装置200は、データ伸長処理要求を受け取ると、データ伸長処理部211は、対象となる圧縮データ233の数だけ以下の処理を繰り返す。
ステップS1602では、データ伸長処理部211は、インデックスデータ選択部212に、伸長する圧縮データ名を指定して対応するインデックスデータの名前を取得要求する。
ステップS1603では、インデックスデータ選択部212は、圧縮管理データ231を読み込み、圧縮データ名に対応するインデックスデータ名を取得し、データ伸長処理部211に渡す。
例えば、図8(a)の圧縮データ”booklist1.comp”を伸長する場合、圧縮管理データ(図9)を参照すると、インデックスデータ名は”00000001.idx”である。
ステップS1604では、データ伸長処理部211は、取得したインデックスデータ名のインデックスデータ232と圧縮データ233とを読み込む。
ステップS1605では、圧縮データ233内のインデックス値を、インデックスデータ232に記述されているボキャブラリ(要素名、属性名など)に逐次置換する。
ステップS1606では、ステップS1605の置換処理が終了したデータを構造化データ234として生成する。例えば、図8(a)の圧縮データ ”booklist1.comp”内のインデックス値は、インデックスデータ”00000001.idx”に登録されているボキャブラリに置換される。そして、構造化データである図3(a)”booklist1.xml”が復元される。
以上説明したとおり第1実施形態によれば、類似度に基づいてグループ化された複数のスキーマに対して単一のインデックスデータを生成する。このように構成することにより、変換テーブルの数が減少し全体として変換テーブル群に要するサイズを縮小することが出来る。特に、同じ言語の異バージョンなど、ボキャブラリが似ている言語で記述された構造化データが複数混在する場合に特に効果がある。
そのため、データ圧縮装置は大容量の記憶部を搭載することなく効率的に構造化ファイルを圧縮することが可能となり、リソースを大きくすることが困難な家電機器や携帯機器などで有効である。
また、得られた圧縮データは、インデックスデータに基づいて容易に構造化データに復元可能である。
(変形例)
上述の第1実施形態において、スキーマ類似度一覧生成処理(S1304)においては、ボキャブラリのベクトル化によりスキーマ間の類似度を導出した。しかし、類似度の導出に他の手法を適用しても良い。
例えば、XMLデータでは、ボキャブラリが属するスキーマを名前空間URI定義で表現することが可能である。例えば、図3(a)および(b)の構造化データでは、名前空間URIとして以下の文字列が指定されている。
(a) http://example.org/booklist/1.0
(b) http://example.org/booklist/2.0
このように、名前空間URIの文字列を決める際、URIの末尾に策定日付や数字でバージョン番号を指定するような運用を行うことにより、言語バージョン間で多くのボキャブラリが共有されていると仮定できる。その場合、名前空間URIの文字列比較で行うことにより類似度の算出処理を高速化することができる。
例えば類似度を導出する関数は以下のように定義することができる。
sim(i,j)
= 1 名前空間URIのバージョン番号を除く文字列(部分文字列)が同一
= 0 (上記以外)
つまり、部分文字列が同一である場合を類似度が高いと判定する。
この導出式により、図2の各スキーマの類似度は以下のように算出される。
sim(booklist1.rng, booklist2.rng) = 1
sim(booklist1.rng, addresslist1.rng) = 0
sim(booklist1.rng, addresslist2.rng) = 0
sim(booklist2.rng, addresslist1.rng) = 0
sim(booklist2.rng, addresslist2.rng) = 0
sim(addresslist1.rng, addresslist2.rng) = 1
図17は、変形例に係るスキーマ類似度一覧表を示す図である。
このように構成することにより、各スキーマ間の類似度の導出を高速に実行することができる。これにより、複数のスキーマに対するグループ化を高速に実行でき、圧縮処理全体に必要な時間を大幅に低減することが可能となる。
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク(CD、DVD)、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ROMなどがある。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
第1実施形態に係るデータ圧縮装置の内部構成を示す図である。 スキーマの例を示す図である。 構造化データの例を示す図である。 スキーマに対応するボキャブラリ一覧表の例を示す図である。 インデックスデータの例を示す図である。 スキーマ類似度一覧表の例を示す図である。 構造化データとスキーマとの関係を記述する構造化データ一覧表の例を示す図である。 圧縮データの例を示す図である。 圧縮管理データの例を示す図である。 データ圧縮装置におけるデータ圧縮処理の概略フローチャートである。 ボキャブラリ一覧生成処理の詳細フローチャートである。 スキーマ類似度一覧生成処理の詳細フローチャートである。 インデックスデータ生成処理の詳細フローチャートである。 ボキャブラリ置換処理の詳細フローチャートである。 スキーマグループ一覧表の例を示す図である。 データ伸長装置におけるデータ伸長処理のフローチャートである。 変形例に係るスキーマ類似度一覧表を示す図である。

Claims (9)

  1. 構造化データを圧縮処理するデータ圧縮装置であって、
    圧縮の対象となる複数の構造化データと該複数の構造化データの各々に対応する複数のスキーマファイルとを入力する入力手段と、
    入力された複数のスキーマファイルの内、少なくとも2つのスキーマファイルが含まれるスキーマファイルの組に対して、共通のボキャブラリ集合を導出し、該共通のボキャブラリ集合に含まれるボキャブラリの各々に対しインデックスを関連付けるインデックスデータを生成するインデックスデータ生成手段と、
    前記スキーマファイルの組に含まれるスキーマファイルに対応する構造化データの各々について、前記インデックスデータに基づいて構造化データ内のボキャブラリを対応するインデックスに置換する置換手段と、
    を備えることを特徴とするデータ圧縮装置。
  2. 前記インデックスデータ生成手段は、入力された複数のスキーマファイルに含まれるスキーマファイル間の類似度を導出する類似度導出手段を備えており、
    前記スキーマファイルの組は、前記類似度導出手段により導出された類似度が予め指定された値以上であるスキーマファイルの組であることを特徴とする請求項1に記載のデータ圧縮装置。
  3. 前記類似度導出手段は、
    入力された複数のスキーマファイルの各々に対し当該スキーマファイルに含まれるボキャブラリの一覧表を生成し、該一覧表に基づいて前記複数のスキーマファイルに含まれるスキーマファイル間の類似度を導出することを特徴とする請求項2に記載のデータ圧縮装置。
  4. 前記共通のボキャブラリ集合は、前記スキーマファイルの組に含まれるボキャブラリの和集合であることを特徴とする請求項1乃至3の何れか一項に記載のデータ圧縮装置。
  5. 前記類似度導出手段は、前記和集合に基づいて前記スキーマファイルの組に含まれるスキーマファイルの各々に対応するベクトルを生成し類似度を導出することを特徴とする請求項4に記載のデータ圧縮装置。
  6. 前記類似度導出手段は、前記複数のスキーマファイルの各々で定義された名前空間の文字列に基づいて類似度を導出することを特徴とする請求項2に記載のデータ圧縮装置。
  7. 請求項1乃至6の何れか一項に記載のデータ圧縮装置によって圧縮処理された圧縮構造化データを伸長処理するデータ伸長装置であって、
    伸長の対象となる圧縮構造化データを入力する入力手段と、
    入力された圧縮構造化データが圧縮された際に前記データ圧縮装置により生成されたインデックスデータを取得する取得手段と、
    前記インデックスデータに基づいて圧縮構造化データに含まれるインデックスを対応するボキャブラリに置換する置換手段と、
    を備えることを特徴とするデータ伸長装置。
  8. 構造化データを圧縮処理するデータ圧縮方法であって、
    圧縮の対象となる複数の構造化データと該複数の構造化データの各々に対応する複数のスキーマファイルとを入力する入力工程と、
    入力された複数のスキーマファイルの内、少なくとも2つのスキーマファイルが含まれるスキーマファイルの組に対して、共通のボキャブラリ集合を導出し、該共通のボキャブラリ集合に含まれるボキャブラリの各々に対しインデックスを関連付けるインデックスデータを生成するインデックスデータ生成工程と、
    前記スキーマファイルの組に含まれるスキーマファイルに対応する構造化データの各々について、前記インデックスデータに基づいて構造化データ内のボキャブラリを対応するインデックスに置換する置換工程と、
    を備えることを特徴とするデータ圧縮方法。
  9. コンピュータを請求項1乃至6の何れか一項に記載のデータ圧縮装置として機能させるためのプログラム。
JP2007297193A 2007-11-15 2007-11-15 データ圧縮装置、データ伸長装置およびデータ圧縮方法 Expired - Fee Related JP5379372B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007297193A JP5379372B2 (ja) 2007-11-15 2007-11-15 データ圧縮装置、データ伸長装置およびデータ圧縮方法
US12/270,766 US8229975B2 (en) 2007-11-15 2008-11-13 Data compression apparatus, data decompression apparatus, and method for compressing data
EP08169174A EP2077505B1 (en) 2007-11-15 2008-11-14 Data compression apparatus and method for compressing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007297193A JP5379372B2 (ja) 2007-11-15 2007-11-15 データ圧縮装置、データ伸長装置およびデータ圧縮方法

Publications (2)

Publication Number Publication Date
JP2009123019A true JP2009123019A (ja) 2009-06-04
JP5379372B2 JP5379372B2 (ja) 2013-12-25

Family

ID=40460164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007297193A Expired - Fee Related JP5379372B2 (ja) 2007-11-15 2007-11-15 データ圧縮装置、データ伸長装置およびデータ圧縮方法

Country Status (3)

Country Link
US (1) US8229975B2 (ja)
EP (1) EP2077505B1 (ja)
JP (1) JP5379372B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015864A1 (ja) * 2013-07-31 2015-02-05 株式会社日立ソリューションズ センサデータ収集システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128912B2 (en) * 2012-07-20 2015-09-08 Fujitsu Limited Efficient XML interchange schema document encoding
US9876507B2 (en) * 2013-02-22 2018-01-23 Sap Se Semantic compression of structured data
JP2015115652A (ja) * 2013-12-09 2015-06-22 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067348A (ja) * 1999-06-21 2001-03-16 Fujitsu Ltd 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体
JP2002269068A (ja) * 2001-03-12 2002-09-20 Shigenori Tanaka 構造化文書処理装置
US20030088543A1 (en) * 2001-10-05 2003-05-08 Vitria Technology, Inc. Vocabulary and syntax based data transformation
JP2004518231A (ja) * 2001-02-05 2004-06-17 エクスプウェイ 文書の構造化された記述を圧縮するための方法
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法
JP2005258682A (ja) * 2004-03-10 2005-09-22 Nippon Telegraph & Telephone East Corp スキーマ変換方法、スキーマ変換装置、スキーマ変換用プログラム、およびプログラム記録媒体
JP2006344171A (ja) * 2005-06-10 2006-12-21 Canon Inc 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
JP2007052556A (ja) * 2005-08-16 2007-03-01 Tokyo Institute Of Technology 複数のxml文書の類似度検出方法および類似性検出システム、ならびに複数のxml文書の統合方法
JP2007293874A (ja) * 2007-05-18 2007-11-08 Degital Works Kk 文書の圧縮格納方法及び装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US5835912A (en) * 1997-03-13 1998-11-10 The United States Of America As Represented By The National Security Agency Method of efficiency and flexibility storing, retrieving, and modifying data in any language representation
JP3859313B2 (ja) 1997-08-05 2006-12-20 富士通株式会社 タグ文書の圧縮装置および復元装置,圧縮方法および復元方法,圧縮/復元装置および圧縮/復元方法並びに圧縮,復元もしくは圧縮/復元プログラムを記録したコンピュータ読み取り可能な記録媒体
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
US6826566B2 (en) * 2002-01-14 2004-11-30 Speedtrack, Inc. Identifier vocabulary data access method and system
DE10351897A1 (de) * 2003-07-15 2005-02-17 Siemens Ag Verfahren zur Codierung von strukturierten Dokumenten
JP4168946B2 (ja) 2004-01-29 2008-10-22 Kddi株式会社 文書データの符号化又は復号化方法及びそのプログラム
US7348904B2 (en) * 2004-02-19 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Selective updating of compression dictionary
US7281002B2 (en) * 2004-03-01 2007-10-09 International Business Machine Corporation Organizing related search results
US20050278139A1 (en) * 2004-05-28 2005-12-15 Glaenzer Helmut K Automatic match tuning
US8954400B2 (en) * 2004-09-13 2015-02-10 International Business Machines Corporation Method, system and program product for managing structured data
US7596574B2 (en) * 2005-03-30 2009-09-29 Primal Fusion, Inc. Complex-adaptive system for providing a facted classification
US7849090B2 (en) * 2005-03-30 2010-12-07 Primal Fusion Inc. System, method and computer program for faceted classification synthesis
US7606781B2 (en) * 2005-03-30 2009-10-20 Primal Fusion Inc. System, method and computer program for facet analysis
US7844557B2 (en) * 2006-05-16 2010-11-30 Sony Corporation Method and system for order invariant clustering of categorical data
US7761394B2 (en) * 2006-05-16 2010-07-20 Sony Corporation Augmented dataset representation using a taxonomy which accounts for similarity and dissimilarity between each record in the dataset and a user's similarity-biased intuition
US7774288B2 (en) * 2006-05-16 2010-08-10 Sony Corporation Clustering and classification of multimedia data
JP4146479B2 (ja) * 2006-09-28 2008-09-10 株式会社東芝 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067348A (ja) * 1999-06-21 2001-03-16 Fujitsu Ltd 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体
JP2004518231A (ja) * 2001-02-05 2004-06-17 エクスプウェイ 文書の構造化された記述を圧縮するための方法
JP2002269068A (ja) * 2001-03-12 2002-09-20 Shigenori Tanaka 構造化文書処理装置
US20030088543A1 (en) * 2001-10-05 2003-05-08 Vitria Technology, Inc. Vocabulary and syntax based data transformation
JP2005018672A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd 構造化文書の圧縮方法
JP2005258682A (ja) * 2004-03-10 2005-09-22 Nippon Telegraph & Telephone East Corp スキーマ変換方法、スキーマ変換装置、スキーマ変換用プログラム、およびプログラム記録媒体
JP2006344171A (ja) * 2005-06-10 2006-12-21 Canon Inc 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
JP2007052556A (ja) * 2005-08-16 2007-03-01 Tokyo Institute Of Technology 複数のxml文書の類似度検出方法および類似性検出システム、ならびに複数のxml文書の統合方法
JP2007293874A (ja) * 2007-05-18 2007-11-08 Degital Works Kk 文書の圧縮格納方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015864A1 (ja) * 2013-07-31 2015-02-05 株式会社日立ソリューションズ センサデータ収集システム
JP2015028742A (ja) * 2013-07-31 2015-02-12 株式会社日立ソリューションズ センサデータ収集システム

Also Published As

Publication number Publication date
US8229975B2 (en) 2012-07-24
JP5379372B2 (ja) 2013-12-25
EP2077505B1 (en) 2013-01-09
EP2077505A2 (en) 2009-07-08
US20090132569A1 (en) 2009-05-21
EP2077505A3 (en) 2011-06-22

Similar Documents

Publication Publication Date Title
US8756489B2 (en) Method and system for dynamic assembly of form fragments
US20170277672A1 (en) Information processing device, information processing method, and computer program product
CN101271390A (zh) 修改xml数据结构的软件、***和方法
WO2017036348A1 (zh) 一种可扩展标记语言xml文档的压缩、解压方法和装置
JP5379372B2 (ja) データ圧縮装置、データ伸長装置およびデータ圧縮方法
EP1870821A1 (en) Structured data conversion method
JP2014521159A (ja) 文書の圧縮、解凍及び照会のための方法及び装置
US9189464B2 (en) Method and system for XML multi-transform
JP5867540B2 (ja) プログラム生成装置、プログラム生成装置の制御方法、およびプログラム
JP2015197826A (ja) 情報処理装置、情報処理方法及びプログラム
CN102171696A (zh) 定制资料的生成方法和装置
JP2010267092A (ja) 情報処理装置、情報処理方法
JP6795767B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP2005056085A (ja) データ構造変換プログラム
KR20220079073A (ko) 멀티미디어 변환 콘텐츠 제작 서비스 제공장치의 제작 인터페이스 장치
JP5230193B2 (ja) データ検索装置、データ検索方法、及びコンピュータプログラム
KR20220079042A (ko) 서비스 제공 프로그램 기록매체
KR20220079029A (ko) 문서 기반 멀티 미디어 콘텐츠 자동 제작 서비스 제공 방법
CN101799758A (zh) 规格管理装置
JP7048912B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP6700559B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP2010157165A (ja) 情報処理装置、情報処理方法、及びプログラム
CN101350919B (zh) 记录装置、记录方法
JP6756967B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP2008158753A (ja) 情報処理装置、情報処理方法、情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

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: 20130830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130927

LAPS Cancellation because of no payment of annual fees