説明

グラフ検索装置およびその動作方法

【課題】ノードの関係性を枝狩り以外の方法で抽出し、俯瞰図を目視以外の方法で比較する。
【解決手段】クエリ発行部14は、グラフデータベース12に記憶されたグラフからサブグラフを検索する。ノード間係数計算部16は、サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフ検索装置およびその動作方法に関するものである。
【背景技術】
【0002】
様々なデータをグラフとして表現して、複数のデータソース間の関係等を、統一した表現で表す方法が確立されている。また、グラフとして表現されたデータから、特徴的な関係を発見するグラフマイニングなどの手法に関する研究が進んでいる。
【0003】
産業技術総合研究所(松尾ら)の研究は、係数を求めたい複数の事柄に関するキーワードを用いて、インターネット上で情報検索を行い、その検索結果の重なり(共起)を求め、複数の事柄間の関係を求めることに関する。
【0004】
しかし、この研究では、複数のデータが異なる関係で結ばれている状態から、ノード間の関係を分析することには触れられていない。
【0005】
下記の特許文献1記載の「パターンに基づく関係抽出システム」は、複数のノードを、グラフパターンの1変数に代入してクエリパターンを得て、このクエリパターンによる検索を行い、特定種類のノードの値の重複具合から、ノード間の関係性を求める技術を公開している。
【0006】
しかし、グラフパターンの違いに応じて、異なる観点毎に特定種類のノード同士の関係を計算し、ユーザに提示することはできない。また、複数のクエリパターンを基に算出されるノード間の関係性を比較することは明記されていない。
【0007】
下記の特許文献2記載の「複数のサブグラフのユーザ提示順位決定システム」は、グラフパターンを用いた検索において、複数の検索結果から得られるグラフを順序付けする技術を公開している。
【0008】
しかし、グラフパターンの違いに応じて、異なる観点毎に特定種類のノード同士の関係を計算し、ユーザに提示することはできない。また、複数のクエリパターンを基に算出されるノード間の関係性を比較することは明記されていない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−181331号公報
【特許文献2】特開2007−140714号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、上記の事情に鑑みてなされたものであり、以下の問題を解決することを目的とする。
【0011】
つまり、様々な種類のノードとアークから構成されたグラフデータから、1種類のノードの関係性を俯瞰したい場合、
課題1:ノードの関係性を単純な枝狩り以外の方法で抽出することが困難であること、
課題2:様々な関係性から算出される俯瞰図(無向グラフ)を目視以外の方法で比較することができないこと、を本発明によって解決する。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、第1の本発明に係るグラフ検索装置は、インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースと、前記グラフデータベースに記憶された前記グラフからサブグラフを検索するグラフ検索手段と、前記サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、当該サブグラフにおける前記種類以外のインスタンスを有する部分を用いて当該ノード間係数を計算するノード間係数計算手段とを備えることを特徴とする。
【0013】
第2の本発明に係るグラフ検索装置は、インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースと、前記グラフデータベースに記憶された前記グラフから、予め指定された第1の種類のノードと予め指定された第2の種類のノードとを有するサブグラフを、複数の前記第1の種類のノードのインスタンスのそれぞれにつき1以上検索するグラフ検索手段と、前記第1の種類のノードのインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、対応する2つの前記第1の種類のノードの内の一方のノードのインスタンスを有する前記サブグラフからなる集合と、他方のノードのインスタンスを有する前記サブグラフからなる集合との間で、共通な前記第2の種類のノードのインスタンスの数が多いほど高くなるように当該ノード間係数を計算するノード間係数計算手段とを備えることを特徴とする。
【0014】
例えば、前記ノード間計算手段は、前記各集合内のサブグラフの数の少ない方の数が少ないほど高くなるようにノード間係数を計算する。
【0015】
例えば、前記検索されたサブグラフをトータルしたサブグラフの特徴量を示すグラフパターン係数を計算するグラフパターン係数計算手段を備え、予め指定された値に合致するグラフパターン係数に対応する前記検索されたサブグラフを使用するようになっていることを特徴とする。
【0016】
例えば、前記ノード間係数計算手段は、複数の前記無向グラフに順位を付与する際に、対応する無向グラフについて計算したノード間係数に応じて当該順位を付与する。
【0017】
第3の本発明に係るグラフ検索装置の動作方法は、インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースを有するグラフ検索装置の動作方法であって、前記グラフ検索装置のグラフ検索手段が、前記グラフデータベースに記憶された前記グラフからサブグラフを検索し、前記グラフ検索装置のノード間係数計算手段が、前記サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、当該サブグラフにおける前記種類以外のインスタンスを有する部分を用いて当該ノード間係数を計算することを特徴とする。
【0018】
第4の本発明に係るグラフ検索装置の動作方法は、インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースを有するグラフ検索装置の動作方法であって、前記グラフ検索装置のグラフ検索手段が、前記グラフデータベースに記憶された前記グラフから、予め指定された第1の種類のノードと予め指定された第2の種類のノードとを有するサブグラフを、複数の前記第1の種類のノードのインスタンスのそれぞれにつき1以上検索し、前記グラフ検索装置のノード間係数計算手段が、前記第1の種類のノードのインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、対応する2つの前記第1の種類のノードの内の一方のノードのインスタンスを有する前記サブグラフからなる集合と、他方のノードのインスタンスを有する前記サブグラフからなる集合との間で、共通な前記第2の種類のノードのインスタンスの数が多いほど高くなるように当該ノード間係数を計算することを特徴とする。
【0019】
例えば、前記ノード間計算手段は、前記各集合内のサブグラフの数の少ない方の数が少ないほど高くなるようにノード間係数を計算する。
【0020】
例えば、前記グラフ検索装置は、前記検索されたサブグラフをトータルしたサブグラフの特徴量を示すグラフパターン係数を計算するグラフパターン係数計算手段を備え、前記動作方法は、予め指定された値に合致するグラフパターン係数に対応する前記検索されたサブグラフを使用することを特徴とする。
【0021】
例えば、前記ノード間係数計算手段は、複数の前記無向グラフに順位を付与する際に、対応する無向グラフについて計算したノード間係数に応じて当該順位を付与する。
【発明の効果】
【0022】
本発明のグラフ検索装置によれば、グラフからサブグラフを検索し、サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算するので、課題1を解決つまりノード間の関係を枝狩りをせずに求めることができ、課題2の解決つまり、目視せずにノード間係数によって無向グラフを比較することができる。
【図面の簡単な説明】
【0023】
【図1】本実施の形態に係るグラフ検索装置の構成図である。
【図2】グラフGの一部を例示した図である。
【図3】RDF/XML形式のデータ、その元データおよびこの形式のデータによるサブグラフを例示した図である。
【図4】パターンをグラフ化して例示した図である。
【図5】グラフGからサブグラフを検索するときのシーケンス図である。
【図6】表示された入力用インタフェースを例示した図である。
【図7】サブグラフSGa1、SGa2、SGa3を示した図である。
【図8】ステップS19におけるサブグラフSGaについての処理の具体例を示す図である。
【図9】ステップS19におけるサブグラフSGbについての処理の具体例を示す図である。
【図10】ステップS19におけるサブグラフSGcについての処理の具体例を示す図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施の形態を図面を参照して説明する。なお、同一または類似のものには同一符号を付与し、重複説明を省略する。
【0025】
図1は、本実施の形態に係るグラフ検索装置の構成図である。
【0026】
グラフ検索装置1は、ユーザ端末2に接続され、ユーザ端末2には、表示装置3が接続されている。
【0027】
グラフ検索装置1は、表示装置3に表示される入力用インタフェースと出力用インタフェースを生成しユーザ端末2に送信するユーザインタフェース11と、インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベース12と、
サブグラフの検索に用いられるパターンが記憶されるパターンデータベース13と、サブグラフやパターンを検索するクエリ発行部14と、サブグラフのグラフパターン係数を計算するグラフパターン係数計算部15と、サブグラフを基にした無向グラフ(俯瞰図)におけるノード間の関係を示すノード間係数を計算するノード間係数計算部16とを備える。
【0028】
図2は、グラフデータベース12に記憶されたデータ群を全て使って表示できるグラフGの一部を例示した図である。
【0029】
グラフデータベース12に記憶されたデータ群を全て使って、図2に一部を例示したグラフG、つまり互いに異なるインスタンスをもつノード間がラベルをもつアークによって接続され且つ当該インスタンスのクラスが定義されたグラフG、を表示することができる。逆にいえば、グラフGを表示するための過不足ないデータ群がグラフデータベース12に記憶されている。以下、そのデータ群を便宜的にグラフGという。また、なんらかのグラフ、サブグラフ(なんらかのグラフそのものまたはそれに含まれるグラフ)、パス(分岐および閉ループをもたないグラフ)などをクラスを含めて表示するための過不足ないデータ群を便宜的にグラフ、サブグラフ、パスなどという。
【0030】
グラフGでは、例えば、「B技術」や「論文F」などのインスタンスをもつノードが、「KW」や「著者」などのラベルをもつアークで接続される。また、図示しないが、グラフGでは、ノードにそのインスタンス「山田太郎」などの概念であるクラス「人」などが定義される。
【0031】
図3に示すように、「論文F」で示され、その元データの著者が山田太郎でり、題名が「B技術入門」であり、キーワードがB技術である、元データは、グラフデータベース12では、RDF/XML形式のデータとなって、グラフデータベース12に記憶され、これがグラフGのサブグラフをなす。「RDFのグラフ表現」と題されたものは、このサブグラフをグラフィカルに表現したものである。RDFについては、以下の文献に記載されている。
【0032】
「Resource Description Framework(RDF)Model and Syntax Specification」, Ora Lassia, Ralph R.Swick編,[online], インターネット<URL:http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/>
「RDF Vocabulary Description Language 1.0: RDF Schema」, Dan Brickley, R.V.Guha編,[online], インターネット<URL:http://www.w3.org/TR/rdf-schema/>
図1に戻り、パターンデータベース13には、サブグラフの検索に用いられるパターンが記憶される。
【0033】
図4は、パターンデータベース13に記憶されたパターンのうちの4パターンをグラフ化して例示した図である。
【0034】
パターンは、グラフデータベース12に記憶されるデータ群(グラフG)の一部をなすデータ群と同様なものであり、それを本図のようにグラフ化できるので、便宜的にはグラフと言えるが、パターンは表示するものではなく、表示されるグラフの検索に使用されるものである。なお、データ群である実際のパターンを逐一説明するのは冗長なのでグラフ化されたパターンで便宜的に説明する。
【0035】
一般的にパターンでは、ノードやアークの一部はインスタンスやラベルをもち、残りはそれらをもたない。そして、インスタンスやラベルをもたないノードやアークには変数が設定される。変数は、図に示すように、?とそれに後続する単語からなる。
【0036】
ここでは、クラス「技術用語」が定義されたノードを一方の端位置に有し、クラス「人」が定義されたノードを他方の端位置に有し、
各ノードがインスタンスをもたず、各アークがラベルをもつ、パターンPa、Pb、Pcがパターンデータベース13に記憶されていることとする。
【0037】
このようなパターンによって、あるグラフから検索されるサブグラフは、以下の条件を備えるものである。
【0038】
つまり、検索されるのは、(1)そのグラフまたはそのサブグラフであって、(2)パターンの構造を過不足なく有し、(3)パターン内でのインスタンスやラベルを過不足なく有し、つまりパターン内でのインスタンスやラベルをもつノードやアークの位置に等しい位置にあるノードやアークが当該インスタンスに等しいインスタンスやラベルを有するものである。
【0039】
なお、パターンにより、このようにしてサブグラフを検索することを、パターンにマッチするサブグラフを検索するという。
【0040】
図1に戻り、クエリ発行部14は、パターンデータベース13からパターンを検索する。また、クエリ発行部14は、グラフGのサブグラフを検索する。
【0041】
グラフ検索装置1は、各部(データベース含む)でデータの送受信(受け渡し)が可能であればよい。つまり、各部を、同一のコンピュータに配置してもよいし、複数のコンピュータに分散配置してもよい。また、これらコンピュータをグラフ検索装置として動作させるコンピュータプログラムを通信回線を介して送受信してもよい。また、このコンピュータプログラムを、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの記録媒体に記録し、その記録媒体を流通させてもよい。
【0042】
(本実施の形態の動作)
図5は、グラフGからサブグラフを検索するときのシーケンス図である。
【0043】
グラフ検索装置1では、ユーザインタフェース11が入力用インタフェースを生成し、それをユーザ端末2に送信して(S1)、図6のように表示させる(S3)。
【0044】
例として、ユーザは、ページ記述言語(以下、抽象化して「A技術」という)、暗号通信(以下、抽象化して「B技術」という)、本人認証(以下、抽象化して「C技術」という)および課金(以下、抽象化して「D技術」という)という4つの技術間の「人」を介した関係の強さを知りたいとする。
【0045】
この例では、ユーザの操作により、「A技術」〜「D技術」を包含する「技術用語」という情報(クラス「技術用語」という)と、「人」という情報(クラス「人」という)が、入力用インタフェース内に含まれた情報から選択されたこととする。
【0046】
また、ユーザ端末2では、ユーザの操作により、ネットワーク密度「0.7」とクラスタ係数「0.5」が指定されたこととする。
【0047】
ユーザ端末2は、クラス「技術用語」、クラス「人」、ネットワーク密度「0.7」およびクラスタ係数「0.5」(これらを総称して「パラメータ」という)をグラフ検索装置1に送信する(S5)。
【0048】
グラフ検索装置1では、クエリ発行部14が、クラス「技術用語」とクラス「人」を含む検索構文であるクエリをパターンデータベース13に送信し、これにより、クラス「技術用語」が定義されたノードを一方の端位置に有し、クラス「人」が定義されたノードを他方の端位置に有するパターンをパターンデータベース13から検索する(S7)。
【0049】
次に、クエリ発行部14が、そのパターンをクエリに変換し、それをグラフデータベース12に送信する(S9)ことで、そのパターンにマッチするサブグラフをグラフGから取得する(S11)。
【0050】
なお、このパターンは、ユーザ端末2での操作により検索されたものであるが、ここで使用するものとして予めグラフ検索装置1が記憶したパターンを用いてよい。また、この検索は、ユーザ端末2での操作により行われるが、これを予め決めた時刻に行ってもよい。また、クラス「技術用語」とクラス「人」は、ユーザ端末2での操作によりグラフ検索装置1が得るものであるが、一方または両方のクラスを予めグラフ検索装置1が記憶しておき、それを用いてもよい。
【0051】
さて、前述のS11を行うことで、ここでは、図4のパターンPaから、図7に太線で示したサブグラフSGa1、SGa2、SGa3が取得されたこととする。
【0052】
この各サブグラフでは、一方の端位置のノード(つまりクラス「技術用語」が定義されたノード)のインスタンスが「B技術」であるが、パターンPaからは、一方の端位置のノードのインスタンスが「A技術」であるサブグラフや、一方の端位置のノードのインスタンスが「C技術」であるサブグラフも取得される。
【0053】
各サブグラフでは、一方の端位置のノード(つまりクラス「技術用語」が定義されたノード)を「キーノード」といい、他方の端位置のノード(つまりクラス「人」が定義されたノード)を「ターゲットノード」という。
【0054】
ここでは、図4のパターンPaから取得された複数のサブグラフをトータルしたものをサブグラフSGaという。また、同様に、パターンPbから取得された複数のサブグラフをトータルしたものをサブグラフSGbという。また、同様に、パターンPcから取得された複数のサブグラフをトータルしたものをサブグラフSGcという。
【0055】
図6に戻り、各サブグラフSGa、SGb、SGcがグラフパターン係数計算部15に与えられる(S13)と、グラフパターン係数計算部15が、各サブグラフのグラフパターン係数を計算する(S15)。
【0056】
次に、グラフパターン係数計算部15は、例えば、式(1)により、
【数1】

