(57)【要約】【課題】データ要素をノードとしデータ要素同士の関係をリンクとするグラフ内での検索において、複数のリンクを跨ぐデータ要素同士の関係が満たすべき条件を厳密に指定しなくても検索できるよう支援する。【解決手段】ユーザは、グラフ中での基準位置を示す基準ノードと、検索したい部分グラフを特定する検索条件とを、基準ノード受付部１２及び検索条件受付部１６に指定する。検索処理部２６は、グラフ中からその検索条件を満たす部分グラフを検索する。ソート部３０は、それら各検索結果を、例えば基準ノードからのホップ数などに基づき順位付けする。ソート結果提示部４２は、各検索結果に対し基準ノードから当該検索結果の部分グラフまでのグラフ上の経路の情報を関連づけて表示した表示画像を提供する。ユーザは経路情報を参考に、それら検索結果の中から自分の欲しいものを選択する。【選択図】図１
2012128479.tif 000002
【特許請求の範囲】
【請求項１】
各データ要素をノードとしそれらデータ要素同士の関係を表す関係データをリンクとするグラフを表すグラフデータについて、前記グラフにおける検索の基準位置を示す基準ノードと、検索対象のノード又はリンク又はノードとリンクの組合せが満たすべき条件を示す検索条件と、の入力を受け付ける入力受付手段と、
前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを前記グラフデータから検索する検索手段と、
前記検索手段により検索された１以上の検索結果を、それぞれ、前記基準ノードから当該検索結果までの前記グラフ上の経路を示す経路データとともに示す検索結果データを生成する検索結果データ生成手段と、
を備える検索装置。
【請求項２】
前記検索結果データに示された１以上の検索結果の中からユーザの選択を受け付ける選択受付手段と、
前記選択受付手段に対してユーザが選択した検索結果についての経路データを記憶する経路データ記憶手段と、
類似検索の指示と共に、当該類似検索の基準位置を示す第２基準ノードの入力をユーザから受け付ける類似検索指示受付手段と、
前記類似検索の指示を受け付けた場合、前記検索手段が求めた前記各検索結果の少なくとも一部を、前記グラフ上での前記第２基準ノードから当該検索結果までの経路の、前記経路データ記憶手段に記憶された前記経路データが示す経路との類似度の高い順に提示されるよう制御する提示制御手段と、
を備えることを特徴とする請求項１に記載の検索装置。
【請求項３】
前記提示制御手段は、類似検索範囲の広さを示すあらかじめ設定されたリンク数に対し、前記検索条件が特定する部分グラフの最大リンク数を加算することで類似検索リンク数を求め、前記検索結果のうち、前記第２基準ノードから前記類似検索リンク数以内の範囲に含まれるものについて、前記グラフ上での前記第２基準ノードから当該検索結果までの経路の、前記経路データ記憶手段に記憶された前記経路データが示す経路との類似度の高い順に提示されるよう制御する、
ことを特徴とする請求項２に記載の検索装置。
【請求項４】
前記検索手段は、検索範囲の広さを示すあらかじめ設定されたリンク数に対し、前記検索条件が特定する部分グラフの最大リンク数を加算することで加算リンク数を求め、前記グラフのうち前記基準ノードから前記加算リンク数以内の範囲で、前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを検索する、
ことを特徴とする請求項１から３のいずれか１項に記載の検索装置。
【請求項５】
コンピュータを、
各データ要素をノードとしそれらデータ要素同士の関係を表す関係データをリンクとするグラフを表すグラフデータについて、前記グラフにおける検索の基準位置を示す基準ノードと、検索対象のノード又はリンク又はノードとリンクの組合せが満たすべき条件を示す検索条件と、の入力を受け付ける入力受付手段、
前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを前記グラフデータから検索する検索手段、
前記検索手段により検索された１以上の検索結果を、それぞれ、前記基準ノードから当該検索結果までの前記グラフ上の経路を示す経路データとともに示す検索結果データを生成する検索結果データ生成手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置及びプログラムに関する。
【背景技術】
【０００２】
データ要素同士の関係が構成するグラフ構造を記述する方式が知られている。例えば、リソース同士の関係を主語、述語、目的語の組（「トリプル」と呼ばれる）で記述するＲＤＦ（Resource Description Framework）はその一例である。ＲＤＦでは、複数のトリプルにより、主語又は目的語であるリソースをノードとし、述語をリンク（エッジ）とするグラフが表される。また、ＲＤＦで記述されたデータを検索するコンピュータ言語として、例えばＳＰＡＲＱＬ（SPARQL Protocol and RDF Query Language）が知られている。
【０００３】
特許文献１に開示されたデータベースシステムでは、複数のノードからなるノード集合体と各ノード間の関連の程度を示すリンクの集合からなるリンク集合体とを定義する。ノード・リンク集合体をデータベースのフロントエンドにおき、任意のノードが着目ノードとして指定された場合に、データベース内から着目ノードに対応するデータがオペレータに提供されるようにする。各ノードにはキーワードを定義しておく。オペレータが着目ノードに対して検索指示を与えると、リンクを介して、着目ノードに対してある程度以上の関連性を有する各ノードのキーワードがオペレータに提示され、そのうちの１つがオペレータにより新たな着目ノードとして採択される。各リンクは重みをもち、ノードの採択行為により、重みづけの修正や新リンクの追加が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１９８７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、データ要素をノードとしデータ要素同士の関係をリンクとするグラフ内での検索において、複数のリンクを跨ぐデータ要素同士の関係が満たすべき条件を厳密に指定しなくても検索できるようユーザを支援することができる装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、各データ要素をノードとしそれらデータ要素同士の関係を表す関係データをリンクとするグラフを表すグラフデータについて、前記グラフにおける検索の基準位置を示す基準ノードと、検索対象のノード又はリンク又はノードとリンクの組合せが満たすべき条件を示す検索条件と、の入力を受け付ける入力受付手段と、前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを前記グラフデータから検索する検索手段と、前記検索手段により検索された１以上の検索結果を、それぞれ、前記基準ノードから当該検索結果までの前記グラフ上の経路を示す経路データとともに示す検索結果データを生成する検索結果データ生成手段と、を備える検索装置である。
【０００７】
請求項２に係る発明は、前記検索結果データに示された１以上の検索結果の中からユーザの選択を受け付ける選択受付手段と、前記選択受付手段に対してユーザが選択した検索結果についての経路データを記憶する経路データ記憶手段と、類似検索の指示と共に、当該類似検索の基準位置を示す第２基準ノードの入力をユーザから受け付ける類似検索指示受付手段と、前記類似検索の指示を受け付けた場合、前記検索手段が求めた前記各検索結果の少なくとも一部を、前記グラフ上での前記第２基準ノードから当該検索結果までの経路の、前記経路データ記憶手段に記憶された前記経路データが示す経路との類似度の高い順に提示されるよう制御する提示制御手段と、を備えることを特徴とする請求項１に記載の検索装置である。
【０００８】
請求項３に係る発明は、前記提示制御手段は、類似検索範囲の広さを示すあらかじめ設定されたリンク数に対し、前記検索条件が特定する部分グラフの最大リンク数を加算することで類似検索リンク数を求め、前記検索結果のうち、前記第２基準ノードから前記類似検索リンク数以内の範囲に含まれるものについて、前記グラフ上での前記第２基準ノードから当該検索結果までの経路の、前記経路データ記憶手段に記憶された前記経路データが示す経路との類似度の高い順に提示されるよう制御する、ことを特徴とする請求項２に記載の検索装置である。
【０００９】
請求項４に係る発明は、前記検索手段は、検索範囲の広さを示すあらかじめ設定されたリンク数に対し、前記検索条件が特定する部分グラフの最大リンク数を加算することで加算リンク数を求め、前記グラフのうち前記基準ノードから前記加算リンク数以内の範囲で、前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを検索する、ことを特徴とする請求項１から３のいずれか１項に記載の検索装置である。
【００１０】
請求項５に係る発明は、コンピュータを、各データ要素をノードとしそれらデータ要素同士の関係を表す関係データをリンクとするグラフを表すグラフデータについて、前記グラフにおける検索の基準位置を示す基準ノードと、検索対象のノード又はリンク又はノードとリンクの組合せが満たすべき条件を示す検索条件と、の入力を受け付ける入力受付手段、前記検索条件を満たすノード又はリンク又はノードとリンクの組合せを前記グラフデータから検索する検索手段、前記検索手段により検索された１以上の検索結果を、それぞれ、前記基準ノードから当該検索結果までの前記グラフ上の経路を示す経路データとともに示す検索結果データを生成する検索結果データ生成手段、として機能させるためのプログラムである。
【発明の効果】
【００１１】
請求項１又は５に係る発明によれば、複数のリンクを跨ぐデータ要素同士の関係が満たすべき条件を厳密に指定しなくても検索できるようユーザを支援することができる。
【００１２】
請求項２に係る発明によれば、検索結果のうち少なくとも一部を、新たに指定された第２の基準ノードから各検索結果までの経路の、入力受付手段が受け付けた基準ノードか検索手段による検索結果のうちユーザが選択したものまでの経路に対する類似度の高い順に提示することができる。
【００１３】
請求項３に係る発明によれば、第２の基準ノードから指定されたリンク数以内の類似検索範囲から一部がはみ出す部分グラフも提示することができる。
【００１４】
請求項４に係る発明によれば、基準ノードから指定されたリンク数以内の検索範囲から一部がはみ出す部分グラフも検索することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態の検索装置の構成例を示す機能ブロック図である。
【図２】データ要素群が構成するグラフの一例を示す図である。
【図３】グラフを規定するデータの一例を示す図である。
【図４】検索処理の手順の一例を示すフローチャートである。
【図５】関連ノード抽出処理の手順の一例を示すフローチャートである。
【図６】関連ノード抽出処理の結果得られるデータの一例を示す図である。
【図７】検索条件の部分グラフの一例を示す図である。
【図８】図２のグラフにおける検索結果の例を示す図である。
【図９】ソート結果のデータ内容の一例を示す図である。
【図１０】類似検索処理の手順の一例を示すフローチャートである。
【図１１】類似検索結果の例を示す図である。
【図１２】検索条件を満たす部分グラフの一部が検索範囲からはみ出す例を示す図である。
【図１３】検索範囲を拡張することで元の検索範囲からはみ出す部分グラフが検索できるようになることを示す図である。
【発明を実施するための形態】
【００１６】
図１に、実施形態の検索装置の機能的な構成の一例を示す。
【００１７】
図１の構成において、データベース１０には、データ要素同士の関係が構成するグラフ構造を表すデータが記憶されている。以下では、データ要素同士の関係をＲＤＦで表現する場合の例を用いて説明する。ただし、実施形態の検索手法は、ＲＤＦ以外の方式を用いる場合に適用してもよい。
【００１８】
図２に、データ要素同士の関係のグラフの例を示す。この例では、楕円形のノードがデータ要素を示し、ノード同士を結ぶリンク（矢印で示す）がそれらノード同士の関係を示す。この例では、ノード内の文字列が、対応するデータ要素のデータ内容の少なくとも一部を示し、リンクの矢印の近傍に表示された文字列が、データ要素間の関係の種類を示す。ＲＤＦを用いている場合、矢印の根本側のノードが主語を、矢印の先端側のノードが目的語をそれぞれ示し、リンク（矢印）がそれら両者間の関係である述語を示す。例えば、ノード１０２と１０４とが構成する関係は、"Workplace-a"という識別名の作業場所は"User-c"という識別名のユーザにより「参加された」（"participated"）、ということを示す（言い換えれば、「"Workplace-a"に"User-c"が参加した」ということ）。
【００１９】
図３は、図２に示したグラフを表すデータの一例を示す。図３に例示するデータには、主語、述語、目的語の組である「トリプル」が複数含まれている。１つの例では、データベース１０には、図３に例示するようなデータが登録されている。ただし、これはあくまで一例に過ぎず、データ要素間の関係を記述できるデータ形式であれば、図３に例示した形式以外の形式を用いてもよい。
【００２０】
再び図１の説明に戻ると、データベース１０は、後で説明する関連ノード抽出部２２、検索処理部２６等のグラフ検索のための機能が実装されるコンピュータに対して実装されていてもよいし、このコンピュータからインターネット等のネットワークを介して接続された別のコンピュータに実装されていてもよい。
【００２１】
基準ノード指定受付部１２は、検索のための指定項目の１つとして、ユーザから基準ノードの指定を受け付ける。基準ノードは、ユーザが検索の基準位置（すなわち目印）とするノードのことである。ホップ数指定受付部１４は、基準ノードからの検索範囲を表す上限ホップ数（すなわち、リンクの数）の指定をユーザから受け付ける。
【００２２】
検索条件指定受付部１６は、グラフから検索すべき検索対象が満たすべき検索条件の指定をユーザから受け付ける。検索対象は、例えば部分グラフの形で指定してもよい。検索条件となる部分グラフは、典型的には、１以上のノードが１以上のリンクで結ばれた一続きのグラフである。また、１つのリンクのみ、あるいは１つのノードのみ、を検索条件の部分グラフとして指定可能としてもよい。検索条件の部分グラフに含まれるノード及びリンクの１以上を変数としてもよい。検索条件は、部分グラフ全体を検索結果として求めるものであってもよいし、その検索条件に適合（マッチ）する部分グラフの中の指定した１以上の変数を求めるものであってもよい。この場合、データベース１０に記憶されたデータにより表されるグラフの中から、検索条件の部分グラフに適合する部分グラフが検索される。なお、検索条件は、例えば、ＳＰＡＲＱＬ等のクエリ言語により記述すればよい。
【００２３】
本実施形態の検索装置は、「初期検索」と「類似検索」の２種類の検索方式をサポートしている。初期検索は、基準ノード及び検索条件を指定して行う検索である。一方、類似検索は、初期検索の検索結果を利用した検索である。類似検索では、基準ノードの指定は受けるが、検索条件の指定は不要である。なお、初期検索及び類似検索のどちらについても、検索範囲を規定するホップ数の指定は可能であるが必須ではない（ホップ数を指定しない場合、データベース１０に記憶されたデータにより表されるグラフ全体となる）。したがって、初期検索のためのユーザインタフェース（ＵＩ）である初期検索ＵＩ１８は、基準ノード指定受付部１２，検索条件指定受付部１６及びホップ数指定受付部１４を含んだものとなり、類似検索のためのＵＩである類似検索ＵＩ２０は基準ノード指定受付部１２及びホップ数指定受付部１４を含んだものとなる。基準ノード指定受付部１２，ホップ数指定受付部１４及び検索条件指定受付部１６は、基準ノード、ホップ数、検索条件などの指定のための入力画面の画像を例えばウェブページその他の形式で作成し、その入力画面画像をユーザが操作するクライアント（例えばウェブブラウザ、あるいは専用の検索用クライアント）に対して提供する。この場合、クライアントは、図１に示した検索装置が実装されたコンピュータ上に実装されてもよいし、このコンピュータに対してインターネット等のネットワークを介して接続されるコンピュータ上に実装されていてもよい。
【００２４】
関連ノード抽出部２２は、基準ノードから、指定されたホップ数の範囲内に含まれるノード（及びリンク）を抽出する。抽出されたノード群からなる部分グラフが、検索上範囲となる。関連ノード記憶部２４には、それら抽出された関連ノード群が記憶される。
【００２５】
検索処理部２６は、関連ノード記憶部２４に記憶された関連ノード群からなる部分グラフから、検索条件に適合する部分グラフを検索する。検索結果記憶部２８は、検索処理部２６の検索結果を記憶する。
【００２６】
ソート部３０は、検索結果記憶部２８に記憶された各検索結果の順位付け（すなわちスコア付け）と、順位（又はスコア）に基づくソート（並べ替え）処理を実行する。この実施形態では、ソート部３０は、ホップ数基準ソート処理３２と経路類似度基準ソート処理３４の２種類の順位付け及びソート処理の機能を備える。
【００２７】
ホップ数基準ソート処理３２は、基準ノードから検索結果の部分グラフまでのホップ数（すなわちリンクの数）に基づいて順位付け及びソートを行うものである。基準ノードからのホップ数が少ないほど順位（あるいはスコア）を高くし、順位が高いものから降順に検索結果をソートする。ホップ数基準ソート処理３２は、例えば、初期検索ＵＩ１８から指示された初期検索の結果をソートする際に用いられる。
【００２８】
経路類似度基準ソート処理３４では、基準ノードから検索結果までのグラフ上での経路と、基準の経路との類似度に基づいて順位付け及びソートを行う。基準の経路としては、例えば、初期検索の際の基準ノードから、初期検索の検索結果のうちユーザが選択したものまでのグラフ上での経路を用いればよい。経路類似度基準ソート処理３４は、例えば、初期検索の結果を利用した類似検索の検索結果の順位付け及びソートの際に用いられる。
【００２９】
なお、例示したホップ数基準ソート処理３２と経路類似度基準ソート処理３４はあくまで一例に過ぎず、別の基準に基づく順位（スコア）付け及びソート処理を採用してもよい。ソート結果記憶部３６は、ソート部３０によるソート結果を記憶する。
【００３０】
検索結果提示ＵＩ４０は、関連ノード抽出部２２，検索処理部２６及びソート処理部３０による検索及びソート処理の結果をユーザに提示するユーザインタフェース処理を実行する。検索結果提示ＵＩ４０は、ソート結果提示部４２及び選択受付部４４を備える。
【００３１】
ソート結果提示部４２は、ソート部３０によるソート結果（例えばこれはソート結果記憶部３６に保持されている）を表示するソート結果表示画像を例えばウェブページなどの形式で生成し、この表示画像をユーザが操作するクライアント（例えばウェブブラウザ、あるいは専用の検索用クライアント）に提供する。
【００３２】
選択受付部４４は、そのソート結果表示画像において順位（又はスコア）に従って並べられた各検索結果の中から、ユーザが着目するものの選択を受け付ける。例えば、ユーザが選択受付部４４を用いて、表示された各検索結果の中から更に詳細に確認したいものを選択すると、選択された検索結果の詳細情報が表示されるようにしてもよい。詳細情報としては、例えば基準ノードからその検索結果の部分グラフまでのグラフ上の経路の表示情報（例えばそのグラフ上でその経路を強調表示したものなど）や、検索結果の部分グラフに含まれるノードやリンクについての情報（例えばノードに含まれるＵＲＬ（Uniform Resource Locator）が指し示すリソースの内容など）などがある。また、選択受付部４４は、ソートされた各検索結果のうち、ユーザが次の類似検索における基準とするものの選択を受け付ける機能を備える。ユーザが、次の類似検索の基準とする検索結果を選択すると、選択受付部４４は、基準ノードからその選択された検索結果までのグラフ上での経路を基準経路として求め、基準経路記憶部３８に記憶する。基準経路記憶部３８に記憶された基準経路は、後の類似検索における検索結果をソートする際に経路類似度基準ソート処理３４によって参照される。
【００３３】
次に、この実施形態の検索装置における検索処理の流れの例を説明する。
【００３４】
この実施形態の検索は、初期検索から始まる。初期検索では、図４に示すように、まず初期検索ＵＩ１８の基準ノード指定受付部１２により、グラフ中のノードのうち基準ノードとするノードの指定をユーザから受け付けると共に（Ｓ１０）、ホップ数指定受付部１４によりユーザから上限ホップ数の指定を受け付ける（Ｓ１２）。
【００３５】
次に、関連ノード抽出部２２は、指定された基準ノードから指定された上限ホップ数以内で到達できるノード群を、関連ノード群として抽出する（Ｓ１４）。データベース１０に記憶されたデータにより規定される元のグラフのうち、抽出された関連ノード群により構成される部分グラフが、以降の検索処理における検索範囲となる。例えば、図２のグラフにおいて、ノード１０２が基準ノードに指定され、上限ホップ数が「３」と指定された場合、検索範囲は図８に破線の矩形で示す範囲となる。
【００３６】
関連ノード群の抽出処理（Ｓ１４）の詳細な処理手順の一例を、図５に示す。この例では、まずホップ数のカウンタを１に初期化し（Ｓ７０）、処理対象とする注目ノードを収容するためのリストに、Ｓ１０で指定された基準ノードを入れる（Ｓ７２）。ここで、注目ノードのリストは、ホップ数ごとに作成される。例えば、Ｓ７２では、カウンタが示すホップ数「１」に対応するリストに対し、基準ノードが唯一の注目ノードとして登録されることになる。
【００３７】
次に、リスト中の注目ノードごとに、Ｓ７４〜Ｓ８０の処理を実行する。すなわち、Ｓ７４でリストから注目ノードを１つ取り出し、Ｓ７６で、元のグラフにおいてその注目ノードに隣接する（すなわち１つのリンクを介して接続された）ノードをすべて、関連ノードとして抽出する。なお、Ｓ７６では、既に関連ノードとして抽出済のノードは、重複して抽出しない。次に、抽出した各関連ノードについて、基準ノードから当該関連ノードまでのグラフ上での経路を求め、その経路の情報を当該関連ノードに対応づけて関連ノード記憶部２４に登録する（Ｓ７８）。
【００３８】
このようにして関連ノード記憶部２４に記憶される各関連ノードのデータの例を、図６に示す。この例では、関連ノードごとに、そのノードの識別情報（図中での「ノード」）、基準ノードからのホップ数（図中での「ホップ数」）、及び基準ノードからの経路情報（図中での「基準ノードからの経路」）が登録されている。ここで「ホップ数」は、Ｓ７８の処理を行う時点でのカウンタの値を登録すればよい。基準ノードからの経路情報は、例えば、基準ノードから出発して当該関連ノードに到達するまでに通過するグラフ上のリンク及びノードを、通過する順に並べたリストである。図６に示した関連ノード群のデータは、図２のグラフにおいてノード１０２を基準ノードとした場合の例である。
【００３９】
再び図５の説明に戻ると、Ｓ７６にて抽出された各隣接ノードが、次のホップ数に対応するリストに対して注目ノードとして追加される（Ｓ８０）。なお、Ｓ７４でリストから取り出された注目ノードは、リストからは削除されている。
【００４０】
今回のホップ数に対応するリストに含まれるすべての注目ノードについてＳ７４〜Ｓ８０の処理が終了すると、ホップ数のカウンタの値を１だけインクリメントする（Ｓ８２）。そして、カウンタの値が上限ホップ数を上回ったかどうかを検査し（Ｓ８４）、上回っていなければ、そのカウンタ値に対応するリストに含まれる各注目ノードを対象として、Ｓ７４〜Ｓ８０の処理を行う。Ｓ８４で、カウンタの値が上限ホップ数を超えていると判定された場合、図５の処理は終了する。
【００４１】
再び図４の手順の説明に戻る。初期検索ＵＩ１８の検索条件指定受付部１６により、検索条件の指定を受け付ける（Ｓ１６）。検索条件として指定される部分グラフの例を図７に示す。図７に例示する部分グラフは、"Document"（文書）に該当する種類のノードを主語とし、"Comment"（コメント）に該当する種類のノードを目的語とし、述語が"Commented"（コメントされた）である１つのトリプルで表されるグラフである。この部分グラフは、ある文書に対しあるコメントが付されている、という関係を表す。もちろん、検索条件としては、３以上のノードを含んだもっと複雑な部分グラフを指定してもよい。図４の手順では関連ノード群の抽出（Ｓ１４）の後に検索条件の指定を受け付けているが、検索条件の指定を受け付けるタイミングはＳ１４の前であってももちろんよい。ユーザが入力した検索条件（部分グラフ）は、例えばＳＰＡＲＱＬにより記述され、検索処理部２６に渡される。
【００４２】
検索処理部２６は、Ｓ１４で抽出された関連ノード群（すなわち検索範囲）の中から、Ｓ１６で指定された検索条件にマッチする部分グラフを検索する（Ｓ１８）。例えば、図２に例示したグラフにおいて、ノード１０２を基準ノードとし、上限ホップ数を３とし、図７に例示した部分グラフを検索条件として検索を行うと、図８に例示するように、部分グラフ１１０及び１１２が検索結果として求められる。
【００４３】
次に、ソート部３０が、検索処理部２６により検索された各検索結果を、ホップ数の順にソートする（Ｓ２０）。このソート処理では、例えば、Ｓ１８で求められた検索結果ごとに、当該検索結果の部分グラフに含まれる各ノードの基準ノードからのホップ数を関連ノード記憶部２４（図６参照）から求め、それらホップ数のうちの例えば最小値を当該検索結果に対応するホップ数とする。そして、そのホップ数の昇順に各検索結果をソートする。ソート結果は、ソート結果記憶部３６に記憶される。ソート結果の例を、図９に示す。この例では、ソート結果記憶部３６には、各検索結果の部分グラフが、対応するホップ数の小さい順に、基準ノードからその部分グラフまでの経路と共に登録される。なお、この経路の情報は、当該検索結果の部分グラフにおけるホップ数が最小のノードの、基準ノードからの経路情報であり、これは関連ノード記憶部２４から求めればよい。なお、ＲＤＦにより表されるグラフは有向グラフ（すなわち、述語が表すリンクは、例えば主語から目的語を指す矢印となる）なので、基準ノードから部分グラフまでの経路に含まれるリンクは、（基準ノードから部分グラフの入口のノードに向かって）順方向のものと逆方向のものがある。図９では、逆方向のリンクには、下線を付している。
【００４４】
なお、ここで説明したソート処理の例では、検索結果の部分グラフに含まれるノードの中のホップ数の最小値を当該検索結果のホップ数としたが、これは一例に過ぎない。この代わりに、検索結果の部分グラフに含まれるノードの中のホップ数の例えば最大値を当該検索結果のホップ数としてもよい。
【００４５】
このようにソート結果が求められると、そのソート結果がソート結果提示部４２によりユーザに提供される（Ｓ２２）。提示されるソート結果の表示画像には、順位に従って並べられた各検索結果が、基準ノードからのグラフ上の経路の情報と共に表示される。
【００４６】
基準ノードから検索結果の部分グラフまでの全体をユーザが前もって検索条件として指定することは困難な場合が多いが、基準ノードと部分グラフ（検索条件）とを指定することはそれよりもはるかに容易である。ユーザが、例えば断片的な記憶などを元に基準ノードと検索条件の部分グラフとを本実施形態の検索装置に指定すれば、この検索装置は、検索条件を満たす各検索結果（部分グラフ）を、基準ノードからその検索結果までの経路の情報と共にユーザに提供する。ユーザは、経路の情報も参考に、検索結果の各部分グラフの中から、自分が検索したかったものを特定する。この意味では、経路の情報が第一義的であり、ホップ数に基づく順位付けは参考的な情報である。
【００４７】
ユーザは、選択受付部４４に対して、ソート結果に含まれる各部分グラフの中から、自分が検索したかったものではないかと思われる部分グラフを選択してもよい。選択が行われると（Ｓ２４の選択結果がＹｅｓ）、ソート結果提示部４２は選択された部分グラフについての詳細情報を表示し（Ｓ２６）、基準ノードから選択された部分グラフまでの経路情報を、基準経路記憶部３８に登録する（Ｓ２８）。ここで、ソート結果から部分グラフを選択すると、例えば、類似検索を指示するためのＧＵＩ（グラフィカルユーザインタフェース）が画面表示され、ユーザが類似検索の実行を指示すると、図１０に例示する処理手順が実行される。ユーザは、類似検索の実行ではなく、ソート結果から他の部分グラフを選択してもよく（図４では表示省略）、この場合新たに選択された部分グラフについてＳ２６及びＳ２８の処理が実行される。
【００４８】
また、ユーザは、類似検索に進む代わりに、上限ホップ数又は検索条件（部分グラフ）の少なくとも一方を変更してもよい（Ｓ３２の判定結果がＹｅｓ）。このような変更を行う場合、処理はステップＳ１２に戻り、新たに上限ホップ数や検索条件が指示され、それらに従って検索処理（Ｓ１８）が再び実行される。
【００４９】
ユーザが、検索終了の操作を行うと、Ｓ３２の判定結果がＮｏとなり、一連の検索処理手順が終了する。
【００５０】
次に、図１０を参照して、類似検索の処理手順の例を説明する。類似検索は、新たに指定された基準ノードから、初期検索のＳ５８で登録された基準経路に近い部分グラフを検索する処理である。
【００５１】
図１０の手順では、類似検索の基準ノードの指定を受け付け（Ｓ４０）、更に類似検索における上限ホップ数の指定を受け付ける（Ｓ４２）。なお、上限ホップ数については、ユーザが変更しなければ、初期検索時の値をそのまま用いる。そして、関連ノード抽出部２２が、新たに指定された類似検索の基準ノードから、その上限ホップ数の範囲内にある関連ノード群を抽出し（Ｓ４４）、抽出結果を関連ノード記憶部２６に記憶する。Ｓ４４の処理は、図５と同様の処理手順により行えばよい。関連ノード群が抽出されると、それら関連ノード群が表す検索範囲内で、検索処理部２６が検索処理を実行する（Ｓ４６）。このとき用いる検索条件は、初期検索のときに用いた条件と同じである。検索が完了すると、ソート部３０が、経路類似度基準ソート処理３４を実行することにより、検索結果ごとに、基準ノードからその検索結果までの経路と、基準経路記憶部３８に記憶された基準経路との類似度を計算する（Ｓ４８）。類似度の計算は、例えばGraph edit distance法など、グラフ同士の類似度を計算するための公知の方法を用いればよい。経路類似度基準ソート処理３４では、このようにして求めた類似度の降順（すなわち類似度が高い順）に、検索結果をソートする（Ｓ５０）。そして、そのソート結果をソート結果提示部４２からユーザに提供する（Ｓ５２）。この類似検索におけるソート結果の表示画像でも、検索された各部分グラフに対する基準ノードからの経路の情報を合わせて表示する。
【００５２】
このようにして提供された類似検索処理のソート結果の中から、ユーザは特定の検索結果（部分グラフ）を選択してもよい（Ｓ５４の選択結果がＹｅｓ）。この場合、選択された部分グラフの詳細情報が検索結果提示ＵＩ４０に表示され（Ｓ５８）、基準ノードから選択された部分グラフまでの経路情報が基準経路記憶部３８に記憶される（Ｓ５８）。ここで、更なる類似検索を指示する（Ｓ６０の判定結果がＹｅｓ）ことにより、このように新たに記憶された経路情報を基準経路として、Ｓ４０に戻って新たな類似検索を実行するようにしてもよい。もちろんユーザは、新たな類似検索の実行ではなく、ソート結果から他の部分グラフを選択してもよく（図１０では表示省略）、この場合新たに選択された部分グラフについてＳ５６及びＳ５８の処理が実行される。
【００５３】
また、ユーザは、Ｓ５８で新たに記憶した基準経路に基づく新たな類似検索に進む代わりに、上限ホップ数を変更してもよい（Ｓ６２の判定結果がＹｅｓ）。このような変更を行う場合、処理はステップＳ４２に戻り、新たに上限ホップ数が指示され、それらに従って検索処理（Ｓ４６）及びソート処理（Ｓ４８及びＳ５０）が再び実行される。なお、このときのＳ４８では、Ｓ５８で新たに記憶した基準経路ではなく、初期検索において記憶した基準経路を用いる。
【００５４】
例えば、図２のグラフに対し、図７の部分グラフを検索条件とした初期検索を実行し、図８に示す検索結果の部分グラフ１１０及び１１２のうち、部分グラフ１１２がＳ２４で選択され、類似検索に進んだ場合を考える。この場合、基準経路は、"Workspace-a, participated, User-c, created"（下線は、逆方向のリンクであることを示す）である。ノードを個別のものから種類別へと一般化すると、基準経路は"Workspace, participated, User, created"である。この状況で、ノード１０６が類似検索の基準ノードとして指定され、上限ホップ数が「３」に指定された場合、Ｓ４６の検索処理では、図１１に例示する部分グラフ１２０及び１２２が検索結果として求められる。ここで、基準ノード１０６から検索結果の各部分グラフ１２０及び１２２までの各経路と、基準経路"Workspace, participated, User, created"とを比較すると、部分グラフ１２０までの経路の方が基準経路に近い。したがって、類似度は部分グラフ１２０の方が高くなり、ソート結果は部分グラフ１２０，１２２の順となる。
【００５５】
なお、以上の例では、類似度を求めるにあたり基準ノードから検索結果の部分グラフまでの経路にはその部分グラフ自体は含めなかったが、部分グラフ自体を経路に含めて類似度を求めてもよい。
【００５６】
以上に説明したように、類似検索では、基準ノードを新たに指定して、その新たな基準ノードから見て、初期検索でユーザが特定した基準経路と類似の経路を持つ部分グラフが検索される。したがって、類似検索では、いわば、新たな視点（基準ノード）から、前の検索の結果である基準経路と類似した検索結果が求められることとなる。
【００５７】
以上の例では、検索範囲を基準ノードから上限ホップ数以内の検索範囲内から検索条件に合致する部分グラフを検索した。この場合、部分グラフ全体が検索範囲内に含まれていないと、その部分グラフは検索されない。例えば図１２に示すグラフ１００において、基準ノードがノード１０２と、上限ホップ数が「３」と、検索条件として部分グラフ１３０が指定された場合、グラフ１００中の部分グラフ１３５は検索条件に適合するが、一部のノードが検索範囲（破線で示した矩形）から外れるため、検索されないことになる。
【００５８】
これに対し、検索条件に適合する部分グラフの一部のノードでも検索範囲内に含まれていたら、その部分グラフを検索するようにしてもよい。このためには、例えば、指定された上限ホップ数に対して検索条件の部分グラフの最大ホップ数（すなわち部分グラフ中のノード同士の間のホップ数の中の最大値）を上限ホップ数に加算し、基準ノードからその加算結果のホップ数の範囲を検索範囲とすればよい。
【００５９】
例えば、図１２の例では、検索条件の部分グラフ１３０の最大ホップ数は「２」なので、指定された上限ホップ数「３」にこの最大ホップ数を加えた結果「５」が、拡張した検索範囲の広さを示すものとなる。図１３に示すように、検索条件１３０を満たす部分グラフ１３５は、このように拡張された検索範囲１５０内に完全に含まれているので、検索されることとなる。このような検索範囲の拡張は、初期検索及び類似検索のどちらに適用してもよい。
【００６０】
以上に例示した検索装置は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現してもよい。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【００６１】
１０  データベース、１２  基準ノード指定受付部、１４  ホップ数指定受付部、１６  検索条件指定受付部、１８  初期検索ＵＩ、２０  類似検索ＵＩ、２２  関連ノード抽出部、２４  関連ノード記憶部、２６  検索処理部、２８  検索結果記憶部、３０  ソート部、３２  ホップ数基準ソート処理、３４  経路類似度基準ソート処理、３６  ソート結果記憶部、３８  基準経路記憶部、４０  検索結果提示ＵＩ、４２  ソート結果提示部、４４  選択受付部。
【図１】
2012128479.tif 000003
【図２】
2012128479.tif 000004
【図３】
2012128479.tif 000005
【図４】
2012128479.tif 000006
【図５】
2012128479.tif 000007
【図６】
2012128479.tif 000008
【図７】
2012128479.tif 000009
【図８】
2012128479.tif 000010
【図９】
2012128479.tif 000011
【図１０】
2012128479.tif 000012
【図１１】
2012128479.tif 000013
【図１２】
2012128479.tif 000014
【図１３】
2012128479.tif 000015