JP2009134520A - ソーシャルネットワーク表示システム、方法、及びプログラム - Google Patents

ソーシャルネットワーク表示システム、方法、及びプログラム Download PDF

Info

Publication number
JP2009134520A
JP2009134520A JP2007310164A JP2007310164A JP2009134520A JP 2009134520 A JP2009134520 A JP 2009134520A JP 2007310164 A JP2007310164 A JP 2007310164A JP 2007310164 A JP2007310164 A JP 2007310164A JP 2009134520 A JP2009134520 A JP 2009134520A
Authority
JP
Japan
Prior art keywords
node
thesaurus
nodes
unit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2007310164A
Other languages
English (en)
Inventor
Mitsugi Miura
貢 三浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007310164A priority Critical patent/JP2009134520A/ja
Publication of JP2009134520A publication Critical patent/JP2009134520A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ソーシャルネットワークを高速に描画することが可能なネットワーク表示システムを提供すること。
【解決手段】複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類する分類部と、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録する構成部と、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算する計算部と、計算部が計算するノードグループのグラフレイアウトを表示する出力部とを備える。
【選択図】図1

Description

本発明は、ソーシャルネットワークの可視化に関する。
グラフ(以下、ネットワーク)構造とは、ノードとリンクで構成される集合である。
ノードとは、ネットワークを構成する各構成要素である。ノードは、例えば、鉄道網であれば駅であり、通信網であれば通信装置である。リンクとは、ノードとノードを接続する接続関係である。リンクは、例えば、鉄道網であれば駅と駅を結ぶ線路であり、通信網であれば通信装置と通信装置を接続する光ファイバーである。多数のノード間が多数のリンクによって接続されていくことで、より大規模なネットワークが構成される。
従来から、ネットワークを可視化(視覚化)したいという要求がある。ネットワーク構造を可視化するためのアルゴリズムをグラフレイアウトアルゴリズムと呼ぶ。グラフレイアウトアルゴリズムとして著名なものに、バネモデルアルゴリズム(非特許文献1)、KK(Kamada−Kawai)アルゴリズム(非特許文献2)、GEMアルゴリズム(非特許文献3)、擬似焼きなまし法(非特許文献4)などがある。これらのアルゴリズムは、力学作用を計算モデルと仮想し、物理的な安定状態を計算することにより解を求める手法である。このような手法は、Force Directed Method(または力学的モデル手法、力学指向的手法)と呼ばれる。
コンピュータによるネットワークの可視化には膨大な時間を要する。n個のノードからなるネットワークを最適にレイアウトする問題は、NP問題と等価であると考えられており、コンピュータによる計算処理が困難である。前述した、Force Directed Methodによるアルゴリズムを用いた場合においても、ノード数が増加すると膨大な計算処理が必要となる。
そのため、大規模なソーシャルネットワークをコンピュータによって可視化するような場合には問題がある。近年、インターネット上でソーシャルネットワークサービスが提供されている。ソーシャルネットワークサービスには、数万から数十万という非常に多数の人間が参加している。ソーシャルネットワークにおけるノードはそれぞれの参加者であり、そのネットワークの規模は非常に膨大である。そのため、グラフレイアウトアルゴリズムによってソーシャルネットワークの可視化を試みると、その計算処理には膨大な時間を要するという問題がある。また、計算処理に膨大な時間を要するため、ユーザーの観点に合わせてソーシャルネットワークを適宜表示しようする場合、システムの応答性能が著しく低下して、結果としてユーザーの利便性が損なわれるという問題がある。
特許文献1は、ネットワークの構造的特長を分かりやすく伝えることができるリンク関係表示装置を開示している。特許文献1のリンク関係表示装置は、それぞれ少なくとも一つのノードを含む第1ノード群と第2ノード群のいずれかを主ノード群、他方を従ノード群として設定する手段と、設定した従ノード群に含まれる各ノードのうち、リンク先の主ノード群中のノードが同一である割合を示すリンク一致度があらかじめ定められた閾値を上回るノードを縮約表示対象ノード群としてそれぞれ抽出する手段と、抽出した縮約表示対象ノード群についてそれぞれの代表位置座標を決定する手段と、決定した代表座標位置の近傍に、対応する縮約表示対象ノード群をそれぞれ表示する表示手段とを含む。
また、特許文献2は、順回路の存在するパスウェイと順回路の存在しないパスウェイとが混在する有向グラフにおいて、簡易な方法で効率的にグラフレイアウトを行うことができる有向グラフレイアウト装置を開示している。特許文献2の有向グラフレイアウト装置は、ノードと有向エッジ(リンク)とにより構成される有向グラフを自動レイアウトする有向グラフレイアウト装置において、ノード毎に接続される有向エッジを単位ベクトルとして全ての当該単位ベクトルの合成ベクトルを生成する合成ベクトル生成手段と、有向エッジの接続先のノードに対して合成ベクトル生成手段にて生成された合成ベクトルと単位ベクトルとの角度を小さくする方向でかつ単位ベクトルと垂直方向に角度補正力を発生させる角度補正力発生手段と、全てのノードの角度補正力を合計してエネルギーを計算するエネルギー計算手段と、エネルギー計算手段にて計算されたエネルギーを最適化するようにノードの座標位置を変更する最適化制御手段とを備える。
また、特許文献3は、ソーシャルネットワークにおいて、ネットワーク要素の検索を迅速かつ的確に行うことが可能なネットワーク要素検索方法を開示している。特許文献3のネットワーク要素検索方法は、ソーシャルネットワークに登録されている二以上のネットワーク要素から一以上のネットワーク要素を検索するネットワーク要素検索方法であって、ネットワーク要素には、当該ネットワーク要素の特徴を示す一以上の属性が付与されており、ネットワーク要素に付与される属性の何れかを検索キーとして受け付け、受け付けた検索キーが示す属性が付与されているネットワーク要素を検索することを特徴とする。
特開2007−140843号公報 特開2003−196667号公報 特開2007−018415号公報 特開2002−351898号公報 P.Eades."A Heuristic for Graph Drawing", Congressus Numerantium,42, 149−160, 1984. T.Kamada and S.Kawai. "An Algorithm for Drawing General Undirected Graphs", Information Processing Letters, 31, 7−15, 1989. A.Frick, A.Ludwig, and H.Mehldau. "A Fast Adaptive Layout Algorithm for Undirected Graphs", Proc. Graph Drawing (GD’94), LNCS 894, 388−403,1994. R.Davidson and D.Harel. "Drawing Graphs Nicely Using Simulated Annealing",ACM Transaction on Graphics, 15(4), 301−331, 1996.
本発明の目的は、ソーシャルネットワークのグラフレイアウトを高速に描画することが可能なネットワーク表示システムを提供することである。
本発明のソーシャルネットワーク表示システムは、複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類する分類部と、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録する構成部と、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算する計算部と、計算部が計算するノードグループのグラフレイアウトを表示する出力部とを備える。
本発明のソーシャルネットワーク表示方法は、複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類するステップと、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録するステップと、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算するステップと、 計算部が計算するノードグループのグラフレイアウトを表示するステップとを備える。
本発明のプログラムは、上述のソーシャルネットワーク表示方法をコンピュータによって実現する。
本発明によれば、ソーシャルネットワークのグラフレイアウトを高速に描画することが可能なネットワーク表示システムを提供できる。
添付図面を参照して、本発明の実施例によるソーシャルネットワーク表示システムを以下に説明する。
[構成の説明]
始めに、本実施例におけるソーシャルネットワーク表示システム(以下、ネットワーク表示システム)の構成の説明をする。図1は、本実施例におけるネットワーク表示システムの機能ブロック図を示している。本実施例において、ネットワーク表示システムは、分類部51と、構成部52と、計算制御部53と、計算部54と、データ蓄積部55と、入力部56と、出力部57とを備える。
本実施例におけるネットワーク表示システムの分類部51と、構成部52と、計算制御部53と、計算部54と、データ蓄積部55と、入力部56と、出力部57は、図2に示すようなコンピュータにより実現される。図2のコンピュータは、処理部100、記憶部200、入力部300、出力部400、通信部500を備える。処理部100は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等で実現される。記憶部200は、RAM(Random Access Memory)やROM(Read Only Memory)等で実現される。入力部300は、キーボードやマウス等で実現される。本実施例において入力部300は、図1の入力部56である。出力部400は、液晶ディスプレイ等で実現される。本実施例において、出力部400は、図1の出力部57である。通信部500は、LAN(Local Area Netword)ポート等で実現される。処理部100と、記憶部200と、入力部300と、出力部400と、通信部500は、それぞれ電気的に接続されている。本実施例におけるネットワーク表示システムの分類部51と、構成部52と、計算制御部53と、計算部54と、データ蓄積部55の各機能は、記憶部200のRAMやROM等に保存された処理用プログラムを、処理部100のCPUやMPU等が実行することによって実現する。本実施例において、分類部51と、構成部52と、計算制御部53と、計算部54と、データ蓄積部55は、一つのコンピュータによって実現されてもよいし、複数のコンピュータによって実現されてもよい。複数のコンピュータによって実現される場合には、それぞれのコンピュータ間は、通信部500を通じて従来の通信技術によって接続され、その際には、例えばインターネットのようなネットワークを介して接続されてもよい。
次に、本実施例のネットワーク表示システムにおける、各構成部位の説明を行う。
始めに、分類部51について説明する。分類部51は、ネットワークに存在するノードの分類を行う。本実施例において、分類部51は、ノードに接続されるリンクに基づくリンクタイプよってノードの分類を行う。リンクタイプとは、ノードに接続されるリンク数とリンクの向きによる分類である。
本実施例において、ネットワーク表示システムが処理を行うネットワークは、例えば、ソーシャルネットワークのようなネットワークである。ソーシャルネットワークにおいて、ノードは、例えば人間である。また、その場合にリンクは、人間関係である。リンクの向きとは、ノードとノードの間にリンクを接続する場合に、どちらのノードからどちらのノードへリンクを張ったかを意味する。例えば、ソーシャルネットワークサービス(以下、SNS)のような場合に、人間(ノード)と人間(ノード)の間に人間関係(リンク)を構築するにあたり、どちらからどちらに紹介(接続)を行ったかといったような場合である。
図3は、ネットワーク表示システムに入力されたネットワークの例である。図3において、リンクタイプは、Type1に示すようなノードへの流入リンク(以下、Inputリンク)が0で、流出リンク(以下、Outputリンク)が1のリンクや、Type2に示すような、Inputリンクは条件無し(以下、any)、Outputリンクが1のリンク、のように分類される。なお、リンクタイプの分類方法はこの例に限らない。また、本実施例において分類部51は、ノードに接続されるリンクの本数に基づくリンクタイプによってノードを分類している。しかし、分類部51によるノードの分類の方法はこれに限らない。例えば、各ノードに属性情報を付与して、属性情報基づいて分類する等してもよい。
次に、構成部52について説明する。構成部52は、分類部51が分類したノードの分類に基づいてシソーラスを構成し、ノードの縮約を行う。本実施例において、構成部52はリンクタイプに基づいてシソーラスを構成し、ノードの縮約を行う。
シソーラスとは、ネットワーク内のいくつかのノードをまとめたノードグループである。構成部52は、ネットワーク内にシソーラスを構成し、ノードをシソーラスに登録することでノードを縮約し、ネットワークをシソーラスの集合として階層化する。
図4を用いて、構成部52がシソーラスを構成することによる、ノードの縮約とネットワークの階層化について説明をする。図4は、バネモデルで表されたネットワークにおける、シソーラスの構成とノードの縮約の例を示している。図4のネットワークにおいて、重りがノードであり、バネがリンクである。図4のネットワークは、シソーラス1aからシソーラス4aの4つのシソーラスを保有している。シソーラス4aは、このネットワークにおける最上位のシソーラスである。シソーラス4aには、ノード1aからノード5aが登録されている。ノード5aは、シソーラス4aの下位のシソーラスであるシソーラス3aの代表のノードである。ノード5aをシソーラス3aの最上位ノードと呼ぶ。シソーラス4aにおいて、シソーラス3aはノード5aに集約されている。この場合、シソーラス3aは、シソーラス4aの下位シソーラスであり、逆にシソーラス4aはシソーラス3aの上位ノードである。
次に、シソーラス3aには、ノード5aからノード9aが登録されている。シソーラス4aにおいて、シソーラス3aはノードに集約表示がされているが、シソーラス3aにおいては、シソーラス3aに登録されているノード5aからノード9aの全てが表示されている。ノード6aは、シソーラス3aの下位のシソーラスであるシソーラス1aの代表のノードである。つまり、ノード6aは、シソーラス3aの最上位ノードである。同様にノード7aは、シソーラス3aの下位のシソーラスであるシソーラス2aの代表のノードである。つまり、ノード7a、シソーラス2aの最上位ノードである。シソーラス3aにおいて、シソーラス1aはノード6aに集約されている。同様に、シソーラス3aにおいて、シソーラス2aはノード5aに集約されている。シソーラス1aおよびシソーラス2aは、シソーラス3aの下位シソーラスであり、シソーラス3aは、シソーラス1a及びシソーラス2aの上位シソーラスである。このように、図4のネットワークは、複数のノードで構成されるシソーラス毎に階層をなしており、上位シソーラスにおいて、下位シソーラスは、当該下位シソーラスの最上位ノードに集約される。
次に、図4を用いて、構成部52によるシソーラスの構成方法の例について説明する。まず、構成部52は、ノード10aのリンクタイプに基づいて、ノード6aを最上位ノードとするシソーラス1aを構成する。構成部52は、ノード10aをシソーラス1aに登録する。これによってノード10aはシソーラス1aに属す。
同様に、構成部52は、ノード11aのリンクタイプに基づいて、ノード7aを最上位とするシソーラス2aを構成する。構成部52は、ノード11aをシソーラス2aに登録する。構成部52aは、ノード12a、ノード13aのリンクタイプに基づいて、ノード12a、ノード13aをシソーラス2aへ登録する。これによって、ノード11aからノード13aは、シソーラス2aへ属す。
次に、構成部52は、ノード6aのリンクタイプに基づいて、ノード5aを最上位ノードとするシソーラス3aを構成する。構成部52aは、ノード6aをシソーラス3aに登録する。同時に構成部52は、シソーラス1aをシソーラス3aに登録する。これによりノード6aは、シソーラス3aに属し、シソーラス1aは、シソーラス3aの下位シソーラスに属す。同様に、構成部52は、シソーラス2aの最上位ノードであるノード7aのリンクタイプに基づいて、ノード7aをシソーラス3aに登録する。同時に構成部52は、シソーラス2aをシソーラス3aに登録する。これによりノード7aは、シソーラス3aに属し、シソーラス2aは、シソーラス3aの下位シソーラスに属す。続いて、構成部52は、ノード8a、ノード9aのそれぞれのリンク状態に基づいて、ノード8a、ノード9aをそれぞれシソーラス3aへ登録する。これによりノード8aとノード9aは、シソーラス3aに属す。以上の処理によって、シソーラス3aには、ノード5aからノード9aのノードが登録される。同時にシソーラス1a及びシソーラス2aは、シソーラス3aの下位シソーラスとして登録される。前述のとおり、シソーラス3aにおいて、シソーラス1aは、ノード6aの集約される。同様に、シソーラス3aにおいて、シソーラス2aは、ノード7aに集約される。構成部52は、このような処理を繰り返すことで、シソーラス1aからシソーラス4aまでを構成し、図4のネットワークを複数のシソーラスの集合として階層化する。
シソーラス3aのグラフレイアウトにおいて、シソーラス1aは、ノード6aに縮約されているためレイアウトされない。シソーラス1aがレイアウトされないため、ノード10aもレイアウトされない。シソーラス1aが存在することは、例えばノード6aが、シソーラスを有していない他ノードと大きさや色によって判別できるように明示される。
同様に、シソーラス3aのグラフレイアウトにおいて、シソーラス2aは、ノード7aに縮約されているためのレイアウトされない。シソーラス2aがレイアウトされないため、ノード11aからノード13aもレイアウトはされない。シソーラス2aが存在することは、ノード7aが、シソーラスを有していない他ノードと大きさや色によって判別できるよう明示される。構成部52は、シソーラス1a及びシソーラス2aを、それぞれに対して表示するように命令が入力されて初めてグラフレイアウトする。このように、構成部52は、シソーラス1a及びシソーラス2aを、シソーラス3aの下位シソーラスとして階層化する。以上が、構成部52がシソーラスを構成することによる、ノードの縮約とネットワークの階層化の説明である。
次に計算制御部53について説明する。計算制御部53は、ユーザーからのネットワーク表示命令に基づいて、ネットワークのノードデータと、リンクデータと、構成部52が構成したシソーラスデータのうちから、当該ネットワーク表示命令によるネットワークの表示に必要となるデータを抽出して計算部54へ出力する。計算制御部53は、シソーラスを構成していないネットワークとは別に、シソーラスデータによって階層化されたネットワークを仮想的に形成する機能を有している。例えば、図4において、全てのノードデータとリンクデータに基づいて(ノード1aからノード13aまで全てのデータに基づいて)、ネットワーク全体のグラフレイアウトを計算しようとすると、計算処理が多くなり応答速度が低下する。計算制御部53は、構成部52によって構成されたシソーラスデータを用いて、階層化されたネットワークのグラフレイアウトを計算する。例えば、シソーラス4aに登録されている、ノード1aからノード5aまでのデータに基づいてグラフレイアウトを計算する。
図4を参照して、計算制御部53のデータの抽出方法について説明する。まず、計算制御部53は、ユーザーからのネットワーク表示命令に基づいて、シソーラス4aをグラフレイアウトするように、シソーラス4aのデータを抽出して計算部54へ出力する。この場合、計算部54によって出力部57へ出力されるグラフレイアウトでは、シソーラス4aに存在するノードのみ(ノード1aからノード5a)しかレイアウトされない。シソーラス4aのグラフレイアウトでは、ノード5aに下位シソーラスの存在がわかるように明示する。図4において、ノード5aは、他ノードより大きく表示されている。これによって、ユーザーはノード5aの下位シソーラスが存在することを確認できる。なお、下位シソーラスの明示方法はこれに限定しない。例えば、下位シソーラスを持つノードの色に変化を持たせてもよい。
ユーザーが下位のシソーラスの存在を確認し、下位のシソーラスをグラフレイアウトするよう下位シソーラスのネットワーク表示命令を入力部56へ入力する。例えば、ユーザーが、ノード5aを選択して下位シソーラスのネットワーク表示命令を入力したとする。計算制御部53は、下位シソーラスのネットワーク表示命令に基づいて、シソーラス3aをグラフレイアウトするように、シソーラス3aのデータを抽出して計算部54へ出力する。この場合、計算部54によって計算されるグラフレイアウトでは、シソーラス3aに存在するノードがレイアウトされる。なお、この場合のグラフレイアウトは、シソーラス4aとシソーラス3aを組み合わせたレイアウトとしてもよいし、シソーラス3aのみにクローズアップしたレイアウトとしてもよい。このようにして計算制御部53は、ユーザーからの命令に応じて、必要なデータを抽出する。
次に、計算部54についての説明をする。計算部54は、計算制御部53が出力したデータを入力して、グラフレイアウトを計算する。計算部54は計算したレイアウトをデータ蓄積部55へ出力する。本実施例において、計算部54がグラフレイアウトを計算するにあたっては、以下の2つの条件を満たすものであれば、グラフレイアウトアルゴリズムは限定しない。
(条件1)
バネモデルアルゴリズム(非特許文献1)、KK(Kamada−Kawai)アルゴリズム(非特許文献2)、GEMアルゴリズム(非特許文献3)、擬似焼きなまし法(非特許文献4)に代表されるForce Directed Methodに基づくアルゴリズムであること。
(条件2)
多項の要素に分解可能であるか、近似的に分解可能な全体エネルギーの数式モデルであること。(例として、KK(Kamada−Kawai)アルゴリズム(非特許文献2)におけるエネルギーの定義式を図5に示す。またKKアルゴリズムにおけるエネルギー定義式を分解した式を図6示す。)
各グラフレイアウトアルゴリズムにおけるグラフレイアウトの計算方法については、それぞれのグラフレイアウトアルゴリズムの文献を参照されたい。なお、Force Directed Methodとは異なるアルゴリズムとして、AGMアルゴリズム(特許文献4)等が存在する。
次に、データ蓄積部55についての説明をする。データ蓄積部55は、分類部51、構成部52、計算制御部53、計算部54がそれぞれ処理を行うためのデータと、処理を行った結果のデータを保存する。データ蓄積部55が保存するデータの詳細については後述する。また、データ蓄積部は、データ蓄積部55は、分類部51、構成部52、計算制御部53、計算部54が要求するデータを抽出し、それぞれの構成部位へ出力する。
次に、入力部56についての説明をする。入力部56は、外部からネットワーク表示システムへの入力をつかさどる。入力部56は、ユーザーからの命令を受け付ける。ユーザーからの命令には、例えば前述のネットワーク表示命令等がある。また、入力部56は、外部装置からのネットワークデータを受け付ける。外部から入力されるネットワークデータ等は、前述の通信部500を介して入力される。入力部56は、入力したネットワークデータをデータ蓄積部55へ出力する。
次に、出力部57は、計算部54が計算したグラフレイアウトを視覚的に表示する。また、ユーザーが各種命令を入力するためのユーザーインターフェイス(以下、UIF)等を表示する。本実施例において、ネットワーク表示システムとユーザーとのUIFは、従来の技術によるものであり特に限定はしない。
以上が、本実施例における構成の説明である。入力されたネットワークデータに対して、あらかじめ、分類部51は、ネットワークデータを分類する。構成部52は、分類部51が分類したネットワークデータに基づいてシソーラスを構成する。計算制御部53は、ユーザーのネットワーク表示命令に基づいて、構成部52が構成したシソーラス単位でデータを抽出して計算部54へグラフレイアウトを命令する。計算部54は、計算制御部53からのグラフレイアウト命令にもとづいて、シソーラス単位のデータからグラフレイアウトを計算する。
計算部54は、ネットワークデータに存在する全てのノードのデータに基づいてネットワークのグラフレイアウトを計算する場合に比べて演算量を減らすことができる。これによて、計算部54は、グラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。
また、構成部52が、ネットワークデータから、あらかじめシソーラスを構成しているため、ユーザーからの下位シソーラスのネットワーク表示命令に対しても、計算制御部53は、当該シソーラスに対応するデータのみを抽出することができる。これによって、計算部54は、下位シソーラスのグラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。そのため、出力部57へのグラフレイアウトの高速な描画(表示)が可能となる。
[動作方法の説明]
次に、本実施例の動作方法の説明を行う。本実施例において、ネットワーク表示システムの動作方法は、2つの段階を有する。第1段階の動作方法は、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを計算するまでの動作方法である。第2段階の動作方法は、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法である。なお、動作方法の説明において、説明内容の明示のために「項目」と「項目番号」を付与しているが、「項目番号」は、本実施例における動作順序を示しているものではない。動作方法の流れについては、後述する動作フローの説明のとおりである。
(第1段階の動作方法)
始めに、第1段階の動作方法について説明する。図7は、ネットワーク表示システムに入力されたネットワークの例を示している。本動作方法の説明において、このネットワークをネットワークAと呼ぶことにする。
1.ネットワークデータの保存
ネットワークAのネットワークデータは、ネットワーク表示システムの外部から通信部500を介してデータ蓄積部55へ入力される。データ蓄積部55は、ネットワークAのネットワークデータを内部のデータベースに保存する。ネットワークデータには、ネットワークAに存在する全てのノードとリンクのデータが含まれている。
図8は、データ蓄積部55が保存するネットワークAのノードデータベース(以下、ノードDB)の例である。図8のノードDBは、ネットワークAに存在する全てのノードのノードデータを記録している。図8のノードDBを説明する。ノードDBのデータ項目には、「Node_ID」、「Input_Link」、「Output_Link」、「Node質量」「接続Link_ID」が存在する。「Node_ID」は、ネットワークAに存在する全てのノードに対して割付けられたユニークなIDである。この「Node_ID」によって各ノードは識別される。「Input_Link」は、ネットワークAの各ノードに接続されるリンクのうち、当該ノードに流入してくるリンクの数である。「Output_Link」は、ネットワークAの各ノードに接続されるリンクのうち、当該ノードから流出していくリンクの数である。「Node質量」は、ネットワークAに存在するそれぞれのノード単体の質量である。この質量は、前述したForce Directed Methodに基づいて、計算部54がグラフレイアウトを計算する際に使用するために割付けた仮想の質量である。本実施例において、それぞれのノード単体の質量は全て均一である。図8において「Node質量」のデータを参照すると、全てのノードの質量が「10」で統一されていることが確認できる。なお、この質量の決定方法はこれに限定しない。「接続Link_ID」は、ネットワークAに存在するそれぞれのノードに接続されるリンクIDである。ネットワークAに存在する全てのリンクは、ノードと同様にユニークなIDを割付けられている。「接続Link_ID」は、当該ノードに接続されている全てのリンクのリンクIDを記録している。
図8を参照すると、例えば、Node_ID=1のノードは、Input_Link=2であることから、当該ノードに流入しているリンクが2あることがわかる。また、Node_ID=1のノードは、Output_Link=1であることから、当該ノードから流出するリンクが1あることがわかる。また、Node_ID=1のノードは、Node質量=10であることから、当該ノードの単体質量は10であることがわかる。また、Node_ID=1のノードは、接続Link_ID=7,9,14であることから、当該ノードには、Link_ID=7, Link_ID=9, Link_ID=14のリンクが接続されていることがわかる。当該ノードは、接続されているリンクの数が3であり、これはInput_Link=2とOutput_Link=1を合計した数と一致していることも確認できる。
図9は、データ蓄積部55が保存するネットワークAのリンクデータベース(リンクDB)の例である。図9のリンクDBは、ネットワークAに存在する全てのノード間を接続している全てのリンクデータを記録している。図9のリンクDBを説明する。リンクDBのデータ項目には、「Link_ID」、「Destination_Node_ID」、「Source_Node_ID」が存在する。「Link_ID」は、ネットワークAに存在する全てのリンクに対して割付けられたユニークなIDである。この「Link_ID」によって各リンクは識別される。ノードDBの「接続Link_ID」に記録されるのはこの「Link_ID」である。「Destination_Node_ID(以下。D_Node_ID)」は、当該リンクが流入するノードの「Node_ID」である。違う表現をすれば、当該リンクが指し示す先のノードの「Node_ID」である。「Source_Node_ID(以下、S_Node_ID)」は、当該リンクが流出するノードの「Node_ID」である。違う表現をすれば、当該リンクの出元のノードの「Node_ID」である。
図9を参照すると、例えば、Link_ID=14のリンクは、S_Node_ID=1でD_Node_ID=2である。このことからLink_ID=14のリンクは、ノード1から流出して、ノード2へ流入していることがわかる。なお、ノードDBとリンクDBのデータ項目はこれに限定しない。
2.ノードの分類
次に、分類部51は、ノード蓄積部5に保存されたネットワークAのネットワークデータに基づいて、ネットワークAに存在するノードを分類する。本実施例において、分類部51は、ネットワークAに存在する各ノードに接続されているリンクの数と向きに基づくリンクタイプによってノードを分類する。
分類部51が実行するノード分類処理は、データ蓄積部55へネットワークデータが新たに保存された時に実行される。あるいは、分類部51が実行するノード分類処理は、データ蓄積部55に保存されているネットワークデータが更新される度に実行されてもよい。この場合、分類部51は、データ蓄積部55のデータ保存状態を監視している。データ蓄積部55は、保存しているネットワークデータが更新されると、分類部51に対してデータ更新通知を出力する。分類部51は、データ蓄積部55からのデータ更新通知を受信することによって、データ蓄積部55に保存されたネットワークデータの更新を検知して、ノード分類処理を実行する。このように、データ蓄積部55のネットワークデータが更新される度に、分類部51はノード分類処理を実行する。また、ネットワークデータが新たに保存された場合にも、同様に、データ蓄積部55がデータ更新通知によって分類部51へ通知する動作方法としてもよい。これらによって、分類部51は、データ蓄積部55に保存されているネットワークデータが、常に最新の状態でノード分類処理を実行することができる。なお、分類部51のノード分類処理のトリガはこの方法に限定しない。ユーザーが入力部56へ入力する命令に基づいて実行する方法でも、ある一定の定められた時間や時刻によって実行する方法でもよい。
図10は、分類部51がノード分類処理を実行した後のデータ蓄積部55のノードDBの例を示している。図10を参照すると、図8のノードDBのデータ項目に加えて、「Link_Type_ID」がノードDBの項目として追加されていることが確認できる。本実施例において、分類部51がノードを分類するリンクタイプとは、この「Link_Type_ID」に記録された値である。分類部51は、ネットワークAに存在する各ノードに接続されるリンクの数に基づいて「Link_Type_ID」を計算する。本実施例において、分類部51は、それぞれのノードのInput_Link数に1,000を乗算してOutput_Link数と加算することによってLink_Type_IDを計算する。図10において、例えば、Node_ID=1は、Input_Link=2でOutput_Link=1であるので、「2×1000+1=2001」であり、Link_Type_ID=2001となる。このようにして分類部51は、全てのノードに対して、Inpput_Link数とOutput_Link数に基づいてLink_Type_IDを計算する。ネットワークAの全てのノードに対してLink_Type_IDを割付けることで、Link_Type_IDが同一のノードは、他のノードとのリンク状態が同一であることが判別できる。分類部51は、ネットワークAの全てのノードに対してLink_Type_IDを割付けると、ノードDBをデータ蓄積部55へ保存する。
なお、分類部51が実行するノード分類処理における、Link_Type_IDの割付けはこの方法に限定しない。さらに、分類部51が実行するノード分類処理は、リンクタイプによる分類に限定しない。例えば、ノードDBやリンクDBに他のデータ項目を設けることによって、そのデータ項目に基づいてノードを分類することも可能である。
3.シソーラスの構成
次に、構成部52は、分類部51が分類したノードの分類に基づいてシソーラスを構成する。本実施例において、構成部52は、分類部51が割付けた「Link_Type_ID」に基づいてシソーラス構成処理を実行する。
構成部52のシソーラス構成処理は、分類部のノード分類処理の完了後に実行する。分類部51はノード分類処理によって、ノードDBのNode_ID毎に「link_Type_ID」を割付ける処理が完了すると、データ蓄積部55へノードDBを保存する。分類部51は、構成部52へノード分類完了通知を出力する。構成部52は、分類部51が出力するノード分類完了通知を入力することで、分類部51のノード分類処理の完了を検知し、シソーラス構成処理を実行する。分類部51は、データ蓄積部55のネットワークデータが新たに保存される度に、あるいはネットワークデータが更新される度にノード分類処理を実行してもよい。構成部52は、分類部51がノード分類処理を完了する度にシソーラス構成処理を実行する。これによって、構成部52は、データ蓄積部55に保存されているネットワークAのネットワークデータが常に最新の状態でシソーラスを構成することができる。なお、構成部52のシソーラス構成処理のトリガはこの方法に限定しない。ユーザーが入力部56へ入力する命令に基づいて実行する方法でも、ある一定の定められた時間や時刻によって実行する方法でもよい。
3−1.縮約可能ノードの抽出
本実施例において、構成部52は、ネットワークAに存在する全てのノードのうち、「当該ノードへのリンクの流入が0で、当該ノードからのリンクの流出が1であるノードを対象にシソーラス構成処理を実行する(以下、ルール1)」とのルールに基づいてシソーラス構成処理を実行するものとする。なお、このルールについてはこれに限定しない。また、ルールの数は一つに限られず複数であってもよい。これらのルールは、ネットワークの構成に依存するため、あらかじめユーザーによって構成部52へ設定されている。または、ネットワークデータがデータ蓄積部55に入力される場合にルールも共に入力されてもよい。この場合は、構成部52がデータ蓄積部55からルールを読み込む動作方法となる。構成部52へのルールの設定方法はこれらの方法に限定しない。
構成部52は、ルール1に従ってネットワークAにシソーラス構成処理を実行可能なノードが存在するかを確認する。構成部52は、データ蓄積部55に保存されたノードDBを読み込む。構成部52は、ノードDBの「Link_Type_ID」に基づいて、シソーラス構成処理を実行可能なノードを抽出する。ルール1は、ノードDBのデータにおいて、Input_Link=0でかつOutput_Link=1のノードが対象となる。言い換えれば、ルール1が適用となるノードは、Link_Type_ID=0001であるということができる。構成部52は、ノードDBの中からLink_type_ID=0001のノードを抽出する。図11は、構成部52が図10に示すノードDBからLink_Type_ID=0001のノードを抽出したデータを示している。構成部52は、このようにノードDBからルールが適用となるノードを抽出してデータリストを作成する。本実施例において、このデータリストを、縮約可能ノードリストと呼ぶ。
3−2.シソーラスDB
次に、構成部52は、縮約可能ノードリストに基づいてシソーラスを構成し、縮約可能ノードリストに記載されたそれぞれのノードをシソーラスに登録して、ネットワークAを階層化していく。図12は、ネットワークAにおいて、縮約可能ノードリストの記載されたそれぞれのノードとシソーラスの関係を示している。図12を参照すると、図11の縮約可能ノードリストに記載されたノードから、6つのシソーラスが構成されることが確認できる。これらのシソーラスは、データ蓄積部55が保存するシソーラスデータベース(以下、シソーラスDB)に登録される。
図13は、データ蓄積部55が保存するシソーラスDBの例である。図13のシソーラスDBは、ネットワークAに存在する全てのシソーラスを記録している。図13のシソーラスDBを説明する。シソーラスDBのデータ項目には、「シソーラスID」、「最上位Node_ID」、「保有Node_ID」、「上位シソーラス_ID」、「下位シソーラス_ID」が存在する。「シソーラスID」は、ネットワークAに存在する全てのシソーラスに対して割付けられたユニークなIDである。この「シソーラスID」によって各シソーラスは識別される。なお、本実施例において、図12及び、後述する図15、図17、図18では、「ノードID」と区別するために「シソーラスID」の後ろに「t」を付与して表記する。「最上位Node_ID」は、当該シソーラスに登録されるノードの中で最上位に位置するノードを表している。本実施例において、最上位ノードは、当該シソーラスと、当該シソーラスの上位階層に位置するシソーラス(以下、上位シソーラス)に、唯一共に登録されるノードである。当該シソーラスのグラフレイアウトにおいて、上位シソーラスのグラフレイアウトにおいて、当該シソーラスは最上位ノードに縮約されるものとして、最上位ノード以外の当該シソーラスに存在するノードは表示されない。つまり、当該シソーラスの上位シソーラスにおいて、グラフレイアウトされるのは最上位ノードのみである。
例えば、図12のシソーラス3(図12上は「t」を付与して「3t」と表記、以下、図12上の他のシソーラスIDにおいて同じ。)において、最上位ノードはノード5である。シソーラス3の上位シソーラスのグラフレイアウトにおいて、ノード7からノード9は表示されず、ノード5のみが表示されることになる。「保有Node_ID」は、当該シソーラスに登録された全てのノードのNode_IDである。「上位シソーラスID」は、当該シソーラスの最上位ノードが登録されている上位シソーラスの「シソーラスID」である。上位シソーラスと、当該シソーラスの双方には、当該シソーラスの最上位ノードが登録されている。当該シソーラスの最上位ノードは、上位シソーラスとの階層の境目となる。「下位シソーラスID」は、当該シソーラスの最上位ノード以外のノードが保有する、当該シソーラスの下位階層に位置するシソーラスである下位シソーラスのシソーラスIDである。当該シソーラスの最上位ノード以外のノードは、下位シソーラスの最上位ノードである可能性がある。
図13を参照すると、シソーラスID=3のシソーラスは、最上位Node_IDの欄より、最上位ノードがNode_ID=5のノードであることが確認できる。また、保有Node_ID欄より、Node_ID=7,8,9の3つのノードが登録されていることが確認できる。さらに、上位シソーラスIDと下位シソーラスIDの欄より、上位シソーラスは、シソーラスID=9であり、下位シソーラスは存在しないことが確認できる。
一方、シソーラスID=3の上位シソーラスにあたるシソーラスID=9のデータを参照すると、最上位Node_IDの欄より、最上位ノードは、Node_ID=3であることが確認できる。また、保有Node_IDの欄より、Node_ID=5,6が登録されていることが確認できる。さらに、下位シソーラスIDの欄より、下位シソーラスにシソーラスID=3,4が登録されていることが確認できる。つまり、前述のシソーラスID=3におけるNode_ID=5の最上位ノードは、Node_ID=3を最上位ノードとするシソーラスID=9に登録されていることが確認できる。これによって、シソーラスID=3は、ノードID=5を階層の境として、シソーラスID=9の下位シソーラスとして登録されていることになる。
3−3.シソーラス構成処理
構成部52は、縮約可能ノードリストに基づいて、順にシソーラス構成処理を行う。図12におけるシソーラス3を例にして、構成部52が行うシソーラス構成処理を説明する。まず、構成部52は、縮約可能ノードリスト(図11)を参照して、最初に処理を行うべきノードがNode_ID=7であることを特定する。次に、構成部52は、縮約可能ノードリストの接続Link_ID欄を参照して、Node_ID=7に接続されているリンクがLink_ID=24であることを特定する。次に、構成部52は、リンクDB(図9)を検索してLink_ID=24のデータを特定する。次に、構成部52は、リンクDBのLink_ID=24のデータにおいて、D_Node_ID欄からLink_ID=24が指し示す先は、Node_ID=5であることを特定する。ここで、構成部52は、Node_ID=7が、Node_ID=5の下位に位置することを特定する。
構成部52は、シソーラスDB(図13)を参照して、Node_ID=5を最上位ノードとするシソーラスが存在するかを検索する。(この時点ではシソーラス3は、まだ構成されていないものとする。)構成部52は、Node_ID=5を最上位ノードとするシソーラスが存在しないことを検知する。また、構成部52は、シソーラスDBにおいて、この時点で構成されているシソーラスがシソーラスID=2までであることを検知する。
次に、構成部52は、Node_ID=5を最上位ノードとするシソーラス3を構成する。構成部52は、シソーラスDBにシソーラスID=3のデータを記録する。これと同時に構成部52は、シソーラスID=3のレコードにおいて、最上位Node_IDの欄にNode_ID=5を記録する。次に、構成部52は、シソーラス3にNode_ID=7のノードを登録する。構成部52は、シソーラスID=3のレコードにおいて、保有Node_IDの欄にNode_ID=7を記録する。これによって、シソーラスDB上でNode_ID=7は、Node_ID=5を最上位とするシソーラスID=3に登録された。
次に、構成部52は、ノード7がシソーラス3に登録されたことをノードDB上に登録する。図14は、構成部52が、ネットワークAに存在するノードとシソーラスの関係を登録した後のノードDBの例を示している。図14を参照すると、ノードDBには、「上位シソーラスID」、「上位シソーラスでの質量」、「下位シソーラスID」のデータ項目が追加されている。「上位シソーラスID」は、当該ノードが登録された上位シソーラスのシソーラスIDである。「上位シソーラスID」に、シソーラスIDが記録されていることで、当該ノードは、当該シソーラスIDの上位シソーラスに登録されていることになる。「下位シソーラスID」は、当該ノードが、最上位ノードとして登録されているシソーラスが存在する場合に記録される。「下位シソーラスID」に、シソーラスIDが記録されることで、当該ノードは、当該ノードを最上位ノードとする下位シソーラスを有することになる。この場合、「上位シソーラスID」のシソーラスにおいて、「下位シソーラスID」のシソーラスは、当該ノードに縮約されてグラフレイアウトされる。「上位シソーラスでの質量」は、所属シソーラスにおいて、当該ノードが当該ノードの保有シソーラスに存在するノードを縮約してレイアウトされる場合の質量である。当該ノードが、当該ノードを最上位ノードとして登録される保有シソーラスを有する場合、その所属シソーラスにおいて、保有シソーラスは当該ノードに縮約表示されることとなる。この場合、当該ノードは、保有シソーラスに登録されている全てのノードの質量を有する。
図14において、Node_ID=7は、シソーラスID=3に登録されたため、構成部52は、Node_Id=7の「上位シソーラスID」の欄に上位シソーラスID=3を記録する。次に、構成部52は、Node_ID=5の「下位シソーラスID」の欄に下位シソーラスID=3を記録する。さらに、構成部52は、Node_ID=5の「上位シソーラスでの質量」の欄に、20を記録する。構成部52は、保有シソーラスに存在するノードの「Node質量」の合計を「上位シソーラスでの質量」に記録する。この例の場合、この時点でシソーラスID=3には、Node=ID=3と5の二つのノードが存在するため、Node_ID=3の「Node質量」である10と、Node_ID=5の「Node質量」である10を合計した20を、Node_ID=5の「上位シソーラスでの質量」の欄に記録する。なお、「上位シソーラスでの質量」の計算方法は、これに限定しない。「上位シソーラスでの質量」の計算方法は、例えばノード間にリンクの相互参照が存在する場合等、ネットワークの構成にも依存して調整する。
次に、構成部52は、ノード7の縮約に伴い、ノード7とノード5を接続するリンク24を削除する。図15は、シソーラス構成処理にともなって、縮約したノードのリンクが削除されたリンクDBの例を示している。具体的には構成部52は、リンクDBの削除対象リンクに削除フラグを記録することで、当該リンクの削除処理をおこなう。図15を参照すると、リンクDBには、「削除フラグ」のデータ項目が追加されている。「削除フラグ」は、当該リンクがシソーラス構成処理に伴って削除されたことを意味する。ここでいう「削除」は、ネットワークAからの削除ではない。あくまでシソーラス構成処理上での削除を意味する。構成部52は、Link_ID=24のリンクの「削除フラグ」欄に削除フラグを意味する「d」を記録する。これによって、Link_ID=24は、シソーラス構成処理上で削除されたこととなる。
以上で、構成部52は、ネットワークAにおける、ノード7のシソーラス構成処理が完了する。構成部52は、縮約可能ノードリストを参照して、次に処理するべきノードを特定する。構成部52は、ノード7と同様に、ノード8、ノード9のシソーラス構成処理を行う。構成部52は、ノード10の処理に移ると、ノード6を最上位とするシソーラスが存在しないことを検知して、シソーラス4を構成する。その後、構成部52は、前述と同様にノード10、ノード11をシソーラス4へ登録する。
図16は、構成部52が図13の縮約可能ノードリストに記載されている全てのノードに対して、シソーラス構成処理を完了した後のネットワークAを示している。図16を参照すると、新たに「ルール1」によって縮約可能となるノードがシソーラスIDと共に示されている。構成部52は、シソーラス構成処理において、縮約したノード及び、削除フラグを立てたリンクを考慮して、ノードDB上で新たに縮約対象リストを作成する。図16に示すとおり、構成部52は、シソーラス7(図16上は「t」を付与して「7t」と表記、以下、図16上の他のシソーラスIDにおいて同じ。)からシソーラス11を構成して、それぞれのシソーラスに含まれるノードを登録する。
図17は、シソーラス7からシソーラス11までシソーラス構成処理が完了した後のネットワークAを示している。図17を参照すると、さらに「ルール1」で縮約可能なノードが存在することが確認できる。構成部52は、さらにシソーラス10(図17上は「t」を付与して「10t」と表記、以下、図17上の他のシソーラスIDにおいて同じ。)とシソーラス11を構成して、それぞれのシソーラスに含まれるノードを登録して縮約する。構成部52は、このようにして、縮約対象となるノードが存在しなくなるまでシソーラス構成処理を繰り返す。
3−4.最終形態のシソーラス登録
図18は、このようにして、構成部52が「ルール1」によって縮約可能なノードに対してシソーラス構成処理を繰り返して到達したネットワークAの最終形態である。構成部52は、この最終形態をシソーラスID=0(図18上は「t」を付与して「0t」と表記。)としてシソーラスDBに登録する。シソーラスID=0はネットワークAにおける最上位のシソーラスである。シソーラスID=0のシソーラスの最上位Node_IDは、シソーラスID=0のシソーラスに登録されるいずれのノードでもかまわない。本実施例において、構成部52は、シソーラスID=0のシソーラスの最上位Nodeは、Node_ID=22を登録する。また、構成部52は、シソーラスID=0のシソーラスに登録したノードのうち、下位シソーラスにおいて最上位ノードであるNode_ID=1,3,13,22の下位シソーラスのシソーラスID=7,9,10,12を下位シソーラスIDの欄に記録する。同時にシソーラスID=7,9,10,12のデータにおいて、上位シソーラスIDの欄にシソーラスID=0を記録する。これによって、構成部52のシソーラス構成処理が完了する。図13のシソーラスDBを参照すると、図18に示すネットワークAの最終形態が、シソーラスID=0のデータとして登録されていることが確認できる。構成部52のシソーラス構成処理の結果は、ノードDB、リンクDB、シソーラスDBの全てに反映されて、データ蓄積部55へ保存されている。なお、本動作方法の説明における、構成部52のシソーラス構成処理の動作方法は一実施例でありこれに限定するものではない。
以上が、本発明の本実施例においての、動作方法の第1段階にあたる、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを記録するまでの動作方法である。この動作方法によって、あらかじめ、ネットワークA内に複数のシソーラスを構成することによって、ネットワークAを階層化することにより、後述するグラフレイアウトの計算においては、シソーラス単位でグラフレイアウトを計算することによって、計算部54の演算量を減らすことが可能となる。
(第2段階の動作方法)
次に、本発明の本実施例においての、第2段階の動作方法にあたる、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法を説明する。
1.ユーザーからの命令入力
まず、ユーザーが、入力部56へネットワーク表示命令を入力する。ネットワーク表示命令は、データ蓄積部55に保存されているネットワークが複数ある場合には、そのうちの一つを選択するものでもよい。また、シソーラスにより階層化されたノードのグラフレイアウトを出力する形式か、全てのノードのグラフレイアウトを出力する形式かを選択可能なものとしてもよい。本実施例において、入力部56におけるユーザーインターフェイスは、特に限定しない。なお、本説明においては、ユーザーはネットワークAを選択して、シソーラスにより階層化されたノードのグラフレイアウトを要求したものとする。入力部56は、ユーザーからのネットワーク表示命令の入力を検知し、計算制御部53へネットワーク表示命令を出力する。
2.ネットワークデータの抽出
計算制御部53は、入力部56が出力したネットワーク表示命令を入力する。計算制御部53は、ネットワークAのシソーラス0のデータを出力するよう、データ蓄積部55へデータ出力要求を出力する。
データ蓄積部55は、計算制御部53からのデータ出力要求を入力する。データ蓄積部55は、シソーラスDBを検索してシソーラスID=0のデータを特定する。データ蓄積部55は、シソーラスID=0のデータの保有Node_IDから、シソーラスID=0に登録されているノードのNode_IDを、「保有Node_ID」から特定する。図13のシソーラスDBを参照すると、シソーラスID=0には、Node_ID=1,2,3,4,13,14,22,28のノードが登録されていることが確認できる。
次に、データ蓄積部55は、ノードDBを参照して、Node_ID=1,2,3,4,13,14,22,28に接続されるリンクを「接続Link_ID」から特定する。図14のノードDBを参照すると、例えば、Node_ID=1には、Link_ID=7,9,14が接続されていることが確認できる。
次に、データ蓄積部55は、リンクDBを参照して、Node_ID=1,2,3,4,13,14,22,28に接続されているリンクの接続関係を「D_Node_ID」と「S_Node_ID」から特定する。図16のリンクDBを参照すると、例えば、Link_ID=7は、Node_ID=19から流出してNode_ID=1へ流入していることが確認できる。
データ蓄積部55は、シソーラス0のグラフレイアウトの計算に必要なデータをこのように特定し、ノードDB、リンクDB、シソーラスDBから抽出して、計算制御部53へ出力する。
3.グラフレイアウトの計算命令
計算制御部53は、データ蓄積部55が出力する、シソーラス0のグラフレイアウトの計算に必要なデータ入力する。計算制御部53は、計算部54へシソーラス0のグラフレイアウト計算命令を出力する。計算制御部53は、シソーラス0のグラフレイアウトの計算に必要なデータを、計算部54へ出力する。
4.グラフレイアウトの計算
計算部54は、計算制御部53からのグラフレイアウト計算命令を入力する。計算部54は、計算制御部53から、シソーラス0のグラフレイアウトの計算に必要なデータを入力する。計算部54は、前述したForce Directed Methodに基づくグラフレイアウトアルゴリズムを用いてシソーラス0のグラフレイアウトを計算する。本実施例において、計算部54が、グラフレイアウトの計算に用いるグラフレイアウトアルゴリズムは、以下の2つの条件を満たすものであれば、グラフレイアウトアルゴリズムは限定しない。
(条件1)
バネモデルアルゴリズム(非特許文献1)、KK(Kamada−Kawai)アルゴリズム(非特許文献2)、GEMアルゴリズム(非特許文献3)、擬似焼きなまし法(非特許文献4)に代表されるForce Directed Methodに基づくアルゴリズムであること。
(条件2)
多項の要素に分解可能であるか、近似的に分解可能な全体エネルギーの数式モデルであること。(例として、KK(Kamada−Kawai)アルゴリズム(非特許文献2)におけるエネルギーの定義式を図5に示す。またKKアルゴリズムにおけるエネルギー定義式を分解した式を図6示す。)
各グラフレイアウトアルゴリズムにおけるグラフレイアウトの計算方法については、それぞれのグラフレイアウトアルゴリズムの文献を参照されたい。なお、Force Directed Methodとは異なるアルゴリズムとして、AGMアルゴリズム(特許文献4)等が存在する。
また、計算部54は、計算制御部53から受信したノードDBのデータのうち、当該ノードのデータにおいて、「下位シソーラスID」の欄にシソーラスIDの記録があるノードについては、グラフレイアウトアルゴリズムの計算処理において使用するノードの質量は、「上位シソーラスでの質量」の欄に記録されている質量を用いる。「下位シソーラスID」の欄にシソーラスIDの記録があるノードは、当該ノードの配下に下位シソーラスを保有している。そのため、「下位シソーラスID」の欄にシソーラスIDの記録があるノードは、下位シソーラスに登録されている他のノードの質量を集約した質量となっている。計算部54は、「下位シソーラスID」の欄にシソーラスIDの記録がないノードについては、ノードDBの「Node質量」の欄に記録された質量を用いてグラフレイアウトを計算する。
この、質量の差は、グラフレイアウトにおいて、ノードの大きさや、色に反映させてもよい。例えば、図4において、ノード6aとノード7aは、下位シソーラスを有しているが、下位シソーラスに登録されているノードの数量の差から、グラフレイアウトにおける大きさが異なっている。これによりユーザーは、ノードの大きさによって、下位シソーラスの存在と、下位シソーラスの規模を直感的に把握することが可能である。なお、ノードの質量とグラフレイアウトにおける表示方法については、この例に限定しない。
計算部54は、計算したシソーラス0のグラフレイアウトをデータ蓄積部55へ保存する。なお、本実施例において、グラフレイアウトの保存形式は特に限定せず、従来の技術によるものとする。計算部54が、計算したシソーラス0のグラフレイアウトの例は図18に示すとおりである。 構成部52が、シソーラス構成処理を実行した結果、ネットワークAの最終形態がシソーラス0である。図18に示すとおり、シソーラス0のグラフレイアウトを計算処理することにより、ネットワークAに存在する全てのノードのグラフレイアウトを計算処理する場合(図7を参照)に比べて、ノード数は約三分の一となっている。計算部54は、計算制御部53へ、シソーラス0のグラフレイアウト計算完了通知を出力する。
5.グラフレイアウトの表示
計算制御部53は、計算部54が出力するシソーラス0のグラフレイアウト計算完了通知を入力する。計算制御部53は、シソーラス0のグラフレイアウト計算完了を検知する。計算制御部53は、データ蓄積部55にシソーラス0のグラフレイアウトを要求する。データ蓄積部55は、シソーラス0のグラフレイアウトを計算制御部53へ出力する。
計算制御部53は、データ蓄積部55が出力したシソーラス0のグラフレイアウトを入力する。計算制御部53は、シソーラス0のグラフレイアウトを出力部57へ出力する。出力部57は、シソーラス0のグラフレイアウトを表示する。
以上が、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法である。なお、ユーザーによるネットワーク表示命令がネットワークAに存在するノードを指定するものであってもよい。その場合、当該ノードがいずれのシソーラスに登録されているかをノードDBのノードデータから特定し、その後の動作方法は、シソーラスを表示する動作方法と同様である。
本動作方法によって、ネットワークAの初期表示状態として、シソーラス0がグラフレイアウトされて出力部57へ表示される。構成部52があらかじめネットワークAをシソーラス構成処理によって階層化しているために、計算部54のグラフレイアウト計算処理においては、特定のシソーラスの範囲のみの計算処理を行うのみで足りるため、計算量を減らすことが可能となる。そのため、計算部54は高速にグラフレイアウトを行うことができる。
次に、シソーラス0のグラフレイアウトを確認したユーザーが、下位シソーラスの表示を要求した場合の動作方法を説明する。なお、上位シソーラスが存在する場合には、ユーザーが、上位シソーラスのを要求した場合の動作方法も同様となる。
6.ユーザーからの命令入力
ユーザーは、出力部57へ出力されたシソーラス0のグラフレイアウトを確認する。ユーザーは、出力されたグラフレイアウトにおける明示の表示によって、シソーラス0が下位のシソーラスを保有していることを検知する。ユーザーは入力部56へ下位シソーラス表示命令を入力する。本説明において、ユーザーはノード3を指定して、下位シソーラス表示命令を入力したものとする。下位シソーラス表示命令の入力は、出力部57に表示されているグラフレイアウトにおいて、下位シソーラスを保有するノードをポインタによって指定する形でもよい。本実施例において、下位シソーラス表示命令の入力方法については特に限定しない。
7.データの抽出
入力部56は、下位シソーラス表示命令の入力を検知する。入力部56は、下位シソーラス表示命令を計算制御部53へ出力する。計算制御部53は、下位シソーラス表示命令から、ユーザーがノード3の下位シソーラスの表示を要求していることを検知する。計算制御部53は、ネットワークAのノード3が保有するシソーラスのグラフレイアウトに必要なデータを出力するよう、データ蓄積部55へデータ出力要求を出力する。
データ蓄積部55は、計算制御部53が出力するデータ出力要求を入力する。データ蓄積部は、ノードDB(図14参照)を検索して、Node_ID=3のデータを特定する。データ蓄積部55は、ノードDBにおいて、Node_ID=3のデータの「下位シソーラスID」に記録されているデータから、Node_ID=3が保有するシソーラスを特定する。図14を参照すると、Node_ID=3は、シソーラスID=9を保有していることが確認できる。データ蓄積部55は、Node_ID=3は、シソーラスID=9を保有していると特定する。
次に、データ蓄積部55は、シソーラスDB(図13参照)を検索して、シソーラスID=9のデータを特定する。データ蓄積部55は、シソーラスDBにおいて、シソーラスID=9のデータの「保有Node_ID」に記録されているNode_IDから、シソーラスID=9に登録されているノードを特定する。図13を参照すると、シソーラスID=9には、Node_ID=5,6が登録されていることが確認できる。データ蓄積部55は、シソーラスID=9には、Node_ID=5,6が登録されていることを特定する。
次に、データ蓄積部55は、ノードDBを検索して、Node_ID=5,6のデータを特定する。データ蓄積部55は、ノードDBにおいて、Node_ID=5,6のデータの「接続Link_ID」に記録されているLink_IDから、Node_ID=5,6に接続されているリンクを特定する。図14を参照すると、例えば、Node_ID=5には、Link_ID=19,22,23,24が接続されていることが確認できる。データ蓄積部55は、Node_ID=5には、Link_ID=19,22,23,24が接続されていることを特定する。同様にデータ蓄積部55は、Node_ID=6に接続されているリンクも特定する。
次に、データ蓄積部55は、リンクDB(図16を参照)を検索して、Link_ID=19,22,23,24のリンクのデータを特定する。データ蓄積部55は、リンクDBにおいて、Link_ID=19,22,23,24の接続関係を特定する。図16を参照すると、例えば、Link_ID=19のリンクは、Node_ID=5のノードから流出して、Node_ID=3のノードへ流入していることが確認できる。データ蓄積部55は、Link_ID=19のリンクは、Node_ID=5のノードから流出してNode_ID=3のノードへ流入していることを特定する。同様にデータ蓄積部55は、Node_ID=5,6のノードに接続されているほかのリンクについても接続関係を特定する。データ蓄積部55は、このように特定したノード3が保有するシソーラス9のグラフレイアウトの計算に必要なデータをノードDB、リンクDB、シソーラスDBから抽出して、計算制御部53へ出力する。
8.グラフレイアウトの計算命令
計算制御部53は、データ蓄積部55からのシソーラス9のグラフレイアウトの計算に必要なデータ入力する。計算制御部53は、計算部54へシソーラス9のグラフレイアウト計算命令を出力する。計算制御部53は、シソーラス9のグラフレイアウトの計算に必要なデータを、計算部54へ出力する。
9.グラフレイアウトの計算
計算部54は、計算制御部53からのグラフレイアウト計算命令を入力する。計算部54は、計算制御部53から、シソーラス9のグラフレイアウトの計算に必要なデータを入力する。計算部54は、前述したForce Directed Methodに基づくグラフレイアウトアルゴリズムを用いてシソーラス9のグラフレイアウトを計算する。
計算部54は、計算制御部53から受信したノードDBのデータのうち、当該ノードのデータにおいて、「下位シソーラスID」の欄にシソーラスIDの記録があるノードについては、グラフレイアウトアルゴリズムの計算処理において使用するノードの質量は、「上位シソーラスでの質量」の欄に記録されている質量を用いる。「下位シソーラスID」の欄にシソーラスIDの記録があるノードは、当該ノードの配下に下位シソーラスを保有している。そのため、「下位シソーラスID」の欄にシソーラスIDの記録があるノードは、下位シソーラスに登録されている他のノードの質量を集約した質量となっている。
シソーラス9のグラフレイアウトを計算する場合、計算部54は、ノード3の質量を、ノードDBの「Node質量」に記録された質量=10を使用する。計算部54が、ノード3について、ノードDBの「Node質量」に記録された質量を使用するのは、ノード3にとってシソーラス9は所属シソーラスではないためである。また、計算部54は、ノード5及びノード6の質量を、ノードDBの「上位シソーラスでの質量」に記録された質量を使用する。つまり、計算部54は、ノード5の質量=40、ノード6の質量=30を使用する。計算部54が、ノード5及びノード6について、ノードDBの「上位シソーラスでの質量」に記録された質量を使用するのは、ノード5及びノード6にとってシソーラス9は所属シソーラスであるためである。このようにして、計算部54はグラフレイアウトを計算する対象となるシソーラスによって、計算に使用するノードの質量を変更する。これによって、Force Directed Methodに基づいたグラフレイアウトアルゴリズムによって、適切なグラフレイアウトを計算できる。計算部54は、計算したシソーラス9のグラフレイアウトをデータ蓄積部55へ保存する。計算部54は、計算制御部53へ、シソーラス9のグラフレイアウト計算完了通知を出力する。
10.グラフレイアウトの表示
計算制御部53は、計算部54が出力するシソーラス9のグラフレイアウト計算完了通知を入力する。計算制御部53は、シソーラス9のグラフレイアウト計算完了を検知する。計算制御部53は、データ蓄積部55にシソーラス9のグラフレイアウトを要求する。データ蓄積部55は、シソーラス9のグラフレイアウトを計算制御部53へ出力する。
計算制御部53は、データ蓄積部55が出力したシソーラス9のグラフレイアウトを入力する。計算制御部53は、シソーラス9のグラフレイアウトを出力部57へ出力する。出力部57は、シソーラス9のグラフレイアウトを表示する。
以上が、第2段階の動作方法である、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法である。この後さらにユーザーが下位シソーラスの表示を要求した場合についても、データ蓄積部55が同様に、ユーザーが指定したノードの保有するシソーラスをシソーラスDBから特定し、当該シソーラスに含まれるノードをノードDBから特定し、当該ノードに接続されるリンクをリンクDBから特定して、これらグラフレイアウトに必要なデータを計算制御部53へ出力する。
また、ユーザーによるネットワーク表示命令がシソーラス単位でなくノード単位でもよい。その場合も指定されたノードがいずれのシソーラスに属するのかをノードDBのどデータから特定し、その後はシソーラスを表示する動作方法と同様である。
このように、構成部52が、あらかじめネットワークA内にシソーラスを構成して階層化することによって、計算制御部53はシソーラス単位でネットワークデータを抽出することが可能になるため、計算部54は、ネットワークデータ全体をグラフレイアウトする場合に比べて、演算量を減らすことができ、高速にグラフレイアウトを計算できる。また、分類部51は、データ蓄積部55に保存されるネットワークデータが更新される度にノード分類処理を行い、それに伴って、構成部52がシソーラスを再度構成することによって、常に最新の状態でネットワークAをシソーラスによって階層化することができる。さらに、上位シソーラスにおいて下位シソーラスの最上位ノードに縮約された、下位シソーラスに登録される他のノードの質量は、最上位ノードに加算されて調整される。これによって上位シソーラスのグラフレイアウトにおいて、Force Directed Method に基づくグラフレイアウトアルゴリズムにより適切にグラフレイアウトを計算することができる。
[動作フローの説明]
次に、上述の動作方法を図19、図20を使用して説明する。
(第1段階の動作フロー)
まず、図19は、本発明の本実施例における第1段階の動作方法を示している。第1段階の動作方法は、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを作成するまでの動作方法である。
(ステップA01)
外部から入力部56を介してデータ蓄積部55へネットワークAのネットワークデータ(ノードDB、リンクDB)が入力される。(あるいはネットワークデータが更新される。)データ蓄積部55は、データ更新通知を分類部51へ出力する。
(ステップA02)
分類部51は、データ蓄積部55が出力したデータ更新通知を入力する。分類部51が、ネットワークAのネットワークデータ(ノードDB、リンクDB)を読み込む。
(ステップA03)
分類部51が、ノードに接続されるリンクの数に基づくリンクタイプによってノードを分類する。
(ステップA04)
構成部52は、シソーラス構成処理のルールに基づいて、縮約可能なノードを抽出する。
縮約可能なノードが存在する場合はステップA05へ進む。縮約可能なノードが存在しない場合はステップA07へ進む。
(ステップA05)
構成部52は、縮約可能ノードリストを作成する。
(ステップA06)
構成部52は、縮約可能ノードリストに従ってシソーラス構成処理を実行する。縮約可能ノードリストに記載された全てのノードに対してシソーラス構成処理が完了したら、新たな縮約可能ノードを抽出するためにステップA04へ戻る。
(ステップA07)
構成部52は、縮約可能ノードリストに基づいてシソーラス構成処理を繰り返すことによって、これ以上縮約することができない状態に到達したネットワークを、ネットワークAの最上位のシソーラスとしてデータ蓄積部55へ登録して、シソーラス構成処理を完了する。
以上が、第1段階の動作方法であり、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを作成するまでの動作方法である。
(第2段階の動作フロー)
次に、図20は、本発明の本実施例における第2段階の動作方法を示している。
第2段階の動作方法は、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法である。
(ステップB01)
入力部56が、ユーザーからのネットワーク表示命令を入力する。
(ステップB02)
計算制御部53が、データ蓄積部55へネットワークAの最上位シソーラスであるシソーラス0のデータ要求を出力する。
(ステップB03)
データ蓄積部55は、計算制御部53が出力するシソーラス0のデータ要求を入力する。データ蓄積部55は、ノードDB、リンクDB、シソーラスDBを検索し、シソーラス0のグラフレイアウトに必要なデータを抽出して、計算制御部53へ出力する。
(ステップB04)
計算制御部53は、データ蓄積部55が出力したシソーラス0のデータを入力する。計算制御部53は、シソーラス0のグラフレイアウトを計算するように、計算部54へグラフレイアウト計算命令を、シソーラス0のデータと共に出力する。
(ステップB05)
計算部54は、計算制御部53が出力するグラフレイアウト計算命令を、シソーラス0のデータと共に入力する。計算部54は、グラフレイアウトアルゴリズムに基づいて、シソーラス0のグラフレイアウトを計算する。計算部54は、計算したシソーラス0のグラフレイアウトをデータ蓄積部55へ保存する。計算部54は、グラフレイアウト計算完了通知を計算制御部53へ出力する。
(ステップB06)
計算制御部53は、計算部3が出力するグラフレイアウト計算完了通知を入力する。計算制御部53は、データ蓄積部55へシソーラス0のグラフレイアウトデータの出力を要求する。データ蓄積部55は、シソーラス0のグラフレイアウトデータを計算制御部53へ出力する。
計算制御部53は、データ蓄積部55が出力したシソーラス0のグラフレイアウトデータを入力する。計算制御部53は、シソーラス0のグラフレイアウトデータを出力部57へ出力する。
(ステップB07)
出力部57は、計算制御部53が出力する、シソーラス0のグラフレイアウトデータを入力する。出力部57は、シソーラス0のグラフレイアウトを表示する。
(ステップB08)
ユーザーから下位(上位)ネットワーク表示命令の入力があるかの判定。下位(上位)ネットワーク表示命令がある場合は、ステップB09へ進む。下位(上位)ネットワーク表示命令がない場合は、終了となる。
(ステップB09)
計算制御部53が、データ蓄積部55へ、ユーザーが入力した下位(上位)ネットワーク表示命令において指定された下位(上位)シソーラスのデータ要求を出力する。
(ステップB10)
データ蓄積部55は、計算制御部53が出力するデータ要求を入力する。データ蓄積部55は、ノードDB、リンクDB、シソーラスDBを検索し、下位(上位)シソーラスのグラフレイアウトに必要なデータを抽出して、計算制御部53へ出力する。
(ステップB11)
計算制御部53は、データ蓄積部55が出力した下位(上位)シソーラスのデータを入力する。計算制御部53は、下位(上位)シソーラスのグラフレイアウトを計算するように、計算部54へグラフレイアウト計算命令を、下位(上位)シソーラスのデータと共に出力する。
(ステップB12)
計算部54は、計算制御部53が出力するグラフレイアウト計算命令を、下位(上位)シソーラスのデータと共に入力する。計算部54は、グラフレイアウトアルゴリズムに基づいて、下位(上位)シソーラスのグラフレイアウトを計算する。計算部54は、計算した下位(上位)シソーラスのグラフレイアウトをデータ蓄積部55へ保存する。計算部54は、グラフレイアウト計算完了通知を計算制御部53へ出力する。
(ステップB13)
計算制御部53は、計算部3が出力するグラフレイアウト計算完了通知を入力する。計算制御部53は、データ蓄積部55へ下位(上位)シソーラスのグラフレイアウトデータの出力を要求する。データ蓄積部55は、下位(上位)シソーラスのグラフレイアウトデータを計算制御部53へ出力する。
計算制御部53は、データ蓄積部55が出力した下位(上位)シソーラスのグラフレイアウトデータを入力する。計算制御部53は、下位(上位)シソーラスのグラフレイアウトデータを出力部57へ出力する。
(ステップB14)
出力部57は、計算制御部53が出力する、下位(上位)シソーラスのグラフレイアウトデータを入力する。出力部57は、下位(上位)シソーラスのグラフレイアウトを表示する。その後、ステップB08へ戻る。
以上が、第2段階の動作方法であり、ユーザによるネットワーク表示命令の入力に応じて出力部57がグラフレイアウトを表示するまでの動作方法である。
以上が、本発明の本実施例における動作方法の説明である。なお、ステップB02において、ユーザーが最初に選択するシソーラスは、最上位のシソーラスでなくともよい。対象となるネットワークに含まれる一つのシソーラスを選択してグラフレイアウトを出力し、その後にその下位(あるいは上位)のシソーラスをを表示することも可能である。これは本実施例の動作方法は、これに限定するものではない。
このようにして、入力されたネットワークデータに対して、あらかじめ構成したシソーラス単位でデータを抽出してグラフレイアウトを計算することで、ネットワークデータに存在する全てのノードのデータに基づいてネットワークのグラフレイアウトを計算する場合に比べて演算量を減らすことができる。これによって、グラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。さらに、ユーザーからの下位あるいは上位のシソーラスの表示命令に対しても、当該下位または上位シソーラスに対応するデータのみを抽出することができる。これによって、下位のシソーラスのグラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。そのため、出力部57へのグラフレイアウトの高速な描画(表示)が可能となる。
なお、本発明は、「リンクタイプの頻度分布に偏りがある。」ネットワークであって、特に「ノードに接続されるリンクの向きにおいて、指し示されるノードの数より指し示すノードの数が多い。」ようなネットワークが表示対象である場合に特に有効な効果を示す。言い換えれば「有名なものは少数でかつそれぞれ特徴が異なり、無名なものが多数でかつそれぞれ類似であるような場合」である。このような条件のネットワークは、人と人との関係や、組織と組織の関係などのソーシャルネットワークに現れやすい。また、論文や特許文献等の引用関係や、WWW(World Wide Web)サイトのハイパーリンク関係にも現れる。従って、本発明は、上記のようなソーシャルネットワーク以外の類似な性質を持つネットワークの可視化システムとしても応用可能である。
本発明の本実施例におけるネットワーク表示システムの機能ブロック図である。 本発明の本実施例におけるネットワーク表示システムを実現するコンピュータの構成図である。 本発明の本実施例におけるネットワーク表示システムに入力されたネットワークの例である。 本発明の本実施例におけるシソーラスの構成とノードの縮約のイメージ図である。 Kamada−Kawaiアルゴリズムにおけるエネルギーの定義式である。 Kamada−Kawaiアルゴリズムにおけるエネルギー定義式を分解した式である。 本発明の本実施例におけるネットワーク表示システムに入力されたネットワークの例である。 本発明の本実施例におけるノードDBの例である。 本発明の本実施例におけるリンクDBの例である。 本発明の本実施例におけるリンクタイプ割付け後のノードDBの例である。 本発明の本実施例における縮約可能ノードリストの例である。 本発明の本実施例におけるネットワークAでの縮約可能ノードの関係を示した図である。 本発明の本実施例におけるシソーラスDBの例である。 本発明の本実施例におけるノードとシソーラスの関係を登録した後のノードDBの例である。 本発明の本実施例における削除フラグを記録したリンクDBの例である。 本発明の本実施例における縮約したネットワークAの例である。 本発明の本実施例における縮約したネットワークAの例である。 本発明の本実施例における縮約したネットワークAの例である。 本発明の本実施例におけるネットワーク表示システムの動作フローである。 本発明の本実施例におけるネットワーク表示システムの動作フローである。
符号の説明
1 〜27 ノード
1a〜13a ノード
0t〜12t シソーラス
51 分類部
52 構成部
53 計算制御部
54 計算部
55 データ蓄積部
56 入力部
57 出力部
100 処理部
200 記憶部
300 入力部
400 出力部
500 通信部