【0057】
グラフパターン係数であるネットワーク密度を計算する。ここで、Nは、サブグラフ内のノード数である。kiは、i番目のノードに接続されたアーク数である。
【0058】
または、例えば、式(2)により、
【数2】

【0059】
グラフパターン係数であるクラスタ係数を計算する。ここで、Nは、サブグラフ内のノード数である。kiは、i番目のノードに接続されたアーク数である。Eiは、i番目のノードに1本のアークで接続されたノード間を接続するアーク数である。
【0060】
次に、グラフパターン係数計算部15は、パラメータ内のネットワーク密度「0.7」を含む範囲(例えば、0.7±0.02の範囲)に、計算されたネットワーク密度が含まれ、かつ、パラメータ内のクラスタ係数「0.5」を含む範囲(例えば、0.5±0.02の範囲)に計算されたクラスタ係数が含まれるというような条件を満たすか否かを判定する(S17)。
【0061】
なお、条件は、パラメータ内のネットワーク密度を含む範囲に、計算されたネットワーク密度が含まれる、「または」、パラメータ内のクラスタ係数を含む範囲に計算されたクラスタ係数が含まれるというような条件でもよい。
【0062】
また、条件は、(1)計算されたネットワーク密度が、パラメータ内のネットワーク密度以上であるという条件と、(2)計算されたクラスタ係数が、パラメータ内のクラスタ係数以上であるという条件とを組み合わせたものでもよい。
【0063】
また、計算値がパラメータ内の値未満、または、以下、または、より大きいという条件を使用してもよい。
【0064】
さて、グラフパターン係数計算部15は、ステップS17で条件を満たさないと判定すると、制御をステップS7に戻す。
【0065】
ここでは、クエリ発行部14は、図4のパターンとは異なるパターンをパターンデータベース13から検索する(S7)。クエリ発行部14は、例えば、クラス「技術用語」が定義されたノードを一方の端位置に有し、クラス「人」が定義されたノードを他方の端位置に有し、これら各端位置のノード間に3本のアークが直列に接続されたパターン、つまり、各端位置のノード間に2本のアークが直列に接続された、図4のパターンとは異なるパターンをパターンデータベース13から検索する(S7)。
【0066】
一方、ステップS17で条件を満たしたと判定されたなら、ノード間係数計算部16は、ノード間係数を計算する(S19)。
【0067】
図8は、ステップS19における処理の一部つまりサブグラフSGaについての具体例を示す図である。
【0068】
図8(a)に示すように、サブグラフSGaには、インスタンス「A技術」を有するキーノードおよびインスタンス「中村二郎」を有するターゲットノードを有するサブグラフ、インスタンス「A技術」を有するキーノードおよびインスタンス「山本幸子」を有するターゲットノードを有するサブグラフ、インスタンス「A技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、インスタンス「B技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフSGa1、インスタンス「B技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフSGa2、インスタンス「B技術」を有するキーノードおよびインスタンス「鈴木花子」を有するターゲットノードを有するサブグラフSGa3、インスタンス「C技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフ、インスタンス「D技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフ、が含まれる。
【0069】
ノード間係数計算部16は、サブグラフSGaを基にこれから作ろうとする無向グラフ(以下、グラフRGaという)内の各インスタンス「A技術」、「B技術」をそれぞれするノード間のノード間係数RGa(「A技術」、「B技術」)、グラフRGa内の各インスタンス「A技術」、「C技術」をそれぞれするノード間のノード間係数RGa(「A技術」、「C技術」)、グラフRGa内の各インスタンス「A技術」、「D技術」をそれぞれするノード間のノード間係数RGa(「A技術」、「D技術」)、グラフRGa内の各インスタンス「B技術」、「C技術」をそれぞれするノード間のノード間係数RGa(「B技術」、「C技術」)、グラフRGa内の各インスタンス「B技術」、「D技術」をそれぞれするノード間のノード間係数RGa(「B技術」、「D技術」)、グラフRGa内の各インスタンス「C技術」、「D技術」をそれぞれするノード間のノード間係数RGa(「C技術」、「D技術」)を計算する。
【0070】
例えば、ノード間係数RGa(x、y)は、式(3)(ただし、αはa)により計算される。
【0071】
RGα(x,y)
=|X∩Y|/min(|X|,|Y|) …(3)
ただし、
Xは、インスタンス「x」を有するキーノードを含むサブグラフの集合、
Yは、インスタンス「y」を有するキーノードを含むサブグラフの集合、
|X|は、X内のサブグラフの数、
|Y|は、Y内のサブグラフの数、
min(|X|,|Y|)は、|X|と|Y|の小さい方、
|X∩Y|は、XとY共通なインスタンスを有するターゲットノードの数である。
【0072】
図8(b)に示すように、各
ノード間係数RGa(「A技術」、「B技術」)は約0.3、ノード間係数RGa(「A技術」、「C技術」)は0、ノード間係数RGa(「A技術」、「D技術」)は0、
ノード間係数RGa(「B技術」、「C技術」)は1、ノード間係数RGa(「B技術」、「D技術」)は1、ノード間係数RGa(「C技術」、「D技術」)は0となる。
【0073】
図8(c)に示すようにグラフRGaは表される。ノード間係数が0のノード間のアークは図示省略している。
【0074】
図9は、ステップS19における処理の一部つまりサブグラフSGbについての具体例を示す図である。
【0075】
図9(a)に示すように、サブグラフSGbには、インスタンス「B技術」を有するキーノードおよびインスタンス「鈴木花子」を有するターゲットノードを有するサブグラフ、インスタンス「C技術」を有するキーノードおよびインスタンス「鈴木花子」を有するターゲットノードを有するサブグラフ、インスタンス「C技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、が含まれる。
【0076】
ノード間係数計算部16は、サブグラフSGbを基にこれから作ろうとする無向グラフ(以下、グラフRGbという)内の各インスタンス「A技術」、「B技術」をそれぞれするノード間のノード間係数RGb(「A技術」、「B技術」)、グラフRGb内の各インスタンス「A技術」、「C技術」をそれぞれするノード間のノード間係数RGb(「A技術」、「C技術」)、グラフRGb内の各インスタンス「A技術」、「D技術」をそれぞれするノード間のノード間係数RGb(「A技術」、「D技術」)、グラフRGb内の
各インスタンス「B技術」、「C技術」をそれぞれするノード間のノード間係数RGb(「B技術」、「C技術」)、グラフRGb内の各インスタンス「B技術」、「D技術」をそれぞれするノード間のノード間係数RGb(「B技術」、「D技術」)、グラフRGb内の各インスタンス「C技術」、「D技術」をそれぞれするノード間のノード間係数RGb(「C技術」、「D技術」)を計算する。
【0077】
例えば、ノード間係数RGb(x、y)は、前述の式(3)(ただし、αはb)により計算される。
【0078】
図9(b)に示すように、各ノード間係数RGb(「A技術」、「B技術」)は0、
ノード間係数RGb(「A技術」、「C技術」)は0、ノード間係数RGb(「A技術」、「D技術」)は0、ノード間係数RGb(「B技術」、「C技術」)は0、
ノード間係数RGb(「B技術」、「D技術」)は1、ノード間係数RGb(「C技術」、「D技術」)は0となる。
【0079】
図9(c)に示すようにグラフRGbは表される。ノード間係数が0のノード間のアークは図示省略している。
【0080】
図10は、ステップS19における処理の一部つまりサブグラフSGaについての具体例を示す図である。
【0081】
図10(a)に示すように、サブグラフSGcには、インスタンス「A技術」を有するキーノードおよびインスタンス「中村二郎」を有するターゲットノードを有するサブグラフ、インスタンス「A技術」を有するキーノードおよびインスタンス「山本幸子」を有するターゲットノードを有するサブグラフ、インスタンス「A技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、インスタンス「B技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、インスタンス「B技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフ、インスタンス「B技術」を有するキーノードおよびインスタンス「鈴木花子」を有するターゲットノードを有するサブグラフ、インスタンス「C技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、インスタンス「C技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフ、インスタンス「D技術」を有するキーノードおよびインスタンス「山田太郎」を有するターゲットノードを有するサブグラフ、インスタンス「D技術」を有するキーノードおよびインスタンス「田中一郎」を有するターゲットノードを有するサブグラフ、インスタンス「D技術」を有するキーノードおよびインスタンス「鈴木花子」を有するターゲットノードを有するサブグラフ、が含まれる。
【0082】
ノード間係数計算部16は、サブグラフSGcを基にこれから作ろうとする無向グラフ(以下、グラフRGcという)内の各インスタンス「A技術」、「B技術」をそれぞれするノード間のノード間係数RGc(「A技術」、「B技術」)、グラフRGc内の各インスタンス「A技術」、「C技術」をそれぞれするノード間のノード間係数RGc(「A技術」、「C技術」)、グラフRGc内の各インスタンス「A技術」、「D技術」をそれぞれするノード間のノード間係数RGc(「A技術」、「D技術」)、グラフRGc内の
各インスタンス「B技術」、「C技術」をそれぞれするノード間のノード間係数RGc(「B技術」、「C技術」)、グラフRGc内の各インスタンス「B技術」、「D技術」をそれぞれするノード間のノード間係数RGc(「B技術」、「D技術」)、グラフRGc内の各インスタンス「C技術」、「D技術」をそれぞれするノード間のノード間係数RGc(「C技術」、「D技術」)を計算する。
【0083】
例えば、ノード間係数RGb(x、y)は、前述の式(3)(ただし、αはc)により計算される。
【0084】
図10(b)に示すように、各ノード間係数RGc(「A技術」、「B技術」)は約0.3、ノード間係数RGc(「A技術」、「C技術」)は0.5、ノード間係数RGc(「A技術」、「D技術」)は約0.3、ノード間係数RGc(「B技術」、「C技術」)は1、ノード間係数RGc(「B技術」、「D技術」)は1、ノード間係数RGc(「C技術」、「D技術」)は1となる。
【0085】
図10(c)に示すようにグラフRGcは表される。
【0086】
図5に戻り、ノード間係数計算部16は、計算したノード間係数を含むグラフRGa、RGb、RGcをユーザインタフェース11に渡す(S21)。
【0087】
ユーザインタフェース11は、グラフRGa、RGb、RGcに基づく出力用インタフェースを生成し、それをユーザ端末2に送信して(S23)、図8(c)、図9(c)、図10(c)のように表示させる(S25)。
【0088】
なお、ノード間係数計算部16は、ノード間係数に基づいて、グラフRGa、RGb、RGcに順位を付与し、ユーザインタフェース11は、その順位を表示させてもよい。
【0089】
順位は、例えば、(1)ノード間係数の総和に応じたものとすること、(2)0でないノード間係数に対応するアークの総数に応じたものとすること、などが考えられる。
【0090】
以上説明したように、本実施の形態に係るグラフ検索装置によれば、グラフGからサブグラフSGaなどを検索し、サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノード(クラス「技術用語」が定義されたインスタンス「A技術」などを有するノード)を備える無向グラフ(グラフRGaなど)における各ノード間の関係を示すノード間係数(ノード間係数RGa(「A技術」、「B技術」)など)を計算するので、課題1を解決つまりノード間の関係を枝狩りをせずに求めることができ、課題2の解決つまり、目視せずにノード間係数によって無向グラフを比較することができる。
【0091】
具体的には、各無向グラフは、該無効グラフに対応するパターン(Paなど)に対応して生成される。1つの無効グラフには、「A技術」と「B技術」の関係などが表現されており、よって、そのような関係をパターンの違いに応じて比べることができる。
【0092】
また、グラフ検索手段(クエリ発行部14)が、グラフGからサブグラフSGaなどを検索し、ノード間係数計算手段(ノード間係数計算部16)が、サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノード(インスタンス「A技術」などを有するノード)を備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、前記種類以外のインスタンスを有する部分(クラス「人」が定義されたノードなど)を用いて当該ノード間係数を計算する。
【0093】
また、グラフ検索手段が、グラフGから、予め指定された第1の種類のノード(クラス「技術用語」が定義されたノード)と予め指定された第2の種類のノード(クラス「人」が定義されたノード)とを有するサブグラフを、複数の前記第1の種類のノードのインスタンス(A技術〜D技術)のそれぞれにつき1以上検索し、ノード間係数計算手段が、第1の種類のノードのインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、式(3)により、つまり、対応する2つの前記第1の種類のノードの内の一方のノードのインスタンスを有する前記サブグラフからなる集合(X)と、他方のノードのインスタンスを有する前記サブグラフからなる集合(Y)との間で、共通な前記第2の種類のノードのインスタンスの数が多いほど高くなるように当該ノード間係数を計算する。
【0094】
また、ノード間計算手段は、式(3)により、つまり、各集合内のサブグラフの数の少ない方の数が少ないほど高くなるようにノード間係数を計算する
また、グラフ検索装置は、検索されたサブグラフSGa1、SGa2、SGa3をトータルしたサブグラフSGaなどの特徴量を示すグラフパターン係数を計算するグラフパターン係数計算手段(グラフパターン係数計算部15)を備え、予め指定された値(ネットワーク密度「0.7」やクラスタ係数「0.5」)に合致するグラフパターン係数に対応するサブグラフを使用する(ステップS17:YES)。
【0095】
また、ノード間係数計算手段は、複数の無向グラフRGa、RGb、RGcに順位を付与する際に、対応する無向グラフについて計算したノード間係数に応じて当該順位を付与する。これは、課題2の解決にも貢献する。
【符号の説明】
【0096】
1…グラフ検索装置
2…ユーザ端末
3…表示装置
12…グラフデータベース
11…ユーザインタフェース
13…パターンデータベース
14…クエリ発行部
15…グラフパターン係数計算部
16…ノード間係数計算部

