(57)【要約】【課題】オブジェクト指向構造化文書データベースがメタ情報を格納する機能を有しなくても、アプリケーションプログラムに依存せずに、メタ情報の追加・変更・削除に柔軟に対応できる格納検索装置、格納検索方法、格納検索プログラム、および格納検索プログラム記録媒体を提供する。【解決手段】格納・検索システム１は、アプリケーション１００、格納・検索装置２００、オブジェクト指向構造化文書データベース（以下、データベースと呼ぶ）３００を備えている。格納・検索装置２００は、アプリケーション１００から渡された構造化文書およびメタ情報をデータベース３００に格納する機能と、アプリケーション１００から渡されたパス検索式をもってデータベース３００に格納された構造化文書およびメタ情報の検索を行い、その検索結果をアプリケーション１００に返却する機能と、を有するミドルウェアプログラムが記録され、実行される装置である。【選択図】      図１
2004348593.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムからの指示に基づいてオブジェクト指向構造化文書データベースにアクセスし、情報処理を行う格納検索装置であって、
構造化文書とともに前記オブジェクト指向構造化文書データベースに格納される前記構造化文書のメタ情報のパスに関する情報を記憶する設定情報記憶手段と、
前記アプリケーションプログラムからの格納指示のもと受け取った前記構造化文書を前記オブジェクト指向構造化文書データベースに格納するとともに、前記アプリケーションプログラムから受け取ったメタ情報を、前記設定情報記憶手段に記憶されている前記メタ情報のパスに関する情報に従って、格納された前記構造化文書に挿入し、拡張構造化文書として格納する格納手段と、
前記アプリケーションプログラムからの検索指示および前記設定情報記憶手段に記憶された前記メタ情報のパスに関する情報に従って、前記オブジェクト指向構造化文書データベースに格納された前記拡張構造化文書から該当する前記構造化文書又は前記メタ情報を分離して取得する検索手段と、
を有することを特徴とする格納検索装置。
【請求項２】
前記検索手段は、
前記検索指示であるパス検索式と前記メタ情報のパスに関する情報の比較に基づいて、取得する文書が前記構造化文書か前記メタ情報かを判定し、判定した結果が構造化文書である場合には、取得した文書から前記格納手段で挿入した前記メタ情報を取り除くことを特徴とする請求項１記載の格納検索装置。
【請求項３】
アプリケーションプログラムからの指示に基づいてオブジェクト指向構造化文書データベースにアクセスし、情報処理を行う格納検索装置の格納検索方法であって、
構造化文書とともに前記オブジェクト指向構造化文書データベースに格納される前記構造化文書のメタ情報のパスに関する情報を記憶する設定情報記憶ステップと、
前記アプリケーションプログラムからの格納指示のもと受け取った前記構造化文書を前記オブジェクト指向構造化文書データベースに格納するとともに、前記アプリケーションプログラムから受け取ったメタ情報を、前記設定情報記憶ステップで記憶した前記メタ情報のパスに関する情報に従って、格納された前記構造化文書に挿入し、拡張構造化文書として格納する格納ステップと、
前記アプリケーションプログラムからの検索指示および前記設定情報記憶ステップで記憶した前記メタ情報のパスに関する情報に従って、前記オブジェクト指向構造化文書データベースに格納された前記拡張構造化文書から該当する前記構造化文書又は前記メタ情報を分離して取得する検索ステップと、
を有することを特徴とする格納検索方法。
【請求項４】
前記検索ステップは、
前記検索指示であるパス検索式と前記メタ情報のパスに関する情報の比較に基づいて、取得する文書が前記構造化文書か前記メタ情報かを判定し、判定した結果が構造化文書である場合には、取得した文書から前記格納ステップで挿入した前記メタ情報を取り除くことを特徴とする請求項３記載の格納検索方法。
【請求項５】
請求項３又は４に記載の格納検索装置に前記各ステップを実行させることを特徴とする格納検索プログラム。
【請求項６】
請求項５に記載された格納検索プログラムをコンピュータ読み取り可能な記録媒体に記録していることを特徴とする格納検索プログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、構造化文書を格納し、検索するコンピュータシステムに用いられるミドルウェアに関し、特に、メタ情報を格納する機能を持たないオブジェクト指向データベースに対して構造化文書およびメタ情報を格納し、検索するミドルウェアに関する。
【０００２】
【従来の技術】
近年、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）をはじめとする構造化文書が、インターネット上の様々な情報共有のためのデータフォーマットとして、利用されるようになっている。ＸＭＬは、１９９７年１２月に、標準化団体Ｗ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｉｕｍ）により標準化された構造化文書の規格の一種である。このＸＭＬ規格に沿って書かれたデータをＸＭＬ文書と呼ぶ。
【０００３】
ＸＭＬ文書は、人が解読・編集可能な文書である。しかし、同時に、ＸＭＬ文書は、タグを用いて構造化されており、コンピュータプログラムが、容易に処理することが可能なデータでもある。ＸＭＬ文書のタグは、見かけは文書中に埋めこまれた「＜」と「＞」で囲まれた文字列である。タグには、開始タグと終了タグがあり、開始タグと終了タグで囲まれた領域を要素と呼ぶ。要素は、複数の子要素を持ち、それぞれの子要素が複数の孫要素を持つというように、入れ子状に記述できる。そのため、ＸＭＬ文書は、多段階の木構造を表現することができる。
【０００４】
現在、ＸＭＬ文書によって表現される情報は、多岐に渡り、ＸＭＬ規格にタグの付け方の規則を規定することで、特定の用途への応用が行われている。例えば、企業間連携のためのＲｏｓｅｔｔａＮｅｔ（ｈｔｔｐ：／／ｗｗｗ．ｒｏｓｅｔｔａｎｅｔ．ｇｒ．ｊｐ／）やｅｂＸＭＬ（ｈｔｔｐ：／／ｗｗｗ．ｅｂｘｍｌ．ｏｒｇ／）、リソース情報記述のためのＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ，ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＲＤＦ／）、マルチメデイア情報記述のためのＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）やＳＭＩＬ（Ｓｙｎｃｈｒｏｎｉｚｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ）などがある。上記の特定用途のＸＭＬ文書を利用するシステムは、それぞれのシステムが処理すべきＸＭＬ文書であることを確認するために、ＸＭＬ用のスキーマ言語（ＸＭＬ  Ｓｃｈｅｍａ，  ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／Ｓｃｈｅｍａ）を用いて検証を行い、規定外のＸＭＬ文書を排除することで、処理対象のＸＭＬ文書のみに処理を注力することができる。
【０００５】
ＸＭＬ文書をコンピュータプログラムが処理する際には、ＸＭＬ文書が表現する木構造をコンピュータメモリ上の木構造に変換した方が便利である。このように、ＸＭＬ文書をコンピュータメモリ上の木構造として表現したものを、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）と呼ぶ。ＤＯＭは、同じくＷ３Ｃにより標準化されている。ＤＯＭは、ノードとリンクよりなるノード・リンクモデルでＸＭＬ文書を表現する。ＸＭＬ文書の要素は、ＤＯＭのノードに相当する。
【０００６】
コンピュータメモリ上のＤＯＭデータを処理するシステムを作成する際に、ＤＯＭデータ中のノードを指し示す検索式が利用できれば便利である。そのために、同じくＷ３Ｃにより、ＸＰａｔｈ（ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ）という表記方法が標準化されている。ＸＰａｔｈのようなパス検索式を用いることで、ＤＯＭデータ中の条件に合うノードを指し示すことができる。
【０００７】
上記のようなＸＭＬに関する様々な技術の規格化が行われ、様々なコンピュータシステムがＸＭＬをベースとして開発されるようになったため、近年、ＸＭＬ文書を格納するためのデータベースの必要性も増している。ＸＭＬを格納するデータベースには、大きく分けて、リレーショナルデータベース、オブジェクト指向データベース、文書データベースの３種類がある。
【０００８】
リレーショナルデータベースにＸＭＬ文書を格納するには、ＸＭＬ文書をリレーショナルデータベースの格納モデルである二次元の表に変換する必要がある。現在、リレーショナルモデルに基づくリレーショナルデータベース管理システム（ＲＤＢＭＳ）は、データベース管理システム（ＤＢＭＳ）の主流として、顧客管理データベースや物品管理データベースなどに広く利用されている。従って、信頼性の高いリレーショナルデータベース管理システム（ＲＤＢＭＳ）を利用することは容易であるが、ＸＭＬ文書を二次元の表形式に変換するには、元となるＸＭＬ文書の形式や利用目的を分析し、最適な変換方法を検討し、リレーショナルスキーマを設計する必要がある。そのため、設計・構築コストが高く、大規模なシステム開発には向くが、中小規模のシステム開発には不向きである。
【０００９】
オブジェクト指向データベースにＸＭＬ文書を格納するには、ＸＭＬ文書をそのままデータベースに格納すればよい。これは、オブジェクト指向データベースは、ＸＭＬ文書の基本構造である木構造をオブジェクトの親子関係として、そのままの形で格納することができるからである。そのため、システム開発のコスト低減や、構築期間の短縮が重要な中小規模のシステム開発においては、複雑なスキーマ設計が必要ないという理由から、ＸＭＬ文書を木構造データとしてデータベースに格納し、パス検索式を用いて検索を行うことが可能なオブジェクト指向データベースが盛んに利用されている。なお、以後の説明において、構造化文書を格納するオブジェクト指向データベースをオブジェクト指向構造化文書データベースと呼ぶ。
【００１０】
文書データベースにＸＭＬ文書を格納する際には、構造化文書を文章として格納する。文書データベースは、構造化文書を文章として扱い、自然言語解析を施し、索引付けを行い、データベースに格納するので、文章の類似検索が可能なデータベースである。そのため、文書データベースは、ＸＭＬ文書のうち、文章データを格納する場合に特化して利用されるが、文章を扱うシステム開発以外には、用いられない。
【００１１】
オブジェクト指向構造化文書データベースの構造化文書の格納は、図１９に示す構造化文書を図２０（ａ）のようなノードとリンクの木構造として表現し、ノードオブジェクトとその間のリンクという形式で保存することで実現されている。尚、図２０（ｂ）は図２０（ａ）の表記方法を説明している凡例であるが、これによれば、木構造には、必ずルートノードがあり、構造化文書の要素は要素ノード、属性は属性ノード、文字列はテキストノードとして格納される。
【００１２】
オブジェクト指向構造化文書データベースは、このノードとリンクの木構造に対して、木構造取得機能、木構造操作機能、およびパス検索機能の３つの機能を有する。
【００１３】
木構造取得機能は、データベースに格納された構造化文書を木構造としてアクセスし、ノード情報を取得する機能である。これにより、データベースクライアントは、木構造を辿り、ノードの情報を取得することができる。また、木構造を辿ることで、元の構造化文書を再構成することができる。例えば、図２０（ａ）に示すノードｎ００２を基点と指定すると、図２１に示す部分構造化文書を取り出すことができる。
【００１４】
木構造操作機能は、データベースに格納された構造化文書を木構造としてアクセスし、ノード情報を操作する機能である。これにより、データベースクライアントは、基点となるノードを指定し、そのノードへ新しい子ノードの追加を行うことができる。本機能を用いると、構造化文書中に別の構造化文書を、部分構造化文書として埋め込むことができる。例えば、図２２に示す部分構造化文書をノードｎ００２の子ノードに追加すると、図２３に示す木構造になる。この機能を部分構造化文書挿入と呼ぶ。尚、部分構造化文書挿入については、ルートノード（図２３におけるｎ０００）を基点として構造化文書自身の挿入を指定することで、構造化文書の全文書挿入を実現することができる。
【００１５】
パス検索機能は、パス検索式により該当するノード群をノード集合として取得する機能である。パスは、複数の要素名や属性名を“／”で区切った文字列で、ＵＮＩＸ（登録商標）ＯＳなどで用いられているディレクトリパスと似た概念であり、構造化文書の木構造を辿る順序を表している。また、パス検索式には、条件式を付加することができる。条件式は、木構造を辿る際に、ノードの絞込みを行うことを指示する。図２４は、パス検索式の一例である。この例では、ｏｒｄｅｒノードの子の、ｂｏｏｋノードの子の、ａｕｔｈｏｒノードを返却することと、ｐｒｉｃｅノードの値が２００以上であるｂｏｏｋノードに限ることを表している。図２４に示すパス検索式は、ルートノードを基点とし、図２３に示すノード集合Ｎ＝｛ｎ００５｝が返却される。
【００１６】
以上のように、ＸＭＬ文書のような構造化された文書を格納する必要がある中小規模のデータベースシステムには、オブジェクト指向データベースが適している。
【００１７】
尚、この出願に関連する先行技術文献情報としては、次のものがある。
【００１８】
【特許文献１】
特開２００１−３３１４７９
【００１９】
【発明が解決しようとする課題】
ところで、従来、オブジェクト指向データベースとアプリケーションプログラムを用いてコンピュータシステムを開発する際には、ＸＭＬ文書のような構造化文書に文書外追加情報（例えば、ＸＭＬ文書の作成者、日付、更新履歴など。以下、これをメタ情報と呼ぶ）を付加して、オブジェクト指向データベースに格納する場合が多い。このような場合には、元となるＸＭＬ文書のスキーマに任意の構造を付加する機能があるため、ＸＭＬ文書のスキーマにメタ情報を追加するという方法で対応していた。
【００２０】
しかしながら、上記の方法においては、オブジェクト指向データベースのスキーマ上では元のＸＭＬ文書とメタ情報部分は区別されないため、
（１）  ＸＭＬ文書をオブジェクト指向データベースに格納する際には、ＸＭＬ文書とメタ情報を結合してから格納する
（２）  オブジェクト指向データベースからＸＭＬ文書を検索する際には、元のＸＭＬ文書にメタ情報部分が含まれたまま取り出される
という処理が行われることになる。特に（２）については、扱うＸＭＬ文書がＲＤＦやＳＭＩＬなど規格化されたＸＭＬ文書である場合には、メタ情報部分が不正スキーマとしてエラーになるため、規格に合わないＸＭＬ文書をそのままＲＤＦやＳＭＩＬなどの処理に使えないという問題が発生する。
【００２１】
そのため、通常、アプリケーションが不要な部分であるメタ情報部分を削除し、ＲＤＦやＳＭＩＬの処理で扱えるようにする手段が必要となり、このことから、上記コンピュータシステムの開発においては以下の問題が発生していた。
【００２２】
（１）  メタ情報の付加および削除処理にアプリケーションが対応する必要があり、開発コストが余計にかかる。
【００２３】
（２）  メタ情報が増えるとその度にアプリケーションを修正する必要がある。
【００２４】
本発明は、上記の事情を鑑みたものであり、オブジェクト指向構造化文書データベースがメタ情報を格納する機能を有しなくても、アプリケーションプログラムに依存せずに、メタ情報の追加・変更・削除に柔軟に対応できる格納検索装置、格納検索方法、格納検索プログラム、および格納検索プログラム記録媒体を提供することを目的とする。
【００２５】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の本発明は、アプリケーションプログラムからの指示に基づいてオブジェクト指向構造化文書データベースにアクセスし、情報処理を行う格納検索装置であって、構造化文書とともに前記オブジェクト指向構造化文書データベースに格納される前記構造化文書のメタ情報のパスに関する情報を記憶する設定情報記憶手段と、前記アプリケーションプログラムからの格納指示のもと受け取った前記構造化文書を前記オブジェクト指向構造化文書データベースに格納するとともに、前記アプリケーションプログラムから受け取ったメタ情報を、前記設定情報記憶手段に記憶されている前記メタ情報のパスに関する情報に従って、格納された前記構造化文書に挿入し、拡張構造化文書として格納する格納手段と、前記アプリケーションプログラムからの検索指示および前記設定情報記憶手段に記憶された前記メタ情報のパスに関する情報に従って、前記オブジェクト指向構造化文書データベースに格納された前記拡張構造化文書から該当する前記構造化文書又は前記メタ情報を分離して取得する検索手段と、を有することを要旨とする。
【００２６】
請求項２記載の本発明は、請求項１記載の発明において、前記検索手段は、前記検索指示であるパス検索式と前記メタ情報のパスに関する情報の比較に基づいて、取得する文書が前記構造化文書か前記メタ情報かを判定し、判定した結果が構造化文書である場合には、取得した文書から前記格納手段で挿入した前記メタ情報を取り除くことを要旨とする。
【００２７】
請求項３記載の本発明は、アプリケーションプログラムからの指示に基づいてオブジェクト指向構造化文書データベースにアクセスし、情報処理を行う格納検索装置の格納検索方法であって、構造化文書とともに前記オブジェクト指向構造化文書データベースに格納される前記構造化文書のメタ情報のパスに関する情報を記憶する設定情報記憶ステップと、前記アプリケーションプログラムからの格納指示のもと受け取った前記構造化文書を前記オブジェクト指向構造化文書データベースに格納するとともに、前記アプリケーションプログラムから受け取ったメタ情報を、前記設定情報記憶ステップで記憶した前記メタ情報のパスに関する情報に従って、格納された前記構造化文書に挿入し、拡張構造化文書として格納する格納ステップと、前記アプリケーションプログラムからの検索指示および前記設定情報記憶ステップで記憶した前記メタ情報のパスに関する情報に従って、前記オブジェクト指向構造化文書データベースに格納された前記拡張構造化文書から該当する前記構造化文書又は前記メタ情報を分離して取得する検索ステップと、を有することを要旨とする。
【００２８】
請求項４記載の本発明は、請求項３記載の発明において、前記検索ステップは、前記検索指示であるパス検索式と前記メタ情報のパスに関する情報の比較に基づいて、取得する文書が前記構造化文書か前記メタ情報かを判定し、判定した結果が構造化文書である場合には、取得した文書から前記格納ステップで挿入した前記メタ情報を取り除くことを要旨とする。
【００２９】
請求項５記載の本発明は、請求項３又は４に記載の格納検索装置に前記各ステップを実行させる格納検索プログラムであることを要旨とする。
【００３０】
請求項６記載の本発明は、請求項５に記載された格納検索プログラムをコンピュータ読み取り可能な記録媒体に記録している格納検索プログラム記録媒体であることを要旨とする。
【００３１】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。
【００３２】
図１は本発明の実施形態に係る格納・検索システム１の概略構成図である。図１に示す格納・検索システム１は、アプリケーション１００、格納・検索装置２００、オブジェクト指向構造化文書データベース（以下、データベースと呼ぶ）３００を備えている。尚、格納・検索システム１は、構成としては、一つからなる装置、各構成要素が分散されて複数の装置がネットワーク接続されたシステムなどのいずれの構成であっても良い。
【００３３】
アプリケーション１００は、格納・検索装置２００を利用するアプリケーションプログラムであり、その処理の中で構造化文書をデータベースに格納し、構造化文書を検索することを必要とするアプリケーションプログラムである。ここで、構造化文書を検索するために用いる検索式は上述したパス検索式である。
【００３４】
格納・検索装置２００は、アプリケーション１００から渡された構造化文書およびメタ情報をデータベース３００に格納する機能と、アプリケーション１００から渡されたパス検索式をもってデータベース３００に格納された構造化文書およびメタ情報の検索を行い、その検索結果をアプリケーション１００に返却する機能と、を有するミドルウェアプログラムが記録され、実行される装置である。
【００３５】
データベース３００は、構造化文書を格納するオブジェクト指向構造化文書データベースであり、上述した木構造取得機能、木構造操作機能、およびパス検索機能の３つの機能を有する。
【００３６】
さらに詳しくは、格納・検索装置２００は、制御装置２０１、設定情報辞書２０２、格納装置２０３および、検索装置２０４を備えている。
【００３７】
制御装置２０１は、アプリケーション１００からパス検索式を受け取ると、他の装置２０２乃至２０４を制御し、アプリケーション１００に検索結果を返却するようになっている。
【００３８】
設定情報辞書２０２は、格納・検索装置２００の動作を決定する設定情報を格納する辞書である。
【００３９】
格納装置２０３は、制御装置２０１から構造化文書およびメタ情報を受け取り、データベース３００に格納するようになっている。
【００４０】
検索装置２０４は、制御装置２０１からパス検索式を受け取り、データベース３００に対し検索を実行し、返却結果を制御装置２０１に返却するようになっている。
【００４１】
尚、設定情報辞書２０２に格納される設定情報には、データベース３００に格納する構造化文書に対して、どの位置にメタ情報を付加するかを示すメタ情報パスＰが含まれている。
【００４２】
次に、本実施の形態に係る格納・検索システム１の動作を図２乃至５を用いて説明する。ここで、図２は、格納・検索システム１の処理手順を示すフローチャート図である。図３乃至５は、図２の各ステップＳ１００、Ｓ２００、およびＳ３００を詳細に説明するフローチャート図である。
【００４３】
図２に示すように、格納・検索システム１は、まず、辞書の設定を行い、次に、アプリケーション１００からの指示により、構造化文書の格納もしくは、構造化文書の検索を行う（ステップＳ１００〜Ｓ４００）。尚、複数の構造化文書を処理する場合においては、ステップＳ１００をはじめに一度だけ行い、以降は個々の構造化文書について任意の順序でステップＳ２００およびステップＳ３００を繰り返し行う。
【００４４】
ここで、上述の各ステップについて説明する。まず、図３を用いて辞書の設定ステップＳ１００について説明する。
【００４５】
ユーザは、上述したメタ情報パスＰの一覧であるメタ情報パス集合Ｐ１−ｎを生成し（ステップＳ１０１）、生成したメタ情報パス集合Ｐ１−ｎを設定情報辞書２０２に対し設定入力する（ステップＳ１０２）。
【００４６】
次に、図４を用いて構造化文書の格納ステップＳ２００について説明する。
【００４７】
アプリケーション１００は、格納する構造化文書Ｄとメタ情報集合Ｍ１−ｎを生成し、制御装置２０１に入力し、構造化文書格納を指示する（ステップＳ２０１）。なお、メタ情報Ｍｉは、パスＰｉに対応するメタ情報である。
【００４８】
制御装置２０１は、ステップＳ２０１で入力された構造化文書Ｄを、格納装置２０３に入力し、構造化文書の格納を指示する（ステップＳ２０２）。
【００４９】
格納装置２０３は、ステップＳ２０２で入力された構造化文書Ｄをデータベース３００に入力し、全文書挿入を指示する（ステップＳ２０３）。
【００５０】
データベース３００は、ステップＳ２０３で入力され指示された構造化文書Ｄを用いて、全文書挿入を実行する（ステップＳ２０４）。
【００５１】
次に、制御装置２０１は、ステップＳ２０１で入力されたメタ情報集合Ｍ１−ｎ、および設定情報辞書２０２より取り出したメタ情報パス集合Ｐ１−ｎを格納装置２０３に入力し、メタ情報格納を指示する（ステップＳ２０５）。
【００５２】
格納装置２０３は、ステップＳ２０５で入力されたメタ情報Ｍｉをメタ情報パスＰｉに従ってデータベース３００に入力し、部分構造化文書挿入を指示する（ステップＳ２０６）。
【００５３】
データベース３００は、ステップＳ２０６で入力され指示されたメタ情報Ｍｉ、およびメタ情報パスＰｉに基づいて部分構造化文書挿入を実行する（ステップＳ２０７）。この際、メタ情報パスＰｉの指し示す位置にメタ情報Ｍｉを挿入する。
【００５４】
次に、図５を用いて構造化文書の検索ステップＳ３００について説明する。
【００５５】
アプリケーション１００は、データベース３００より構造化文書またはメタ情報を取得するためのパス検索式Ｑを生成する（ステップＳ３０１）。この際、パス検索式Ｑの条件に、構造化文書Ｄおよびメタ情報集合Ｍ１−ｎを指し示すパスを指定することができる。
【００５６】
アプリケーション１００は、ステップＳ３０１で生成したパス検索式Ｑを制御装置２０１に入力し、検索実行を指示する（ステップＳ３０２）。
【００５７】
制御装置２０１は、ステップＳ３０２で入力されたパス検索式Ｑを検索装置２０４に入力し、検索実行を指示する（ステップＳ３０３）。
【００５８】
検索装置２０４は、ステップＳ３０３で入力されたパス検索式Ｑをデータベース３００に入力し、検索実行を指示すると、データベース３００は、検索を実行し、検索装置２０４にノード集合Ｎ１−ｍを返却する（ステップＳ３０４）。
【００５９】
検索装置２０４は、ステップＳ３０４で返却されたノード集合Ｎ１−ｍを、制御装置２０１に返却する（ステップＳ３０５）。
【００６０】
制御装置２０１は、設定情報辞書２０２よりメタ情報パス集合Ｐ１−ｎを取得し、該メタ情報パス集合Ｐ１−ｎと、パス検索式Ｑから条件を除いたパスＰＱと、を比較する（ステップＳ３０６）。これは、具体的には、メタ情報パス集合Ｐ１−ｎ中の全てのメタ情報パスＰｋについて、パスＰＱがメタ情報パスＰｋ自身またはその子孫ノードを指し示すかどうかで判定するものである。パスＰＱがメタ情報パスＰｋ自身またはその子孫ノードを指し示さない場合には、パス検索式Ｑは構造化文書Ｄの部分構造化文書集合を指し示すものとみなし、ステップＳ３０８を実行する。これに対して、パスＰＱがメタ情報パスＰｋ自身またはその子孫ノードを指し示す場合には、パス検索式Ｑはメタ情報集合Ｍ１−ｎの部分構造化文書集合を指し示すものとみなし、ステップＳ３０９を実行する（ステップＳ３０７）。
【００６１】
パスＰＱがメタ情報パスＰｋ自身またはその子孫ノードを指し示さない場合には、制御装置２０１は、ステップＳ３０５で返却されたノード集合Ｎ１−ｍの個々のノードＮｊについて、部分構造化文書取得を実行する（ステップＳ３０８）。部分構造化文書取得は、ノードＮｊ以下の子孫ノードを全て取得し、構造化文書に組み立てることで行う。ただし、この際、設定情報辞書２０２より、メタ情報パス集合Ｐ１−ｎを取得し、これらのパスに該当するノードに関しては取得しない。これにより生成されるノードＮｊを頂点とする部分構造化文書を部分構造化文書Ｅｊとする。最終的に、ノード集合Ｎ１−ｍの全てのノードについて部分構造化文書を生成し、部分構造化文書集合Ｅ１−ｍを得る。
【００６２】
これに対して、パスＰＱがメタ情報パスＰｋ自身またはその子孫ノードを指し示す場合には、制御装置２０１は、ステップＳ３０５で返却されたノード集合Ｎ１−ｍの個々のノードＮｊについて、部分構造化文書取得を実行する（ステップＳ３０９）。部分構造化文書取得は、ノードＮｊ以下の子孫ノードを全て取得し、構造化文書に組み立てることで行う。これにより生成されるノードＮｊを頂点とする部分構造化文書を部分構造化文書Ｅｊとする。最終的に、ノード集合Ｎ１−ｍの全てのノードについて、部分構造化文書を生成し、部分構造化文書集合Ｅ１−ｍを得る。
【００６３】
制御装置２０１は、ステップＳ３０８又はＳ３０９で生成した部分構造化文書集合Ｅ１−ｍをアプリケーション１００に返却する（ステップＳ３１０）。
【００６４】
次に、具体的に、構造化文書としてＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、データベース３００は、パス検索式としてＸＰａｔｈ（ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ）をサポートするデータベース（以下、ＸＭＬ  ＤＢと呼ぶ）を用いた場合の格納・検索システム１について説明する。
【００６５】
この格納・検索システム１は、上述した図２のフローチャートに示す動作を行う。ここで、実際に処理においては、アプリケーション１００の利用目的とユーザの操作に応じて、任意の順序でステップＳ２００およびＳ３００を必要回数繰り返すが、説明上、ステップＳ１００乃至Ｓ３００を１度のみ行うものとする。
【００６６】
まず、図３を用いて辞書の設定ステップＳ１００について説明する。
【００６７】
ユーザは、設定情報辞書２０２に対して、図６に示すメタ情報パスＰ１およびＰ２の一覧であるメタ情報パス集合Ｐ１−２を生成する（ステップＳ１０１）。
【００６８】
そして、ユーザは、ステップＳ１０１で生成したメタ情報パス集合Ｐ１−２を、設定情報辞書２０２に対し設定する（ステップＳ１０２）。
【００６９】
次に、図４を用いて構造化文書の格納ステップＳ２００について説明する。
【００７０】
アプリケーション１００は、図７に示す構造化文書Ｄと、図８に示すメタ情報集合Ｍ１−２を生成し、制御装置２０１に入力し、構造化文書格納を指示する（ステップＳ２０１）。なお、メタ情報Ｍｉ（ｉ＝１，２）は、パスＰｉ（ｉ＝１，２）に対応するメタ情報である。
【００７１】
制御装置２０１は、ステップＳ２０１で入力された構造化文書Ｄを、格納装置２０３に入力し、構造化文書の格納を指示する（ステップＳ２０２）。
【００７２】
格納装置２０３は、ステップＳ２０２で入力された構造化文書Ｄをデータベース３００に入力し、全文書挿入を指示する（ステップＳ２０３）。
【００７３】
データベース３００は、ステップＳ２０３で入力され指示された構造化文書Ｄを用いて、全文書挿入を実行する（ステップＳ２０４）。格納された構造化文書Ｄのデータベース内での構造を図９に示す。
【００７４】
制御装置２０１は、ステップＳ２０１で入力されたメタ情報集合Ｍ１−２、および設定情報辞書２０２より取り出されたメタ情報パス集合Ｐ１−２を格納装置２０３に入力し、メタ情報格納を指示する（ステップＳ２０５）。
【００７５】
格納装置２０３は、ステップＳ２０５で入力されたメタ情報Ｍｉをメタ情報パスＰｉに従って、データベース３００に入力し、部分構造化文書挿入を指示する（ステップＳ２０６）。
【００７６】
データベース３００は、ステップＳ２０６で入力され指示されたメタ情報Ｍｉ、およびメタ情報パスＰｉに基づいて部分構造化文書挿入を実行する（ステップＳ２０７）。この際、メタ情報パスＰｉの指し示す位置にメタ情報Ｍｉを挿入する。挿入された構造化文書Ｄとメタ情報集合Ｍ１−２のデータベース内での構造を図１０に示す。図１０においては、メタ情報パスＰ１の示すｎ００６の位置にメタ情報Ｍ１が、メタ情報パスＰ２の示すｎ００７の位置にメタ情報Ｍ２が挿入されている。
【００７７】
次に、図５を用いて構造化文書の検索ステップＳ３００について説明する。
【００７８】
アプリケーション１００は、データベース３００より構造化文書を取得するための図１１に示すパス検索式Ｑを生成する（ステップＳ３０１）。図１１に示すパス検索式Ｑは、条件としてメタ情報を指定し（メタ情報であるｆｉｌｅｎａｍｅ属性が‘ｈｏｍｅｐａｇｅ１．ｘｍｌ’であるもの）、構造化文書Ｄの部分構造化文書取得を表している（パス“／ＲＤＦ”配下の部分構造化文書を取得）。
【００７９】
アプリケーション１００は、ステップＳ３０１で生成したパス検索式Ｑを制御装置２０１に入力し、検索実行を指示する（ステップＳ３０２）。
【００８０】
制御装置２０１は、ステップＳ３０２で入力されたパス検索式Ｑを検索装置２０４に入力し、検索実行を指示する（ステップＳ３０３）。
【００８１】
検索装置２０４は、ステップＳ３０３で入力されたパス検索式Ｑをデータベース３００に入力し、検索実行を指示すると、データベース３００は、検索を実行し、検索装置２０４にノード集合Ｎ１−ｍを返却する（ステップＳ３０４）。返却されるノード集合Ｎ１−ｍ（ｍ＝１であり、Ｎ１）を図１２に示す。
【００８２】
検索装置２０４は、ステップＳ３０４で返却されたノード集合Ｎ１を、制御装置２０１に返却する（ステップＳ３０５）。
【００８３】
制御装置２０１は、設定情報辞書２０２より、メタ情報パス集合Ｐ１−２を取得し、パス検索式Ｑから条件を除いたパスＰＱと比較する（ステップＳ３０６）。この例におけるパスＰＱを図１３に示す。パスＰＱが指し示すパスはルートノードの子ノードの“ＲＤＦ”ノードである。メタ情報パス集合Ｐ１−２中の全てのメタ情報パスＰｋについて、パスＰＱが指し示すノードが、メタ情報パスＰｋ自身かその子孫ノードであるようなメタ情報パスＰｋが存在しないので、パス検索式Ｑは構造化文書Ｄの部分構造化文書集合を返却するものとみなしステップＳ３０８を実行する（ステップＳ３０７）。
【００８４】
制御装置２０１は、ステップＳ３０５で返却されたノード集合Ｎ１のノードＮ１について、部分構造化文書取得を実行する（ステップＳ３０８）。部分構造化文書取得は、ノードＮ１以下の子孫ノードを全て取得し、構造化文書に組み立てることで行う。ただし、この際、設定情報辞書２０２より、図６に示すメタ情報パス集合Ｐ１−２を取得し、これらのパスに該当するノードは取得しない。これにより生成されるノードＮ１を頂点とする部分構造化文書を部分構造化文書Ｅ１とする。この具体例においては、ノード集合Ｎ１のノードはノードＮ１だけであるので、ノードＮ１より部分構造化文書集合Ｅ１を得る。図１４に生成される部分構造化文書集合Ｅ１を示す。この時、データベース３００内の木構造に付加されていたメタ情報は、部分構造化文書集合Ｅ１には付加されず、元の構造化文書Ｄに含まれている要素だけが出力される。
【００８５】
制御装置２０１は、ステップＳ３０８で生成した部分構造化文書集合Ｅ１をアプリケーション１００に返却する（ステップＳ３１０）。
【００８６】
次に、ステップＳ３０７において、パス検索式Ｑがメタ情報を取得する場合の処理を以下に示す。
【００８７】
アプリケーション１００は、データベース３００より構造化文書を取得するための図１５に示すパス検索式Ｑ’を生成する（ステップＳ３０１）。パス検索式Ｑ’は、条件として構造化文書を指定し（構造化文書の“／ＲＤＦ／Ｄｅｓｃｒｉｐｔｉｏｎ／ｄｃ：ｃｒｅａｔｏｒ”要素が‘春日’であるもの）、メタ情報の部分構造化文書取得を表している（パス“／ＲＤＦ／ｃｈａｎｇｅ＿ｌｏｇ／ｌｏｇ”配下の部分構造化文書を取得）。
【００８８】
アプリケーション１００は、ステップＳ３０１で生成したパス検索式Ｑ’を制御装置２０１に入力し、検索実行を指示する（ステップＳ３０２）。
【００８９】
制御装置２０１は、ステップＳ３０２で入力されたパス検索式Ｑ’を検索装置２０４に入力し、検索実行を指示する（ステップＳ３０３）。
【００９０】
検索装置２０４は、ステップＳ３０３で入力されたパス検索式Ｑ’をデータベース３００に入力し、検索実行を指示する（ステップＳ３０４）。データベース３００は、検索を実行し、検索装置２０４にノード集合Ｎ’１−ｍを返却する。返却されるノード集合Ｎ’１−ｍ（ｍ＝１であり、Ｎ’１）を図１６に示す。
【００９１】
検索装置２０４は、ステップＳ３０４で返却されたノード集合Ｎ’１を制御装置２０１に返却する（ステップＳ３０５）。
【００９２】
制御装置２０１は、設定情報辞書２０２よりメタ情報パス集合Ｐ１−２を取得し、パス検索式Ｑから条件を除いたパスＰＱ’と比較する（ステップＳ３０６）。この例におけるパスＰＱ’を図１７に示す。パスＰＱが指し示すパスはメタ情報集合Ｍ２の子ノードの“ｌｏｇ”ノードである。メタ情報パス集合Ｐ１−２中の全てのメタ情報パスＰｋについて、パスＰＱが指し示すノードが、メタ情報パスＰｋ自身かその子孫ノードであるようなメタ情報パスＰｋが存在する（「メタ情報パスＰ２」が該当）ので、パス検索式Ｑ’はメタ情報集合Ｍ１−２の部分構造化文書集合を返却するものとみなしステップＳ３０９を実行する（ステップＳ３０７）。
【００９３】
制御装置２０１は、ステップＳ３０５で返却されたノード集合Ｎ’１のノードＮ’１について、部分構造化文書取得を実行する（ステップＳ３０９）。部分構造化文書取得は、ノードＮ’１以下の子孫ノードを全て取得し、構造化文書に組み立てることで行う。これにより生成されるノードＮ’１を頂点とする部分構造化文書を部分構造化文書Ｅ’１とする。この具体例においては、ノード集合Ｎ’１−のノードはノードＮ’１だけであるので、ノードＮ’１より部分構造化文書集合Ｅ’１を得る。図１８に生成される部分構造化文書集合Ｅ’１を示す。
【００９４】
制御装置２０１は、ステップＳ３０９で生成した部分構造化文書集合Ｅ’１をアプリケーション１００に返却する（ステップＳ３１０）。
【００９５】
従って、本実施の形態の格納・検索システム１によれば、メタ情報を格納する機能のないデータベース３００とアプリケーション１００の間に、ミドルウェアとしての格納・検索装置２００を用いることで、アプリケーション１００に依存せずに、メタ情報の追加・変更・削除に柔軟に対応することができるので、システム設計・開発の利便性の向上を図ることができる。
【００９６】
具体的には、オブジェクト指向構造化文書データベースに構造化文書を格納する際には、メタ情報を合わせて格納することができ、構造化文書を検索する際には、構造化文書とメタ情報を別々に取得することができる。また、構造化文書を取得する際には、メタ情報を条件として検索することが可能となり、メタ情報を取得する際には、構造化文書を条件として検索することが可能となる。
尚、上記実施の形態の格納・検索装置２００に格納されたミドルウェアプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に記録することも、通信ネットワークを介して配信することも可能である。
【００９７】
【発明の効果】
以上説明したように、本発明によれば、オブジェクト指向構造化文書データベースがメタ情報を格納する機能を有しなくても、アプリケーションプログラムに依存せずに、メタ情報の追加・変更・削除に柔軟に対応できる格納検索装置、格納検索方法、格納検索プログラム、および格納検索プログラム記録媒体を提供することができる。
【００９８】
これにより、メタ情報を格納する機能を有しないオブジェクト指向構造化文書データベースを利用して、構造化文書およびメタ情報を格納・検索するコンピュータシステムのシステム開発コストを低減させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る格納・検索システムの概略構成図である。
【図２】本発明の実施の形態に係る格納・検索システムの動作を示すフローチャートである
【図３】本発明の実施の形態に係る格納・検索システムの辞書の設定動作を示すフローチャートである。
【図４】本発明の実施の形態に係る格納・検索システムの構造化文書の格納動作を示すフローチャートである。
【図５】本発明の実施の形態に係る格納・検索システムの構造化文書の検索動作を示すフローチャートである。
【図６】メタ情報パスの一例である。
【図７】構造化文書の一例である。
【図８】メタ情報の一例である。
【図９】オブジェクト指向構造化文書データベースに格納された構造化文書の一例である。
【図１０】オブジェクト指向構造化文書データベースに格納された構造化文書の一例である。
【図１１】パス検索式の一例である。
【図１２】ノード集合の一例である。
【図１３】パスの一例である。
【図１４】部分構造化文書の一例である。
【図１５】パス検索式の一例である。
【図１６】ノード集合の一例である。
【図１７】パスの一例である。
【図１８】部分構造化文書の一例である。
【図１９】構造化文書の一例である。
【図２０】オブジェクト指向構造化文書データベースに格納された構造化文書の一例である。
【図２１】取り出された部分構造化文書の一例である。
【図２２】挿入する部分構造化文書の一例である。
【図２３】挿入後のオブジェクト指向構造化文書データベースに格納された構造化文書の一例である。
【図２４】パス検索式の一例である。
【符号の説明】
１  格納・検索システム
１００  アプリケーション
２００  格納・検索装置
２０１  制御装置
２０２  設定情報辞書
２０３  格納装置
２０４  検索装置
３００  オブジェクト指向構造化データベース
【図１】
2004348593.tif 000003
【図２】
2004348593.tif 000004
【図３】
2004348593.tif 000005
【図４】
2004348593.tif 000006
【図５】
2004348593.tif 000007
【図６】
2004348593.tif 000008
【図７】
2004348593.tif 000009
【図８】
2004348593.tif 000010
【図９】
2004348593.tif 000011
【図１０】
2004348593.tif 000012
【図１１】
2004348593.tif 000013
【図１２】
2004348593.tif 000014
【図１３】
2004348593.tif 000015
【図１４】
2004348593.tif 000016
【図１５】
2004348593.tif 000017
【図１６】
2004348593.tif 000018
【図１７】
2004348593.tif 000019
【図１８】
2004348593.tif 000020
【図１９】
2004348593.tif 000021
【図２０】
2004348593.tif 000022
【図２１】
2004348593.tif 000023
【図２２】
2004348593.tif 000024
【図２３】
2004348593.tif 000025
【図２４】
2004348593.tif 000026