(57)【要約】【課題】、ヘッダとインスタンスとを含むテキスト形式のデータの容量を減らす。【解決手段】一の実施形態によれば、情報処理装置は、テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象が分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づける属性の組み合わせとその順番を規定する属性規定情報との組に対して、前記組を識別するデータ構成識別情報を割り当てるデータ構成符号化部を備える。情報処理装置は、前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報を割り当てるヘッダ構成符号化部を備える。情報処理装置は、前記データ構成識別情報と前記ヘッダ構成識別情報と前記データに含まれるインスタンスとを含む圧縮データを生成する圧縮データ生成部を備える。【選択図】図４
2016057970.tif 000002
【特許請求の範囲】
【請求項１】
テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象が分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づける属性の組み合わせとその順番を規定する属性規定情報との組に対して、前記組を識別するデータ構成識別情報を割り当てるデータ構成符号化部と、
前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報を割り当てるヘッダ構成符号化部と、
前記データ構成識別情報と前記ヘッダ構成識別情報と前記データに含まれるインスタンスとを含む圧縮データを生成する圧縮データ生成部と、
を備える情報処理装置。
【請求項２】
前記データ構成符号化部は、前記データから前記クラス識別情報を抽出し、前記データから前記属性規定情報を生成し、前記クラス識別情報と前記属性規定情報との組に対して前記データ構成識別情報を割り当て、前記データ構成識別情報と前記クラス識別情報と前記属性規定情報とを関連付けて記憶装置に記憶させ、
前記ヘッダ構成符号化部は、前記データから、前記ヘッダ構成情報を生成し、前記生成したヘッダ構成情報に対して前記ヘッダ構成識別情報を割り当て、前記ヘッダ構成識別情報とヘッダ構成情報とを関連付けて前記記憶装置に記憶させ、前記データから、前記インストラクションと前記インストラクションの値の組を読み出し、前記データ構成識別情報とインストラクションと前記インストラクションの値とを関連づけて前記記憶装置に記憶させる
請求項１に記載の情報処理装置。
【請求項３】
前記ヘッダ構成符号化部は、前記データから、前記ヘッダに含まれるインストラクションと前記インストラクションの値の組を取得し、前記取得したインストラクションの値と、前記記憶装置において前記データの構成を識別するデータ構成識別情報と前記インストションとに関連付けられたインストラクションの値とを比較し、比較の結果、値が異なる場合、前記インストラクションに対して別名を生成し、
前記データ構成識別情報と前記別名と前記読み出したインストラクションの値とを関連付けて前記記憶装置に記憶させ、
前記ヘッダ構成識別情報と、前記ヘッダ構成情報に含まれる前記インストラクションが前記別名に置換されたヘッダ構成情報とを関連付けて前記記憶装置に記憶させ、
前記インストラクション構成識別情報と前記別名と前記インストクションとを関連づけて前記記憶装置に記憶させる
請求項１または２に記載の情報処理装置。
【請求項４】
前記記憶装置を有するデータ管理装置と通信する通信部を更に備え、
前記データ構成符号化部は、前記記憶装置に記憶させるデータを前記通信部から前記データ管理装置へ送信させ、当該記憶させるデータを前記データ管理装置に記憶させるようにし、
前記ヘッダ構成符号化部は、前記記憶装置に記憶させるデータを前記通信部から前記データ管理装置へ送信させ、当該記憶させるデータを前記データ管理装置に記憶させるようにする
請求項２または３に記載の情報処理装置。
【請求項５】
前記データ構成符号化部は、前記クラス識別情報と前記属性規定情報との組に対してテキスト符号化を行うことにより、前記データ構成識別情報を生成する
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記ヘッダ構成符号化部は、前記ヘッダ構成情報に対してテキスト符号化を行うことにより、前記ヘッダ構成識別情報を生成する
請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
前記テキスト符号化は、ハッシュ関数を用いたハッシュ値の計算である
請求項５または６に記載の情報処理装置。
【請求項８】
ユーザの入力を受付ける入力装置を更に備え、
前記データ構成符号化部は、前記データ構成情報に対して、前記入力装置がユーザから受け付けた文字列を割り当て、
前記ヘッダ構成符号化部は、前記ヘッダ構成情報に対して、前記入力装置がユーザから受け付けた文字列を割り当てる
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項９】
前記属性規定情報は、前記属性を識別する属性識別情報に前記ヘッダ内で関連付けられた値を、前記ヘッダ内での出現順に並べた情報である
請求項１から８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記ヘッダ構成情報は、前記ヘッダに含まれるインストラクションを前記ヘッダ内における出現順に並べた情報である
請求項１から９のいずれか一項に記載の情報処理装置。
【請求項１１】
（復号装置を規定）
テキスト形式のデータに含まれるヘッダに基づいて、前記データのヘッダが圧縮されているか否かを判定する判定部と、
前記判定部によって前記データのヘッダが圧縮されていると判定された場合、前記データのヘッダからデータ構成識別情報とヘッダ構成識別情報とを抽出し、抽出したヘッダ構成識別情報とデータ構成識別情報のいずれかに関連づけられた情報を含むヘッダ情報を記憶装置から取得するヘッダ情報取得部と、
前記ヘッダ情報取得部により取得されたヘッダ情報を用いて、元データを復元する復元部と、
を備え、
前記記憶装置には、前記データ構成識別情報と前記元データが記述する対象が分類されたクラスを識別するクラス識別情報と前記クラスを特徴づける属性の組み合わせとその順番を規定する前記属性規定情報とが関連付けて記憶され、前記ヘッダ構成識別情報と前記元のヘッダの構成を規定するヘッダ構成情報とが関連付けて記憶されている
情報処理装置。
【請求項１２】
前記復元部は、前記ヘッダ情報に含まれる、ヘッダ構成識別情報に関連付けられたヘッダ構成情報から、ヘッダの個々の行に記載された見出しであるインストラクションの一覧を抽出し、抽出したインストラクション毎に、当該インストラクションと前記データ構成識別情報とに関連付けられたインストラクションの値を取得し、インストラクションとインストラクションの値の組と、圧縮データに含まれるインスタンスとを含むデータを前記元データとして生成する
請求項１１に記載の情報処理装置。
【請求項１３】
前記ヘッダ情報には、前記データ構成識別情報と元のインストラクションと前記元のインストラクションの別名とが関連付けられており、
前記復元部は、前記ヘッダ情報中に、前記データ構成識別情報と処理対象のインストラクションの組に関連付けられた元のインストションが含まれる場合、前記元データに、前記元のインストションと、前記ヘッダ情報で前記処理対象のインストラクションに関連付けられたインストラクションの値との組を含ませる
請求項１２に記載の情報処理装置。
【請求項１４】
データを記憶する第２の記憶装置と、
前記ヘッダ情報取得部が取得したヘッダ情報を前記記憶装置に記憶させるデータ登録部と、
を更に備える請求項１１から１３のいずれか一項に記載の情報処理装置。
【請求項１５】
前記復元部は、前記第２の記憶装置に記憶されたヘッダ情報を用いて、前記元データを復元する請求項１４に記載の情報処理装置。
【請求項１６】
前記記憶装置を有するデータ管理装置と通信する通信部と、
前記データ内のヘッダを圧縮前のヘッダに復元するためのヘッダ情報を前記通信部を介して前記記憶装置から事前に取得する事前取得部と、
前記事前取得部が取得したヘッダ情報を前記第２の記憶装置に記憶させるデータ登録部と、
を更に備える請求項１４または１５に記載の情報処理装置。
【請求項１７】
データ構成符号化部が、テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象が分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づける属性の組み合わせとその順番を規定する属性規定情報との組に対して、前記組を識別するデータ構成識別情報を割り当てるステップと、
ヘッダ構成符号化部が、前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報を割り当てるステップと、
圧縮データ生成部が、前記データ構成識別情報と前記ヘッダ構成識別情報と前記データに含まれるインスタンスとを含む圧縮データを生成するステップと、
を有する情報処理方法。
【請求項１８】
テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象が分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づける属性の組み合わせとその順番を規定する属性規定情報との組に対して、前記組を識別するデータ構成識別情報を割り当てるデータ構成符号化部、
前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報を割り当てるヘッダ構成符号化部、
前記データ構成識別情報と前記ヘッダ構成識別情報と前記データに含まれるインスタンスとを含む圧縮データを生成する圧縮データ生成部、
として機能させるためのプログラム。
【請求項１９】
判定部が、テキスト形式のデータに含まれるヘッダに基づいて、前記データのヘッダが圧縮されているか否かを判定するステップと、
ヘッダ情報取得部が、前記判定部によって前記データのヘッダが圧縮されていると判定された場合、前記データのヘッダからデータ構成識別情報とヘッダ構成識別情報とを抽出し、抽出したヘッダ構成識別情報とデータ構成識別情報のいずれかに関連づけられた情報を含むヘッダ情報を記憶装置から取得するステップと、
復元部が、前記ヘッダ情報取得部により取得されたヘッダ情報を用いて、元データを復元するステップと、
を有し、
前記記憶装置には、前記データ構成識別情報と前記元データが記述する対象が分類されたクラスを識別するクラス識別情報と前記クラスを特徴づける属性の組み合わせとその順番を規定する前記属性規定情報とが関連付けて記憶され、前記ヘッダ構成識別情報と前記元のヘッダの構成を規定するヘッダ構成情報とが関連付けて記憶されている情報処理方法。
【請求項２０】
テキスト形式のデータに含まれるヘッダに基づいて、前記データのヘッダが圧縮されているか否かを判定する判定部、
前記判定部によって前記データのヘッダが圧縮されていると判定された場合、前記データのヘッダからデータ構成識別情報とヘッダ構成識別情報とを抽出し、抽出したヘッダ構成識別情報とデータ構成識別情報のいずれかに関連づけられた情報を含むヘッダ情報を記憶装置から取得するヘッダ情報取得部、
前記ヘッダ情報取得部により取得されたヘッダ情報を用いて、元データを復元する復元部、
として機能させるためのプログラムであって、
前記記憶装置には、前記データ構成識別情報と前記元データが記述する対象が分類されたクラスを識別するクラス識別情報と前記クラスを特徴づける属性の組み合わせとその順番を規定する前記属性規定情報とが関連付けて記憶され、前記ヘッダ構成識別情報と前記元のヘッダの構成を規定するヘッダ構成情報とが関連付けて記憶されているプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、産業のグローバル化や自由化に伴い、異種システム間の相互運用性が重要になってきている。この異種システム間の相互運用性を実現する上で、各分野の機器の性能や特徴及びサービスを電子的に記述して交換し登録する際の標準仕様として、標準オントロジーの開発が進められている。この標準オントロジースの登録及び交換に関して、ＩＥＣ６２６５６（パーセル規格と呼ばれる）が知られている。
【０００３】
このＩＥＣ６２６５６は、スプレッドシートによるデータ交換形式を定める規格である。この規格によるスプレッドシートは、ヘッダセクションとデータセクションの２つの部位で構成される。ヘッダセクションは、データセクションでのインスタンスの記述のための意味的及び構造的情報を与えるものである。ヘッダセクションは、更にシート全体の情報を記述するクラスヘッダセクションと、インスタンスを記述するためのプロパティの情報を個々の列に記述するスキーマヘッダセクションの２つで構成される。データセクションでは、一つのインスタンスは一つの行に記述され、個々のセルには対応するプロパティの値が記述される。以下では、このスプレッドシートを書式として記述されるデータを、ＩＥＣ６２６５６の通称である「パーセル」という語を用いてパーセルデータと呼ぶ。
【０００４】
パーセルデータは、表形式という構造から、ヘッダセクションの各列でメタデータを一度記載すれば、それぞれのセルの値がどのプロパティの値かを識別することができる。これは、データ容量の観点から、一つ一つの値をタグで区切って構造化する必要があるＸＭＬなどの他のデータ書式に比べた利点の一つである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−７７１４１号公報
【特許文献２】特開２００７−２１４６２７号公報
【非特許文献】
【０００６】
【非特許文献１】http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-08
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、データセクションに記載されるインスタンスが１行又は数行程度の場合、データ本体に比べて、ヘッダセクションに記載されるヘッダのデータ容量が大きくなるという欠点がある。例えば、プロパティのＩＤが６文字の英数字で構成されるデータについて、２０個のプロパティがある場合、ヘッダだけで１２０文字を消費する。このため、二次元コードのように、記憶できるデータ容量に制限がある場合には、全てのデータが収まらないという問題がある。
【０００８】
そこで本発明の実施形態が解決しようとする課題は、ヘッダとインスタンスとを含むテキスト形式のデータの容量を減らすことが可能な情報処理装置、情報処理方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００９】
一の実施形態によれば、情報処理装置は、テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象が分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づける属性の組み合わせとその順番を規定する属性規定情報との組に対して、前記組を識別するデータ構成識別情報を割り当てるデータ構成符号化部を備える。情報処理装置は、前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報を割り当てるヘッダ構成符号化部を備える。情報処理装置は、前記データ構成識別情報と前記ヘッダ構成識別情報と前記データに含まれるインスタンスとを含む圧縮データを生成する圧縮データ生成部を備える。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る情報処理システム１の構成を示す図。
【図２】パーセルデータの表示形態及びそのテキスト表現を例示する図。
【図３】本実施形態に係る圧縮データ生成装置３００の構成を示す図。
【図４】本実施形態に係る圧縮データ生成装置３００の機能ブロック図。
【図５】本実施形態に係るデータ管理装置３３０の構成を示す図。
【図６】本実施形態に係るデータ管理装置３３０の機能ブロック図。
【図７Ａ】リモートＤＢ３３２で記憶されるストラクチャテーブルＴ１の構造を例示する図。
【図７Ｂ】リモートＤＢ３３２で記憶されるエイリアステーブルＴ２の構造を例示する図。
【図７Ｃ】リモートＤＢ３３２で記憶されるセルカラムテーブルＴ３の構造を例示する図。
【図７Ｄ】リモートＤＢ３３２で記憶されるヘッダテーブルＴ４の構造を例示する図。
【図８】圧縮データ生成装置３００のデータ構成符号化部３０２の処理の流れの一例を示すフローチャート。
【図９】図２のパーセルデータにデータ構成符号化部３０２の処理を適用した場合を例示する図。
【図１０】圧縮データ生成装置３００のヘッダ構成符号化部３０３の処理の流れの一例を示すフローチャート。
【図１１】図１０のステップＳ７０２におけるクラスヘッダセクションの処理の流れの一例を示すフローチャート。
【図１２】図１１のステップＳ９００におけるインストラクションの処理の流れの一例を示すフローチャート。
【図１３】図１０のステップＳ７０３におけるスキーマヘッダセクションの処理の流れの一例を示すフローチャート。
【図１４】図２のパーセルデータにヘッダ構成符号化部３０３の処理を適用した場合を例示する図である。
【図１５】図２のパーセルデータのヘッダ情報がデータ管理装置３３０のリモートＤＢ３３２に登録された状態で、別のパーセルデータの処理を行った場合の例を表した図。
【図１６】圧縮データ生成装置３００の圧縮データ生成部３０５の処理の流れの一例を示すフローチャート。
【図１７】図２のパーセルデータを入力として、本実施形態における圧縮データ生成装置３００の一連の処理で出力された圧縮パーセルデータの例を示す図。
【図１８】本実施形態に係る圧縮データ生成装置３００の構成を示す図。
【図１９】本実施形態に係るデータ復元装置３６０の機能ブロック図。
【図２０】データ復元装置３６０の判定部３６２の処理の流れの一例を示すフローチャート。
【図２１】データ復元装置３６０のヘッダ情報取得部３６３の処理の流れの一例を示すフローチャート。
【図２２】データ復元装置３６０の復元部３６７の処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１２】
本実施形態で扱うデータは、ヘッダとインスタンスとを含み、ヘッダがマトリックス状に構成されるスプレッドシートで表すことが可能なテキスト形式のデータである。本実施形態では、その一例として、ＩＥＣ６２６５６に準拠したデータ（以下、パーセルデータという）を用いて説明する。
【００１３】
まず、本実施形態に係る情報処理システム１の構成について説明する。図１は、本実施形態に係る情報処理システム１の構成を示す図である。図１に示すように、情報処理システム１は、圧縮データ生成装置（情報処理装置）３００、データ管理装置３３０、及びデータ復元装置（情報処理装置）３６０を備える。圧縮データ生成装置３００、データ管理装置３３０、及びデータ復元装置３６０は、互いにネットワーク１５０を介して接続されており、互いに通信可能である。
【００１４】
圧縮データ生成装置３００は、テキスト形式の元データ（一例として、元のパーセルデータ）を取得し、取得した元データを圧縮することにより、圧縮データ（一例として、圧縮パーセルデータ）を生成する。圧縮データ生成装置３００は、例えば、端末装置である。
【００１５】
データ管理装置３３０は、圧縮データを元データに復元するためのヘッダ情報を記憶する。データ管理装置３３０は、例えば、ヘッダ情報を記憶するサーバである。
【００１６】
データ復元装置３６０は、データ管理装置３３０が記憶するヘッダ情報を用いて、圧縮データ（一例として、圧縮パーセルデータ）から元データ（一例として、元のパーセルデータ）を復元する。データ復元装置３６０は、例えば、端末装置である。
【００１７】
続いて、図２を用いて本実施形態に係るパーセルデータの構造について説明する。本実施形態に係るパーセルデータはスプレッドシートによる製品オントロジーの登録と交換に関する国際規格ＩＥＣ６２６５６で規定される形式のスプレッドシートで表現される。図２は、パーセルデータの表示形態及びそのテキスト表現を例示する図である。
【００１８】
図２の上側の表Ｄ１に示すように、パーセルデータは、行の方向にはヘッダセクションとデータセクションの２つの部位がデータの先頭から順に展開される。一方、列の方向にはインストラクションカラムとセルカラムの順で展開される。ヘッダセクションは更に、パーセルデータ全体に関する情報を記述するためのクラスヘッダセクションと、データセクション内のインスタンスを記述するためのプロパティとその値の組を有するスキーマヘッダセクションの２つの部位で構成される。ここで、一つのインスタンスは、データセクションの一つの行に記述される。図２の例では、一つのインスタンスのみが記述されているため、太枠で囲まれた領域に含まれる値の組が一つのインスタンスを示すが、二つ以上のインスタンスが記述される場合、その数に等しい行がデータセクションに展開され、個々の行に個々のインスタンスが記述される。
【００１９】
インストラクションカラムは、パーセルデータの１列目であり、ヘッダセクションに対しては、コンピュータ及びユーザに対して、各行のヘッダが何を表しているかを指示するインストラクションが記載される。ヘッダセクションのインストラクションは、＃（パウンド）記号に続けてＩＥＣ６２６５６の中で予め定義された命令語、又はユーザが独自に定義した命令語が記述される。
【００２０】
クラスヘッダセクションの各行はインストラクションカラムのみを持ち、＃記号及び命令語に続けて、「：＝」を挟んでその命令語に対応する値が記述される。たとえば、図２の表の１行目の先頭セルに記載されている#CLASS_ID:=AAX001のうち「#CLASS_ID」は、クラスヘッダセクションのインストラクションの１つであり、このパーセルデータがAAX001で指定されるクラスのインスタンスを記述するためのシートであることを示している。このAAX001は、データが記述する対象の物品やサービスが分類されたクラスを識別するクラス識別情報の一例である。例えば、上位のクラスが電気製品である場合、この電気製品のクラスの下位に、例えば、モータ、パソコン、フラッシュメモリなどの個々のクラスがあって、これらの個々のクラスがクラス識別情報によって識別される。
【００２１】
セルカラムは、プロパティとその値を記述するための列である。パーセルデータは１つ以上のセルカラムを持ち、セルカラムは、インストラクションカラムに続いて２列目以降に順に展開される。スキーマヘッダセクションの各行には、個々のセルカラムに割り当てられたプロパティのＩＤ、名称、データ型、単位などが、同じ行のインストラクションカラムに記載された命令語に基づいて記載される。
【００２２】
例えば、図２の表の４行目の先頭セルには、この行のセルカラムにプロパティを識別するプロパティＩＤが展開されていることを示す#PROPERTY_IDが記載されており、２列目以降のセルカラムに個々のプロパティＩＤが順に表示されている。スキーマヘッダセクションの他の行には、それぞれのインストラクション列に記載された命令語に従って、プロパティのＩＤの表示順序と同じ順序で、名称やデータ型、単位などのプロパティの情報が表示されている。
【００２３】
次に、データセクションには、１つ以上のインスタンスが行方向に表示される。ここで、インスタンスは、プロパティとそのプロパティの値の組の集合で表されるものであり、１つのインスタンスに含まれる各プロパティの値は１つの行に表示される。なお、データセクションのインストラクションカラムに＃記号を書いた場合、その行はコメント行として扱われ、システムからは無視される。
【００２４】
このような構造を持つパーセルデータにおいて、ヘッダセクションとデータセクションの境目をコンピュータ及びユーザが識別するには、インストラクションカラムを先頭行から順に走査し、セルの値が＃記号で始まらない最初の行を特定することで、特定した行をデータセクションの最初の行とし、その１つ前の行までをヘッダセクションとする。
【００２５】
次に、図２の下側のテキストＤ２は、図２の上側の表Ｄ１をＣＳＶ（Comma Separated Values）形式で表したものである。ここで、ＣＳＶ形式は非特許文献ＲＦＣ４１８０で仕様が公開されているものであり、スプレッドシートを解釈可能な多くのアプリケーションで、スプレッドシートデータの交換の標準的な方法の１つとして実装されている。なお、本実施形態では、ＣＳＶ形式を例としているが、テキスト形式でスプレッドシートデータを表現する他の形式であってもよい。例えば、カンマの代わりにタブをセルの区切り文字に使うＴＳＢ（Tab Separated Values）であってもよい。
【００２６】
続いて、図３を用いて本実施形態に係る圧縮データ生成装置３００の構成について説明する。図３は、本実施形態に係る圧縮データ生成装置３００の構成を示す図である。図３に示すように、圧縮データ生成装置３００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶装置１０４、媒体読取装置１０６、バスコントローラ１０７、表示装置１０８、入力装置１０９、及び通信部３０４を備える。図３に示すように、圧縮データ生成装置３００の各構成要素は、バスコントローラ１０７を介して接続されており、互いにデータのやり取りが可能である。
【００２７】
ＣＰＵ１０１は、圧縮データ生成装置３００全体を制御する。
【００２８】
ＲＯＭ１０２は、各種データ、及びＣＰＵ１０１が読み出して実行する各種プログラムを記憶する。
【００２９】
ＲＡＭ１０３は、情報を一次記憶する記憶装置であり、ＣＰＵ１０１が読み出した各種プログラムを一次記憶する。
【００３０】
記憶装置１０４は、各種データ、及びＣＰＵ１０１が読み出して実行する各種プログラムを記憶する。記憶装置１０４は、例えば、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）である。
【００３１】
媒体読取装置１０６は、コンピュータ読み取り可能な記憶媒体（例えば、ＣＤ（Compact Diskなど）に記録されたデータを読み取るためのドライブ装置である。なお、本実施形態に係るＣＰＵ１０１の各処理を実行するためのプログラムがコンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００３２】
表示装置１０８は、ＣＰＵ１０１による制御に従って情報を表示する。
【００３３】
入力装置１０９は、ユーザによる、指示入力または操作を受け付ける。入力装置１０９は、例えばキーボードやマウスである。
【００３４】
通信部３０４は、ネットワーク１５０を介して、後述する記憶装置１１４を有するデータ管理装置３３０と通信する。この通信は、有線であっても無線であってもよい。
【００３５】
続いて、図４を用いて本実施形態に係る圧縮データ生成装置３００の機能的構成について説明する。図４は、本実施形態に係る圧縮データ生成装置３００の機能ブロック図である。ＣＰＵ１０１は、ＲＯＭ１０２、または記憶装置１０４からプログラムをＲＡＭ１０３に読み出して実行するか、または媒体読取装置１０６がコンピュータ読み取り可能な記憶媒体からＲＡＭ１０３に読み出したプログラムを実行する。このプログラムの実行により、ＲＡＭ１０３上に、ヘッダ取得部３０１、データ構成符号化部３０２、ヘッダ構成符号化部３０３、圧縮データ生成部３０５が生成される。
【００３６】
圧縮データ生成装置３００における圧縮データ生成処理は、ユーザが表示装置１０８に表示される画面を見ながら入力装置１０９を介してパーセルデータ３０８を選択する圧縮データ生成操作を行うことで開始される。
【００３７】
ヘッダ取得部３０１は、入力装置１０９から、ユーザによる圧縮データ生成操作を受け付けると、ユーザが選択したパーセルデータ３０８をＲＡＭ１０３に読み込み、パーセルデータに含まれるヘッダセクションの情報（以下、ヘッダという）を抽出する。このように、ヘッダ取得部３０１は、パーセルデータ３０８に含まれるヘッダを取得する。そして、ヘッダ取得部３０１は、この取得したヘッダをテキスト形式のデータに変換し、このテキスト形式のデータ及びパーセルデータ３０８をデータ構成符号化部３０２に渡す。
【００３８】
データ構成符号化部３０２は、テキスト形式のデータに含まれるヘッダを用いて、このデータが記述する対象の物品やサービスが分類されたクラスを識別するクラス識別情報（例えば、後述するクラスＩＤ）と、このクラスを特徴づけるプロパティ（属性）の組み合わせとその順番を規定する属性規定情報（例えば、後述するセルカラムテキスト）との組に対して、この組を識別するデータ構成識別情報（例えば、後述するストラクチャＩＤ）を割り当てる。これにより、クラス識別情報と属性規定情報との組毎に、異なるデータ構成識別情報が割り当てられる。その結果、データ構成識別情報は、データの構成を識別する情報として機能する。
【００３９】
具体的には例えば、データ構成符号化部３０２は、データ構成符号化部３０２が取得したヘッダから、インストラクション#CLASS_IDの値であるクラスＩＤと、インストラクション#PROPERTY_IDの行のセルカラムの値（以下、セルカラムテキストという）を抽出する。そして、データ構成符号化部３０２は、抽出したクラスＩＤとセルカラムテキストとの組をテキスト符号化してストラクチャＩＤを生成する。このように、データ構成符号化部３０２は、一例として、クラス識別情報と属性規定情報との組に対してテキスト符号化を行うことにより、データ構成識別情報を生成する。このテキスト符号化は、例えば、ハッシュ関数を用いたハッシュ値の計算である。
【００４０】
そして、クラスＩＤとセルカラムテキストとストラクチャＩＤとの組をデータ管理装置３３０のリモートＤＢ３３２に登録するため、データ構成符号化部３０２は、クラスＩＤとセルカラムテキストとストラクチャＩＤとの組をヘッダ登録要求とともに、通信部３０４からデータ管理装置３３０へ送信する。すなわち、データ構成符号化部３０２は、記憶装置１１４に記憶させるデータを通信部３０４からデータ管理装置３３０へ送信させ、当該記憶させるデータをデータ管理装置３３０に記憶させるようにする。更に、データ構成符号化部３０２は、クラスＩＤとセルカラムテキストとストラクチャＩＤとの組をヘッダ構成符号化部３０３に渡す。データ構成符号化部３０２の動作の詳細は後述する。
【００４１】
ヘッダ構成符号化部３０３は、上記パーセルデータ３０８を用いて、上記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報（例えば、後述するヘッダテキスト）に対して、ヘッダ構成情報を識別するヘッダ構成識別情報（例えば、後述するヘッダＩＤ）を割り当てる。
【００４２】
具体的には例えば、ヘッダ構成符号化部３０３は、パーセルデータ３０８のヘッダセクションのクラスヘッダセクション及びスキーマヘッダセクションのそれぞれに対し処理を行い、パーセルデータのヘッダセクションの構成を表すテキストデータであるヘッダテキストを生成する。そして、ヘッダ構成符号化部３０３は、このヘッダテキストをテキスト符号化してヘッダＩＤを生成する。このように、ヘッダ構成符号化部３０３は、一例として、ヘッダ構成情報に対してテキスト符号化を行うことにより、ヘッダ構成識別情報を生成する。このテキスト符号化は、例えば、ハッシュ関数を用いたハッシュ値の計算である。
【００４３】
そして、ヘッダ構成符号化部３０３は、このヘッダテキストとヘッダＩＤの組をデータ管理装置３３０のリモートＤＢ３３２に登録するため、このヘッダテキストとヘッダＩＤの組をヘッダ登録要求とともに、通信部３０４を介してデータ管理装置３３０へ送信する。すなわち、ヘッダ構成符号化部３０３は、記憶装置１１４に記憶させるデータを通信部３０４からデータ管理装置３３０へ送信させ、当該記憶させるデータをデータ管理装置３３０に記憶させるようにする。更に、このヘッダテキストとヘッダＩＤの組を圧縮データ生成部３０５に渡す。ヘッダ構成符号化部３０３の動作の詳細は後述する。
【００４４】
上述したように、通信部３０４は、データ構成符号化部３０２及びヘッダ構成符号化部３０３からそれぞれ渡されたデータを、ネットワーク１５０を介してデータ管理装置３３０へ送信する。
【００４５】
圧縮データ生成部３０５は、データ構成識別情報（例えば、ストラクチャＩＤ）とヘッダ構成識別情報（例えば、ヘッダＩＤ）と上記パーセルデータ３０８に含まれるインスタンスとを含む圧縮データを生成する。具体的には例えば、圧縮データ生成部３０５は、データ構成符号化部３０２で生成したストラクチャＩＤをインストラクション#CLASS_IDの値として持ち、更にヘッダ構成符号化部３０３で生成したヘッダＩＤを所定のインストラクション（例えば、#HEADER）の値として持つヘッダを生成する。そして、圧縮データ生成部３０５は、生成したヘッダとパーセルデータ３０８のデータセクションのデータを結合した圧縮パーセルデータ３０９を圧縮データの一例として生成する。そして、圧縮データ生成部３０５は、この圧縮パーセルデータ３０９を当該圧縮データ生成装置３００の外部へ出力する。圧縮データ生成部３０５の動作の詳細は後述する。
【００４６】
続いて、図５を用いて本実施形態に係るデータ管理装置３３０の構成について説明する。図５は、本実施形態に係るデータ管理装置３３０の構成を示す図である。図５に示すように、データ管理装置３３０は、ＣＰＵ（Central Processing Unit）１１１、ＲＯＭ１１２、ＲＡＭ１１３、記憶装置１１４、媒体読取装置１１６、バスコントローラ１１７、表示装置１１８、入力装置１１９、及び通信部３３３を備える。図５に示すように、データ管理装置３３０の各構成要素は、バスコントローラ１１７を介して接続しており、互いにデータのやり取りが可能である。
【００４７】
ＣＰＵ１１１は、データ管理装置３３０全体を制御する。
【００４８】
ＲＯＭ１１２は、各種データ、及びＣＰＵ１１１が読み出して実行する各種プログラムを記憶する。
【００４９】
ＲＡＭ１１３は、情報を一次記憶する記憶装置であり、ＣＰＵ１１１が読み出した各種プログラムを一次記憶する。
【００５０】
記憶装置１１４は、各種のデータを記憶する。記憶装置１１４は、例えば、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）である。
【００５１】
媒体読取装置１１６は、コンピュータ読み取り可能な記憶媒体（例えば、ＣＤ（Compact Diskなど）に記録されたデータを読み取るためのドライブ装置である。なお、本実施形態に係るＣＰＵ１１１の各処理を実行するためのプログラムがコンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００５２】
表示装置１１８は、ＣＰＵ１１１による制御に従って情報を表示する。
【００５３】
入力装置１１９は、データ管理装置３３０を使用するユーザによる、指示入力または操作を受け付ける。入力装置１１９は、例えばキーボードやマウスである。
【００５４】
通信部３３３は、ネットワーク１５０を介して、圧縮データ生成装置３００と通信する。この通信は、有線であっても無線であってもよい。
【００５５】
続いて、図６を用いて本実施形態に係るデータ管理装置３３０の機能的構成について説明する。図６は、本実施形態に係るデータ管理装置３３０の機能ブロック図である。ＣＰＵ１１１は、ＲＯＭ１１２からプログラムをＲＡＭ１１３に読み出して実行するか、または媒体読取装置１１６がコンピュータ読み取り可能な記憶媒体からＲＡＭ１１３に読み出したプログラムを実行する。このプログラムの実行により、ＲＡＭ１１３上に、データ管理部３３１が生成される。また、記憶装置１１４は、リモートＤＢ３３２を記憶する。
【００５６】
データ管理部３３１は、圧縮データ生成装置３００から通信部３３３を介して受け取ったヘッダ登録要求を解釈し、圧縮データ生成装置３００から通信部３３３を介して受け取ったデータをヘッダ情報として、リモートＤＢ３３２に登録する。このように、リモートＤＢ３３２は、圧縮データ生成装置３００の処理の結果生成されるヘッダ情報を記憶する。また、圧縮データ生成装置３００及びデータ復元装置３６０から通信部３３３を介して受け取ったヘッダ情報の問合せ要求を解釈し、リモートＤＢ３３２からヘッダ情報を抽出し、通信部３３３を介してヘッダ情報を送信する。
【００５７】
リモートＤＢ３３２は、データ構成符号化部３０２の処理で生成されるデータを記憶するストラクチャテーブル（structure table）Ｔ１、エイリアステーブル（alias table）Ｔ２及びセルカラムテーブル（cell columns table）Ｔ３と、ヘッダ構成符号化部３０３の処理で生成されるデータを記憶するヘッダテーブル（header table）Ｔ４の４つのテーブルを有する。
【００５８】
図７Ａは、リモートＤＢ３３２で記憶されるストラクチャテーブルＴ１の構造を例示する図である。ストラクチャテーブルＴ１は、データ構成符号化部３０２の処理で生成したストラクチャＩＤを記憶するstructure_idフィールドと、インストラクション#CLASS_IDの値であるクラスＩＤを該ストラクチャＩＤに紐付けて記憶するclass_idフィールドと、インストラクション#PROPERTY行のセルカラムに記載された内容を区切り文字を用いて連結したテキストを記憶するcell_column_textフィールドを有し、それらの組をレコードとして記憶する。
【００５９】
図７Ｂは、リモートＤＢ３３２で記憶されるエイリアステーブルＴ２の構造を例示する図である。エイリアステーブルＴ２は、ヘッダ構成符号化部３０３の処理でインストラクションの別名（以下、エイリアスという）を作成した場合に用いられ、エイリアスを利用するヘッダＩＤを記憶するheader_idフィールドと、インストラクションのエイリアスを記憶するaliasフィールドと、元のインストラクションを記憶するoriginalフィールドを有し、それらの組をレコードとして記憶する。
【００６０】
図７Ｃは、リモートＤＢ３３２で記憶されるセルカラムテーブルＴ３の構造を例示する図である。セルカラムテーブルＴ３は、structure_tableのstructure_idフィールドを外部参照するstructure_idフィールドと、ストラクチャＩＤに関連づけられたインストラクションを記憶するinstructionフィールドと、インストラクションに関連づけられた値を記憶するinstruction_valueフィールドを有し、それらの組をレコードとして記憶する。
【００６１】
図７Ｄは、リモートＤＢ３３２で記憶されるヘッダテーブルＴ４の構造を例示する図である。ヘッダテーブルＴ４は、ヘッダ構成符号化部３０３の処理で生成したヘッダＩＤを記憶するheader_idフィールドと、このヘッダＩＤに関連づけられたヘッダテキストを記憶するheader_textフィールドを有し、それらの組をレコードとして記憶する。
【００６２】
ここで、インストラクションがクラスヘッダセクションのものの場合、すなわち、ヘッダが１列で構成され、インストラクションとその値が文字列「:=」で区切られている場合、instructionフィールドにはインストラクションと文字列「:=」が記憶され、instruction_valueフィールドにはその値が記憶される。
【００６３】
一方、インストラクションがスキーマヘッダセクションのものの場合、instructionフィールドにはインストラクションそのものが記憶され、instruction_valueフィールドにはセルカラムを区切り文字で結合して作成したテキストが記憶される。
【００６４】
なお、上記の説明では、リレーショナルデータベースによるデータの記憶を想定したが、同様の情報を記憶できさえすれば、ＸＭＬデータベースなど他の形式のデータベースを使用してもよい。また、同様の情報を記憶できればテーブル名やフィールド名、テーブルの構成は上記に限らない。例えば、他の処理のためにカラムを追加したり、他のテーブルを追加したりしてもよい。
【００６５】
続いて、圧縮データ生成装置３００の各処理の詳細を、それぞれフローチャートを用いて説明する。まず、図８を用いて圧縮データ生成装置３００のデータ構成符号化部３０２の動作について説明する。図８は、圧縮データ生成装置３００のデータ構成符号化部３０２の処理の流れの一例を示すフローチャートである。
【００６６】
（ステップＳ５０１）まず、データ構成符号化部３０２は、ヘッダ取得部３０１からヘッダセクションのテキストデータを取得する。
【００６７】
（ステップＳ５０２）次に、データ構成符号化部３０２は、このテキストデータのインストラクション#CLASS_IDの値からクラスＩＤを抽出する。
【００６８】
（ステップＳ５０３）次に、データ構成符号化部３０２は、このテキストデータのインストラクション#PROPERTY_IDの行からセルカラムのデータ、すなわちセルカラムテキストを抽出する。
【００６９】
（ステップＳ５０４）次に、データ構成符号化部３０２は、抽出したクラスＩＤ及びセルカラムテキストの組をキーとして、クラスＩＤ及びセルカラムテキストの組を含むレコードがストラクチャテーブルＴ１に既に登録されているか、データ管理装置３３０に問い合わせる。
【００７０】
（ステップＳ５０５）次に、データ構成符号化部３０２は、ステップＳ５０４での問い合わせ結果を用いて、クラスＩＤ及びセルカラムテキストの組を含むレコードがリモートＤＢ３３２のストラクチャテーブルＴ１に既に登録されているか否か判定する。
【００７１】
（ステップＳ５０６）クラスＩＤ及びセルカラムテキストの組を含むレコードがリモートＤＢ３３２のストラクチャテーブルＴ１に既に登録されている場合（ステップＳ５０５  ＹＥＳ）、データ構成符号化部３０２は、リモートＤＢ３３２のストラクチャテーブルＴ１からそのストラクチャＩＤを取得する。その後、処理がステップＳ５０９に進む。
【００７２】
（ステップＳ５０７）一方、クラスＩＤ及びセルカラムテキストの組を含むレコードがリモートＤＢ３３２のストラクチャテーブルＴ１に未だ登録されていない場合（ステップＳ５０５０  ＮＯ）、データ構成符号化部３０２は、抽出したクラスＩＤ及びセルカラムテキストの組をテキスト符号化し、ストラクチャＩＤを生成する。
【００７３】
（ステップＳ５０８）そして、データ構成符号化部３０２は、ストラクチャＩＤ、クラスＩＤ及びセルカラムテキストの組を、通信部３０４を介してデータ管理装置３３０のリモートＤＢ３３２のストラクチャテーブルＴ１に登録する。このように、データ構成符号化部３０２は、パーセルデータ３０８からクラス識別情報を抽出し、このパーセルデータ３０８から属性規定情報を生成し、このクラス識別情報とこの属性規定情報との組に対してデータ構成識別情報を割り当て、データ構成識別情報とクラス識別情報と属性規定情報とを関連付けて記憶装置１１４に記憶させる。そして、処理がステップＳ５０９に進む。
【００７４】
（ステップＳ５０９）最後に、データ構成符号化部３０２は、ストラクチャＩＤ、ヘッダセクションのテキストデータ及びパーセルデータ３０８をヘッダ構成符号化部３０３に渡して、処理を終了する。
【００７５】
図９は、図２のパーセルデータにデータ構成符号化部３０２の処理を適用した場合を例示する図である。図９に示すように、データ構成符号化部３０２の処理により、インストラクション#CLASS_IDの値と#PROPERTY_IDのセルカラムテキストが抽出され、テキスト符号化によってストラクチャＩＤであるＣＣＬ００１が生成される。このように、属性規定情報の一例であるセルカラムテキストは、属性を識別する属性識別情報#PROPERTY_IDにヘッダ内で関連付けられた値を、前記ヘッダ内での出現順に並べた情報である。
【００７６】
なお、ストラクチャＩＤは、クラスＩＤ及びセルカラムテキストを連結したテキストを入力としてハッシュ関数などのテキスト符号化関数を利用して、データ構成符号化部３０２により生成されてもよい。
【００７７】
あるいは、このような関数を利用せずに、データ構成符号化部３０２は、ユーザが指定した文字列をストラクチャＩＤとしてもよい。このように、データ構成符号化部３０２は、データ構成情報（例えば、ストラクチャＩＤ）に対して、入力装置１０９がユーザから受け付けた文字列を割り当ててもよい。
【００７８】
あるいは、データ構成符号化部３０２がシーケンシャルな英数字を管理し、データ構成符号化部３０２が、管理している英数字から、次の順番の英数字をストラクチャＩＤとして取得してもよい。
【００７９】
続いて、図１０を用いて圧縮データ生成装置３００のヘッダ構成符号化部３０３の動作について説明する。図１０は、圧縮データ生成装置３００のヘッダ構成符号化部３０３の処理の流れの一例を示すフローチャートである。
【００８０】
（ステップＳ７０１）まず、ヘッダ構成符号化部３０３は、データ構成符号化部３０２からストラクチャＩＤ、ヘッダセクションのテキストデータ及びパーセルデータ３０８を取得する。
【００８１】
（ステップＳ７０２）次に、ヘッダ構成符号化部３０３は、ヘッダ構成符号化のため、ヘッダセクションのテキストデータに含まれるクラスヘッダセクションの各行について処理を行う。この処理の詳細は、後述する図１１で説明する。
【００８２】
（ステップＳ７０３）次に、ヘッダ構成符号化部３０３はクラスヘッダセクションの処理を終了すると、ヘッダセクションのテキストデータに含まれるスキーマヘッダセクションの各行について処理を行う。この処理の詳細は、後述する図１３で説明する。
【００８３】
（ステップＳ７０４）次に、ヘッダ構成符号化部３０３は、クラスヘッダセクション及びスキーマヘッダセクションのインストラクションの処理を終えると、ヘッダセクションのインストラクションカラムの先頭から順にインストラクションを読み出し、読み出したインストラクションを区切り文字で連結したヘッダテキストを生成する。このように、ヘッダ構成情報の一例であるヘッダテキストは、ヘッダに含まれるインストラクションを前記ヘッダ内における出現順に並べた情報である。
【００８４】
（ステップＳ７０５）次に、ヘッダ構成符号化部３０３は、データ管理装置３３０のリモートＤＢ３３２のヘッダテーブルＴ４に、ステップＳ７０４で生成したヘッダテキストを含むレコードが登録されているかデータ管理装置３３０に問い合わせる。
【００８５】
（ステップＳ７０６）次に、ヘッダ構成符号化部３０３は、問い合わせ結果を用いて、ヘッダテーブルＴ４にステップＳ７０４で生成したヘッダテキストを含むレコードが登録されているか否か判定する。
【００８６】
（ステップＳ７０７）ヘッダテーブルＴ４にステップＳ７０４で生成したヘッダテキストを含むレコードが登録されている場合（ステップＳ７０６  ＹＥＳ）、ヘッダ構成符号化部３０３は、通信部３０４を介して、リモートＤＢ３３２のヘッダテーブルＴ４から、このヘッダテキストに対応するヘッダＩＤを取得する。その後、処理がステップＳ７１２に進む。
【００８７】
（ステップＳ７０８）一方、ヘッダテーブルＴ４にステップＳ７０４で生成したヘッダテキストを含むレコードが登録されていない場合（ステップＳ７０６  ＮＯ）、ヘッダ構成符号化部３０３は、ステップＳ７０４で生成したヘッダテキストをテキスト符号化してヘッダＩＤを生成する。
【００８８】
（ステップＳ７０９）次に、ヘッダ構成符号化部３０３は、ステップＳ７０８で生成したヘッダＩＤ及びステップＳ７０４で生成したヘッダテキストの組を、通信部３０４を介して、リモートＤＢ３３２のヘッダテーブルＴ４に登録する。
【００８９】
このように、ヘッダ構成符号化部３０３は、データから、ヘッダ構成情報（例えば、ヘッダテキスト）を生成し、生成したヘッダ構成情報に対してヘッダ構成識別情報（例えば、ヘッダＩＤ）を割り当て、ヘッダ構成識別情報とヘッダ構成情報とを関連付けて記憶装置１１４に記憶させる。
【００９０】
（ステップＳ７１０）次に、ヘッダ構成符号化部３０３は、ステップＳ７０２のクラスヘッダセクションの処理、またはステップＳ７０３のスキーマヘッダセクションの処理でインストラクションのエイリアスを作成したか否か判定する。
【００９１】
（ステップＳ７１１）ステップＳ７１０においてインストラクションのエイリアスを作成したと判定された場合（ステップＳ７１０  ＹＥＳ）、ヘッダ構成符号化部３０３は、ステップＳ７０８で生成したヘッダＩＤとその作成したエイリアスと当該エイリアスを設定したインストラクションとの組を、通信部３０４を介して、リモートＤＢ３３２のエイリアステーブルＴ２に登録する。その後、処理がステップＳ７１２に進む。一方、ステップＳ７１０においてインストラクションのエイリアスを作成していないと判定された場合（ステップＳ７１０  ＮＯ）、処理がステップＳ７１２に進む。
【００９２】
（ステップＳ７１２）上記の処理でストラクチャＩＤ及びヘッダＩＤが得られると、ヘッダ構成符号化部３０３は、これらのストラクチャＩＤ及びヘッダＩＤとパーセルデータ３０８を圧縮データ生成部３０５に渡し、処理を終了する。
【００９３】
続いて、図１０のステップＳ７０２におけるクラスヘッダセクションの処理の詳細について、図１１を用いて説明する。図１１は、図１０のステップＳ７０２におけるクラスヘッダセクションの処理の流れの一例を示すフローチャートである。
【００９４】
（ステップＳ８０１）まず、ヘッダ構成符号化部３０３は、クラスヘッダセクションの先頭行から順に、各行に対して以下のステップＳ８０２とステップＳ９００の処理を行う
（ステップＳ８０２）次に、ヘッダ構成符号化部３０３は、処理対象の行に対し、インストラクションカラムから、対象のインストラクションとその値（以下、インストラクション値という）の組を取得する。
【００９５】
（ステップＳ９００）ヘッダ構成符号化部３０３は、ステップＳ８０２で取得した組に対して、後述する図１２のインストラクションの処理を実行する。
【００９６】
（ステップＳ８０３）クラスヘッダセクションに次の行が有る場合、処理がステップＳ８０１に戻る。クラスヘッダセクションに次の行がない場合、クラスヘッダセクションの処理を終了する。
【００９７】
続いて、図１１のステップＳ９００におけるインストラクションの処理の詳細について、図１２を用いて説明する。図１２は、図１１のステップＳ９００におけるインストラクションの処理の流れの一例を示すフローチャートである。なお、この処理は、クラスヘッダセクションの処理内で行われるだけでなく、後述の図１３のスキーマヘッダセクションの処理内でも行われる。
【００９８】
（ステップＳ９０１）まず、ヘッダ構成符号化部３０３は、データ構成符号化部３０２で取得したストラクチャＩＤとインストラクションの組み合わせをキーとして、データ管理装置３３０のリモートＤＢ３３２のセルカラムテーブルＴ３からこれらの組み合わせに関連づけられたインストラクション値を取得する。
【００９９】
（ステップＳ９０２）対象のインストラクション値とステップＳ９０１で取得したインストラクション値が同じが、異なるか、あるいは対象のインストラクション値を含むレコードがリモートＤＢ３３２のセルカラムテーブルＴ３に登録されてないか判定する。対象のインストラクション値とステップＳ９０１で取得したインストラクション値が同じ場合（ステップＳ９０２  ＳＡＭＥ）、ヘッダ構成符号化部３０３は、インストラクションの処理を終了する。
【０１００】
（ステップＳ９０３）一方、対象のインストラクション値とステップＳ９０１で取得したインストラクション値が異なる場合（ステップＳ９０２  ＤＩＦＦＥＲＥＮＴ）、ヘッダ構成符号化部３０３は、対象のインストラクションのエイリアスを生成する。
【０１０１】
（ステップＳ９０４）そして、ヘッダ構成符号化部３０３は、ヘッダセクションの対象のインストラクションをエイリアスで置き換える。そして、処理がステップＳ９０５に進む。
【０１０２】
（ステップＳ９０５）対象のインストラクション値を含むレコードがリモートＤＢ３３２のセルカラムテーブルＴ３に登録されていない場合（Ｓ９０２  ＮＯ  ＲＥＣＯＲＤ）、ヘッダ構成符号化部３０３は、データ構成符号化部３０２で生成したストラクチャＩＤ、対象のインストラクション及び対象のインストラクション値の組を、通信部３０４を介してデータ管理装置３３０のリモートＤＢ３３２のセルカラムテーブルＴ３に登録して、インストラクションの処理を終了する。
【０１０３】
このように、ヘッダ構成符号化部３０３は、データから、インストラクションとインストラクション値の組を読み出し、データ構成識別情報とインストラクションとインストラクション値とを関連づけて記憶装置１１４に記憶させる。
【０１０４】
一方、処理がステップＳ９０４からステップＳ９０５に進んだ場合、ヘッダ構成符号化部３０３は、データ構成符号化部３０２で生成したストラクチャＩＤ、ステップＳ９０４で置き換えたエイリアス及び対象のインストラクション値の組を、通信部３０４を介してデータ管理装置３３０のリモートＤＢ３３２のセルカラムテーブルＴ３に登録して、インストラクションの処理を終了する。
【０１０５】
このように、ヘッダ構成符号化部３０２は、パーセルデータ３０８から、ヘッダに含まれるインストラクションとインストラクション値の組を取得し（ステップＳ８０２）、取得したインストラクション値と、記憶装置１１４においてデータの構成を識別するデータ構成識別情報とインストションとに関連付けられたインストラクション値とを比較する（ステップＳ９０２）。ヘッダ構成符号化部３０２は、比較の結果、値が異なる場合、前記インストラクションに対して別名を生成する（ステップＳ９０３）。
【０１０６】
そして、ヘッダ構成符号化部３０２は、データ構成識別情報と別名と読み出したインストラクション値とを関連付けて記憶装置１１４に記憶させる（ステップＳ９０５）。ヘッダ構成符号化部３０２は、ヘッダ構成識別情報（例えば、ヘッダＩＤ）と、ヘッダ構成情報に含まれるインストラクションが別名に置換されたヘッダ構成情報（例えば、ヘッダテキスト）とを関連付けて記憶装置１１４に記憶させる（ステップＳ７０９）。また、ヘッダ構成符号化部３０２は、インストラクション構成識別情報（例えば、ヘッダＩＤ）と別名とこの別名が生成されたインストクションとを関連づけて記憶装置１１４に記憶させる（ステップＳ７１１）。
【０１０７】
続いて、図１０のステップＳ７０３におけるスキーマヘッダセクションの処理の詳細について、図１３を用いて説明する。図１３は、図１０のステップＳ７０３におけるスキーマヘッダセクションの処理の流れの一例を示すフローチャートである。
【０１０８】
（ステップＳ１０１１）まず、ヘッダ構成符号化部３０３は、スキーマヘッダセクションの先頭行から順に、各行に対して、以下のステップＳ１０１２とステップＳ９００の処理を行う。
【０１０９】
（ステップＳ１０１２）次に、ヘッダ構成符号化部３０３は、処理対象の行に対し、対象のインストラクションと、対象のインストラクション値を取得する。
【０１１０】
（ステップＳ９００）次に、ヘッダ構成符号化部３０３は、図１２のインストラクションの処理を行う。
【０１１１】
（ステップＳ１０１３）ステップＳ９００のインストラクションの処理が終わり、スキーマヘッダセクションに次の行がある場合、ヘッダ構成符号化部３０３は、次の行を対象としてステップＳ１０１２及びステップＳ９００の処理を行う。スキーマヘッダセクションに次の行がない場合、ヘッダ構成符号化部３０３は、スキーマヘッダセクションの処理を終了する。
【０１１２】
（ヘッダ構成符号化部３０３の処理で生成されるヘッダＩＤの例）
図１４は、図２のパーセルデータにヘッダ構成符号化部３０３の処理を適用した場合を例示する図である。ヘッダ構成符号化部３０３により、インストラクション列の先頭行から順に取得したインストラクションを区切り文字を使用して連結し、ヘッダテキストが生成される。ヘッダ構成符号化部３０３により、このヘッダテキストがテキスト符号化されることで、このヘッダテキストのヘッダＩＤであるHDR001が生成される。
【０１１３】
なお、ヘッダＩＤは、ヘッダテキストを入力としてハッシュ関数などのテキスト符号化関数を利用して、ヘッダ構成符号化部３０３により生成されてもよい。
【０１１４】
あるいは、このような関数を利用せずに、ユーザが指定した文字列をヘッダＩＤとしてもよい。このように、ヘッダ構成符号化部３０３は、ヘッダ構成情報（例えば、ヘッダテキスト）に対して、入力装置１０９がユーザから受け付けた文字列を割り当ててもよい。
【０１１５】
あるいは、ヘッダ構成符号化部３０３がシーケンシャルな英数字を管理し、自動的に英数字を生成してヘッダＩＤとしてもよい。
【０１１６】
＜ヘッダ構成符号化部３０３の処理で生成されるインストラクションのエイリアスの例＞
図１５は、図２のパーセルデータのヘッダ情報がデータ管理装置３３０のリモートＤＢ３３２に登録された状態で、別のパーセルデータの処理を行った場合の例を表した図である。図１５の上段の表はパーセルデータであり、その下のテキストデータはこのパーセルデータをテキスト形式で表現したものである。
【０１１７】
図２のパーセルデータと比較すると、#CLASS_IDで指定されたクラスＩＤが等しく、更に#PROPERTY_IDの行のセルカラムの構成が等しいため、データ構成符号化部３０２の処理でストラクチャＩＤは生成されず、データ管理装置３３０のリモートＤＢ３３２に登録されたストラクチャＩＤのＣＣＬ００１がストラクチャＩＤとして適用される。
【０１１８】
一方、図１５のパーセルデータはインストラクション#DATABASE:=がなく、インストラクション#MEMOのセルカラムに記載された情報が異なり、更にインストラクション列のインストラクションの順序が異なる。したがって、ヘッダ構成符号化部３０３によりヘッダテキストが生成される。
【０１１９】
その際に、ヘッダ構成符号化部３０３により、インストラクション#MEMOに対するエイリアス#MEMO-001が作成される。このエイリアスでインストラクションが置き換えられるため、ヘッダ構成符号化部３０３で生成されるヘッダテキストには、#MEMOではなく#MEMO-001が現れる。ヘッダ構成符号化部３０３の処理により、最終的に図１５のパーセルデータのヘッダセクションのヘッダテキストに対応するヘッダＩＤとしてＨＤＲ００２が割り当てられ、図２のパーセルデータのものとは別に、データ管理装置３３０のリモートＤＢ３３２に登録される。
【０１２０】
＜圧縮データ生成部３０５の処理のフローチャート＞
続いて、図１６を用いて圧縮データ生成部３０５の処理について説明する。図１６は、圧縮データ生成装置３００の圧縮データ生成部３０５の処理の流れの一例を示すフローチャートである。
【０１２１】
（ステップＳ１３０１）まず、圧縮データ生成部３０５は、ヘッダ構成符号化部３０３から、ストラクチャＩＤ、ヘッダＩＤ及びパーセルデータ３０８を取得する。
【０１２２】
（ステップＳ１３０２）次に、圧縮データ生成部３０５は、空のヘッダセクションを作成する。
【０１２３】
（ステップＳ１３０３）次に、圧縮データ生成部３０５は、インストラクション#CLASS_IDの値が、ステップＳ１３０１で取得したストラクチャＩＤであるという情報を、ステップＳ１３０２で作成されたヘッダセクションに出力する。例えば、ストラクチャＩＤが図１７に示すようにCCL001の場合、圧縮データ生成部３０５は、#CLASS_ID:=CCL001を、ステップＳ１３０２で作成されたヘッダセクションに追記する。
【０１２４】
（ステップＳ１３０４）次に、圧縮データ生成部３０５は、インストラクション#HEADERの値が、ステップＳ１３０１で取得したヘッダＩＤであるという情報を、ステップＳ１３０２で作成されたヘッダセクションに追記する。例えば、ストラクチャＩＤが図１７に示すようにHDR001の場合、圧縮データ生成部３０５は、#HEADER:=HDR001を、ステップＳ１３０２で作成されたヘッダセクションに追記する。
【０１２５】
（ステップＳ１３０５）次に、圧縮データ生成部３０５は、このように生成したヘッダセクションに、パーセルデータ３０８のデータセクションを結合させる。
【０１２６】
＜圧縮データ生成部３０５で生成される圧縮パーセルデータの例＞
図１７は、図２のパーセルデータを入力として、本実施形態における圧縮データ生成装置３００の一連の処理で出力された圧縮パーセルデータの例を示す図である。図１７のヘッダセクションには、インストラクション#CLASS_IDの値としてデータ構成符号化部３０２で生成したストラクチャＩＤが含まれ、インストラクション#HEADERの値としてヘッダ構成符号化部３０３で生成したヘッダＩＤが含まれている。これにより、図２のパーセルデータと比較して、ヘッダセクションのデータ容量が削減された圧縮パーセルデータが生成されていることが分かる。
【０１２７】
なお、この図１７の例では、ヘッダＩＤを記載する所定のインストラクションを#HEADERとしているが、システムが解釈できれば他のインストラクションを設定して利用しても良い。
【０１２８】
（ステップＳ１３０６）次に、圧縮データ生成部３０５は、ステップＳ１３０５で生成したデータを圧縮パーセルデータ３０９として出力し、処理を終了する。
【０１２９】
以上、本実施形態における圧縮データ生成装置３００において、データ構成符号化部３０２は、テキスト形式のデータに含まれるヘッダを用いて、前記データが記述する対象の物品やサービスが分類されたクラスを識別するクラス識別情報と、前記クラスを特徴づけるプロパティ（属性）の組み合わせとその順番を規定する属性規定情報との組に対して、この組を識別するデータ構成識別情報（例えば、ストラクチャＩＤ）を割り当てる。
【０１３０】
そして、ヘッダ構成符号化部３０３は、前記データを用いて、前記ヘッダの個々の行に記載された見出しであるインストラクションの組み合わせとその順番を規定するヘッダ構成情報（例えば、ヘッダテキスト）に対して、前記ヘッダ構成情報を識別するヘッダ構成識別情報（例えば、ヘッダＩＤ）を割り当てる。そして、圧縮データ生成部３０５は、前記データ構成識別情報（例えば、ストラクチャＩＤ）と前記ヘッダ構成識別情報（例えば、ヘッダＩＤ）と前記データに含まれるインスタンスとを含む圧縮データを生成する。
【０１３１】
これにより、ヘッダがデータ構成識別情報とヘッダ構成識別情報を含むデータに置き換わることによりヘッダの容量が減るので、元のデータに比べて圧縮データの容量を減らすことができる。
【０１３２】
本実施形態では、その一例として、テキスト形式で表現されたパーセルデータのヘッダの構成に基づいて、データ容量を削減した可逆の圧縮ヘッダを生成し、この圧縮ヘッダを元のパーセルデータのヘッダと置き換えることを説明した。これにより、データ容量が削減された圧縮パーセルデータを生成することができる。また、テキスト形式のまま、ヘッダの容量を削減した圧縮パーセルデータを作成でき、記憶できるデータ容量に制限がある環境下でも、圧縮パーセルデータの記憶が可能になる。
【０１３３】
また、本実施形態で作成される圧縮パーセルデータは、パーセル規格に準拠した書式で表現されることから、パーセルデータを扱うアプリケーションに対して特別な機能の追加実装をすることなく、これらのアプリケーションで読み書きができる。
【０１３４】
また、本実施形態によれば、同じクラスのデータを記述するためのシートでありプロパティの順序が同じパーセルデータに対して、これらの圧縮パーセルデータを効率よく生成することができる。
【０１３５】
なお、本実施形態では、圧縮データ生成装置３００は、データ管理装置３３０が有する記憶装置１１４にリモートＤＢ３３２を記憶させたが、これに限ったものではない。圧縮データ生成装置３００は、自装置内の記憶装置１０４にリモートＤＢ３３２を記憶させてもよい。また、圧縮データ生成装置３００とデータ管理装置３３０とが一体の情報処理装置として構成してもよい。
【０１３６】
続いて、図１８を用いて本実施形態に係るデータ復元装置３６０の構成について説明する。図１８は、本実施形態に係るデータ復元装置３６０の構成を示す図である。図１８に示すように、データ復元装置３６０は、ＣＰＵ（Central Processing Unit）１２１、ＲＯＭ１２２、ＲＡＭ１２３、記憶装置１２４、媒体読取装置１２６、バスコントローラ１２７、表示装置１２８、入力装置１２９、及び通信部３６４を備える。図１８に示すように、データ復元装置３６０の各構成要素は、バスコントローラ１２７を介して接続されており、互いにデータのやり取りが可能である。
【０１３７】
ＣＰＵ１２１は、圧縮データ生成装置３００全体を制御する。
【０１３８】
ＲＯＭ１２２は、各種データ、及びＣＰＵ１２１が読み出して実行する各種プログラムを記憶する。
【０１３９】
ＲＡＭ１２３は、情報を一次記憶する記憶装置であり、ＣＰＵ１２１が読み出した各種プログラムを一次記憶する。
【０１４０】
記憶装置１２４は、各種データ、及びＣＰＵ１２１が読み出して実行する各種プログラムを記憶する。記憶装置１２４は、例えば、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）である。
【０１４１】
媒体読取装置１２６は、コンピュータ読み取り可能な記憶媒体（例えば、ＣＤ（Compact Diskなど）に記録されたデータを読み取るためのドライブ装置である。なお、本実施形態に係るＣＰＵ１２１の各処理を実行するためのプログラムがコンピュータ読み取り可能な記録媒体に記録されていてもよい。
【０１４２】
表示装置１２８は、ＣＰＵ１２１による制御に従って情報を表示する。
【０１４３】
入力装置１２９は、ユーザによる、指示入力または操作を受け付ける。入力装置１２９は、例えばキーボードやマウスである。
【０１４４】
通信部３６４は、ネットワーク１５０を介して、データ管理装置３３０と通信する。この通信は、有線であっても無線であってもよい。
【０１４５】
続いて、図１９を用いて本実施形態に係るデータ復元装置３６０の機能的構成について説明する。図１９は、本実施形態に係るデータ復元装置３６０の機能ブロック図である。ＣＰＵ１２１は、ＲＯＭ１２２、または記憶装置１２４からプログラムをＲＡＭ１２３に読み出して実行するか、または媒体読取装置１２６がコンピュータ読み取り可能な記憶媒体からＲＡＭ１２３に読み出したプログラムを実行する。このプログラムの実行により、ＲＡＭ１２３上に、取得部３６１、判定部３６２、ヘッダ情報取得部３６３、データ登録部３６５、復元部３６７、パーセルデータ処理部３６８、事前取得部３６９が生成される。また、記憶装置１２４には、ローカルＤＢ３６６が記憶されている。
【０１４６】
データ復元装置３６０におけるパーセルデータ復元処理は、ユーザが表示装置１２８に表示される画面を見ながら入力装置１２９に対して、パーセルデータ３７２を読み取るよう指示するパーセルデータ取得操作を行うことで開始される。
【０１４７】
取得部３６１は、入力装置１２９がパーセルデータ取得操作を受け付けた場合、データ３７２を取得する。ここで、データ３７２は、パーセルデータ３０８またはヘッダセクションが圧縮された圧縮パーセルデータ３０９のいずれかである。取得部３６１は、パーセルデータ３７２をメモリにロードして、判定部３６２に渡す。
【０１４８】
判定部３６２は、テキスト形式のデータ３７２に含まれるヘッダに基づいて、データ３７２のヘッダが圧縮されているか否かを判定する。具体的には例えば、判定部３６２は、データ３７２のヘッダ情報を解析し、ヘッダの復元が必要な場合、ヘッダ情報取得部３６３にデータ３７２を渡す。一方、ヘッダの復元が不要又は不可の場合、パーセルデータ処理部３６８にデータ３７２を渡す。判定部３６２の動作の詳細は後述する。
【０１４９】
ここで、上述したように、データ管理装置３３０の記憶装置１２４には、データ構成識別情報と元データが記述する対象の物品やサービスが分類されたクラスを識別するクラス識別情報とクラスを特徴づけるプロパティ（属性）の組み合わせとその順番を規定する属性規定情報とが関連付けて記憶されている。更に、記憶装置１２４には、ヘッダ構成識別情報と元のヘッダの構成を規定するヘッダ構成情報とが関連付けて記憶されている。
【０１５０】
ヘッダ情報取得部３６３は、判定部３６２によってデータ３７２のヘッダが圧縮されていると判定された場合、データ３７２のヘッダからデータ構成識別情報（例えば、ストラクチャＩＤ）とヘッダ構成識別情報（例えば、ヘッダＩＤ）とを抽出し、抽出したヘッダ構成識別情報とデータ構成識別情報のいずれかに関連づけられた情報を含むヘッダ情報を記憶装置１２４から取得する。
【０１５１】
具体的には例えば、ヘッダ情報取得部３６３は、判定部３６２から受け取ったパーセルデータ３７２のヘッダセクションのインストラクション#CLASS_IDの値からストラクチャＩＤを取得し、更にインストラクション＃HEADER_IDで指定されたヘッダＩＤを抽出する。そして、ヘッダ情報取得部３６３は、ローカルＤＢ３６６、または通信部３６４を介してデータ管理装置３３０から、これらに関連づけられたヘッダ情報を取得する。ここで、データ管理装置３３０からヘッダ情報を取得した場合、ローカルＤＢ３６６で記憶するため、このヘッダ情報をデータ登録部３６５に渡す。その後、このヘッダ情報とパーセルデータ３７２を復元部３６７に送る。ヘッダ情報取得部３６３の動作の詳細は後述する。
【０１５２】
通信部３６４は、記憶装置１２４を有するデータ管理装置３３０と通信する。具体的には、通信部３６４は、ヘッダ情報取得部３６３からの問い合わせをネットワーク１５０を介してデータ管理装置３３０へ送信する。そして、通信部３６４は、この問い合わせに応じてデータ管理装置３３０から送信されたヘッダ情報を、ネットワーク１５０を介して受信し、受信したヘッダ情報をヘッダ情報取得部３６３に渡す。
【０１５３】
データ登録部３６５は、ヘッダ情報取得部３６３が取得したヘッダ情報を記憶装置１２４に記憶させる。具体的には、データ登録部３６５は、ヘッダ情報取得部３６３から渡されたヘッダ情報を記憶装置１２４内のローカルＤＢ３６６に記憶させる。また、データ登録部３６５は、事前取得部３６９が取得したヘッダ情報を記憶装置３６６に記憶させる。
【０１５４】
記憶装置（第２の記憶装置）１２４は、ローカルＤＢ３６６を含むデータを記憶する。ローカルＤＢ３６６は、ヘッダ情報取得部３６３または事前取得部３６９が取得したヘッダ情報を記憶する。ローカルＤＢ３６６で記憶する情報の構成はデータ管理装置３３０のリモートＤＢ３３２と同様であり、図７Ａ〜図７Ｄに示す通りである。すなわち、ローカルＤＢ３６６には、データ管理装置３３０のリモートＤＢ３３２の情報の一部又は全部が記憶される。このように、データ復元装置３６０内でヘッダ情報を記憶することで、圧縮パーセルデータから元のパーセルデータを復元する際の通信量を削減し、処理速度を向上させることができる。
【０１５５】
復元部３６７は、ヘッダ情報取得部３６３により取得されたヘッダ情報を用いて、元データ（例えば、元のパーセルデータ）を復元する。あるいは、復元部３６７は、記憶装置１２４に記憶されたヘッダ情報を用いて、元データを復元する。
【０１５６】
より詳細には、復元部３６７は、ヘッダ情報に含まれる、ヘッダ構成識別情報（例えば、ヘッダＩＤ）に関連付けられたヘッダ構成情報（例えば、ヘッダテキスト）から、ヘッダの個々の行に記載された見出しであるインストラクションの一覧を抽出する。そして、復元部３６７は、抽出したインストラクション毎に、当該インストラクションとデータ構成識別情報（例えば、ストラクチャＩＤ）とに関連付けられたインストラクション値を取得し、インストラクションとインストラクション値の組と、圧縮データに含まれるインスタンスとを含むデータを元データとして生成する。
【０１５７】
具体的には例えば、復元部３６７は、ヘッダ情報取得部３６３から渡されたヘッダ情報を用いて、ヘッダ情報取得部３６３から渡されたデータ３７２のヘッダセクションを、元のパーセルデータのヘッダセクションに復元することにより、元のパーセルデータを復元する。復元部３６７は、復元した元のパーセルデータを、パーセルデータ処理部３６８に渡す。復元部３６７の動作の詳細は後述する。
【０１５８】
パーセルデータ処理部３６８は、判定部３６２から渡されたデータ３７２、または復元部３６７から渡された元のパーセルデータに対して、各種処理を行う。
【０１５９】
事前取得部３６９における処理は、ユーザが表示装置１２８に表示される画面を見ながら入力装置１２９を介してヘッダ情報の事前取得操作を行うことで開始される。
【０１６０】
事前取得部３６９は、データ３７２内のヘッダを圧縮前のヘッダに復元するためのヘッダ情報を記憶装置１１４から通信部３６４を介して事前に取得する。具体的には例えば、事前取得部３６９は、データ管理装置３３０から事前に必要なヘッダ情報を取得し、ローカルＤＢ３６６に登録する。これは、データ復元装置が処理する圧縮パーセルデータが予め明らかな場合に有効であり、事前に登録することで、データ復元装置がオフラインの環境でも、データ３７２を元のパーセルデータに復元することができる。
【０１６１】
なお、ヘッダ事前取得操作を契機に事前取得部３６９における処理を開始したが、これに限らず、事前取得部３６９が処理を自動的に実行しても良い。例えば、事前取得部３６９は、建物の入り口に配置されているセンサからの情報に基づいて、この建物内の機器等に割り当てられた圧縮パーセルデータが使用するヘッダＩＤの一覧を取得し、自動的にヘッダ情報を取得してもよい。
【０１６２】
続いて、図２０〜図２２を用いて、上述した構成を有するデータ復元装置３６０の各処理の詳細について、それぞれフローチャートを用いて説明する。
【０１６３】
＜判定部３６２の処理のフローチャート＞
図２０は、データ復元装置３６０の判定部３６２の処理の流れの一例を示すフローチャートである。
【０１６４】
（ステップＳ１５０１）まず、判定部３６２は、取得部３６１からデータ３７２を取得する。
【０１６５】
（ステップＳ１５０２）次に、判定部３６２は、データ３７２のヘッダセクションを解析する。
【０１６６】
（ステップＳ１５０３）次に、判定部３６２は、データ３７２のヘッダセクションが圧縮されているか判定する。具体的には例えば、判定部３６２は、データ３７２のインストラクション#CLASS_IDの値をデータ管理装置３３０に問い合わせ、これがヘッダ情報としてローカルＤＢ３６６又はデータ管理装置３３０のリモートＤＢ３３２に登録されている場合、このデータ３７２のヘッダセクションが圧縮されていると判定する。一方、それ以外の場合、判定部３６２は、このデータ３７２のヘッダセクションが圧縮されていないと判定する。
【０１６７】
（ステップＳ１５０４）ステップＳ１５０３でデータ３７２のヘッダセクションが圧縮されていると判定された場合（ステップＳ１５０３  ＹＥＳ）、判定部３６２は、ヘッダ情報取得部３６３にこのデータ３７２を渡して、処理を終了する。
【０１６８】
（ステップＳ１５０５）一方、ステップＳ１５０３でデータ３７２のヘッダセクションが圧縮されていないと判定された場合（ステップＳ１５０３  ＮＯ）、復元処理を行う必要がないため、判定部３６２は、パーセルデータ処理部３６８にデータ３７２を渡して、処理を終了する。
【０１６９】
＜ヘッダ情報取得部３６３の処理のフローチャート＞
続いて、図２１を用いてヘッダ情報取得部３６３の処理について説明する。図２１は、データ復元装置３６０のヘッダ情報取得部３６３の処理の流れの一例を示すフローチャートである。
【０１７０】
（ステップＳ１６０１）まず、ヘッダ情報取得部３６３は、判定部３６２からデータ３７２を取得する。
【０１７１】
（ステップＳ１６０２）次に、ヘッダ情報取得部３６３は、取得したデータ３７２のヘッダセクションから、インストラクション#CLASS_IDに関連づけられたストラクチャＩＤ及びインストラクション#HEADERに関連づけられたヘッダＩＤを抽出する。
【０１７２】
（ステップＳ１６０３）次に、ヘッダ情報取得部３６３は、ステップＳ１６０２で抽出したストラクチャＩＤ及びヘッダＩＤの組をキーとして、このストラクチャＩＤ及びこのヘッダＩＤの組を含むレコードがあるか否かローカルＤＢ３６６に問い合わせる。
【０１７３】
（ステップＳ１６０４）次に、ヘッダ情報取得部３６３は、ステップＳ１６０３で問い合わせた結果を用いて、ローカルＤＢ３６６に該当レコードがあるか否か判定する。
【０１７４】
（ステップＳ１６０５）ステップ１６０４でローカルＤＢ３６６に該当レコードがあると判定された場合（ステップＳ１６０４  ＹＥＳ）、ヘッダ情報取得部３６３は、ローカルＤＢ３６６からヘッダ情報を取得する。
【０１７５】
（ステップＳ１６０６）一方、ステップ１６０４でローカルＤＢ３６６に該当レコードがないと判定された場合（Ｓ１６０４  ＮＯ）、ヘッダ情報取得部３６３は、ステップＳ１６０２で抽出したストラクチャＩＤ及びヘッダＩＤの組をキーとして、通信部３６４を介してデータ管理装置３３０のリモートＤＢ３２２からヘッダ情報を取得する。
【０１７６】
（ステップＳ１６０７）次に、ヘッダ情報取得部３６３は、ステップＳ１６０６で取得したヘッダ情報をローカルＤＢ３６６に登録する。
【０１７７】
（ステップＳ１６０８）ステップＳ１６０５またはＳ１６０７の処理によりヘッダ情報を取得すると、ヘッダ情報取得部３６３は、取得したヘッダ情報、データ３７２、ストラクチャＩＤ及びヘッダＩＤを復元部３６７に渡し、処理を終了する。
【０１７８】
＜復元部３６７の処理のフローチャート＞
続いて、図２２を用いて復元部３６７の処理について説明する。図２２は、データ復元装置３６０の復元部３６７の処理の流れの一例を示すフローチャートである。
【０１７９】
（ステップＳ１７０１）まず、復元部３６７は、ヘッダ情報取得部３６３からヘッダ情報、データ３７２、ストラクチャＩＤ及びヘッダＩＤを取得する。
【０１８０】
（ステップＳ１７０２）次に、復元部３６７は、圧縮前のヘッダセクションを復元するための空のヘッダセクションを生成する。
【０１８１】
（ステップＳ１７０３）次に、復元部３６７は、ステップＳ１７０１で取得したヘッダ情報に含まれるヘッダテーブルから、ステップＳ１７０１で取得したヘッダＩＤに関連づけられたヘッダテキストを取得する。そして、復元部３６７は、ヘッダテキストから区切り文字で区切られた各インストラクションを抽出することにより、インストラクションのリストを取得する。以下、このようにして得られたインストラクションのリストの先頭のインストラクションから順に復元の処理を行う。
【０１８２】
（ステップＳ１７０４）まず、処理対象のインストラクションがクラスヘッダセクションのインストラクションの場合、すなわちインストラクションの末尾が「：＝」で終わっている場合、以下に示すステップＳ１７０５〜ステップＳ１７０７の処理を実行する。
【０１８３】
（ステップＳ１７０５）復元部３６７は、ヘッダ情報に含まれるセルカラムテキストから、ストラクチャＩＤ及び処理対象のインストラクションの組に関連づけられたインストラクション値を取得する。
【０１８４】
（ステップＳ１７０６）ステップＳ１７０１で取得したストラクチャＩＤと処理対象のインストラクションとを含むレコードが、ヘッダ情報に含まれるエイリアステーブルに含まれる場合、すなわち処理対象のインストラクションがエイリアスである場合、復元部３６７は、ヘッダ情報に含まれるエイリアステーブルにおいて、当該ストラクチャＩＤと処理対象のインストラクションとの組に関連づけられたオリジナルの値を元のインストラクションとして取得する。
【０１８５】
（ステップＳ１７０７）復元部３６７は、ステップＳ１７０５及びステップＳ１７０６の処理を経て得られたインストラクション及びインストラクション値を用いて、クラスヘッダセクションのテキストデータを生成し、ヘッダセクションに追記する。
【０１８６】
ヘッダ情報には、データ構成識別情報（例えば、ストラクチャＩＤ）と元のインストラクションと元のインストラクションの別名とが関連付けられている。そして、復元部３６７は、前記ヘッダ情報中に、データ構成識別情報（例えば、ストラクチャＩＤ）と処理対象のインストラクションとの組に関連付けられた元のインストションが含まれる場合、元データに、元のインストションと、ヘッダ情報で処理対象のインストラクションに関連付けられたインストラクション値との組を含ませる。
【０１８７】
（ステップＳ１７０８）インストラクションリストの次のインストラクションがクラスヘッダセクションのインストラクションの場合、次のインストラクションを処理対象としてステップＳ１７０５〜ステップＳ１７０７の処理を行う。ステップＳ１７０４〜ステップＳ１７０８のループを抜けた場合、当該インストラクションリストの次の処理対象のインストラクションはスキーマヘッダセクションのインストラクションになる。
【０１８８】
（ステップＳ１７０９）当該インストラクションリストの処理対象のインストラクションがスキーマヘッダセクションのインストラクションの場合、以下に示すステップＳ１７１０〜ステップＳ１７１２の処理を実行する。
【０１８９】
（ステップＳ１７１０）復元部３６７は、ヘッダ情報に含まれるセルカラムテーブルから、ステップＳ１７０１で取得したストラクチャＩＤ及び処理対象のインストラクションの組に関連づけられたインストラクション値を取得する。
【０１９０】
（ステップＳ１７１１）ステップＳ１７０１で取得したストラクチャＩＤと処理対象のインストラクションとを含むレコードが、ヘッダ情報に含まれるエイリアステーブルに含まれる場合、すなわち処理対象のインストラクションがエイリアスである場合、復元部３６７は、ヘッダ情報に含まれるエイリアステーブルにおいて、当該ストラクチャＩＤと処理対象のインストラクションとの組に関連づけられたオリジナルの値をインストラクションとして取得することによって、インストラクションを復元する。
【０１９１】
（ステップＳ１７１２）復元部３６７は、ステップＳ１７１０及びＳ１７１１の処理を経て得られたインストラクション及びインストラクション値からスキーマヘッダセクションのテキストデータを生成し、ヘッダセクションに追記する。
【０１９２】
（ステップＳ１７１３）インストラクションリストの次のインストラクションがある場合、次のインストラクションを処理対象としてステップＳ１７１０〜ステップＳ１７１２の処理を行う。
【０１９３】
（ステップＳ１７１４）ステップＳ１７０９〜ステップＳ１７１３のループを抜けた場合、復元部３６７は、これらの処理で得られたヘッダセクションに、データ３７２のデータセクションを結合することにより、ヘッダセクションを圧縮する前のパーセルデータを復元する。
【０１９４】
（ステップＳ１７１５）次に、復元部３６７は、復元したパーセルデータをパーセルデータ処理部３６８に渡して、処理を終了する。
【０１９５】
以上、本実施形態に係るデータ復元装置３６０において、判定部３６２は、テキスト形式のデータ３７２に含まれるヘッダに基づいて、データ３７２のヘッダが圧縮されているか否かを判定する。ヘッダ情報取得部３６３は、判定部３６２によってデータ３７２のヘッダが圧縮されていると判定された場合、データ３７２のヘッダからデータ構成識別情報（例えば、ストラクチャＩＤ）とヘッダ構成識別情報（例えば、ヘッダＩＤ）とを抽出し、抽出したヘッダ構成識別情報とデータ構成識別情報のいずれかに関連づけられた情報を含むヘッダ情報を記憶装置１１４から取得する。復元部３６７は、ヘッダ情報取得部３６３により取得されたヘッダ情報を用いて、元データを復元する。
【０１９６】
このように、本実施形態に係るデータ復元装置３６０は、データに含まれるヘッダを圧縮する前のヘッダに復元することにより、元データを復元することができる。また、本実施形態によれば、インストラクションの表示順序が個々に異なる場合でも、完全に元のパーセルデータを復元できる。
【０１９７】
以上、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１９８】
１  情報処理システム
１５０  ネットワーク
３００  圧縮データ生成装置（情報処理装置）
３３０  データ管理装置
３６０  データ復元装置（情報処理装置）
１０１、１１１、１２１  ＣＰＵ（Central Processing Unit）
１０２、１１２、１２２  ＲＯＭ
１０３、１１３、１２２  ＲＡＭ
１０４、１１４、１２４  記憶装置
１０６、１１６、１２６  媒体読取装置
１０７、１１７、１２７  バスコントローラ
１０８、１１８、１２８  表示装置
１０９、１１９、１２９  入力装置
３０４、３３３、３６４  通信部
３０１  ヘッダ取得部
３０２  データ構成符号化部
３０３  ヘッダ構成符号化部
３０５  圧縮データ生成部
３３１  データ管理部
３６１  取得部
３６２  判定部
３６３  ヘッダ情報取得部
３６５  データ登録部
３６７  復元部
３６８  パーセルデータ処理部
３６９  事前取得部
【図１】
2016057970.tif 000003
【図２】
2016057970.tif 000004
【図３】
2016057970.tif 000005
【図４】
2016057970.tif 000006
【図５】
2016057970.tif 000007
【図６】
2016057970.tif 000008
【図７Ａ】
2016057970.tif 000009
【図７Ｂ】
2016057970.tif 000010
【図７Ｃ】
2016057970.tif 000011
【図７Ｄ】
2016057970.tif 000012
【図８】
2016057970.tif 000013
【図９】
2016057970.tif 000014
【図１０】
2016057970.tif 000015
【図１１】
2016057970.tif 000016
【図１２】
2016057970.tif 000017
【図１３】
2016057970.tif 000018
【図１４】
2016057970.tif 000019
【図１５】
2016057970.tif 000020
【図１６】
2016057970.tif 000021
【図１７】
2016057970.tif 000022
【図１８】
2016057970.tif 000023
【図１９】
2016057970.tif 000024
【図２０】
2016057970.tif 000025
【図２１】
2016057970.tif 000026
【図２２】
2016057970.tif 000027