説明

中心性値計算装置および中心性値計算方法

【課題】グラフのサブグラフに含まれるノードの中心性を示す中心性値を計算する。
【解決手段】グラフ検索部16は、グラフデータベース11のグラフGから、指定された条件を基にして、サブグラフを検索する(S17)。中心性値計算部17は、サブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する(S27)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、グラフのサブグラフに含まれるノードの中心性を示す中心性値を計算する中心性値計算装置および中心性値計算方法に関するものである。
【背景技術】
【0002】
インスタンスをもつノード間がアークによって接続されたグラフでは、そのグラフにおけるノードの中心性を示す中心性値が、そのグラフの特徴を示すことが多いので、その中心性値が計算される。
【0003】
この出願の発明に関連する先行技術文献情報としては下記のものがある。
【0004】
非特許文献1では、中心性値計算に類似のものとしてノードの重要度を計算する技術を開示している。
【0005】
非特許文献2では、グラフの部分(本明細書ではサブグラフという)を検索する技術を開示している。特に、非特許文献2では、グラフをアークで分割して得たサブグラフをクラスタと称している。
【0006】
非特許文献3、4でも、サブグラフの検索技術を開示している。特に、ここでは、指定されたノードを含み且つ指定された出現頻度のサブグラフをする。
【0007】
非特許文献5では、中心性値計算に類似のものとしてに類似のものとして、ウェブページが多くのウェブページに参照されている場合は、その参照されているページのランクを高くする技術を開示している。
【非特許文献1】金光 淳、“社会ネットワーク分析の中心性分析”、勁草書房(6章1節「グラフ理論による中心概念のモデル」)
【非特許文献2】M. E. J. Newman and M. Girvan, "Finding and evaluating community structure in networks", PHYSICAL REVIEW E 69, 0266133 2004.
【非特許文献3】猪口 昭博、外2名、“多頻度グラフマイニング手法の一般化”、[online]、2004年、[平成19年1月4日検索]、インターネット<URL:http://www.ar.sanken.osaka-u.ac.jp/~motoda/papers/jjsai04_inokuchi.pdf>
【非特許文献4】茂木 明、外5名、“部分グラフを制約とするグラフ構造データからの知識獲得”、[online]、2004年、[平成19年1月4日検索]、インターネット<URL:http://www-kasm.nii.ac.jp/jsai2004_schedule/pdf/000128.pdf>
【非特許文献5】Sergey Brin, Rajeev Motwani, Terry Winograd, "The PageRank Citation Ranking: Bringing Order to the Web Lawrence Page", [online],1998年,インターネット<URL:http://www-db.stanford.edu/~backrub/pageranksub.ps>
【発明の開示】
【発明が解決しようとする課題】
【0008】
非特許文献2、3、4の技術では、サブグラフを検索するが、中心性値を計算しないので、そのサブグラフの特徴を知ることができない。
【0009】
非特許文献1、5の技術では、中心性値に類似のものを計算するが、サブグラフを検索しないので、計算量が多く、サブグラフの特徴を早期に知ることができない。
【0010】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、グラフのサブグラフに含まれるノードの中心性を示す中心性値を計算する中心性値計算装置および中心性値計算方法を提供することにある。
【課題を解決するための手段】
【0011】
上記の課題を解決するために、本発明は、インスタンスをもつノード間がアークによって接続されたグラフから、指定された条件を基にして、サブグラフを検索するグラフ検索手段と、前記グラフ検索手段により得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する中心性値計算手段とを備える。
【発明の効果】
【0012】
本発明によれば、グラフのサブグラフに含まれるノードの中心性値を計算するので、サブグラフの特徴を早期に知ることができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態を図面を参照して説明する。なお、同一のものには同一符号を付与し、重複説明を省略する。
【0014】
図1は、本実施の形態に係る中心性値計算装置1の構成図である。
【0015】
中心性値計算装置1は、ユーザ端末2に接続され、ユーザ端末2には、表示装置3が接続されている。
【0016】
中心性値計算装置1は、有向グラフであるグラフGを表示するためのデータ群が記憶されたグラフデータベース11と、ユーザ端末2で入力操作をさせるための入力用インタフェースを生成する入力用インタフェース生成部12と、グラフGを基にテンプレートグラフを生成するときに使用される一時記憶データベース13と、サブグラフの検索に用いられるパスパターンやサブグラフパターンが記憶されるパターンデータベース14と、各種パラメータが記憶されたパラメータ記憶部15と、グラフGのサブグラフを検索するグラフ検索部16と、そのノードの中心性値を計算する中心性値計算部17と、グラフ検索部16および中心性値計算部17と各データベースとを中継するデータベースインタフェース18と、処理結果を伝えるための出力用インタフェースを生成する出力用インタフェース生成部19とを備える。
【0017】
中心性値計算装置1は、各部(データベース含む)でデータの送受信(受け渡し)が可能であればよい。つまり、各部を、同一のコンピュータに配置してもよいし、複数のコンピュータに分散配置してもよい。また、これらコンピュータを中心性値計算装置1として動作させるコンピュータプログラムを通信回線を介して送受信してもよい。また、このコンピュータプログラムを、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの記録媒体に記録し、その記録媒体を流通させてもよい。
【0018】
図2は、グラフデータベース11に記憶されたデータ群を全て使って表示できるグラフGの一部を例示した図である。
【0019】
グラフデータベース11に記憶されたデータ群を全てを使って、図2に一部を例示したグラフG、つまり互いに異なるインスタンスをもつノード間がラベルをもつアークによって接続され且つ当該インスタンスのクラスが定義されたグラフG、を表示することができる。逆にいえば、グラフGを表示するための過不足ないデータ群がグラフデータベースに記憶されている。以下、そのデータ群を便宜的にグラフGという。また、なんらかのグラフ、サブグラフ(なんらかのグラフそのものまたはそれに含まれるグラフ)、パス(分岐および閉ループをもたないグラフ)などをクラスを含めて表示するための過不足ないデータ群を便宜的にグラフ、サブグラフ、パスなどという。
【0020】
グラフGでは、例えば、「XML」や「Bプロジェクト」などのインスタンスをもつノードが、「rm:技術キーワード」や「rm:著者」などのラベルをもつアークで接続される。また、グラフGでは、ノードにそのインスタンス「Person:山田太郎」などの概念であるクラス「Person:人」などが定義される。
【0021】
図3に示すように、「T−041」で示され、その元データの著者が山田太郎でり、題名が「セマンティックweb」入門であり、キーワードがセマンティックwebである、元データは、グラフデータベース11では、RDF/XML形式のデータとなって、グラフデータベース11に記憶され、これがグラフGのサブグラフをなす。「RDFのグラフ表現」と題されたものは、このサブグラフをグラフィカルに表現したものである。
【0022】
図4は、グラフデータベース11に記憶されたデータ群の一部を例示した図である。
【0023】
例えば、データ「<org:Dプロジェクト><rm:技術キーワード>”XML”」は、インスタンス「org:Dプロジェクト」をもつノードからインスタンス「XML」のノードへ向かうアークがラベル「rm:技術キーワード」をもつことを示している。また、例えば、データ「<Person:鈴木花子><rdf:type><Person:人>」は、インスタンス「Person:鈴木花子」をもつノードのクラスが「Person:人」であることを示している。
【0024】
RDFについては、以下の文献に記載されている。
【0025】
「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/>
(本実施の形態の動作)
図5は、本実施の形態のシーケンス図である。
【0026】
中心性値計算装置1では、入力用インタフェース生成部12が、入力用インタフェースを生成し、それをユーザ端末2に送信して(S1)、図6に示したように表示させる(S3)。ここでの操作により特定されたキーワードKW(例えば、キーワードKW「セマンティックweb」)およびクラスCL(例えば、クラスCL「Person:人」)を、ユーザ端末2が中心性値計算装置1に送信する(S5)。
【0027】
なお、これらのキーワードKWなどは、クラスタ生成装置1Aに記憶しておき、それを適宜読み出して使用してもよい。
【0028】
(パスパターン生成)
中心性値計算装置1では、グラフ検索部16が、例えば、パスパターンを生成する(S9)。また、必要ならば、それをパターンデータベース14に記憶させる(S11)。
【0029】
あるいは、ステップS9、S11をせず、予めそのように生成し、パターンデータベース14に記憶させておいたパスパターンを検索する(S9A)。ステップS9Aについては後述する。
【0030】
さて、パスパターン生成では、例えば、グラフGからパスを検索し、このパスからパスパターンを生成する。これをパス検索の実施例1、2で説明する。
【0031】
なお、グラフ検索部16は、グラフGからパス、サブグラフを取得する際、グラフGを扱う際、パターンをパターンデータベース14に記憶させる際、パターンデータベース14を検索する際、データベースインタフェース18にクエリを送信するのだが、それについては冗長なのでの言及しないこととする。
【0032】
(パス検索の実施例1)
グラフ検索部16は、例えば、「キーワードKWが一方端のノードのインスタンスである」かつ「クラスCLが他方端のノードのクラスである」という条件と予めパラメータ記憶部15に記憶された条件つまり「パス内のノード数≦6である」とからなるパス検索条件(後者の条件を除いたものでもよい。以下、パス検索条件という)を満たすパスを検索する(S9a)。「パス内のノード数≦6である」の「6」は予め設定されるものであり、別の数を設定しておいてもよい。
【0033】
(パス検索の実施例2)
グラフ検索部16は、または、以下のようにパス検索する。まず、グラフGを一時記憶データベース13にグラフG’としてコピーする。そして、図7に示すように、グラフG’で同じクラスが定義された複数のノードのインスタンスを当該クラスに対応する仮の名称(「Literal」など)に置換する。そして、図8に示すように、グラフG’内の複数の同一部分について1つを残しそれ以外を削除する。そして、仮の名称を予めパラメータ記憶部15に記憶してあるインスタンス(例えば、グラフGのインスタンスから選択されたもの)に置換する。こうして、生成されたものをテンプレートグラフという。そして、パス検索条件を満たすパスをテンプレートグラフから検索する(S9b)。
【0034】
(パスパターン生成の実施例1)
パスパターン生成時のグラフ検索部16は、図9に示すように、検索されたパスにおいてキーワードKWがインスタンスであるノード以外のノードのインスタンスと全てのアークのラベルを変数(?とそれに後続する単語であり、以下同様)に置換する。こうして、置換後のもの(パスパターン)を生成する。
【0035】
パスパターンは、後述するサブグラフパターンと同様に、パターンの一種である。
【0036】
パスパターンは分岐および閉ループをもたないものであり、サブグラフパターンは分岐および閉ループをもっていてもよいものである。
【0037】
(パターンの説明)
ここでパターンについて説明する。
【0038】
パターンは、グラフデータベース11に記憶されるデータ群(グラフG)の一部をなすデータ群と同様なものであり、それを図9のようにグラフ化できるので、便宜的にはグラフと言えるが、パターンは表示するものではなく、表示されるグラフの検索に使用されるものである。パスパターンはパスを検索するパターンであり、サブグラフパターンはサブグラフを検索するものである。
【0039】
パスパターンは、例えば、同図のようなグラフ(パス)である。
【0040】
パターンはグラフと同様に、実際にはデータ群であるが、それを逐一説明するのは冗長であるから、パターンの説明はグラフ化されたもので行う。
【0041】
一般的にパターンでは、ノードやアークの一部はインスタンスやラベルをもち、残りはそれらをもたない。そして、インスタンスやラベルをもたないノードやアークには変数が設定される。変数は、同図に示すように、?とそれに後続する単語からなる。
【0042】
また、一般的にパターンでは、必要があれば、変数が設定された一部のノードに、そのパターンにより検索されるグラフにおける、同位置のノードがもつインスタンスの上位概念を示すクラスが予め定義される。
【0043】
同図のパスパターンでは、キーワードKW「セマンティックweb」がインスタンスであるノードを一方端とすると、他方端のノードにクラスCL「Person:人」が定義されている。
【0044】
このようなパターンによって、あるグラフから検索されるサブグラフは、以下の条件を備えるものである。
【0045】
つまり、検索されるのは、(1)そのグラフまたはそのサブグラフであって、(2)パターンの構造を過不足なく有し、(3)パターン内でのインスタンスやラベルを過不足なく有し、つまりパターン内でのインスタンスやラベルをもつノードやアークの位置に等しい位置にあるノードやアークが当該インスタンスに等しいインスタンスやラベルを有し、(4)場合によってはパターンに含まれるクラスが定義されたノードの位置に等しい位置にあるノードが当該クラスの下位概念であるインスタンスを有するものである。
【0046】
なお、パターンにより、このようにしてサブグラフを検索することを、パターンにマッチするサブグラフを検索するという。
【0047】
(パスパターン生成の実施例2)
グラフ検索部16は、または、図10に3例示すように、検索されたパスにおいてキーワードKWがインスタンスであるノード以外のノードのインスタンスを変数に置換する。こうして、置換後のもの(パスパターン)を生成する。
【0048】
(パスパターン生成の実施例3)
グラフ検索部16は、または、以下のようにパスパターンを生成する。この実施例3の場合は、事前のパス検索は不要である。
【0049】
まず、予めパラメータ記憶部15には、図11に示すような、アークスコア記憶部が構成される。
【0050】
アークスコア記憶部は、グラフGのアークがもつ各ラベルのスコア(アークスコア)を記憶している。グラフGの各ノードのインスタンスをそのノードのクラスに置換し、同一のインスタンス(クラス)をもつノードではその中の1つのみ残し、そのようにしてなるグラフにアークスコア記憶部の各アークスコアを当てはめると、その一部は、例えば図12のようになる。
【0051】
図13は、アークスコア記憶部を用いたパターン生成のフローチャートを示す図である。
【0052】
グラフ検索部16は、まず、グラフGのノードに、その重要度を示すこととなる、ノードスコアの初期値「1」を設定する(S101)。
【0053】
次に、グラフ検索部16は、各ノードにつき、図14の式により、ノードスコアを計算する(S103)。
【0054】
そして、このノードスコアで、グラフGに設定されたノードスコアの初期値を更新する(S105)。このような計算更新を、ノードスコアが収束するまで、再帰的に行う。これにより、ノードスコアが重要度を示すこととなる。
【0055】
グラフGにアークスコア記憶部の各アークスコアを当てはめたグラフの一部が、例えば図15に示すようなものであった場合、同図に示すように、例えば、インスタンス「XML」をもつノードのノードスコアは0.4となる。インスタンス「Person:電々三郎」をもつノードのノードスコアは0.9となる。インスタンス「org:H3G」をもつノードのノードスコアは0.6となる。
【0056】
なお、図14の式は一例であり、他の式を用いてもよい。
【0057】
次に、グラフ検索部16は、パス検索条件を満たすパスをグラフGから検索する(S107)。
【0058】
次に、グラフ検索部16は、図16の式により、その各パスのパススコアを計算する(S109)。
【0059】
次に、グラフ検索部16は、その各パスにつき、キーワードKWをインスタンスとしてもつノード以外のノードのインスタンスを変数に置換する(S101)。
【0060】
次に、グラフ検索部16は、全てのパスをパスグループ(同一のパスからなる)ごとに区分し、各パスグループにつき、図17の式により、スコアを計算する(S113)。そして、スコアが予め定めたしきい値以下の各パスグループを削除する(S115)。
【0061】
次に、グラフ検索部16は、残った各パスグループにつき、1パス以外を削除する(S117)。
【0062】
これにより、図18に2つ示すようなパスパターンが生成される。
【0063】
さて、上述のように、ステップS9、11をせず、パスパターンを検索してもよい(S9A)。
【0064】
例えば、「キーワードKWが一方端のノードのインスタンスである」かつ「クラスCLが他方端のノードのクラスである」という条件と予めパラメータ記憶部15に記憶された条件つまり「パスパターン内のノード数≦6である」とからなるパスパターン検索条件(後者の条件を除いたものでもよい。以下、パスパターン検索条件という)を満たすパスパターンを検索する(S9A)。「パスパターン内のノード数≦6である」の「6」は予め設定されるものであり、別の数を設定しておいてもよい。
【0065】
いずれにしても、中心性値計算装置1では、グラフ検索部16によりパスパターンが生成あるいは検索される。
【0066】
このパスパターンでは、その一方端のノードのインスタンスがキーワードKWであり、他方端のノードにはクラスCLが定義されている。前者のノードをキーワードノードという。後者のノードをクラスノードという。なお、キーワードノード、クラスノードは、パス、後述するサブグラフパターンにおいても用いることとする。
【0067】
(サブグラフパターン生成)
図7に戻り、グラフ検索部16は、例えば、サブグラフパターンを生成し(S13)、必要ならば、それをパターンデータベース14に記憶させる(S15)。
【0068】
ステップS13でグラフ検索部16は、例えば、生成あるいは検索したパスパターンでサブグラフパターンを生成する(S13)。あるいは、パスパターンを使用せずにサブグラフパターンを生成する(S13)。
【0069】
あるいは、そのように生成し、パターンデータベース14に記憶させておいたサブグラフパターンを検索する(S13A)。ステップS13Aについては後述する。
【0070】
以下、実施例1〜4は、パスパターンを使用してサブグラフパターンを生成するものであり、実施例5は、パスパターンを使用せずにサブグラフパターンを生成するものである。
【0071】
なお、パスパターンをサブグラフパターンとして扱ってもよい。
【0072】
(サブグラフパターン生成の実施例1)
グラフ検索部16は、例えば、図19に示すように、同一のパスパターンからキーワードノードとクラスノードとそのクラスの定義以外の部分を重複させたサブグラフパターンを生成し、変数が重複しないようにする。
【0073】
(サブグラフパターン生成の実施例2)
グラフ検索部16は、または、例えば、図20に示すように、キーワードノードのインスタンスが同じかつクラスノードのクラスが同じパスパターン同士を当該両ノードでマージしたものサブグラフパターンを生成し、変数が重複しないようにする。
【0074】
(サブグラフパターン生成の実施例3)
グラフ検索部16は、または、例えば、図21に示すように、クラスノードのインスタンスが同じパスパターン同士をクラスノードでマージしたものサブグラフパターンを生成し、変数が重複しないようにする。
【0075】
(サブグラフパターン生成の実施例4)
グラフ検索部16は、または、例えば、クラスノードのインスタンスが同じマージ対象同士をクラスノードでマージしたものサブグラフパターンを生成し、変数が重複しないようにする。
【0076】
例えば、2以上のパスパターン同士をマージする。または、2以上のこれまで説明したサブグラフパターン同士をマージする。例えば、図22に示すように、2つのサブグラフパターン同士をマージする。または、1以上のパスパターンと1以上のサブグラフパターンをマージする。例えば、図23に示すように、1つのパスパターンと1つのサブグラフパターンをマージする。
【0077】
(サブグラフパターン生成の実施例5)
グラフ検索部16は、または、以下のようにサブグラフパターンを生成する。
【0078】
まず、グラフGにおいてキーワードKWに等しいインスタンスをもつノード(キーワードノード)に接続されたアークのラベルを取得する。
【0079】
グラフ検索部16は、例えばキーワードKWが「セマンティックWeb」のとき、図24の太線のアークがもつ、下線のラベル「rm:技術キーワード」を取得する。
【0080】
以下、このラベルが取得されたときのことについて説明する。
【0081】
次に、グラフ検索部16は、まず、このラベルを含むパスパターンを生成する。具体的には、例えば、図25に示すように、ラベル「ms:技術キーワード」をもつアークが一方の端位置のノード(キーワードノード)に接続され、クラスCLが定義されたノード(クラスノード)を他方の端位置に有する、パスパターンPmを生成する。
【0082】
次に、グラフ検索部16が、パスパターンPmにマッチするパスをグラフGから取得する。
【0083】
そして、グラフ検索部16は、取得されたパスの中で、キーワードノードのインスタンス同士が同じ、かつ、クラスノードのインスタンスが同じもの同士を、キーワードノードとクラスノードでマージする。
【0084】
例えば、図26に示すような、サブグラフSGm1、SGm2が生成される。また、取得されたパスそのものが、これ以降、サブグラフ(ここでは、サブグラフSGm1という)として扱われる。
【0085】
これ以降は、図26に示すような、同じインスタンスをキーワードノードにもつサブグラフのグループについての処理が行われ、同様の処理が他のグループについても行われる。
【0086】
なお、説明としては、図26に示す各サブグラフについての処理を説明し、他のグループについての説明は省略する。
【0087】
さて、図26を例にすると、グラフ検索部16は、サブグラフSGm1、SGm2、SGm3の中の1つ(例えばSGm1)またはそのサブグラフ(以下、第1サブグラフ)と他のサブグラフ(例えばSGm2)またはそのサブグラフ(以下、第2サブグラフ)とからなる組み合わせであって、第1および第2サブグラフのそれぞれが、キーワードノードと対象クラスノードとをそれぞれ端位置にもつ2以上のパスからなり且つ対象クラスノードのクラスが定義されたサブグラフであって、第1サブグラフ内の各アークのラベルが当該各アークに対応する第2サブグラフの中でのアークのラベルに等しいという条件を満たす、組み合わせを検出する。
【0088】
例えば、図27に示すように、サブグラフSGm2にサブグラフSGm2aが含まれているとすると、サブグラフSGm1とサブグラフSGm2aとからなる組み合わせが検出される。
【0089】
次に、グラフ検索部16は、検出された組み合わせの中の一方のサブグラフのノードのインスタンスを変数に置換する。こうして、置換後のもの(サブグラフパターン)が生成する。
【0090】
例えば、図26、図27に示したサブグラフSGm1からは、図28に示すサブグラフパターンPm1が生成される。
【0091】
次に、グラフ検索部16は、生成したサブグラフパターンのキーワードノードのインスタンスとしてキーワードKWを設定する。
【0092】
例えば、図28に示したサブグラフパターンPm1からは、図29に示すサブグラフパターンPm1’が生成される。
【0093】
さて、上述したように、ステップS13、S15をせず、サブグラフパターンを検索してもよい(S13A)。
【0094】
例えば、「キーワードKWが一方端のノードのインスタンスである」かつ「クラスCLが他方端のノードのクラスである」という条件と予めパラメータ記憶部15に記憶された条件つまり「サブグラフパターン内のノード数≦6である」とからなるサブグラフパターン検索条件(後者の条件を除いたものでもよい。以下、サブグラフパターン検索条件という)を満たすサブグラフパターンを検索する(S13A)。「サブグラフパターン内のノード数≦6である」の「6」は予め設定されるものであり、別の数を設定しておいてもよい。
【0095】
あるいは、ステップS3では、図30に示すように、サブグラフパターンを表示させ、それが操作で選択されたら、そのサブグラフパターンが検索されたこととしてもよい。
【0096】
いずれにしても、中心性値計算装置1では、グラフ検索部16によりサブグラフパターンが生成あるいは検索される。
【0097】
(サブグラフの検索、マージ)
図7に戻り、グラフ検索部16は、サブグラフをグラフGから検索する(S17)。複数のサブグラフが検索された場合は、それらを重複部分でマージすることで1つのサブグラフにする(S19)。
【0098】
サブグラフの検索では、生成あるいは検索されたサブグラフパターンに対応するクエリが生成され、そのクエリにマッチするサブグラフが検索される。クエリの一例として、図20のサブグラフパターンに対応するクエリを図31に示す。
【0099】
また、ここでは、例えば、図19のサブグラフパターンにより、図32の太線のサブグラフと、図33の太線のサブグラフとが検索され、これらがマージされ、図34の太線のサブグラフのようにマージされる。
【0100】
ここで得られるサブグラフは1つであり、これを以下ではサブグラフSGという。ステップS17で検索されたサブグラフが1つの場合は、それをサブグラフSGという。
【0101】
(中心性値計算部17の動作)
次に、中心性値計算部17は、予め設定されている場合、クラスCLの定義、キーワードKWをもつノードとそのノードへのアークをサブグラフSGから除去する(S21)。
【0102】
ここでは、例えば、図35に示すように、クラスCL「Person:人」の定義と、キーワードKW「セマンティックweb」をもつノードとそのノードへのアークとが除去され、太線のサブグラフが残る。これを以下ではサブグラフSGという。
【0103】
次に、中心性値計算部17は、予め除去すべきアークのラベルがパラメータ記憶部15に設定されている場合、そのラベルをもつアークをサブグラフSGから除去する(S23)。
【0104】
ここでは、例えば、図36に示すように、ラベル「pj:担当者」をもつアークが除去され、太線のサブグラフが残る。これを以下ではサブグラフSGという。
【0105】
次に、予めサブグラフSGを縮める縮退ルールがパラメータ記憶部15に記憶された場合、その縮退ルールによりサブグラフSGの一部を除去し、その残りの部分を接続する(S25)。
【0106】
ここでは、例えば、縮退ルールによりノードとアークを除去し、それらで接続されていたノード同士を1つのアークだけで接続する。図37に示す縮退ルールにより、図38に示すサブグラフを、図39に示すサブグラフにするのである。
【0107】
こうして、縮退ルールにより、後述する中心性値計算に適さないノードを計算対象から除外することができる。
【0108】
こうして得られたサブグラフを以下ではサブグラフSGという。
【0109】
次に、中心性値計算部17は、サブグラフSGの各ノードの中心性値を計算し(S27)、予め設定されている場合は、予めパラメータ記憶部15に記憶された閾値以下の中心性値をもつノードを除外する。
【0110】
そして、出力用インタフェース生成部19が、除外されていないノードのインスタンスが中心性値の高い順に並ぶ出力用インタフェースを生成し、これをユーザ端末2に送信し(S29)、表示させる(S31)。
【0111】
なお、ステップS21、S23、S25は、必要なときに実行すればよく、の一部または全部を省略してもよい。
【0112】
また、中心性値によりノードを除外せずに、全ノードのインスタンスを表示させてもよい。また、ノードのインスタンスに対応づけて、そのノードの中心性値を表示させてもよい。
【0113】
(中心性値計算の実施例1)
上記の中心性値計算では、中心性値計算部17は、サブグラフSGのノード数nを求め、各ノードiにつき、接続されたアークの数diを求め、図40(a)の式により中心性値を計算する。
【0114】
図41は、計算対象のサブグラフSGの一例であり、アークの向きおよびラベルを省略して示す。このサブグラフSGからは、図40(b)のような数diと中心性値が計算される。
【0115】
(中心性値計算の実施例2)
あるいは、中心性値計算部17は、サブグラフSGのノード数nを求め、各ノードiにつき、他の各ノードとの間のアークの数を求め、その最大値mdiを求め、図42(a)の式により中心性値を計算する。
【0116】
図41のサブグラフSGからは、図42(b)のような値mdiと中心性値が計算される。
【0117】
(中心性値計算の実施例3)
あるいは、中心性値計算部17は、サブグラフSGのノード数nを求め、各ノードiにつき、他の各ノードとの間のアークの数を求め、その総和miを求め、図43(a)の式により中心性値を計算する。
【0118】
図41のサブグラフSGからは、図43(b)のような総和miと中心性値が計算される。
【0119】
(中心性値計算の実施例4)
あるいは、中心性値計算部17は、サブグラフSGのノード数nを求め、n個の中の2個の組合せ数nC2を求め、各ノードiにつき、そのノードとそのノードに接続されるアークとがない場合に接続が絶たれる2つのノードの組の数cdpiを求め、各ノードiにつき、図44(a)の式により中心性値を計算する。
【0120】
例えば、図41で、インスタンス「rm:T−048」をもつノードとそのノードに接続されるアークとがない場合、例えば、インスタンス「rm:T−041」をもつノードとインスタンス「Person:田中一郎」をもつノードとが接続を絶たれるので、この2つのノードの組がcdpiの中の1を占めることになる。
【0121】
図41のサブグラフからは、図44(b)のようなmiと中心性値が計算される。
【0122】
以上説明したように、本実施の形態によれば、グラフ検索手段(グラフ検索部16)は、インスタンスをもつノード間がアークによって接続されたグラフGから、指定された条件を基にして、サブグラフを検索し(S17)、中心性値計算手段(中心性値計算部17)こうして得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する(S27)ので、サブグラフの特徴を早期に知ることができる。
【0123】
また、パス検索の実施例2で説明したように、グラフ検索手段(16)は、グラフに等しいグラフにおいて同じクラスが定義された複数のノードのインスタンスを当該クラスに対応する仮の名称に置換し、複数の同一部分について1つ以外を削除し、仮の名称を予め定められたインスタンスに置換し、置換後のグラフであるテンプレートグラフから、指定された条件を基にして、パスを検索する。そして、当該パスを基にして、グラフからサブグラフを検索し(S17)、中心性値計算手段(17)が、ノードの中心性値を計算する(S27)。よって、サブグラフの特徴を早期に知ることができる。
【0124】
また、パスパターン生成の実施例3で説明したように、グラフのアークについてのアークスコアが予め記憶されるアークスコア記憶手段(パラメータ記憶部15)を備え、グラフ検索手段(16)は、アークスコアを基にして、グラフのノードについてのノードスコアを計算し(図13、S103)、グラフから、指定された条件を基にして、パスを検索し(図13、S107)、ノードスコアを基にして、各パスのパススコアを計算し(図13、S109)、各パスにつき、予め定められたキーワードをインスタンスとしてもつノード以外のノードのインスタンスを変数に置換し(図13、S111)、全てのパスを同一のパスからなるパスグループごとに区分し、パススコアを基にして、各パスグループにつき、スコアを計算し(図13、S113)、スコアが予め定めたしきい値以下の各パスグループを削除し(図13、S115)、残った各パスグループにつき、1パス以外を削除する(図13、S115)。そして、残った各パスパターンを基にして、グラフからサブグラフを検索し(S17)、中心性値計算手段(17)が、ノードの中心性値を計算する(S27)。よって、サブグラフの特徴を早期に知ることができる。
【0125】
また、サブグラフパターン生成の実施例5で説明したように、グラフ検索手段(16)は、グラフから、指定されたキーワード(KW)に等しいインスタンスをもつノードに接続されたアークのラベルを取得し(図24ではラベル「rm:技術キーワード」)、取得したラベルをもつアークが一方の端位置のノードに接続され、指定されたクラス(CL)が定義されたノードを他方の端位置に有する、パスパターン(図25ではパターンPm)を生成し、このパスパターンにマッチするパスをグラフから検索し、検索されたパスの中で、クラス(CL)が定義されたノードのインスタンスが同じもの同士を当該ノードでマージし、マージにより生成されたサブグラフまたはそのサブグラフである第1サブグラフと第2サブグラフとからなる組み合わせ(図27ではサブグラフSGm1とサブグラフSGm2aの組合せ)であって、第1および第2サブグラフのそれぞれが、キーワード(KW)に等しいインスタンスをもつノードである第1ノードとクラス(CL)が定義されたノードである第2ノードとをそれぞれ端位置にもつ2以上のパスからなり且つ当該第2ノードにクラス(CL)が定義されたサブグラフであって、第1サブグラフ内の各アークのラベルが当該各アークに対応する第2サブグラフの中でのアークのラベルに等しいという条件を満たす、組み合わせ(図27のサブグラフSGm1とサブグラフSGm2aの組合せ)を検出し、検出した組み合わせの中の一方のサブグラフのノードのインスタンスを変数に置換し(図28ではサブグラフパターンPm1)、第1ノードのインスタンスとしてキーワード(KW)を設定してなるパターン(図29ではサブグラフパターンPm1’)を生成する。そして、生成したサブグラフパターンを基にして、グラフからサブグラフを検索し(S17)、中心性値計算手段(17)が、ノードの中心性値を計算する(S27)。よって、サブグラフの特徴を早期に知ることができる。
【図面の簡単な説明】
【0126】
【図1】本実施の形態に係る中心性値計算装置1の構成図である。
【図2】グラフGの一部を例示した図である。
【図3】RDF/XML形式のデータ、その元データおよびこの形式のデータによるサブグラフを例示した図である。
【図4】グラフGを表示するためのデータ群の一部を例示した図である。
【図5】本実施の形態のシーケンス図である。
【図6】表示された入力用インタフェースを例示した図である。
【図7】パス検索の実施例2で使用されるテンプレートグラフを生成する途中の状態を例示した図である。
【図8】テンプレートグラフを例示した図である。
【図9】パスパターンを例示した図である。
【図10】パスパターン生成の実施例2で生成したパスパターンを例示した図である。
【図11】パスパターン生成の実施例3で使用されるアークスコア記憶部の記憶内容を例示した図である。
【図12】アークスコアの一部をグラフに当てはめた図である。
【図13】アークスコア記憶部を用いたパターン生成のフローチャートを示す図である。
【図14】ノードスコアの計算式を示した図である。
【図15】ノードスコア計算の例にしたグラフを示す図である。
【図16】パススコアの計算式を示した図である。
【図17】パスグループのスコアの計算式を示した図である。
【図18】パスパターン生成の実施例3で生成したパスパターンを例示した図である。
【図19】サブグラフパターン生成の実施例1で生成したサブグラフパターンを例示した図である。
【図20】サブグラフパターン生成の実施例2で生成したサブグラフパターンを例示した図である。
【図21】サブグラフパターン生成の実施例3で生成したサブグラフパターンを例示した図である。
【図22】サブグラフパターン生成の実施例4で生成したサブグラフパターンを例示した図である。
【図23】サブグラフパターン生成の実施例4で生成したサブグラフパターンを例示した図である。
【図24】キーワードノードに接続されたアークとそのインスタンスを例示した図である。
【図25】パターンPmを例示した図である。
【図26】サブグラフSGm1、SGm2、SGm3を例示した図である。
【図27】サブグラフの組み合わせが検出される様子を例示した図である。
【図28】パターンPm1を例示した図である。
【図29】キーワードKWが設定されたパターンPm1’を例示した図である。
【図30】表示された入力用インタフェースを例示した図である。
【図31】クエリを例示した図である。
【図32】サブグラフを例示した図である。
【図33】サブグラフを例示した図である。
【図34】マージ後のサブグラフを例示した図である。
【図35】一部除去後のサブグラフを例示した図である。
【図36】一部除去後のサブグラフを例示した図である。
【図37】縮退ルールを例示した図である。
【図38】縮退ルールによる一部除去前のサブグラフを例示した図である。
【図39】縮退ルールによる一部除去前のサブグラフを例示した図である。
【図40】中心性値計算の実施例1で使用される式、各インスタンスに対応する数diと中心性値を例示した図である。
【図41】中心性値計算の例にしたグラフを示す図である。
【図42】中心性値計算の実施例2で使用される式、各インスタンスに対応する値mdiと中心性値を例示した図である。
【図43】中心性値計算の実施例3で使用される式、各インスタンスに対応する総和miと中心性値を例示した図である。
【図44】中心性値計算の実施例4で使用される式、各インスタンスに対応する数cdpiと中心性値を例示した図である。
【符号の説明】
【0127】
1 中心性値計算装置
11 グラフデータベース
14 パターンデータベース
16 グラフ検索部
17 中心性値計算部