Claims (14)

  1. 複数のノードのノードデータと、前記複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、前記各ノードを分類する分類部と、
    前記分類に基づいて、前記複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードと前記リンクによって接続される上位ノードのノードグループに前記縮約可能ノードを登録する構成部と、
    前記ネットワークデータのうちから前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記複数のノードと前記リンクを視覚的に表すグラフレイアウトを計算する計算部と、
    前記計算部が計算する前記ノードグループの前記グラフレイアウトを表示する出力部と
    を備えるソーシャルネットワーク表示システム。
  2. 請求項1に記載のソーシャルネットワーク表示システムであって、
    前記構成部は、前記計算部による前記グラフレイアウトの計算の際に使用するために前記複数のノードのそれぞれに付与されている重みであって、前記縮約可能ノードに付与されている前記重みを、前記上位ノードの前記ノードグループに前記縮約可能ノードを登録するときに前記上位ノードの前記重みへ加算することでノードグループ重みを算出して当該上位ノードに付与し、
    前記計算部は、前記グラフレイアウトを計算するべき前記ノードグループに登録されているノードの中に、他のノードグループにおける前記上位ノードが存在する場合には、当該上位ノードに付与された前記ノードグループ重みを使用して前記グラフレイアウトを計算する
    ソーシャルネットワーク表示システム。
  3. 請求項1または請求項2に記載のソーシャルネットワーク表示システムであって、
    前記ノードデータは、前記複数のノードのそれぞれに接続されるリンクの数を含み、前記リンクデータは、前記リンクが前記複数のノードのいずれから流出していずれに流入するかを表すリンクの向きを含む
    ソーシャルネットワーク表示システム。
  4. 請求項2または請求項3に記載のソーシャルネットワーク表示システムであって、
    前記ネットワークデータを保存するデータ蓄積部をさらに備え、
    前記分類部は、前記データ蓄積部が前記ネットワークデータを更新するのを検知して、自動的に前記複数のノードを分類し、
    前記構成部は、前記分類部が自動的に前記複数のノードを分類したこと検知して、自動的に前記ノードグループを更新する
    ソーシャルネットワーク表示システム。
  5. 請求項1から請求項4までのいずれかに記載のソーシャルネットワーク表示システムであって、
    前記計算部は、前記ネットワークデータのうちから、複数の前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算する
    ソーシャルネットワーク表示システム。
  6. 請求項1から請求項5までのいずれかに記載のソーシャルネットワーク表示システムであって、
    前記計算部が計算するべき前記ノードグループを選択するための選択命令を入力する入力部をさらに備え、
    前記計算部は、前記入力部が入力する前記選択命令によって選択された前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算する
    ソーシャルネットワーク表示システム。
  7. 請求項1から請求項6までのいずれかに記載のソーシャルネットワーク表示システムであって、
    前記計算部は、Force Directed Methodに基づくグラフレイアウトアルゴリズムを使用して、前記グラフレイアウトを計算する
    ソーシャルネットワーク表示システム。
  8. 複数のノードのノードデータと、前記複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、前記各ノードを分類するステップと、
    前記分類に基づいて、前記複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードと前記リンクによって接続される上位ノードのノードグループに前記縮約可能ノードを登録するステップと、
    前記ネットワークデータのうちから前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記複数のノードと前記リンクを視覚的に表すグラフレイアウトを計算するステップと、
    前記計算部が計算する前記ノードグループの前記グラフレイアウトを表示するステップと
    を備えるソーシャルネットワーク表示方法。
  9. 請求項8に記載のソーシャルネットワーク表示方法であって、
    前記縮約可能ノードを登録するステップは、
    前記計算部による前記グラフレイアウトの計算の際に使用するために前記複数のノードそれぞれに付与されている重みであって、前記縮約可能ノードに付与されている前記重みを、前記上位ノードの前記ノードグループに前記縮約可能ノードを登録するときに、前記上位ノードの前記重みへ加算することでノードグループ重みを算出して当該上位ノードに付与するステップと、
    視覚的に表すグラフレイアウトを計算するステップは、
    前記グラフレイアウトを計算するべき前記ノードグループに登録されているノードの中に、他のノードグループにおける前記上位ノードが存在する場合には、当該上位ノードに付与された前記ノードグループ重みを使用して前記グラフレイアウトを計算するステップと
    を含むソーシャルネットワーク表示方法。
  10. 請求項8または請求項9に記載のソーシャルネットワーク表示方法であって、
    前記各ノードを分類するステップは、
    データ蓄積部が前記ネットワークデータを更新するのを検知して、自動的に前記複数のノードを分類するステップと、
    前記縮約可能ノードを登録するステップは、
    自動的に前記複数のノードを分類したこと検知して、自動的に前記ノードグループを更新するステップと
    を含むソーシャルネットワーク表示方法。
  11. 請求項8から請求項10までのいずれかに記載のソーシャルネットワーク表示方法であって、
    視覚的に表すグラフレイアウトを計算するステップは、
    前記ネットワークデータのうちから、複数の前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算するステップ
    を含むソーシャルネットワーク表示方法。
  12. 請求項8から請求項11までのいずれかに記載のソーシャルネットワーク表示方法であって、
    視覚的に表すグラフレイアウトを計算するステップは、
    前記選択命令によって選択された前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算するステップ
    を含むソーシャルネットワーク表示方法。
  13. 請求項8から請求項12までのいずれかに記載のソーシャルネットワーク表示方法であって、
    視覚的に表すグラフレイアウトを計算するステップは、
    Force Directed Methodに基づくグラフレイアウトアルゴリズムを使用して、前記グラフレイアウトを計算するステップ
    を含むソーシャルネットワーク表示方法。
  14. 請求項8から請求項13までのいずれかに記載のソーシャルネットワーク表示方法をコンピュータによって実現するためのプログラム。
