(57)【要約】【課題】複数の構造化文書を分散して管理する構造化文書管理装置間において、構造化文書の送受信を効率的に行うことが可能な構造化文書管理装置、方法及びシステムを提供する。【解決手段】構造化文書を構成する各要素のタグ構造毎に、固有の構造ＩＤを割り当てたと構造索引と、構造化文書の各要素に含まれる文字列を構成する語彙毎に、固有の語彙ＩＤを割り当てた語彙索引とに基づいて、構造化文書を構造ＩＤ及び語彙ＩＤの配列に変換し、符号化データとして他の構造化文書管理装置に送信する。また、他の構造化文書管理装置から符号化データを受信した際には、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する。【選択図】        図４
2008243077.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続された他の構造化文書管理装置とともに複数の構造化文書を分散して記憶し、当該他の構造化文書管理装置との間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理装置において、
前記構造化文書を記憶する構造化文書記憶手段と、
前記構造化文書記憶手段に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引記憶手段と、
前記構造化文書記憶手段に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引を記憶する語彙索引記憶手段と、
前記構造索引及び語彙索引に基づいて、前記構造化文書記憶手段に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、前記他の構造化文書管理装置に送信する符号化手段と、
前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元手段と、
を備えたことを特徴とする構造化文書管理装置。
【請求項２】
前記符号化手段は、前記符号化データを所定の圧縮形式で圧縮した符号化データを、前記他の構造化文書管理装置に送信し、
前記復元手段は、前記所定の圧縮形式で圧縮された符号化データを解凍した後、構造化文書に復元することを特徴とする請求項１に記載の構造化文書管理装置。
【請求項３】
前記構造化文書を前記構造化文書記憶手段に新たに記憶する際に、当該構造化文書を構成する各要素のタグ構造の種別毎に、前記構造ＩＤとは異なる新たな構造ＩＤを割り当てた新たな構造索引を生成する構造索引生成手段と、
前記新たな構造索引を前記構造索引記憶手段に登録するとともに、前記他の構造化文書管理装置に送信し、当該他の構造化文書管理装置との間で共通化させる構造索引登録手段と、
を更に備えたことを特徴とする請求項１に記載の構造化文書管理装置。
【請求項４】
前記構造索引生成手段は、前記タグ構造が前記構造索引記憶手段に既に登録されているか否かを判定し、未登録と判定した場合に当該タグ構造に前記新たな構造ＩＤを割り当てることを特徴とする請求項３に記載の構造化文書管理装置。
【請求項５】
前記構造索引生成手段は、前記タグ構造の出現頻度に応じて、前記新たな構造ＩＤの値を決定することを特徴とする請求項３又は４に記載の構造化文書管理装置。
【請求項６】
前記構造索引登録手段は、前記他の構造化文書登録手段から新たな構造索引を受信した場合に、当該新たな構造索引を前記構造索引記憶手段に登録することを特徴とする請求項３に記載の構造化文書管理装置。
【請求項７】
前記構造化文書を前記構造化文書記憶手段に新たに記憶する際に、当該構造化文書の各要素に含まれた文字列部分を構成する語彙の種別毎に、前記語彙ＩＤとは異なる新たな語彙ＩＤを割り当てた新たな語彙索引を生成する語彙索引生成手段と、
前記新たな語彙索引を前記語彙索引記憶手段に登録するとともに、前記他の構造化文書管理装置に送信し、当該他の構造化文書管理装置との間で共通化させる語彙索引登録手段と、
を更に備えたことを特徴とする請求項１に記載の構造化文書管理装置。
【請求項８】
前記語彙索引生成手段は、前記語彙が前記語彙索引記憶手段に既に登録されているか否かを判定し、未登録と判定した場合に当該語彙に前記新たな語彙ＩＤを割り当てることを特徴とする請求項７に記載の構造化文書管理装置。
【請求項９】
前記語彙索引生成手段は、前記語彙の出現頻度に応じて、前記新たな語彙ＩＤの値を決定することを特徴とする請求項７又は８に記載の構造化文書管理装置。
【請求項１０】
前記語彙索引登録手段は、前記他の構造化文書登録手段から新たな語彙索引を受信した場合に、当該新たな語彙索引を前記語彙索引記憶手段に登録することを特徴とする請求項７に記載の構造化文書管理装置。
【請求項１１】
ネットワーク上に接続された他の構造化文書管理装置とともに複数の構造化文書を分散して記憶し、当該他の構造化文書管理装置との間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理装置の構造化文書管理方法であって、
自己の構造化文書管理装置に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引、及び、自己の構造化文書管理装置に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引に基づいて、自己の構造化文書管理装置に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、前記他の構造化文書管理装置に送信する符号化工程と、
前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元工程と、
を含むことを特徴とする構造化文書管理方法。
【請求項１２】
ネットワーク上に接続された複数の構造化文書管理装置により複数の構造化文書を分散して記憶し、当該複数の構造化文書管理装置間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理システムにおいて、
前記構造化文書管理装置は、
前記構造化文書を記憶する構造化文書記憶手段と、
前記構造化文書記憶手段に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引記憶手段と、
前記構造化文書記憶手段に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引を記憶する語彙索引記憶手段と、
前記構造索引及び語彙索引に基づいて、前記構造化文書記憶手段に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、他の構造化文書管理装置に送信する符号化手段と、
前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元手段と、
を備えたことを特徴とする構造化文書管理システム。
【請求項１３】
前記複数の構造化文書管理装置と通信可能なクライアント装置を更に有し、
前記クライアント装置は、
前記構造索引記憶手段と、
前記語彙索引記憶手段と、
前記構造化文書管理装置から前記符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する構造化文書復元手段と、
を備えたことを特徴とする請求項１２に記載の構造化文書管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の構造化文書を分散して管理する構造化文書管理装置、方法及びシステムに関する。
【背景技術】
【０００２】
分散データベースにおける問い合わせ処理では、結合演算を行うためにノード間で中間データを転送しなければならない場合があり、データ転送に要する時間が処理遅延の一要因となっている。分散リレーショナルデータベース（ＲＤＢ）の場合は、結合演算で用いられるキー（外部キー）は予め定められており、また、キー値でなくともフィールドサイズはテーブル作成時に決まっているので、ノード間で転送するデータ量は分散データベースと比べて小さく、データ転送処理に要する時間も短い。
【０００３】
一方、分散ＸＭＬデータベースでは、どの要素の値で結合演算を行うかといった、ＲＤＢにおける外部キーに相当するものは定められておらず、また、要素毎に保持する文字列の最大長も定められていない。そのため、結合処理のために長大な文字列をノード間で大量に転送するような場合には、データ転送処理に多大な時間を要するという問題がある。また、構造化文書は、一般に不定長の文字列を多く含むため、その転送処理には比較的大きな時間がかかっており、転送処理時間の短縮が課題となっている。
【０００４】
ところで、分散データベースの分野では、ノード間で転送するデータを圧縮することで、転送するデータ量を削減し、転送処理に要する時間を短縮することが一般に行われている。ＸＭＬデータベースの分野においても、転送対象の構造化文書又はその一部分を圧縮し、転送データ量の削減を図ることで、上記転送処理に関する問題の解決を図った技術が提案されている。例えば、特許文献１には、タグを含む文書で構成された文字列ストリームからタグを分離し、タグが分離された文字列ストリームの位置に識別のためにタグ符号を配置した後、この文字列ストリームを符号化して出力する技術が開示されている。
【０００５】
【特許文献１】特開２０００−１０１４４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、あらゆる語彙に対応するため、転送対象の構造化文書に含まれる語彙とは無関係に、約１３万語の単語を登録した辞書を予め保持する必要があり、符号化処理に係るデータ量が増大化するという問題がある。また、特許文献１の技術のように、辞書式の符号化手法でデータの圧縮を行う場合、転送データ量を小さくできるため転送に要する時間は短縮できるが、辞書中から該当する単語を検索する処理に時間を要するため、結果的に圧縮・解凍に時間を要することになる。そのため、伝送を行うネットワークが比較的高速な場合には、圧縮・転送・解凍を合わせた場合の処理時間と、圧縮を行わずに転送した場合の処理時間とが同等となることがあるため、転送時間の改善とならない可能性がある。
【０００７】
本発明は上記に鑑みてなされたものであって、複数の構造化文書を分散して管理する構造化文書管理装置間において、構造化文書の送受信を効率的に行うことが可能な構造化文書管理装置、方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、ネットワーク上に接続された他の構造化文書管理装置とともに複数の構造化文書を分散して記憶し、当該他の構造化文書管理装置との間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理装置において、前記構造化文書を記憶する構造化文書記憶手段と、前記構造化文書記憶手段に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引記憶手段と、前記構造化文書記憶手段に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引を記憶する語彙索引記憶手段と、前記構造索引及び語彙索引に基づいて、前記構造化文書記憶手段に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、前記他の構造化文書管理装置に送信する符号化手段と、前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元手段と、を備える。
【０００９】
また、本発明は、ネットワーク上に接続された他の構造化文書管理装置とともに複数の構造化文書を分散して記憶し、当該他の構造化文書管理装置との間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理装置の構造化文書管理方法であって、自己の構造化文書管理装置に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引、及び、自己の構造化文書管理装置に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引に基づいて、自己の構造化文書管理装置に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、前記他の構造化文書管理装置に送信する符号化工程と、前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元工程と、を含む。
【００１０】
また、本発明は、ネットワーク上に接続された複数の構造化文書管理装置により複数の構造化文書を分散して記憶し、当該複数の構造化文書管理装置間で共通化された前記構造化文書を構成する各要素のタグ構造の種別毎に固有の構造ＩＤと、前記構造化文書を構成する各要素に含まれる語彙毎に固有の語彙ＩＤと、に基づいて前記複数の構造化文書を管理する構造化文書管理システムにおいて、前記構造化文書管理装置は、前記構造化文書を記憶する構造化文書記憶手段と、前記構造化文書記憶手段に記憶された構造化文書を構成する各要素のタグ構造と、当該タグ構造の種別毎に固有の前記構造ＩＤと、を対応付けた構造索引を記憶する構造索引記憶手段と、前記構造化文書記憶手段に記憶された構造化文書の各要素に含まれた文字列部分を構成する各語彙と、当該語彙の種別毎に固有の前記語彙ＩＤと、を対応付けた語彙索引を記憶する語彙索引記憶手段と、前記構造索引及び語彙索引に基づいて、前記構造化文書記憶手段に記憶された構造化文書を前記構造ＩＤ及び語彙ＩＤの配列に変換した符号化データを生成し、他の構造化文書管理装置に送信する符号化手段と、前記他の構造化文書管理装置から符号化データを受信した際に、前記構造索引及び語彙索引に基づいて、当該符号化データを構造化文書に復元する復元手段と、を備える。
【発明の効果】
【００１１】
本発明によれば、構造化文書に実際に含まれたタグ構造及び語彙に対応する構造ＩＤ及び語彙ＩＤを用いて構造化文書を符号化し、この符号化データを他の構造化文書管理装置との送受信に用いるため、元の構造化文書をそのまま転送する場合に比べて、転送データ量を減少し、転送に要する時間を短縮することができる。また、様々な単語を登録した辞書を予め保持する場合に比べ、符号化処理にかかるデータ量を減少させることができるため、構造化文書の符号化及び復元に要する時間を減少させることができ、構造化文書の送受信を効率的に行うことが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、構造化文書管理装置、方法及びシステムの最良な実施形態を詳細に説明する。
【００１３】
［第１の実施形態］
図１は、本実施形態の構造化文書管理システム１０の構成を示したブロック図である。図１に示すとおり、構造化文書管理システム１０は、複数の構造化文書管理装置１１〜１４と、クライアント装置４０とを有し、各装置間はネットワークＮを介して互いに通信可能に接続されている。なお、ネットワークＮに接続される構造化文書管理装置及びクライアント装置４０の個数は、この図示例に限定されないものとする。
【００１４】
構造化文書管理装置１１〜１４は、ＸＭＬ（eXtensible  Markup  Language）等のマークアップ言語で記述された構造化文書の記憶・管理を行う構造化文書ＤＢ３１（図２参照）を夫々有し、これら構造化文書管理装置１１〜１４により、構造化文書を分散して管理する構造化文書管理システム１０としての機能が実現されている。以下、構造化文書管理システム１０を構成する構造化文書管理装置１１〜１４の夫々を、単にノードともいう。
【００１５】
構造化文書管理システム１０は、ネットワークＮを通じてクライアント装置４０から入力される検索要求に応じ、当該構造化文書管理システム１０が備える構造化文書ＤＢ３１から、該当する構造化文書の検索し、検索結果として構造化文書をクライアント装置４０に提供する。また、構造化文書管理システム１０は、ネットワークＮを通じてクライアント装置４０から入力される構造化文書の登録要求に応じ、構造化文書管理システム１０が備える構造化文書ＤＢ３１に登録対象となった構造化文書を登録する。
【００１６】
クライアント装置４０は、ユーザが操作するＰＣ（Personal  Computer）等の端末装置である。ユーザは、クライアント装置４０を介して、構造化文書管理システム１０に対し、特定の文字列を含んだ構造化文書の検索を要求する検索要求や、構造化文書の新規登録を要求する登録要求を送信することが可能となっている。ここで、クライアント装置４０から送信される検索要求には、ＸＱｕｅｒｙ等の検索にかかる所定の検索式が含まれているものとする。また、登録要求には登録対象となる構造化文書が含まれているものとする。
【００１７】
ここで、クライアント装置４０から送信される検索要求又は登録要求は、構造化文書管理システム１０を構成する４つのノードのうち、何れか一のノードに受信されるものとする。なお、クライアントからの要求を受け付ける一のノードは、特定のノードに限定してもよいし、ラウンドロビン的に各ノードが順繰りに受け取る態様としてもよい。また、各ノードの負荷を考慮し、最も負荷が小さいノードがクライアント装置４０からの要求を受け取る態様としてもよい。
【００１８】
また、本実施形態では、クライアント装置４０からの要求を各ノードが受け付けることが可能な態様としたが、これに限らず、クライアント装置４０からの要求受け付けに特化した要求受付装置（図示せず）を別途備える態様としてもよい。
【００１９】
以下、構造化文書管理装置１１の構成について説明する。なお、本実施形態では、説明の簡略化のため、構造化文書管理装置１１〜１４の夫々は同様の構成を備えるものとし、構造化文書管理装置１２〜１４の構成についての説明は省略する。
【００２０】
図２は、構造化文書管理装置１１のハードウェア構成を示したブロック図である。図２に示したように、構造化文書管理装置１１は、ＣＰＵ（Central  Processing  Unit）１０１、操作部１０２、表示部１０３、ＲＯＭ（Read  Only  Memory）１０４、ＲＡＭ（Random  Access  Memory）１０５、通信部１０６及び記憶部１０７等を備え、各部はバス１０８により接続されている。
【００２１】
ＣＰＵ１０１は、ＲＡＭ１０５の所定領域を作業領域として、ＲＯＭ１０４又は記憶部１０７に予め記憶された各種制御プログラムとの協働により各種処理を実行し、構造化文書管理装置１１を構成する各部の動作を統括的に制御する。
【００２２】
また、ＣＰＵ１０１は、ＲＯＭ１０４又は記憶部１０７に予め記憶された所定のプログラムとの協働により、後述する要求受付部２０、通信処理部２１、検索プラン生成部２２、検索プラン処理部２３、構造化文書変換部２４、構造化文書取得部２６、格納処理部２７、構造索引部２８、語彙索引部２９及び構造化文書ＤＢ管理部３０（図４参照）の各機能部を実現させる。なお、各機能部の詳細については後述する。
【００２３】
操作部１０２は、各種入力キーを備え、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ１０１に出力する。
【００２４】
表示部１０３は、ＬＣＤ（Liquid  Crystal  Display）等の表示手段により構成され、ＣＰＵ１０１からの表示信号に基づいて、各種情報を表示する。なお、表示部１０３は、操作部１０２と一体的にタッチパネルを構成する態様としてもよい。
【００２５】
ＲＯＭ１０４は、構造化文書管理装置１１の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
【００２６】
ＲＡＭ１０５は、ＳＤＲＡＭ等の揮発性記憶手段であって、ＣＰＵ１０１の作業エリアとして機能し、バッファ等の役割を果たす。
【００２７】
通信部１０６は、ネットワークＮを通じ他のノードやクライアント装置４０との間で通信を行うインターフェースである。通信部１０６は、他のノードやクライアント装置４０から送信された各種情報をＣＰＵ１０１に出力し、また、ＣＰＵ１０１から出力される各種情報を他のノードやクライアント装置４０へと送信する。
【００２８】
記憶部１０７は、磁気的又は光学的に記録可能な記憶媒体を有し、構造化文書管理装置１１の制御にかかるプログラムや各種設定情報等を書き換え可能に記憶する。また、記憶部１０７は、構造化文書を記憶するためのデータベースとしての構造化文書ＤＢ３１や、後述する構造−構造ＩＤ対応データ３２、語彙−語彙ＩＤ対応データ３３を記憶する記憶領域を有している。なお、本実施形態では、一の記憶手段により構造化文書ＤＢ３１、構造−構造ＩＤ対応データ３２及び語彙−語彙ＩＤ対応データ３３を保持する態様としたが、これに限らず、各機能に応じて夫々異なる記憶手段に保持する態様としてもよい。この場合、記憶手段の備えられる位置は、構造化文書管理装置１１の内部、外部を問わないものとする。
【００２９】
ここで、本実施形態で取り扱う構造化文書の記述形式について説明する。図３は、ＸＭＬで記述された構造化文書の一例を示した図である。同図では、特許に関する情報をＸＭＬ形式で記述した構造化文書の例を示している。ＸＭＬでは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグが存在し、構造化文書の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列の区切りと、その文字列が構造上何れの構成要素に属するのかを明確に記述することができるようになっている。
【００３０】
ここで、開始タグとは要素名称を記号「＜」、「＞」で閉じた書式で記載され、終了タグとは要素名称を記号「＜／」と「＞」で閉じた書式で記載される。なお、ＸＭＬでは、一連の開始タグと終了タグとで定義されたデータが一の要素を意味しており、例えば、＜特許＞タグと＜／特許＞タグとを含み、両タグで囲まれたデータが一の要素を構成している。
【００３１】
図４は、構造化文書管理装置１１の機能構成を示したブロック図である。図３に示したように、構造化文書管理装置１１は、要求受付部２０、通信処理部２１、検索プラン生成部２２、検索プラン処理部２３、構造化文書変換部２４、ディクショナリ２５、構造化文書取得部２６、格納処理部２７、構造索引部２８、語彙索引部２９及び構造化文書ＤＢ管理部３０を備えている。
【００３２】
要求受付部２０は、通信部１０６介して受信される他のノードやクライアント装置４０からの各種要求を受け付ける機能部である。要求受付部２０で受け付ける要求としては、クライアント装置４０から送信される検索要求や登録要求、他のノードから送信される実行要求等が挙げられる。
【００３３】
通信処理部２１は、検索要求に対する検索結果や後述する処理結果等を、通信部１０６を介して他のノードやクライアント装置４０に送信する。
【００３４】
検索プラン生成部２２は、要求受付部２０により受け付けられた検索要求に含まれる検索式を構文解析し、処理コストが最小になるようなプラン（検索処理の実行計画）を生成する。
【００３５】
検索プラン処理部２３は、検索プラン生成部２２で生成されたプランに従って実行計画を実行し、構造化文書取得部２６を介して構造化文書ＤＢ３１から最終的に取得した構造化文書を検索結果として、通信処理部２１を介しクライアント装置４０に送信する。
【００３６】
構造化文書変換部２４は、後述する構造−構造ＩＤ対応データ３２に登録された構造索引３２１、語彙−語彙ＩＤ対応データ３３に登録された語彙索引３３１に基づいて、構造化文書の符号化及び符号化された構造化文書の復元を行う。
【００３７】
また、構造化文書変換部２４は、符号化データに所定の圧縮形式で圧縮処理を施すことで符号化データのデータ量を減少させるとともに、他のノードから入力された符号化データに圧縮処理が施されていると判定した場合には、この圧縮を解凍する。なお、圧縮形式は特に問わないものとするが、例えば、ＺＩＰ形式やＬＺＨ形式等を用いることができる。
【００３８】
ディクショナリ２５には、構造化文書が登録される格納先ノードを決定するための所定のルールが予め定義されており、新たな構造化文書を構造化文書管理システム１０に登録する際には、このディクショナリ２５に定義されたルールに基づいて、格納処理部２７により格納先ノードが決定される。なお、決定された格納先ノードは、格納処理部２７により、登録対象となった構造化文書と対応付けられ、格納先情報としてディクショナリ２５に登録される。また、既に登録された構造化文書を読み出す際には、この格納先情報に基づいて、構造化文書が格納されたノードが特定される。
【００３９】
なお、ディクショナリ２５に定義されたルール自体は、ＲＯＭ１０４又は記憶部１０７に予め記憶されているものとする。また、ディクショナリ２５に登録される格納先情報は、記憶部１０７の所定の記憶領域に記憶されるものとする。
【００４０】
構造化文書取得部２６は、検索プラン処理部２３により指示された構造化文書を、構造化文書ＤＢ管理部３０を介し構造化文書ＤＢ３１から取得する。
【００４１】
格納処理部２７は、クライアント装置４０から要求受付部２０を介して入力された登録要求に含まれる構造化文書の格納先ノードを、ディクショナリ２５に定義されたルールに基づいて決定し、この格納先ノードの構造化文書ＤＢ管理部３０に登録対象の構造化文書を登録させる。
【００４２】
また、格納処理部２７は、図４に示したとおり、文書解析部２７１、構造解析部２７２及び語彙解析部２７３を有している。文書解析部２７１は、ＸＭＬパーサ等であって、入力された構造化文書を構造解析する。具体的に、文書解析部２７１は、入力された構造化文書が図３に示したようなＸＭＬ文書である場合には、開始タグと終了タグとの対応など、この構造化文書がＸＭＬとしての記法に従っているかの確認を行う。この解析処理において、構造化文書が記法に従っていることを確認した後、当該構造化文書を構造解析部２７２及び語彙解析部２７３に出力する。
【００４３】
構造解析部２７２は、文書解析部２７１から入力された構造化文書に含まれるタグの構造位置を示すタグ構造を要素毎に解析し、このタグ構造の種別毎に固有の構造ＩＤを割り当て、当該構造と構造ＩＤとを対応付けた情報を構造索引３２１として生成する。ここで、要素とは、開始タグと終了タグ及び当該両タグ間に囲まれた文字列部分を意味する。また、割り当てられる構造ＩＤは、数値等の圧縮に適した形式であることが好ましい。
【００４４】
また、構造解析部２７２は、上記した構造索引３２１の生成時において、構造−構造ＩＤ対応データ３２に登録された既存の構造索引を参照し、重複するものについては構造ＩＤを割り当てないよう制御する。
【００４５】
また、構造解析部２７２は、生成した構造索引３２１を、構造索引部２８に出力することで自己の構造−構造ＩＤ対応データ３２に登録させるとともに、通信処理部２１を介して他のノードに送信し、他のノードの構造−構造ＩＤ対応データ３２に登録させることで、生成した構造索引３２１を構造化文書管理システム１０内で共通化させる。また、構造解析部２７２は、要求受付部２０を介し、他のノードから構造索引３２１を受け取った場合には、当該構造索引３２１を構造索引部２８に出力することで構造−構造ＩＤ対応データ３２に登録させる。
【００４６】
図５−１、図５−２は、構造解析部２７２の動作を説明するための図である。まず、構造解析部２７２による構造化文書の解析の結果、要素毎のタグ構造が、図５−１の状態であったものとする。この場合、構造解析部２７２は、図５−２に示したように、タグ構造の種別毎に固有の構造ＩＤを割り当てた構造索引３２１を生成する。なお、図中「ｔｅｘｔ（）」は、この要素の文字列部分の位置を示している。
【００４７】
図４に戻り、語彙解析部２７３は、文書解析部２７１から入力された構造化文書に含まれる文字列部分を要素毎に解析し、各文字列部分を所定の文字数からなる語彙単位に分割し、分割した語彙毎に固有の語彙ＩＤを割り当て、当該語彙と語彙ＩＤとを対応付けた情報を語彙索引３３１として生成する。ここで、文字列部分とは、開始タグと終了タグとで囲まれた文字列部分を意味する。また、割り当てられる語彙ＩＤは、数値等の圧縮に適した形式であることが好ましい。
【００４８】
また、語彙解析部２７３は、上記した語彙索引３３１の生成時において、語彙−語彙ＩＤ対応データ３３に登録された既存の語彙索引を参照し、重複するものについては語彙ＩＤを割り当てないよう制御する。
【００４９】
また、語彙解析部２７３は、生成した語彙索引３３１を、語彙索引部２９に出力することで自己の語彙−語彙ＩＤ対応データ３３に登録させるとともに、通信処理部２１を介して他のノードに送信し、他のノードの語彙−語彙ＩＤ対応データ３３に登録させることで、成した語彙索引３３１を構造化文書管理システム１０内で共通化させる。また、語彙解析部２７３は、要求受付部２０を介し、他のノードから語彙索引３３１を受け取った場合には、当該語彙索引３３１を語彙索引部２９に出力することで語彙−語彙ＩＤ対応データ３３に登録させる。
【００５０】
図６は、語彙解析部２７３の動作を説明するための図である。まず、語彙解析部２７３による構造化文書の解析の結果、図６左図に示したように、構造化文書に含まれる一要素の文字列「並列検索装置」が文字列部分としと抽出されたものとする。この場合、語彙解析部２７３は、図６中図に示したように、文字列「並列検索装置」を二文字からなる語彙単位に分割する。なお、最後に分割された文字列は、一文字分の「置」となるため、語彙索引部２９により末尾に「＃」を付与している。次いで、語彙解析部２７３は、分割した語彙毎に固有の語彙ＩＤを付与し、図６右図に示したように、当該語彙と語彙ＩＤとを対応付けた情報を語彙索引３３１として生成する。
【００５１】
構造索引部２８は、構造解析部２７２から入力される構造索引３２１を、構造−構造ＩＤ対応データ３２に登録する。また、語彙索引部２９は、語彙解析部２７３から入力される語彙索引３３１を、語彙−語彙ＩＤ対応データ３３に登録する。
【００５２】
構造化文書ＤＢ管理部３０は、構造化文書ＤＢ３１の管理を行う機能部であって、構造化文書取得部２６からの指示に応じて、構造化文書ＤＢ３１から構造化文書の読み出しや、格納処理部２７からの指示に応じて、構造化文書ＤＢ３１に構造化文書の登録等を行う。
【００５３】
以下、図７〜図１０を参照して、クライアント装置４０から、構造化文書の登録を要求する登録要求が構造化文書管理システム１０に送信された場合の動作について説明する。
【００５４】
図７は、登録要求を受け付けたノード（マスタノード）での構造化文書の登録に係る処理（構造化文書登録処理）の手順を示したフローチャートである。
【００５５】
まず、要求受付部２０は、クライアント装置４０から登録要求として指示された構造化文書を受け付けると、この構造化文書を格納処理部２７へと出力する（ステップＳ１１）。続いて、格納処理部２７の文書解析部２７１は、入力された構造化文書を解析し（ステップＳ１２）、この解析結果を構造解析部２７２及び語彙解析部２７３に出力することで、ステップＳ１３の構造−構造ＩＤデータ更新処理、ステップＳ１４の語彙−語彙ＩＤデータ更新処理を順次実行する。
【００５６】
以下、図８を参照して、ステップＳ１３の構造−構造ＩＤデータ更新処理について説明する。図８は、構造−構造ＩＤデータ更新処理の手順を示したフローチャートである。
【００５７】
まず、構造解析部２７２は、文書解析部２７１から入力された構造化文書に基づき、タグの構造位置を示すタグ構造を要素毎に取得する（ステップＳ１３１）。
【００５８】
次いで、構造解析部２７２は、構造−構造ＩＤ対応データ３２を参照し、ステップＳ１３１で取得したタグ構造と同様のタグ構造が、構造−構造ＩＤ対応データ３２に既に登録されているか否かを判定する（ステップＳ１３２）。ここで、取得した全てのタグ構造が構造−構造ＩＤ対応データ３２に既に登録されていると判定した場合には（ステップＳ１３２；Ｙｅｓ）、本処理を終了し図７のステップＳ１４へと直ちに移行する。
【００５９】
一方、ステップＳ１３２において、構造−構造ＩＤ対応データ３２に登録されていないタグ構造があると判定した場合には（ステップＳ１３２；Ｎｏ）、構造解析部２７２は、登録されていないと判定したタグ構造に対し、固有の構造ＩＤを割り当て（ステップＳ１３３）、このタグ構造と構造ＩＤとを対応付けた構造索引３２１を生成する（ステップＳ１３４）。
【００６０】
続いて、構造解析部２７２は、生成した構造索引３２１を、構造索引部２８に出力することで自己の構造−構造ＩＤ対応データ３２に登録させるとともに（ステップＳ１３５）、通信処理部２１を介して他のノード（スレーブノード）に送信することで、他のノードの構造−構造ＩＤ対応データ３２に登録させ（ステップＳ１３６）、図７のステップＳ１４へと移行する。
【００６１】
次に、図９を参照して、ステップＳ１４の語彙−語彙ＩＤデータ更新処理について説明する。図９は、語彙−語彙ＩＤデータ更新処理の手順を示したフローチャートである。
【００６２】
まず、語彙解析部２７３は、文書解析部２７１から入力された構造化文書に含まれる文字列部分を、要素毎に抽出し（ステップＳ１４１）、抽出した各文字列を所定の文字数毎に分割し語彙を取得する（ステップＳ１４２）。
【００６３】
次いで、語彙解析部２７３は、語彙−語彙ＩＤ対応データ３３を参照し、ステップＳ１４２で取得した各語彙と同様の語彙が、語彙−語彙ＩＤ対応データ３３に既に登録されているか否かを判定する（ステップＳ１４３）。ここで、語彙索引部２９は、取得した全ての語彙が語彙−語彙ＩＤ対応データ３３に既に登録されていると判定した場合には（ステップＳ１４３；Ｙｅｓ）、本処理を終了し図７のステップＳ１５へと直ちに移行する。
【００６４】
一方、ステップＳ１４３において、語彙−語彙ＩＤ対応データ３３に登録されていない語彙があると判定した場合には（ステップＳ１４３；Ｎｏ）、語彙索引部２９は、登録されていないと判定した語彙に対し、固有の語彙ＩＤを割り当て（ステップＳ１４４）、この語彙と語彙ＩＤとを対応付けた語彙索引３３１を生成する（ステップＳ１４５）。
【００６５】
続いて、語彙索引部２９は、生成した構造索引３２１を、語彙索引部２９に出力することで自己の語彙−語彙ＩＤ対応データ３３に登録させるとともに（ステップＳ１４６）、通信処理部２１を介して他のノード（スレーブノード）に送信することで、他のノードの語彙−語彙ＩＤ対応データ３３に登録させ（ステップＳ１４７）、図７のステップＳ１５へと移行する。
【００６６】
図７に戻り、格納処理部２７は、ディクショナリ２５を参照し、登録対象となった構造化文書の格納先ノードを決定した後（ステップＳ１５）、この格納先ノードが自ノードか否かを判定する（ステップＳ１６）。
【００６７】
ステップＳ１６において、格納先ノードが自己のノードと判定した場合には（ステップＳ１６；Ｙｅｓ）、登録対象となった構造化文書を、自己のノードが有する構造化文書ＤＢ３１に登録し（ステップＳ１７）、ステップＳ１９の処理へと移行する。
【００６８】
一方、ステップＳ１６において、格納先ノードが他のノードと判定した場合には（ステップＳ１６；Ｎｏ）、格納処理部２７は、登録対象となった構造化文書を、通信処理部２１を介して格納先ノードに送信（転送）することで、格納先ノードの構造化文書ＤＢ３１に登録させ（ステップＳ１８）、ステップＳ１９の処理へと移行する。
【００６９】
続くステップＳ１９では、格納処理部２７は、登録対象となった構造化文書と、当該構造化文書の格納先ノードとを対応付けた格納先情報を、ディクショナリ２５に登録するとともに（ステップＳ１９）、この格納先情報を、通信処理部２１を介して他のノード（スレーブノード）に送信することで、他のノードのディクショナリ２５に登録させ（ステップＳ２０）、本処理を終了する。
【００７０】
図１０は、マスタノードから送信される各種情報を受け付けるノード側（スレーブノード）での、各種情報の登録にかかる処理（他ノード側登録処理）の手順を示したフローチャートである。なお、本処理は、常時又はマスタノードから送信される指示信号に応じて実行されるものとする。
【００７１】
まず、格納処理部２７（構造解析部２７２）は、要求受付部２０を介してマスタノードから構造索引３２１を受信したか否かを判定する（ステップＳ２１）。ここで、格納処理部２７は、構造索引３２１が受信していないと判定した場合には（ステップＳ２１；Ｎｏ）、ステップＳ２３の処理へと直ちに移行する。
【００７２】
一方、ステップＳ２１において、マスタノードから構造索引３２１を受信したと判定した場合（ステップＳ２１；Ｙｅｓ）、構造解析部２７２は、この構造索引３２１を構造索引部２８に出力することで、自己の構造−構造ＩＤ対応データ３２に登録させた後（ステップＳ２２）、ステップＳ２３の処理へと移行する。
【００７３】
続くステップＳ２３では、格納処理部２７（語彙解析部２７３）が、要求受付部２０を介してマスタノードから語彙索引３３１を受信したか否かを判定する（ステップＳ２３）。ここで、格納処理部２７は、語彙索引３３１を受信していないと判定した場合には（ステップＳ２３；Ｎｏ）、ステップＳ２５の処理へと直ちに移行する。
【００７４】
一方、ステップＳ２３において、マスタノードから語彙索引３３１を受信したと判定した場合（ステップＳ２３；Ｙｅｓ）、語彙解析部２７３は、この語彙索引３３１を語彙索引部２９に出力することで、自己の語彙−語彙ＩＤ対応データ３３に登録させた後（ステップＳ２４）、ステップＳ２５の処理へと移行する。
【００７５】
続くステップＳ２５では、格納処理部２７が、要求受付部２０を介してマスタノードから登録対象となる構造化文書が転送されてきたか否かを判定する（ステップＳ２５）。ここで、格納処理部２７は、構造化文書を受信していないと判定した場合には（ステップＳ２５；Ｎｏ）、ステップＳ２７の処理へと直ちに移行する。
【００７６】
一方、ステップＳ２５において、マスタノードから登録対象となる構造化文書を受信したと判定した場合（ステップＳ２５；Ｙｅｓ）、格納処理部２７は、この構造化文書を構造化文書ＤＢ管理部３０に出力することで、構造化文書ＤＢ３１に登録させた後（ステップＳ２６）、ステップＳ２７の処理へと移行する。
【００７７】
続くステップＳ２７では、格納処理部２７が、要求受付部２０を介して格納先情報をマスタノードから受信したか否かを判定する（ステップＳ２７）。ここで、格納処理部２７は、格納先情報を受信していないと判定した場合には（ステップＳ２７；Ｎｏ）、本処理を直ちに終了する。
【００７８】
一方、ステップＳ２７において、マスタノードから格納先情報を受信したと判定した場合には（ステップＳ２７；Ｙｅｓ）、格納処理部２７は、この格納先情報をディクショナリ２５に登録した後（ステップＳ２８）、本処理を終了する。
【００７９】
このように、新たに登録した構造化文書に含まれるタグ構造及び語彙を、構造化文書管理システム１０を構成する各ノード間で共通の情報とすることができ、また、タグ構造に割り当てた構造ＩＤ及び語彙に割り当てた語彙ＩＤを、構造化文書管理システム１０を構成する各ノード間で共通の情報とすることができる。
【００８０】
なお、本実施形態では、マスタノードから受け付けた構造索引３２１、語彙索引３３１を、無条件に構造−構造ＩＤ対応データ３２、語彙−語彙ＩＤ対応データ３３の夫々に登録する態様としたが、これに限らず、上述した構造−構造ＩＤデータ更新処理（図８参照）、語彙−語彙ＩＤデータ更新処理（図９参照）のように、登録前に重複する索引が存在するか否かを確認する態様としてもよい。
【００８１】
また、本実施形態では、格納先ノードに登録対象となった構造化文書自体を送信する態様としたが、これに限らず、当該構造化文書に含まれるタグ構造（構造ＩＤ）及び語彙（語彙ＩＤ）を各ノード間で共通化した後には、後述する構造化文書符号化処理（図１２参照）を施した符号化データの状態で送信する態様としてもよい。この場合、後述する構造化文書復元処理（図１４参照）により、元の構造化文書を復元することができ、元の構造化文書をそのまま転送する場合に比べて、転送データ量を減少し、転送に要する時間を短縮することができる。
【００８２】
次に、図１１〜図１６を参照して、クライアント装置４０から、構造化文書の検索を要求する検索要求が入力された場合の動作について説明する。
【００８３】
図１１は、検索要求を受け付けたノード（マスタノード）での構造化文書の検索に係る処理（構造化文書検索処理）の手順を示したフローチャートである。まず、要求受付部２０は、クライアント装置４０から検索要求を受け付けると、この検索要求を検索プラン生成部２２に出力する（ステップＳ３１）。続いて、検索プラン生成部２２は、入力された検索要求に含まれた検索式に基づいて、プラン（検索処理の実行計画）を生成し、検索プラン処理部２３に出力する（ステップＳ３２）。
【００８４】
次いで、検索プラン処理部２３は、ディクショナリ２５を参照し、入力されたプランに他のノードの構造化文書ＤＢ３１に係る処理が含まれているか否かを判定する（ステップＳ３３）。ここで、検索プラン処理部２３は、プランに含まれた各実行計画が自己のノードの構造化文書ＤＢ３１に登録された構造化文書のみで遂行できると判定した場合には（ステップＳ３３；Ｎｏ）、プランに指示された実行計画を順次実行し（ステップＳ３４）、ステップＳ４０へと移行する。
【００８５】
一方、ステップＳ３３において、他のノードの構造化文書ＤＢ３１に格納された構造化文書が必要と判定した場合には（ステップＳ３３；Ｙｅｓ）、検索プラン処理部２３が、プランに指示された実行計画のうち、他のノードに係る実行計画まで実行した後（ステップＳ３５）、ステップＳ３６の構造化文書符号化処理へと移行する。以下、図１２を参照して、ステップＳ３６の構造化文書符号化処理について説明する。
【００８６】
図１２は、構造化文書符号化処理の手順を示したフローチャートである。まず、構造化文書変換部２４は、ステップＳ３５の処理で取得された中間データ（構造化文書）に含まれる一の要素を処理対象とする（ステップＳ３６１）。
【００８７】
次いで、構造化文書変換部２４は、構造−構造ＩＤ対応データ３２に登録された構造索引に基づいて、処理対象要素のタグ構造を構造ＩＤに変換する（ステップＳ３６２）。
【００８８】
続いて、構造化文書変換部２４は、語彙−語彙ＩＤ対応データ３３に登録された構造索引に基づいて、処理対象要素に含まれた文字列を構成する語彙を語彙ＩＤに変換するとともに、当該語彙ＩＤ毎に対応する語彙の出現位置を指示するオフセットを付与する（ステップＳ３６３）。
【００８９】
次に、構造化文書変換部２４は、中間データに含まれた全ての要素に対し、ステップＳ３６２及びステップＳ３６３の処理を施したか否かを判定し、未処理の要素が存在すると判定した場合には（ステップＳ３６４；Ｎｏ）、ステップＳ３６１へと再び戻り、未処理の要素を処理対象とした後、ステップＳ３６２及びステップＳ３６２の処理を施す。
【００９０】
一方、ステップＳ３６４において、全ての要素に対しステップＳ３６２及びステップＳ３６３の処理を施したと判定した場合には（ステップＳ３６４；Ｙｅｓ）、要素毎に取得した変換後のデータを結合し、符号化データとする（ステップＳ３６５）。
【００９１】
次いで、構造化文書変換部２４は、符号化データに対し、圧縮処理を施すか否かを判定する（ステップＳ３６６）。ここで、圧縮処理を施すか否かの設定は、設定情報として記憶部１０７に予め記憶されているものとし、構造化文書変換部２４は、この設定情報に基づいて、ステップＳ３６６の判定を行うものとする。
【００９２】
ステップＳ３６６において、圧縮処理を施さないと判定した場合には（ステップＳ３６６；Ｎｏ）、図１１のステップＳ３７へと直ちに移行する。また、ステップＳ３６６において、圧縮処理を施すと判定した場合には（ステップＳ３６６；Ｙｅｓ）、構造化文書変換部２４は、符号化データに対し、所定の圧縮形式で圧縮処理を施すことで、データ量を減少させた後（ステップＳ３６７）、図１１のステップＳ３７へと移行する。
【００９３】
図１１に戻り、検索プラン処理部２３は、ステップＳ３６で取得された符号化データと、ステップＳ３２で生成されたプランとを含んだ実行要求を、通信処理部２１を介して、当該プランの遂行に必要な他のノード（スレーブノード）に送信する（ステップＳ３７）。
【００９４】
以下、図１３を参照して、マスタノードから送信される実行要求を受け付けるノード（スレーブノード）での、構造化文書の検索にかかる動作を説明する。図１３は、スレーブノードで実行される構造化文書の検索にかかる処理（他ノード側構造化検索処理）の手順を示したフローチャートである。
【００９５】
スレーブノード側では、要求受付部２０が実行要求を受け付けると、この実行要求を自己の検索プラン処理部２３に出力する（ステップＳ５１）。続いて、検索プラン処理部２３は、実行要求に含まれた符号化データを構造化文書変換部２４に出力し（ステップＳ５２）、ステップＳ５３の構造化文書復元処理へと移行させる。以下、図１４を参照して、ステップＳ５３の構造化運書復元処理について説明する。
【００９６】
図１４は、構造化文書復元処理の手順を示したフローチャートである。まず、検索プラン処理部２３は、入力された符号化データの拡張子や、データ構造に基づいて、当該符号化データに圧縮処理が施されているか否かを判定する（ステップＳ５３１）。ここで、圧縮処理が施されていないと判定した場合には（ステップＳ５３１；Ｎｏ）、ステップＳ５３３へと直ちに移行する。
【００９７】
また、ステップＳ５３１において、圧縮処理が施されていると判定した場合には（ステップＳ５３１；Ｙｅｓ）、検索プラン処理部２３は、この符号化データに解凍処理を施した後（ステップＳ５３２）、ステップＳ５３３へと移行する。
【００９８】
続くステップＳ５３３において、検索プラン処理部２３は、符号化データに含まれた一の要素を処理対象とする（ステップＳ５３３）。ここで、要素とは、符号化された一のタグ構造（構造ＩＤ）と当該タグ構造の文字列部分（語彙群）を意味する。
【００９９】
ステップＳ５３３において、検索プラン処理部２３は、構造−構造ＩＤ対応データ３２に登録された構造索引に基づいて、処理対象要素に含まれた構造ＩＤを、タグ構造に変換する（ステップＳ５３４）。
【０１００】
続いて、検索プラン処理部２３は、語彙−語彙ＩＤ対応データ３３に登録された語彙索引に基づいて、処理対象要素に含まれた各語彙ＩＤを語彙に変換するとともに、各語彙をオフセットで指示された出現位置に基づいて配置し、文字列部分を復元する（ステップＳ５３５）。
【０１０１】
次いで、構造化文書変換部２４は、符号化データに含まれた全ての要素に対し、ステップＳ５３４及びステップＳ５３５の処理を施したか否かを判定する（ステップＳ５３６）。ここで、未処理の要素が存在すると判定した場合には（ステップＳ５３６；Ｎｏ）、ステップＳ５３３へと再び戻り、未処理の要素を処理対象とした後、ステップＳ５３４及びステップＳ５３５の処理を施す。
【０１０２】
また、ステップＳ５３６において、全ての要素に対してステップＳ５３４及びステップＳ５３５の処理を施したと判定した場合には（ステップＳ５３６；Ｙｅｓ）、構造化文書変換部２４は、全ての要素に対するステップＳ５３４及びステップＳ５３５の処理結果から元の構造化文書を再構成し（ステップＳ５３７）、図１３のステップＳ５４の処理へと移行する。
【０１０３】
図１３に戻り、検索プラン処理部２３は、ステップＳ５３の処理で復元された中間データ（構造化文書）を用いて、プランに指示された実行計画のうち、自己のノードにて処理可能な実行計画を実行し（ステップＳ５４）、結果として得られた構造化文書を検索プラン処理部２３に出力することで、構造化文書符号化処理を実行させる（ステップＳ５５）。なお、ステップＳ５５の構造化文書符号化処理は、上述したステップＳ３７の構造化文書符号化処理と同様であるため、その説明は省略する。
【０１０４】
続いて、検索プラン処理部２３は、ステップＳ５５により取得された符号化データを、処理結果として実行要求の送信元となったマスタノードに通信処理部２１を介して送信し（ステップＳ５６）、スレーブノード側での処理を終了する。
【０１０５】
図１１に戻り、マスタノード側では、要求受付部２０がスレーブノードから処理結果を受け付けると、この処理結果を検索プラン処理部２３を介して、構造化文書変換部２４に出力する（ステップＳ３８）。
【０１０６】
構造化文書変換部２４では、処理結果として入力された符号化データを復元する構造化文書復元処理を実行し、符号化データから中間データ（構造化文書）を復元する（ステップＳ３９）。ここで、ステップＳ４０の構造化文書複合化処理は、上述したステップＳ５３の構造化文書複合化処理と同様であるため、その説明は省略する。
【０１０７】
続いて、検索プラン処理部２３は、ステップＳ３９で復元された中間データを用いて、プランに指示された実行計画を実行する（ステップＳ４０）。なお、処理結果として受け付けた構造化文書が、プランに指示された実行計画の最終結果である場合にはこの限りでない。また、他のノードにおいてさらに処理を要する場合には、処理結果として受け付けた構造化文書又は当該構造化文書に基づいて取得した構造化文書を中間データとして、構造化文書変換部２４により符号化した後、スレーブノードに送信する。
【０１０８】
次いで、検索プラン処理部２３は、プランの実行結果として得られた構造化文書を検索結果として、通信処理部２１を介してクライアント装置４０に送信し（ステップＳ４１）、本処理を終了する。
【０１０９】
なお、本実施形態では、検索結果を構造化文書の状態で送信することとしたが、これに限らず、構造化文書を符号化データに変換した状態で送信する態様としてもよい。
【０１１０】
図１５−1、図１５−２、図１５−３は、上記した構造化文書の検索時における、構造化文書変換部２４の動作を説明するための図である。同図において、下向きの矢印は、構造化文書の符号化にかかる処理の流れを示しており、上向きの矢印は、符号化された構造化文書の復元にかかる処理の流れを示している。
【０１１１】
まず、構造化文書の符号化時の動作について説明する。上述したステップＳ３６１により、図１５−１の上段に示した構造化文書の一要素「＜発明の名称＞並列検索方法および装置＜／発明の名称＞」が処理対象に設定されたものとする。この場合、構造化文書変換部２４は、図１５−２に示したように、この処理対象要素のタグ構造「＜発明の名称＞」を、構造−構造ＩＤ対応データ３２に登録された構造索引３２１（図１６−１参照）に基づいて、当該タグ構造に対応する構造ＩＤ「０００７」に変換する。
【０１１２】
また、構造化文書変換部２４は、処理対象要素に含まれた文字列「並列検索方法および装置」を、図１５−３の中段に示したように、複数の語彙に分解した後、語彙−語彙ＩＤ対応データ３３に登録された語彙索引３３１（図１６−２参照）に基づいて、各語彙を対応する語彙ＩＤに夫々変換し、各語彙の出現位置を指示するオフセットを語彙ＩＤに夫々付加する。
【０１１３】
例えば、図１５−３に示したように、語彙「方法」は、語彙−語彙ＩＤ対応データ３３に登録された語彙索引３３１に基づいて、当該語彙「方法」に対応する語彙ＩＤ「０１０１」に変換された後、この語彙ＩＤの先頭部分にオフセット「０」が付加される。ここで、オフセット「０」は、先行する語彙「検索」の末尾と、自己の語彙「方法」との間の距離を意味しており、文字間隔を空けることなく連続して配置することを意味している。
【０１１４】
次に、構造化文書変換部２４は、図１５−１の中段に示したように、変換した構造ＩＤと各語彙ＩＤ＋オフセットとを結合した符号化データを生成し、設定内容に応じて圧縮処理を施す。
【０１１５】
次に、構造化文書の復元時の動作について説明する。上述したステップＳ５３３により、図１５−１の中段に示した符号化データが、処理対象の要素として設定されたものとする。この場合、構造化文書変換部２４は、図１５−２に示したように、構造−構造ＩＤ対応データ３２に登録された構造索引３２１（図１６−１参照）に基づいて、この処理態様要素に含まれた構造ＩＤをタグ構造に変換（逆変換）する。
【０１１６】
また、構造化文書変換部２４は、図１５−３に示したように、語彙−語彙ＩＤ対応データ３３に登録された語彙索引３３１（図１６−２）に基づいて、処理対象要素に含まれた各語彙ＩＤを対応する語彙に夫々変換（逆変換）するとともに、各語彙ＩＤに付加されたオフセットに基づいて語彙を配列することで、元の文字列を再構成する。なお、圧縮された符号化データを受け取った場合には、この解凍処理を施した後、タグ構造及び文字列の復元を行うものとする。
【０１１７】
次に、構造化文書変換部２４は、図１５−１の上段に示したように、復元したタグ構造と文字列とを結合し、元の構造化文書を復元する。
【０１１８】
以上のように、本実施形態によれば、構造化文書に実際に含まれたタグ構造及び語彙に対応する構造ＩＤ及び語彙ＩＤを用いて構造化文書を符号化し、この符号化データを他の構造化文書管理装置との送受信に用いるため、元の構造化文書をそのまま転送する場合に比べて、転送データ量を減少し、転送に要する時間を短縮することができる。また、様々な単語を登録した辞書を予め保持する場合に比べ、符号化処理にかかるデータ量を減少させることができるため、構造化文書の符号化及び復元に要する時間を減少させることができ、構造化文書の送受信を効率的に行うことが可能となる。
【０１１９】
また、タグ構造及び語彙を圧縮形式に適した構造ＩＤ及び語彙ＩＤに変換した後、圧縮処理を施して転送することが可能であるため、構造化文書をより効率的に圧縮することができ、転送に要する時間をより短縮することができる。
【０１２０】
なお、本実施形態では、構造化文書ＤＢ３１に対する索引として、構造索引３２１と語彙索引３３１とを備える態様としたが、この例に限らず、例えば、日付情報等の他の索引を備える態様としてもよい。
【０１２１】
［第２の実施形態］
次に、第２の実施形態の構造化文書管理システム１０について説明する。なお、上述した第１の実施形態と同様の構成については、同一の符号を付与し、その説明を省略する。
【０１２２】
図１７は、第２の実施形態における構造化文書管理装置１１の機能構成を示したブロック図である。図１７に示したように、本実施形態の構造化文書管理装置１１は、格納処理部２７内に新たに構造解析部２７４と、語彙解析部２７５とを備えている。
【０１２３】
構造解析部２７４は、上述した構造解析部２７２の機能に加え、入力される各構造化文書に含まれたタグ構造の個数を種別毎にカウントし、構造履歴情報として記憶部１０７の所定領域に蓄積する。また、構造解析部２７４は、構造履歴情報に基づいてタグ構造の種別毎の出現頻度を算出し、この出現頻度に応じて、構造−構造ＩＤ対応データ３２に登録された構造ＩＤを割り当て直す。
【０１２４】
具体的に、構造解析部２７４は、出現頻度が高いタグ構造の構造ＩＤほど、圧縮効率がより高くなる数値へと割り当て直す。例えば、「０００１」や「１１１１」等、同じ数値が連続して出現するほど、その圧縮効率は高くなる傾向があるため、構造解析部２７４は、このような数値を構造ＩＤとして再割り当てを行うものとする。
【０１２５】
また、構造解析部２７４は、構造ＩＤの再割り当て時に、構造ＩＤに割り当て直した数値と、当該構造ＩＤに対応するタグ構造とを対応付けた情報を構造ＩＤ再割当要求として生成し、通信処理部２１を介して他のノードに送信することで、当該他のノードの構造−構造ＩＤ対応データ３２に登録された構造ＩＤを割り当て直させる。
【０１２６】
また、構造解析部２７４は、要求受付部２０を介し、他のノードから構造ＩＤ再割当要求を受け取った場合には、この構造ＩＤ再割当要求の指示内容に基づいて、自己のノードが備える構造−構造ＩＤ対応データ３２の構造ＩＤを割り当て直す。
【０１２７】
また、語彙解析部２７５は、上述した語彙解析部２７３の機能に加え、文字列部分を分割した語彙の個数を種別毎にカウントし、語彙履歴情報として記憶部１０７の所定領域に蓄積する。また、語彙解析部２７５は、語彙履歴情報に基づいて語彙の種別毎の出現頻度を算出し、この出現頻度に応じて、語彙−語彙ＩＤ対応データ３３に登録された語彙ＩＤの数値を、上記構造解析部２７４と同様に割り当て直す。
【０１２８】
また、語彙解析部２７５は、語彙ＩＤの再割り当て時に、語彙ＩＤに割り当て直した数値と、当該語彙ＩＤに対応する語彙とを対応付けた情報を語彙ＩＤ再割当要求として、通信処理部２１を介して他のノードに送信し、当該他のノードの語彙−語彙ＩＤ対応データ３３に登録された語彙ＩＤを割り当て直させる。
【０１２９】
また、語彙解析部２７５は、要求受付部２０を介し、他のノードから語彙ＩＤ再割当要求を受け取った場合には、この語彙ＩＤ再割当要求の指示内容に基づいて、自己のノードが備える語彙−語彙ＩＤ対応データ３３の語彙ＩＤを割り当て直す。
【０１３０】
以下、図１８、図１９を参照して、本実施形態の構造解析部２７４の動作について説明する。図１８は、後述する構造ＩＤ再割当要求を生成するノード（マスタノード）で実行される構造ＩＤの再割り当てに係る処理（構造ＩＤ再割当処理）の手順を示したフローチャートである。なお、マスタノードにて、構造ＩＤ再割当処理が実行されるタイミングは、特に問わないものとし、例えば、所定時間毎や構造索引３２１が所定量登録される毎に実行する態様としてもよい。
【０１３１】
まず、構造解析部２７４は、記憶部１０７の所定領域に蓄積された構造履歴情報に基づいて、タグ構造毎の出現頻度を算出する（ステップＳ６１）。続いて構造解析部２７４は、算出したタグ構造毎の出現頻度に応じて、構造−構造ＩＤ対応データ３２に登録されたタグ構造の構造ＩＤを再割り当てする（ステップＳ６２）。
【０１３２】
次いで、構造解析部２７４は、ステップＳ６２で再割り当てを行った構造ＩＤと、当該構造ＩＤに対応するタグ構造とを対応付けた情報を構造ＩＤ再割当要求として生成し（ステップＳ６３）、生成した構造ＩＤ再割当要求を、通信処理部２１を介して他のノード（スレーブノード）に送信した後（ステップＳ６４）、本処理を終了する。
【０１３３】
図１９は、構造ＩＤ再割当要求を受け付けたノード（スレーブノード）で実行される構造ＩＤの再割り当てに係る処理（他ノード側構造ＩＤ再割当処理）の手順を示したフローチャートである。
【０１３４】
スレーブノード側では、要求受付部２０がＩＤ再割当要求を受け付けると、この構造ＩＤ再割当要求を、構造解析部２７４に出力する（ステップＳ７１）。
【０１３５】
続いて、構造解析部２７４は、構造ＩＤ再割当要求として入力された構造ＩＤと、当該構造ＩＤに対応するタグ構造とを対応付けた情報に基づいて、構造−構造ＩＤ対応データ３２中の該当するタグ構造の構造ＩＤを、指示された値に変更し（ステップＳ７２）、本処理を終了する。
【０１３６】
なお、語彙解析部２７５の動作については、上述した構造解析部２７４と同様の動作を、語彙ＩＤ（語彙−語彙ＩＤ対応データ３３）に対して行うのみであるため、その説明は省略する。
【０１３７】
以上のように、本実施形態によれば、出現頻度の高いタグ構造の構造ＩＤ及び／又は語彙の語彙ＩＤに、圧縮効率がより高くなる数値を割り当てることができるため、圧縮時における構造化文書のデータ量をより減少させることができ、ノード間においてデータの転送に要する時間を短縮させることができる。
【０１３８】
なお、本実施形態では、構造ＩＤ、語彙ＩＤについて個別に再割り当てを行う態様としたが、これに限らず、両ＩＤの再割り当てを同じタイミングで行う態様としてもよいし、何れか一方のＩＤのみを割り当て直す態様としてもよい。
【０１３９】
［第３の実施形態］
次に、第３の実施形態の構造化文書管理システム１０について説明する。なお、上述した第１の実施形態と同様の構成については、同一の符号を付与し、その説明を省略する。
【０１４０】
図１７は、本実施形態におけるクライアント装置４０の機能構成を示したブロック図である。同図に示したように、クライアント装置４０は、通信処理部４１、構造索引部４２、語彙索引部４３、構造−構造ＩＤ対応データ４４、語彙−語彙ＩＤ対応データ４５及び構造化文書復元部４６を備えている。なお、通信処理部４１、構造索引部４２、語彙索引部４３及び構造化文書復元部４６は、クライアント装置４０が備える図示しないＣＰＵと、ＲＯＭ又は記憶部に予め記憶された所定のプログラムとの協働により実現される機能部である。
【０１４１】
また、構造−構造ＩＤ対応データ４４、語彙−語彙ＩＤ対応データ４５は、クライアント装置４０が備える図示しない記憶部の所定領域に格納されており、上述した構造−構造ＩＤ対応データ３２、語彙−語彙ＩＤ対応データ３３と同様、構造索引３２１、語彙索引３３１を夫々保持する。
【０１４２】
通信処理部４１は、構造化文書管理システム１０を構成する各ノードから送信された構造索引３２１を、ネットワークＮを介して受信すると、この構造索引３２１を構造索引部４２に出力することで、当該構造索引部４２により構造−構造ＩＤ対応データ４４に登録させる。
【０１４３】
また、通信処理部４１は、構造化文書管理システム１０から送信された語彙索引３３１を、ネットワークＮを介して受信すると、この語彙索引３３１を語彙索引部４３に出力することで、当該語彙索引部４３により語彙−語彙ＩＤ対応データ４５に登録させる。
【０１４４】
なお、本実施形態では、各ノードから送信される構造索引３２１及び語彙索引３３１は、ブロードキャストで送信されるものとするが、これに限らず、例えば、クライアント装置４０を含めてユニキャストで送信される態様としてもよいし、マルチキャストで送信される態様としてもよい。
【０１４５】
また、通信処理部４１は、検索要求に対する検索結果を構造化文書管理システム１０から受信すると、この検索結果を構造化文書復元部４６に出力する。なお、本実施形態では、構造化文書管理システム１０から送信される検索結果は、上述した符号化データの状態で送信されるものとする。
【０１４６】
構造索引部４２は、通信処理部４１から入力される構造索引３２１を、構造−構造ＩＤ対応データ４４に登録する。また、語彙索引部４３は、通信処理部４１から入力される語彙索引３３１を、語彙−語彙ＩＤ対応データ４５に登録する。
【０１４７】
構造化文書復元部４６は、構造−構造ＩＤ対応データ４４に登録された構造索引３２１及び語彙−語彙ＩＤ対応データ４５に登録された語彙索引３３１に基づいて、通信処理部４１から入力される検索結果としての符号化データを、構造化文書に復元する。また、構造化文書復元部４６は、符号化データに圧縮処理が施されていると判定した場合には、この符号化データに解凍処理を施した後、構造化文書の復元を行う。なお、構造化文書の復元にかかる動作は、上述した構造化文書変換部２４における構造化文書の復元にかかる動作と同様であるため、その説明は省略する。
【０１４８】
上記の構成において、クライアント装置４０は、構造化文書管理システム１０から検索要求に対する検査結果（構造化文書）を、符号化データの状態で取得すると、構造化文書復元部４６は、構造−構造ＩＤ対応データ４４に登録された構造索引３２１及び語彙−語彙ＩＤ対応データ４５に登録された語彙索引３３１に基づいて、元の構造化文書へと復元する。
【０１４９】
以上のように、本実施形態によれば、構造化文書管理システム１０を構成するノード−クライアント装置間において、転送する構造化文書を圧縮に適した形式に変換し、圧縮して転送することが可能であるため、元の構造化文書をそのまま転送する場合に比べて、転送データ量を削減し、転送に要する時間を短縮することができる。
【０１５０】
なお、本実施形態では、クライアント装置４０が構造索引部４２及び語彙索引部４３を備える態様としたが、これに限らず、構造索引部４２及び語彙索引部４３の何れか一方又は両方を備えない態様としてもよい。
【０１５１】
以上、発明の実施の形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加などが可能である。
【図面の簡単な説明】
【０１５２】
【図１】構造化文書管理システムの構成を示した図である。
【図２】構造化文書管理装置のハードウェア構成を示した図である。
【図３】構造化文書の一例を示した図である。
【図４】構造化文書管理装置の機能構成の一例を示した図である。
【図５−１】構造索引部の動作を説明するための図である。
【図５−２】構造索引部の動作を説明するための図である。
【図６】語彙索引部の動作を説明するための図である。
【図７】構造化文書登録処理の手順を示したフローチャートである。
【図８】構造−構造ＩＤデータ更新処理の手順を示したフローチャートである。
【図９】語彙−語彙ＩＤデータ更新処理の手順を示したフローチャートである。
【図１０】他ノード側登録処理の手順を示したフローチャートである。
【図１１】構造化文書検索処理の手順を示したフローチャートである。
【図１２】構造化文書符号化処理の手順を示したフローチャートである。
【図１３】他ノード側構造化文書検索処理の手順を示したフローチャートである。
【図１４】構造化文書復元処理の手順を示したフローチャートである。
【図１５−１】構造化文書変換部の動作を説明するための図である。
【図１５−２】構造化文書変換部の動作を説明するための図である。
【図１５−３】構造化文書変換部の動作を説明するための図である。
【図１６−１】構造索引の一例を示した図である。
【図１６−２】語彙索引の一例を示した図である。
【図１７】構造化文書管理装置の機能構成の一例を示したブロック図である。
【図１８】構造ＩＤ再割当処理の手順を示したフローチャートである。
【図１９】他ノード側構造ＩＤ再割当処理の手順を示したフローチャートである。
【図２０】クライアント装置の機能構成を示したブロック図である。
【符号の説明】
【０１５３】
１０  構造化文書管理システム
１１  構造化文書管理装置
１２  構造化文書管理装置
１３  構造化文書管理装置
１４  構造化文書管理装置
２０  要求受付部
２１  通信処理部
２２  検索プラン生成部
２３  検索プラン処理部
２４  構造化文書変換部
２５  ディクショナリ
２６  構造化文書取得部
２７  格納処理部
２７１  文書解析部
２７２  構造解析部
２７３  語彙解析部
２７４  構造解析部
２７５  語彙解析部
２８  構造索引部
２９  語彙索引部
３０  構造化文書ＤＢ管理部
３１  構造化文書ＤＢ
３２  構造−構造ＩＤ対応データ
３２１  構造索引
３３  語彙−語彙ＩＤ対応データ
３３１  語彙索引
４０  クライアント装置
４１  通信処理部
４２  構造索引部
４３  語彙索引部
４４  構造−構造ＩＤ対応データ
４５  語彙−語彙ＩＤ対応データ
４６  構造化文書復元部
１０１  ＣＰＵ
１０２  操作部
１０３  表示部
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  通信部
１０７  記憶部
１０８  バス
【図１】
2008243077.tif 000003
【図２】
2008243077.tif 000004
【図３】
2008243077.tif 000005
【図４】
2008243077.tif 000006
【図５−１】
2008243077.tif 000007
【図５−２】
2008243077.tif 000008
【図６】
2008243077.tif 000009
【図７】
2008243077.tif 000010
【図８】
2008243077.tif 000011
【図９】
2008243077.tif 000012
【図１０】
2008243077.tif 000013
【図１１】
2008243077.tif 000014
【図１２】
2008243077.tif 000015
【図１３】
2008243077.tif 000016
【図１４】
2008243077.tif 000017
【図１５−１】
2008243077.tif 000018
【図１５−２】
2008243077.tif 000019
【図１５−３】
2008243077.tif 000020
【図１６−１】
2008243077.tif 000021
【図１６−２】
2008243077.tif 000022
【図１７】
2008243077.tif 000023
【図１８】
2008243077.tif 000024
【図１９】
2008243077.tif 000025
【図２０】
2008243077.tif 000026