説明

文書検索装置、文書検索方法および文書検索プログラム

【課題】注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索する。
【解決手段】文書検索装置は、実体情報を含むXML文書である実体文書の集合について、データと実体文書を対応づけたインデックス情報、実体情報に対する注釈情報を含むXML文書である注釈文書の集合について、データと注釈文書とを対応づけたインデックス情報をそれぞれ保持する。文書検索装置は、検索用実体データと検索用注釈データを含む検索クエリの入力を受け付けると、まず、検索用実体データを含む実体文書を特定する。また、検索用注釈データを含む注釈文書を特定し、特定された注釈文書に対応する実体文書を特定する。そして、検索用実体データから特定された実体文書と検索用注釈データから特定された実体文書の中から、検索クエリに整合する実体文書を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書処理技術に関し、特に、構造化文書ファイルを対象とした情報検索技術、に関する。
【背景技術】
【0002】
コンピュータの普及とネットワーク技術の進展にともない、ネットワークを介した電子情報の交換が盛んになっている。これにより、従来においては紙ベースで行われていた事務処理の多くが、ネットワークベースの処理に置き換えられつつある。デジタル化とネットワーク技術の進展は、情報取得コストを急激に低下させている。このような状況において、大量の文書ファイルの中から所望のデータを検索する技術の重要性が高まっている。
【特許文献1】特開2006−048536号公報
【特許文献2】特開2004−206658号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、紙文書の閲覧者は、文書を読むだけでなく文書中に意見や補足、解説などの注釈を書き込むことも多い。電子文書に対しても閲覧者が注釈を付与できれば、電子文書の利便性をいっそう高めることができる。上に示す特許文献2は、このような電子情報に注釈を付与するための技術の一例を示している。本発明者は、文書ファイルに付与される注釈に着目し、この注釈を利用することで文書ファイルのいっそう効率的な検索を実現できると想到した。
【0004】
本発明は、本発明者による上記着目に基づいて完成された発明であり、その主たる目的は、注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索するための技術、を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、XML(eXtensible Markup Language)やXHTML(eXtensible HyperText Markup Language)などの構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための文書検索装置に関する。
この装置は、実体情報を含む実体文書の集合について、所定のデータを含む実体文書を特定するための実体インデックス情報と、実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータを含む注釈文書を特定するための注釈インデックス情報を保持する。この装置は、検索クエリの入力を受け付け、検索クエリにおいて指定された検索用実体データを含む実体文書を特定する。同じく、検索クエリにおいて指定された検索用注釈データを含む注釈文書を特定し、特定された注釈文書に対応する実体文書を特定する。そして、検索用実体データから特定された実体文書と検索用注釈データから特定された実体文書の中から、検索クエリに整合する実体文書を選択する。
【0006】
ここで、「実体情報」とは検索対象コンテンツとなるデータであり、たとえば、要素やタグ、属性などである。「実体文書」とは実体情報を格納する構造化文書ファイルである。「注釈情報」とは実体情報に対して、ユーザが付与する注釈を示すデータであり、たとえば、要素やタグ、属性などである。「注釈文書」とは注釈情報を格納する構造化文書ファイルである。実体情報と注釈情報は、それぞれ実体文書と注釈文書という別々の文書に分けて格納され、実体文書と注釈文書のそれぞれについて、データと文書の対応関係がインデックス化される。この2種類のインデックス情報により、実体情報と注釈情報の両面から、求める実体文書を検索できる。
【0007】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、システム、プログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0008】
本発明によれば、注釈情報を利用して、複数の文書ファイルの中から所望の文書ファイルを効率的に検索できる。
【発明を実施するための最良の形態】
【0009】
図1は、文書検索装置100による処理の概要を説明するための模式図である。
実体文書データベース144は、検索対象となる実体文書を格納する。実体文書は、タグによって構造化された構造化文書ファイルである。本実施例においては、実体文書はXMLファイルであるとして説明する。注釈文書データベース146は、注釈文書を格納する。注釈文書も構造化文書ファイルであり、同じくXMLファイルであるとして説明する。
【0010】
実体文書は、検索対象となるコンテンツを実体情報として含む。本実施例においては、「実体情報」とは実体文書に含まれる全ての情報が該当するとして説明する。注釈文書は、実体文書に対応づけられ、対応する実体文書中の実体情報に対する注釈情報を含む文書である。本実施例においては、「注釈情報」とは注釈文書に含まれる全ての情報が該当するとして説明する。実体文書と注釈文書は1対1に対応づけられる。
【0011】
ユーザは、実体文書に対して注釈情報を付与できる。具体的には、ユーザは注釈を付したい実体文書が画面表示されているとき、注釈対象となる範囲や位置と注釈の内容を入力する。こうして入力されたデータは、その実体文書に対応づけられている注釈文書に格納される。このような仕組みは、XLink(XML Linking Language)など、既知のXML関連技術により実現される。実体文書と注釈文書の関係については、図3や図4に関連して詳述する。
【0012】
文書検索装置100の実体インデックス保持部140には、実体文書データベース144における実体文書の集合についてのインデックス情報を格納する。実体インデックス保持部140に格納されるインデックス情報には、実体経路インデックス情報150と実体文字列インデックス情報160の2種類があるが、それぞれについては図4と図5に関連して後に詳述する。
【0013】
文書検索装置100の注釈インデックス保持部142には、注釈文書データベース146における注釈文書についてのインデックス情報を格納する。注釈インデックス保持部142に格納されるインデックス情報には、注釈経路インデックス情報170と注釈文字列インデックス情報180の2種類があるが、それぞれについては図6と図7に関連して後に詳述する。
【0014】
文書検索装置100は、実体文書データベース144に格納されている実体文書と注釈文書データベース146に格納されている注釈文書の集合を対象として、上記4種類のインデックス情報に基づいて、文書検索処理を実行する。
文書検索に際し、ユーザは文書検索装置100に検索クエリを入力する。この検索クエリには、実体文書にあらわれるべき経路式や文字列、あるいは、検索対象となる実体文書と対応づけられる注釈文書にあらわれるべき経路式や文字列が含まれる。文書検索装置100は、入力された検索クエリと各種インデックス情報に基づいて、検索クエリに適合する実体文書を検索する。検索処理が完了すると、文書検索装置100は、検出された文書ファイルの文書IDを画面表示させる。
以下においては、まず、実体文書と注釈文書について説明し、実体インデックス保持部140および注釈インデックス保持部142に格納される各種インデックス情報について詳述した上で、文書検索装置100の具体的な機能について説明する。
【0015】
図2は、本実施例における文書ID=1の実体文書とその実体文書に対応する注釈文書を示す図である。
各実体文書には文書IDが付与される。文書IDとは、実体文書データベース144において実体文書を一意に識別するためのIDである。同図左に示すXMLファイルは文書ID=1の実体文書であり、同図右に示すXMLファイルは、この実体文書に対応づけられる注釈文書である。本実施例においては、実体文書と注釈文書は1対1に対応づけられるので、文書IDは、実体文書だけでなく、実体文書に対応づけられる注釈文書を一意に識別するIDであるといえる。以下、文書ID=n(nは自然数)の実体文書のことを「実体文書(ID:n)」、実体文書(ID:n)に対応づけられている注釈文書のことを「注釈文書(ID:n)」と表記する。
【0016】
実体文書(ID:1)は、「市太郎」という架空の製品に関するレポートであり、<レポート>や<内容>、<セキュリティ>など複数のタグによって構造化されている。実体文書(ID:1)の文書位置欄148は、実体文書(ID:1)に含まれるさまざまな実体情報の位置を示す。たとえば、<レポート>タグの実体文書(ID:1)における文書位置は「1」であり、</セキュリティ>タグの文書位置は「5」である。また、また、<セキュリティ>タグの要素データである文字列”市太郎”の文書位置は「4」である。文書位置は、XMLの書式におけるタグ、属性、コメント、タグの要素など各種データごとに割り当てられ、文書中において一意の値となる。
【0017】
注釈文書(ID:1)は、実体文書(ID:1)と対応づけられ、実体文書(ID:1)に含まれる実体情報に対する注釈情報を含む。注釈文書(ID:1)も、<metadata>や<annotation>、<製品名>など多数のタグによって構造化されている。注釈文書(ID:1)の文書位置欄148は、注釈文書(ID:1)に含まれるさまざまな注釈情報の位置を示す。注釈文書(ID:1)に含まれる注釈情報のうち、<製品名>タグは、実体文書(ID:1)の文書位置「4」にある文字列”市太郎”に対して図示しないXLinkにより対応づけがなされている。これは、<製品名>の要素データが、実体情報”市太郎”を対象とした注釈情報であることを示す。同様に<TODO>タグは、実体文書(ID:1)の文書位置「7」にある文字列”固有名詞の頻度が高い部分”に対応づけられている。
【0018】
図3は、本実施例における文書ID=2の実体文書とその実体文書に対応する注釈文書を示す図である。
同図左に示すXMLファイルは実体文書(ID:2)であり、同図右に示すXMLファイルは、この実体文書(ID:2)に対応づけられる注釈文書(ID:2)である。実体文書(ID:2)は、「花江」という架空の製品に関するレポートであり、<レポート>や<製品リリース>、<紹介>など複数のタグによって構造化されている。注釈文書(ID:2)も、<metadata>や<annotation>、<製品名>など多数のタグによって構造化されている。注釈文書(ID:2)に含まれる注釈情報のうち、<TODO>タグは、実体文書(ID:2)の文書位置「4」にある文字列”2007年X月”を注釈対象としている。同様に<製品名>タグは、実体文書(ID:2)の文書位置「7」にある文字列”花江”を注釈対象としている。
このように、1対1に対応づけられた実体文書と注釈文書は、実体文書データベース144と注釈文書データベース146にそれぞれ格納される。次に、図2に示した実体文書(ID:1)と注釈文書(ID:1)、図3に示した実体文書(ID:2)と注釈文書(ID:2)に基づきながら、実体経路インデックス情報150、実体文字列インデックス情報160、注釈経路インデックス情報170および注釈文字列インデックス情報180の各インデックス情報のデータ構造を説明する。
【0019】
図4は、実体経路インデックス情報150のデータ構造図である。
実体経路インデックス情報150は、実体インデックス保持部140に格納される。実体経路式欄152は、実体文書データベース144に含まれる実体文書のいずれかにあらわれる経路式の一覧である。経路式とは、「/レポート/内容/セキュリティ」のようにタグの階層構造に基づいて構造化文書ファイル中におけるデータ位置を特定するための構文である。以下、実体文書における経路式と注釈文書における経路式を区別するときには、前者を「実体経路式」、後者を「注釈経路式」とよぶ。
【0020】
実体範囲欄154は、実体経路式によって示されるデータ範囲を[文書ID、開始位置、終了位置]の形式により範囲を示す。実体文書(ID:1)の場合、<自然言語>タグの文書位置は「6」であり、</自然言語>タグの文書位置は「8」であるから、「/レポート/内容/自然言語」の要素データの範囲は、実体文書(ID:1)における文書位置=(6、8)である。したがって、実体範囲欄154に示される範囲データは、[1、6、8]となる。
【0021】
同様に、実体経路式「/レポート/製品リリース/時期」の範囲データは[2、3、5]である。これは実体文書(ID:2)における文書位置=(3、5)がこの実体経路式によって特定されるデータの範囲であることを示す。経路式「/レポート」の範囲データは[1、1、10]と[2、1、10]、[6,8、15]の3つである。これは実体文書(ID:1)と実体文書(ID:2)、実体文書(ID:6)の3つのXML文書に実体経路式「/レポート」が含まれることを意味する。
【0022】
図5は、実体文字列インデックス情報160のデータ構造図である。
実体文字列インデックス情報160も、実体インデックス保持部140に格納される。実体文字列欄162は、実体文字列インデックス情報160において検索のキー(Key)となる文字列を示す。ここでいう文字列とは、実体文書データベース144に含まれる実体文書のいずれかにあらわれる文字列である。キーとなる文字列は、実体文書から形態素解析など既知の技術により抽出すればよい。文字列は、文書から任意の抽出規則により抽出されてもよいし、ユーザが選択して抽出してもよい。対象となる文字列は、属性値、コメントデータ、タグの要素データなどから抽出される。以下、実体文書における検索のキーとなる文字列と注釈文書における検索のキーとなる文字列を区別するときには、前者を「実体文字列」、後者を「注釈文字列」とよぶ。
【0023】
実体位置インデックス欄164は、文字列の出現する位置を[文書ID、文書位置、オフセット]の形式で示す。このような形式の位置データのことを「位置インデックス」とよぶ。以下、実体文書における位置インデックスと注釈文書における位置インデックスを区別するときには、前者を「実体位置インデックス」、後者を「注釈位置インデックス」とよぶ。
【0024】
文字列「情報漏洩」は実体文書(ID:1)の<セキュリティ>タグの要素データの一部として、文書位置「4」の7文字目からあらわれる。オフセットとは、各文書位置における先頭文字位置をゼロとしたときの該当文字列が出現する文字位置を示す。文字列「情報漏洩」は7文字目からあらわれているので、そのオフセットは「6」となる。したがって、実体文字列「情報漏洩」の実体位置インデックスは[1、4、6]である。実体文字列「情報漏洩」は、実体文書(ID:6)にも含まれている。そのため、実体文字列「情報漏洩」は、複数種類の実体位置インデックスと対応づけられている。
【0025】
図6は、注釈経路インデックス情報170のデータ構造図である。
注釈経路インデックス情報170は、注釈インデックス保持部142に格納される。注釈経路式欄172は、注釈文書データベース146に含まれる注釈文書のいずれかにあらわれる注釈経路式の一覧である。
【0026】
注釈範囲欄174は、注釈経路式によって示されるデータ範囲を[文書ID、開始位置、終了位置]の形式により示す。注釈文書(ID:1)の場合、<annotation>タグの文書位置は「7」であり、</annotation>タグの文書位置は「18」であるから、「/metadata/annotation」の要素データの範囲は、注釈文書(ID:1)において文書位置=(7、18)である。したがって、注釈範囲欄174に示される範囲データは、[1、7、18]となる。また、注釈経路式「/metadata/annotation」は注釈文書(ID:2)の文書位置=(7、18)にもあらわれる。したがって、注釈経路式「/metadata/annotation」の範囲データとして、[2、7、18]も対応する。
【0027】
注釈経路式「/metadata/annotation/TODO」の注釈位置インデックスは[1、11、17、6、8]や[2、8、14、3、5]のように5つの要素を持っている。このようなタイプの注釈位置インデックスは、[文書ID、(注釈文書における)開始位置、(注釈文書における)終了位置、(実体文書における)開始位置、(実体文書における)終了位置]という形式となっている。4つ目の要素と5つ目の要素は、注釈経路式によって示される注釈情報が、注釈対象とする実体情報の範囲を示している。以下、注釈位置インデックスにおける第4要素と第5要素のことを特に「注釈要素」とよぶ。
【0028】
図2に示した注釈文書(ID:1)の場合、注釈経路式「/metadata/annotation/TODO」の注釈対象は、実体文書(ID:1)の<自然言語>の要素データである”固有名詞の頻度が高い部分”である。実体文書(ID:1)の<自然言語>タグの文書位置は(6、8)なので、注釈経路式「/metadata/annotation/TODO」の注釈位置インデックスは[1、11、17、6、8]となる。同様にして、図3に示した注釈文書(ID:2)の場合、注釈経路式「/metadata/annotation/TODO」は、実体文書(ID:2)の<時期>の要素データである”2007年X月”を注釈対象としている。実体文書(ID:2)の<時期>タグの文書位置は(3、5)なので、注釈位置インデックスは[2、8、14、3、5]となる。
【0029】
注釈経路式「/metadata/annotation/TODO/comment」の注釈位置インデックスは[1、14、16、6、8]や[2、11、13、3、5]となっている。注釈経路式「/metadata/annotation/TODO/comment」のように、直接的に実体情報を注釈対象として指定しない注釈経路式の注釈要素は、1階層上位の注釈経路式「/metadata/annotation/TODO」の注釈要素と同一となる。1階層上位の注釈経路式が注釈要素を持たないときには、更に上位の注釈経路式の注釈要素と同一となる。上位の注釈経路式がいずれも注釈要素を持たず、かつ、直接的に実体情報を注釈対象として指定しない「/metadate/property/created-date」のような注釈経路式は注釈要素を持たない。
【0030】
図7は、注釈文字列インデックス情報180のデータ構造図である。
注釈文字列インデックス情報180も、注釈インデックス保持部142に格納される。注釈文字列欄182は注釈文字列を示す。注釈文字列は、注釈文書データベース146に含まれる注釈文書のいずれかにあらわれる文字列である。注釈位置インデックス欄184は、注釈位置インデックスを[文書ID、文書位置、オフセット]の形式で示す。
【0031】
「具体例」という文字列は注釈文書(ID:1)の文書位置「15」の1文字目からあらわれる。したがって、注釈文字列「具体例」のオフセットは「0」となり、注釈位置インデックスは[1、15、0]となる。注釈文字列「具体例」は注釈文書(ID:4)にもあらわれ、その注釈位置インデックスは[4、12、6]である。注釈文字列「imanishi」は、注釈文書(ID:1)の<製品名>タグや<TODO>タグ、注釈文書(ID:2)の<製品名>タグの「created-user」属性の属性値としてあらわれている。このような属性値としてあらわれる文字列は、注釈文字列欄182においては「@属性名=”属性値”」の形式で登録される。実体文字列インデックス情報160においても同様である。注釈文字列「@created-user="imanishi"」は、注釈文書(ID:1)の文書位置「9」のオフセット「0」や、注釈文書(ID:1)の文書位置「12」のオフセット「0」、注釈文書(ID:2)の文書位置「16」のオフセット「0」の位置に含まれている。そのため、注釈文字列「@created-user="imanishi"」の注釈位置インデックスは、[1、9、0]、[1、12、0]、[2、16、0]となる。
【0032】
図8は、文書検索装置100の機能ブロック図である。
ここに示す各ブロックは、ハードウェア的には、コンピュータのCPUをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組み合わせによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【0033】
文書検索装置100は、ユーザインタフェース処理部110、データ処理部120、実体インデックス保持部140および注釈インデックス保持部142を含む。
ユーザインタフェース処理部110は、ユーザからの入力処理やユーザに対する情報表示のようなユーザインタフェース全般に関する処理を担当する。本実施例においては、ユーザインタフェース処理部110により文書検索装置100のユーザインタフェースサービスが提供されるものとして説明する。別例として、ユーザはインターネットを介して文書検索装置100を操作してもよい。この場合、図示しない通信部が、ユーザ端末からの操作指示情報を受信し、またその操作指示に基づいて実行された処理結果情報をユーザ端末に送信することになる。
【0034】
データ処理部120は、ユーザインタフェース処理部110や実体インデックス保持部140、注釈インデックス保持部142、実体文書データベース144、注釈文書データベース146から取得されたデータを元にして各種のデータ処理を実行する。データ処理部120は、ユーザインタフェース処理部110と実体インデックス保持部140、注釈インデックス保持部142の間のインタフェースの役割も果たす。
【0035】
ユーザインタフェース処理部110は、入力部112と表示部114を含む。入力部112は、ユーザからの入力操作を受け付ける。表示部114は、ユーザに対して各種情報を表示する。検索クエリは、入力部112を介して取得される。検索クエリには、実体経路式や実体文字列のような実体文書を対象とする検索条件を示す「検索用実体データ」と、注釈経路式や注釈文字列のような注釈文書を対象とする検索条件を示す「検索用注釈データ」の双方または一方が含まれる。
【0036】
データ処理部120は、実体検索部122、注釈検索部124、実体文書選択部132および登録部134を含む。
実体検索部122は、検索用実体データに基づいて実体文書を検索する。実体検索部122は、第1実体文書特定部126を含む。第1実体文書特定部126は、検索用実体データに示される検索条件に適合する実体文書を特定する(以下、こうして特定される実体文書を「第1実体文書」とよぶ)。たとえば、検索用実体データとして、実体経路式「/レポート」が指定されているときには、第1実体文書特定部126は実体経路インデックス情報150を参照して、実体文書(ID:1)と実体文書(ID:2)、実体文書(ID:6)を第1実体文書として特定する。検索用実体データとして、実体文字列「情報漏洩」が指定されているときには、第1実体文書特定部126は、実体文字列インデックス情報160を参照して、実体文書(ID:1)と実体文書(ID:6)を特定する。検索用実体データが「実体経路式=/レポート かつ 実体文字列=情報漏洩」であれば、実体経路式と実体文字列の両方について検索条件を満たす実体文書(ID:1)と実体文書(ID:6)が第1実体文書として特定される。このように、第1実体文書特定部126は、検索クエリのうちの検索用実体データに適合する実体文書を第1実体文書として特定する。実体検索部122による第1実体文書を特定する処理のことを「実体検索処理」とよぶ。
【0037】
注釈検索部124は、検索用注釈データに基づいて実体文書を検索する。注釈検索部124は、注釈文書特定部128と第2実体文書特定部130を含む。注釈文書特定部128は、検索用注釈データに示される検索条件に適合する注釈文書を特定する。たとえば、検索クエリの検索用注釈データとして、注釈経路式「/metadata/annotation/製品名」が指定されているときには、注釈文書特定部128は注釈経路インデックス情報170を参照して、注釈文書(ID:1)と注釈文書(ID:2)を特定する。第2実体文書特定部130は、特定された注釈文書に対応づけられている実体文書を特定する(以下、こうして特定される実体文書を「第2実体文書」とよぶ)。検索用注釈データとして、注釈文字列「発売日」が指定されたときには、注釈文書特定部128は、注釈文字列インデックス情報180を参照して注釈文書(ID:2)と注釈文書(ID:4)を特定し、第2実体文書特定部130は実体文書(ID:2)と実体文書(ID:4)を特定する。検索用注釈データが「注釈経路式=/metadata/annotation/製品名 かつ 注釈文字列=発売日」であれば、注釈経路式と注釈文字列の両方について検索条件を満たす実体文書(ID:2)だけが第2実体文書として特定される。このように、注釈文書特定部128と第2実体文書特定部130は、検索クエリのうち検索用注釈データに適合する実体文書を第2実体文書として特定する。注釈検索部124による第2実体文書を特定する処理のことを「注釈検索処理」とよぶ。
【0038】
実体文書選択部132は、第1実体文書と第2実体文書から検索クエリにおける検索条件に適合する実体文書を選択し、表示部114は実体文書選択部132により選択された実体文書を画面表示する。実体文書選択部132の選択処理については、図9に関連して詳述する。
【0039】
登録部134は、新たな実体文書が実体文書データベース144に追加されるとき、その実体文書中の各種実体情報を実体経路インデックス情報150と実体文字列インデックス情報160に登録する。実体文書データベース144の実体文書が編集、削除されたときにも、登録部134は実体経路インデックス情報150と実体文字列インデックス情報160の内容を更新する。また、注釈文書の新規追加・編集・削除に際しては、登録部134は注釈経路インデックス情報170と注釈文字列インデックス情報180の内容を更新する。
【0040】
図9は、検索クエリに基づく検索処理過程を示すフローチャートである。
同図において、S12からS19に示す処理が実体検索処理に相当し、S20からS31に示す処理が注釈検索処理に相当する。
まず、入力部112は、ユーザから検索クエリの入力を受け付ける(S10)。検索クエリの書式は、「検索用実体データ 論理式A 検索用注釈データ」、すなわち、「(実体経路式 論理式B 実体文字列) 論理式A (注釈経路式 論理式C 解釈文字列)」となる。
論理式B、Cは、「かつ(AND)」か「または(OR)」を示す。また、論理式Aは、「AND」、「OR」、「包含(INCL)」のいずれかを示す。
ここでは、まず、「(/レポート AND 花江)AND(/metadata/annotation/製品名 AND 発売日)」という検索クエリが入力されたとして説明する。
【0041】
第1実体文書特定部126は、検索クエリから検索用実体データを抽出する。上記設例の場合、「/レポート AND 花江」が抽出される。検索用実体データに実体経路式が含まれていれば(S12のY)、第1実体文書特定部126は、指定された実体経路式を含む実体文書を特定する(S14)。上記設例の場合、実体経路式「/レポート」は、実体文書(ID:1)と実体文書(ID:2)、実体文書(ID:6)に含まれるので、これら3つの実体文書が特定される。実体経路式が含まれていなければ(S12のN)、S14の処理はスキップされる。
【0042】
検索用実体データに実体文字列が含まれていれば(S16のY)、第1実体文書特定部126は、指定された実体文字列を含む実体文書を特定する(S18)。上記設例の場合、実体文字列「花江」は、実体文書(ID:2)、実体文書(ID:6)と実体文書(ID:8)に含まれるので、実体文書(ID:2)、実体文書(ID:6)、実体文書(ID:8)が特定される。実体文字列が含まれていなければ(S16のN)、S18の処理はスキップされる。
【0043】
第1実体文書特定部126は、以上の処理結果に基づいて、第1実体文書を特定する(S19)。検索用実体データが含まれていないときや、検索用実体データに適合する実体文書が存在しないときには、第1実体文書は特定されない。上記設例の場合、検索用実体データ「/レポート AND 花江」に示される検索条件を満たすのは実体文書(ID:2)と実体文書(ID:6)なので、これら2つの実体文書が第1実体文書として特定される。なお、「/レポート AND 花江」ではなく「/レポート OR 花江」であれば、実体文書(ID:1)と実体文書(ID:2)、実体文書(ID:6)、実体文書(ID:8)が第1実体文書として特定されることになる。
【0044】
注釈文書特定部128は、検索クエリから検索用注釈データを抽出する。上記設例の場合、「/metadata/annotation/製品名 AND 発売日」が抽出される。検索用注釈データに注釈経路式が含まれていれば(S20のY)、注釈文書特定部128は、指定された注釈経路式を含む注釈文書を特定し(S22)、第2実体文書特定部130は対応する実体文書を特定する(S24)。上記設例の場合、注釈経路式「/metadata/annotation/製品名」は、注釈文書(ID:1)と注釈文書(ID:2)に含まれるので、実体文書(ID:1)と実体文書(ID:2)の両方が特定される。注釈経路式が含まれていなければ(S20のN)、S22とS24の処理はスキップされる。
【0045】
検索用注釈データに注釈文字列が含まれていれば(S26のY)、注釈文書特定部128は、指定された注釈文字列を含む注釈文書を特定し(S28)、第2実体文書特定部130は対応する実体文書を特定する(S30)。上記設例の場合、注釈文字列「発売日」は、注釈文書(ID:2)と注釈文書(ID:4)に含まれるので、実体文書(ID:2)と実体文書(ID:4)が特定される。注釈文字列が含まれていなければ(S26のN)、S28とS30の処理はスキップされる。
【0046】
第2実体文書特定部130は、以上の処理結果に基づいて、第2実体文書を特定する(S31)。検索用注釈データが含まれていないときや、検索用注釈データに適合する注釈文書が存在しないときには、第2実体文書は特定されない。上記設例の場合、検索用注釈データ「/metadata/annotation/製品名 AND 発売日」に示される検索条件を満たすのは実体文書(ID:2)なので、この実体文書(ID:2)だけが第2実体文書として特定される。なお、「/metadata/annotation/製品名 AND 発売日」ではなく「/metadata/annotation/製品名 OR 発売日」であれば、実体文書(ID:1)、実体文書(ID:2)と実体文書(ID:4)が第2実体文書として特定されることになる。
【0047】
第1実体文書または第2実体文書の少なくともいずれかが特定されたとき、いいかえれば、検索クエリに適合する実体文書の候補が存在するときには(S32のY)、実体文書選択部132は、それらの候補の中から検索クエリに適合する実体文書を選択する(S34)。上記設例の場合、検索クエリは「検索用実体データ AND 検索用注釈データ」なので、第1実体文書として特定された実体文書(ID:2)と実体文書(ID:6)、第2実体文書として特定された実体文書(ID:2)のうち、両方に含まれる実体文書(ID:2)が選択される。なお、「検索用実体データ AND 検索用注釈データ」ではなく、「検索用実体データ OR 検索用注釈データ」の形式のときには、実体文書(ID:2)と実体文書(ID:6)の両方が選択される。
実体文書選択部132は、第1実体文書が特定され、第2実体文書が特定されていないときには、第1実体文書として特定された実体文書をそのまま選択する。第2実体文書が特定され、第1実体文書が特定されていないときには、第2実体文書として特定された実体文書がそのまま選択される。第1実体文書も第2実体文書も特定されていないときには(S32のN)、S34の処理はスキップされる。最後に、表示部114は、選択された実体文書の文書IDや名前を画面表示させる(S36)。また、実体文書の選択がなされなかったとき、すなわち、検索クエリに適合する実体文書が存在しないときには、表示部114はその旨を画面にてユーザに通知する。
【0048】
以上においては、実体検索処理と注釈検索処理は別個に実行され、実体文書選択部132が各処理の結果に応じて、最終的に実体文書を選択している。
このような処理方法に限らず、文書検索装置100は、注釈範囲に基づく実体文書検索を実行することもできる。たとえば、「注釈文書の<製品名>タグにより注釈されている実体情報中に、”花江”という文字列を含む実体文書を検索したい」という検索ニーズを想定する。この場合、「<製品名>タグにより注釈されている実体情報」の中に実体文字列”花江”が存在することが必要であり、実体文字列”花江”に基づく実体検索処理は<製品名>タグに基づく注釈検索処理の処理結果に依存することになる。
検索用注釈データによる検索条件を前提として、検索用実体データによる検索を行うよう指示する検索クエリの書式は、「検索用実体データ INCL 検索用注釈データ」として記述される。上記例の場合、検索クエリは、「(”花江”) INCL (//製品名)」となる。「//製品名」は、経路式の末端に<製品名>タグがあらわれる経路式のすべてを示す。「//」は、XPath(XML Path Language)における省略記号と同意である。この検索クエリを例として説明する。
【0049】
まず、第1実体文書特定部126は、実体文字列「花江」を対象として実体検索処理を実行し、第1実体文書として実体文書(ID:2)、実体文書(ID:6)、実体文書(ID:8)を特定する。
次に、注釈文書特定部128は、注釈経路式に「製品名」を含む注釈文書として、注釈文書(ID:1)と注釈文書(ID:2)を特定し、第2実体文書特定部130は、第2実体文書として実体文書(ID:1)と実体文書(ID:2)を特定する。
【0050】
実体文書選択部132は、注釈文書(ID:1)と注釈文書(ID:2)を参照して、<製品名>タグの注釈範囲を特定する。注釈経路インデックス情報170によると、注釈文書(ID:1)の「/metadata/annotation/製品名」は実体文書(ID:1)の文書位置=(3、5)を注釈対象としている。実体文字列インデックス情報160によると、実体文字列「花江」は実体文書(ID:1)には出現していない。このため、実体文書(ID:1)は候補から外れる。
【0051】
一方、注釈文書(ID:2)の「/metadata/annotation/製品名」は実体文書(ID:2)の文書位置=(6、8)を注釈対象としている。実体文字列インデックス情報160によると、実体文字列「花江」は実体文書(ID:2)において文書位置=7に出現している。すなわち、実体文書(ID:2)における実体文字列「花江」は、注釈文書(ID:2)の「/metadata/annotation/製品名」の注釈要素によって指定される範囲内にある。
以上により、実体文書選択部132は、上記検索クエリに適合する実体文書として、実体文書(ID:2)を選択する。
【0052】
このほかにも、たとえば、「実体文書の<時期>タグを対象として注釈している注釈情報中に”発売日”という文字列が含まれるような実体文書を検索したい」というニーズや「実体経路式「/レポート/内容/セキュリティ」を対象として注釈経路式「/metadata/anotation」により注釈している実体文書を検索したい」というニーズも想定可能である。このような場合においても、注釈検索処理および実体検索処理の一方の処理結果に依存して他方の処理を実行することにより、求める実体文書を特定できる。
【0053】
以上、本実施例に示した文書検索装置100によると、検索クエリに基づくデータ検索を実体情報と注釈情報の両面から実行できる。実体文書と注釈文書が別々の文書ファイルとして対応づけられているため、注釈情報の付与により実体文書の内容を変更する必要がない。また、複数のユーザから入力された注釈情報を注釈文書にて一元的に管理できる。このため、実体情報の同一性を担保しつつ、複数のユーザが注釈情報を自由に設定しやすい設計となっている。
メモや注意書、備考などの付加的な情報が、文書自体の内容や閲覧状況を端的に示すことはよくあることである。本実施例における文書検索装置100は、直接的に検索対象となる実体情報だけでなく、実体情報に付随する注釈情報からも求める文書を検索できる。そのため、ユーザにとって、検索利便性が向上するというメリットがある。
【0054】
実体経路インデックス情報150と実体文字列インデックス情報160には、実体経路式や実体文字列が登録される。そのため、実体検索部122は、実体文書データベース144にアクセスして、実体文書の内容や経路情報をメモリに展開しなくても、実体経路インデックス情報150と実体文字列インデックス情報160により第1実体文書を特定できる。同様に、注釈経路インデックス情報170と注釈文字列インデックス情報180には、注釈経路式や注釈文字列が登録される。そのため、注釈検索部124も、注釈文書データベース146にアクセスして、注釈文書の内容や経路情報をメモリに展開しなくても、各インデックス情報を参照することにより注釈文書、ひいては、第2実体文書を特定できる。このように、本実施例に示した文書検索装置100は、各インデックス情報を参照することにより、求めるデータの位置を高速かつ軽い計算機負荷にて検索できる。
【0055】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0056】
本実施例ではXML文書を対象として説明したが、文書検索装置100は、XHTMLやHTML、SGMLなど、タグの階層構造に基づく経路式によってデータの位置が特定されるタイプの文書ファイルであれば、いずれを対象としても応用可能である。
【0057】
請求項に記載の「実体インデックス情報」は、本実施例においては実体経路インデックス情報150および実体文字列インデックス情報160の双方または一方に相当する。請求項に記載の「注釈インデックス情報」は、本実施例においては注釈経路インデックス情報170および注釈文字列インデックス情報180の双方または一方に相当する。請求項に記載の「所定の選択条件」は、本実施例においては検索クエリの「論理式A」が相当する。
これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【図面の簡単な説明】
【0058】
【図1】文書検索装置による処理の概要を説明するための模式図である。
【図2】本実施例における文書ID=1の実体文書とその実体文書に対応する注釈文書を示す図である。
【図3】本実施例における文書ID=2の実体文書とその実体文書に対応する注釈文書を示す図である。
【図4】実体経路インデックス情報のデータ構造図である。
【図5】実体文字列インデックス情報のデータ構造図である。
【図6】注釈経路インデックス情報のデータ構造図である。
【図7】注釈文字列インデックス情報のデータ構造図である。
【図8】文書検索装置の機能ブロック図である。
【図9】検索クエリに基づく検索処理過程を示すフローチャートである。
【符号の説明】
【0059】
100 文書検索装置、 110 ユーザインタフェース処理部、 112 入力部、 114 表示部、 120 データ処理部、 122 実体検索部、 124 注釈検索部、 126 第1実体文書特定部、 128 注釈文書特定部、 130 第2実体文書特定部、 132 実体文書選択部、 134 登録部、 140 実体インデックス保持部、 142 注釈インデックス保持部、 144 実体文書データベース、 146 注釈文書データベース、 148 文書位置欄、 150 実体経路インデックス情報、 152 実体経路式欄、 154 実体範囲欄、 160 実体文字列インデックス情報、 162 実体文字列欄、 164 実体位置インデックス欄、 170 注釈経路インデックス情報、 172 注釈経路式欄、 174 注釈範囲欄、 180 注釈文字列インデックス情報、 182 注釈文字列欄、 184 注釈位置インデックス欄。

【特許請求の範囲】
【請求項1】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための装置であって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を保持する実体インデックス保持部と、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を保持する注釈インデックス保持部と、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付ける検索クエリ入力部と、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定する第1実体文書特定部と、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定する注釈文書特定部と、
前記特定された注釈文書と対応づけられている実体文書を特定する第2実体文書特定部と、
前記第1実体文書特定部に特定された実体文書と前記第2実体文書特定部に特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択する実体文書選択部と、
を備えることを特徴とする文書検索装置。
【請求項2】
前記実体文書選択部は、前記第1実体文書特定部に特定され、かつ、前記第2実体文書特定部にも特定された実体文書を選択することを特徴とする請求項1に記載の文書検索装置。
【請求項3】
前記実体インデックス情報においては、タグの経路式とその経路式があらわれる実体文書とが対応づけられており、
前記第1実体文書特定部は、前記検索用実体データとしてタグの経路式が含まれるときには、前記実体インデックス情報を参照して、その経路式があらわれる実体文書を特定することを特徴とする請求項1または2に記載の文書検索装置。
【請求項4】
前記注釈インデックス情報においては、タグの経路式とその経路式があらわれる注釈文書とが対応づけられており、
前記注釈文書特定部は、前記検索用注釈データとしてタグの経路式が含まれるときには、前記注釈インデックス情報を参照して、その経路式があらわれる注釈文書を特定することを特徴とする請求項1から3のいずれかに記載の文書検索装置。
【請求項5】
前記実体インデックス情報においては、所定の文字列とその文字列を含む実体文書とが対応づけられており、
前記第1実体文書特定部は、前記検索用実体データとして検索対象文字列が含まれるときには、前記実体インデックス情報を参照して、前記検索対象文字列を含む実体文書を特定することを特徴とする請求項1から4のいずれかに記載の文書検索装置。
【請求項6】
前記注釈インデックス情報においては、所定の文字列とその文字列を含む注釈文書とが対応づけられており、
前記注釈文書特定部は、前記検索用注釈データとして検索対象文字列が含まれるときには、前記注釈インデックス情報を参照して、前記検索対象文字列を含む注釈文書を特定することを特徴とする請求項1から5のいずれかに記載の文書検索装置。
【請求項7】
前記注釈インデックス情報においては、更に、所定のデータとそのデータの注釈対象となる実体情報の位置とが対応づけられており、
前記注釈文書特定部は、前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定すると共に、前記検索用注釈データについて注釈対象となる実体情報の位置を特定し、
前記実体文書選択部は、前記第1実体文書特定部に特定された実体文書のうち、前記検索用注釈データについて注釈対象となる実体情報中において前記検索用実体データを含む実体文書を選択対象とすることを特徴とする請求項1から6のいずれかに記載の文書検索装置。
【請求項8】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するための方法であって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を取得するステップと、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を取得するステップと、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付けるステップと、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定するステップと、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定するステップと、
前記特定された注釈文書と対応づけられている実体文書を特定するステップと、
前記検索用実体データにより特定された実体文書と前記検索用注釈データにより特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択するステップと、
を備えることを特徴とする文書検索方法。
【請求項9】
タグの階層構造に基づく経路式によってデータの位置が特定される構造化文書ファイルの集合から所望の構造化文書ファイルを検索するためのコンピュータプログラムであって、
実体情報を含む構造化文書ファイルである実体文書の集合について、所定のデータとそのデータを含む実体文書とを対応づけた実体インデックス情報を保持する機能と、
実体文書と対応づけられる構造化文書ファイルであって実体情報に対する注釈情報を含む注釈文書の集合について、所定のデータとそのデータを含む注釈文書とを対応づけた注釈インデックス情報を保持する機能と、
実体文書を対象とする検索用実体データと注釈文書を対象とする検索用注釈データを含む検索クエリの入力を受け付ける機能と、
前記実体インデックス情報を参照して、前記検索用実体データを含む実体文書を特定する機能と、
前記注釈インデックス情報を参照して、前記検索用注釈データを含む注釈文書を特定する機能と、
前記特定された注釈文書と対応づけられている実体文書を特定する機能と、
前記検索用実体データにより特定された実体文書と前記検索用注釈データにより特定された実体文書の中から、前記検索クエリについての所定の選択条件に整合する実体文書を選択する機能と、
をコンピュータに発揮させることを特徴とする文書検索プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−90404(P2008−90404A)
【公開日】平成20年4月17日(2008.4.17)
【国際特許分類】
【出願番号】特願2006−267889(P2006−267889)
【出願日】平成18年9月29日(2006.9.29)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】