JP2007310164A 2007-11-30 2007-11-30 ソーシャルネットワーク表示システム、方法、及びプログラム Withdrawn JP2009134520A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007310164A JP2009134520A (ja) 2007-11-30 2007-11-30 ソーシャルネットワーク表示システム、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007310164A JP2009134520A (ja) 2007-11-30 2007-11-30 ソーシャルネットワーク表示システム、方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2009134520A true JP2009134520A (ja) 2009-06-18

Family

ID=40866339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007310164A Withdrawn JP2009134520A (ja) 2007-11-30 2007-11-30 ソーシャルネットワーク表示システム、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2009134520A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515961B2 (en) 2010-01-19 2013-08-20 Electronics And Telecommunications Research Institute Method and apparatus for indexing suffix tree in social network
KR101331552B1 (ko) 2011-12-09 2013-11-20 (주) 씨이랩 인맥정보 표시 시스템 및 방법
JP2013242622A (ja) * 2012-05-17 2013-12-05 Nippon Telegr & Teleph Corp <Ntt> グラフデータ視覚化装置及び方法及びプログラム
CN103502975A (zh) * 2012-03-26 2014-01-08 邻客音公司 对社交图进行杠杆作用以便与电子消息传递一起使用
KR101541301B1 (ko) * 2012-06-07 2015-08-07 엔에이치엔엔터테인먼트 주식회사 대규모 소셜 네트워크 분석방법 및 컴퓨터로 판독 가능한 기록매체
US10027778B2 (en) 2012-11-08 2018-07-17 Microsoft Technology Licensing, Llc Skills endorsements
JP2021519957A (ja) * 2018-04-30 2021-08-12 オラクル・インターナショナル・コーポレイション デルタ処理を用いるノードのネットワーク

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515961B2 (en) 2010-01-19 2013-08-20 Electronics And Telecommunications Research Institute Method and apparatus for indexing suffix tree in social network
KR101331552B1 (ko) 2011-12-09 2013-11-20 (주) 씨이랩 인맥정보 표시 시스템 및 방법
CN103502975A (zh) * 2012-03-26 2014-01-08 邻客音公司 对社交图进行杠杆作用以便与电子消息传递一起使用
US9971993B2 (en) 2012-03-26 2018-05-15 Microsoft Technology Licensing, Llc Leveraging a social graph for use with electronic messaging
JP2013242622A (ja) * 2012-05-17 2013-12-05 Nippon Telegr & Teleph Corp <Ntt> グラフデータ視覚化装置及び方法及びプログラム
KR101541301B1 (ko) * 2012-06-07 2015-08-07 엔에이치엔엔터테인먼트 주식회사 대규모 소셜 네트워크 분석방법 및 컴퓨터로 판독 가능한 기록매체
US10027778B2 (en) 2012-11-08 2018-07-17 Microsoft Technology Licensing, Llc Skills endorsements
US10397364B2 (en) 2012-11-08 2019-08-27 Microsoft Technology Licensing, Llc Skills endorsements
JP2021519957A (ja) * 2018-04-30 2021-08-12 オラクル・インターナショナル・コーポレイション デルタ処理を用いるノードのネットワーク
JP7370978B2 (ja) 2018-04-30 2023-10-30 オラクル・インターナショナル・コーポレイション デルタ処理を用いるノードのネットワーク
US11936529B2 (en) 2018-04-30 2024-03-19 Oracle International Corporation Network of nodes with delta processing

