(57)【要約】  各ノードを起点とするパスを連結したパスフィールドをノード毎に生成するパスフィールド生成部と、グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、要素とポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、検索条件を表す検索パスを生成する検索パス生成部と、検索パス中の要素を含むパスフィールドを有するノードをインデックスレポジトリから検索し、検索されたノードのうち検索パス中の要素の出現順序を満たすパスフィールドを有するものをポスティングリストの位置情報に基づいて抽出する検索部とを備える。
2011142134.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を備えた情報検索装置。
【請求項２】
前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行う、
ことを特徴とする請求項１に記載の情報検索装置。
【請求項３】
前記パスフィールド生成部は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表すことによって前記パスフィールドを生成する、
ことを特徴とする請求項１または請求項２に記載の情報検索装置。
【請求項４】
前記グラフ構造情報において変更された要素を表す差分情報を取得し、前記差分情報に基づいて前記パスフィールド生成部および前記索引生成部を制御することによって前記インデックスレポジトリを更新する索引更新部をさらに備えた、
ことを特徴とする請求項１から請求項３のいずれかに記載の情報検索装置。
【請求項５】
前記グラフ構造情報から前記各ノードを起点とする所定の深さのサブグラフを抽出し、抽出したサブグラフを格納するサブグラフ格納部と、
前記検索部によって検索された目的ノードを起点とするサブグラフを提示する検索結果提示部と、
をさらに備えた、ことを特徴とする請求項１から請求項４のいずれかに記載の情報検索装置。
【請求項６】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、
前記各要素と、
前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、
を対応付けて格納したデータ構造。
【請求項７】
前記ポスティングリストに含まれる前記位置情報は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表して連結したパスフィールドにおける位置を表す、
ことを特徴とする請求項６に記載のデータ構造。
【請求項８】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、
前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、
前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、
を備えた情報検索システムであって、
前記情報検索装置は、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を有する情報検索システム。
【請求項９】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、
をコンピュータに実行させるコンピュータ・プログラム。
【請求項１０】
グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、
情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
クライアント装置が、
前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、
前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を検索する装置に関し、特に、ノードおよびノード間を結ぶエッジで表されたグラフ構造情報から目的のノードを検索する情報検索装置、情報検索システム、情報検索方法、コンピュータ・プログラムおよびデータ構造に関する。
【背景技術】
【０００２】
ノードおよびエッジからなるグラフで表されたグラフ構造情報から目的のノードを検索する情報検索装置として、特許文献１に記載されたものが知られている。ここで、グラフ構造情報とは、対象とする情報を構成する要素をノードとして表し、ノード間の関係をエッジとして表した情報である。【０００３】
特許文献１に記載された情報検索装置は、グラフ構造情報を部分グラフにクラスタリングし、部分グラフ毎に各ノードを索引とするテーブルと、各エッジを索引とするテーブルとを生成する。そして、この情報検索装置は、これらのテーブルに基づいて問い合わせグラフに一致する部分グラフを検索する。【０００４】
また、他のこのような情報検索装置として、非特許文献１に記載されたものも知られている。【０００５】
非特許文献１に記載の情報検索装置は、ＲＤＦ（Resource Description Framework）で表されるグラフ構造情報を検索する。この情報検索装置は、図２２に示すように、関係データベース（以下、データベースをＤＢとも記載する）構築部９１と、関係ＤＢ９２と、検索部９３とを備えている。関係ＤＢ９２は、図２３に概念的に示すように、クラス（ｃｌａｓｓ）テーブル、プロパティ（ｐｒｏｐｅｒｔｙ）テーブル、タイプ（ｔｙｐｅ）テーブル、リソース（ｒｅｓｏｕｒｃｅ）テーブル、パス（ｐａｔｈ）テーブルおよびトリプル（ｔｒｉｐｌｅ）テーブルを格納している。【０００６】
なお、ＲＤＦでは、情報は、主語、述語および目的語の３つの要素からなる文（以下、トリプルともいう）によって表現されている。ここで、主語は、情報モデルにおけるリソースを表し、述語はリソースのプロパティを表し、目的語はリソースまたはプロパティ値を表している。また、ＲＤＦを可視化したＲＤＦグラフでは、リソースはノードで表され、プロパティはエッジ（または、アークともいう）で表されている。【０００７】
この情報検索装置は、次のようにして情報を関係ＤＢ９２へ登録する。【０００８】
まず、関係ＤＢ構築部９１は、与えられたＲＤＦグラフを元に、クラステーブル、プロパティテーブル、タイプテーブル、リソーステーブルおよびトリプルテーブルをそれぞれ生成する。【０００９】
次に、関係ＤＢ構築部９１は、ルートとなるリソースを決定し、決定したルートリソースから他の各リソースまでのすべてのプロパティの連なり（アークパス）を生成する。【００１０】
さらに、関係ＤＢ構築部９１は、生成した各アークパスにパスＩＤ（ｐａｔｈＩＤ）を付与し、各アークパスを表すパス表現（ｐａｔｈｅｘｐ）およびパスＩＤを、パステーブルへ登録する。このとき、アークパスを表すパス表現は、プロパティ名の列として表現される。【００１１】
上記のようにして生成された関係ＤＢ９２に対して、検索部９３は、ＳＱＬクエリを生成して検索を行う。【００１２】
ここで、検索部９３は、パスのみの指定により特定される情報を検索する場合は、パステーブルを用いて効率的な検索を行うことができる。例えば、検索部９３は、図２３に示した関係ＤＢ９２の例に対して、「誰かによって描かれた絵のタイトルをすべて表示する」場合、次のようなパスのみを指定するＳＱＬクエリを生成して検索を行う。
ＳＥＬＥＣＴ  ｒ．ｒｅｓｏｕｒｃｅＮａｍｅ
ＦＲＯＭ  ｐａｔｈ  ＡＳ  ｐ，  ｒｅｓｏｕｒｃｅ  ＡＳ  ｒ
ＷＨＥＲＥ  ｐ．ｐａｔｈＩＤ  ＝  ｒ．ｐａｔｈＩＤ
ＡＮＤ    ｐ．ｐａｔｈｅｘｐ  ＝  ’＃ｔｉｔｌｅ＜＃ｐａｉｎｔｓ’【００１３】
また、検索部９３は、パスのみの指定では特定されない情報を検索する場合には、トリプルテーブルを用いて検索を行う。ここで、パスのみの指定では特定されない情報としては、特定の値をプロパティ値として持つリソースをあるプロパティで参照しているリソースや、特定の値をプロパティ値として持つリソースからあるプロパティで参照されているリソース等が挙げられる。例えば、検索部９３は、図２３に示した関係ＤＢ９２の例に対して、「Ｐａｂｌｏ  Ｐｉｃａｓｓｏによって描かれた絵のタイトルをすべて表示する」場合、次のようなＳＱＬクエリを生成して検索を行う。
ＳＥＬＥＣＴ  ｔ１．ｏｂｊｅｃｔ
ＦＲＯＭ  ｔｒｉｐｌｅ  ＡＳ  ｔ１，  ｔｒｉｐｌｅ  ＡＳ  ｔ２，  ｔｒｉｐｌｅ  ＡＳ  ｔ３，  ｔｒｉｐｌｅ  ＡＳ  ｔ４
ＷＨＥＲＥ  ｔ１．ｐｒｅｄｉｃａｔｅ  ＝  ’ｐａｉｎｔｓ’
ＡＮＤ    ｔ１．ｓｕｂｊｅｃｔ  ＝  ｔ２．ｓｕｂｊｅｃｔ
ＡＮＤ    ｔ２．ｐｒｅｄｉｃａｔｅ  ＝  ’ｆｉｒｓｔ’
ＡＮＤ    ｔ２．ｏｂｊｅｃｔ  ＝  ’Ｐｉｃａｓｓｏ’
ＡＮＤ    ｔ１．ｓｕｂｊｅｃｔ  ＝  ｔ３．ｓｕｂｊｅｃｔ
ＡＮＤ    ｔ３．ｐｒｅｄｉｃａｔｅ  ＝  ’ｌａｓｔ’
ＡＮＤ    ｔ３．ｏｂｊｅｃｔ  ＝  ’Ｐａｂｌｏ’
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００９−２５８７４９号公報
【非特許文献】
【００１５】
【非特許文献１】Akiyoshi Matono et al., "A Path-based Relational RDF Database“,ADC '05: Proceedings of the 16th Australasian database conference,pp95-103(2005)
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１に記載された技術では、グラフ構造情報の複雑化に伴いエッジを索引とするテーブルのタプル数の合計が組み合わせ的に増加するので、問い合わせグラフを満たす部分グラフを検索する時間が増加するという課題がある。【００１７】
また、非特許文献１に記載されたものは、パスのみの指定では特定されない情報の検索に時間がかかるという課題がある。【００１８】
この理由は、パステーブルを利用できないクエリの実行時に結合演算が多く発生するためである。【００１９】
さらに、非特許文献１に記載されたものは、パスのみの指定で特定される情報の検索であっても、情報モデルの複雑化に伴い検索時間が増加するという課題がある。【００２０】
この理由は、情報モデルの複雑化にしたがってパステーブルのタプル数が組み合わせ的に増加するからである。このため、非特許文献１では、パステーブルを利用できるクエリであっても、検索キーとなるパス表現を比較する回数がパス数のオーダーで増加し、検索時間が大きく増加することになるためである。【００２１】
本発明は、上述の課題を解決するためになされたもので、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明の情報検索装置は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、を備える。【００２３】
また、本発明のデータ構造は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、前記各要素と、前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、を対応付けて格納する。【００２４】
また、本発明の情報検索システムは、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、を備えた情報検索システムであって、前記情報検索装置は、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、を有する。【００２５】
また、本発明のコンピュータ・プログラムは、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、をコンピュータに実行させる。【００２６】
また、本発明の情報検索方法は、グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、情報検索装置が、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、クライアント装置が、前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する。
【発明の効果】
【００２７】
本発明によれば、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施の形態としての情報検索システムのハードウェア構成図である。
【図２】本発明の第１の実施の形態としての情報検索システムの機能ブロック図である。
【図３】本発明の第１の実施の形態におけるグラフ構造情報の一例を説明する概念図である。
【図４】本発明の第１の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。
【図５】本発明の第１の実施の形態としての情報検索システムの検索動作を説明するフローチャートである。
【図６】本発明の第２の実施の形態としての情報検索システムの構成を示す機能ブロック図である。
【図７】本発明の第２の実施の形態における知識情報モデルの一例を説明する概念図である。
【図８】本発明の第２の実施の形態におけるパスフィールドの一例を説明する図である。
【図９】本発明の第２の実施の形態におけるパスインデックスに格納されるデータの一例を説明する図である。
【図１０】（ａ）、（ｂ）および（ｃ）は本発明の第２の実施の形態におけるリテラルプロパティインデックスに格納されるデータの一例を説明する図である。
【図１１】本発明の第２の実施の形態におけるメタデータインデックスに格納されるデータの一例を説明する図である。
【図１２】本発明の第２の実施の形態におけるモデルデータＤＢに格納されるデータの一例を説明する図である。
【図１３】本発明の第２の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。
【図１４】本発明の第２の実施の形態としての情報検索システムの検索動作を説明するフローチャートである。
【図１５】本発明の第２の実施の形態としての情報検索システムのパスクエリ生成動作を説明するフローチャートである。
【図１６】本発明の第２の実施の形態におけるフレーズクエリの一例を説明する概念図である。
【図１７】本発明の第３の実施の形態としての情報検索システムの構成を示す機能ブロック図である。
【図１８】本発明の第３の実施の形態におけるパスフィールドの一例を説明する図である。
【図１９】本発明の第３の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。
【図２０】本発明の第４の実施の形態としての情報検索システムの構成を示す機能ブロック図である。
【図２１】本発明の第４の実施の形態としての情報検索システムのインデックス更新動作を説明するフローチャートである。
【図２２】関連技術の情報検索装置の構成を示す機能ブロック図である。
【図２３】関連技術の情報検索装置によって生成される関係ＤＢの一例を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態について、図面を参照して説明する。
【００３０】
（第１の実施の形態）
本発明の第１の実施の形態としての情報検索システム１のハードウェア構成を図１に示す。図１において、情報検索システム１は、情報検索装置１１と、グラフ構造情報格納装置１２と、クライアント装置１３とを備えている。また、情報検索装置１１と、グラフ構造情報格納装置１２と、クライアント装置１３とは互いに通信可能に接続されている。
【００３１】
ここで、情報検索装置１１は、ＣＰＵ（Central Processing Unit）１１０１と、ＲＡＭ（Random Access Memory）１１０２と、ＲＯＭ（Read Only Memory）１１０３と、記憶装置１１０４と、ネットワークインタフェース１１０５とを少なくとも備えた汎用的なコンピュータによって構成されている。
【００３２】
また、グラフ構造情報格納装置１２は、ＣＰＵ１２０１と、ＲＡＭ１２０２と、ＲＯＭ１２０３と、記憶装置１２０４と、ネットワークインタフェース１２０５とを少なくとも備えた汎用的なコンピュータによって構成されている。
【００３３】
また、クライアント装置１３は、ＣＰＵ１３０１と、ＲＡＭ１３０２と、ＲＯＭ１３０３と、記憶装置１３０４と、ネットワークインタフェース１３０５と、入力装置１３０６と、出力装置１３０７とを少なくとも備えた汎用的なコンピュータによって構成されている。
【００３４】
次に、情報検索システム１の機能ブロック構成を図２に示す。
【００３５】
グラフ構造情報格納装置１２は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を記憶装置１２０４に格納している。グラフ構造情報格納装置１２が格納するグラフ構造情報の一例を図３に示す。図３のグラフ構造情報は、ノードＡ、Ｂ１、Ｂ２、Ｃ１およびＣ２と、ノード間を結ぶエッジａ、ｂ、ｃおよびｄを要素としている。
【００３６】
また、グラフ構造情報格納装置１２は、情報検索装置１１からの要求に応じてグラフ構造情報を情報検索装置１１に提供する。
【００３７】
クライアント装置１３は、グラフ構造情報のうち検索条件を満たす目的ノードの検索要求を表す情報を入力装置１３０６を介して取得する。そして、クライアント装置１３は、検索要求を表す情報を情報検索装置１１に送信する。また、クライアント装置１３は、情報検索装置１１から取得する検索結果を表す情報を出力装置１３０７を介して出力する。
【００３８】
情報検索装置１１は、パスフィールド生成部１０１と、索引生成部１０２と、インデックスレポジトリ１０３と、検索部１０４と、検索パス生成部１０５とを備えている。ここで、パスフィールド生成部１０１、索引生成部１０２、検索部１０４および検索パス生成部１０５は、コンピュータ・プログラムとして記憶装置１１０４に格納され、これをＲＡＭ１１０２に読み込んで実行するＣＰＵ１１０１によって実現される。また、インデックスレポジトリ１０３は記憶装置１１０４によって構成される。
【００３９】
パスフィールド生成部１０１は、グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる要素の列（すなわち、ノードおよびエッジの列）である１つ以上のパスを、グラフ構造情報から抽出する。そして、パスフィールド生成部１０１は、抽出した１つ以上のパスを連結したパスフィールドをノード毎にそれぞれ生成する。
【００４０】
索引生成部１０２は、グラフ構造情報を構成する各要素（すなわち、各ノードおよび各エッジ）とポスティングリストとを対応付けたインデックスレポジトリ１０３を生成する。ここで、ポスティングリストとは、要素毎に生成され、その要素が含まれるパスフィールドを有するノードとその要素がそのパスフィールドにおいて出現する位置情報とからなる情報のリストである。
【００４１】
ここで、ポスティングリストに含まれる位置情報は、例えば、その要素がそのパスフィールドにおいて出現する位置を先頭から数えた順番を表す数値であってもよく、その要素がそのパスフィールド中に出現する位置を特定可能なその他の情報であってもよい。
【００４２】
インデックスレポジトリ１０３は、前述のように、要素と、その要素のポスティングリ
ストとを対応付けて格納している。
【００４３】
検索パス生成部１０５は、検索条件を表す検索パスを要素の列として生成する。
【００４４】
検索部１０４は、検索パスに含まれる各要素を含むパスフィールドを有するノードをインデックスレポジトリ１０３から検索する。そして、検索部１０４は、検索されたノードのうち検索パスにおける要素の出現順序を満たすパスフィールドを有するものをポスティングリストの位置情報に基づいて抽出することにより目的ノードを検索する。
【００４５】
以上のように構成された情報検索システム１の動作について説明する。
【００４６】
まず、情報検索装置１１がインデックスレポジトリ１０３を生成する処理を、図４を参照して説明する。
【００４７】
ここでは、まず、索引生成部１０２が、グラフ構造情報をグラフ構造情報格納装置１２から読み込む（ステップＳ１）。
【００４８】
次に、パスフィールド生成部１０１が、読み込まれたグラフ構造情報に含まれる各ノードについて、パスフィールドを生成する（ステップＳ２）。
【００４９】
例えば、パスフィールド生成部１０１は、図３に示したグラフ構造情報のノードＡについて、ノードＡを基点としてたどることができる要素の列として、パス[Ａ][ａ][Ｂ１][ｂ][Ｃ１]と、パス[Ａ][a][Ｂ１][ｄ][Ｃ２]と、パス[Ａ][ｃ][Ｂ２]との３つのパスを抽出する。そして、パスフィールド生成部１０１は、ノードＡのパスフィールドとして、この３つのパスを連結してパスフィールド[Ａ][ａ][Ｂ１][ｂ][Ｃ１][Ａ][ａ][Ｂ１][ｄ][Ｃ２][Ａ][ｃ][Ｂ２]を生成する。パスフィールド生成部１０１は、同様に、ノードＢ１、Ｂ２、Ｃ１、Ｃ２についてもパスフィールドを生成する。
【００５０】
次に、索引生成部１０２が、グラフ構造情報を構成する各要素と、各要素のポスティングリストとを対応付けてインデックスレポジトリ１０３に登録する（ステップＳ３）。
【００５１】
例えば、索引生成部１０２は、図３に示したグラフ構造情報を構成する要素ｂについてポスティングリストを生成する。ここで、ある要素がノードＸのパスフィールドに含まれ、そのパスフィールドの先頭から数えてi番目に出現することを、Ｘ＜ｉ＞と表すものとすると、要素ｂのポスティングリストは、「Ａ＜４＞,Ｂ１＜２＞」となる。
【００５２】
そして、索引生成部１０２は、要素ｂと要素ｂのポスティングリストとを対応付けてインデックスレポジトリ１０３に登録する。同様に、索引生成部１０２は、残りの要素についてもポスティングリストを生成し、生成したポスティングリストをインデックスレポジトリ１０３に登録する。
【００５３】
以上で、情報検索装置１１はインデックスレポジトリ１０３を生成する処理を終了する。
【００５４】
次に、情報検索システム１が、目的ノードを検索する動作について図５を参照して説明する。
【００５５】
まず、クライアント装置１３が検索条件を満たす目的ノードの検索を情報検索装置１１に要求し、情報検索装置１１がこれを受け付ける（ステップＳ４でＹｅｓ）。
【００５６】
例えば、クライアント装置１３は、図３に示したグラフ構造情報から「エッジｂの先にノードＣ１を有するノードの検索」を情報検索装置１１に要求する。
【００５７】
次に、検索パス生成部１０５が、受け付けた検索条件を表す検索パスを生成する（ステップＳ５）。例えば、検索パス生成部１０５は、上述の検索条件の例に対して検索パスとして[ｘ][ｂ][Ｃ１]を生成する。ここで、[ｘ]は目的ノードを表しているものとする。
【００５８】
次に、検索部１０４が、検索パスに含まれる各要素を含むパスフィールドを有するノードをインデックスレポジトリ１０３から検索し、検索したノードのうち検索パスに含まれる要素の出現順序を満たすパスフィールドを有するものを目的ノードとして抽出する（ステップＳ６）。
【００５９】
例えば、検索部１０４は、検索パスに含まれる要素[ｂ]および[Ｃ１]が含まれるパスフィールドを有するものとして、ノードＡおよびＢ１を検索する。そして、検索部１０４は、検索パスにおいて[ｂ]が２番目、[Ｃ１]が３番目であるという出現順序を満たすパスフィールドを有するものとして、検索したノードＡおよびＢ１のうちノードＢ１を抽出する。
【００６０】
以上で、情報検索システム１の動作の説明を終了する。
【００６１】
次に、本発明の第１の実施の形態の効果について述べる。
【００６２】
本発明の第１の実施の形態としての情報検索システムは、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる。
【００６３】
その理由は、グラフ構造情報を構成する各要素を索引とするインデックスレポジトリによってグラフ構造情報を格納するため、グラフ構造情報が複雑化しても、検索対象となるインデックスレポジトリのタプル数を、グラフ構造情報を構成する要素数のオーダーに抑えることができるためである。したがって、目的ノードを検索する際にインデックスレポジトリの索引語である要素と検索パスに含まれる要素とを比較する回数を、グラフ構造情報を構成する要素数のオーダーに抑えることができるため上記目的は実現する。
【００６４】
また、本発明の第１の実施の形態としての情報検索システムは、記憶装置の資源消費量を軽減することができる。 
その理由は、インデックスレポジトリのサイズを決定する要因である索引語の数が、グラフ構造情報を構成する要素数のオーダーで済むためである。
【００６５】
また、本発明の第１の実施の形態におけるインデックスレポジトリのデータ構造は、目的ノードの検索対象となるグラフ構造情報を格納するためのデータ構造として好適である。
【００６６】
その理由は、インデックスレポジトリが、グラフ構造情報の各要素に関連づけて、各要素のポスティングリストを格納しているため、索引語数を抑えながらグラフ構造情報を格納することができるからである。このデータ構造に対して、検索パスに含まれるタームを含むパスフィールドを有するノードが検索され、さらに位置情報が用いられてフィルタリングされることにより、目的ノードを高速に検索可能だからである。
【００６７】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【００６８】
まず、本発明の第２の実施の形態としての情報検索システム２の構成を図６に示す。なお、図６において、本発明の第１の実施の形態と同一の構成には同一の符号を付して本実施形態における詳細な説明を省略する。
【００６９】
図６において、情報検索システム２は、情報検索装置２１と、知識情報レポジトリ２２と、クライアント装置１３とを備えている。また、情報検索装置２１と、知識情報レポジトリ２２と、クライアント装置１３とは互いに通信可能に接続されている。
【００７０】
ここで、情報検索装置２１および知識情報レポジトリ２２は、本発明の第１の実施の形態における情報検索装置１１およびグラフ構造情報格納装置１２と同様に汎用的なコンピュータによって構成されている。なお、知識情報レポジトリ２２は、本発明のグラフ構造情報格納装置の一実施形態を構成する。
【００７１】
まず、知識情報レポジトリ２２の構成について説明する。
【００７２】
知識情報レポジトリ２２は、ＲＤＦグラフで表された知識情報モデルを格納している。ここで、知識情報モデルは、本発明におけるグラフ構造情報の一実施形態を構成する。知識情報レポジトリ２２に格納された知識情報モデルの例を図７に示す。なお、以下の説明において、ＲＤＦにおけるリソースおよびリテラルは本発明のノードの一実施形態を構成し、ＲＤＦにおけるプロパティは本発明のエッジの一実施形態を構成する。
【００７３】
図７では、楕円がリソースを示し、矩形が具体値を取るリソース（リテラル）を示し、矢印がリソース間の関連であるプロパティを示している。リソース中の文字列は、そのリソースを識別するリソースＩＤを示す。プロパティ上の文字列は、そのプロパティの種別を識別するプロパティＩＤを示す。リテラル中の文字列は、そのリテラルのとる具体値（リテラル値）を示す。ここで、リソースＩＤおよびプロパティＩＤは、ＵＲＩ、数値、または文字列等であってもよく、リソースおよびプロパティの種別を一意に識別できる情報であれば良い。なお、リソースＩＤ、プロパティＩＤおよびリテラル値をモデルの語彙（以下、タームともいう）と呼ぶ。
【００７４】
図７は、保険会社における社員とその顧客、および、顧客の家族と加入保険情報をＲＤＦグラフで表現した例である。リソースｂ１は、Ｃｏｒｐｏｒａｔｉｏｎ（会社）の実体であり、ｈａｓＥｍｐｌｏｙｅｅ（社員）としてｅ１を持つ。なお、「Ｃｏｒｐｏｒａｔｉｏｎ（会社）の実体である」とは、リソースｂ１のｔｙｐｅ（種別）がＣｏｒｐｏｒａｔｉｏｎであることを指す。リソースｅ１は、Ｅｍｐｌｏｙｅｅ（社員）の実体であり、ｃｏｎｔａｃｔ（連絡先）として、ｘｘｘ＠ｙｙｙ．ｚｚｚ．ｘｘ（電子メールアドレス）を持ち、ｈａｓＣｌｉｅｎｔ（顧客）として、ｃ１を持つ。リソースｃ１は、Ｃｌｉｅｎｔ（顧客）の実体であり、ｈａｓＦａｍｉｌｙＭｅｍｂｅｒ（家族構成員）として、ｐ１を持つ。リソースｐ１は、Ｐｅｒｓｏｎ（人）の実体であり、ｈａｓＩｎｓｕｒａｎｃｅ（加入保険）として、ａ１とａ２を持つ。リソースａ１は、Ｉｎｓｕｒａｎｃｅ（保険）の実体であり、ｖａｌｉｄＵｎｔｉｌ（有効期限）として、２０１０年１２月３１日を持ち、ｉｎＮｏｎｒｅｆｕｎｄａｂｌｅ（掛け捨て保険であるか否か）として、ｔｒｕｅ（真）を持つ。リソースａ２は、Ｉｎｓｕｒａｎｃｅ（保険）の実体であり、ｖａｌｉｄＵｎｔｉｌ（有効期限）として、２０１５年１２月３１日を持ち、ｉｎＮｏｎｒｅｆｕｎｄａｂｌｅ（掛け捨て保険であるか否か）として、ｆａｌｓｅ（偽）を持つ。
【００７５】
図６に戻り、情報検索装置２１の構成について説明する。
【００７６】
情報検索装置２１は、パスフィールド生成部２０１と、索引生成部２０２と、トークナイズ部２１２と、インデックスレポジトリ２０３と、検索部２０４と、検索パス生成部２０５と、入出力部２０６と、モデルデータＤＢ２０７と、を備えている。ここで、パスフィールド生成部２０１、索引生成部２０２、トークナイズ部２１２、検索部２０４および検索パス生成部２０５は、コンピュータ・プログラムとしてコンピュータの記憶装置に格納され、これをＲＡＭに読み込んで実行するＣＰＵによって実現される。
【００７７】
また、インデックスレポジトリ２０３およびモデルデータＤＢ２０７はコンピュータの記憶装置によって構成される。なお、モデルデータＤＢ２０７は本発明におけるサブグラフ格納部の一実施形態を構成する。
【００７８】
また、入出力部２０６は、コンピュータ・プログラムとしてコンピュータの記憶装置に格納され、これをＲＡＭに読み込んで実行するＣＰＵ、および、ネットワークインタフェースによって構成される。
【００７９】
パスフィールド生成部２０１は、パスフィールド生成部１０１と同様に知識情報モデルを構成するリソース毎にパスフィールドを生成する。
【００８０】
具体的には、パスフィールド生成部２０１は、各リソースを起点としてたどることができるリソースおよびプロパティの列を表す１つ以上のパスを抽出する。そして、パスフィールド生成部２０１は、抽出した各パスを、起点としたリソースを先頭としてリソースＩＤ、プロパティＩＤおよびリテラル値を連結した接尾辞パスとして表す。さらに、パスフィールド生成部２０１は、１つのリソースからたどることができる全てのパスを表す接尾辞パスを連結したパスフィールドをリソース毎に生成する。また、パスフィールド生成部２０１は、生成したパスフィールドにおいて、起点としたリソースのリソースＩＤを予約語「ＴＨＩＳ」で置き換える。
【００８１】
パスフィールドの一例を図８に示す。図８は、図７に例示した知識情報モデルのうちリソースｅ１について生成されたパスフィールドである。図８において、リソースｅ１のパスフィールドは、リソースｅ１を起点としてたどることができる１０本のパスが接尾辞パスで表されこれらが連結されたものである。また、リソースｅ１のパスフィールド中で、起点としたリソースｅ１のリソースＩＤであるｅ１は予約語ＴＨＩＳに置き換えられている。
【００８２】
トークナイズ部２１２は、パスフィールド生成部２０１によって生成されたパスフィールドを、知識情報モデルの語彙単位へ分割する。なお、トークナイズ部２１２は、本発明の索引生成部の一実施形態の一部分を構成する。
【００８３】
索引生成部２０２は、知識情報レポジトリ２２から知識情報モデルを取得する。そして索引生成部２０２は、知識情報モデルに含まれる各リソースについて、パスフィールド生成部２０１を用いてパスフィールドを生成する。
【００８４】
また、索引生成部２０２は、トークナイズ部２１２を用いて、生成したパスフィールドを語彙に分割し、後述のインデックスレポジトリ２０３のパスインデックス、リテラルプロパティインデックス群およびメタデータインデックス群に登録する。
【００８５】
インデックスレポジトリ２０３は、パスインデックスと、リテラルプロパティインデックス群およびメタデータインデックス群とを有している。
【００８６】
パスインデックスは、知識情報モデルを構成するターム（リソースＩＤ、プロパティＩＤ、リテラル値）と、そのポスティングリストとを対応付けて格納している。ここで、ポスティングリストとは、そのタームを含むパスフィールドを有するリソースのリソースＩＤと、そのタームがそのパスフィールドに出現する位置情報とからなる情報のリストである。
【００８７】
例えば、図７に示した知識情報モデルに対応するパスインデックスの一例を図９に示す。図９において、パスインデックスは、例えば、ｔｙｐｅというタームと、そのポスティングリストとを対応付けて格納している。ここで、タームｔｙｐｅのポスティングリストは、タームｔｙｐｅを含むパスフィールドを有するリソースｂ１、ｅ１、ｃ１、ｐ１、ａ１およびａ２およびそのパスフィールドにおけるタームｔｙｐｅの位置情報からなる情報のリストである。図９では、タームｔｙｐｅが、リソースｅ１のパスフィールドの２ターム目と、７ターム目等に出現することを、ｅ１＜２,７・・・＞と表している。なお、パスフィールドにおける位置情報は、パスフィールドにおいて先頭から数えたターム数で表される他、文字列、数値、記号あるいは参照関係などで表されていてもよく、パスフィールド内でタームが出現する位置を特定することができる情報であればよい。
【００８８】
また、図９に示すように、パスインデックスは、予約語ＴＨＩＳも索引語として格納している。予約語ＴＨＩＳに対応付けられたポスティングリストは、各リソースがそのパスフィールド中のパスのどこに位置するのかを表している。なお、予約語は、「ＴＨＩＳ」に限らず、他のタームと重複しない情報であればよい。
【００８９】
リテラルプロパティインデックス群は、知識情報モデルにおいてリテラルを持つプロパティ（リテラルプロパティ）のプロパティＩＤごとに生成されるインデックスである。１つのリテラルプロパティインデックスは、リテラル値と、そのプロパティを持つリソースとを対応付けて格納している。
【００９０】
例えば、図７に示した知識情報モデルに対応するリテラルプロパティインデックス群の一例を図１０に示す。図１０には、ｃｏｎｔａｃｔ、ｉｎＮｏｎｒｅｆｕｎｄａｂｌｅおよびｖａｌｉｄＵｎｔｉｌという３つのリテラルプロパティのプロパティＩＤにそれぞれ対応したｃｏｎｔａｃｔインデックス（図１０（ａ））、ｉｓＮｏｎｒｅｆｕｎｄａｂｌｅインデックス（図１０（ｂ））およびｖａｌｉｄＵｎｔｉｌインデックス（図１０（ｃ））を示している。
【００９１】
なお、リテラルプロパティインデックス群に含まれるリテラルプロパティインデックスの数は３つに限らず、対象となる知識情報モデルに含まれるリテラルプロパティの種類数に依存する。
【００９２】
また、インデックスレポジトリ２０３は、これらのリテラルプロパティインデックス群を異なるテーブルに分離して格納する必要はなく、論理的に区別可能に同一のテーブルに格納してもよい。
【００９３】
メタデータインデックス群は、知識情報モデル中で、特殊な意味を持つプロパティについて、リソースおよびプロパティ値を対応付けて格納する。
【００９４】
例えば、図７に示した知識情報モデルに対応するメタデータインデックスの一例を図１１に示す。図１１のｔｙｐｅインデックスは、ｔｙｐｅというプロパティが各リソースの型（クラスまたはタイプとも呼ぶ）を表す特殊なプロパティであるとして用意されたメタデータインデックスである。ｔｙｐｅインデックスは、ｔｙｐｅプロパティを持つリソースとそのプロパティ値とを対応付けて格納している。
【００９５】
なお、本実施の形態では、リソースおよびプロパティの種別を識別するリソースＩＤおよびプロパティＩＤと、これらに付与されたタームとに同一の文字列情報を用いた例を説明している。これに対して、これらに異なる情報を用いる場合、インデックスレポジトリ２０３は、メタデータインデックスとしてＩＤインデックスを有するようにしてもよい。この場合、ＩＤインデックスは、リソースＩＤおよびプロパティＩＤと、これらに付与されたタームとを対応付けて格納する。
【００９６】
また、複数のメタデータインデックスを備える場合、インデックスレポジトリ２０３は、これらを異なるテーブルに分離して格納する必要はなく、論理的に区別可能に同一のテーブルに格納してもよい。
【００９７】
索引生成部２０２は、ＲＤＦで表された知識情報モデルを構成する各リソースＩＤ、各プロパティＩＤおよび各リテラル値を表すターム毎にそのポスティングリストを生成する。そして、索引生成部２０２は、各タームと、各タームのポスティングリストとを対応付けてインデックスレポジトリ２０３に登録する。
【００９８】
モデルデータＤＢ２０７は、図１２に示すようなサブグラフテーブルを備えている。
【００９９】
サブグラフテーブルは、知識情報モデルを構成するリソース毎に、そのリソースから所定の深さまでのサブグラフを抽出し、リソースＩＤに対応付けて格納している。
【０１００】
図１２の例では、各リソースＩＤと、そのリソースに１つのプロパティを介して隣接しているリソースまたはリテラル値までのサブグラフを格納している。サブグラフテーブルに格納するサブグラフの表現形式は、Ｎ３（Notation 3）などの文字列による表現、Ｊａｖａ（登録商標）オブジェクトなどのバイナリデータ、バイナリデータのシリアライズデータ、または、それらの圧縮形式などであってもよい。サブグラフの表現形式は、元の知識情報モデルの一部を再現できる形式であればよい。
【０１０１】
入出力部２０６は、クライアント装置１３から検索条件を取得し、取得した検索条件を検索部２０４に通知する。また、入出力部２０６は、検索部２０４から通知された検索結果をクライアント装置１３へ出力する。
【０１０２】
検索部２０４は、入出力部２０６から検索条件を受け取り、後述の検索パス生成部２０５を用いて検索パスおよび検索パスに対応するパスクエリを生成する。そして、検索部２０４は、生成したパスクエリを用いて、インデックスレポジトリ２０３に対する検索を行う。
【０１０３】
また、検索部２０４は、検索結果のリソースのサブグラフを、モデルデータＤＢ２０７から取得し、入出力部２０６に出力する。
【０１０４】
検索パス生成部２０５は、検索条件を表す検索パスをリソースおよびプロパティの列として生成する。
【０１０５】
例えば、検索パス生成部２０５は、検索条件のうち、具体的なリテラル値をプロパティとして持つよう制限されたリソースを制限リソースとして抽出し、目的リソースと制限リソースとを結ぶリソースおよびプロパティの列を検索パスとして生成する。
【０１０６】
ここで、検索パスは、検索条件の内容に応じて、先頭から末尾までリソースおよびプロパティがすべて特定されたパスになる場合と、一部のリソースまたはプロパティが特定され未特定箇所を含むパスになる場合がある。
【０１０７】
さらに、検索パス生成部２０５は、生成した検索パスにおけるリソースおよびプロパティの出現順序に基づいて、パスインデックスに対するパスクエリを生成する。このとき、検索パス生成部２０５は、検索パスに未特定箇所があれば、未特定箇所に挿入可能な要素数を考慮してパスクエリを生成する。
【０１０８】
以上のように構成された情報検索システム２の動作について図面を参照して説明する。
【０１０９】
まず、情報検索装置２１がインデックスレポジトリ２０３を生成する処理について図１３を参照して説明する。
【０１１０】
ここでは、まず、索引生成部２０２が、知識情報レポジトリ２２から知識情報モデルを取得する（ステップＳ１１）。
【０１１１】
次に、パスフィールド生成部２０１が、知識情報モデルを構成する各リソースについて接尾辞パスを連結したパスフィールドを生成する（ステップＳ１２）。
【０１１２】
次に、トークナイズ部２１２が、生成された各パスフィールドを知識情報モデルを構成するターム単位にトークナイズする（ステップＳ１３）。
【０１１３】
次に、索引生成部２０２が、知識情報モデルを構成する各リソース、各プロパティおよび各リテラルをそれぞれ表すターム毎に、そのポスティングリストを生成する。そして、索引生成部２０２は、各タームとそのポスティングリストとを対応付けてパスインデックスに登録する（ステップＳ１４）。さらに、索引生成部２０２は、タームがリテラルプロパティであれば、リテラルプロパティインデックスへの登録を行う。また、索引生成部２０２は、タームが特殊なプロパティを持つリソースであれば、メタデータインデックスへの登録を行う。
【０１１４】
次に、索引生成部２０２は、知識情報モデルを構成する各リソースのサブグラフを抽出し、モデルデータＤＢ２０７に登録する（ステップＳ１５）。
【０１１５】
以上で、情報検索装置２１はインデックス生成処理を終了する。
【０１１６】
なお、ステップＳ１２〜Ｓ１４の一連の処理と、ステップＳ１５の処理の間に実行順序の依存関係はなく、情報検索装置２１は、どちらを先に実行してもよい。また、情報検索装置２１が２つの処理を並列に実行可能であれば、ステップＳ１２〜Ｓ１４の一連の処理と、ステップＳ１５の処理とを並列に実行してもよい。
【０１１７】
次に、情報検索装置２１による検索処理について、図１４を参照して説明する。
ここでは、まず、入出力部２０６がクライアント装置１３から目的リソースの検索条件を取得する（ステップＳ２１でＹｅｓ）。
【０１１８】
次に、検索部２０４は、入出力部２０６によって取得された検索条件に基づいて、具体的なリテラル値をプロパティとして持つよう制限された制限リソース群およびその制限内容を抽出する（ステップＳ２２）。
【０１１９】
次に、検索部２０４は、検索パス生成部２０５を用いて、抽出された制限リソースのそれぞれについて、その制限内容に基づいて、制限リソースの実体を検索するためのクエリを生成する（ステップＳ２３）。
【０１２０】
次に、検索部２０４は、生成されたクエリを用いて、インデックスレポジトリ２０３を検索することにより、制限リソースの実体集合を得る（ステップＳ２４）。
【０１２１】
検索部２０４は、ステップＳ２２で抽出されたすべての制限リソースに対して、クエリの生成（ステップＳ２３）と検索（ステップＳ２４）を繰り返すことにより、制限リソース群の実体集合群を取得する。
【０１２２】
次に、検索部２０４は、ステップＳ２１で取得された検索条件と、ステップＳ２４で検索された制限リソースの実体集合群に基づいて、検索パス生成部２０５を用いて検索パスを生成する。そして、検索部２０４は、検索パス生成部２０５を用いて、生成した検索パスに基づいてパスインデックスを検索するためのパスクエリを生成する（ステップＳ２５）。
【０１２３】
次に、検索部２０４は、パスクエリを用いて、インデックスレポジトリ２０３を検索し、検索結果を表すリソースＩＤ群を取得する（ステップＳ２６）。
【０１２４】
次に、検索部２０４は、検索結果を表すリソースＩＤ群のサブグラフ群をモデルデータＤＢ２０７から取得する。そして、検索部２０４は、サブグラフ群を構成して検索結果を表すグラフデータを生成し、生成したグラフデータを入出力部２０６へ出力する。そして、入出力部２０６は、検索結果を表すグラフデータをクライアント装置１３に出力する（ステップＳ２７）。
【０１２５】
以上で、情報検索装置２１は検索処理を終了する。
【０１２６】
ここで、ステップＳ２５におけるパスクエリ生成処理の詳細について、図１５を用いて説明する。
【０１２７】
まず、検索パス生成部２０５は、検索部２０４から、検索条件と、制限リソース群と、制限リソースの実体集合群を受け取る。
【０１２８】
次に、検索パス生成部２０５は、検索条件から、検索結果として得たい目的リソースを抽出する（ステップＳ３１）。
【０１２９】
次に、検索パス生成部２０５が、各制限リソースに対して、次の処理を実施する。
【０１３０】
ここでは、まず、目的リソースと、この制限リソース間の知識情報モデル上でのプロパティのつらなりを特定し、プロパティ列を検索パスとして生成する（ステップＳ３２）。
【０１３１】
次に、検索パス生成部２０５は、この制限リソースの実体集合をＯＲ結合し、検索パスの制限リソースの位置に登録する（ステップＳ３３）。
【０１３２】
次に、検索パス生成部２０５は、検索パスの目的リソースの位置に目的リソースを示す予約語ＴＨＩＳを登録する（ステップＳ３４）。
【０１３３】
次に、検索パス生成部２０５は、生成した検索パスに基づいて、未特定箇所を考慮してターム間の距離１まで許容するフレーズクエリを生成する（ステップＳ３５）。ここで、ステップＳ３２〜Ｓ３４で生成された検索パスには、プロパティ間でリソースが特定されていない未特定箇所が含まれる場合がある。このため、検索パス生成部２０５は、プロパティ間の未特定箇所にリソースが１つまで挿入可能であるとするフレーズクエリを生成する。なお、プロパティ間に挿入可能な要素数は１つには限定されず、検索条件の内容に応じて適宜設定される。
【０１３４】
検索パス生成部２０５は、ステップＳ３２〜Ｓ３５の処理を、各制限リソースに対して実行する。
【０１３５】
次に、検索パス生成部２０５は、検索条件において目的リソースのプロパティに対する制限がある場合は、プロパティクエリ群を生成する（ステップＳ３６）。
【０１３６】
次に、検索パス生成部２０５は、すべての制限リソースに対するフレーズクエリ群と、目的リソースのプロパティクエリ群をＡＮＤ結合し、パスクエリとして検索部２０４に返却する（ステップＳ３７）。
【０１３７】
以上で、パスクエリ生成処理の説明を終了する。
【０１３８】
次に、情報検索装置２１による検索処理の一例について説明する。
【０１３９】
ここでは、クライアント装置１３が情報検索装置２１に対して、図７に示した知識情報モデルから「２０１０年内に保障が切れる掛け捨て保険に入っている家族がいる人を担当している営業担当者」を検索するよう要求した場合について再度図１４および図１５を用いて説明する。
【０１４０】
まず、入出力部２０６は、上述の検索条件を表す擬似ＳＱＬ文（式１）をクライアント装置１３から取得する（ステップＳ２１）。
[式１]
Select x; Where x type Employee, x
hasClient y, y hasFamilyMember z, z hasInsurance i, i validUntil ＜ 20110101, i
isNonrefundable true, i type Insurance; 
次に、検索部２０４は、式１から、変数ｉを制限リソースとして抽出する（ステップＳ２２）。
【０１４１】
次に、検索部２０４は、検索パス生成部２０５を用いて、この制限リソースを検索するクエリとして、変数ｉを制限している条件を用い式２のクエリを生成する（ステップＳ２３）。
[式２]
Select i; Where i validUntil ＜ 20110101, i
isNonrefundable true, i type Insurance; 
次に、検索部２０４は、式２を用いて、リテラルプロパティインデックス群およびメタデータインデックス群に対する検索を行い、制限リソースの実体として、リソースＩＤ  ａ１を得る（ステップＳ２４）。
【０１４２】
次に、検索パス生成部２０５は、式１から、目的リソースとして、ｘを抽出する（ステップＳ３１）。
【０１４３】
次に、検索パス生成部２０５は、目的リソースｘと、制限リソースｉ間の検索パスとして、
[hasClient][hasFamilyMember][hasInsurance]
を生成する（ステップＳ３２）。
【０１４４】
次に、検索パス生成部２０５は、検索パスに対して、制限リソースの位置である末尾に、制限リソースの実体ａ１を追加し、検索パスを、
[hasClient][hasFamilyMember][hasInsurance][a1]
とする（ステップＳ３３）
さらに、検索パス生成部２０５は、生成した検索パスに対して、目的リソースの位置である先頭に、予約語ＴＨＩＳを追加し、検索パスを、
[THIS][hasClient][hasFamilyMember][hasInsurance][a1]
とする（ステップＳ３４）。
【０１４５】
次に、検索パス生成部２０５は、生成した検索パスを元に、未特定箇所を考慮してターム間距離１を許容するフレーズクエリを生成する（ステップＳ３５）。このフレーズクエリは例えば次のように表現される。
THIS.{0,1}hasClient.{0,1}hasFamilyMember.{0,1}hasInsurance.{0,1}a1
ここで、.{0,1}はその位置に他のタームが１つまで挿入可能であることを表す。また、このフレーズクエリを概念的に表したものを図１６に示しておく。このように、検索パス生成部２０５は、検索パスにおけるタームの出現順序と未特定箇所に挿入可能な要素数を考慮してフレーズクエリを生成する。
【０１４６】
次に、検索パス生成部２０５は、目的リソースｘに対するプロパティ制限として、x type Employeeに相当するプロパティクエリを生成する（ステップＳ３６）。
【０１４７】
次に、検索パス生成部２０５は、ステップＳ３５で生成したフレーズクエリと、ステップＳ３６で生成したプロパティクエリをＡＮＤ結合し、パスクエリとして返却する（ステップＳ３７）。
【０１４８】
検索部２０４は、このパスクエリを用いて、パスインデックス、リテラルプロパティインデックス群およびメタデータインデックスに対する検索を行い、目的リソースとして、ｅ１を得る（ステップＳ２６）。
【０１４９】
ここで、ステップＳ２６において、検索部２０４が目的リソースを検索する動作例についてさらに詳細に説明する。
（ステップＳ２６−１）：検索部２０４は、パスインデックスから、フレーズクエリの先頭のタームＴＨＩＳを含むリソースを検索する（ｂ１，ｅ１，ｃ１，ｐ１，ａ１，ａ２が検索される）。
（ステップＳ２６−２）：検索部２０４は、パスインデックスから、次のタームhasClientを検索する（ｂ１，ｅ１が検索される）。
（ステップＳ２６−３）：検索部２０４は、ステップＳ２６−１およびＳ２６−２の結果をリソース単位でマージする（ｂ１，ｅ１が残る）。
（ステップＳ２６−４）：検索部２０４は、パスインデックスから、次のタームhasFamilyMemberを検索する（ｂ１，ｅ１，ｃ１が検索される）。
（ステップＳ２６−５）：ステップＳ２６−３およびＳ２６−４の結果をリソース単位でマージする（ｂ１，ｅ１が残る）。
（ステップＳ２６−６）：検索部２０４は、パスインデックスから、次のタームhasInsuranceを検索する（ｂ１，ｅ１，ｃ１，ｐ１が検索される）。
（ステップＳ２６−７）：検索部２０４は、ステップＳ２６−５およびＳ２６−６の結果をリソース単位でマージする（ｂ１，ｅ１が残る）。
（ステップＳ２６−８）：検索部２０４は、パスインデックスから、次のタームa1を検索する（ｂ１，ｅ１，ｃ１，ｐ１が検索される)。
（ステップＳ２６−９）：検索部２０４は、ステップＳ２６−７およびＳ２６−８の結果をリソース単位でマージする（ｂ１，ｅ１が残る）。
（ステップＳ２６−１０）：検索部２０４は、マージされて残ったリソースｂ１、ｅ１のパスフィールドの位置情報に基づいて、リソースのフィルタリングを行う（最終的な検索結果としてｅ１が残る）。
【０１５０】
なお、検索部２０４は、ステップＳ２６−１０におけるフィルタリング処理を、各ステップＳ２６−１〜９後にそれぞれ実行してもよい。また、検索部２０４は、このフィルタリング処理を各ステップＳ２６−１〜９後に実行するか否かを、検索処理またはマージ処理後のリソース数の増加傾向に基づいて判断してもよい。
【０１５１】
このようにして、検索結果としてリソースｅ１を得た検索部２０４は、リソースｅ１のサブグラフをモデルデータＤＢ２０７から取得し、入出力部２０６へ出力する（ステップＳ２７）。
【０１５２】
なお、クライアント装置１３によって要求される検索条件の表現形式は、式１のような擬似ＳＱＬ文に限定されず、例えば、ＲＤＦグラフそのものを表す情報や、ＳＰＡＲＱＬ  Ｐｒｏｔｏｃｏｌ  ａｎｄ  ＲＤＦ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（ＳＰＡＲＱＬ）などのＲＤＦクエリ言語であっても良い。
【０１５３】
次に、本発明の第２の実施の形態の効果について説明する。
【０１５４】
本発明の第２の実施の形態としての情報検索システムは、知識情報モデルが複雑化しても目的リソースを高速に検索することができる。
【０１５５】
その理由は、パスインデックスが、知識情報モデルを構成する語彙を索引語としているため、知識情報モデルが複雑化しても、検索速度に影響する索引語数を知識情報モデルの語彙数のオーダーに抑えられるためである。
【０１５６】
さらなる理由は、目的リソースを検索をする際に、パスクエリを構成する各タームを含むパスフィールドを有するリソースをパスインデックスから検索してマージすることによりリソースを絞り込んでいくので、マージ処理の計算量を削減できるからである。対して、非特許文献１に記載されたものの場合は、目的リソースを検索する際に、条件となる「x hasClient y」、「y hasFamilyMember z」をそれぞれ満たすものを検索してjoin結合していく。したがって、知識情報モデルの複雑化に伴い、join後に残るタプル数が組合せ的に増大し、join演算に時間がかかることになるからである。
【０１５７】
したがって、本発明の第２の実施の形態としての情報検索システムは、検索要求に含まれるリソースの連なりが長くなった場合でも、その影響をほとんど受けず略一定の検索速度で検索することができる。
【０１５８】
また、本発明の第２の実施の形態におけるパスインデックスのデータ構造は、目的リソースの検索対象となる知識情報モデルを格納するためのデータ構造として好適である。
【０１５９】
その理由は、パスインデックスが、知識情報モデルを構成するタームに、そのポスティングリストを対応付けて格納しているため、索引語数を抑えながら知識情報モデルを格納することができるからである。このデータ構造に対して、パスクエリを構成するタームを含むパスフィールドを有するリソースがパスインデックスから検索され、その後位置情報が用いられてフィルタリングされることにより、目的リソースを高速に検索可能だからである。
【０１６０】
また、本発明の第２の実施の形態としての情報検索システムは、知識情報モデルを格納する資源消費量を軽減することができる。
【０１６１】
その理由は、知識情報モデルを格納するのに必要なデータ構造が、モデルデータＤＢおよびインデックスレポジトリのみで済むためである。さらに、モデルデータＤＢ内のサブグラフは、検索には使用されず検索結果を提示する際に使用されるため、圧縮形式で格納されることも可能だからである。また、インデックスレポジトリのうち、パスインデックスは、インデックスサイズを決定する要因である索引語数を、パス数ではなく語彙数のオーダーに抑えることができるからである。さらに、リテラルプロパティインデックス群およびメタデータインデックス群は、パスインデックスに比べると十分小さく、かつ保存する情報もタームおよびリソースＩＤのみであるため資源の消費量は少ない。したがって、モデルデータＤＢおよびインデックスレポジトリの双方を小規模に抑えることが可能であり、記憶装置等の資源の消費量を軽減することができる。
【０１６２】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して説明する。
【０１６３】
まず、本発明の第３の実施の形態としての情報検索システム３の機能ブロック構成を図１７に示す。なお、図１７において、本発明の第２の実施の形態と同一の構成については同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１６４】
情報検索システム３は、本発明の第２の実施の形態としての情報検索システム２に対して、パスフィールド生成部２０１に替えてパスフィールド生成部３０１を有する情報検索装置３１を備える点が異なる。
【０１６５】
パスフィールド生成部３０１は、パスフィールド生成部２０１に対して、各リソースを起点としてたどることができるパスとして、接尾辞パスの代わりに完全パスを用いる点が異なる。ここで、完全パスとは、ルートリソースから起点となるリソースまでのパスを、起点となるリソースからの接尾辞パスに連結したパスである。
【０１６６】
例えば、パスフィールド生成部３０１によって生成されたパスフィールドの一例を、図１８に示す。図１８は、リソースｅ１のパスフィールドを表している。このリソースｅ１のパスフィールドは、ｅ１を起点とする１０本のパスが完全パスで表され、連結されたものである。
【０１６７】
以上のように構成された本発明の第３の実施の形態の動作について図面を参照して説明する。
【０１６８】
本発明の第３の実施の形態としての情報検索システム３は、本発明の第２の実施の形態と同様に、インデックス生成処理と、検索処理と、パスクエリ生成処理とを実行するが、本発明の第２の実施の形態とは、インデックス生成処理が異なる。
【０１６９】
情報検索システム３のインデックス生成処理について図１９を用いて説明する。情報検索システム３は、図１３に示した本発明の第２の実施の形態としての情報検索システム２のインデックス生成処理に対して、ステップＳ１２の代わりに、完全パスを用いてパスフィールドを生成するステップＳ４２を実行する点が異なる。
【０１７０】
ステップＳ４２の例として、図７にあげた知識情報モデルのリソースｅ１に対するパスフィールドの生成について説明する。パスフィールド生成部３０１は、リソースｅ１を起点とする１０本のパスを抽出する。そして、パスフィールド生成部３０１は、各パスを、[b1][hasEmployee]というルートリソースからリソースｅ１までのパスと、リソースｅ１からの接尾辞パスとを連結した完全パスとして表し、これらを連結してリソースｅ１のパスフィールドとする。
【０１７１】
情報検索装置３１は、ステップＳ１１およびＳ１３〜Ｓ１５を、本発明の第２の実施の形態におけるインデックス生成処理と同様に実行して、インデックス生成処理を終了する。
【０１７２】
次に、本発明の第３の実施の形態の効果について述べる。
【０１７３】
本発明の第３の実施の形態としての情報検索システムは、知識情報モデルに対する検索機能を向上させることができる。 
その理由は、完全パスを連結したパスフィールドを用いることにより、例えば「売り上げ５億円以上の企業に勤めている社員」といったように、制限リソースから目的リソースへのパスを検索する検索要求に対応できるからである。
【０１７４】
（第４の実施の形態）
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。
【０１７５】
まず、本発明の第４の実施の形態としての情報検索システム４の機能ブロック構成を図２０を参照して説明する。なお、図２０において、本発明の第２の実施の形態と同一の構成には同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１７６】
情報検索システム４は、本発明の第２の実施の形態としての情報検索システム２に対して、索引更新部４０９をさらに有する情報検索装置４１を備えている点が異なる。
【０１７７】
索引更新部４０９は、知識情報レポジトリ２２から、リソースと、そのリソースに関連するプロパティと、そのプロパティの目的語であるリソースまたはリテラルと、を取得する。そして、索引更新部４０９は、モデルデータＤＢ２０７に登録されているサブグラフとの比較を行い、変更、追加または削除されたリソースを差分リソースとして特定する。そして、索引更新部４０９は、インデックスレポジトリ２０３およびモデルデータＤＢ２０７に格納された情報のうち、差分リソースに関連する情報の更新を行う。
【０１７８】
以上のように構成された情報検索システム４の動作について図面を参照して説明する。
【０１７９】
情報検索システム４のインデックス生成処理と、検索処理と、パスクエリ生成処理とは、本発明の第２の実施の形態としての情報検索システム２と同様であるため、これらの動作の詳細な説明を省略する。
【０１８０】
さらに、情報検索システム４は、インデックス更新処理を行う。情報検索システム４のインデックス更新処理について図２１を用いて説明する。
【０１８１】
まず、索引更新部４０９が、知識情報レポジトリ２２から、リソースと、そのリソースに関連するプロパティと、その目的語のリソースまたはリテラルを取得する。そして、索引更新部４０９は、取得した情報とモデルデータＤＢ２０７に既に登録されているサブグラフとを比較して、変更または追加の差分リソースを一時記憶する（ステップＳ５１）。
【０１８２】
次に、索引更新部４０９が、モデルデータＤＢ２０７に登録されているが、知識情報レポジトリ２２に存在しないリソースを特定し、削除の差分リソースとして一時記憶する（ステップＳ５２）。
【０１８３】
次に、索引更新部４０９は、すべての差分リソースおよびそのサブグラフをモデルデータＤＢ２０７から削除する（ステップＳ５３）。
【０１８４】
次に、索引更新部４０９は、すべての差分リソースに関係する情報を、インデックスレポジトリ２０３から削除する（ステップＳ５４）。具体的には、索引更新部４０９は、パスインデックスから、差分リソースに対応するタプルを削除する。また、索引更新部４０９は、差分リソースに関する情報を含むポスティングリストから、該当する情報を削除する。また、索引更新部４０９は、リテラルプロパティインデックス群およびメタデータインデックス群からも差分リソースに関連するタプルを削除する。
【０１８５】
次に、索引更新部４０９は、変更または追加の各差分リソースについて、以下の処理を実行する。
【０１８６】
ここでは、まず、索引更新部４０９が、パスフィールド生成部２０１を用いて、この差分リソースのパスフィールドを生成する（ステップＳ５５）。
【０１８７】
次に、索引更新部４０９は、トークナイズ部２１２を用いて、知識情報レポジトリ２２から得たモデル中のタームに基づいて、ステップＳ５５で生成したパスフィールドをターム単位にトークナイズする（ステップＳ５６）。
【０１８８】
次に、索引更新部４０９は、この差分リソースに関係する情報を、インデックスレポジトリ２０３に登録する（ステップＳ５７）。具体的には、索引更新部４０９は、トークナイズされたパスフィールドに基づいて、この差分リソースのポスティングリストを生成し、パスインデックスへの登録を行う。また、索引更新部４０９は、この差分リソースのパスフィールドに含まれる各タームのポスティングリストに、この差分リソースとこのパスフィールドにおける該タームの位置情報とからなる情報をそれぞれ追加する。また、索引更新部４０９は、この差分リソースがリテラルプロパティまたは特殊なプロパティを持つリソースであれば、リテラルプロパティインデックス群またはメタデータインデックス群への登録も行う。
【０１８９】
次に、索引更新部４０９は、この差分リソースと、このリソースから所定の深さのサブグラフを、モデルデータＤＢ２０７へ登録する（ステップＳ５８）。
【０１９０】
ステップＳ５５〜Ｓ５８の処理を変更または追加の差分リソースすべてに実行すると、情報検索システム４は、インデックス更新処理を終了する。
【０１９１】
次に、本発明の第４の実施の形態の効果について述べる。
【０１９２】
本発明の第４の実施の形態としての情報検索システムは、知識情報から目的リソースをより高速に検索させるためのインデックスレポジトリの更新処理をより効率的に行うことができる。
【０１９３】
その理由は、知識情報レポジトリとモデルデータＤＢとを比較することにより、知識情報モデルの変更箇所を特定することができ、特定した変更箇所のみインデックスレポジトリおよびモデルデータＤＢを更新するためである。このとき、インデックスレポジトリおよびモデルデータＤＢの索引語数はモデルの語彙数のオーダーに抑えられているため、変更箇所をインデックスレポジトリおよびモデルデータＤＢに反映する更新時間を短縮することができるからである。
【０１９４】
なお、本発明の第２〜第４の実施の形態としての情報検索システムは、グラフ構造情報としてＲＤＦグラフで表された知識情報モデルから目的リソースを検索するものとして説明しているが、複数のノードおよびノード間を結ぶエッジによって表されるその他のグラフ構造情報から目的ノードを検索する場合にも適用可能である。
【０１９５】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した情報検索装置の動作を、本発明のコンピュータ・プログラムとして情報検索装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。また、当該ＣＰＵが係るコンピュータ・プログラムを実行することにより、上述の各実施の形態の機能ブロック構成図に示したパスフィールド生成部、索引生成部、索引更新部、トークナイズ部、検索部および検索パス生成部の各処理を実現する。
【０１９６】
また、上述した本発明の各実施の形態において、グラフ構造格納装置および知識情報レポジトリは、情報検索装置を構成するコンピュータの記憶装置によってローカルファイルシステムとして構成されていてもよい。
【０１９７】
また、上述した本発明の各実施の形態において、クライアント装置は、情報検索装置を構成するコンピュータの記憶装置に格納されたアプリケーションによって同一のコンピュータ上で実現されるものであってもよい。
【０１９８】
また、上述した本発明の各実施の形態において、情報検索装置は、クライアント装置から検索要求を取得する代わりに、入出力装置を介して利用者から検索要求を取得してもよい。この場合、情報検索装置は、検索結果も入出力装置を介して利用者に提示してもよい。
【０１９９】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２００】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０２０１】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０２０２】
（付記１）
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を備えた情報検索装置。
【０２０３】
（付記２）
前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行う、ことを特徴とする付記１に記載の情報検索装置。
【０２０４】
（付記３）
前記パスフィールド生成部は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表すことによって前記パスフィールドを生成する、ことを特徴とする付記１または付記２に記載の情報検索装置。
【０２０５】
（付記４）
前記グラフ構造情報において変更された要素を表す差分情報を取得し、前記差分情報に基づいて前記パスフィールド生成部および前記索引生成部を制御することによって前記インデックスレポジトリを更新する索引更新部をさらに備えた、ことを特徴とする付記１から付記３のいずれかに記載の情報検索装置。
【０２０６】
（付記５）
前記グラフ構造情報から前記各ノードを起点とする所定の深さのサブグラフを抽出し、抽出したサブグラフを格納するサブグラフ格納部と、
前記検索部によって検索された目的ノードを起点とするサブグラフを提示する検索結果提示部と、
をさらに備えた、ことを特徴とする付記１から付記４のいずれかに記載の情報検索装置。
【０２０７】
（付記６）
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、
前記各要素と、
前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、
を対応付けて格納したデータ構造。
【０２０８】
（付記７）
前記ポスティングリストに含まれる前記位置情報は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表して連結したパスフィールドにおける位置を表す、ことを特徴とする付記６に記載のデータ構造。
【０２０９】
（付記８）
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、
前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、
前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、
を備えた情報検索システムであって、
前記情報検索装置は、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を有する情報検索システム。
【０２１０】
（付記９）
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、
をコンピュータに実行させるコンピュータ・プログラム。
【０２１１】
（付記１０）
グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、
情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
クライアント装置が、
前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、
前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
【０２１２】
（付記１１）
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
【０２１３】
（付記１２）
前記情報検索装置の前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記８に記載の情報検索システム。
【０２１４】
（付記１３）
前記検索処理において、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記９に記載のコンピュータ・プログラム。
【０２１５】
（付記１４）
前記情報検索装置が、
前記目的ノードを検索する際に、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記１０または付記１１に記載の情報検索方法。
【０２１６】
なお、本発明は、日本国にて２０１０年５月１４日に特許出願された特願２０１０−１１１９４０の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【産業上の利用可能性】
【０２１７】
本発明は、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することができ、大規模な知識情報モデルから目的リソースを検索する知識情報検索装置等として好適である。
【符号の説明】
【０２１８】
１、２、３、４    情報検索システム
１１、２１、３１、４１    情報検索装置
１２    グラフ構造情報格納装置
１３    クライアント装置
２２    知識情報レポジトリ
１０１、２０１、３０１    パスフィールド生成部
１０２、２０２    索引生成部
１０３、２０３    インデックスレポジトリ
１０４、２０４    検索部
１０５、２０５    検索パス生成部
２０６    入出力部
２０７    モデルデータＤＢ
２１２    トークナイズ部
４０９    索引更新部
【図１】
2011142134.tif 000003
【図２】
2011142134.tif 000004
【図３】
2011142134.tif 000005
【図４】
2011142134.tif 000006
【図５】
2011142134.tif 000007
【図６】
2011142134.tif 000008
【図７】
2011142134.tif 000009
【図８】
2011142134.tif 000010
【図９】
2011142134.tif 000011
【図１０】
2011142134.tif 000012
【図１１】
2011142134.tif 000013
【図１２】
2011142134.tif 000014
【図１３】
2011142134.tif 000015
【図１４】
2011142134.tif 000016
【図１５】
2011142134.tif 000017
【図１６】
2011142134.tif 000018
【図１７】
2011142134.tif 000019
【図１８】
2011142134.tif 000020
【図１９】
2011142134.tif 000021
【図２０】
2011142134.tif 000022
【図２１】
2011142134.tif 000023
【図２２】
2011142134.tif 000024
【図２３】
2011142134.tif 000025
【手続補正書】
【提出日】平成23年12月26日(2011.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を備えた情報検索装置。
【請求項２】
前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行う、
ことを特徴とする請求項１に記載の情報検索装置。
【請求項３】
前記パスフィールド生成部は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表すことによって前記パスフィールドを生成する、
ことを特徴とする請求項１または請求項２に記載の情報検索装置。
【請求項４】
前記グラフ構造情報において変更された要素を表す差分情報を取得し、前記差分情報に基づいて前記パスフィールド生成部および前記索引生成部を制御することによって前記インデックスレポジトリを更新する索引更新部をさらに備えた、
ことを特徴とする請求項１から請求項３のいずれかに記載の情報検索装置。
【請求項５】
前記グラフ構造情報から前記各ノードを起点とする所定の深さのサブグラフを抽出し、抽出したサブグラフを格納するサブグラフ格納部と、
前記検索部によって検索された目的ノードを起点とするサブグラフを提示する検索結果提示部と、
をさらに備えた、ことを特徴とする請求項１から請求項４のいずれかに記載の情報検索装置。
【請求項６】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、
前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、
前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、
を備えた情報検索システムであって、
前記情報検索装置は、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を有する情報検索システム。
【請求項７】
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、
をコンピュータに実行させるコンピュータ・プログラム。
【請求項８】
グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、
情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
クライアント装置が、
前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、
前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
【国際調査報告】
2011142134.tif 000026
2011142134.tif 000027
2011142134.tif 000028
2011142134.tif 000029
2011142134.tif 000030
2011142134.tif 000031