(57)【要約】【課題】注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索する。【解決手段】文書検索装置は、実体情報を含むＸＭＬ文書である実体文書の集合について、データと実体文書を対応づけたインデックス情報、実体情報に対する注釈情報を含むＸＭＬ文書である注釈文書の集合について、データと注釈文書とを対応づけたインデックス情報をそれぞれ保持する。文書検索装置は、検索用実体データと検索用注釈データを含む検索クエリの入力を受け付けると、まず、検索用実体データを含む実体文書を特定する。また、検索用注釈データを含む注釈文書を特定し、特定された注釈文書に対応する実体文書を特定する。そして、検索用実体データから特定された実体文書と検索用注釈データから特定された実体文書の中から、検索クエリに整合する実体文書を選択する。【選択図】図２
2008090404.tif 000002
【特許請求の範囲】
【請求項１】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための装置であって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を保持する実体インデックス保持部と、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を保持する注釈インデックス保持部と、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付ける検索クエリ入力部と、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定する第１実体文書特定部と、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定する注釈文書特定部と、
前記特定された注釈文書と対応づけられている実体文書を特定する第２実体文書特定部と、
前記第１実体文書特定部に特定された実体文書と前記第２実体文書特定部に特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択する実体文書選択部と、
を備えることを特徴とする文書検索装置。
【請求項２】
前記実体文書選択部は、前記第１実体文書特定部に特定され、かつ、前記第２実体文書特定部にも特定された実体文書を選択することを特徴とする請求項１に記載の文書検索装置。
【請求項３】
前記実体インデックス情報においては、タグの経路式とその経路式があらわれる実体文書とが対応づけられており、
前記第１実体文書特定部は、前記検索用実体データとしてタグの経路式が含まれるときには、前記実体インデックス情報を参照して、その経路式があらわれる実体文書を特定することを特徴とする請求項１または２に記載の文書検索装置。
【請求項４】
前記注釈インデックス情報においては、タグの経路式とその経路式があらわれる注釈文書とが対応づけられており、
前記注釈文書特定部は、前記検索用注釈データとしてタグの経路式が含まれるときには、前記注釈インデックス情報を参照して、その経路式があらわれる注釈文書を特定することを特徴とする請求項１から３のいずれかに記載の文書検索装置。
【請求項５】
前記実体インデックス情報においては、所定の文字列とその文字列を含む実体文書とが対応づけられており、
前記第１実体文書特定部は、前記検索用実体データとして検索対象文字列が含まれるときには、前記実体インデックス情報を参照して、前記検索対象文字列を含む実体文書を特定することを特徴とする請求項１から４のいずれかに記載の文書検索装置。
【請求項６】
前記注釈インデックス情報においては、所定の文字列とその文字列を含む注釈文書とが対応づけられており、
前記注釈文書特定部は、前記検索用注釈データとして検索対象文字列が含まれるときには、前記注釈インデックス情報を参照して、前記検索対象文字列を含む注釈文書を特定することを特徴とする請求項１から５のいずれかに記載の文書検索装置。
【請求項７】
前記注釈インデックス情報においては、更に、所定のデータとそのデータの注釈対象となる実体情報の位置とが対応づけられており、
前記注釈文書特定部は、前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定すると共に、前記検索用注釈データについて注釈対象となる実体情報の位置を特定し、
前記実体文書選択部は、前記第１実体文書特定部に特定された実体文書のうち、前記検索用注釈データについて注釈対象となる実体情報中において前記検索用実体データを含む実体文書を選択対象とすることを特徴とする請求項１から６のいずれかに記載の文書検索装置。
【請求項８】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための方法であって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を取得するステップと、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を取得するステップと、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付けるステップと、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定するステップと、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定するステップと、
前記特定された注釈文書と対応づけられている実体文書を特定するステップと、
前記検索用実体データにより特定された実体文書と前記検索用注釈データにより特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択するステップと、
を備えることを特徴とする文書検索方法。
【請求項９】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するためのコンピュータプログラムであって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を保持する機能と、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を保持する機能と、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付ける機能と、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定する機能と、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定する機能と、
前記特定された注釈文書と対応づけられている実体文書を特定する機能と、
前記検索用実体データにより特定された実体文書と前記検索用注釈データにより特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択する機能と、
をコンピュータに発揮させることを特徴とする文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書処理技術に関し、特に、構造化文書ファイルを対象とした情報検索技術、に関する。
【背景技術】
【０００２】
コンピュータの普及とネットワーク技術の進展にともない、ネットワークを介した電子情報の交換が盛んになっている。これにより、従来においては紙ベースで行われていた事務処理の多くが、ネットワークベースの処理に置き換えられつつある。デジタル化とネットワーク技術の進展は、情報取得コストを急激に低下させている。このような状況において、大量の文書ファイルの中から所望のデータを検索する技術の重要性が高まっている。
【特許文献１】特開２００６−０４８５３６号公報
【特許文献２】特開２００４−２０６６５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、紙文書の閲覧者は、文書を読むだけでなく文書中に意見や補足、解説などの注釈を書き込むことも多い。電子文書に対しても閲覧者が注釈を付与できれば、電子文書の利便性をいっそう高めることができる。上に示す特許文献２は、このような電子情報に注釈を付与するための技術の一例を示している。本発明者は、文書ファイルに付与される注釈に着目し、この注釈を利用することで文書ファイルのいっそう効率的な検索を実現できると想到した。
【０００４】
本発明は、本発明者による上記着目に基づいて完成された発明であり、その主たる目的は、注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索するための技術、を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、ＸＭＬ（eXtensible Markup Language）やＸＨＴＭＬ（eXtensible HyperText Markup Language）などの構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための文書検索装置に関する。
この装置は、実体情報を含む実体文書の集合について、所定のデータを含む実体文書を特定するための実体インデックス情報と、実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータを含む注釈文書を特定するための注釈インデックス情報を保持する。この装置は、検索クエリの入力を受け付け、検索クエリにおいて指定された検索用実体データを含む実体文書を特定する。同じく、検索クエリにおいて指定された検索用注釈データを含む注釈文書を特定し、特定された注釈文書に対応する実体文書を特定する。そして、検索用実体データから特定された実体文書と検索用注釈データから特定された実体文書の中から、検索クエリに整合する実体文書を選択する。
【０００６】
ここで、「実体情報」とは検索対象コンテンツとなるデータであり、たとえば、要素やタグ、属性などである。「実体文書」とは実体情報を格納する構造化文書ファイルである。「注釈情報」とは実体情報に対して、ユーザが付与する注釈を示すデータであり、たとえば、要素やタグ、属性などである。「注釈文書」とは注釈情報を格納する構造化文書ファイルである。実体情報と注釈情報は、それぞれ実体文書と注釈文書という別々の文書に分けて格納され、実体文書と注釈文書のそれぞれについて、データと文書の対応関係がインデックス化される。この２種類のインデックス情報により、実体情報と注釈情報の両面から、求める実体文書を検索できる。
【０００７】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、システム、プログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索できる。
【発明を実施するための最良の形態】
【０００９】
図１は、文書検索装置１００による処理の概要を説明するための模式図である。
実体文書データベース１４４は、検索対象となる実体文書を格納する。実体文書は、タグによって構造化された構造化文書ファイルである。本実施例においては、実体文書はＸＭＬファイルであるとして説明する。注釈文書データベース１４６は、注釈文書を格納する。注釈文書も構造化文書ファイルであり、同じくＸＭＬファイルであるとして説明する。
【００１０】
実体文書は、検索対象となるコンテンツを実体情報として含む。本実施例においては、「実体情報」とは実体文書に含まれる全ての情報が該当するとして説明する。注釈文書は、実体文書に対応づけられ、対応する実体文書中の実体情報に対する注釈情報を含む文書である。本実施例においては、「注釈情報」とは注釈文書に含まれる全ての情報が該当するとして説明する。実体文書と注釈文書は１対１に対応づけられる。
【００１１】
ユーザは、実体文書に対して注釈情報を付与できる。具体的には、ユーザは注釈を付したい実体文書が画面表示されているとき、注釈対象となる範囲や位置と注釈の内容を入力する。こうして入力されたデータは、その実体文書に対応づけられている注釈文書に格納される。このような仕組みは、ＸＬｉｎｋ（XML Linking Language）など、既知のＸＭＬ関連技術により実現される。実体文書と注釈文書の関係については、図３や図４に関連して詳述する。
【００１２】
文書検索装置１００の実体インデックス保持部１４０には、実体文書データベース１４４における実体文書の集合についてのインデックス情報を格納する。実体インデックス保持部１４０に格納されるインデックス情報には、実体経路インデックス情報１５０と実体文字列インデックス情報１６０の２種類があるが、それぞれについては図４と図５に関連して後に詳述する。
【００１３】
文書検索装置１００の注釈インデックス保持部１４２には、注釈文書データベース１４６における注釈文書についてのインデックス情報を格納する。注釈インデックス保持部１４２に格納されるインデックス情報には、注釈経路インデックス情報１７０と注釈文字列インデックス情報１８０の２種類があるが、それぞれについては図６と図７に関連して後に詳述する。
【００１４】
文書検索装置１００は、実体文書データベース１４４に格納されている実体文書と注釈文書データベース１４６に格納されている注釈文書の集合を対象として、上記４種類のインデックス情報に基づいて、文書検索処理を実行する。
文書検索に際し、ユーザは文書検索装置１００に検索クエリを入力する。この検索クエリには、実体文書にあらわれるべき経路式や文字列、あるいは、検索対象となる実体文書と対応づけられる注釈文書にあらわれるべき経路式や文字列が含まれる。文書検索装置１００は、入力された検索クエリと各種インデックス情報に基づいて、検索クエリに適合する実体文書を検索する。検索処理が完了すると、文書検索装置１００は、検出された文書ファイルの文書ＩＤを画面表示させる。
以下においては、まず、実体文書と注釈文書について説明し、実体インデックス保持部１４０および注釈インデックス保持部１４２に格納される各種インデックス情報について詳述した上で、文書検索装置１００の具体的な機能について説明する。
【００１５】
図２は、本実施例における文書ＩＤ＝１の実体文書とその実体文書に対応する注釈文書を示す図である。
各実体文書には文書ＩＤが付与される。文書ＩＤとは、実体文書データベース１４４において実体文書を一意に識別するためのＩＤである。同図左に示すＸＭＬファイルは文書ＩＤ＝１の実体文書であり、同図右に示すＸＭＬファイルは、この実体文書に対応づけられる注釈文書である。本実施例においては、実体文書と注釈文書は１対１に対応づけられるので、文書ＩＤは、実体文書だけでなく、実体文書に対応づけられる注釈文書を一意に識別するＩＤであるといえる。以下、文書ＩＤ＝ｎ（ｎは自然数）の実体文書のことを「実体文書（ＩＤ：ｎ）」、実体文書（ＩＤ：ｎ）に対応づけられている注釈文書のことを「注釈文書（ＩＤ：ｎ）」と表記する。
【００１６】
実体文書（ＩＤ：１）は、「市太郎」という架空の製品に関するレポートであり、＜レポート＞や＜内容＞、＜セキュリティ＞など複数のタグによって構造化されている。実体文書（ＩＤ：１）の文書位置欄１４８は、実体文書（ＩＤ：１）に含まれるさまざまな実体情報の位置を示す。たとえば、＜レポート＞タグの実体文書（ＩＤ：１）における文書位置は「１」であり、＜／セキュリティ＞タグの文書位置は「５」である。また、また、＜セキュリティ＞タグの要素データである文字列”市太郎”の文書位置は「４」である。文書位置は、ＸＭＬの書式におけるタグ、属性、コメント、タグの要素など各種データごとに割り当てられ、文書中において一意の値となる。
【００１７】
注釈文書（ＩＤ：１）は、実体文書（ＩＤ：１）と対応づけられ、実体文書（ＩＤ：１）に含まれる実体情報に対する注釈情報を含む。注釈文書（ＩＤ：１）も、＜metadata＞や＜annotation＞、＜製品名＞など多数のタグによって構造化されている。注釈文書（ＩＤ：１）の文書位置欄１４８は、注釈文書（ＩＤ：１）に含まれるさまざまな注釈情報の位置を示す。注釈文書（ＩＤ：１）に含まれる注釈情報のうち、＜製品名＞タグは、実体文書（ＩＤ：１）の文書位置「４」にある文字列”市太郎”に対して図示しないＸＬｉｎｋにより対応づけがなされている。これは、＜製品名＞の要素データが、実体情報”市太郎”を対象とした注釈情報であることを示す。同様に＜ＴＯＤＯ＞タグは、実体文書（ＩＤ：１）の文書位置「７」にある文字列”固有名詞の頻度が高い部分”に対応づけられている。
【００１８】
図３は、本実施例における文書ＩＤ＝２の実体文書とその実体文書に対応する注釈文書を示す図である。
同図左に示すＸＭＬファイルは実体文書（ＩＤ：２）であり、同図右に示すＸＭＬファイルは、この実体文書（ＩＤ：２）に対応づけられる注釈文書（ＩＤ：２）である。実体文書（ＩＤ：２）は、「花江」という架空の製品に関するレポートであり、＜レポート＞や＜製品リリース＞、＜紹介＞など複数のタグによって構造化されている。注釈文書（ＩＤ：２）も、＜metadata＞や＜annotation＞、＜製品名＞など多数のタグによって構造化されている。注釈文書（ＩＤ：２）に含まれる注釈情報のうち、＜ＴＯＤＯ＞タグは、実体文書（ＩＤ：２）の文書位置「４」にある文字列”２００７年Ｘ月”を注釈対象としている。同様に＜製品名＞タグは、実体文書（ＩＤ：２）の文書位置「７」にある文字列”花江”を注釈対象としている。
このように、１対１に対応づけられた実体文書と注釈文書は、実体文書データベース１４４と注釈文書データベース１４６にそれぞれ格納される。次に、図２に示した実体文書（ＩＤ：１）と注釈文書（ＩＤ：１）、図３に示した実体文書（ＩＤ：２）と注釈文書（ＩＤ：２）に基づきながら、実体経路インデックス情報１５０、実体文字列インデックス情報１６０、注釈経路インデックス情報１７０および注釈文字列インデックス情報１８０の各インデックス情報のデータ構造を説明する。
【００１９】
図４は、実体経路インデックス情報１５０のデータ構造図である。
実体経路インデックス情報１５０は、実体インデックス保持部１４０に格納される。実体経路式欄１５２は、実体文書データベース１４４に含まれる実体文書のいずれかにあらわれる経路式の一覧である。経路式とは、「/レポート/内容/セキュリティ」のようにタグの階層構造に基づいて構造化文書ファイル中におけるデータ位置を特定するための構文である。以下、実体文書における経路式と注釈文書における経路式を区別するときには、前者を「実体経路式」、後者を「注釈経路式」とよぶ。
【００２０】
実体範囲欄１５４は、実体経路式によって示されるデータ範囲を［文書ＩＤ、開始位置、終了位置］の形式により範囲を示す。実体文書（ＩＤ：１）の場合、＜自然言語＞タグの文書位置は「６」であり、＜／自然言語＞タグの文書位置は「８」であるから、「/レポート/内容/自然言語」の要素データの範囲は、実体文書（ＩＤ：１）における文書位置＝（６、８）である。したがって、実体範囲欄１５４に示される範囲データは、［１、６、８］となる。
【００２１】
同様に、実体経路式「/レポート/製品リリース/時期」の範囲データは［２、３、５］である。これは実体文書（ＩＤ：２）における文書位置＝（３、５）がこの実体経路式によって特定されるデータの範囲であることを示す。経路式「/レポート」の範囲データは［１、１、１０］と［２、１、１０］、［６，８、１５］の３つである。これは実体文書（ＩＤ：１）と実体文書（ＩＤ：２）、実体文書（ＩＤ：６）の３つのＸＭＬ文書に実体経路式「/レポート」が含まれることを意味する。
【００２２】
図５は、実体文字列インデックス情報１６０のデータ構造図である。
実体文字列インデックス情報１６０も、実体インデックス保持部１４０に格納される。実体文字列欄１６２は、実体文字列インデックス情報１６０において検索のキー（Key）となる文字列を示す。ここでいう文字列とは、実体文書データベース１４４に含まれる実体文書のいずれかにあらわれる文字列である。キーとなる文字列は、実体文書から形態素解析など既知の技術により抽出すればよい。文字列は、文書から任意の抽出規則により抽出されてもよいし、ユーザが選択して抽出してもよい。対象となる文字列は、属性値、コメントデータ、タグの要素データなどから抽出される。以下、実体文書における検索のキーとなる文字列と注釈文書における検索のキーとなる文字列を区別するときには、前者を「実体文字列」、後者を「注釈文字列」とよぶ。
【００２３】
実体位置インデックス欄１６４は、文字列の出現する位置を［文書ＩＤ、文書位置、オフセット］の形式で示す。このような形式の位置データのことを「位置インデックス」とよぶ。以下、実体文書における位置インデックスと注釈文書における位置インデックスを区別するときには、前者を「実体位置インデックス」、後者を「注釈位置インデックス」とよぶ。
【００２４】
文字列「情報漏洩」は実体文書（ＩＤ：１）の＜セキュリティ＞タグの要素データの一部として、文書位置「４」の７文字目からあらわれる。オフセットとは、各文書位置における先頭文字位置をゼロとしたときの該当文字列が出現する文字位置を示す。文字列「情報漏洩」は７文字目からあらわれているので、そのオフセットは「６」となる。したがって、実体文字列「情報漏洩」の実体位置インデックスは［１、４、６］である。実体文字列「情報漏洩」は、実体文書（ＩＤ：６）にも含まれている。そのため、実体文字列「情報漏洩」は、複数種類の実体位置インデックスと対応づけられている。
【００２５】
図６は、注釈経路インデックス情報１７０のデータ構造図である。
注釈経路インデックス情報１７０は、注釈インデックス保持部１４２に格納される。注釈経路式欄１７２は、注釈文書データベース１４６に含まれる注釈文書のいずれかにあらわれる注釈経路式の一覧である。
【００２６】
注釈範囲欄１７４は、注釈経路式によって示されるデータ範囲を［文書ＩＤ、開始位置、終了位置］の形式により示す。注釈文書（ＩＤ：１）の場合、＜annotation＞タグの文書位置は「７」であり、＜／annotation＞タグの文書位置は「１８」であるから、「/metadata/annotation」の要素データの範囲は、注釈文書（ＩＤ：１）において文書位置＝（７、１８）である。したがって、注釈範囲欄１７４に示される範囲データは、［１、７、１８］となる。また、注釈経路式「/metadata/annotation」は注釈文書（ＩＤ：２）の文書位置＝（７、１８）にもあらわれる。したがって、注釈経路式「/metadata/annotation」の範囲データとして、［２、７、１８］も対応する。
【００２７】
注釈経路式「/metadata/annotation/ＴＯＤＯ」の注釈位置インデックスは［１、１１、１７、６、８］や［２、８、１４、３、５］のように５つの要素を持っている。このようなタイプの注釈位置インデックスは、［文書ＩＤ、（注釈文書における）開始位置、（注釈文書における）終了位置、（実体文書における）開始位置、（実体文書における）終了位置］という形式となっている。４つ目の要素と５つ目の要素は、注釈経路式によって示される注釈情報が、注釈対象とする実体情報の範囲を示している。以下、注釈位置インデックスにおける第４要素と第５要素のことを特に「注釈要素」とよぶ。
【００２８】
図２に示した注釈文書（ＩＤ：１）の場合、注釈経路式「/metadata/annotation/ＴＯＤＯ」の注釈対象は、実体文書（ＩＤ：１）の＜自然言語＞の要素データである”固有名詞の頻度が高い部分”である。実体文書（ＩＤ：１）の＜自然言語＞タグの文書位置は（６、８）なので、注釈経路式「/metadata/annotation/ＴＯＤＯ」の注釈位置インデックスは［１、１１、１７、６、８］となる。同様にして、図３に示した注釈文書（ＩＤ：２）の場合、注釈経路式「/metadata/annotation/ＴＯＤＯ」は、実体文書（ＩＤ：２）の＜時期＞の要素データである”２００７年Ｘ月”を注釈対象としている。実体文書（ＩＤ：２）の＜時期＞タグの文書位置は（３、５）なので、注釈位置インデックスは［２、８、１４、３、５］となる。
【００２９】
注釈経路式「/metadata/annotation/ＴＯＤＯ/comment」の注釈位置インデックスは［１、１４、１６、６、８］や［２、１１、１３、３、５］となっている。注釈経路式「/metadata/annotation/ＴＯＤＯ/comment」のように、直接的に実体情報を注釈対象として指定しない注釈経路式の注釈要素は、１階層上位の注釈経路式「/metadata/annotation/ＴＯＤＯ」の注釈要素と同一となる。１階層上位の注釈経路式が注釈要素を持たないときには、更に上位の注釈経路式の注釈要素と同一となる。上位の注釈経路式がいずれも注釈要素を持たず、かつ、直接的に実体情報を注釈対象として指定しない「/metadate/property/created-date」のような注釈経路式は注釈要素を持たない。
【００３０】
図７は、注釈文字列インデックス情報１８０のデータ構造図である。
注釈文字列インデックス情報１８０も、注釈インデックス保持部１４２に格納される。注釈文字列欄１８２は注釈文字列を示す。注釈文字列は、注釈文書データベース１４６に含まれる注釈文書のいずれかにあらわれる文字列である。注釈位置インデックス欄１８４は、注釈位置インデックスを［文書ＩＤ、文書位置、オフセット］の形式で示す。
【００３１】
「具体例」という文字列は注釈文書（ＩＤ：１）の文書位置「１５」の１文字目からあらわれる。したがって、注釈文字列「具体例」のオフセットは「０」となり、注釈位置インデックスは［１、１５、０］となる。注釈文字列「具体例」は注釈文書（ＩＤ：４）にもあらわれ、その注釈位置インデックスは［４、１２、６］である。注釈文字列「imanishi」は、注釈文書（ＩＤ：１）の＜製品名＞タグや＜ＴＯＤＯ＞タグ、注釈文書（ＩＤ：２）の＜製品名＞タグの「created-user」属性の属性値としてあらわれている。このような属性値としてあらわれる文字列は、注釈文字列欄１８２においては「＠属性名＝”属性値”」の形式で登録される。実体文字列インデックス情報１６０においても同様である。注釈文字列「@created-user="imanishi"」は、注釈文書（ＩＤ：１）の文書位置「９」のオフセット「０」や、注釈文書（ＩＤ：１）の文書位置「１２」のオフセット「０」、注釈文書（ＩＤ：２）の文書位置「１６」のオフセット「０」の位置に含まれている。そのため、注釈文字列「@created-user="imanishi"」の注釈位置インデックスは、［１、９、０］、［１、１２、０］、［２、１６、０］となる。
【００３２】
図８は、文書検索装置１００の機能ブロック図である。
ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００３３】
文書検索装置１００は、ユーザインタフェース処理部１１０、データ処理部１２０、実体インデックス保持部１４０および注釈インデックス保持部１４２を含む。
ユーザインタフェース処理部１１０は、ユーザからの入力処理やユーザに対する情報表示のようなユーザインタフェース全般に関する処理を担当する。本実施例においては、ユーザインタフェース処理部１１０により文書検索装置１００のユーザインタフェースサービスが提供されるものとして説明する。別例として、ユーザはインターネットを介して文書検索装置１００を操作してもよい。この場合、図示しない通信部が、ユーザ端末からの操作指示情報を受信し、またその操作指示に基づいて実行された処理結果情報をユーザ端末に送信することになる。
【００３４】
データ処理部１２０は、ユーザインタフェース処理部１１０や実体インデックス保持部１４０、注釈インデックス保持部１４２、実体文書データベース１４４、注釈文書データベース１４６から取得されたデータを元にして各種のデータ処理を実行する。データ処理部１２０は、ユーザインタフェース処理部１１０と実体インデックス保持部１４０、注釈インデックス保持部１４２の間のインタフェースの役割も果たす。
【００３５】
ユーザインタフェース処理部１１０は、入力部１１２と表示部１１４を含む。入力部１１２は、ユーザからの入力操作を受け付ける。表示部１１４は、ユーザに対して各種情報を表示する。検索クエリは、入力部１１２を介して取得される。検索クエリには、実体経路式や実体文字列のような実体文書を対象とする検索条件を示す「検索用実体データ」と、注釈経路式や注釈文字列のような注釈文書を対象とする検索条件を示す「検索用注釈データ」の双方または一方が含まれる。
【００３６】
データ処理部１２０は、実体検索部１２２、注釈検索部１２４、実体文書選択部１３２および登録部１３４を含む。
実体検索部１２２は、検索用実体データに基づいて実体文書を検索する。実体検索部１２２は、第１実体文書特定部１２６を含む。第１実体文書特定部１２６は、検索用実体データに示される検索条件に適合する実体文書を特定する（以下、こうして特定される実体文書を「第１実体文書」とよぶ）。たとえば、検索用実体データとして、実体経路式「/レポート」が指定されているときには、第１実体文書特定部１２６は実体経路インデックス情報１５０を参照して、実体文書（ＩＤ：１）と実体文書（ＩＤ：２）、実体文書（ＩＤ：６）を第１実体文書として特定する。検索用実体データとして、実体文字列「情報漏洩」が指定されているときには、第１実体文書特定部１２６は、実体文字列インデックス情報１６０を参照して、実体文書（ＩＤ：１）と実体文書（ＩＤ：６）を特定する。検索用実体データが「実体経路式＝/レポート  かつ  実体文字列＝情報漏洩」であれば、実体経路式と実体文字列の両方について検索条件を満たす実体文書（ＩＤ：１）と実体文書（ＩＤ：６）が第１実体文書として特定される。このように、第１実体文書特定部１２６は、検索クエリのうちの検索用実体データに適合する実体文書を第１実体文書として特定する。実体検索部１２２による第１実体文書を特定する処理のことを「実体検索処理」とよぶ。
【００３７】
注釈検索部１２４は、検索用注釈データに基づいて実体文書を検索する。注釈検索部１２４は、注釈文書特定部１２８と第２実体文書特定部１３０を含む。注釈文書特定部１２８は、検索用注釈データに示される検索条件に適合する注釈文書を特定する。たとえば、検索クエリの検索用注釈データとして、注釈経路式「/metadata/annotation/製品名」が指定されているときには、注釈文書特定部１２８は注釈経路インデックス情報１７０を参照して、注釈文書（ＩＤ：１）と注釈文書（ＩＤ：２）を特定する。第２実体文書特定部１３０は、特定された注釈文書に対応づけられている実体文書を特定する（以下、こうして特定される実体文書を「第２実体文書」とよぶ）。検索用注釈データとして、注釈文字列「発売日」が指定されたときには、注釈文書特定部１２８は、注釈文字列インデックス情報１８０を参照して注釈文書（ＩＤ：２）と注釈文書（ＩＤ：４）を特定し、第２実体文書特定部１３０は実体文書（ＩＤ：２）と実体文書（ＩＤ：４）を特定する。検索用注釈データが「注釈経路式＝/metadata/annotation/製品名  かつ  注釈文字列＝発売日」であれば、注釈経路式と注釈文字列の両方について検索条件を満たす実体文書（ＩＤ：２）だけが第２実体文書として特定される。このように、注釈文書特定部１２８と第２実体文書特定部１３０は、検索クエリのうち検索用注釈データに適合する実体文書を第２実体文書として特定する。注釈検索部１２４による第２実体文書を特定する処理のことを「注釈検索処理」とよぶ。
【００３８】
実体文書選択部１３２は、第１実体文書と第２実体文書から検索クエリにおける検索条件に適合する実体文書を選択し、表示部１１４は実体文書選択部１３２により選択された実体文書を画面表示する。実体文書選択部１３２の選択処理については、図９に関連して詳述する。
【００３９】
登録部１３４は、新たな実体文書が実体文書データベース１４４に追加されるとき、その実体文書中の各種実体情報を実体経路インデックス情報１５０と実体文字列インデックス情報１６０に登録する。実体文書データベース１４４の実体文書が編集、削除されたときにも、登録部１３４は実体経路インデックス情報１５０と実体文字列インデックス情報１６０の内容を更新する。また、注釈文書の新規追加・編集・削除に際しては、登録部１３４は注釈経路インデックス情報１７０と注釈文字列インデックス情報１８０の内容を更新する。
【００４０】
図９は、検索クエリに基づく検索処理過程を示すフローチャートである。
同図において、Ｓ１２からＳ１９に示す処理が実体検索処理に相当し、Ｓ２０からＳ３１に示す処理が注釈検索処理に相当する。
まず、入力部１１２は、ユーザから検索クエリの入力を受け付ける（Ｓ１０）。検索クエリの書式は、「検索用実体データ  論理式Ａ  検索用注釈データ」、すなわち、「（実体経路式  論理式Ｂ  実体文字列）  論理式Ａ  （注釈経路式  論理式Ｃ  解釈文字列）」となる。
論理式Ｂ、Ｃは、「かつ（ＡＮＤ）」か「または（ＯＲ）」を示す。また、論理式Ａは、「ＡＮＤ」、「ＯＲ」、「包含（ＩＮＣＬ）」のいずれかを示す。
ここでは、まず、「（/レポート  ＡＮＤ  花江）ＡＮＤ（/metadata/annotation/製品名  ＡＮＤ  発売日）」という検索クエリが入力されたとして説明する。
【００４１】
第１実体文書特定部１２６は、検索クエリから検索用実体データを抽出する。上記設例の場合、「/レポート  ＡＮＤ  花江」が抽出される。検索用実体データに実体経路式が含まれていれば（Ｓ１２のＹ）、第１実体文書特定部１２６は、指定された実体経路式を含む実体文書を特定する（Ｓ１４）。上記設例の場合、実体経路式「/レポート」は、実体文書（ＩＤ：１）と実体文書（ＩＤ：２）、実体文書（ＩＤ：６）に含まれるので、これら３つの実体文書が特定される。実体経路式が含まれていなければ（Ｓ１２のＮ）、Ｓ１４の処理はスキップされる。
【００４２】
検索用実体データに実体文字列が含まれていれば（Ｓ１６のＹ）、第１実体文書特定部１２６は、指定された実体文字列を含む実体文書を特定する（Ｓ１８）。上記設例の場合、実体文字列「花江」は、実体文書（ＩＤ：２）、実体文書（ＩＤ：６）と実体文書（ＩＤ：８）に含まれるので、実体文書（ＩＤ：２）、実体文書（ＩＤ：６）、実体文書（ＩＤ：８）が特定される。実体文字列が含まれていなければ（Ｓ１６のＮ）、Ｓ１８の処理はスキップされる。
【００４３】
第１実体文書特定部１２６は、以上の処理結果に基づいて、第１実体文書を特定する（Ｓ１９）。検索用実体データが含まれていないときや、検索用実体データに適合する実体文書が存在しないときには、第１実体文書は特定されない。上記設例の場合、検索用実体データ「/レポート  ＡＮＤ  花江」に示される検索条件を満たすのは実体文書（ＩＤ：２）と実体文書（ＩＤ：６）なので、これら２つの実体文書が第１実体文書として特定される。なお、「/レポート  ＡＮＤ  花江」ではなく「/レポート  ＯＲ  花江」であれば、実体文書（ＩＤ：１）と実体文書（ＩＤ：２）、実体文書（ＩＤ：６）、実体文書（ＩＤ：８）が第１実体文書として特定されることになる。
【００４４】
注釈文書特定部１２８は、検索クエリから検索用注釈データを抽出する。上記設例の場合、「/metadata/annotation/製品名  ＡＮＤ  発売日」が抽出される。検索用注釈データに注釈経路式が含まれていれば（Ｓ２０のＹ）、注釈文書特定部１２８は、指定された注釈経路式を含む注釈文書を特定し（Ｓ２２）、第２実体文書特定部１３０は対応する実体文書を特定する（Ｓ２４）。上記設例の場合、注釈経路式「/metadata/annotation/製品名」は、注釈文書（ＩＤ：１）と注釈文書（ＩＤ：２）に含まれるので、実体文書（ＩＤ：１）と実体文書（ＩＤ：２）の両方が特定される。注釈経路式が含まれていなければ（Ｓ２０のＮ）、Ｓ２２とＳ２４の処理はスキップされる。
【００４５】
検索用注釈データに注釈文字列が含まれていれば（Ｓ２６のＹ）、注釈文書特定部１２８は、指定された注釈文字列を含む注釈文書を特定し（Ｓ２８）、第２実体文書特定部１３０は対応する実体文書を特定する（Ｓ３０）。上記設例の場合、注釈文字列「発売日」は、注釈文書（ＩＤ：２）と注釈文書（ＩＤ：４）に含まれるので、実体文書（ＩＤ：２）と実体文書（ＩＤ：４）が特定される。注釈文字列が含まれていなければ（Ｓ２６のＮ）、Ｓ２８とＳ３０の処理はスキップされる。
【００４６】
第２実体文書特定部１３０は、以上の処理結果に基づいて、第２実体文書を特定する（Ｓ３１）。検索用注釈データが含まれていないときや、検索用注釈データに適合する注釈文書が存在しないときには、第２実体文書は特定されない。上記設例の場合、検索用注釈データ「/metadata/annotation/製品名  ＡＮＤ  発売日」に示される検索条件を満たすのは実体文書（ＩＤ：２）なので、この実体文書（ＩＤ：２）だけが第２実体文書として特定される。なお、「/metadata/annotation/製品名  ＡＮＤ  発売日」ではなく「/metadata/annotation/製品名  ＯＲ  発売日」であれば、実体文書（ＩＤ：１）、実体文書（ＩＤ：２）と実体文書（ＩＤ：４）が第２実体文書として特定されることになる。
【００４７】
第１実体文書または第２実体文書の少なくともいずれかが特定されたとき、いいかえれば、検索クエリに適合する実体文書の候補が存在するときには（Ｓ３２のＹ）、実体文書選択部１３２は、それらの候補の中から検索クエリに適合する実体文書を選択する（Ｓ３４）。上記設例の場合、検索クエリは「検索用実体データ  ＡＮＤ  検索用注釈データ」なので、第１実体文書として特定された実体文書（ＩＤ：２）と実体文書（ＩＤ：６）、第２実体文書として特定された実体文書（ＩＤ：２）のうち、両方に含まれる実体文書（ＩＤ：２）が選択される。なお、「検索用実体データ  ＡＮＤ  検索用注釈データ」ではなく、「検索用実体データ  ＯＲ  検索用注釈データ」の形式のときには、実体文書（ＩＤ：２）と実体文書（ＩＤ：６）の両方が選択される。
実体文書選択部１３２は、第１実体文書が特定され、第２実体文書が特定されていないときには、第１実体文書として特定された実体文書をそのまま選択する。第２実体文書が特定され、第１実体文書が特定されていないときには、第２実体文書として特定された実体文書がそのまま選択される。第１実体文書も第２実体文書も特定されていないときには（Ｓ３２のＮ）、Ｓ３４の処理はスキップされる。最後に、表示部１１４は、選択された実体文書の文書ＩＤや名前を画面表示させる（Ｓ３６）。また、実体文書の選択がなされなかったとき、すなわち、検索クエリに適合する実体文書が存在しないときには、表示部１１４はその旨を画面にてユーザに通知する。
【００４８】
以上においては、実体検索処理と注釈検索処理は別個に実行され、実体文書選択部１３２が各処理の結果に応じて、最終的に実体文書を選択している。
このような処理方法に限らず、文書検索装置１００は、注釈範囲に基づく実体文書検索を実行することもできる。たとえば、「注釈文書の＜製品名＞タグにより注釈されている実体情報中に、”花江”という文字列を含む実体文書を検索したい」という検索ニーズを想定する。この場合、「＜製品名＞タグにより注釈されている実体情報」の中に実体文字列”花江”が存在することが必要であり、実体文字列”花江”に基づく実体検索処理は＜製品名＞タグに基づく注釈検索処理の処理結果に依存することになる。
検索用注釈データによる検索条件を前提として、検索用実体データによる検索を行うよう指示する検索クエリの書式は、「検索用実体データ  ＩＮＣＬ  検索用注釈データ」として記述される。上記例の場合、検索クエリは、「（”花江”）  ＩＮＣＬ  （//製品名）」となる。「//製品名」は、経路式の末端に＜製品名＞タグがあらわれる経路式のすべてを示す。「//」は、ＸＰａｔｈ（XML Path Language）における省略記号と同意である。この検索クエリを例として説明する。
【００４９】
まず、第１実体文書特定部１２６は、実体文字列「花江」を対象として実体検索処理を実行し、第１実体文書として実体文書（ＩＤ：２）、実体文書（ＩＤ：６）、実体文書（ＩＤ：８）を特定する。
次に、注釈文書特定部１２８は、注釈経路式に「製品名」を含む注釈文書として、注釈文書（ＩＤ：１）と注釈文書（ＩＤ：２）を特定し、第２実体文書特定部１３０は、第２実体文書として実体文書（ＩＤ：１）と実体文書（ＩＤ：２）を特定する。
【００５０】
実体文書選択部１３２は、注釈文書（ＩＤ：１）と注釈文書（ＩＤ：２）を参照して、＜製品名＞タグの注釈範囲を特定する。注釈経路インデックス情報１７０によると、注釈文書（ＩＤ：１）の「/metadata/annotation/製品名」は実体文書（ＩＤ：１）の文書位置＝（３、５）を注釈対象としている。実体文字列インデックス情報１６０によると、実体文字列「花江」は実体文書（ＩＤ：１）には出現していない。このため、実体文書（ＩＤ：１）は候補から外れる。
【００５１】
一方、注釈文書（ＩＤ：２）の「/metadata/annotation/製品名」は実体文書（ＩＤ：２）の文書位置＝（６、８）を注釈対象としている。実体文字列インデックス情報１６０によると、実体文字列「花江」は実体文書（ＩＤ：２）において文書位置＝７に出現している。すなわち、実体文書（ＩＤ：２）における実体文字列「花江」は、注釈文書（ＩＤ：２）の「/metadata/annotation/製品名」の注釈要素によって指定される範囲内にある。
以上により、実体文書選択部１３２は、上記検索クエリに適合する実体文書として、実体文書（ＩＤ：２）を選択する。
【００５２】
このほかにも、たとえば、「実体文書の＜時期＞タグを対象として注釈している注釈情報中に”発売日”という文字列が含まれるような実体文書を検索したい」というニーズや「実体経路式「/レポート/内容/セキュリティ」を対象として注釈経路式「/metadata/anotation」により注釈している実体文書を検索したい」というニーズも想定可能である。このような場合においても、注釈検索処理および実体検索処理の一方の処理結果に依存して他方の処理を実行することにより、求める実体文書を特定できる。
【００５３】
以上、本実施例に示した文書検索装置１００によると、検索クエリに基づくデータ検索を実体情報と注釈情報の両面から実行できる。実体文書と注釈文書が別々の文書ファイルとして対応づけられているため、注釈情報の付与により実体文書の内容を変更する必要がない。また、複数のユーザから入力された注釈情報を注釈文書にて一元的に管理できる。このため、実体情報の同一性を担保しつつ、複数のユーザが注釈情報を自由に設定しやすい設計となっている。
メモや注意書、備考などの付加的な情報が、文書自体の内容や閲覧状況を端的に示すことはよくあることである。本実施例における文書検索装置１００は、直接的に検索対象となる実体情報だけでなく、実体情報に付随する注釈情報からも求める文書を検索できる。そのため、ユーザにとって、検索利便性が向上するというメリットがある。
【００５４】
実体経路インデックス情報１５０と実体文字列インデックス情報１６０には、実体経路式や実体文字列が登録される。そのため、実体検索部１２２は、実体文書データベース１４４にアクセスして、実体文書の内容や経路情報をメモリに展開しなくても、実体経路インデックス情報１５０と実体文字列インデックス情報１６０により第１実体文書を特定できる。同様に、注釈経路インデックス情報１７０と注釈文字列インデックス情報１８０には、注釈経路式や注釈文字列が登録される。そのため、注釈検索部１２４も、注釈文書データベース１４６にアクセスして、注釈文書の内容や経路情報をメモリに展開しなくても、各インデックス情報を参照することにより注釈文書、ひいては、第２実体文書を特定できる。このように、本実施例に示した文書検索装置１００は、各インデックス情報を参照することにより、求めるデータの位置を高速かつ軽い計算機負荷にて検索できる。
【００５５】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５６】
本実施例ではＸＭＬ文書を対象として説明したが、文書検索装置１００は、ＸＨＴＭＬやＨＴＭＬ、ＳＧＭＬなど、タグの階層構造に基づく経路式によってデータの位置が特定されるタイプの文書ファイルであれば、いずれを対象としても応用可能である。
【００５７】
請求項に記載の「実体インデックス情報」は、本実施例においては実体経路インデックス情報１５０および実体文字列インデックス情報１６０の双方または一方に相当する。請求項に記載の「注釈インデックス情報」は、本実施例においては注釈経路インデックス情報１７０および注釈文字列インデックス情報１８０の双方または一方に相当する。請求項に記載の「所定の選択条件」は、本実施例においては検索クエリの「論理式Ａ」が相当する。
これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【図面の簡単な説明】
【００５８】
【図１】文書検索装置による処理の概要を説明するための模式図である。
【図２】本実施例における文書ＩＤ＝１の実体文書とその実体文書に対応する注釈文書を示す図である。
【図３】本実施例における文書ＩＤ＝２の実体文書とその実体文書に対応する注釈文書を示す図である。
【図４】実体経路インデックス情報のデータ構造図である。
【図５】実体文字列インデックス情報のデータ構造図である。
【図６】注釈経路インデックス情報のデータ構造図である。
【図７】注釈文字列インデックス情報のデータ構造図である。
【図８】文書検索装置の機能ブロック図である。
【図９】検索クエリに基づく検索処理過程を示すフローチャートである。
【符号の説明】
【００５９】
１００  文書検索装置、  １１０  ユーザインタフェース処理部、  １１２  入力部、  １１４  表示部、  １２０  データ処理部、  １２２  実体検索部、  １２４  注釈検索部、  １２６  第１実体文書特定部、  １２８  注釈文書特定部、  １３０  第２実体文書特定部、  １３２  実体文書選択部、  １３４  登録部、  １４０  実体インデックス保持部、  １４２  注釈インデックス保持部、  １４４  実体文書データベース、  １４６  注釈文書データベース、  １４８  文書位置欄、  １５０  実体経路インデックス情報、  １５２  実体経路式欄、  １５４  実体範囲欄、  １６０  実体文字列インデックス情報、  １６２  実体文字列欄、  １６４  実体位置インデックス欄、  １７０  注釈経路インデックス情報、  １７２  注釈経路式欄、  １７４  注釈範囲欄、  １８０  注釈文字列インデックス情報、  １８２  注釈文字列欄、  １８４  注釈位置インデックス欄。
【図１】
2008090404.tif 000003
【図２】
2008090404.tif 000004
【図３】
2008090404.tif 000005
【図４】
2008090404.tif 000006
【図５】
2008090404.tif 000007
【図６】
2008090404.tif 000008
【図７】
2008090404.tif 000009
【図８】
2008090404.tif 000010
【図９】
2008090404.tif 000011