(57)【要約】【課題】前処理結果の再利用に係る効率を向上し、検索結果を取得するまでの時間を短縮することが可能な構造化文書管理装置、システムを提供する。【解決手段】実行計画に含まれたデータ操作のうち、可変部に関係する記述が含まれないデータ操作を実行することで前処理結果を取得し、この前処理結果を実行計画の対応するデータ操作と対応付け前処理情報として記憶し、新たに導出される実行計画のデータ操作のうち、前記前処理情報の検索操作と一致するものについては、当該データ操作と対応付けて記憶した結果情報を用いて実行計画を実行する。【選択図】        図１
2008225986.tif 000002
【特許請求の範囲】
【請求項１】
複数の構造化文書を記憶する第１記憶手段と、
前記複数の構造化文書から、特定の構造化文書を検索するための検索条件として、当該検索に係る文字列部分が可変値として表された可変部を含む検索条件の入力を受け付ける入力手段と、
前記検索条件を解析し、前記構造化文書の検索に係る複数のデータ操作の手順を指示した実行計画を導出する導出手段と、
前記データ操作の指示内容に、前記可変部に関係する記述が含まれているか否かを判定する判定手段と、
前記判定手段により前記可変部に関係する記述を含まないと判定されたデータ操作を実行し、当該データ操作の実行結果を前記検索の前処理結果として取得する前処理手段と、
前記実行計画に含まれた複数のデータ操作のうち、前記前処理手段により前処理結果が取得されたデータ操作に対し、当該前処理結果を対応付ける追加手段と、
前記前処理結果が対応付けられた実行計画を前処理情報として記憶する第２記憶手段と、
前記入力手段により新たな検索条件が受け付けられる毎に、当該検索条件に応じて前記導出手段により導出される実行計画のうち、前記前処理情報のデータ操作と一致するものについては、当該データ操作に対応付けられた前処理結果を用いて前記実行計画を実行する制御手段と、
を備えたことを特徴とする構造化文書管理装置。
【請求項２】
前記制御手段により前記実行計画の実行結果として得られた構造化文書を、検索結果として提示する第１提示手段を、更に備えたことを特徴とする請求項１に記載の構造化文書管理装置。
【請求項３】
前記第２記憶手段に記憶された前処理情報の一覧を取得する一覧取得手段と、
前記前処理情報の一覧を提示する第２提示手段と、
を更に備えたことを特徴とする請求項１に記載の構造化文書管理装置。
【請求項４】
前記前処理情報の一覧から特定の前処理情報を選択する選択手段と、
前記選択手段により選択された前処理情報を前記第２記憶手段から読み出す読出手段と、
前記読出手段により読み出された前処理情報の実行計画を提示する第３提示手段と、
を更に備えたことを特徴とする請求項３に記載の構造化文書管理装置。
【請求項５】
前記前処理情報の実行計画に含まれたデータ操作の可変部に対し、新たな検索条件を組み込む第１組込手段と、
前記第１組込手段により組み込まれた新たな検索条件に応じて、前記導出手段により導出された新たな実行計画を、前記前処理情報の実行計画に組み込む第２組込手段と、
を備え、
前記制御手段は、前記第２組込手段により新たな実行計画が組み込まれた前記前処理情報の実行計画を、当該前処理情報のデータ操作に対応付けられた実行結果を用いて実行することを特徴とする請求項４に記載の構造化文書管理装置。
【請求項６】
前記前処理情報の一覧から特定の前処理情報を選択する選択手段と、
前記選択手段により選択された前処理情報を削除する削除手段と、
を更に備えたことを特徴とする請求項３に記載の構造化文書管理装置。
【請求項７】
複数の構造化文書を記憶する構造化文書管理装置と、端末装置とを有する構造化文書管理システムであって、
前記端末装置は、
前記複数の構造化文書から、特定の構造化文書を検索するための検索条件として、当該検索に係る文字列部分が可変値として表された可変部を含む検索条件を、前記構造化文書管理装置に送信する送信手段を備え、
前記構造化文書管理装置は、
前記複数の構造化文書を記憶する第１記憶手段と、
前記検索条件を解析し、前記構造化文書の検索に係る複数のデータ操作の手順を指示した実行計画を導出する導出手段と、
前記データ操作の指示内容に、前記可変部に関係する記述が含まれているか否かを判定する判定手段と、
前記判定手段により前記可変部に関係する記述を含まないと判定されたデータ操作を実行し、当該データ操作の実行結果を前記検索の前処理結果として取得する前処理手段と、
前記実行計画に含まれた複数のデータ操作のうち、前記前処理手段により前処理結果が取得されたデータ操作に対し、当該前処理結果を対応付ける追加手段と、
前記前処理結果が対応付けられた実行計画を前処理情報として記憶する第２記憶手段と、
前記入力手段により新たな検索条件が受け付けられる毎に、当該検索条件に応じて前記導出手段により導出される実行計画のうち、前記前処理情報のデータ操作と一致するものについては、当該データ操作に対応付けられた前処理結果を用いて前記実行計画を実行する制御手段と、
前記制御手段により前記実行計画の実行結果として得られた構造化文書を検索結果として、前記端末装置に提供する提供手段と、
を備えたことを特徴とする構造化文書管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書の管理装置及びシステムに関する。
【背景技術】
【０００２】
従来の文書管理方法においては、大量の情報を一括して管理する方法を主としていたため、その情報を活用する上で効率的な問題があった。そこで、特定の個人や部門が保有するノウハウや企業データのうち、企業の経営に重要なものを蓄積し、経営資産として活用しようとする活動、所謂ナレッジマネージメントが提唱されている。近時、このナレッジマネージメントの中核技術として、ＸＭＬ（Extensible  Markup  Language）技術が用いられている。
【０００３】
ナレッジマネージメントには、知識共有のためのナレッジベースとして、上記ＸＭＬ等により記述された構造化文書を記憶・管理するデータベース（以下、ＸＭＬデータベースという）が用いられる。このＸＭＬデータベースは、管理対象となる複数の構造化文書全体を一とみなし、各構造化文書を構成する構成要素を、一つの巨大な構造化文書の文書構造を構成する構成要素として管理するものであり、ＸＭＬに特化したツリー状の階層的なデータ構造を有している。
【０００４】
ＸＭＬデータベースから構造化文書を取り出す際には、ＸＱｕｅｒｙ等に代表される問い合わせ言語を用いてユーザの要求を記述し、その問い合わせ情報をＸＭＬデータベースに送信することで、ユーザの要求に合致する構造化文書を得ることが可能である。しかし、ＸＭＬデータベースに格納される構造化文書が大量になるにつれ、問い合わせ情報の送信からユーザの要求に合致する構造化文書群を得るまでに多くの処理時間を要することになる。
【０００５】
従来、上記した検索に要する処理時間を短縮するための方法として、Ｐｒｅｐａｒｅｄ  Ｓｔａｔｅｍｅｎｔ処理等の前処理技術が知られている。ここで前処理技術とは、ユーザからＸＭＬデータベースに送られた問い合わせ条件を解析することで、データベースからのデータ取得方針を規定した複数の実行処理からなる実行計画を決定し、この実行計画を実行することで得た中間データ等の前処理結果を保持するものである。例えば、特許文献１には、ＸＭＬデータの中から指定された条件に適合する部分を検索し抽出する処理（データ操作）を最適な手順で実行する技術が開示されている。このような前処理を行うことで、同一の実行計画内に同じ実行処理が繰り返し処理するよう規定されている場合には、保持した前処理結果を再利用することで、検索処理の高速化が図られている。
【０００６】
【特許文献１】特開２００１−３４６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術では、同一の実行計画内で繰り返し実行されるデータ操作についてのみ、前処理結果の再利用が可能となっているため、他の実行計画に対しては、実行済みの前処理結果を再利用することはできない。そのため、他の実行計画に、前処理結果の再利用が可能なデータ操作が含まれていたとしても、この前処理結果を再利用することができず、効率的な処理を妨げるという問題がある。例えば、実行計画が類似していた場合、同様のデータ操作が多数あるにもかかわらず、同一の実行計画ではないため、前処理結果を再利用することができず、実行計画毎にデータ操作を実行する必要がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、前処理結果の再利用に係る効率を向上し、検索結果を取得するまでの時間を短縮することが可能な構造化文書管理装置、システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、複数の構造化文書を記憶する第１記憶手段と、前記複数の構造化文書から、特定の構造化文書を検索するための検索条件として、当該検索に係る文字列部分が可変値として表された可変部を含む検索条件の入力を受け付ける入力手段と、前記検索条件を解析し、前記構造化文書の検索に係る複数のデータ操作の手順を指示した実行計画を導出する導出手段と、前記データ操作の指示内容に、前記可変部に関係する記述が含まれているか否かを判定する判定手段と、前記判定手段により前記可変部に関係する記述を含まないと判定されたデータ操作を実行し、当該データ操作の実行結果を前記検索の前処理結果として取得する前処理手段と、前記実行計画に含まれた複数のデータ操作のうち、前記前処理手段により前処理結果が取得されたデータ操作に対し、当該前処理結果を対応付ける追加手段と、前記前処理結果が対応付けられた実行計画を前処理情報として記憶する第２記憶手段と、前記入力手段により新たな検索条件が受け付けられる毎に、当該検索条件に応じて前記導出手段により導出される実行計画のうち、前記前処理情報のデータ操作と一致するものについては、当該データ操作に対応付けられた前処理結果を用いて前記実行計画を実行する制御手段と、を備える。
【００１０】
また、請求項７にかかる発明は、複数の構造化文書を記憶する構造化文書管理装置と、端末装置とを有する構造化文書管理システムであって、前記端末装置は、前記複数の構造化文書から、特定の構造化文書を検索するための検索条件として、当該検索に係る文字列部分が可変値として表された可変部を含む検索条件を、前記構造化文書管理装置に送信する送信手段を備え、前記構造化文書管理装置は、前記複数の構造化文書を記憶する第１記憶手段と、前記検索条件を解析し、前記構造化文書の検索に係る複数のデータ操作の手順を指示した実行計画を導出する導出手段と、前記データ操作の指示内容に、前記可変部に関係する記述が含まれているか否かを判定する判定手段と、前記判定手段により前記可変部に関係する記述を含まないと判定されたデータ操作を実行し、当該データ操作の実行結果を前記検索の前処理結果として取得する前処理手段と、前記実行計画に含まれた複数のデータ操作のうち、前記前処理手段により前処理結果が取得されたデータ操作に対し、当該前処理結果を対応付ける追加手段と、前記前処理結果が対応付けられた実行計画を前処理情報として記憶する第２記憶手段と、前記入力手段により新たな検索条件が受け付けられる毎に、当該検索条件に応じて前記導出手段により導出される実行計画のうち、前記前処理情報のデータ操作と一致するものについては、当該データ操作に対応付けられた前処理結果を用いて前記実行計画を実行する制御手段と、前記制御手段により前記実行計画の実行結果として得られた構造化文書を検索結果として、前記端末装置に提供する提供手段と、を備える。
【発明の効果】
【００１１】
本発明によれば、実行済みのデータ操作と一致するものについては、当該データ操作の前処理結果を他の実行計画に用いることが可能であるため、前処理結果の再利用に係る効率を向上することができ、検索結果を取得するまでの時間を短縮することができる。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、構造化文書管理装置及びシステムの最良な実施形態を詳細に説明する。図１は、構造化文書管理システム１０００の構成を示した概略図である。図１に示すように、構造化文書管理システム１０００は、端末装置１００と構造化文書管理装置２００とを有しており、各機器はインターネット等のネットワークＮを介して相互に通信可能に接続されている。なお、ネットワークＮに接続される端末装置１００の個数は、図示例に限らないものとする。
【００１３】
まず、端末装置１００について説明する。端末装置１００は、ＰＣ（Personal Computer）等の情報通信端末である。本構造化文書管理システム１０００のユーザは、この端末装置１００を介して、ＸＱｕｅｒｙ等の検索条件を記述（入力）することが可能となっている。また、端末装置１００は、記述された検索条件を構造化文書管理装置２００に送信することで、この検索条件に応じた検索結果を構造化文書管理装置２００から取得することが可能となっている。
【００１４】
図２は、端末装置１００のハードウェア構成を示した図である。図２に示すとおり、端末装置１００は、ＣＰＵ（Central  Processing  Unit）１０１、操作部１０２、表示部１０３、ＲＯＭ（Read  Only  Memory）１０４、ＲＡＭ（Random  Access  Memory）１０５、記憶部１０６、通信部１０７等を備える。
【００１５】
ＣＰＵ１０１は、ＲＡＭ１０５の所定領域を作業領域として、ＲＯＭ１０４に予め記憶された各種制御プログラムとの協働により各種処理を実行し、端末装置１００を構成する各部の動作を統括的に制御する。
【００１６】
また、ＣＰＵ１０１は、ＲＯＭ１０４又は記憶部１０６に予め記憶された所定のプログラムとの協働により、後述する問い合わせ記述部１、前処理情報取得部２及び結果表示部３（図５参照）の各機能部を実現させる。なお、各機能部の動作については後述する。
【００１７】
操作部１０２は、各種入力キー等を備え、ユーザから操作入力された情報を入力信号として受け付け、その入力信号をＣＰＵ１０１に出力する。
【００１８】
表示部１０３は、ＬＣＤ（Liquid  Crystal  Display）等により構成され、ＣＰＵ１０１からの表示信号に基づいて、各種情報を表示する。なお、表示部１０３は、操作部１０２と一体的にタッチパネルを構成する態様としてもよい。
【００１９】
ＲＯＭ１０４は、端末装置１００の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
【００２０】
ＲＡＭ１０５は、ＳＤＲＡＭ（Synchronous  DRAM）等の記憶手段であって、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ１０１の作業エリアとして機能し、バッファ等の役割を果たす。
【００２１】
記憶部１０６は、磁気的又は光学的に記録可能な記憶媒体を有し、端末装置１００の動作に必要なプログラム及び当該プログラムの実行に係るデータを記憶する。
【００２２】
通信部１０７は、ネットワークを通じ外部の機器（構造化文書管理装置２００等）との間で通信を行うインターフェースであって、外部機器から送信された各種情報をＣＰＵ１０１に出力し、また、ＣＰＵ１０１から出力される各種情報を外部機器へと送信する。
【００２３】
次に、構造化文書管理装置２００について説明する。構造化文書管理装置２００は、後述する構造化文書の記憶・管理を行うデータベース機能を有したサーバ装置である。構造化文書管理装置２００は、端末装置１００から検索条件を受け付けることで、当該検索条件に合致する構造化文書を検索し、この構造化文書に関する情報を端末装置１００に提供する。
【００２４】
図３は、構造化文書管理装置２００のハードウェア構成を示した図である。図３に示すとおり、構造化文書管理装置２００は、ＣＰＵ２０１、操作部２０２、表示部２０３、ＲＯＭ２０４、ＲＡＭ２０５、文書記憶部２０６、通信部２０７等を備える。
【００２５】
ＣＰＵ２０１は、ＲＡＭ２０５の所定領域を作業領域として、ＲＯＭ２０４に予め記憶された各種制御プログラムとの協働により各種処理を実行し、構造化文書管理装置２００を構成する各部の動作を統括的に制御する。
【００２６】
また、ＣＰＵ２０１は、ＲＯＭ２０４に予め記憶された所定のプログラムとの協働により、後述する要求処理部４、検索処理部５、前処理情報管理部６、検索処理実行部７及びデータアクセス部８（図５参照）の各機能部を実現させる。なお、各機能部の動作については後述する。
【００２７】
操作部２０２は、各種入力キー等を備え、ユーザから操作入力された情報を入力信号として受け付け、その入力信号をＣＰＵ２０１に出力する。
【００２８】
表示部２０３は、ＬＣＤ等により構成され、ＣＰＵ２０１からの表示信号に基づいて、各種情報を表示する。なお、表示部２０３は、操作部２０２と一体的にタッチパネルを構成する態様としてもよい。
【００２９】
ＲＯＭ２０４は、構造化文書管理装置２００の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
【００３０】
ＲＡＭ２０５は、ＳＤＲＡＭ等の記憶手段であって、各種データを書換え可能に記憶する性質を有していることから、ＣＰＵ２０１の作業エリアとして機能し、バッファ等の役割を果たす。
【００３１】
文書記憶部２０６は、磁気的又は光学的に記録可能な記憶媒体を有し、当該記録媒体に後述する構造化文書の記憶・管理を行うＸＭＬデータベース等の管理領域が構築されている。
【００３２】
ここで、本実施形態で言及する構造化文書としては、ＸＭＬやＳＧＭＬ等で記述した文書が挙げられる。ＳＧＭＬ（Standard  Generalized  Markup  Language）とは、ＩＳＯ（国際標準化機構）で定められた規格であり、マークアップ言語の一つである。また、ＸＭＬ（eXtensible  Markup  Language）とは、Ｗ３Ｃ（World  Wide  Web  Consortium）にて定められた規格であって、マークアップ言語の一つである。以下、構造化文書としてＸＭＬにて記述された文書を例に説明をするが、この態様に限らないものとする。
【００３３】
図４は、ＸＭＬで記述された構造化文書の一例として、「特許」情報の例を示したものである。ＸＭＬやＳＧＭＬでは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがあり、文書構造情報の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列（テキスト）区切りと、そのテキストが構造上どの構成要素に属するのかを明示的に記述することができる。
【００３４】
ここで、開始タグとは、要素名称を記号「＜」、「＞」で囲んだものであり、終了タグとは開始タグの要素名称と同一の要素名称を記号「＜／」、「＞」で囲んだものである。これら開始タグと終了タグとの組により挟まれた構成要素の内容が、テキスト（文字列）の場合には、このテキストの内容が、当該開始タグの要素名称に属していることを意味する。また、開始タグと終了タグとの組に挟まれた構成要素に、他の開始タグと終了タグとの組がさらに存在するような場合には、この他の開始タグの要素名称が、当該他の開始タグを挟む開始タグの要素名称に属していることを意味する。また、開始タグには「＜要素名称  属性＝“属性値”＞」等のように属性情報を設定することが可能となっている。さらに、「＜特許ＤＢ＞＜／特許ＤＢ＞」等のように、テキストを含まない構成要素については、簡易記法として「＜特許ＤＢ／＞」のように表すことが可能となっている。
【００３５】
上記した構造化文書の文書構造を定義したデータをスキーマと呼び、ＸＭＬではスキーマを定義するためにＸＭＬ−Ｓｃｈｅｍａや、ＸＤＲ（ＸＭＬ  Ｄａｔａ  Ｒｅｄｕｃｅｓ）等のスキーマ言語が提案されている。このスキーマも、構造化文書管理装置２００の管理対象の構造化文書であり、以下、スキーマ文書と呼ぶ。また、スキーマ文書と区別するために、特許明細書やメール、週報、広告等の種々の文書をコンテンツ文書と呼ぶ。
【００３６】
本実施形態の構造化文書管理装置２００では、上記したスキーマ文書、コンテンツ文書、さらに後述するユーザからの検索要求内容を記述したクエリ、即ちクエリ文書をも管理対象とする。以下、これらの文書を総称して単に「文書」と呼ぶ。
【００３７】
図３に戻り、通信部２０７は、ネットワークを通じ外部の機器（端末装置１００等）との間で通信を行うインターフェースであって、外部機器から送信された各種情報をＣＰＵ２０１に出力し、また、ＣＰＵ２０１から出力される各種情報を外部機器へと送信する。
【００３８】
図５は、上記した端末装置１００及び構造化文書管理装置２００の機能的構成を示したブロック図である。
【００３９】
まず、端末装置１００の機能部について説明する。図４に示すように、端末装置１００は、問い合わせ記述部１、前処理情報取得部２、結果表示部３を備えている。
【００４０】
問い合わせ記述部１は、実行処理記述部１１、追加検索組み込み部１２、実数組み込み部１３を有している。問い合わせ記述部１は、表示部１０３上に所定のＧＵＩ（Graphical  User  Interface）又はＣＵＩ（Character-based  User  Interface）を表示することで、操作部１０２を介して入力される検索条件の記述（入力）を支援する。
【００４１】
実行処理記述部１１は、検索条件の記述に係る支援を行う。ここで、実行処理記述部１１は、検索条件の記述に際し、所定の検索言語の文法に沿って記述が行われたかを検査し、文法に沿った記述がされたと判定した場合にのみ、検索条件が記述されたものと判断する。検索言語としては、文書記憶部２０６に構築されたデータベースの特性に応じたものが用いられるのが好ましく、例えば、ＸＭＬデータベースに対しては、ＸＱｕｅｒｙ等を用いることが好ましい。
【００４２】
また、本実施形態の検索条件記述においては、可変部を含んだ検索条件を記述することが可能となっている。ここで、可変部とは、検索に係る固定の文字列部分が、変数等の未確定の可変値として表された部位を意味し、この可変部に対し、検索に係る任意の文字列や、他の検索条件の結果等の引数を追記することが可能となっている。なお、可変部を含む検索条件は、宣言文等により可変部であることを明示して記述されるようになっている。
【００４３】
可変部を含む検索条件の記述は、比較値等の定数値が設定される変数部分を可変部として扱う記述方法と、後から追加の検索条件を組み込むことを前提として、その組み込み部分の構造を可変部とする記述方法（追加検索）と、の二つの方法が挙げられる。なお、可変部の記述方法に関しては、検索言語の文法に依存するため、様々な記述方法が存在する。本実施形態では、ＸＱｕｅｒｙを例として、可変部の記述方法について説明する。
【００４４】
通常のＸＱｕｅｒｙを用いて記述された検索条件文字列は、後述する文法解析部５１にて解析され、夫々が独立した単純なデータ操作の組み合わせに分解される。以下、この単純なデータ操作をオペレータと呼称する。構造化文書管理装置２００では、このオペレータの組み合わせに従い、データの取り出しや絞り込みを行うことで、検索条件で指示された結果を得ることができるようになっている。
【００４５】
ここで、単純なルールによる文法解析を行っただけでは、検索手順や検索速度に問題のある場合が多く、検索に係る処理が非効率的となる可能性がある。そのため、本実施形態の構造化文書管理装置２００では、検索の前処理として、後述する検索方法導出部５２により、検索効率のよいオペレータの実行手順を指示した実行計画を導出し、この実行計画に基づいて文書記憶部２０６から文書の絞り込み（検索）を行うものとする。
【００４６】
図６は、定数値部分を可変とする記述方法を示したものであり、「？」にて記述された箇所が可変部として扱われる。図６左図の検索文字列（検索条件）が、後述する文法解析部５１と検索方法導出部５２との協働によりオペレータ化され、その組み合わされた結果（実行計画）を図６右図に示している。図６右図において、Ａ、Ｂ、Ｃ、Ｄ’、Ｅの夫々はオペレータであり、これらオペレータＡ、Ｂ、Ｃ、Ｄ’、Ｅを順次実行することで、検索条件に応じた検索結果を効率的に得ることが可能である。
【００４７】
なお、実際の処理においては、検索文字列の解析から導出されるオペレータ量は非常に大量となるが、本実施形態では、説明の容易化のため、図６に示したように、検索文字列の一行目を処理するためのオペレータをＡ、Ｂ、Ｃ、検索文字列の二行目を処理するためのオペレータをＤ’、三行目を処理するためのオペレータをＥとしている。
【００４８】
図６では、検索文字列二行目に可変部に関係する記述が含まれているため、この検索文字列二行目に対応するオペレータＤ’は、このままでは実行することができない。一方、オペレータＤ’以外のオペレータＡ、Ｂ、Ｃ、Ｅについては、可変部を含まないため実行することが可能である。そのため、本実施形態の構造化文書管理装置２００では、後述する前処理情報管理部６にて、実行可能なオペレータの夫々について前処理を行い、中間データ等の前処理結果を取得する。また、実行計画に含まれるオペレータのうち、前処理結果が取得されたオペレータについては、当該前処理結果を対応付け、前処理情報としてＲＡＭ１０５に保持する。これら保持された前処理情報に対しては、その後、オペレータＤ’の可変部に具体的な値を与えることによって、当該オペレータＤ’の処理結果を得ることができ、これに、他のオペレータＡ、Ｂ、Ｃ、Ｅの前処理結果を用いることで、最終的な検索結果を得ることができる。
【００４９】
また、オペレータＤ’は、その可変部に様々な値を与えることで、その都度変化するが、オペレータＡ、Ｂ、Ｃ、Ｅの処理内容については、可変部が存在しないため、実行計画に依らず不変である。そのため、本実施形態の構造化文書管理装置２００では、後述するように、新たな実行計画に、オペレータＡ、Ｂ、Ｃ、Ｅの何れかと同様のオペレータが含まれた場合、ＲＡＭ１０５に保持したオペレータＡ、Ｂ、Ｃ、Ｅの処理結果を再利用することで、新たな実行計画を実行する。これにより、図６左図で示した検索文字列と同様の処理ばかりでなく、オペレータＡ、Ｂ、Ｃ、Ｅの一部又は全てを実行する他の検索文字列（検索条件）を処理する場合においても、高速に処理することが可能となる。
【００５０】
図７は、追加検索を組み込むことが可能な可変部の記述方法を示したものである。ここで、「（＃ｖａｒｉａｂｌｅ＃）｛＄ｙ｝」で示された箇所が可変部として扱われる。この可変部の記述は、ＸＱｕｅｒｙの文法に沿ったものであって、「（＃ｖａｒｉａｂｌｅ＃）」はコメントとして扱われる。本実施形態では、このコメント「（＃ｖａｒｉａｂｌｅ＃）」の後に、「｛＄ｙ｝」のように記述された場合は、“＄ｙ”を入力とした追加検索を後ほど組み込むことが可能であることを示している。なお、“＄ｙ”に代入される文字列は、可変部以外の箇所において、ＸＱｕｅｒｙの文法に従って定義されているものとする。
【００５１】
図７左図に示した検索文字列（検索条件）は、図６と同様、後述する文法解析部５１と検索方法導出部５２との協働により、オペレータ化される。図７右図では、検索文字列一行目を処理するためのオペレータをＡ、Ｂ、Ｃ、二行目を処理するためのオペレータをＤ、三行目を処理するためのオペレータをＥ’としている。
【００５２】
この図７では、検索文字列三行目に対応するオペレータＥ’に、可変部が含まれているため、この可変部に値が設定されるまでは、オペレータＥ’の処理を完了させることができない。即ち、このオペレータＥ’は、上述した“＄ｙ”に追加検索条件が組み込まれることで、はじめて処理することが可能となる。
【００５３】
なお、“＄ｙ”に組み込まれる追加分の検索条件によっては、新たなオペレータが生成される場合もあるが、可変部の存在しないオペレータＡ、Ｂ、Ｃ、Ｄの処理内容については、そのオペレータ自体に何ら変化は生じない。そのため、本実施形態の構造化文書管理装置２００では、後述するように、実行可能なオペレータの夫々について前処理を行い、中間データ等の前処理結果を取得する。また、実行計画に含まれるオペレータのうち、前処理結果が取得されたオペレータについては、当該前処理結果を対応付け、前処理情報としてＲＡＭ１０５に保持する。これら保持された前処理情報に対しては、その後、オペレータＥ’の可変部に追加の検索条件等を与えることによって、当該オペレータＥ’の処理結果を得ることができ、これに、他のオペレータＡ、Ｂ、Ｃ、Ｄの前処理結果を用いることで、最終的な検索結果を得ることができる。
【００５４】
また、本実施形態の構造化文書管理装置２００では、後述するように、新たな実行計画に、オペレータＡ、Ｂ、Ｃ、Ｄの何れかと同様のオペレータが含まれた場合、ＲＡＭ１０５に保持したオペレータＡ、Ｂ、Ｃ、Ｄの処理結果を再利用することで、新たな実行計画を実行する。これにより、図６左図で示した検索文字列と同様の処理ばかりでなく、オペレータＡ、Ｂ、Ｃ、Ｅの一部又は全てを実行する他の検索文字列（検索条件）を処理する場合においても、高速に処理することが可能となる。これにより、図７左図で示した検索文字列と同様の処理ばかりでなく、オペレータＡ、Ｂ、Ｃ、Ｄの一部又は全てを実行する他の検索文字列（検索条件）を処理する場合においても、高速に処理することが可能となる。
【００５５】
図５に戻り、追加検索組み込み部１２は、実行処理記述部１１において追加の検索条件を組み込むことが可能なオペレータの可変部に対して、操作部１０２を介して指示された検索条件の組み込みを行う。具体的には、後述する前処理選択部２１から提供される前処理情報の一覧から、前処理情報取得部２を介して特定の前処理情報が選択された場合、この前処理情報の実行計画に付随して利用可能なオペレータの可変部に対して、操作部１０２を介してユーザから入力された検索条件の組み込みを行う。なお、検索条件を組み込む際に、実行処理記述部１１にて可変部に対する入力として定義された変数が存在した場合、その変数を引数として新たな検索条件を記述することが可能である。
【００５６】
実数組み込み部１３は、実行処理記述部１１において定数値部分の設定が可能なオペレータの可変部に対して、実数値の組み込みを行う。具体的には、後述する前処理選択部２１から提供される前処理情報の一覧から、前処理情報取得部２を介して特定の前処理情報を選択された場合、この前処理情報の実行計画に付随して利用可能なオペレータの可変部に対して、操作部１０２を介してユーザから指示された実数値の組み込みを行う。
【００５７】
また、ユーザは問い合わせ記述部１を介して、後述する前処理を要求する情報（前処理要求）を、構造化文書管理装置２００に送信することが可能となっている。なお、前処理要求が送信されない通常の検索（問い合わせ要求）時には、後述する前処理は行わず、検索条件から導出される実行計画に基づいて、構造化文書の検索が行われるものとする。
【００５８】
上記したように、表示部１０３に表示された前処理情報に基づいて、追加検索組み込み部１２又は実数組み込み部１３を介し、オペレータの可変部可変部に対して、追加する検索条件や実数値等（以下、単に検索条件という）を記述することが可能であるため、検索処理に係るユーザの利便性を向上させることができる。
【００５９】
前処理情報取得部２は、前処理選択部２１を有しており、構造化文書管理装置２００から送信される前処理情報等を、ＧＵＩ又はＣＵＩにより表示部１０３に表示させる機能部である。
【００６０】
前処理選択部２１は、操作部１０２を介して、前処理情報の一覧の取得が指示された場合に、前処理情報の一覧を要求する要求情報（一覧要求）を、問い合わせ記述部１を通じて構造化文書管理装置２００に出力し、当該取得要求に応じて取得される前処理情報の一覧を表示部１０３に表示させる。
【００６１】
また、前処理選択部２１は、操作部１０２を介して、表示部１０３に表示された前処理情報の一覧から、特定の前処理情報が選択された場合に、当該前処理情報の取得を要求する要求情報（取得要求）を、問い合わせ記述部１を通じて構造化文書管理装置２００に出力し、当該取得要求に応じて取得される前処理情報及び関連情報を表示部１０３に表示させる。
【００６２】
また、前処理選択部２１は、操作部１０２を介して、表示部１０３に表示された前処理情報の一覧から、特定の前処理情報の削除が指示された場合に、当該前処理情報の削除を要求する要求情報（削除要求）を、問い合わせ記述部１を通して構造化文書管理装置２００に出力する。
【００６３】
上記したように、前処理選択部２１を介して構造化文書記憶装置２０に記憶された前処理情報をユーザに提示することができるため、ユーザは提示された前処理情報の一覧や、前処理情報等に基づいて、前処理情報単位で削除等を指示することが可能であるため、前処理情報の管理に係る利便性を向上させることができる。
【００６４】
結果表示部３は、検索結果表示部３１を有しており、問い合わせ情報に対する検索結果等を、ＧＵＩ又はＣＵＩ等の表示形式で表示部１０３に表示させる機能部である。
【００６５】
検索結果表示部３１は、問い合わせ記述部１を介して構造化文書管理装置２００に送信された検索条件等に対する、構造化文書管理装置２００からの処理結果（例えば、検索された構造化文書の一覧、詳細等）を、問い合わせ記述部１及び前処理情報取得部２を通して受け取り、表示部１０３に表示させる。
【００６６】
次に、構造化文書管理装置２００の各機能部について説明する。図５に示すように、構造化文書管理装置２００は、要求処理部４、検索処理部５、前処理情報管理部６、検索処理実行部７、データアクセス部８を備えている。
【００６７】
要求処理部４は、要求受付部４１、結果処理部４２を有しており、ユーザが操作する端末装置１００から送信される検索要求等を受け付け、その処理結果を端末装置１００に提供（送信）する機能部である。
【００６８】
要求受付部４１は、端末装置１００から各種要求を受け付け、その要求内容に応じて当該要求にかかるデータを後段の機能部へと出力する。具体的には、問い合わせ処理や前処理を指示する要求情報（問い合わせ要求、前処理要求）を受け付けた場合には、この要求情報を検索処理部５に出力することで検索処理を実行させる。また、既に処理された前処理情報の一覧を要求する一覧要求や、特定の前処理情報の取得を要求する取得要求を受け付けた場合には、この要求情報を前処理情報管理部６（前処理情報出力部６３）に出力することで、処理済みの前処理情報の一覧や、指定された前処理情報を端末装置１００に送信させる。また、特定の前処理情報の削除を要求する削除要求を受け付けた場合には、この要求情報を前処理情報管理部６（前処理情報削除部６２）に出力することで、指定された前処理情報を、ＲＡＭ１０５から削除させる。
【００６９】
結果処理部４２は、要求受付部４１を介して、検索処理部５又は前処理情報管理部６に出力された要求情報の処理結果を取得し、この処理結果を前処理情報取得部２又は結果表示部３に出力する。具体的には、前処理情報出力部６３の制御の下、ＲＡＭ１０５に記憶された前処理情報や当該前処理情報の一覧を、端末装置１００に送信する。また、検索処理実行部７で取得された検索結果を、端末装置１００に送信する。
【００７０】
検索処理部５は、文法解析部５１、検索方法導出部５２を有し、要求処理部４から入力された検索条件の解析、及び当該検索条件から実際の検索操作を指示した実行計画を導出する機能部である。
【００７１】
文法解析部５１は、問い合わせ記述部１にて記述された検索条件（文字列）の文法を解析することで、文法的に不備がないか等を検証し、オペレータに変更するための前処理を行う。この前処理が行われた時点ではまだ文書記憶部２０６への具体的な検索操作の手順は示されておらず、文法解析部５１は、単語レベルでのパージング処理のみ実行する。
【００７２】
検索方法導出部５２は、文法解析部５１にて解析された解析結果を基に、文書記憶部２０６から、検索条件で要求された構造化文書を検索（取得）する最も効率の良い方法を選定し、そのデータ操作の手順を指示した実行計画を導出する。実行計画は、種々の処理を指示するオペレータの集合から構成されており、各オペレータを実行することで得られる中間データを、次段のオペレータでの入力データとし、手順に沿ったオペレータ間で授受することで、構造化文書の絞り込みを行うものである。なお、検索方法導出部５２は、導出した実行計画を前処理情報管理部６に出力するが、本実施形態の構造化文書管理装置２００では、実行計画の導出元となった検索条件も併せて出力するものとする。
【００７３】
なお、端末装置１００から前処理要求が指示されず、通常の検索（問い合わせ要求）が指示された場合には、導出した実行計画に基づいて、検索処理実行部７が文書記憶部２０６へのアクセスを行い、求める構造化文書を取得するための絞り込みを行う。この際、導出された実行計画に含まれるオペレータのうち、ＲＡＭ１０５に記憶された前処理情報のオペレータと一致するものについては、後述する前処理解析部６５の制御により、当該オペレータと対応付けて記憶された前処理結果を用いて、実行計画が実行されるものとする。
【００７４】
また、端末装置１００から前処理要求が指示され、且つ、端末装置１００から可変部に検索条件等が新たに組み込まれたオペレータが入力された場合には、このオペレータについて、前処理として保持可能な箇所を解析する必要があるため更に解析を行い、この解析結果を前処理情報管理部６に出力する。
【００７５】
前処理情報管理部６は、前処理情報追加部６１、前処理情報削除部６２、前処理情報出力部６３、実体組み込み部６４、前処理解析部６５を有している。前処理情報追加部６１、前処理情報削除部６２及び前処理情報出力部６３は、主に前処理情報に関する管理を行い、前処理情報の追加や削除等を行う。実体組み込み部６４及び前処理解析部６５は、検索処理部５から入力される実行計画に基づいて、オペレータを実行し、中間データ等の前処理結果の取得を行う。
【００７６】
前処理情報追加部６１は、検索方法導出部５２から入力された実行計画に基づき、当該実行計画に含まれたオペレータのうち、前処理解析部６５で解析された可変部分と関係性の無いオペレータを前処理情報として、ＲＡＭ１０５に記憶させる。ここで、前処理情報追加部６１は、前処理情報を記憶させる際に、各前処理情報を識別するための管理ＩＤを付与し、当該管理ＩＤに基づいて一意的な管理を行う。
【００７７】
また、前処理情報追加部６１は、前処理情報として記憶した実行計画の元となる検索条件を検索方法導出部５２から受け取ると、この検索条件を前処理情報の関連情報として、当該前処理情報と対応付けＲＡＭ１０５に記憶させる。なお、本実施形態では、関連情報として、検索条件のみを含めることとしたが、これに限らず、前処理情報（実行計画）に係る他の情報を含めることとしてもよい。
【００７８】
前処理情報削除部６２は、端末装置１００から入力される前処理情報の削除要求に応じ、ＲＡＭ１０５から、削除対象となった前処理情報及び当該前処理情報の関連情報を削除する。
【００７９】
前処理情報出力部６３は、端末装置１００から入力される前処理情報の一覧要求に応じ、ＲＡＭ１０５に記憶された既存の前処理情報の一覧を、結果処理部４２を通じて端末装置１００に出力する。なお、一覧情報の出力はユーザによって意図的に要求された場合のみでなく、ＲＡＭ１０５に記憶された前処理情報の状態に変更があった場合においても、前処理情報取得部２の情報を更新するため最新の前処理情報の一覧を端末装置１００に出力するものとする。
【００８０】
また、前処理情報出力部６３は、端末装置１００から入力される前処理情報の取得要求に応じて、指示された前処理情報及び当該前処理情報の関連情報をＲＡＭ１０５から読み出し、結果処理部４２を通じて端末装置１００に出力する。
【００８１】
実体組み込み部６４は、端末装置１００の追加検索組み込み部１２又は実数組み込み部１３から入力される情報を、実行計画自体に組み込むことで、不確定変部のあった実行計画全体を実行可能なものとする。また、実体組み込み部６４は、実行可能とした実行計画を検索処理実行部７に渡すことで検索処理を実行させる。
【００８２】
前処理解析部６５は、端末装置１００から前処理要求が指示された場合、検索処理部５から入力される実行計画を解析し、この実行計画に含まれた各オペレータに可変部に関係する記載が含まれているか否かを判定する。また、前処理解析部６５は、可変部に関係する記載が含まれないと判定したオペレータに対し、当該オペレータを検索処理実行部７に実行させること、即ち前処理を行うことで、当該オペレータに対応する中間データ等を前処理結果として文書記憶部２０６から取得する。
【００８３】
なお、可変部に関係する記載を含むオペレータについては、当該可変部に対して実数等の固定値又は追加検索の条件式を設定することが可能となっているため、設定される文字列に応じて処理結果が動的に変化する。そのため、前処理解析部６５は、実行計画の解析時において、可変部に関係する記載を含むと判定したオペレータに関しては、前処理を行わないものとする。
【００８４】
また、前処理解析部６５は、端末装置１００から問い合わせ要求が指示された場合、検索処理部５から入力される実行計画を解析し、当該実行計画に含まれる各オペレータと、ＲＡＭ１０５に前処理情報として記憶された各オペレータとを比較し、一致したものについては、当該オペレータに対応する前処理情報をＲＡＭ１０５から取得する。そして、前処理解析部６５は、取得した前処理情報を、検索処理部５から入力された実行計画とともに、検索処理実行部７へと出力する。
【００８５】
検索処理実行部７は、検索実行部７１、結果取得部７２を有し、検索処理部５又は前処理情報管理部６にて生成された実行計画に基づいて、文書記憶部２０６から文書を取得する。
【００８６】
検索実行部７１は、前処理情報管理部６を通じて入力される実行計画に基づき、当該実行計画に含まれるオペレータを実行することで、文書記憶部２０６から文書の絞り込みを行う。なお、実行計画とともに、前処理情報管理部６（前処理解析部６５）から前処理情報が入力された場合には、実行計画に含まれるオペレータのうち、前処理情報に含まれるオペレータと一致するものについては、当該前処理情報に含まれた結果情報を用いて、実行計画を実行する。
【００８７】
このように、既に実行したオペレータと一致するものについては、このオペレータの前処理結果を他の実行計画に用いることが可能であるため、前処理結果の再利用に係る効率を向上することができ、検索結果を取得するまでの時間を短縮することができる。
【００８８】
結果取得部７２は、検索実行部７１にて最終的に絞り込まれた文書を文書記憶部２０６から取得し、要求処理部４を通じて端末装置１００に出力することで、検索結果をユーザに提供する。
【００８９】
データアクセス部８は、検索実行部７１から入力される指示情報に応じて、文書記憶部２０６のＸＭＬデータベースから文書の読み出し等を行う機能部である。
【００９０】
以下、構造化文書管理システム１０００の動作を説明する。図８は、端末装置１００と構造化文書管理装置２００との間で行われる処理の動作を示したラダーチャートである。なお、端末装置１００からは、前処理要求の指示が構造化文書管理装置２００に送信されているものとする。
【００９１】
まず、操作部１０２を介して、ユーザから可変部を含む問い合わせ条件の記述が行われると、実行処理記述部１１は、記述された検索条件（検索文字列）を構造化文書管理装置２００に出力する（ステップＳ１１）。ここで、検索条件の記述方法は、図６又は７に示したように、可変部を明示した記述方式で行われるものとする。
【００９２】
要求受付部４１は、実行処理記述部１１から出力された検索文字列を受信すると、文法解析部５１は、検索文字列の文法を解析し（ステップＳ２１）、検索方法導出部５２に出力する。次いで、検索方法導出部５２は、文法解析部５１による検索条件の文法解析の結果に基づき、検索条件に応じた実行計画を導出する（ステップＳ２２）。
【００９３】
続いて、前処理解析部６５は、検索方法導出部５２により導出された実行計画に含まれた各オペレータを解析し、可変部に関係する記述を含まないオペレータについて前処理を行うことで前処理結果を取得する（ステップＳ２３）。そして、前処理解析部６５は、オペレータとその前処理結果とを組として、前処理情報追加部６１に渡すことで、前処理情報としてＲＡＭ１０５に記憶させる（ステップＳ２４）。この際、前処理情報追加部６１は、処理過程に問題がなければ「Ｓｕｃｃｅｓｓ」を、問題があれば「Ｅｒｒｏｒ」を結果ステータスとして、結果処理部４２を通じて端末装置１００に出力する（ステップＳ２５）。
【００９４】
検索結果表示部３１は、問い合わせ記述部１を通じて結果ステータスを受け取ると、この結果ステータスを表示部１０３に表示させる（ステップＳ１２）。端末装置１００のユーザは表示部１０３に表示された結果ステータスに基づいて、処理結果を判断し、問題があれば問い合わせ記述の修正などの対応を行い、ステップＳ１１の処理を再度実行する。
【００９５】
また、前処理情報追加部６１では、前処理情報の記憶が正常に行われた場合（Ｓｕｃｃｅｓｓ）、新たな前処理情報の記憶により、ＲＡＭ１０５に記憶した前処理情報の状態（情報量）に変更が発生するため、最新の前処理情報の一覧を取得し、前処理一覧として結果処理部４２を通じ、端末装置１００に出力する（ステップＳ２６）。
【００９６】
一方、前処理選択部２１は、問い合わせ記述部１を通じて前処理一覧を受け取ると、この前処理一覧を表示部１０３に表示させる（ステップＳ１３）。次いで、前処理選択部２１は、操作部１０２を介して前処理情報の一覧から、特定の前処理情報が選択されたと判断すると、この選択された前処理情報の管理ＩＤを取得要求として、問い合わせ記述部１を通じて構造化文書管理装置２００に出力する（ステップＳ１４）。
【００９７】
前処理情報出力部６３は、要求処理部４を通じて管理ＩＤを受け取ると、当該管理ＩＤに対応する前処理情報及び当該前処理情報の関連情報をＲＡＭ１０５から読み出し（ステップＳ２７）、前処理詳細情報として結果処理部４２を通じ端末装置１００に出力する（ステップＳ２８）。
【００９８】
一方、前処理選択部２１は、問い合わせ記述部１を通じて前処理詳細情報を受け取ると、この前処理詳細情報に含まれた各種情報を表示部１０３に表示させる（ステップＳ１５）。ここで、端末装置１００のユーザは、表示部１０３に表示された実行計画や前処理結果、当該実行計画の元となった検索条件等に基づき、検索条件の可変部又は当該検索条件に対応するオペレータの可変部に対し、追加の検索条件を記述することが可能である。
【００９９】
追加検索組み込み部１２は、検索条件の可変部又はオペレータの可変部に、追加分の検索条件（追加検索文字列）が記述されたと判断すると（ステップＳ１６）、この追加検索文字列とともに、前処理情報の管理ＩＤを、問い合わせ記述部１を通じて構造化文書管理装置２００に出力する（ステップＳ１７）。
【０１００】
実体組み込み部６４は、要求処理部４（検索処理部５）を通じて追加検索情報及び管理ＩＤを受け取ると、当該管理ＩＤで指定された前処理情報の実行計画に、追加検索情報を組み合わせ、実行計画を実行可能なものとする（ステップＳ２９）。そして、前処理解析部６５は、実体組み込み部６４で取得された実行計画を検索実行部７１に出力することで、当該実行計画に基づいた検索処理を実行させる（ステップＳ３０）。結果取得部７２は、検索実行部７１による検索結果として検索された文書を、検索結果として結果処理部４２通じて、端末装置１００に出力する（ステップＳ３１）。
【０１０１】
検索結果表示部３１は、問い合わせ記述部１及び前処理情報取得部２を通じて検索結果を受け取ると、この検索結果を表示部１０３に表示することでユーザに提示し（ステップＳ１８）、本処理を終了する。
【０１０２】
以下、図９を参照して、上記した図８の動作のうち、前処理情報を生成に係る動作について詳細に説明する。図９は、前処理情報の生成に係る処理（前処理情報生成処理）の手順を示したフローチャートである。
【０１０３】
まず、実行処理記述部１１を介し、ユーザから可変部を含む検索条件の記述が入力されると、この検索文字列は構造化文書管理装置２００の文法解析部５１へと出力される（ステップＳ４１）。
【０１０４】
次いで、文法解析部５１では、問い合わせ文字列の文法を解析し（ステップＳ４２）、文字解析結果を検索方法導出部５２に渡す。続いて、検索方法導出部５２は、文法解析部５１での文字検索結果に基づいて、オペレータの集合である実行計画を導出する（ステップＳ４３）。
【０１０５】
続いて、前処理解析部６５は、実行計画に含まれた各オペレータに対し、前処理を行うためのループ処理（ステップＳ４４〜ステップＳ５２）を実行する。このループ処理のうち、ステップＳ４４では、実行計画に含まれたオペレータのうち、一のオペレータを実行対象とし、当該オペレータの記述内容を解析する（ステップＳ４４）。なお、実行計画で規定された順序に応じて、実行対象となるオペレータを決定することが好ましい。
【０１０６】
次に、前処理解析部６５は、実行対象のオペレータに可変部に関係する記述が含まれているか否かを判定する（ステップＳ４５）。ここで、オペレータに可変部に関係する記述が含まれていると判定した場合には（ステップＳ４５；Ｙｅｓ）、ステップＳ４８へと直ちに移行する。また、ステップＳ４５において、実行対象のオペレータに可変部に関係する記述が含まれていないと判定した場合には（ステップＳ４５；Ｎｏ）、前処理解析部６５はオペレータのｆｉｘフラグを有効とする（ステップＳ４６）。
【０１０７】
ここで、ｆｉｘフラグとは、各オペレータの可変部に関係する記載が含まれているか否かを識別するための情報であって、各オペレータに予め付帯されているものとする。なお、可変部に関係する記載が含まれないオペレータについては、ｆｉｘフラグは有効、可変部に関係する記載が含まれたオペレータについては、ｆｉｘフラグは無効（デフォルト状態）、と設定されるものとする。
【０１０８】
続いて、前処理解析部６５は、ＲＡＭ１０５の前処理情報に含まれた各オペレータを参照し、実行対象のオペレータと同様のオペレータが保持されているか否かを判定する（ステップ４７）。ここで、同様のオペレータが保持されていると判定した場合には（ステップＳ４７；Ｙｅｓ）、前処理解析部６５は、この保持されたオペレータのｆｉｘフラグの状態が有効か否かを判定する（ステップＳ４８）。
【０１０９】
ステップＳ４８において、ｆｉｘフラグが有効と判定した場合には（ステップＳ４８；Ｙｅｓ）、前処理解析部６５は、このオペレータに対応付けて記憶された前処理結果をＲＡＭ１０５から読み出す（ステップＳ４９）。そして、前処理解析部６５は、読み出した前処理結果と、実行対象となったオペレータとを関連づけて保持し（ステップＳ５１）、ステップＳ５２の処理へと移行する。
【０１１０】
一方、ステップＳ４７において、同様のオペレータが保持されていると判定した場合（ステップＳ４７；Ｎｏ）、又は、ステップＳ４８において保持されたオペレータのｆｉｘフラグの状態が無効であると判定した場合（ステップＳ４８；Ｎｏ）には、前処理解析部６５は、実行対象のオペレータの前処理を行うことで、検索処理実行部７及びデータアクセス部８を介して文書記憶部２０６から、中間データ等の前処理結果を取得する（ステップＳ５０）。次に、前処理解析部６５は、取得した前処理結果と、実行対象となったオペレータとを関連づけて保持し（ステップＳ５１）、ステップＳ５２の処理へと移行する。
【０１１１】
続くステップＳ５２では、実行計画に含まれた全てのオペレータについて、ステップＳ４４〜Ｓ５１の処理を実行したか否かを判定し、未処理のオペレータが存在する場合にはステップＳ４４へと再び戻り、次のオペレータを実行対象としてステップＳ４４〜Ｓ５１の処理を実行する。
【０１１２】
また、ステップＳ５２において、前処理解析部６５が、全てのオペレータについて、ステップＳ４４〜Ｓ５１の処理を実行したと判定した場合には、これまでに保持したオペレータと当該オペレータの前処理結果との組を、前処理情報追加部６１に出力することで、オペレータと前処理結果との組を実行計画に対応付け、前処理情報としてＲＡＭ１０５に記憶させた後（ステップＳ５３）、本処理を終了する。
【０１１３】
以上のように、既に実行したオペレータと一致するものについては、このオペレータの前処理結果を他の実行計画に用いることが可能であるため、前処理結果の再利用に係る効率を向上することができ、検索結果を取得するまでの時間を短縮することができる。
【０１１４】
次に、図１０を参照して、上記した図８の動作のうち、追加検索に係る動作について詳細に説明する。図１０は、追加検索に係る処理（追加検索処理）の手順を示したフローチャートである。
【０１１５】
まず、表示部１０３に表示された前処理情報の一覧に基づき、操作部１０２を介して特定の前処理情報が選択されると、前処理選択部２１は、この選択された前処理情報に対応うる管理ＩＤを取得要求として、問い合わせ記述部１を通じて構造化文書管理装置２００に出力する（ステップＳ６１）。
【０１１６】
一方、前処理情報出力部６３では、ステップＳ６１で選択された管理ＩＤの前処理情報及び当該前処理情報の関連情報を、ＲＡＭ１０５から読み出し、要求処理部４を通じて端末装置１００に出力する（ステップＳ６２）。
【０１１７】
次いで、端末装置１００では、ステップＳ６２で出力された前処理情報及び関連情報を受け取ると、前処理情報として保持された実行計画や、関連情報として保持された検索条件等を表示する。ここで、操作部１０２を介し、当該実行計画に含まれたオペレータの可変部又は検索条件の可変部に、追加分の検索条件が記述されると、追加検索組み込み部１２は、記述された検索条件を対応するオペレータの可変部に組み込み、前処理情報の管理ＩＤとともに、構造化文書管理装置２００に出力する（ステップＳ６３）。
【０１１８】
一方、文法解析部５１では、オペレータに組み込まれた検索条件の文法解析を行い、解析結果を検索方法導出部５２に出力することで、当該検索条件に係る実行計画を導出させる（ステップＳ６４）。
【０１１９】
次いで、実体組み込み部６４は、ステップＳ６４で導出された実行計画を、ステップＳ６３で出力された管理ＩＤの前処理情報（実行計画）に組み込むと（ステップＳ６５）、前処理情報管理部６にて、ステップＳ６６からステップＳ７４までのループ処理を実行する。
【０１２０】
まず、前処理解析部６５は、前処理情報の実行計画に含まれたオペレータのうち、一のオペレータを選択し、このオペレータの記述内容を解析する（ステップＳ６６）。次に、前処理解析部６５は、選択したオペレータのｆｉｘフラグの状態に基づき、当該オペレータの前処理が完了したか否かを判定する（ステップＳ６７）。なお、オペレータの選択は、前処理情報として保持された実行計画の操作順序に応じて行われるものとする。
【０１２１】
ここで、ｆｉｘフラグが有効と判定した場合には（ステップＳ６７；Ｙｅｓ）、前処理解析部６５は、このオペレータに対する前処理は既に処理済みであると判断し、このオペレータに対応する前処理結果を、前処理情報出力部６３を介してＲＡＭ１０５の前処理情報から読み出し、この前処理結果を次のオペレータの入力データとする（ステップＳ６８）。
【０１２２】
一方、ステップＳ６７において、ｆｉｘフラグが無効と判定した場合には（ステップＳ６７；Ｎｏ）、前処理解析部６５は、ステップＳ６５で組み込まれた追加検索分のオペレータであると判断し、先のループ処理で取得された前処理結果（中間データ）を、入力データとして（ステップＳ６９）、ステップＳ７０からステップＳ７２のループ処理を実行する。
【０１２３】
まず、ステップＳ７０では、追加検索分のオペレータのうち、一のオペレータを選択し、続くステップＳ７１において、このオペレータを実行することで、当該オペレータの処理結果（中間データ）を取得する。なお、オペレータの選択は、前処理情報として保持された実行計画での操作順序に応じて行われるものとする。
【０１２４】
次いで、追加検索分の全てのオペレータについて、ステップＳ７０、Ｓ７１の処理を実行したか否かを判定し（ステップＳ７２）、実行していないと判定された場合には、今回のループ処理（ステップＳ７０、Ｓ７１）で得られた中間データを入力データとして、次のオペレータが処理対象と設定され、ステップＳ７０に再び戻る。
【０１２５】
一方、ステップＳ７２において、追加検索分の全てのオペレータについて、ステップＳ７０、Ｓ７１の処理を実行したと判定した場合には、このループ処理で得られた最終結果を、次のオペレータの入力データとし（ステップＳ７３）、ステップＳ７４へと移行する。
【０１２６】
ステップＳ７４では、前処理情報の実行計画に含まれる全てのオペレータについて、ステップＳ６６からステップＳ７３までの処理を実行したか否かを判定し、未処理のオペレータが存在すると判定した場合には、ステップＳ６６へと再び戻り、ステップＳ７３で取得された処理結果（中間データ）を入力データとし、次のオペレータが処理対象と設定される。
【０１２７】
また、ステップＳ７４において、全ての実行計画を実行したと判定した場合には、各実行計画について取得した前処理結果、中間データ等を検索処理実行部７に渡すことで、当該検索処理実行部７により絞り込まれた文書を、検索結果として端末装置１００に出力した後（ステップＳ７５）、本処理を終了する。
【０１２８】
なお、上記検索条件追加処理では、オペレータの可変部に対し、追加検索組み込み部１２により検索条件の追加が行われた場合を説明したが、実数組み込み部１３による実数値の組み込みの際にも同様の処理が行われるものとする。
【０１２９】
以上のように、実行計画に含まれたオペレータの可変部に対し、検索条件が追加された場合であっても、この実行計画について前もって保持された前処理情報（前処理結果）を利用することができるため、前処理結果の再利用に係る効率を向上することができ、検索結果を取得するまでの時間を短縮することができる。
【０１３０】
以上、発明の実施の形態について説明したが、本発明はこれに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加などが可能である。
【０１３１】
例えば、上記実施形態では、前処理情報をＲＡＭ２０５に記憶させる態様としたが、これに限らず、文書記憶部２０６の一部の記憶領域に記憶させる態様としてもよいし、他の記憶媒体を別途備え、この記憶媒体に記憶させる態様としてもよい。
【０１３２】
また、上記実施形態では、図５に示した機能部のうち問い合わせ記述部１、前処理情報取得部２及び結果表示部３を端末装置１００が備える構成としたが、これに限らず、構造化文書管理装置２００が備える態様としてもよい。
【図面の簡単な説明】
【０１３３】
【図１】構造化文書管理システムの構成を示したブロック図である。
【図２】端末装置の構成を示したブロック図である。
【図３】構造化文書管理装置の構成を示したブロック図である。
【図４】構造化文書の一例を示した図である。
【図５】構造化文書管理システムの機能的構成を示したブロック図である。
【図６】構造化文書と実行計画との関係を説明するための図である。
【図７】構造化文書と実行計画との関係を説明するための図である。
【図８】構造化文書管理システムの動作を説明するための図である。
【図９】前処理情報生成処理の手順を示したフローチャートである。
【図１０】追加検索組込処理の手順を示したフローチャートである。
【符号の説明】
【０１３４】
１０００  構造化文書管理システム
１００  端末装置
１０１  ＣＰＵ
１０２  操作部
１０３  表示部
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  記憶部
１０７  通信部
２００  構造化文書管理装置
２０１  ＣＰＵ
２０２  操作部
２０３  表示部
２０４  ＲＯＭ
２０５  ＲＡＭ
２０６  文書記憶部
２０７  通信部
１  問い合わせ記述部
１１  実行処理記述部
１２  追加検索組み込み部
１３  実数組み込み部
２  前処理情報取得部
２１  前処理選択部
３  検索表示部
３１  検索結果表示部
４  要求処理部
４１  要求受付部
４２  結果処理部
５  検索処理部
５１  文法解析部
５２  検索方法導出部
６  前処理情報管理部
６１  前処理情報追加部
６２  前処理情報削除部
６３  前処理情報出力部
６４  実体組み込み部
６５  前処理解析部
７  検索処理実行部
７１  検索実行部
７２  結果取得部
８  データアクセス部
【図１】
2008225986.tif 000003
【図２】
2008225986.tif 000004
【図３】
2008225986.tif 000005
【図４】
2008225986.tif 000006
【図５】
2008225986.tif 000007
【図６】
2008225986.tif 000008
【図７】
2008225986.tif 000009
【図８】
2008225986.tif 000010
【図９】
2008225986.tif 000011
【図１０】
2008225986.tif 000012