説明

関係性グラフデータベースシステム

【課題】関係性グラフデータを生成する新規な手法を提供する。
【解決手段】ノードデータをリンクで接続したグラフデータを有するデータベースを管理する関係性グラフデータベースシステムであって、端末装置の操作に対応するノードデータを生成するノード生成部212と、複数のノードデータをリンクで接続した部分グラフデータを生成する部分グラフ生成部214と、複数の部分グラフを合成することでグラフデータを生成するグラフ生成部215と、を備えている。部分グラフ生成部214は、同一の端末装置において行われた複数の操作が所定の関係性を有する場合には、当該複数の操作に対応する複数のノードデータ同士をリンクで接続して部分グラフデータを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、関係性グラフデータベースシステムに関するものである。
【背景技術】
【0002】
高度なサービスの実現のために、個々のデータに詳細な属性情報をもたせることが取り組まれているが、一方で、データ間の関係性をサービスに活用する試みが検討されている(非特許文献1参照)。特に、人と人との関係性や人の移動のコンテキストとロケーションとの関係性といったソーシャルな関係性が注目を集めている。こういったデータの関係性は、データをノード、データ間の直接的なつながりをリンクで表すグラフデータとして表現される。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】R.Shinkuma et al., "New Generation Information Network Architecture Based on Social Metric", IEICE Society Conference, Sept. 2010
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、グラフデータを生成する新規な手法を提供することを目的とする。また、本発明の他の目的は、グラフデータからデータを抽出する新規な手法を提供することである。
【課題を解決するための手段】
【0005】
(1)本発明は、ノードデータをリンクで接続したグラフデータを有するデータベースを管理する関係性グラフデータベースシステムであって、
コンピュータネットワークに接続した端末装置において行われた操作に対応するノードデータを生成するノード生成部と、
複数のノードデータをリンクで接続した部分グラフデータを生成する部分グラフ生成部と、
複数の部分グラフデータを合成することでグラフデータを生成し、生成されたグラフデータを前記データベースに記憶させるグラフ生成部と、
を備え、
前記ノード生成部は、前記端末装置において行われる複数種類の操作に対応して、複数種類のノードデータを生成可能であり、
前記部分グラフ生成部は、同一の端末装置において行われた複数の操作が所定の関係性を有する場合には、当該複数の操作に対応する複数のノードデータ同士をリンクで接続して部分グラフデータを生成し、
前記グラフ生成部は、
共通するノードデータを有する複数の部分グラフデータを当該共通するノードデータにおいてグラフ合成することでグラフデータを生成する、又は、
共通するノードデータを有する部分グラフデータとグラフデータとを、当該共通するノードデータにおいてグラフ合成することで、新たなグラフデータを生成する
ことを特徴とする関係性グラフデータベースシステムである。
【0006】
(2)前記所定の関係性には、複数の操作の時間間隔が所定時間以下であること、が含まれるのが好ましい。
【0007】
(3)前記所定の関係性には、複数の操作が、同一のトランザクション内において行われたこと、が含まれるのが好ましい。
【0008】
(4)前記グラフ生成部は、前記部分グラフ又は前記グラフ生成部によって生成されたグラフデータを、グラフデータを生成することができる他のシステムによって生成された他のグラフデータと合成するのが好ましい。
【0009】
(5)前記部分グラフ生成部は、同一の端末において行われた複数の操作が所定の関係性を有する場合には、当該複数の操作に対応する複数のノードデータ同士が、同一種類であるか異なる種類であるかを問わず、リンクで接続して部分グラフデータを生成するのが好ましい。
【0010】
(6)前記ノード生成部は、前記端末装置の位置情報に基づいて、位置に対応するノードデータを生成可能であり、
前記部分グラフ生成部は、位置に対応するノードデータと操作に対応するノードデータとが、所定の関係性を有する場合には、位置に対応するノードデータと操作に対応するノードデータとをリンクで接続して部分グラフデータを生成するのが好ましい。
【0011】
(7)前記部分グラフ生成部は、前記リンクの生成に関するリンク情報をも生成するのが好ましい。
【0012】
(8)前記グラフ生成部は、共通するノードデータ対の間のリンクそれぞれを維持しつつ、当該ノードデータ対においてグラフ合成を行うのが好ましい。
【0013】
(9)前記グラフ生成部は、共通するノードデータ対の間のリンクそれぞれを一本のリンクに合成しつつ、当該ノード対においてグラフ合成を行うのが好ましい。
【0014】
(10)前記データベースに記憶されたグラフデータのリンクを消滅させるリンク消滅部をさらに備えるのが好ましい。
【0015】
(11) 前記リンク消滅部は、前記データベースに記憶されたグラフデータのリンクのリンク距離を時間経過に応じて長くし、リンク距離が所定の長さになるとリンクを消滅させるのが好ましい。
【0016】
(12)前記ノードデータ生成部によってノードデータが生成される操作は、前記端末装置において行われる商品購入操作、前記端末装置において行われるWebサイト表示操作、前記端末装置において行われるコンテンツ閲覧操作のうちの少なくともいずれか一つを含むのが好ましい。
【0017】
(13)前記端末装置からの入力に基づいて、前記グラフデータに含まれるノードデータの中から、複数の基準ノードデータを選択する基準ノード選択部と、
複数の基準ノードからみた中心性に基づいて、前記グラフデータからノードデータを抽出する抽出部と、
を更に備えるのが好ましい。
【0018】
(14)前記抽出部は、複数の基準ノードデータそれぞれからみて中心にあるノードデータを中心ノードデータとして選択し、中心ノードデータからの経路長に基づいて、前記グラフデータからノードデータを抽出するのが好ましい。
【0019】
(15)前記抽出部は、前記グラフデータから、複数の基準ノードデータからの経路長が所定値以下であるノードデータからなる局所グラフデータを特定し、前記局所グラフデータにおける中心性に基づいてノードデータを抽出するのが好ましい。
【0020】
(16)前記抽出部は、前記局所グラフデータにおいて複数の基準ノードデータを結ぶ最短経路上のノードデータそれぞれからの経路長から求められる中心性に基づいてノードデータを抽出するのが好ましい。
【0021】
(17)前記抽出部は、前記局所グラフデータにおいて複数の基準ノードデータ及び複数の基準ノードデータの近傍のノードデータそれぞれからの経路長から求められる中心性に基づいてノードデータを抽出するのが好ましい。
【0022】
(18)前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備えるのが好ましい。
【0023】
(19)前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備え、前記表示制御部は、抽出された各ノードデータを、複数の基準ノードのうち、経路長が最も小さくなる基準ノードの付近に集中させて表示させるのが好ましい。
【0024】
(20)前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備え、前記表示制御部は、抽出されたノードデータを、複数の基準ノードデータそれぞれからみた中心性に基づいて、中心性の高さを識別可能に表示するのが好ましい。
【0025】
(21)前記グラフのノードデータ対の間のリンクの数が多いほど当該ノードデータ対の間のリンク距離が小さいものとみなして経路長を求めるのが好ましい。
【0026】
(22)基準ノードデータとして選択されることが予測される複数のノードデータの組み合わせについて、前記抽出部におけるノードデータの抽出の処理の一部又は全部を予め実行した処理結果を記憶する記憶部を更に備え、
複数の基準ノードデータが実際に選択されると、前記抽出部は、前記記憶部に記憶されている処理結果を用いて、ノードデータの抽出を行うのが好ましい。
【0027】
(23)前記基準ノード選択部は、複数のノードデータを一つのノードデータとみなして、基準ノードデータの一つとして選択可能であり、
一つのノードデータとみなされる複数のノードデータは、前記グラフデータに含まれる複数のノードデータのち、クラスタリング処理によってクラスター化された複数のノードデータであるのが好ましい。
【0028】
(24)他の観点からみた本発明は、コンピュータを、前記(1)〜(24)のいずれか1項に記載の関係性グラフデータベースシステムとして機能させるためのコンピュータプログラムである。
【図面の簡単な説明】
【0029】
【図1】関係性グラフデータベースシステムの構成図である。
【図2】処理サーバの構成図である。
【図3】ノード生成からグラフデータ生成までの過程を示す図である。
【図4】グラフデータ更新の過程を示す図である。
【図5】他のグラフデータと合成されたグラフデータを示す図である。
【図6】ノード抽出処理のフローチャートである。
【図7】ノード抽出処理の説明図である。
【図8】抽出されたノードの表示例を示す図である。
【図9】ノード抽出処理のフローチャートである。
【図10】ノード抽出処理の説明図である。
【図11】クラスターノードを含むグラフデータの例を示す図である。
【発明を実施するための形態】
【0030】
以下、本発明の好ましい実施形態について添付図面を参照しながら説明する。
【0031】
[1.全体構成]
図1は、関係性グラフデータベースシステム1の全体構成の概要を示している。関係性グラフデータベースシステム1は、処理サーバ2と、ソーシャルネットワークデータベース3と、キャッシュサーバ(記憶部)4と、を備えている。
なお、関係性グラフデータベースシステム1の各機能は、処理サーバ2などとして機能するコンピュータの記憶装置にインストールされたコンピュータプログラムが、コンピュータに実行されることによって発揮される。そのコンピュータプログラムは、記録媒体に記録して、譲渡・販売することができる。
【0032】
処理サーバ2は、インターネットなどのコンピュータネットワーク5を介して、端末装置6と通信可能である。端末装置6は、パーソナルコンピュータ、携帯電話、及びその他コンピュータネットワーク5に接続可能な装置であれば、特に限定されない。
【0033】
ソーシャルネットワークデータベース(以下、単に「データベース」という)3は、ノード間の関係性を示すグラフデータを記憶するためのものである。グラフデータは、ノードデータ(以下、単に「ノード」という)をリンクで接続したものである。本実施形態のグラフデータには、一種類のもの(例えば、人)を表すノードだけでなく、人、物、場所、団体、電子的な物(コンテンツ)などの多種類のものに対応した多種類のノードが存在する。
【0034】
キャッシュサーバ4は、処理サーバ2において行われる処理の結果を予め記憶しておくことで、処理サーバ2における処理を迅速化させるためのものである。キャッシュサーバ4の詳細については後述する。
【0035】
図2に示すように処理サーバ2は、グラフデータの生成(更新)に関する処理を行う第1処理部21と、グラフデータからのノードの抽出に関する処理を行う第2処理部22と、を備えている。
【0036】
[2.グラフデータの生成]
グラフデータの生成(更新)に関する処理を行う第1処理部21は、情報取得部211と、ノード生成部212と、判定部213と、部分グラフ生成部214と、グラフ生成部215と、リンク消滅部216と、を備えている。
【0037】
情報取得部211は、端末装置6において行われた操作内容を示す操作情報を取得する。操作情報は、情報取得部211が、端末装置6において行われた操作履歴を、当該端末装置6から操作情報として取得してもよいし、端末装置6がコンピュータネットワーク5を介して接続したWebサイトにおいて行った操作履歴を、操作情報として当該WebサイトのWebサーバから取得してもよい。
【0038】
情報取得部211は、端末装置(移動端末装置)6の位置を示す位置情報(GPS情報など)を取得することもできる。
【0039】
ノード生成部212は、グラフデータにおけるノードを生成するためのものである。ノード生成部212は、情報取得部211が取得した操作情報が示す操作に、ノード作成対象の操作が含まれていれば、ノードを生成する。
【0040】
ノード作成対象の操作は、例えば、端末装置6において行われる商品購入操作、端末装置6において行われるWebサイト表示操作、端末装置6において行われるコンテンツ閲覧操作などである。
例えば、商品購入操作の場合、購入された商品を示す情報(商品名データなど)などを内部情報として持つ商品ノードが生成される。Webサイト表示操作の場合、表示されたWebサイトのサイト名及びWebサイトのURLなどを内部情報として持つWebサイトノードが生成される。コンテンツ閲覧操作の場合、閲覧されたコンテンツの名前及びコンテンツが存在場所を示すURLなどを内部情報として持つコンテンツノードが生成される。
【0041】
このように、ノード生成部212は、端末装置6において行われる複数種類の操作に対応して、複数種類のノードデータを生成可能である。
また、ノード生成部212は、予め設定されたノード作成対象の操作が行われると、ノードを生成するよう構成されているため、ノードが作成される操作は、ノードを作成するための専用の操作である必要はなく、前述のような商品購入操作、Webサイト表示操作、コンテンツ閲覧操作など、多様な種類の操作をノード作成対象とすることができる。
【0042】
さらに、ノード生成部212は、情報取得部211が取得した位置情報に基づいて、位置情報が示す位置に対応した位置ノードを生成可能である。例えば、GPS情報からなる位置情報が京都市内の位置を示している場合、「京都」という位置を示す位置ノードが生成される。
【0043】
判定部213は、情報操作情報及び/又は位置情報に基づき、同一の端末装置6において行われた複数の操作(ノード作成対象の操作)及び/又は端末装置6の位置が、所定の関係性を有しているか否かを判定する。
【0044】
所定の関係性としては、複数の操作(ノード作成対象の操作)の時間間隔が、所定時間以下であること、又は、複数の操作(ノード作成対象の操作)が同一のトランザクション内においておこなわれたこと、などが挙げられる。
【0045】
所定の関係性を生じさせるための複数の操作(ノード作成対象の操作)の時間間隔は、ほぼ同時とみなせるほどの短い時間であってもよいし、1日程度の比較的長い時間であってもよい。また、所定の関係性を生じさせるための複数の操作(ノード作成対象の操作)の時間間隔は、調整自在であるのが好ましい。
所定の関係性を生じさせるための複数の操作(ノード作成対象の操作)の時間間隔は、あらゆる操作について一定であってもよいし、操作の種類によって時間間隔が異なっていても良い。
【0046】
同一のトランザクション内に行われる複数の操作としては、場合としては、例えば、Webサイトにおける商品購入ためのトランザクションにおいて、複数の商品を購入した場合における複数の商品購入操作が挙げられる。
【0047】
また、位置と操作とが所定の関係性を生じさせる場合としては、端末装置6が、ある位置(例えば、京都)に存在しているときに、商品購入操作をした場合、Webサイト表示操作をした場合、又はコンテンツ閲覧操作をした場合、などが挙げられる。
【0048】
判定部213は、情報操作情報及び/又は位置情報に基づき、操作間又は操作と位置との間に所定の関係性があることを検出すると、その検出結果を、部分グラフ生成部214に与える。
【0049】
部分グラフ生成部214は、判定部213によって検出された所定の関係性に対応するリンクを生成して、ノードをリンクで接続した部分グラフデータ(以下、単に「部分グラフ」という)を生成する。
具体的には、部分グラフ生成部214は、ノード生成部212によって生成された複数のノードに対して、判定部213によって所定の関係性を有すると判定された操作同士又は操作と位置との間を、リンクで接続する。
これにより、部分グラフ生成部214は、同一の端末装置6において行われた複数の操作、又は、当該端末装置の位置に対応する複数のノードをリンクで接続した部分グラフを生成する。
【0050】
部分グラフ生成部214は、リンク情報生成部214aを有しており、リンク情報生成部214aは、ノード同士を接続するリンクの生成の際に、当該リンクの生成に関するリンク情報も併せて生成する。リンク情報には、リンクが生成された日時を示す時刻情報、及び/又は、当該リンク生成の原因となった所定の関係性(複数の操作、操作と位置)を示す情報が含まれる。リンク情報は、部分グラフ(部分グラフデータ)の一部を構成する。
【0051】
なお、部分グラフにおいてリンクで接続されるノードは、同一種類の操作に対応するノードであってもよいし、異なる種類の操作に対応するノードであってもよい。つまり、ノード同士は、その種類を問わず、所定の関係性を有していればリンクで接続される。
【0052】
グラフ生成部215は、共通するノードを有する複数の部分グラフ同士を、当該共通するノードにおいてグラフ合成することで、グラフデータを生成して、データベース3に記憶させて、保存する。
また、グラフ生成部215は、共通するノードを有する部分グラフと、データベース3に記憶されているグラフデータとを、当該共通するノードデータにおいてグラフ合成することで、新たなグラフデータを生成して、データベース3に保存する。
【0053】
部分グラフは、ノードの種類を問わず、ノード間が所定の関係性を有していればリンクで接続されるため、そのような部分グラフを合成して得られたグラフデータは、階層構造のグラフや2部グラフのように、シンプルな構造となるグラフとは異なり、多様な接続関係を有するグラフとなる。
【0054】
グラフ生成部215は、データベース3に記憶されているグラフデータを、グラフデータを作成することができる他のシステム(例えば、人の関係を表すグラフデータを作成するシステム)と合成することもできる。この場合、データベース3に記憶されているグラフデータと、他のシステムのグラフデータと、において共通して存在するノードにおいてグラフ合成することで、統合されたグラフデータが生成される。
【0055】
リンク消滅部216は、データベース3に保存されているグラフデータのリンクを、消滅させることができる。リンク消滅部(リンク距離変更部)216は、例えば、時間の経過に応じて、リンク距離を長くしていき、リンク距離が所定の長さ以上になれば、リンクを消滅させる。グラフデータのリンクを適宜消滅させることで、ネットワーク型データが膨大になりすぎるのを抑制することができる。また、時間経過に応じてリンク距離を長くすることで、古いリンクで接続されたノードの関係性を低くすることができる。
リンク消滅部216によるリンク消滅処理(リンク距離変更処理)を行うため、各リンクにはタイムスタンプが設定されている。リンク消滅部216は、リンクに設定されたタイムスタンプに基づき、リンク距離を長くしたり、リンクを消滅させたりする。
なお、リンク消滅部216は、リンクを時間に対して確率的に消滅させてもよい。確率が1であれば、リンクはある時刻で消滅し、確率が0であればリンクは永続する。リンク消滅の確率は、各リンクについて共通であってもよいし、リンク毎に異なっていてもよい。例えば、リンクの両端のノードの種類によってリンク消滅確率が異なっていても良い。
【0056】
図3は、処理サーバ2の第1処理部21によるグラフデータの作成の一例を示している。
まず、図3(a)に示すように、ある端末装置6によって、商品Aを購入する操作N11と、商品Bを購入する操作N12と、WebサイトCを表示する操作N13と、が、所定時間内で連続的に行われたものとする。情報取得部211は、商品Aを購入する操作N11と、商品Bを購入する操作N12と、WebサイトCを表示する操作N13と、を含む操作の履歴情報(操作情報)を取得する。
【0057】
ノード生成部212は、操作情報に含まれる操作履歴から、ノード作成対象として設定された操作である、商品Aを購入する操作N11と、商品Bを購入する操作N12と、WebサイトCを表示する操作N13と、を抽出して、それらの操作に対応したノードN11,N12,N13を生成する(図3(a)参照)。
【0058】
判定部213は、操作情報に含まれる操作履歴から、所定の関係性を有するノード対を検出する。ここでは、商品Aを購入する操作N11と、商品Bを購入する操作N12とは、ほぼ同時に行われており、所定の関係性(操作時間間隔が所定時間以下)X11があるものとする。また、商品Aを購入する操作N11及び商品Bを購入する操作N12は、WebサイトCを表示する操作とも、所定の関係性(操作時間間隔が所定時間以下)Y11,Y12があるものとする。
【0059】
この場合、部分グラフ生成部214は、3つのノードN11,N12,N13を接続する3つのリンクX11,Y11,Y12生成し、部分グラフP1を生成する(図3(b)参照)。
【0060】
また、図3(a)に示す操作を行った端末装置6とは無関係の別の端末装置6が、WebサイトCを表示する操作N21と、コンテンツDを閲覧する操作N21と、を、所定時間内で連続的に行ったものとする(図3(b)参照)。この場合、部分グラフ生成部214は、2つの操作に対応する2つのノードN21,N22をリンクZ11によって接続した部分グラフP2を生成する。
【0061】
グラフ生成部215は、独立して生成された2つの部分グラフP1,P2に、共通のノード(WebサイトCを表示する操作)N12,N21が含まれていることを検出すると、それらの部分グラフP1,P2のグラフ合成を行う。
【0062】
部分グラフP1,P2のグラフ合成は、共通する複数のノード(WebサイトCを表示する操作)N12,N21を統一した一つのノードN31とすることで、行われる(図3(c)参照)。これにより、複数の部分グラフP1,P2が合成された一つのグラフデータG1が生成される。生成されたグラフデータG1は、データベース3に保存される。
【0063】
さらに、図4(a)に示すグラフデータG1がデータベース3に保存されているときに、図4(b)に示す部分グラフP3が新たに生成されたものとする。この場合、グラフ生成部215は、グラフデータG1と部分グラフP3とに、共通のノード(商品Bを購入する操作N12,N41、WebサイトCを表示する操作N31,N33)が含まれていることを検出すると、グラフデータG1と部分グラフP3とのグラフ合成を行う(図4(c)参照)。このグラフ合成によって、グラフデータG1が更新された新たなグラフデータG2が生成され、データベース3に保存される。
したがって、端末装置6によって操作が行われることによって、グラフデータが拡張される。
【0064】
図4(a)(b)のように、ノード対(ノードN12,N31のノード対と、ノードN41,N44のノード対)が共通して存在する場合、共通するノード対の間のリンクY12,Y21それぞれを維持したまま、グラフ合成が行われる。したがって、グラフ合成後のグラフデータG2は、ノード対N51,52との間に、合成前のリンクY12,Y22をそのまま有している。
【0065】
合成後においても、合成前のリンクY12,Y22をそのまま維持することで、合成前のリンクY12,Y22が有している情報(タイムスタンプ)などを、それぞれ別個に維持することができる。したがって、リンク消滅部216によるリンク消滅処理を、各リンクY12,Y22について独立して行うことができる。
【0066】
なお、グラフ合成の際には、ノード対N51,52の間のリンクを1本のリンクに合成して集約してもよい。この場合、合成されたノード対間のリンクの数が増加せず、グラフデータのデータ量の増大を抑制できる。
【0067】
図5は、本実施形態の関係性グラフデータベースシステム1が生成したグラフデータG2と、他のシステムによって生成されたグラフデータG3と、を合成したグラフデータG4を示している。このグラフ合成も、両グラフデータG2,G3において共通するノードを合成することで行われる。
【0068】
[3.グラフデータからのノード抽出]
図2に示すように、グラフデータからのノードの抽出に関する処理を行う第2処理部22は、基準ノード選択情報受付部221と、基準ノード選択部222と、抽出部223と、表示制御部224と、を備えている。
【0069】
基準ノード選択情報受付部221は、端末装置6から、基準ノードとして選択されたノードを示す選択情報を受け付ける。表示制御部224は、端末装置6から、グラフのノード抽出要求を受けると、データベース3に保存されているグラフデータの一部又は全部を端末装置6の表示画面に表示させるための表示情報を、端末装置6へ送信する。端末装置6のユーザは、表示されたグラフデータのノードの中から、基準ノードとなる一又は複数のノードを選択する。すると、端末装置6において、基準ノードが選択されると、基準ノードを示す選択情報が、処理サーバ2に送信される。
【0070】
基準ノード選択部222は、基準ノード選択情報受付部221が選択情報を端末装置6から受け付けると、データベース3に記憶されているグラフデータのノードの中から、選択情報が示す位置又は複数のノードを基準ノードとして選択する。
【0071】
抽出部223は、基準ノードからみた中心性(詳細は後述)に基づいて、データベース3に保存されているグラフデータからノードを抽出する。
【0072】
表示制御部224は、抽出されたノードを、当該ノードを接続するリンクとともに表示させる表示情報を、ノード抽出要求を発信した端末装置6に対して送信する。これにより、端末装置6は、抽出されたノードを画面表示することができる。
【0073】
図6及び図7は、ノード抽出処理の第1例を示している。
第1の例においては、基準ノード選択部222によって複数の基準ノードが選択されると(ステップS11)、複数の基準ノードに基づいて、中心ノードが選択される(ステップS12)。例えば、図7に示すグラフデータG(図7において、丸印がノードを示し、直線がリンクを示す)において、2つの基準ノードが選択されると、それら2つの基準ノードそれぞれからの経路長の総和が最も小さくなるノードが中心ノードとして選択される。
【0074】
中心ノードを選択するには、まず、グラフデータGにおいて、2つの基準ノードの最短経路となるグラフ(最短経路グラフ)だけを考える。そして、抽出部223は、最短経路グラフにおける各ノード(対象ノード)について、他の対象ノードそれぞれからの経路長の総和を算出する。そして、最短経路グラフにおける各ノード(対象ノード)のうち、前記経路長の総和が最も小さくなるノードが中心ノードとして特定される。なお、基準ノードが一つの場合は、基準ノードが中心ノードとして特定される。
また、中心ノードを選択するための経路長の総和の算出の対象となるノード(対象ノード)としては、最短経路グラフ上のノードに限らず、基準ノードからのリンク数が所定の値以内のノード、又は、基準ノードからの経路長が所定の値以内のノードなど、基準ノード近傍のノードとしてもよい。
【0075】
続いて、抽出部223は、中心ノードからの経路長が閾値以下(例えば、経路長が3以下)のノードを抽出する。例えば、中心ノードからの経路長が3以下のノードを抽出する場合、図7に示す抽出範囲内のノードが抽出される。
【0076】
中心ノードは、複数の基準ノードから見て中心にあり、抽出されたノード群において中心的な存在となる。したがって、中心ノードからの経路長が小さいほど、複数の基準ノードの組み合わせに対して関係性が高いノードである。
【0077】
表示制御部224は、抽出されたノードに対応する表示情報を生成して、端末装置6へ送信する(ステップS11)。端末装置6へ送信される表示情報は、抽出されたノードを接続するリンク及びリンク情報のほか、抽出された各ノードと中心ノードとの間の経路長を示す情報及び抽出された各ノードと基準ノードとの間の経路長を示す情報も含まれる。
【0078】
端末装置6は、表示情報に基づいて、抽出されたノードの画面表示を行う。図8に示すように、端末装置6は、基準ノード及び/又は中心ノードを、抽出された他のノードとは識別可能に強調表示する。また、基準ノード及び中心ノードも、両者を識別可能に表示される。中心ノードを他のノードから識別可能に強調表示することで、ユーザは、中心ノードが中心性の高いノードであることを認識できる。また、中心ノード以外の他のノードそれぞれについても、中心性を示す値に基づいて、中心性の高さを識別可能に表示してもよい。
また、表示されたリンクが、端末装置6の操作によって指定されると、指定されたリンクのリンク情報が表示される。
【0079】
抽出結果であるノードとリンクが端末装置6に表示されているときに、ユーザによる端末装置6の操作によって、データベース3内の各リンク距離を長くしたり、短くしたりすることができる。つまり、端末装置6は、表示されているリンクのリンク距離を変更する操作をユーザから受け付けると、変更後のリンク距離を処理サーバ2に送信する。すると、処理サーバ2は、データベース3を検索して、リンク距離が変更されたリンクのリンク距離を抽出し、当該リンク距離を変更後のリンク距離に書き換えて、データベース3に保存する。これにより、リンク距離について、ユーザからのフィードバックを反映でき、ユーザが表示されたリンク距離(ノード間の関係性)と自分の感覚とのギャップを感じた時に補正を行うことができる。
【0080】
さらに、端末装置6は、抽出された各ノードを、複数の基準ノードのうち、経路長が最も小さくなる基準ノードの付近に集中させて表示させる。これにより、抽出された各ノードは、いずれかの基準ノードの近くにまとめて表示されるため、各ノードと基準ノードとの関係が直感的にわかりやすくなる。なお、中心ノード及び各基準ノードからの距離が等しくなるノードについては、基準ノードの付近以外の場所、例えば、複数の基準ノードの中間位置、に表示される。
【0081】
このように、表示情報に、抽出された各ノードと基準ノードとの間の経路長を示す情報も含まれていることで、その情報を用いて、抽出された各ノードと基準ノードとの関係性の強さをユーザに分かり易く提示することが可能となる。
また、抽出された各ノードと中心ノードとの間の経路長(中心性)を示す情報を用いることで、抽出された各ノードと中心ノードとの関係性の強さをユーザに分かり易く提示することもできる。
【0082】
なお、ここでは、経路長の計算の際には、リンク1本のリンク距離=1とし、経路上のリンクの数×リンク距離の演算によって経路長が計算される。また、ノード対に複数のリンクが存在する場合、ノード対間のリンク距離=1/ノード対間のリンク本数、というように、ノード対間のリンクの数が多いほどリンク距離が小さいものとして経路長を算出する。
【0083】
ただし、1本のリンクのリンク距離は、各リンクで同じである必要はなく、リンク毎に異なっていても良い。例えば、リンク消滅部(リンク距離変更部)216によって、リンク距離を変更する場合には、生成時期の異なるリンクのリンク距離は異なるものとなる。
また、リンク距離は、接続されるノード同士の関係性に応じて異なっていてもよい。例えば、紺色、青色がノードデータとして存在した場合、それらは相互に強い正の関係性をもっていると考えられる一方、青色と赤色がノードデータとして存在した場合、それらは相互に強い負の関係性をもっていると考えられる。部分グラフ生成部215では、接続されるノード同士の関係性に応じて、当該ノード同士を接続するリンクのリンク距離を異ならせることができる。
【0084】
図9及び図10は、ノード抽出処理の第2例を示している。
第2の例においては、基準ノード選択部222によって複数の基準ノードが選択されると(ステップS21)、抽出部223は、複数の基準ノードからの経路長(最短経路上のリンク長又はホップ数の総和)が所定値以下であるノードからなる局所グラフデータを特定する(ステップS22)。
【0085】
例えば、図10では、第1基準ノードからの経路長(ここでは最短経路上のホップ数の総和)が3以下であるノードからなる第1局所グラフデータL1が図示のように特定され、第2基準ノードからの経路長(リンク数)が3以下であるノードからなる第2局所グラフデータL2が図示のように特定される。そして、第1及び第2局所グラフデータL1,L2を合わせたものを、複数の基準ノードに対応する局所グラフデータとして考える。
【0086】
続いて、抽出部223は、局所グラフデータLにおいて、2つの基準ノードの最短経路となるグラフ(最短経路グラフ)を抽出する。第2例では、グラフデータ全体ではなく、より小さい局所グラフデータLから最短経路グラフを抽出するため、最短経路探索のための処理負荷を低減することができる。第1例のように、最短経路グラフから中心ノードを求めても良いが、第2例では、局所ネットワークグラフデータLの各ノードと、最短経路グラフ上の各ノードとの経路長の平均値を求める。
【0087】
つまり、抽出部223は、局所ネットワークグラフデータLのあるノードについて、最短経路グラフ上の各ノードとの経路長の平均値を求める処理を行う。そして、当該処理を、局所ネットワークグラフデータLのすべてのノードについて行う。当該処理によって求めた経路長の平均値は、局所グラフデータにおける中心性を示しており、当該平均値が最も小さいノードは、局所ネットワークグラフデータLの中心にあるノード(中心ノード)といえる。この中心ノードは、複数の基準ノードの組み合わせに対して最も関連するノードである。また、当該処理によって求めた経路長の平均値が小さいほど、複数の基準ノードの組み合わせに対して関係性が高いノードである。
【0088】
抽出部223は、当該処理によって求めた経路長の平均値が所定値以下のノードを抽出する(ステップS23)。これにより、局所グラフデータLのあるノードのうち、複数の基準ノードの組み合わせに対して比較的関係性が高いノードが抽出されることになる。
なお、抽出部223は、局所ネットワークグラフデータLのあるノードについて、各ノードとの経路長の平均値を求める処理を行うのに代えて、次のような処理で平均値(中心性)を求めても良い。例えば、抽出部223は、局所ネットワークグラフデータLのあるノードについて、基準ノードからの経路長(最短経路上のリンク長あるいはホップ数の総和)が所定の値以内のノードなど、基準ノード近傍の各ノードとの経路長の平均値を中心性として求めても良い。
【0089】
ノードが抽出されると、第1例と同様に、表示情報が生成され、端末装置6へ送信される(ステップS22)。
【0090】
以上のように、本実施形態では、複数の基準ノードの組み合わせに関連するノードの抽出の際に、複数の基準ノードそれぞれに関連するノードの集合の論理和又は論理積をとるのではなく、複数の基準ノードからみた中心性(第1例の中心ノードからの経路長、第2例の経路長の平均値)に基づいて、ノードを抽出する。
【0091】
つまり、本実施形態では、グラフデータ全体におけるグラフ中心ではなく、複数の基準ノードからみて中心に位置するノード(中心ノード)が最も優先して抽出される。したがって、関係性のあるノードが大量に抽出されても、中心ノードからの経路長などに基づいて、関係性の高いものを優先して表示することが可能である。
【0092】
[4.クラスタリング]
図11は、一部がクラスタリングされたグラフデータの表示例を示している。処理サーバ2は、データベース3に保存されているグラフデータに対して、データクラスタリングアルゴリズムを適用して、ノードのクラスタリングを行うクラスタリング処理を行うことができる。クラスタリング処理により、複数のノードがクラスター化されたクラスターノードとなる。クラスタリング処理を行うと、例えば、商品の分類を階層的に考えた場合、一つの大分類の下位に属する小分類における商品名を示す複数のノードが、当該大分類における商品名を示す一つのクラスターノードに統合されることになる。
【0093】
クラスターノードは、基準ノードを選択するため、又は、抽出ノードを選択するために、グラフデータを端末装置6に表示する際において表示可能である。また、基準ノードを選択するためにクラスターノードが端末装置6に表示されると、端末装置6においては、クラスターノードを、複数の基準ノードのうちの少なくともいずれか一つとして選択可能である。
【0094】
処理サーバ2では、クラスターノードが基準ノードとして選択されると、クラスターノードを通常のノードとみなして、前述のノード抽出処理を実行する。
【0095】
クラスターノードが基準ノードとして選択可能であることにより、個々のノードの上位概念を基準ノードとして特定できることになり、ユーザの関心が、個々のノードではなく、それらの上位概念にある場合に有利である。
【0096】
[5.付記]
なお、上記において開示した事項は、例示であって、本発明を限定するものではなく、様々な変形が可能である。
【符号の説明】
【0097】
1 関係性グラフデータベースシステム
2 処理サーバ
3 データベース
4 記憶部
5 コンピュータネットワーク
6 端末装置
21 第1処理部
22 第2処理部
211 情報取得部
212 ノード生成部
213 判定部
214 部分グラフ生成部
215 グラフ生成部
216 リンク消滅部
221 基準ノード選択情報受付部
222 基準ノード選択部
223 抽出部
224 表示制御部