【特許請求の範囲】
【請求項1】
インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースと、
前記グラフデータベースに記憶された前記グラフからサブグラフを検索するグラフ検索手段と、
前記サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、当該サブグラフにおける前記種類以外のインスタンスを有する部分を用いて当該ノード間係数を計算するノード間係数計算手段と
を備えることを特徴とするグラフ検索装置。
【請求項2】
インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースと、
前記グラフデータベースに記憶された前記グラフから、予め指定された第1の種類のノードと予め指定された第2の種類のノードとを有するサブグラフを、複数の前記第1の種類のノードのインスタンスのそれぞれにつき1以上検索するグラフ検索手段と、
前記第1の種類のノードのインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、対応する2つの前記第1の種類のノードの内の一方のノードのインスタンスを有する前記サブグラフからなる集合と、他方のノードのインスタンスを有する前記サブグラフからなる集合との間で、共通な前記第2の種類のノードのインスタンスの数が多いほど高くなるように当該ノード間係数を計算するノード間係数計算手段と
を備えることを特徴とするグラフ検索装置。
【請求項3】
前記ノード間計算手段は、前記各集合内のサブグラフの数の少ない方の数が少ないほど高くなるようにノード間係数を計算することを特徴とする請求項2記載のグラフ検索装置。
【請求項4】
前記検索されたサブグラフをトータルしたサブグラフの特徴量を示すグラフパターン係数を計算するグラフパターン係数計算手段を備え、予め指定された値に合致するグラフパターン係数に対応する前記検索されたサブグラフを使用するようになっていることを特徴とする請求項1ないし3のいずれかに記載のグラフ検索装置。
【請求項5】
前記ノード間係数計算手段は、複数の前記無向グラフに順位を付与する際に、対応する無向グラフについて計算したノード間係数に応じて当該順位を付与する
ことを特徴とする請求項1ないし4のいずれかに記載のグラフ検索装置。
【請求項6】
インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースを有するグラフ検索装置の動作方法であって、
前記グラフ検索装置のグラフ検索手段が、前記グラフデータベースに記憶された前記グラフからサブグラフを検索し、
前記グラフ検索装置のノード間係数計算手段が、前記サブグラフにおける予め指定された種類のインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、当該サブグラフにおける前記種類以外のインスタンスを有する部分を用いて当該ノード間係数を計算する
ことを特徴とするグラフ検索装置の動作方法。
【請求項7】
インスタンスをもつノード間がアークによって接続されたグラフが記憶されるグラフデータベースを有するグラフ検索装置の動作方法であって、
前記グラフ検索装置のグラフ検索手段が、前記グラフデータベースに記憶された前記グラフから、予め指定された第1の種類のノードと予め指定された第2の種類のノードとを有するサブグラフを、複数の前記第1の種類のノードのインスタンスのそれぞれにつき1以上検索し、
前記グラフ検索装置のノード間係数計算手段が、前記第1の種類のノードのインスタンスをそれぞれ有するノードを備える無向グラフにおける各ノード間の関係を示すノード間係数を計算する際に、対応する2つの前記第1の種類のノードの内の一方のノードのインスタンスを有する前記サブグラフからなる集合と、他方のノードのインスタンスを有する前記サブグラフからなる集合との間で、共通な前記第2の種類のノードのインスタンスの数が多いほど高くなるように当該ノード間係数を計算する
ことを特徴とするグラフ検索装置の動作方法。
【請求項8】
前記ノード間計算手段は、前記各集合内のサブグラフの数の少ない方の数が少ないほど高くなるようにノード間係数を計算することを特徴とする請求項7記載のグラフ検索装置の動作方法。
【請求項9】
前記グラフ検索装置は、前記検索されたサブグラフをトータルしたサブグラフの特徴量を示すグラフパターン係数を計算するグラフパターン係数計算手段を備え、
前記動作方法は、予め指定された値に合致するグラフパターン係数に対応する前記検索されたサブグラフを使用する
ことを特徴とする請求項6ないし8のいずれかに記載のグラフ検索装置の動作方法。
【請求項10】
前記ノード間係数計算手段は、複数の前記無向グラフに順位を付与する際に、対応する無向グラフについて計算したノード間係数に応じて当該順位を付与する
ことを特徴とする請求項6ないし9のいずれかに記載のグラフ検索装置の動作方法。
【請求項11】
請求項1ないし5のいずれかに記載のグラフ検索装置としてコンピュータを動作させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−277438(P2010−277438A)
【公開日】平成22年12月9日(2010.12.9)
【国際特許分類】
【出願番号】特願2009−130977(P2009−130977)
【出願日】平成21年5月29日(2009.5.29)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】