Similar Documents

Publication Publication Date Title
US20200336387A1 (en) Topological map presentation system, topological map presentation method, and computer readable recording medium
JP6616893B2 (ja) ネットワークトポロジー自己適応性データ可視化方法及び装置
JP2009134520A (ja) ソーシャルネットワーク表示システム、方法、及びプログラム
JP5825122B2 (ja) 生成プログラム、生成方法、および生成システム
US20140096058A1 (en) Interactive topological views of combined hardware and software systems
US20140320497A1 (en) Graph partitioning for massive scale graphs
JP2007328457A (ja) オブジェクト表示処理装置、オブジェクト表示処理方法、およびオブジェクト表示処理用プログラム
US20140292765A1 (en) Aggregating graph structures
US10706598B2 (en) Interface for data analysis
US20100277481A1 (en) Method and apparatus of animation planning for a dynamic graph
Gansner et al. Interactive visualization of streaming text data with dynamic maps
CN107729389A (zh) 地图显示方法及其装置
US20150324482A1 (en) Network graph generation method and decision-making assistance system
CN107077392A (zh) 用于可视化修改的预取高速缓存
EP3427163B1 (en) Node-centric analysis of dynamic networks
CN113656533A (zh) 一种树形控件处理方法、装置及电子设备
CN112860811A (zh) 数据血缘关系的确定方法、装置、电子设备和存储介质
US10627984B2 (en) Systems, devices, and methods for dynamic virtual data analysis
US11328024B2 (en) Data analysis device and data analysis method
JP2014219870A (ja) トポロジー図の作成方法及び作成プログラム
JP2015075876A (ja) 設計支援装置、設計支援方法、及びプログラム
US11068121B2 (en) System and method for visual exploration of subnetwork patterns in two-mode networks
JP2013242675A (ja) 分散情報制御装置、分散情報検索方法、データ分散配置方法、及びプログラム
JP2010205126A (ja) サービス構成管理装置およびサービス構成管理方法並びにプログラム
CN104243201B (zh) 网络设备测试用例对应拓扑图的存储方法及系统

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100402