(57)【要約】【課題】セマンティクスが類似するグラフパターンの排除を容易にするとともに、グラフパターン代表元の抽出精度が向上することを課題とする。【解決手段】グラフパターンマッチング装置１０は、ユーザ端末２０からグラフパターン代表元の抽出範囲の指定として、始点ノードと終点ノードの指定を受け付け、該指定された抽出範囲に基づいてグラフパターンＤＢ１２からグラフパターンを抽出し、該グラフパターンから作成したクエリを用いてグラフＤＢ１１を検索し、該検索の結果から指定された抽出範囲にマッチするグラフ構造データの分布状況を示す特徴ベクトルを作成する。そして、グラフパターンマッチング装置１０は、作成された特徴ベクトルを用いて、グラフパターンのクラスタリングを実行し、実行されたクラスタリング結果からグラフパターン代表元を抽出する。【選択図】        図１
2013145508.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/）
【非特許文献２】「ARQ-A  SPARQL  Processor  for  Jena」、［Online］、［平成２３年１１月２４日検索］、インターネット（ＵＲＬ：http://jena.sourceforge.net/ARQ/）
【非特許文献３】「Finding  Similarity  and  Comparability  from  Merged  Hetero  Data  of  the  Semantic  Web  by  Using  Graph  Pattern  Matching」、［WWW2005  Workshop,  Activities  on  Semantic  Web  Technologies  in  Japan,  2005］
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記したＲＤＦなどのグラフ構造データから頻出なグラフパターンを抽出する技術では、グラフパターンのセマンティクスを考慮していないため、セマンティクスが類似するグラフパターンを排除できないという課題があった。つまり、セマンティクスが類似するグラフパターンは、出現頻度も類似する傾向があるため、頻出なグラフパターンを抽出すると、セマンティクスが類似するグラフパターンが多数抽出されてしまう結果、セマンティクスが類似するグラフパターンを排除できない。
【００１１】
また、グラフパターンを類似セマンティクスに分類する技術では、特定のアルゴリズムの使用を前提としており、アルゴリズムの切り替えができず、データの偏りなどが原因で適切な精度が得られない場合があるという課題があった。例えば、グラフパターンがほとんど１つのクラスタに分類されてしまい、適切に分類できない事態が生じることがある。
【００１２】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、セマンティクスが類似するグラフパターンの排除を容易にするとともに、グラフパターン代表元の抽出精度が向上することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、本発明は、ユーザ端末から受信した検索条件に応じて、ノード間をエッジで連結したグラフ構造データについての検索を行い、該検索の結果を前記ユーザ端末に出力するグラフパターンマッチング装置を有するグラフパターンマッチングシステムであって、前記グラフパターンマッチング装置は、前記グラフ構造データを記憶するグラフデータ記憶部と、前記グラフ構造データを検索するクエリとして用いられる事前に作成されたグラフパターンであって、該グラフパターンに含まれるノードのうち特定の２つのノードを始点ノードと終点ノードとして定めたグラフパターンを記憶するグラフパターン記憶部と、前記ユーザ端末からグラフパターン代表元の抽出範囲の指定として、始点ノードと終点ノードの指定を受け付け、該指定された抽出範囲に基づいて前記グラフパターン記憶部からグラフパターンを抽出し、該グラフパターンから作成したクエリを用いて前記グラフデータ記憶部を検索し、該検索の結果から前記指定された抽出範囲にマッチするグラフ構造データの分布状況を示す特徴ベクトルを作成する特徴ベクトル作成部と、前記特徴ベクトル作成部によって作成された特徴ベクトルを用いて、前記グラフパターンのクラスタリングを実行するクラスタリング実行部と、前記クラスタリング実行部によって実行されたクラスタリング結果からグラフパターン代表元を抽出するグラフパターン代表元抽出部と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、セマンティクスが類似するグラフパターンの排除を容易にするとともに、グラフパターン代表元の抽出精度を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係るグラフパターンマッチングシステムの構成を示すブロック図である。
【図２】図２は、グラフデータの一部を例示した図である。
【図３】図３は、ＲＤＦ／ＸＭＬ形式のデータ、その元データおよびこの形式のデータによるサブグラフを例示した図である。
【図４】図４は、パターンをグラフ化して例示した図である。
【図５】図５は、リソースのサンプリング処理を説明する図である。
【図６】図６は、リソース対リストの例を示す図である。
【図７】図７は、クエリリストの例を示す図である。
【図８】図８は、特徴ベクトルを用いてクラスタリングを行った結果を示す図である。
【図９】図９は、代表元となるグラフパターンを抽出した結果を示す図である。
【図１０】図１０は、カバー率とユニークカバー率を算出した結果を示す図である。
【図１１】図１１は、代表元抽出処理の流れを示す図である。
【図１２】図１２は、実施例１の処理と同様の機能を実現させるためのプログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１６】
以下に、図面を参照しつつ、本願にかかるグラフパターンマッチングシステムおよび代表グラフパターン抽出方法の実施例を説明する。後述する各実施例は一実施形態にすぎず、本願にかかるグラフパターンマッチングシステムおよびグラフパターン代表元抽出方法の実施形態を限定するものではない。また、後述する各実施例は処理内容に矛盾を生じさせない範囲で適宜組み合わせることもできる。
【実施例１】
【００１７】
［情報提示システムの構成（実施例１）］
図１は、実施例１に係るグラフパターンマッチングシステムの構成を示す機能ブロック図である。実施例１に係るグラフパターンマッチングシステムは、例えば、ユーザからの検索要求に応じたデータ検索サービスを提供する。
【００１８】
図１に示すように、実施例１に係るグラフパターンマッチングシステムは、グラフパターンマッチング装置１０およびユーザ端末２０を含んで１つのシステムを構成する。
【００１９】
ユーザ端末２０は、グラフパターンマッチング装置１０を利用するユーザにより操作される端末である。ユーザ端末２０は、入力用ＵＩ（User  Interface）を介して、ユーザからグラフパターンの代表元を抽出する範囲を指定するパラメータ（始点クラス、終点クラス、リソースサンプリングパラメータ）の入力を受け付けると、グラフパターンマッチング装置１０に送信する。また、ユーザ端末２０は、グラフパターンマッチング装置１０からグラフ代表元を受信すると、出力用ＵＩを介して検索結果を表示出力して、ユーザに提供する。
【００２０】
また、ユーザ端末２０は、入力用ＵＩを介して、ユーザから検索条件（キーワードや終点クラス）の入力を受け付けると、グラフパターンマッチング装置１０に送信する。また、ユーザ端末２０は、グラフパターンマッチング装置１０から検索結果を受信すると、出力用ＵＩを介して検索結果を表示出力して、ユーザに提供する。
【００２１】
グラフパターンマッチング装置１０は、グラフＤＢ（Date  Base）１１、グラフパターンＤＢ１２、特徴ベクトル作成部１３、クラスタリング実行部１４およびグラフパターン代表元抽出部１５を有する。
【００２２】
グラフＤＢ１１は、インスタンスをもつノード間がアークによって接続されたグラフを記憶する。ここで、図２を用いて、グラフＤＢ１１に記憶されたグラフについて説明する。図２は、グラフデータの一部を例示した図である。
【００２３】
グラフＤＢ１１に記憶されたデータ群を全て使って、図２に一部を例示したグラフデータ、つまり互いに異なるインスタンスをもつノード間がラベルをもつアークによって接続され且つ当該インスタンスのクラスが定義されたグラフデータを表示することができる。逆にいえば、グラフデータを表示するための過不足ないデータ群がグラフＤＢ１１に記憶されている。以下、そのデータ群を便宜的にグラフデータという。また、ラベルとは、アークの種類を識別する識別子であり、クラスとは、各インスタンスが属する概念を示すノードであり、インスタンスとは、クラス以外の個々の事物を示すノードである。
【００２４】
グラフでは、例えば、「テーマ００１」や「山本幸子」などのインスタンスをもつノードが、「ｔｈｅｍｅ：担当者」などのラベルをもつアークで接続される。また、グラフでは、ノードにそのインスタンス「テーマ００１」などの概念であるクラス「テーマ」などが定義される。
【００２５】
図３に示すように、「論文Ｆ」で示され、その元データの著者が山田太郎であり、題名が「Ｂ技術入門」であり、キーワードがＢ技術である、元データは、グラフＤＢ１１では、ＲＤＦ／ＸＭＬ形式のデータとなって、グラフＤＢ１１に記憶され、これがグラフのサブグラフをなす。「ＲＤＦのグラフ表現」と題されたものは、このサブグラフをグラフィカルに表現したものである。
【００２６】
図１の説明に戻って、グラフパターンＤＢ１２は、グラフ構造データを検索するクエリとして用いられる事前に作成されたグラフパターンであって、該グラフパターンに含まれるノードのうち特定の２つのノードを始点ノードと終点ノードとして定めたグラフパターンを記憶する。グラフパターンとは、エッジのラベルが固定値の固定エッジ、エッジのラベルが任意の値を取りうる変数エッジ、ノードのラベルが固定値のインスタンス、ノードのラベルが任意の値を取りうる変数ノードで構成され、変数ノードのうち特定の２点を、始点ノードと終点ノードを定めておくグラフである。また、始点ノードのクラスを始点クラス、終点ノードのクラスを終点クラスと呼ぶ。
【００２７】
ここで、図４を用いて、グラフパターンＤＢ１２が記憶するグラフパターンについて説明する。図４は、パターンをグラフ化して例示した図である。図４の例では、グラフパターンＤＢ１２に記憶されたグラフパターンのうちの４パターンを例示している。図４に示すように、ラベル「？ｋｅｙｗｏｒｄ」の変数ノードが始点ノードであり、ラベル「？ｔａｒｇｅｔ」の変数ノードが終点ノードである。また、図４に示すｇｐ１、ｇｐ２、ｇｐ３、ｇｐ４の始点クラスは、「ｔｈｅｍｅ：テーマ」で、終点クラスは「ｏｒｇ：組織」となる。
【００２８】
また、グラフパターンは、グラフパターンＤＢ１２に記憶されるデータ群（グラフ）の一部をなすデータ群と同様なものであり、それを図４のようにグラフ化できるので、便宜的にはグラフと言えるが、グラフパターンは表示するものではなく、表示されるグラフの検索に使用されるものである。なお、データ群である実際のパターンを逐一説明するのは冗長なのでグラフ化されたパターンで便宜的に説明する。
【００２９】
一般的にパターンでは、ノードやアークの一部はインスタンスやラベルをもち、残りはそれらをもたない。そして、インスタンスやラベルをもたないノードやアークには変数が設定される。変数は、図４に示すように、「？」とそれに後続する単語からなる。
【００３０】
このようなパターンによって、あるグラフから検索されるサブグラフは、以下の条件を備えるものである。つまり、検索されるのは、（１）そのグラフまたはそのサブグラフであって、（２）パターンの構造を過不足なく有し、（３）パターン内でのインスタンスやラベルを過不足なく有し、つまりパターン内でのインスタンスやラベルをもつノードやアークの位置に等しい位置にあるノードやアークが当該インスタンスに等しいインスタンスやラベルを有するものである。
【００３１】
（３）の条件を補足すれば、例えば、パターンの一方端にあるノードのインスタンスを「Ａ」とすると、少なくとも検索されるサブグラフの一方端にあるノードのインスタンスも「Ａ」でなければならず、また、パターンの一方端にあるノードに接続される唯一のアークのラベルを「Ｂ」とすると、当該サブグラフの一方端にあるノードに接続される唯一のアークのラベルも「Ｂ」でなければならず、こうしたインスタンスやラベルのマッチングが、パターン内でのインスタンスやラベルをもつ全てのノードとアークにおいて必要なのである。
【００３２】
図１の説明に戻って、特徴ベクトル作成部１３は、ユーザ端末２０からグラフパターン代表元の抽出範囲の指定として、始点ノードと終点ノードの指定を受け付け、該指定された抽出範囲に基づいてグラフパターンＤＢ１２からグラフパターンを抽出し、該グラフパターンから作成したクエリを用いてグラフＤＢ１１を検索し、該検索の結果から抽出範囲の指定にマッチするグラフデータの分布状況を示す特徴ベクトルを作成する。
【００３３】
具体的には、特徴ベクトル作成部１３は、グラフパターン代表元を抽出する範囲を指定するパラメータをユーザ端末２０から受け付ける。グラフパターン代表元を抽出する範囲を指定するパラメータには、グラフパターンの始点クラスと終点クラスの指定、リソースサンプリングパラメータがある。ここで、グラフパターンの始点クラスと終点クラスの指定は、必須のパラメータである。なお、リソースサンプリングパラメータは、リソース対サンプリングに用いるパラメータで、設定しなくてもよい。
【００３４】
例えば、グラフパターン代表元を抽出する範囲を指定するパラメータとして、始点クラス「ｔｈｅｍｅ：テーマ」、終点クラス「ｏｒｇ：組織」、リソースサンプリングパラメータ「２０」を指定する。
【００３５】
続いて、特徴ベクトル作成部１３は、ユーザから入力されたパラメータを用いて、グラフＤＢ１１にあるグラフデータを参照して始点クラスのリソースと終点クラスのリソースを抽出し、始点クラスのリソースと終点クラスのリソースを組み合わせてリソース対を作成する。特徴ベクトル作成部１３は、始点クラスのリソースと終点クラスのリソースそれぞれを抽出する際に、リソースサンプリングパラメータを用いてリソースのサンプリングを行い、サンプリング結果を用いてリソース対リストを作成する。また、特徴ベクトル作成部１３は、リソースサンプリングパラメータが設定されていない場合には、グラフＤＢ１１にあるグラフデータから抽出した全リソースを用いてリソース対リストを作成する。
【００３６】
ここで、図５を用いて、上記したリソースサンプリングパラメータを用いたリソースのサンプリング（抽出）処理について説明する。図５は、リソースのサンプリング処理を説明する図である。図５に示すように、まず、特徴ベクトル作成部１３は、ユーザから入力されたパラメータ（始点クラス、終点クラス、リソースサンプリングパラメータ：Ｎ）を取得すると、クラスに属するリソースが接続する全てのプロパティをグラフＤＢ１１から取得する。特徴ベクトル作成部１３は、プロパティごとに、プロパティを経由して接続する他リソース数が多いリソース順にソートし、他リソースが多い上位Ｎ個のリソースを抽出する。その後、特徴ベクトル作成部１３は、サンプリング結果を用いて、図６に例示するようなリソース対リストを作成する。図６は、リソース対リストの例を示す図である。例えば、図６に例示するように、始点クラスのリソースとして「テーマ００１」、終点クラスのリソースとして「○○グループ」がリソース対リストに登録されている。
【００３７】
その後、特徴ベクトル作成部１３は、グラフパターンＤＢ１２に格納されているグラフパターンのうち、指定された始点クラスと終点クラスのグラフパターンのみを取得する。そして、特徴ベクトル作成部１３は、取得した全てのグラフパターンについて、始点ノードと終点ノードに、作成したリソース対リストのリスト対を順次代入し、図７に例示するようなクエリリストを作成する。例えば、図７に例示するように、始点ノードに「テーマ００１」、終点ノードに「○○グループ」を代入し、クエリリストを作成する。
【００３８】
特徴ベクトル作成部１３は、各グラフパターンに対して、クエリリストのクエリを順次グラフＤＢ１１にあるグラフデータに対して検索を行い、検索結果から特徴ベクトルを作成する。特徴ベクトルの要素は、グラフＤＢ１１にあるグラフデータに対する検索において、検索結果がある場合は「１」、検索結果が無い場合は「０」とする。特徴ベクトル作成部１３は、クエリリストの順番に特徴ベクトルの要素をならべて、特徴ベクトルを作成する。例えば、図４の４つのグラフパターン（ｇｐ１〜ｇｐ４）について、図２のグラフデータと図６のリソース対リストから作成したクエリリスト（図８）を用いて、特徴ベクトルをそれぞれ作成すると、ｇｐ１の特徴ベクトル（１，０，０，０，１，０，０，０，１）、ｇｐ２の特徴ベクトル（１，０，０，１，０，０，０，０，１）、ｇｐ３の特徴ベクトル（１，０，０，１，０，０，０，０，１）、ｇｐ４の特徴ベクトル（１，０，０，１，０，０，０，０，０）となる。
【００３９】
クラスタリング実行部１４は、特徴ベクトル作成部１３によって作成された特徴ベクトルを用いて、グラフパターンのクラスタリングを実行する。ここで、クラスタリングに使用するアルゴリズムとして、任意のアルゴリズムを使うことができる。このため、最終的なグラフパターン抽出結果が芳しくない場合は、アルゴリズムを変えてグラフパターン抽出を行うことができる。利用可能なクラスタリングアルゴリズムとして、例えば、最短距離法やウォード法などの階層クラスタリングアルゴリズム、ｋ−ｍｅａｎｓ法などの非階層クラスタリングアルゴリズム、その他、特徴ベクトルを用いて任意のクラスタリング可能なアルゴリズムを使用することができる。ここのグラフパターンクラスタリングでは、クラスタ数が、「２」からグラフパターンの個数までのクラスタ数のクラスタリング結果を求める。
【００４０】
ここで、上述した特徴ベクトルを用いてクラスタリングを行った結果を図８に例示する。図８は、特徴ベクトルを用いてクラスタリングを行った結果を示す図である。上述した例では、クラスタリング対象となるグラフパターンの数が４個であるため、クラスタ数が２から４までのクラスタリング結果を得る。例えば、図８に例示するように、クラスタ数が２の場合には、グラフパターン集合ｇｐ１〜ｇｐ４が２つのクラスタｃｌｕｓｔｅｒ２−１、２−２に分類される。同様に、クラスタ数が３の場合は３つのクラスタに、クラスタ数が４の場合には４つのクラスタに分類される。
【００４１】
グラフパターン代表元抽出部１５は、クラスタリング実行部１４によって実行されたクラスタリング結果からグラフパターン代表元を抽出する。具体的には、グラフパターン代表元抽出部１５は、クラスタリング実行部１４によってグラフパターンクラスタリングされた結果、抽出されたクラスタの中から、代表元となるグラフパターンを抽出する。グラフパターン代表元抽出部１５は、図９に例示するように、全てのクラスタについて、特徴ベクトルの要素の値が「１」となるものが最も多いグラフパターンを、１つの代表元として選ぶ。例えば、図９の例では、図８のクラスタリング結果のｃｌｕｓｔｅｒ２−２の代表元を抽出する場合には、ｃｌｕｓｔｅｒ２−２に分類されたグラフパターンの特徴ベクトルの要素の値が１となる個数は、ｇｐ２が３個、ｇｐ３が３個、ｇｐ４が２個となり、１が最も多いｇｐ２を代表元として選ぶ。
【００４２】
そして、グラフパターン代表元抽出部１５は、代表元抽出処理で抽出した代表元を基に、最適なクラスタ数を決定し、ユーザ端末２０に返す抽出グラフパターンセットを抽出する。グラフパターン代表元抽出部１５は、最適なクラスタ数を算出するため、クラスタ数ごとにカバー率とユニークカバー率を算出する。下記（１）式には、カバー率（Ｃｎ）を定義する式であり、下記（２）式には、ユニークカバー率（ｕＣｎ）の定義する式である。また、ここでは、「Ｇ」とはグラフデータのことをいい、「Ａｌｌ」とは、特徴ベクトル作成部１３がクエリリスト作成において抽出した全てのグラフパターンのことをいう。また、「Ｒｎ」とは、クラスタ数ｎのクラスタリングで得た代表元の集合である。また、「Ｍ（ｐ）」とは、グラフパターンｐにおいて、ｐの始点変数ノードと終点変数ノードにリソース対を代入して、得られたクエリを用いてＧに対して検索した結果、結果を持つリソース対の集合である。また、下記（３）式は、全てのグラフパターンで、結果を待つリソース対の集合を示し、下記（４）式は、代表元となるグラフパターンで、結果を持つリソース対の集合を示す。また、ｕＭ（Ｒｎ）とは、Ｍ（Ｒｎ）に属するリソース対のうち、Ｒｎに属する２個以上のグラフパターンで結果を持たないリソース対の集合を示す。
【００４３】
【数１】
2013145508.tif 000003
【００４４】
【数２】
2013145508.tif 000004
【００４５】
【数３】
2013145508.tif 000005
【００４６】
【数４】
2013145508.tif 000006
【００４７】
そして、グラフパターン代表元抽出部１５は、カバー率とユニークカバー率から、最適クラスタ数を算出する。例えば、算出方法の例として、Ｃｎ１≧ＭｉｎＣかつＣｎ１−Ｃｎ１−１が最大となるクラスタ数ｎ１を抽出する。そして、Ｃｎ１≧ＭｉｎＣかつｕＣｎ２−Ｃｎ２＋１が最大となるクラスタ数ｎ２を抽出する。そして、ｎ１、ｎ２のうち小さいものを、最適クラスタ数とする。なお、ＭｉｎＣとは、最低カバー率を示している。図１０には、図９で示した代表元抽出結果からカバー率とユニークカバー率を算出した結果を示す。図１０の例では、カバー率とユニークカバー率を算出した結果から最適クラスタ数が３となり、ユーザに返すグラフパターン代表元が図９にあるクラスタ数３のクラスタの代表元「ｇｐ１、ｇｐ２、ｇｐ４」となる。
【００４８】
［代表元抽出処理］
次に、図１１を用いて、実施例１に係るグラフパターンマッチングシステムによる処理を説明する。図１１は、代表元抽出処理の流れを示す図である。
【００４９】
図１１に示すように、ユーザ端末２０は、入力用ＵＩ（User  Interface）を介して、ユーザから代表負ラフパターンを抽出する範囲を指定するパラメータ（始点クラス、終点クラス、リソースサンプリングパラメータ）の入力を受け付けると、グラフパターンマッチング装置１０に送信する（ステップＳ１０１）。
【００５０】
そして、グラフパターンマッチング装置１０の特徴ベクトル作成部１３は、ユーザから入力されたパラメータを用いて、グラフＤＢ１１にあるグラフデータを参照して始点クラスのリソースと終点クラスのリソースを抽出し、始点クラスのリソースと終点クラスのリソースを組み合わせてリソース対サンプリングを作成する（ステップＳ１０２）。
【００５１】
そして、特徴ベクトル作成部１３は、グラフパターンＤＢ１２に格納されているグラフパターンのうち、指定された始点クラスと終点クラスのグラフパターンデータのみを取得する。そして、特徴ベクトル作成部１３は、取得した全てのグラフパターンデータについて、始点ノードと終点ノードに、作成したリソース対リストのリスト対を順次代入し、クエリリストを作成する（ステップＳ１０３）。
【００５２】
その後、特徴ベクトル作成部１３は、クエリリストのクエリを用いて、順次グラフＤＢ１１にあるグラフデータに対して検索を行い、検索結果から特徴ベクトルを作成する（ステップＳ１０４）。そして、クラスタリング実行部１４は、特徴ベクトル作成部１３で作成された特徴ベクトルを用いて、グラフパターンのクラスタリングを行う（ステップＳ１０５）。
【００５３】
続いて、グラフパターン代表元抽出部１５は、クラスタリング実行部１４によってグラフパターンクラスタリングされた結果、抽出されたクラスタの中から、代表元となるグラフパターンを抽出する（ステップＳ１０６）。そして、グラフパターン代表元抽出部１５は、抽出した代表元となるグラフパターンを基に、最適なクラスタ数を決定し、最適なクラスタ数に対応するグラフパターン代表元をユーザ端末２０に送信する（ステップＳ１０７）。
【００５４】
[実施例１の効果]
上述してきたように、グラフパターンマッチング装置１０は、グラフ構造データを記憶するグラフＤＢ１１と、グラフ構造データを検索するクエリとして用いられる事前に作成されたグラフパターンであって、該グラフパターンに含まれるノードのうち特定の２つのノードを始点ノードと終点ノードとして定めたグラフパターンを記憶するグラフパターンＤＢ１２とを有する。グラフパターンマッチング装置１０は、ユーザ端末２０からグラフパターン代表元の抽出範囲の指定として、始点ノードと終点ノードの指定を受け付け、該指定された抽出範囲に基づいてグラフパターンＤＢ１２からグラフパターンを抽出し、該グラフパターンから作成したクエリを用いてグラフＤＢ１１を検索し、該検索の結果から指定された抽出範囲にマッチするグラフ構造データの分布状況を示す特徴ベクトルを作成する。そして、グラフパターンマッチング装置１０は、作成された特徴ベクトルを用いて、グラフパターンのクラスタリングを実行し、実行されたクラスタリング結果からグラフパターン代表元を抽出する。
【００５５】
このため、グラフパターンマッチング装置１０は、グラフパターン内の特定の２つのノードの取りうる値から、グラフパターンを類似セマンティクスで分類することで、類似セマンティクスのグラフパターンの排除が容易にすることが可能である。また、クラスタリングに使用するアルコリズムを特定することなく、グラフパターンを特徴ベクトル化してクラスタリングを行うので、様々なクラスタリングアルゴリズムを用いたクラスタリングができ、グラフパターン代表元の抽出精度を向上させることが可能である。
【００５６】
また、実施例１によれば、クラスタリング結果を用いて、指定された抽出範囲にマッチするグラフ構造データの分布状況から最適なクラスタ数を算出し、グラフパターン代表元を抽出する。このため、適切なクラスタリング数を判定して、代表元を抽出することが可能である。
【００５７】
［システム構成］
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００５９】
［プログラム］
また、実施例１で説明した各種の処理（例えば、図１１など）は、パーソナルコンピュータやワークステーションなど、グラフパターンマッチング装置１０として実装されるコンピュータに、実施例１で説明した各種の処理と同様の処理機能を実現させるプログラムを実行させることで実現することもできる。そこで、以下では、図１２を用いて、実施例１で説明した各種の処理（例えば、図１１など）と同様の機能を実現するコンピュータの一例を説明する。図１２は、実施例１の処理と同様の機能を実現させるためのプログラムを実行するコンピュータの一例を示す図である。
【００６０】
図１２に示すように、グラフパターンマッチング装置１０として実装されるコンピュータ３００は、例えば、メモリ３０１と、ＣＰＵ（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)などを用いることもできる。
【符号の説明】
【００６９】
１０  グラフパターンマッチング装置
１１  グラフＤＢ
１２  グラフパターンＤＢ
１３  特徴ベクトル作成部
１４  クラスタリング実行部
１５  グラフパターン代表元抽出部
２０  ユーザ端末
３００  コンピュータ
３０１  メモリ
３０２  ＣＰＵ
３０３  ハードディスクドライブインタフェース
３０４  光ディスクドライブインタフェース
３０５  シリアルポートインタフェース
３０６  ビデオアダプタ
３０７  ネットワークインタフェース
３０８  バス
３０９  ハードディスクドライブ
３１０  光ディスクドライブ
４００  マウス
５００  キーボード
６００  ディスプレイ
【図１】
2013145508.tif 000007
【図２】
2013145508.tif 000008
【図３】
2013145508.tif 000009
【図４】
2013145508.tif 000010
【図５】
2013145508.tif 000011
【図６】
2013145508.tif 000012
【図７】
2013145508.tif 000013
【図８】
2013145508.tif 000014
【図９】
2013145508.tif 000015
【図１０】
2013145508.tif 000016
【図１１】
2013145508.tif 000017
【図１２】
2013145508.tif 000018