(57)【要約】【課題】検索処理の高速化を実現することを課題とする。【解決手段】実施例１に係るグラフパターンマッチングシステムは、管理者端末１０、ユーザ端末２０、グラフ構造データ格納ＤＢ（Data  Base）３０およびグラフパターンマッチング装置１００を含んで１つのシステムを構成する。グラフパターンマッチング装置１００は、グラフパターン格納ＤＢ（Data  Base）１１０、マッチング結果格納ＤＢ（Data  Base）１２０、クエリグラフパターン生成部１３０、グラフパターンマッチング処理部１４０、入力用ＵＩ生成部１５０、マッチング結果検索部１６０および出力用ＵＩ生成部１７０を有する。【選択図】図１
2013054602.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末から受信した検索条件に応じて、ノード間を有向エッジで連結したグラフ構造データについての検索を行い、該検索の結果を前記ユーザ端末に出力するグラフパターンマッチング装置を有するグラフパターンマッチングシステムであって、
前記グラフパターンマッチング装置は、
事前に作成したグラフパターンにより前記グラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして記憶部に格納するグラフパターンマッチング処理部と、
前記グラフパターンマッチング処理部により前記記憶部に格納された前記検索結果グラフのデータに基づいて、前記検索条件に応じた検索処理を行うマッチング結果検索部と
を有することを特徴とするグラフパターンマッチングシステム。
【請求項２】
前記グラフパターンマッチング処理部は、前記グラフ構造データの検索条件を決定するための該グラフ構造データに含まれるノードに付与されたラベルおよび前記検索に用いたグラフパターンを所定のキーとし、該所定のキーに対応付けて、前記検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルを前記所定のキーに対応する所定の値として前記記憶部に格納することを特徴とする請求項１に記載のグラフパターンマッチングシステム。
【請求項３】
前記グラフパターンマッチング処理部は、前記グラフ構造データの検索条件を決定するための該グラフ構造データに含まれるノードに付与されたラベルおよび前記検索に用いたグラフパターンを所定のキーとし、該所定のキーに対応付けて、前記検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルを、前記ユーザ端末に出力する際のユーザインターフェースに合わせた出力形式に加工してから前記所定の値として前記記憶部に格納することを特徴とする請求項１に記載のグラフパターンマッチングシステム。
【請求項４】
前記グラフパターンマッチング装置は、
前記ユーザ端末から検索条件の入力を受け付けるための入力用インターフェースを生成する入力用インターフェース生成部と、
前記ユーザ端末に対して検索結果を出力するための出力用インターフェースを生成する出力用インターフェース生成部と
をさらに有し、
前記マッチング結果検索部は、前記入力用インターフェースにより前記検索条件の入力を受け付けた場合に、前記検索条件を前記所定のキーとして、該検索条件に合致する前記所定の値を前記記憶部から検索することを特徴とする請求項２または３に記載のグラフパターンマッチングシステム。
【請求項５】
ユーザ端末から受信した検索条件に応じて、ノード間を有向エッジで連結したグラフ構造データについての検索を行い、該検索の結果を前記ユーザ端末に出力するグラフパターンマッチング装置を含むグラフパターンマッチングシステムに適用されるグラフパターンマッチング方法であって、
前記グラフパターンマッチング装置が、事前に作成したグラフパターンにより前記グラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして、予め記憶部に格納するグラフパターンマッチング処理工程と、
前記グラフパターンマッチング処理工程により前記記憶部に格納された前記検索結果グラフのデータに基づいて、前記検索条件に応じた検索処理を行うマッチング結果検索工程と
を含むことを特徴とするグラフパターンマッチング方法。
【請求項６】
前記グラフパターンマッチング処理工程は、前記グラフ構造データの検索条件を決定するための該グラフ構造データに含まれるノードに付与されたラベルおよび前記検索に用いたグラフパターンを所定のキーとし、該所定のキーに対応付けて、前記検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルを前記所定のキーに対応する所定の値として前記記憶部に格納することを特徴とする請求項５に記載のグラフパターンマッチング方法。
【請求項７】
前記グラフパターンマッチング処理工程は、前記グラフ構造データの検索条件を決定するための該グラフ構造データに含まれるノードに付与されたラベルおよび前記検索に用いたグラフパターンを所定のキーとし、該所定のキーに対応付けて、前記検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルを、前記ユーザ端末に出力する際のユーザインターフェースに合わせた出力形式に加工してから前記所定の値として前記記憶部に格納することを特徴とする請求項５に記載のグラフパターンマッチング方法。
【請求項８】
前記グラフパターンマッチング装置が、前記ユーザ端末から検索条件の入力を受け付けるための入力用インターフェースを生成する入力用インターフェース生成工程と、
前記グラフパターンマッチング装置が、前記ユーザ端末に対して検索結果を出力するための出力用インターフェースを生成する出力用インターフェース生成工程と
をさらに含み、
前記マッチング結果検索工程は、前記入力用インターフェースにより前記検索条件の入力を受け付けた場合に、前記検索条件を前記所定のキーとして、該検索条件に合致する前記所定の値を前記記憶部から検索することを特徴とする請求項６または７に記載のグラフパターンマッチング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフパターンマッチングシステムおよびグラフパターンマッチング方法に関する。
【背景技術】
【０００２】
近年、セマンティックＷｅｂ技術が注目されている（非特許文献１参照）。セマンティックＷｅｂ技術は、Ｗｅｂページ上にあるデータに対して、データが持つ意味（セマンティック）を付与することにより、人を仲立ちとすることなく、コンピュータ同士での機械的な処理を可能とする技術である。
【０００３】
具体的には、セマンティックＷｅｂ技術では、Ｗｅｂ上にあるデータの意味をコンピュータが解釈可能な状態とする為に、Ｗｅｂ上にあるデータに対して、ＲＤＦ（Resource  Description  Framework）を用いて記述されたメタデータが付与される。メタデータを記述するために用いるＲＤＦは、リソースを主語とし、プロパティを述語、プロパティの値を目的語とする３つの要素を用いたモデルで表現することができ、例えば、主語（リソース）に対応するノードと目的語（プロパティの値）に対応するノードとを、述語（プロパティ）に対応する矢印（アーク）で結んだ有向ラベル付きグラフとして表現される。そして、目的語が主語となる場合には、さらに、この目的語を主語とするノードから、矢印およびノードが連鎖する連鎖型のグラフ構造のモデルが構築される。よって、例えば、各Ｗｅｂに、ＲＤＦを用いて記述されたメタデータを公開することにより、複数のＷｅｂを連鎖型のグラフ構造で表現することができ、Ｗｅｂ間の関係を遡ることが可能となる。このようにして、セマンティックＷｅｂ技術では、インターネット上に散在する複数のデータソースを相互に関連付けることで、複数のデータソースから、より高度で精度の高いデータ検索の実現を図る。
【０００４】
例えば、ＲＤＦを用いたグラフ構造のデータに対して、ＳＰＡＲＱＬ（SPARQL  Protocol  and  RDF  Query  Language）などのＲＤＦクエリ言語を用いて、ＡＲＱ（A  SPARQL  Processor  for  Jena）などのクエリエンジンによるグラフパターンのマッチング処理を実行することにより、必要な情報を検索する技術がある（非特許文献２参照）。
【０００５】
また、ＲＤＦを用いたグラフ構造のデータの中から情報を検索する際、ユーザにより入力されたキーワードを含むノードおよびそのノードと同じラベルを持つアークにつながるノードのそれぞれと、ユーザにより指定された概念のインスタンスとして存在するノードとの間にある共通の構造を検索するための検索クエリグラフパターンを生成し、この検索クエリグラフパターンに基づいて抽出されたサブグラフの構造から、さらに共通のグラフ構造を有する共通クエリグラフパターンを自動的に生成する技術などもある（特許文献１）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「SPARQL  Query  Language  for  RDF」、［Online］、［平成２３年８月１日検索］、インターネット（ＵＲＬ：http://www.w3.org/TR/rdf-sparql-query/）
【非特許文献２】「A  SPARQL  Processor  for  Jena」、［Online］、［平成２３年８月１日検索］、インターネット（ＵＲＬ：http://jena.sourceforge.net/ARQ/）
【特許文献】
【０００７】
【特許文献１】特開２００６−３１３５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、グラフ構造で表現されるデータの中から情報を検索する際、上述した従来の技術では、以下のような問題がある。
【０００９】
例えば、複雑なグラフパターンについてマッチング処理を行う場合には、グラフパターンの組合せ数が爆発的に発生するので、マッチング処理の計算量が膨大となる。このため、マッチング処理に多量の計算機資源が必要となり、処理コストをかけることなく、マッチング処理を行うことが難しいという問題がある。
【００１０】
また、マッチング処理の計算量が膨大となれば、情報の検索処理に時間が掛かってしまい、例えば、迅速な検索サービスを提供できないという問題がある。さらに、マッチング処理の計算量が膨大である場合には、マッチング処理に計算機資源が占有されてしまい、例えば、複数のユーザの検索処理に対応できないという問題もある。
【００１１】
なお、ネットワーク上のデータは、今後、ますます膨れ上がっていくことが予想される為、マッチング処理の対象となるグラフパターンの複雑化、グラフパターンの組合せ数が爆発的に増加することが予想されるが、上述した従来の技術では、処理コストをかけることなく、スケーラビリティを確保することは難しい。
【００１２】
また、複雑なグラフパターンに対するマッチング処理の膨大な計算量に対処する為、大量のデータを並列分散処理するオープンソースのプラットフォームなどを利用することも考えられるが、処理対象となるデータをデータベース管理ソフトウェアに一旦格納する必要があり、手間を要するという問題がある。
【００１３】
本発明は、上記に鑑みてなされたものであって、検索処理の高速化することが可能なグラフパターンマッチングシステムおよびグラフパターンマッチング方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明は、ユーザ端末から受信した検索条件に応じて、ノード間を有向エッジで連結したグラフ構造データについての検索を行い、該検索の結果を前記ユーザ端末に出力するグラフパターンマッチング装置を有するグラフパターンマッチングシステムであって、前記グラフパターンマッチング装置は、事前に作成したグラフパターンにより前記グラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして記憶部に格納するグラフパターンマッチング処理部と、前記グラフパターンマッチング処理部により前記記憶部に格納された前記検索結果グラフのデータに基づいて、前記検索条件に応じた検索処理を行うマッチング結果検索部とを有することを特徴とする。
【００１５】
また、本発明は、ユーザ端末から受信した検索条件に応じて、ノード間を有向エッジで連結したグラフ構造データについての検索を行い、該検索の結果を前記ユーザ端末に出力するグラフパターンマッチング装置を含むグラフパターンマッチングシステムに適用されるグラフパターンマッチング方法であって、前記グラフパターンマッチング装置が、事前に作成したグラフパターンにより前記グラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして、予め記憶部に格納するグラフパターンマッチング処理工程と、前記グラフパターンマッチング処理工程により前記記憶部に格納された前記検索結果グラフのデータに基づいて、前記検索条件に応じた検索処理を行うマッチング結果検索工程とを含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、検索処理の高速化を実現できる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係るグラフパターンマッチングシステムの構成を示す機能ブロック図である。
【図２】図２は、グラフ構造データの一例を示す図である。
【図３】図３は、グラフ構造データ格納ＤＢに格納される連鎖型のグラフ構造データの一例を示す図である。
【図４】図４は、グラフパターン生成格納処理の流れを示す図である。
【図５】図５は、管理者端末にて指定された始点クラスに接続されるリソースの一例を示す図である。
【図６】図６は、探索用グラフパターンの一例を示す図である。
【図７】図７は、探索用グラフパターンにより検索される部分グラフの一例を示す図である。
【図８】図８は、グラフパターン格納ＤＢに格納されるグラフパターンの一例を示す図である。
【図９】図９は、探索用グラフパターンにより検索される部分グラフの一例を示す図である。
【図１０】図１０は、グラフパターン格納ＤＢに格納されるグラフパターンの一例を示す図である。
【図１１】図１１は、マッチング結果格納処理の流れを示す図である。
【図１２】図１２は、グラフパターンマッチング処理部により作成されるグラフマッチングクエリ１を示す図である。
【図１３】図１３は、グラフパターンマッチング処理部により作成されるグラフマッチングクエリ２を示す図である。
【図１４】図１４は、グラフマッチングクエリ１による検索結果グラフの一例を示す図である。
【図１５】図１５は、グラフマッチングクエリ２による検索結果グラフの一例を示す図である。
【図１６】図１６は、グラフマッチングクエリ２による検索結果グラフのリテラル情報の一例を示す図である。
【図１７】図１７は、グラフマッチングクエリ２の検索結果グラフのシリアライズ例を示す図である。
【図１８】図１８は、グラフマッチングクエリ２の検索結果グラフのシリアライズ例を示す図である。
【図１９】図１９は、キーワードおよび始点リソース対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ１）を示す図である。
【図２０】図２０は、検索条件およびグラフパターンＩＤ対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ２）を示す図である。
【図２１】図２１は、マッチング結果格納対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ３）を示す図である。
【図２２】図２２は、検索処理の流れを示す図である。
【図２３】図２３は、検索処理の補足説明図である。
【図２４】図２４は、検索結果の一例を示す図である。
【図２５】図２５は、グラフパターンマッチングシステムの構成例を示す図である。
【図２６】図２６は、グラフパターンマッチングシステムの構成例を示す図である。
【図２７】図２７は、グラフパターンマッチングシステムの構成例を示す図である。
【図２８】図２８は、実施例１の処理と同様の機能を実現させるためのプログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、図面を参照しつつ、本願にかかるグラフパターンマッチングシステムおよびグラフパターンマッチング方法の実施例を説明する。後述する各実施例は一実施形態にすぎず、本願にかかるグラフパターンマッチングシステムおよびグラフパターンマッチング方法の実施形態を限定するものではない。また、後述する各実施例は処理内容に矛盾を生じさせない範囲で適宜組み合わせることもできる。
【実施例１】
【００１９】
［情報提示システムの構成（実施例１）］
図１は、実施例１に係るグラフパターンマッチングシステムの構成を示す機能ブロック図である。実施例１に係るグラフパターンマッチングシステムは、例えば、ユーザからの検索要求に応じたデータ検索サービスを提供する。
【００２０】
図１に示すように、実施例１に係るグラフパターンマッチングシステムは、管理者端末１０、ユーザ端末２０、グラフ構造データ格納ＤＢ（Data  Base）３０およびグラフパターンマッチング装置１００を含んで１つのシステムを構成する。
【００２１】
管理者端末１０は、実施例１に係るグラフパターンマッチングシステムの管理者により操作される端末である。管理者端末１０は、ネットワークを介して、グラフパターンマッチング装置１００と通信可能な状態で接続されており、グラフパターンマッチング装置１００に作成させるクエリグラフの条件などを、グラフパターンマッチング装置１００に送信する。また、管理者端末１０は、グラフパターンマッチング装置１００に格納させるマッチング結果の格納範囲などを、グラフパターンマッチング装置１００に送信する。なお、クエリグラフの条件、マッチング結果の格納範囲については後述する。
【００２２】
ユーザ端末２０は、グラフパターンマッチング装置１００を利用するユーザにより操作される端末である。ユーザ端末２０は、入力用ＵＩ（User  Interface）を介して、ユーザから検索条件（キーワードや終点クラス）の入力を受け付けると、グラフパターンマッチング装置１００に送信する。また、ユーザ端末２０は、グラフパターンマッチング装置１００から検索結果を受信すると、出力用ＵＩを介して検索結果を表示出力して、ユーザに提供する。
【００２３】
グラフ構造データ格納ＤＢ（Data  Base）３０は、ＲＤＦ（Resource  Description  Framework）形式などの、複数のデータを相互に関連付けた連鎖型のグラフ構造データを格納する。グラフ構造データは、サブジェクト（主体）としてのノードを始点とし、オブジェクト（客体）としてのノードを終点として、サブジェクトとしてのノードとオブジェクトとしてのノードとの間を、プロパティ（属性）としての有向エッジで連結した有向グラフとして表現される。
【００２４】
図２は、グラフ構造データの一例を示す図である。図２に示すように、グラフ構造データは、楕円や四角形の図形で表現されるノード間を、矢印で表現される有向エッジで連結する。ノードには、図２に示すように、クラス、リソース、リテラルの３種類がある。クラスは、リソースの種類を表す特殊なノードであり、リソースと特定のプロパティ（例えば、ｒｄｆ：ｔｙｐｅ）で連結されている。リソースは、様々な事物を示すノードである。リテラルは、リソースに関する様々な属性値を示す特殊なノードである。プロパティは、識別情報であるラベルが付与された有向エッジである。
【００２５】
例えば、図２に示すように、ラベル［ｒｍ：Ｔ−０４１］が付与されたリソースに対応するノードは、ラベル［ｐｅｒｓｏｎ：特許太郎］が付与されたリソースに対応するノードと、ラベル［ｒｍ：著者］が付与されたプロパティに対応する有向エッジで結ばれる。同様にして、［ｒｍ：Ｔ−０４１］が付与されたリソースに対応するノードは、ラベル［「セマンティックＷｅｂ」入門］が付与されたリテラルに対応するノードと、ラベル［ｒｍ：題名］が付与されたプロパティに対応する有向エッジで結ばれる。同様にして、［ｒｍ：Ｔ−０４１］が付与されたリソースに対応するノードは、ラベル［セマンティックＷｅｂ］が付与されたリテラルに対応するノードと、ラベル［ｒｍ：キーワード］が付与されたプロパティに対応する有向エッジで結ばれる。同様にして、［ｒｍ：Ｔ−０４１］が付与されたリソースに対応するノードは、ラベル［ｒｍ：論文］が付与されたクラスと、ラベル［ｒｄｆ：ｔｙｐｅ］が付与されたプロパティに対応する有向エッジで結ばれる。さらに、図２に示すように、ラベル［ｐｅｒｓｏｎ：特許太郎］が付与されたリソースに対応するノードは、ラベル［特許太郎］が付与されたリテラルに対応するノードと、ラベル［ｐｅｒｓｏｎ：氏名］が付与されたプロパティに対応する有向エッジで結ばれる。同様にして、［ｐｅｒｓｏｎ：特許太郎］が付与されたリソースに対応するノードは、ラベル［ｐｅｒｓｏｎ：人］が付与されたクラスと、ラベル［ｒｄｆ：ｔｙｐｅ］が付与されたプロパティに対応する有向エッジで結ばれる。
【００２６】
このようにして、ノードとエッジが連鎖する連鎖型のグラフ構造が形成され、例えば、図３に示すように、複数のデータが相互に関連付けられたグラフ構造データとなる。グラフ構造データ格納ＤＢ３０は、例えば、図３に示すようなグラフ構造データを格納する。なお、図３に示すグラフ構造データは、グラフ構造データの一部を示すものに過ぎず、図３に示す以外にも膨大な情報が、ノードとエッジが連鎖する連鎖型のグラフ構造により関連付けされている。図３は、グラフ構造データ格納ＤＢに格納される連鎖型のグラフ構造データの一例を示す図である。
【００２７】
図１に戻り、グラフパターンマッチング装置１００は、グラフパターン格納ＤＢ（Data  Base）１１０、マッチング結果格納ＤＢ（Data  Base）１２０、クエリグラフパターン生成部１３０、グラフパターンマッチング処理部１４０、入力用ＵＩ生成部１５０、マッチング結果検索部１６０および出力用ＵＩ生成部１７０を有する。
【００２８】
グラフパターン格納ＤＢ１１０は、後述するクエリグラフパターン生成部１３０により生成されたグラフパターンを格納する。グラフパターン格納ＤＢ１１０に格納されるグラフパターンは、後述するグラフパターンマッチング処理部１４０にて、グラフ構造データ格納ＤＢ３０からマッチする検索結果グラフ（部分グラフ）を取得するためのグラフマッチングクエリの生成に用いられる。
【００２９】
マッチング結果格納ＤＢ１２０は、後述するグラフパターンマッチング処理部１４０により取得された検索結果グラフのシリアライズデータ（後述する図１７、図１８等参照）などを格納する。マッチング結果格納ＤＢ１２０に格納される検索結果グラフのシリアライズデータは、例えば、グラフパターンマッチング処理部１４０にて取得された検索結果グラフ（部分グラフ）の各リソースの情報や、各リソースのリソースに紐付くリテラル情報を、グラフ構造データ格納ＤＢ３０から取得して、シリアライズしたものである。
【００３０】
クエリグラフパターン生成部１３０は、管理者端末１０から所定の指定条件を受信し、グラフパターンを生成して格納する処理を実行する。例えば、クエリグラフパターン生成部１３０は、管理者端末１０から受信した指定条件に合致するリソースの集合をグラフ構造データ格納ＤＢ３０から取得して、取得したリソースの集合から探索用のグラフパターンを生成する。そして、クエリグラフパターン生成部１３０は、探索用のグラフパターンとマッチする部分グラフをグラフ構造データ格納ＤＢ３０から取得することによりグラフパターンを生成し、グラフパターン格納ＤＢ１１０に格納する。
【００３１】
グラフパターンマッチング処理部１４０は、管理者端末１０から所定の指定範囲を受信し、マッチング結果を格納する処理を実行する。例えば、グラフパターンマッチング処理部１４０は、管理者端末１０から受信した指定範囲に合致するリソースの集合をグラフ構造データ格納ＤＢ３０から取得する。続いて、グラフパターンマッチング処理部１４０は、管理者端末１０から受信した指定範囲（始点クラス、終点クラス）に合致するグラフパターンをグラフパターン格納ＤＢ１１０から取得する。続いて、グラフパターンマッチング処理部１４０は、指定範囲（始点クラス）とグラフパターンとを用いて、グラフマッチングを行うためのクエリを作成し、このクエリによる検索の結果得られるグラフに含まれる全リソースのリテラル情報をグラフ構造データ格納ＤＢ３０から取得し、シリアライズしてマッチング結果格納ＤＢ１２０に格納する。
【００３２】
入力用ＵＩ生成部１５０は、ユーザ端末２０から検索条件の入力を受け付けるためのユーザインターフェースを生成する。
【００３３】
マッチング結果検索部１６０は、入力用ＵＩ生成部１５０により生成されたユーザインターフェースを介して、ユーザ端末２０から受け付けた検索条件による検索を実行する。
【００３４】
出力用ＵＩ生成部１７０は、ユーザ端末２０に検索結果を出力するためのユーザインターフェースを生成する。
【００３５】
［グラフパターンマッチング装置による処理（実施例１）］
図４〜２４を用いて、実施例１に係るグラフパターンマッチング装置１００による処理の流れを説明する。
【００３６】
［グラフパターンの生成格納処理］
まず、図４〜図１０を用いて、グラフパターンの生成格納処理の流れを説明する。図４は、グラフパターン生成格納処理の流れを示す図である。図５は、管理者端末にて指定された始点クラスに接続されるリソースの一例を示す図である。図６は、探索用グラフパターンの一例を示す図である。図７および図９は、探索用グラフパターンにより検索される部分グラフの一例を示す図である。図８および図１０は、グラフパターン格納ＤＢ１１０に格納されるグラフパターンの一例を示す図である。
【００３７】
図４に示すように、管理者端末１０にて、例えば、グラフパターンマッチングシステムの管理者により、作成するクエリグラフの条件が指定される（Ｓ１０１）。クエリグラフの条件には、始点クラス、終点クラス、各種パラメータが含まれる。
【００３８】
始点クラスは、図４に示す処理により生成するグラフパターンの始点リソース（ノード）の種類を特定するノードである。例えば、図５に示す場合では、ラベル［ｗｄ：技術］が付与されたノードを始点クラスとして指定した場合には、ラベル［ｗｄ：ＸＭＬ］が付与されたノードおよび［ｗｄ：セマンティックＷｅｂ］が付与されたノードのそれぞれが始点リソースとなる。終点クラスは、図４に示す処理により生成するグラフパターンの終点リソースの種類を特定するノードである。例えば、図５に示す場合では、ラベル［ｐｅｒｓｏｎ：人］のノードを終点クラスとして指定した場合には、ラベル［ｐｅｒｓｏｎ：特許二郎］が付与されたノード、ラベル［ｐｅｒｓｏｎ：特許太郎］が付与されたノード、ラベル［ｐｅｒｓｏｎ：特許一郎］が付与されたノード、およびラベル［ｐｅｒｓｏｎ：特許花子］が付与されたノードのそれぞれが終点リソースとなる。各種パラメータは、図４に示す処理により生成するグラフパターンの構造を決定するためのパラメータであり、例えば、始点リソースと終点リソースとの間の中間ノードの数や、始点リソースと終点リソースとの間の各ノード間を連結するエッジの向き、始点リソースと終点リソースとの間の各ノード間を連結するエッジの本数などが含まれる。
【００３９】
グラフパターンマッチング装置１００のクエリグラフパターン生成部１３０は、管理者端末１０から、作成するクエリグラフの条件を受信すると、受信した条件に含まれる始点クラスのリソースをグラフ構造データ格納ＤＢ３０に要求する（Ｓ１０２）。グラフ構造データ格納ＤＢ３０は、クエリグラフパターン生成部１３０から始点クラスのリソースの要求を受信すると、受信した始点クラス（条件）に合致するリソースをグラフ構造データの中から検索し、検索したリソースをクエリグラフパターン生成部１３０に返却する（Ｓ１０３）。
【００４０】
例えば、クエリグラフパターン生成部１３０からグラフ構造データ格納ＤＢ３０に対して、［ｗｄ：技術］を始点クラスとするリソースが要求された場合、図５に示すように、グラフ構造データ格納ＤＢ３０からクエリグラフパターン生成部１３０に対して、［ｗｄ：ＸＭＬ］および［ｗｄ：セマンティックＷｅｂ］のリソースが返却される。
【００４１】
始点クラスに合致するリソースの集合をグラフ構造データ格納ＤＢ３０から取得すると、クエリグラフパターン生成部１３０は、制約条件に合致した探索用グラフパターンを生成する（Ｓ１０４）。制約条件としては、Ｓ１０１で管理者端末１０から各種パラメータとして送信された始点クラスと終点クラスの指定や、始点リソースの指定や、始点リソースと終点リソースとの間の中間ノードの数や、始点リソースと終点リソースとの間の各ノード間を連結するエッジの向き、始点リソースと終点リソースとの間の各ノード間を連結するエッジの本数の指定などに該当する。例えば、図６に、所定の制約条件の元で生成した探索用グラフパターンの一例を示す。図６は、探索用グラフパターンの一例を示す図である。図６に示すように、始点クラスが［wd：技術］であり、終点クラスが［person：人］であり、始点リソースが［wd：XML］であり、始点リソースと終点リソースとの間の中間ノードの数が１であり、始点リソースと終点リソースとの間の各ノード間を連結するエッジの向きが変わる中間リソースの数が１以下であり、始点リソースと終点リソースとの間の各ノード間を連結するエッジの本数が１であるという制約条件で生成した探索用グラフパターンとして、Ｐ１、Ｐ２、Ｐ３、Ｐ４のようなパターンを生成できる。
【００４２】
続いて、クエリグラフパターン生成部１３０は、ステップＳ１０４で生成した探索用グラフパターンの数だけ、クエリ検索をグラフ構造データ格納ＤＢ３０に依頼する（Ｓ１０５）。グラフ構造データ格納ＤＢ３０は、クエリグラフパターン生成部１３０からの依頼に応じてグラフ構造データのクエリ検索を行い、グラフ構造データの中からグラフマッチする部分グラフを返却する（Ｓ１０６）。クエリグラフパターン生成部１３０は、グラフ構造データ格納ＤＢ３０から取得した部分グラフの中から、結果数の多いグラフパターンを抽出し、抽出したグラフパターンをグラフパターン格納ＤＢ１１０に格納する（Ｓ１０７）。
【００４３】
クエリグラフパターン生成部１３０は、探索用グラフパターンとマッチする複数の部分グラフの中から、始点クラス、始点リソース、終点クラス、終点リソース、中間リソースの各ノードと、各ノード間を接続するエッジとで構成されるグラフ構造が、部分グラフ間で共通するものを、グラフパターン格納ＤＢ１１０に格納するグラフパターンとして抽出する。例えば、図７に示すように、探索用グラフパターンとマッチする部分グラフとして、部分グラフＧ１、Ｇ２、Ｇ３などが検索されたとする。図７に示す部分グラフＧ１、Ｇ２、Ｇ３は、各ノードおよびノード間を連結するエッジで構成されるグラフ構造が共通している。そこで、クエリグラフパターン生成部１３０は、例えば、図８に示すように、共通するノードのラベルを変数（?startResource，?resource1，?endResource）に置き換えたグラフパターン（patternID：01）を抽出する。また、図９に示すように、探索用グラフパターンとマッチする部分グラフとして、部分グラフＧ４、Ｇ５などが検索されたとする。図９に示す部分グラフＧ４、Ｇ５は、各ノードおよびノード間を連結するエッジで構成されるグラフ構造が共通している。そこで、クエリグラフパターン生成部１３０は、例えば、図１０に示すように、共通するノードのラベルを変数（?startResource，?resource1，?resource2，?endResource）に置き換えたグラフパターン（patternID：02）を抽出する。
【００４４】
なお、クエリグラフパターン生成部１３０は、部分グラフから共通の構造を抽出する場合、予め所持するオントロジーデータ（OWL：Web  Ontology  Languages）に基づいて、リソースやプロパティにラベルを付与する際に用いられているＲＤＦの接頭辞（rdf，rm，ms，pj，…）と値の組合せ間の等価性を評価する。例えば、図８に示す部分グラフＧ４に含まれるエッジに付与された「ｍｓ：用語」と、図８に示す部分グラフＧ５に含まれるエッジに付与された「ｒｍ：キーワード」とは、オントロジーデータに基づいて、等価なものとして評価する。その結果、クエリグラフパターン生成部１３０は、図１０に示すように、部分グラフＧ４と、部分グラフＧ５との間の共通の構造であるグラフパターンを抽出できる。
【００４５】
グラフパターン格納ＤＢ１１０には、クエリグラフパターン生成部１３０により生成されたグラフパターンが格納される（Ｓ１０８）。なお、クエリグラフパターン生成部１３０は、グラフパターン格納ＤＢ１１０にグラフパターンを格納した後、例えば、グラフパターン格納ＤＢ１１０から格納完了の通知を受信するのを待って、終了メッセージを管理者端末１０に送信する。
【００４６】
なお、上述してきたグラフパターンの生成格納処理（図４）は、管理者端末１０にて指定された、作成するクエリグラフの条件ごとに実行され、各条件に対応するグラフパターンが生成され、グラフパターン格納ＤＢ１１０に格納される。
【００４７】
［マッチング結果格納処理］
次に、図１１〜２１を用いて、マッチング結果格納処理の流れを説明する。図１１は、マッチング結果格納処理の流れを示す図である。図１２は、グラフパターンマッチング処理部１４０により作成されるグラフマッチングクエリ１を示す図である。図１３は、グラフパターンマッチング処理部１４０により作成されるグラフマッチングクエリ２を示す図である。図１４は、グラフマッチングクエリ１による検索結果グラフの一例を示す図である。図１５は、グラフマッチングクエリ２による検索結果グラフの一例を示す図である。図１６は、グラフマッチングクエリ２による検索結果グラフのリテラル情報の一例を示す図である。図１７および図１８は、グラフマッチングクエリ２の検索結果グラフのシリアライズ例を示す図である。図１９は、キーワードおよび始点リソース対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ１）を示す図である。図２０は、検索条件およびグラフパターンＩＤ対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ２）を示す図である。図２１は、マッチング結果格納対応のＫｅｙ−Ｖａｌストアのテーブル例（Ｔａｂｌｅ３）を示す図である。
【００４８】
図１１に示すように、管理者端末１０にて、例えば、グラフパターンマッチングシステムの管理者により、図４の処理で生成したグラフパターンを用いたマッチング結果を格納する範囲、および検索キーワードプロパティが指定される（Ｓ２０１）。マッチング結果を格納する範囲は、例えば、始点クラスおよび終点クラスにより指定される。検索キーワードプロパティは、例えば、ユーザ端末２０からの検索要求に応じた検索処理を行う場合に、検索条件として入力され得る検索文字列に対応するリテラルを決定するための情報であり、検索条件として入力され得る検索文字列を網羅するように管理者が任意に指定する。なお、検索キーワードプロパティは、後述するＳ２１０において、マッチング結果格納ＤＢ１２０にマッチング結果を格納する際の「Ｋｅｙ：キーワード」の決定に用いる。
【００４９】
グラフパターンマッチング処理部１４０は、管理者端末１０から、マッチング結果を格納する範囲と、検索キーワードプロパティとを受信すると、受信した範囲に含まれる始点クラスのリソースをグラフ構造データ格納ＤＢ３０に要求する（Ｓ２０２）。グラフ構造データ格納ＤＢ３０は、グラフパターンマッチング処理部１４０から始点クラスのリソースの要求を受信すると、受信した始点クラス（条件）に合致するリソースをグラフ構造データの中から検索し、検索したリソースをグラフパターンマッチング処理部１４０に返却する（Ｓ２０３）。
【００５０】
例えば、グラフパターンマッチング処理部１４０からグラフ構造データ格納ＤＢ３０に対して、［ｗｄ：技術］を始点クラスとするリソースが要求された場合、グラフ構造データ格納ＤＢ３０からグラフパターンマッチング処理部１４０に対して、［ｗｄ：ＸＭＬ］および［ｗｄ：セマンティックＷｅｂ］のリソースが返却される（例えば、図５参照）。
【００５１】
続いて、グラフパターンマッチング処理部１４０は、管理者端末１０にて指定された始点クラスおよび終点クラスのグラフパターンをグラフパターン格納ＤＢ１１０に要求する（Ｓ２０４）。グラフパターン格納ＤＢ１１０は、グラフパターンマッチング処理部１４０からの要求に応じて、始点クラスおよび終点クラス（条件）に合致するグラフパターンを、格納されているグラフパターンの中から検索し、検索したグラフパターンをグラフパターンマッチング処理部１４０に返却する（Ｓ２０５）。
【００５２】
グラフパターンをグラフパターン格納ＤＢ１１０から取得すると、グラフパターンマッチング処理部１４０は、ステップＳ２０２で取得した始点クラスのリソースと、ステップＳ２０５で取得したグラフパターンとを用いてグラフマッチングクエリを作成し、作成したグラフマッチングクエリによる検索をグラフ構造データ格納ＤＢ３０に依頼する（Ｓ２０６）。
【００５３】
例えば、グラフパターンマッチング処理部１４０は、始点リソース［ｗｄ：セマンティックＷｅｂ］と、図８に示すグラフパターン（patternID：01）から、図１２に示すグラフマッチングクエリ１を作成する。つまり、グラフパターンマッチング処理部１４０は、グラフパターン（patternID：01）の始点リソースのノードに、［ｗｄ：セマンティックＷｅｂ］を挿入することによりグラフマッチングクエリ１を作成する。同様にして、グラフパターンマッチング処理部１４０は、始点リソース［ｗｄ：セマンティックＷｅｂ］と、図１０に示すグラフパターン（patternID：02）から、図１３に示すグラフマッチングクエリ２を作成する。
【００５４】
グラフ構造データ格納ＤＢ３０は、グラフパターンマッチング処理部１４０からの依頼に応じてグラフ構造データの検索を行い、グラフ構造データの中からグラフマッチする部分グラフを、検索結果グラフとしてグラフパターンマッチング処理部１４０に返却する（Ｓ２０７）。
【００５５】
例えば、グラフ構造データ格納ＤＢ３０は、図１２に示すグラフマッチングクエリ１の検索結果として、図１４に示す検索結果グラフを、グラフパターンマッチング処理部１４０に返却する。また、例えば、グラフ構造データ格納ＤＢ３０は、図１３に示すグラフマッチングクエリ２の検索結果として、図１５に示す検索結果グラフを、グラフパターンマッチング処理部１４０に返却する。
【００５６】
グラフマッチングクエリ（１および２）による検索結果グラフを取得すると、グラフパターンマッチング処理部１４０は、検索結果グラフにある全リソースのリテラル情報をグラフ構造データ格納ＤＢ３０に要求する（Ｓ２０８）。
【００５７】
グラフ構造データ格納ＤＢ３０は、グラフパターンマッチング処理部１４０からの要求に応じて、検索結果グラフにある全リソースのリテラル情報をグラフ構造データの中から検索してグラフパターンマッチング処理部１４０に返却する（Ｓ２０９）。
【００５８】
例えば、グラフ構造データ格納ＤＢ３０がグラフ構造データの中から検索する、グラフマッチングクエリ２による検索結果グラフの全リソースのリテラル情報について説明する。例えば、グラフマッチングクエリ２による検索結果グラフとして、図１５に示すようなグラフが得られた場合、グラフ構造データ格納ＤＢ３０は、図１６に示すように、グラフ構造データの中から、検索結果グラフの全てのリソースのリテラル情報を検索する。例えば、グラフ構造データ格納ＤＢ３０は、検索の結果、リソース［ｗｄ：セマンティックＷｅｂ］のリテラルとして［セマンティックＷｅｂ］を取得し、リソース［ｒｍ：Ｔ−０４１］のリテラルとして［「セマンティックＷｅｂ」入門］を取得し、リソース［ｍｓ：ＰＦ１−１４］のリテラルとして［コンテキスト情報の蓄積］を取得し、リソース［Ｐｅｒｓｏｎ：特許太郎］のリテラルとして［特許太郎］を取得する。なお、リテラルは、上述したように、グラフ構造データ（図５参照）を構成するノードのうち、四角形のノードに付与されたラベルに該当する情報である。
【００５９】
グラフパターンマッチング処理部１４０は、グラフ構造データ格納ＤＢ３０から検索結果グラフにある全リソースのリテラル情報を取得すると、検索結果グラフをシリアライズし、シリアライズしたデータをマッチング結果格納ＤＢ１１０に格納する（Ｓ２１０）。
【００６０】
例えば、図１７に、グラフパターンマッチング処理部１４０による検索結果グラフのシリアライズ例を示す。グラフパターンマッチング処理部１４０は、検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルをそのまま抽出する。例えば、グラフパターンマッチング処理部１４０は、図１７に示すように、始点リソースのノードに付与された［ｗｄ：セマンティックＷｅｂ］を「subject」とし、始点リソースに接続された有向エッジに付与されたラベル［rdf:type］を「property」とし、始点リソースと有向エッジで連結される始点クラスのノードに付与されたラベル［ｗｄ：技術］を「object」として検索結果グラフから抽出して相互に関連付ける。
【００６１】
また、図１８に、図１７とは異なる検索結果グラフのシリアライズ例を示す。グラフパターンマッチング処理部１４０は、検索結果グラフに含まれる各ノードに付与されたラベルおよびノード間を連結する有向エッジに付与されたラベルを、ユーザ端末２０に出力する際のユーザインターフェースに合わせた出力形式に加工する。ユーザ端末２０に出力する際のユーザインターフェースに合わせた出力形式が、例えば、図１８に示すように、始点リソース、始点リテラルプロパティ、始点リテラル、終点リソース、終点リテラルプロパティ、終点リテラル、中間リソース、中間クラス、中間リテラルプロパティ、中間リテラルで構成されるものとする。このとき、グラフパターンマッチング処理部１４０は、検索結果グラフの中から、始点リソースおよび終点リソースを両端とするグラフ構造を特定し、始点リソース、始点リテラルプロパティ、始点リテラル、終点リソース、終点リテラルプロパティ、終点リテラル、中間リソース、中間クラス、中間リテラルプロパティ、中間リテラルのそれぞれに付与されたラベルを抽出して、図１８に示すような出力形式に加工する。
【００６２】
検索結果グラフのシリアライズ後、グラフパターンマッチング処理部１４０は、検索結果グラフのシリアライズデータデータをｋｅｙ−Ｖａｌストアを用いて、マッチング結果格納ＤＢ１２０に格納する。
【００６３】
例えば、図１９に示すように、グラフパターンマッチング処理部１４０は、「ｋｅｙ：キーワード」と、ｋｅｙに対応する「Ｖａｌ（値）：始点クラス，始点リソース」を、キーワードおよび始点リソース対応のＫｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ１）を用いてマッチング結果格納ＤＢ１２０に格納する。例えば、グラフパターンマッチング処理部１４０は、「ｋｅｙ：キーワード→セマンティックＷｅｂ」と、「Ｖａｌ（値）→ｗｄ：技術，ｗｄ：セマンティックＷｅｂ」とを対応付けて、Ｋｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ１）を用いて格納する（図１９参照）。同様に、グラフパターンマッチング処理部１４０は、「ｋｅｙ：キーワード→ＸＭＬ」と、「Ｖａｌ（値）→ｗｄ：技術，ｗｄ：ＸＭＬ」とを対応付けて、Ｋｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ１）を用いて格納する（図１９参照）。「Ｋｅｙ：キーワード」は、ユーザ端末２０からユーザが入力する検索キーワードに相当する文字列である。ステップＳ２０１で管理者端末１０から入力された検索キーワードプロパティを用いて、ステップＳ２０８で得られたリテラル情報の中から、始点リソースに接続する検索キーワードプロパティでつながるリテラルを、「ｋｅｙ：キーワード」とする。例えば、始点クラスが［wd：技術］で、始点リソース［wd：セマンティックWeb］で、検索キーワードプロパティが［wd：name］の場合には、「ｋｅｙ：キーワード」は、［セマンティックWeb］となる。
【００６４】
また、図１１に示すステップＳ２０６でグラフパターン格納ＤＢ１１０から取得したグラフパターンを、ｋｅｙ−Ｖａｌストアを用いて格納する。例えば、グラフパターンマッチング処理部１４０は、図２０に示すように、「ｋｅｙ：始点クラス，終点クラス」と、ｋｅｙに対応する「Ｖａｌ（値）：グラフパターンＩＤの集合」を、検索条件およびグラフパターンＩＤ対応のＫｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ２）を用いてマッチング結果格納ＤＢ１２０に格納する。例えば、グラフパターンマッチング処理部１４０は、「ｋｅｙ：（始点クラス，終点クラス）→（ｗｄ：技術，ｐｅｒｓｏｎ：人）」と、「Ｖａｌ（値）→｛pattern01，pattern02｝」とを対応付けて、Ｋｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ２）を用いて格納する（図２０参照）。
【００６５】
また、図１１に示すステップＳ２０８でグラフ構造データ格納ＤＢ３０から取得した検索結果グラフと、図１１に示すステップＳ２１０で取得した検索結果グラフのリテラル情報とをシリアライズしたデータ（例えば、図１７、図１８参照）を、ｋｅｙ−Ｖａｌストアを用いて格納する。例えば、グラフパターンマッチング処理部１４０は、図２１に示すように、「ｋｅｙ：グラフパターンＩＤ，始点リソース（図１１のステップＳ２０６で指定）」と、ｋｅｙに対応する「Ｖａｌ（値）：グラフマッチング結果シリアライズデータ（図１１のステップＳ２０８およびＳ２１０で取得）」を、マッチング結果対応のＫｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ３）を用いてマッチング結果格納ＤＢ１２０に格納する。例えば、グラフパターンマッチング処理部１４０は、「ｋｅｙ：（グラフパターンＩＤ，始点リソース）→（pattern01，ｗｄ：セマンティックＷｅｂ）」と、「Ｖａｌ（値）→検索結果シリアライズデータ（例えば、図１７もしくは図１８参照）」とを対応付けて、Ｋｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ３）を用いて格納する（図２１参照）。同様にして、図１１のステップＳ２０２で得られた始点リソースと、図１１のステップＳ２０４で得られたグラフパターンの組合せごとに、図１１のステップＳ２０８で得られた検索結果グラフおよび図１１のステップＳ２１０で得られたリテラル情報をシリアライズしたデータ（例えば、図１７、図１８参照）を、図２１に示すように、Ｋｅｙ−Ｖａｌストアのテーブル（Ｔａｂｌｅ３）を用いてマッチング結果格納ＤＢ１２０に格納する。
【００６６】
マッチング結果格納ＤＢ１２０には、グラフパターンマッチング処理部１４０により検索結果グラフのシリアライズデータが格納される（Ｓ２１１）。なお、グラフパターンマッチング処理部１４０は、マッチング結果格納ＤＢ１２０にシリアライズデータを格納した後、例えば、マッチング結果格納ＤＢ１２０から格納完了の通知を受信するのを待って、終了メッセージを管理者端末１０に送信する。
【００６７】
なお、上述してきたマッチング結果格納処理（図１１）は、管理者端末１０にて指定された、マッチング結果を格納する範囲（始点クラス、終点クラス）ごとに実行され、各範囲条件に対応する検索結果グラフのシリアライズデータがマッチング結果格納ＤＢ１２０に格納される。
【００６８】
［検索処理］
次に、図２２、２３および２４を用いて、実施例１に係る検索処理の流れを説明する。図２２は、検索処理の流れを示す図である。図２３は、検索処理の補足説明図である。図２４は、検索結果の一例を示す図である。
【００６９】
図２２に示すように、ユーザ端末２０は、検索の要求を行うための開始リクエストをグラフパターンマッチング装置１００に送信する（Ｓ３０１）。
【００７０】
グラフパターンマッチング装置１００の入力用ＵＲＩ生成部１５０は、入力用ＵＩを生成して（Ｓ３０２）、ユーザ端末２０に送信する。
【００７１】
ユーザ端末２０は、グラフパターンマッチング装置１００から入力用ＵＩを受信すると、受信した入力用ＵＩを表示する（Ｓ３０３）。
【００７２】
ユーザ端末２０は、表示した入力用ＵＩ上で、ユーザからキーワードの入力と終点クラスの指定を受け付けると（Ｓ３０４）、指定されたキーワードおよび終点クラスを検索条件として、グラフパターンマッチング装置１００に送信する。例えば、図２３の（１）に示すように、ユーザ端末２０は、ユーザから、表示した入力用ＵＩ上で、例えば、キーワード「セマンティックＷｅｂ」の入力および終点クラス「人」の指定を受け付けると、「キーワード  セマンティックＷｅｂ」、および「終点クラス  ｐｅｒｓｏｎ：人」を検索条件として、グラフパターンマッチング装置１００に送信する。
【００７３】
グラフパターンマッチング装置１００のマッチング結果検索部１６０は、グラフパターンマッチング装置１００から検索条件を受信すると、受信した検索条件に含まれるキーワードに対応するリソースをマッチング結果格納ＤＢ１２０に要求する（Ｓ３０５）。マッチング結果格納ＤＢ１２０は、キーワードおよび始点リソース対応のＫｅｙ−ＶａｌストアのＴａｂｌｅ１（図１９）を参照して、検索条件のキーワードに対応付けられた値（始点クラス、始点リソースなど）を取得し、マッチング結果検索部１６０に返却する（Ｓ３０６）。
【００７４】
例えば、マッチング結果格納ＤＢ１２０は、Ｔａｂｌｅ１を参照して、検索条件のキーワードに対応付けられた「始点クラス  ｗｄ：技術」および「始点リソース  ｗｄ：セマンティックＷｅｂ」を取得する。そして、マッチング結果格納ＤＢ１２０は、「始点クラス  ｗｄ：技術」および「始点リソース  ｗｄ：セマンティックＷｅｂ」を、マッチング結果検索部１６０に返却する。
【００７５】
マッチング結果検索部１６０は、検索条件のキーワードに対応付けられた値（始点クラス、始点リソースなど）をマッチング結果格納ＤＢ１２０から取得すると、ステップＳ３０６で得られた始点リソース、およびステップＳ３０４により得られた終点クラスとなるマッチング結果をマッチング結果格納ＤＢ１２０に要求する（Ｓ３０７）。
【００７６】
マッチング結果格納ＤＢ１２０は、条件に合致するマッチング結果を検索して、マッチング結果検索部１６０に返却する（Ｓ３０８）。
【００７７】
例えば、マッチング結果検索部１６０は、図２３の（２）に示すように、「始点クラス  ｗｄ：技術」、「終点クラス  ｐｅｒｓｏｎ：人」および「始点リソース  ｗｄ：セマンティックＷｅｂ」となるマッチング結果をマッチング結果格納ＤＢ１２０に要求する。マッチング結果格納ＤＢ１２０は、図２３の（３）に示すように、「始点クラス  ｗｄ：技術」および「終点クラス  ｐｅｒｓｏｎ：人」から、検索条件およびグラフパターンＩＤ対応のＫｅｙ−ＶａｌストアのＴａｂｌｅ２（図２０）を参照して、「グラフパターンＩＤ  ｛pattern01，pattern02｝」を取得する。続いて、マッチング結果格納ＤＢ１２０は、図２３の（４）に示すように、マッチング結果対応のＫｅｙ−ＶａｌストアのＴａｂｌｅ３（図２１）を参照して、グラフパターンＩＤをｋｅｙとして、マッチング結果対応のＫｅｙ−ＶａｌストアのＴａｂｌｅ３（図２１）から、検索結果シリアライズデータを取得する。そして、マッチング結果格納ＤＢ１２０は、検索結果シリアライズデータを、条件に合致するマッチング結果として、マッチング結果検索部１６０に返却する。
【００７８】
出力用ＵＩ生成部１７０は、検索条件に合致するマッチング結果として、マッチング結果格納ＤＢ１２０から検索結果シリアライズデータを取得すると、取得したシリアライズデータを展開して出力用ＵＩを生成し（Ｓ３０９）、ユーザ端末２０に送信する。なお、マッチング結果格納ＤＢ１２０から取得した検索結果シリアライズデータが、ユーザ端末２０の出力形式に加工されている状態（図１８参照）であれば、出力用ＵＩ生成部１７０は、検索結果シリアライズデータを加工することなくそのまま展開して出力用ＵＩを生成できる。
【００７９】
ユーザ端末２０は、グラフパターンマッチング装置１００から受信した出力用ＵＩを出力して、出力結果（検索条件に合致するマッチング結果）を表示する（Ｓ３１０）。例えば、「キーワード  セマンティックＷｅｂ」、および「終点クラス  ｐｅｒｓｏｎ：人」を検索条件である場合、この検索条件に合致するマッチング結果として、例えば、図２４に示すような検索結果が表示される。
【００８０】
上述したグラフ構造データ格納ＤＢ３０、グラフパターン格納ＤＢ１１０およびマッチング結果格納ＤＢ１２０は、例えば、サーバなどの情報処理装置に、ＤＢＭＳ（Data  Base  Management  System）を搭載することにより実装できる。また、グラフパターンマッチング装置１００は、サーバやパーソナルコンピュータなどの情報処理装置により実装できる。
【００８１】
［実施例１による効果］
上述してきたように、実施例１に係るグラフパターンマッチングシステムにおいて、グラフパターンマッチング装置は、事前に作成したグラフマッチングクエリによりグラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして、Ｋｅｙ−Ｖａｌストアのテーブルを用いてマッチング結果格納ＤＢ１２０に格納する。よって、例えば、ユーザ端末２０から検索の要求があった場合、従来のように、検索条件に応じたグラフパターンの作成処理を行う必要がなく、検索条件に応じたマッチング結果をマッチング結果格納ＤＢ１２０から直ぐに検索することができるので、検索処理の高速化を実現できる。
【００８２】
また、実施例１では、検索結果グラフのデータをシリアライズして格納する場合、例えば、図１７に示すように、検索結果グラフの構造から取得できるデータをそのまま格納するので、大きな処理負担を要することなく、マッチング結果格納ＤＢ１２０に格納するデータを準備できる。
【００８３】
また、実施例１では、検索結果グラフのデータをシリアライズして格納する場合、例えば、図１８に示すように、ユーザ端末２０に出力する際の出力形式に合わせて加工したデータを格納するので、ユーザ端末２０に対してより迅速に検索結果を提供できる。
【実施例２】
【００８４】
以下、本発明にかかるグラフパターンマッチングシステムおよびグラフパターンマッチング方法の他の実施形態として実施例２を説明する。
【００８５】
（１）装置構成等
実施例１に係るグラフパターンマッチングシステムの構成、例えば、図１に示すグラフパターンマッチングシステムの各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【００８６】
例えば、図２５に示すように、グラフパターンマッチング装置１００において、マッチング結果格納ＤＢ１２０を、入力部と、複数のＤＢ（Data  Base）と、検索部とで構成してもよい。また、図２６に示すように、グラフパターン格納ＤＢ１１０に対応するＤＢとして外部に予め用意されたグラフパターン格納ＤＢ４０を使用するようにしてもよい。また、図２７に示すように、図２６において、図２５と同様に、マッチング結果格納ＤＢ１２０を、入力部と、複数のＤＢ（Data  Base）と、検索部とで構成してもよい。なお、また、図２６に示すグラフパターン格納ＤＢ４０は、図１に示すグラフパターン格納ＤＢ１１０に対応し、図２６に示すマッチング結果格納ＤＢ２１０は、図１に示すマッチング結果格納ＤＢ１２０に対応し、図２６に示すグラフパターンマッチング処理部２２０は、図１に示すグラフパターンマッチング処理部１４０に対応し、図２６に示す入力用ＵＩ生成部２３０は、図１に示す入力用ＵＩ生成部１５０に対応し、図２６に示す出力用ＵＩ生成部２４０は、図１に示す出力用ＵＩ生成部１７０に対応し、図２６に示すマッチング結果検索部２５０は、図１に示すマッチング結果検索部１６０に対応する。図２５、図２６および図２７は、グラフパターンマッチングシステムの構成例を示す図である。
【００８７】
上述したように、グラフパターンマッチングシステムの各構成要素の分散または統合の具体的形態は、図１、図２５〜図２７に示すものに限られず、各構成要素の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００８８】
（２）グラフパターンマッチング方法
実施例１に係るグラフパターンマッチングシステムにより、以下のようなグラフパターンマッチング方法が実現される。
【００８９】
すなわち、ユーザ端末から受信した検索条件に応じて、ノード間を有向エッジで連結したグラフ構造データについての検索を行い、検索結果を前記ユーザ端末に出力するグラフパターンマッチング装置を含むグラフパターンマッチングシステムに適用されるグラフパターンマッチング方法であって、前記グラフパターンマッチング装置が、事前に作成したグラフマッチングクエリにより前記グラフ構造データの検索を行い、検索により得られる検索結果グラフのデータをシリアライズして格納するグラフパターンマッチング処理工程（例えば、図１１のステップＳ２０１〜Ｓ２１０等参照）を含むグラフパターンマッチング方法が実現される。
【００９０】
（３）グラフパターンマッチング装置に所定の手順を実行させるプログラム
また、実施例１で説明した各種の処理（例えば、図４、図１１など）は、パーソナルコンピュータやワークステーションなど、グラフパターンマッチング装置１００として実装されるコンピュータに、実施例１で説明した各種の処理と同様の処理機能を実現させるプログラムを実行させることで実現することもできる。そこで、以下では、図２８を用いて、実施例１で説明した各種の処理（例えば、図４、図１１など）と同様の機能を実現するコンピュータの一例を説明する。図２８は、実施例１の処理と同様の機能を実現させるためのプログラムを実行するコンピュータの一例を示す図である。
【００９１】
図２８に示すように、グラフパターンマッチング装置１００として実装されるコンピュータ３００は、例えば、メモリ３０１と、ＣＰＵ（Central  Processing  Unit）３０２を有する。また、コンピュータ３００は、図２８に示すように、ハードディスクドライブインタフェース３０３と、光ディスクドライブインタフェース３０４を有する。また、コンピュータ３００は、図２８に示すように、シリアルポートインタフェース３０５と、ビデオアダプタ３０６と、ネットワークインタフェース３０７を有する。そして、コンピュータ３００は、これらの各部３０１〜３０７をバス３０８によって接続する。
【００９２】
メモリ３０１は、図２８に示すように、ＲＯＭ（Read  Only  Memory）及びＲＡＭ（Random  Access  Memory）を含む。ＲＯＭは、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース３０３は、図２８に示すように、ハードディスクドライブ３０９に接続される。光ディスクドライブインタフェース３０４は、図２８に示すように、光ディスクドライブ３１０に接続される。例えば、光ディスクドライブ３１０には、光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース３０５は、図２８に示すように、例えば、マウス４００およびキーボード５００に接続される。ビデオアダプタ３０６は、図２８に示すように、例えば、ディスプレイ６００に接続される。
【００９３】
ここで、図２８に示すように、ハードディスクドライブ３０９は、例えば、ＯＳ（Operating  System）、アプリケーションプログラム、プログラムモジュール、プログラムデータを記憶する。
【００９４】
すなわち、上述したグラフパターンマッチング装置１００と同様の機能を有するプログラムは、コンピュータ３００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ３０９に記憶される。つまり、上述の実施例１で説明した処理（図４、図１１など）と同様の処理機能をグラフパターンマッチング装置１００としてのコンピュータ３００に実現させるための手順が記述されたプログラムモジュールが、ハードディスクドライブ３０９に記憶される。このプログラムモジュールは、例えば、図１に示すクエリグラフパターン生成部１３０やグラフパターンマッチング処理部１４０に対応する。
【００９５】
また、上述の実施例１で説明した処理（図４、図１１など）と同様の処理機能をグラフパターンマッチング装置１００としてのコンピュータ３００に実現させるための手順が記述されたプログラムモジュールにより用いられるデータは、プログラムデータとして、例えばハードディスクドライブ３０９に記憶される。例えば、このプログラムデータは、例えば、グラフ構造データ格納ＤＢ３０やグラフパターン格納ＤＢ１１０に格納されているデータに対応する。
【００９６】
そして、ＣＰＵ３０２が、ハードディスクドライブ３０９に記憶されたプログラムモジュールやプログラムデータを必要に応じてＲＡＭに読み出し、上述の実施例１で説明したものと同様の処理（図４、図１１など）を実現するための手順を実行する。
【００９７】
なお、上述の実施例１で説明した処理（図４、図１１など）と同様の処理機能をグラフパターンマッチング装置１００としてのコンピュータ３００に実現させるための手順が記述されたプログラムモジュールやプログラムデータは、ハードディスクドライブ３０９に記憶される場合に限られるものではなく、例えば、着脱可能な記憶媒体である光ディスクドライブ３１０等に記憶されていてもよい。この場合には、ＣＰＵ３０２が、光ディスクドライブ３１０を介して、グラフパターンマッチング装置１００と同様の機能を有するプログラムモジュールやプログラムデータを読み出す。
【００９８】
あるいは、上述の実施例１で説明した処理（図４、図１１など）と同様の処理機能をグラフパターンマッチング装置１００としてのコンピュータ３００に実現させるための手順が記述されたプログラムモジュールやプログラムデータは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）など）を介して接続された他のコンピュータに記憶されていてもよい。この場合には、ＣＰＵ３０２が、ネットワークインタフェース３０７を介して、グラフパターンマッチング装置１００と同様の機能を有するプログラムモジュールやプログラムデータを他のコンピュータから読み出す。
【００９９】
なお、プログラムによりＣＰＵ３０２が動作して各種処理を行う代わりに、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ(Field  Programmable  Gate  Array)などの電子回路を用いて処理を行うこともできる。また、メモリ３０１として、フラッシュメモリ(flash  memory)などを用いることもできる。    
【符号の説明】
【０１００】
１０  管理者端末
２０  ユーザ端末
３０  グラフ構造データ格納ＤＢ
４０  グラフパターン格納ＤＢ
１００  グラフパターンマッチング装置
１１０  グラフパターン格納ＤＢ
１２０  マッチング結果格納ＤＢ
１３０  クエリグラフパターン生成部
１４０  グラフパターンマッチング処理部
１５０  入力用ＵＩ生成部
１６０  マッチング結果検索部
１７０  出力用ＵＩ生成部
２００  グラフパターンマッチング装置
２１０  マッチング結果格納ＤＢ
２２０  グラフパターンマッチング処理部
２３０  入力用ＵＩ生成部
２４０  出力用ＵＩ生成部
２５０  マッチング結果検索部
３００  コンピュータ
３０１  メモリ
３０２  ＣＰＵ
３０３  ハードディスクドライブインタフェース
３０４  光ディスクドライブインタフェース
３０５  シリアルポートインタフェース
３０６  ビデオアダプタ
３０７  ネットワークインタフェース
３０８  バス
３０９  ハードディスクドライブ
３１０  光ディスクドライブ
４００  マウス
５００  キーボード
６００  ディスプレイ
【図１】
2013054602.tif 000003
【図２】
2013054602.tif 000004
【図３】
2013054602.tif 000005
【図４】
2013054602.tif 000006
【図５】
2013054602.tif 000007
【図６】
2013054602.tif 000008
【図７】
2013054602.tif 000009
【図８】
2013054602.tif 000010
【図９】
2013054602.tif 000011
【図１０】
2013054602.tif 000012
【図１１】
2013054602.tif 000013
【図１２】
2013054602.tif 000014
【図１３】
2013054602.tif 000015
【図１４】
2013054602.tif 000016
【図１５】
2013054602.tif 000017
【図１６】
2013054602.tif 000018
【図１７】
2013054602.tif 000019
【図１８】
2013054602.tif 000020
【図１９】
2013054602.tif 000021
【図２０】
2013054602.tif 000022
【図２１】
2013054602.tif 000023
【図２２】
2013054602.tif 000024
【図２３】
2013054602.tif 000025
【図２４】
2013054602.tif 000026
【図２５】
2013054602.tif 000027
【図２６】
2013054602.tif 000028
【図２７】
2013054602.tif 000029
【図２８】
2013054602.tif 000030