【特許請求の範囲】
【請求項1】
インスタンスをもつノード間がアークによって接続されたグラフから、指定された条件を基にして、サブグラフを検索するグラフ検索手段と、
前記グラフ検索手段により得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する中心性値計算手段と
を備えることを特徴とする中心性値計算装置。
【請求項2】
前記グラフは、ノードのインスタンスのクラスが定義されたものであり、
前記グラフ検索手段は、
前記グラフに等しいグラフにおいて同じクラスが定義された複数のノードのインスタンスを当該クラスに対応する仮の名称に置換し、複数の同一部分について1つ以外を削除し、仮の名称を予め定められたインスタンスに置換し、置換後のグラフであるテンプレートグラフから、指定された条件を基にして、パスを検索し、当該パスを基にして、前記グラフからサブグラフを検索する
ことを特徴とする請求項1記載の中心性値計算装置。
【請求項3】
前記グラフのアークについてのアークスコアが予め記憶されるアークスコア記憶手段を備え、
前記グラフ検索手段は、
前記アークスコアを基にして、前記グラフのノードについてのノードスコアを計算し、
前記グラフから、指定された条件を基にして、パスを検索し、前記ノードスコアを基にして、各パスのパススコアを計算し、各パスにつき、予め定められたキーワードをインスタンスとしてもつノード以外のノードのインスタンスを変数に置換し、全てのパスを同一のパスからなるパスグループごとに区分し、前記パススコアを基にして、各パスグループにつき、スコアを計算し、スコアが予め定めたしきい値以下の各パスグループを削除し、残った各パスグループにつき、1パス以外を削除し、残った各パスパターンを基にして、前記グラフからサブグラフを検索する
ことを特徴とする請求項1記載の中心性値計算装置。
【請求項4】
前記グラフは、アークがラベルをもち且つインスタンスのクラスが定義されたグラフであり、
前記グラフ検索手段は、
このグラフから、指定されたキーワードに等しいインスタンスをもつノードに接続されたアークのラベルを取得し、取得したラベルをもつアークが一方の端位置のノードに接続され、指定されたクラスが定義されたノードを他方の端位置に有する、パスパターンを生成し、
このパスパターンにマッチするパスを前記グラフから検索し、
検索されたパスの中で、指定されたクラスが定義されたノードのインスタンスが同じもの同士を当該ノードでマージし、マージにより生成されたサブグラフまたはそのサブグラフである第1サブグラフと第2サブグラフとからなる組み合わせであって、第1および第2サブグラフのそれぞれが、前記指定されたキーワードに等しいインスタンスをもつノードである第1ノードと前記指定されたクラスが定義されたノードである第2ノードとをそれぞれ端位置にもつ2以上のパスからなり且つ当該第2ノードに当該指定されたクラスが定義されたサブグラフであって、第1サブグラフ内の各アークのラベルが当該各アークに対応する第2サブグラフの中でのアークのラベルに等しいという条件を満たす、組み合わせを検出し、検出した組み合わせの中の一方のサブグラフのノードのインスタンスを変数に置換し、第1ノードのインスタンスとして前記指定されたキーワードを設定してなるサブグラフパターンを生成し、
このサブグラフパターンにマッチするサブグラフを前記グラフから検索する
ことを特徴とする請求項1記載の中心性値計算装置。
【請求項5】
請求項2記載の中心性値計算装置の前記グラフ検索手段が、前記グラフに等しいグラフにおいて同じクラスが定義された複数のノードのインスタンスを当該クラスに対応する仮の名称に置換し、複数の同一部分について1つ以外を削除し、仮の名称を予め定められたインスタンスに置換し、置換後のグラフであるテンプレートグラフから、指定された条件を基にして、パスを検索し、当該パスを基にして、前記グラフからサブグラフを検索し、 当該中心性値計算装置の中心性値計算手段が、前記グラフ検索手段により得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する
ことを特徴とする中心性値計算方法。
【請求項6】
請求項3記載の中心性値計算装置の前記グラフ検索手段が、前記アークスコアを基にして、前記グラフのノードについてのノードスコアを計算し、
前記グラフから、指定された条件を基にして、パスを検索し、前記ノードスコアを基にして、各パスのパススコアを計算し、各パスにつき、予め定められたキーワードをインスタンスとしてもつノード以外のノードのインスタンスを変数に置換し、全てのパスを同一のパスからなるパスグループごとに区分し、前記パススコアを基にして、各パスグループにつき、スコアを計算し、スコアが予め定めたしきい値以下の各パスグループを削除し、残った各パスグループにつき、1パス以外を削除し、残った各パスパターンを基にして、前記グラフからサブグラフを検索し、
当該中心性値計算装置の中心性値計算手段が、前記グラフ検索手段により得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する
ことを特徴とする中心性値計算方法。
【請求項7】
請求項4記載の中心性値計算装置の前記グラフ検索手段が、このグラフから、指定されたキーワードに等しいインスタンスをもつノードに接続されたアークのラベルを取得し、取得したラベルをもつアークが一方の端位置のノードに接続され、指定されたクラスが定義されたノードを他方の端位置に有する、パスパターンを生成し、
このパスパターンにマッチするパスを前記グラフから検索し、
検索されたパスの中で、指定されたクラスが定義されたノードのインスタンスが同じもの同士を当該ノードでマージし、マージにより生成されたサブグラフまたはそのサブグラフである第1サブグラフと第2サブグラフとからなる組み合わせであって、第1および第2サブグラフのそれぞれが、前記指定されたキーワードに等しいインスタンスをもつノードである第1ノードと前記指定されたクラスが定義されたノードである第2ノードとをそれぞれ端位置にもつ2以上のパスからなり且つ当該第2ノードに当該指定されたクラスが定義されたサブグラフであって、第1サブグラフ内の各アークのラベルが当該各アークに対応する第2サブグラフの中でのアークのラベルに等しいという条件を満たす、組み合わせを検出し、検出した組み合わせの中の一方のサブグラフのノードのインスタンスを変数に置換し、第1ノードのインスタンスとして前記指定されたキーワードを設定してなるサブグラフパターンを生成し、
このサブグラフパターンにマッチするサブグラフを前記グラフから検索し、
当該中心性値計算装置の中心性値計算手段が、前記グラフ検索手段により得られたサブグラフに含まれる各ノードにつき、当該サブグラフにおける中心性を示す中心性値を計算する
ことを特徴とする中心性値計算方法。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate


【公開番号】特開2008−181332(P2008−181332A)
【公開日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−14186(P2007−14186)
【出願日】平成19年1月24日(2007.1.24)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】