【特許請求の範囲】
【請求項1】
ノードデータをリンクで接続したグラフデータを有するデータベースを管理する関係性グラフデータベースシステムであって、
コンピュータネットワークに接続した端末装置において行われた操作に対応するノードデータを生成するノード生成部と、
複数のノードデータをリンクで接続した部分グラフデータを生成する部分グラフ生成部と、
複数の部分グラフデータを合成することでグラフデータを生成し、生成されたグラフデータを前記データベースに記憶させるグラフ生成部と、
を備え、
前記ノード生成部は、前記端末装置において行われる複数種類の操作に対応して、複数種類のノードデータを生成可能であり、
前記部分グラフ生成部は、同一の端末装置において行われた複数の操作が所定の関係性を有する場合には、当該複数の操作に対応する複数のノードデータ同士をリンクで接続して部分グラフデータを生成し、
前記グラフ生成部は、
共通するノードデータを有する複数の部分グラフデータを当該共通するノードデータにおいてグラフ合成することでグラフデータを生成する、又は、
共通するノードデータを有する部分グラフデータとグラフデータとを、当該共通するノードデータにおいてグラフ合成することで、新たなグラフデータを生成する
ことを特徴とする関係性グラフデータベースシステム。
【請求項2】
前記所定の関係性には、複数の操作の時間間隔が所定時間以下であること、
が含まれる請求項1記載の関係性グラフデータベースシステム。
【請求項3】
前記所定の関係性には、複数の操作が、同一のトランザクション内において行われたこと、が含まれる請求項1又は2記載の関係性グラフデータベースシステム。
【請求項4】
前記グラフ生成部は、前記部分グラフ又は前記グラフ生成部によって生成されたグラフデータを、グラフデータを生成することができる他のシステムによって生成された他のグラフデータと合成する
請求項1〜3のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項5】
前記部分グラフ生成部は、同一の端末において行われた複数の操作が所定の関係性を有する場合には、当該複数の操作に対応する複数のノードデータ同士が、同一種類であるか異なる種類であるかを問わず、リンクで接続して部分グラフデータを生成する
請求項1〜4のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項6】
前記ノード生成部は、前記端末装置の位置情報に基づいて、位置に対応するノードデータを生成可能であり、
前記部分グラフ生成部は、位置に対応するノードデータと操作に対応するノードデータとが、所定の関係性を有する場合には、位置に対応するノードデータと操作に対応するノードデータとをリンクで接続して部分グラフデータを生成する
請求項1〜5のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項7】
前記部分グラフ生成部は、前記リンクの生成に関するリンク情報をも生成する
請求項1〜6のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項8】
前記グラフ生成部は、共通するノードデータ対の間のリンクそれぞれを維持しつつ、当該ノードデータ対においてグラフ合成を行う
請求項1〜7のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項9】
前記グラフ生成部は、共通するノードデータ対の間のリンクそれぞれを一本のリンクに合成しつつ、当該ノード対においてグラフ合成を行う
請求項1〜7のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項10】
前記データベースに記憶されたグラフデータのリンクを消滅させるリンク消滅部をさらに備える
請求項1〜9のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項11】
前記リンク消滅部は、前記データベースに記憶されたグラフデータのリンクのリンク距離を時間経過に応じて長くし、リンク距離が所定の長さになるとリンクを消滅させる
請求項10記載の関係性グラフデータベースシステム。
【請求項12】
前記ノードデータ生成部によってノードデータが生成される操作は、前記端末装置において行われる商品購入操作、前記端末装置において行われるWebサイト表示操作、前記端末装置において行われるコンテンツ閲覧操作のうちの少なくともいずれか一つを含む
請求項1〜11のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項13】
前記端末装置からの入力に基づいて、前記グラフデータに含まれるノードデータの中から、複数の基準ノードデータを選択する基準ノード選択部と、
複数の基準ノードからみた中心性に基づいて、前記グラフデータからノードデータを抽出する抽出部と、
を更に備える請求項1〜12のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項14】
前記抽出部は、複数の基準ノードデータそれぞれからみて中心にあるノードデータを中心ノードデータとして選択し、中心ノードデータからの経路長に基づいて、前記グラフデータからノードデータを抽出する
請求項13記載の関係性グラフデータベースシステム。
【請求項15】
前記抽出部は、前記グラフデータから、複数の基準ノードデータからの経路長が所定値以下であるノードデータからなる局所グラフデータを特定し、前記局所グラフデータにおける中心性に基づいてノードデータを抽出する
請求項13記載の関係性グラフデータベースシステム。
【請求項16】
前記抽出部は、前記局所グラフデータにおいて複数の基準ノードデータを結ぶ最短経路上のノードデータそれぞれからの経路長から求められる中心性に基づいてノードデータを抽出する
請求項15記載の関係性グラフデータベースシステム。
【請求項17】
前記抽出部は、前記局所グラフデータにおいて複数の基準ノードデータ及び複数の基準ノードデータの近傍のノードデータそれぞれからの経路長から求められる中心性に基づいてノードデータを抽出する
請求項15記載の関係性グラフデータベースシステム。
【請求項18】
前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備える請求項11〜17のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項19】
前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備え、
前記表示制御部は、抽出された各ノードデータを、複数の基準ノードのうち、経路長が最も小さくなる基準ノードの付近に集中させて表示させる
請求項13〜17のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項20】
前記抽出部によって抽出されたノードデータを前記端末装置に表示させる表示制御部を更に備え、
前記表示制御部は、抽出されたノードデータを、複数の基準ノードデータそれぞれからみた中心性に基づいて、中心性の高さを識別可能に表示する
請求項13〜17のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項21】
前記グラフのノードデータ対の間のリンクの数が多いほど当該ノードデータ対の間のリンク距離が小さいものとみなして経路長を求める
請求項13〜20のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項22】
基準ノードデータとして選択されることが予測される複数のノードデータの組み合わせについて、前記抽出部におけるノードデータの抽出の処理の一部又は全部を予め実行した処理結果を記憶する記憶部を更に備え、
複数の基準ノードデータが実際に選択されると、前記抽出部は、前記記憶部に記憶されている処理結果を用いて、ノードデータの抽出を行う
請求項13〜21のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項23】
前記基準ノード選択部は、複数のノードデータを一つのノードデータとみなして、基準ノードデータの一つとして選択可能であり、
一つのノードデータとみなされる複数のノードデータは、前記ネットワーク型データに含まれる複数のノードデータのち、クラスタリング処理によってクラスター化された複数のノードデータである
請求項13〜22のいずれか1項に記載の関係性グラフデータベースシステム。
【請求項24】
コンピュータを、請求項1〜23のいずれか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


【公開番号】特開2013−45326(P2013−45326A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−183392(P2011−183392)
【出願日】平成23年8月25日(2011.8.25)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 電子情報通信学会2011年総合大会講演論文集(DVD)2011年2月28日発行
【出願人】(504132272)国立大学法人京都大学 (1,269)