(57)【要約】【課題】ソーシャルネットワークを高速に描画することが可能なネットワーク表示システムを提供すること。【解決手段】複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類する分類部と、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録する構成部と、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算する計算部と、計算部が計算するノードグループのグラフレイアウトを表示する出力部とを備える。【選択図】図１
2009134520.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードのノードデータと、前記複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、前記各ノードを分類する分類部と、
前記分類に基づいて、前記複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードと前記リンクによって接続される上位ノードのノードグループに前記縮約可能ノードを登録する構成部と、
前記ネットワークデータのうちから前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記複数のノードと前記リンクを視覚的に表すグラフレイアウトを計算する計算部と、
前記計算部が計算する前記ノードグループの前記グラフレイアウトを表示する出力部と
を備えるソーシャルネットワーク表示システム。
【請求項２】
請求項１に記載のソーシャルネットワーク表示システムであって、
前記構成部は、前記計算部による前記グラフレイアウトの計算の際に使用するために前記複数のノードのそれぞれに付与されている重みであって、前記縮約可能ノードに付与されている前記重みを、前記上位ノードの前記ノードグループに前記縮約可能ノードを登録するときに前記上位ノードの前記重みへ加算することでノードグループ重みを算出して当該上位ノードに付与し、
前記計算部は、前記グラフレイアウトを計算するべき前記ノードグループに登録されているノードの中に、他のノードグループにおける前記上位ノードが存在する場合には、当該上位ノードに付与された前記ノードグループ重みを使用して前記グラフレイアウトを計算する
ソーシャルネットワーク表示システム。
【請求項３】
請求項１または請求項２に記載のソーシャルネットワーク表示システムであって、
前記ノードデータは、前記複数のノードのそれぞれに接続されるリンクの数を含み、前記リンクデータは、前記リンクが前記複数のノードのいずれから流出していずれに流入するかを表すリンクの向きを含む
ソーシャルネットワーク表示システム。
【請求項４】
請求項２または請求項３に記載のソーシャルネットワーク表示システムであって、
前記ネットワークデータを保存するデータ蓄積部をさらに備え、
前記分類部は、前記データ蓄積部が前記ネットワークデータを更新するのを検知して、自動的に前記複数のノードを分類し、
前記構成部は、前記分類部が自動的に前記複数のノードを分類したこと検知して、自動的に前記ノードグループを更新する
ソーシャルネットワーク表示システム。
【請求項５】
請求項１から請求項４までのいずれかに記載のソーシャルネットワーク表示システムであって、
前記計算部は、前記ネットワークデータのうちから、複数の前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算する
ソーシャルネットワーク表示システム。
【請求項６】
請求項１から請求項５までのいずれかに記載のソーシャルネットワーク表示システムであって、
前記計算部が計算するべき前記ノードグループを選択するための選択命令を入力する入力部をさらに備え、
前記計算部は、前記入力部が入力する前記選択命令によって選択された前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算する
ソーシャルネットワーク表示システム。
【請求項７】
請求項１から請求項６までのいずれかに記載のソーシャルネットワーク表示システムであって、
前記計算部は、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくグラフレイアウトアルゴリズムを使用して、前記グラフレイアウトを計算する
ソーシャルネットワーク表示システム。
【請求項８】
複数のノードのノードデータと、前記複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、前記各ノードを分類するステップと、
前記分類に基づいて、前記複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードと前記リンクによって接続される上位ノードのノードグループに前記縮約可能ノードを登録するステップと、
前記ネットワークデータのうちから前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記複数のノードと前記リンクを視覚的に表すグラフレイアウトを計算するステップと、
前記計算部が計算する前記ノードグループの前記グラフレイアウトを表示するステップと
を備えるソーシャルネットワーク表示方法。
【請求項９】
請求項８に記載のソーシャルネットワーク表示方法であって、
前記縮約可能ノードを登録するステップは、
前記計算部による前記グラフレイアウトの計算の際に使用するために前記複数のノードそれぞれに付与されている重みであって、前記縮約可能ノードに付与されている前記重みを、前記上位ノードの前記ノードグループに前記縮約可能ノードを登録するときに、前記上位ノードの前記重みへ加算することでノードグループ重みを算出して当該上位ノードに付与するステップと、
視覚的に表すグラフレイアウトを計算するステップは、
前記グラフレイアウトを計算するべき前記ノードグループに登録されているノードの中に、他のノードグループにおける前記上位ノードが存在する場合には、当該上位ノードに付与された前記ノードグループ重みを使用して前記グラフレイアウトを計算するステップと
を含むソーシャルネットワーク表示方法。
【請求項１０】
請求項８または請求項９に記載のソーシャルネットワーク表示方法であって、
前記各ノードを分類するステップは、
データ蓄積部が前記ネットワークデータを更新するのを検知して、自動的に前記複数のノードを分類するステップと、
前記縮約可能ノードを登録するステップは、
自動的に前記複数のノードを分類したこと検知して、自動的に前記ノードグループを更新するステップと
を含むソーシャルネットワーク表示方法。
【請求項１１】
請求項８から請求項１０までのいずれかに記載のソーシャルネットワーク表示方法であって、
視覚的に表すグラフレイアウトを計算するステップは、
前記ネットワークデータのうちから、複数の前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算するステップ
を含むソーシャルネットワーク表示方法。
【請求項１２】
請求項８から請求項１１までのいずれかに記載のソーシャルネットワーク表示方法であって、
視覚的に表すグラフレイアウトを計算するステップは、
前記選択命令によって選択された前記ノードグループに登録されているノードの前記ネットワークデータを抽出して、前記グラフレイアウトを計算するステップ
を含むソーシャルネットワーク表示方法。
【請求項１３】
請求項８から請求項１２までのいずれかに記載のソーシャルネットワーク表示方法であって、
視覚的に表すグラフレイアウトを計算するステップは、
Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくグラフレイアウトアルゴリズムを使用して、前記グラフレイアウトを計算するステップ
を含むソーシャルネットワーク表示方法。
【請求項１４】
請求項８から請求項１３までのいずれかに記載のソーシャルネットワーク表示方法をコンピュータによって実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソーシャルネットワークの可視化に関する。
【背景技術】
【０００２】
グラフ（以下、ネットワーク）構造とは、ノードとリンクで構成される集合である。
ノードとは、ネットワークを構成する各構成要素である。ノードは、例えば、鉄道網であれば駅であり、通信網であれば通信装置である。リンクとは、ノードとノードを接続する接続関係である。リンクは、例えば、鉄道網であれば駅と駅を結ぶ線路であり、通信網であれば通信装置と通信装置を接続する光ファイバーである。多数のノード間が多数のリンクによって接続されていくことで、より大規模なネットワークが構成される。
【０００３】
従来から、ネットワークを可視化（視覚化）したいという要求がある。ネットワーク構造を可視化するためのアルゴリズムをグラフレイアウトアルゴリズムと呼ぶ。グラフレイアウトアルゴリズムとして著名なものに、バネモデルアルゴリズム（非特許文献１）、ＫＫ（Ｋａｍａｄａ−Ｋａｗａｉ）アルゴリズム（非特許文献２）、ＧＥＭアルゴリズム（非特許文献３）、擬似焼きなまし法（非特許文献４）などがある。これらのアルゴリズムは、力学作用を計算モデルと仮想し、物理的な安定状態を計算することにより解を求める手法である。このような手法は、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄ（または力学的モデル手法、力学指向的手法）と呼ばれる。
【０００４】
コンピュータによるネットワークの可視化には膨大な時間を要する。ｎ個のノードからなるネットワークを最適にレイアウトする問題は、ＮＰ問題と等価であると考えられており、コンピュータによる計算処理が困難である。前述した、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄによるアルゴリズムを用いた場合においても、ノード数が増加すると膨大な計算処理が必要となる。
【０００５】
そのため、大規模なソーシャルネットワークをコンピュータによって可視化するような場合には問題がある。近年、インターネット上でソーシャルネットワークサービスが提供されている。ソーシャルネットワークサービスには、数万から数十万という非常に多数の人間が参加している。ソーシャルネットワークにおけるノードはそれぞれの参加者であり、そのネットワークの規模は非常に膨大である。そのため、グラフレイアウトアルゴリズムによってソーシャルネットワークの可視化を試みると、その計算処理には膨大な時間を要するという問題がある。また、計算処理に膨大な時間を要するため、ユーザーの観点に合わせてソーシャルネットワークを適宜表示しようする場合、システムの応答性能が著しく低下して、結果としてユーザーの利便性が損なわれるという問題がある。
【０００６】
特許文献１は、ネットワークの構造的特長を分かりやすく伝えることができるリンク関係表示装置を開示している。特許文献１のリンク関係表示装置は、それぞれ少なくとも一つのノードを含む第１ノード群と第２ノード群のいずれかを主ノード群、他方を従ノード群として設定する手段と、設定した従ノード群に含まれる各ノードのうち、リンク先の主ノード群中のノードが同一である割合を示すリンク一致度があらかじめ定められた閾値を上回るノードを縮約表示対象ノード群としてそれぞれ抽出する手段と、抽出した縮約表示対象ノード群についてそれぞれの代表位置座標を決定する手段と、決定した代表座標位置の近傍に、対応する縮約表示対象ノード群をそれぞれ表示する表示手段とを含む。
【０００７】
また、特許文献２は、順回路の存在するパスウェイと順回路の存在しないパスウェイとが混在する有向グラフにおいて、簡易な方法で効率的にグラフレイアウトを行うことができる有向グラフレイアウト装置を開示している。特許文献２の有向グラフレイアウト装置は、ノードと有向エッジ（リンク）とにより構成される有向グラフを自動レイアウトする有向グラフレイアウト装置において、ノード毎に接続される有向エッジを単位ベクトルとして全ての当該単位ベクトルの合成ベクトルを生成する合成ベクトル生成手段と、有向エッジの接続先のノードに対して合成ベクトル生成手段にて生成された合成ベクトルと単位ベクトルとの角度を小さくする方向でかつ単位ベクトルと垂直方向に角度補正力を発生させる角度補正力発生手段と、全てのノードの角度補正力を合計してエネルギーを計算するエネルギー計算手段と、エネルギー計算手段にて計算されたエネルギーを最適化するようにノードの座標位置を変更する最適化制御手段とを備える。
【０００８】
また、特許文献３は、ソーシャルネットワークにおいて、ネットワーク要素の検索を迅速かつ的確に行うことが可能なネットワーク要素検索方法を開示している。特許文献３のネットワーク要素検索方法は、ソーシャルネットワークに登録されている二以上のネットワーク要素から一以上のネットワーク要素を検索するネットワーク要素検索方法であって、ネットワーク要素には、当該ネットワーク要素の特徴を示す一以上の属性が付与されており、ネットワーク要素に付与される属性の何れかを検索キーとして受け付け、受け付けた検索キーが示す属性が付与されているネットワーク要素を検索することを特徴とする。
【特許文献１】特開２００７−１４０８４３号公報
【特許文献２】特開２００３−１９６６６７号公報
【特許文献３】特開２００７−０１８４１５号公報
【特許文献４】特開２００２−３５１８９８号公報
【非特許文献１】Ｐ．Ｅａｄｅｓ．”Ａ  Ｈｅｕｒｉｓｔｉｃ  ｆｏｒ  Ｇｒａｐｈ  Ｄｒａｗｉｎｇ”，  Ｃｏｎｇｒｅｓｓｕｓ  Ｎｕｍｅｒａｎｔｉｕｍ，４２，  １４９−１６０，  １９８４．
【非特許文献２】Ｔ．Ｋａｍａｄａ  ａｎｄ  Ｓ．Ｋａｗａｉ．  “Ａｎ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｄｒａｗｉｎｇ  Ｇｅｎｅｒａｌ  Ｕｎｄｉｒｅｃｔｅｄ  Ｇｒａｐｈｓ”，  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｌｅｔｔｅｒｓ，  ３１，  ７−１５，  １９８９．
【非特許文献３】Ａ．Ｆｒｉｃｋ，  Ａ．Ｌｕｄｗｉｇ，  ａｎｄ  Ｈ．Ｍｅｈｌｄａｕ．  “Ａ  Ｆａｓｔ  Ａｄａｐｔｉｖｅ  Ｌａｙｏｕｔ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｕｎｄｉｒｅｃｔｅｄ  Ｇｒａｐｈｓ”，  Ｐｒｏｃ．  Ｇｒａｐｈ  Ｄｒａｗｉｎｇ  （ＧＤ’９４），  ＬＮＣＳ  ８９４，  ３８８−４０３，１９９４．
【非特許文献４】Ｒ．Ｄａｖｉｄｓｏｎ  ａｎｄ  Ｄ．Ｈａｒｅｌ．  “Ｄｒａｗｉｎｇ  Ｇｒａｐｈｓ  Ｎｉｃｅｌｙ  Ｕｓｉｎｇ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ”，ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｇｒａｐｈｉｃｓ，  １５（４），  ３０１−３３１，  １９９６．
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、ソーシャルネットワークのグラフレイアウトを高速に描画することが可能なネットワーク表示システムを提供することである。
【課題を解決するための手段】
【００１０】
本発明のソーシャルネットワーク表示システムは、複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類する分類部と、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録する構成部と、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算する計算部と、計算部が計算するノードグループのグラフレイアウトを表示する出力部とを備える。
【００１１】
本発明のソーシャルネットワーク表示方法は、複数のノードのノードデータと、複数のノード間を接続するリンクのリンクデータとを含むネットワークデータに基づいて、各ノードを分類するステップと、分類に基づいて、複数のノードのうちから縮約可能ノードを抽出し、当該縮約可能ノードとリンクによって接続される上位ノードのノードグループに縮約可能ノードを登録するステップと、ネットワークデータのうちからノードグループに登録されているノードのネットワークデータを抽出して、複数のノードとリンクを視覚的に表すグラフレイアウトを計算するステップと、  計算部が計算するノードグループのグラフレイアウトを表示するステップとを備える。
【００１２】
本発明のプログラムは、上述のソーシャルネットワーク表示方法をコンピュータによって実現する。
【発明の効果】
【００１３】
本発明によれば、ソーシャルネットワークのグラフレイアウトを高速に描画することが可能なネットワーク表示システムを提供できる。
【発明を実施するための最良の形態】
【００１４】
添付図面を参照して、本発明の実施例によるソーシャルネットワーク表示システムを以下に説明する。
【００１５】
［構成の説明］
始めに、本実施例におけるソーシャルネットワーク表示システム（以下、ネットワーク表示システム）の構成の説明をする。図１は、本実施例におけるネットワーク表示システムの機能ブロック図を示している。本実施例において、ネットワーク表示システムは、分類部５１と、構成部５２と、計算制御部５３と、計算部５４と、データ蓄積部５５と、入力部５６と、出力部５７とを備える。
【００１６】
本実施例におけるネットワーク表示システムの分類部５１と、構成部５２と、計算制御部５３と、計算部５４と、データ蓄積部５５と、入力部５６と、出力部５７は、図２に示すようなコンピュータにより実現される。図２のコンピュータは、処理部１００、記憶部２００、入力部３００、出力部４００、通信部５００を備える。処理部１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で実現される。記憶部２００は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等で実現される。入力部３００は、キーボードやマウス等で実現される。本実施例において入力部３００は、図１の入力部５６である。出力部４００は、液晶ディスプレイ等で実現される。本実施例において、出力部４００は、図１の出力部５７である。通信部５００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｄ）ポート等で実現される。処理部１００と、記憶部２００と、入力部３００と、出力部４００と、通信部５００は、それぞれ電気的に接続されている。本実施例におけるネットワーク表示システムの分類部５１と、構成部５２と、計算制御部５３と、計算部５４と、データ蓄積部５５の各機能は、記憶部２００のＲＡＭやＲＯＭ等に保存された処理用プログラムを、処理部１００のＣＰＵやＭＰＵ等が実行することによって実現する。本実施例において、分類部５１と、構成部５２と、計算制御部５３と、計算部５４と、データ蓄積部５５は、一つのコンピュータによって実現されてもよいし、複数のコンピュータによって実現されてもよい。複数のコンピュータによって実現される場合には、それぞれのコンピュータ間は、通信部５００を通じて従来の通信技術によって接続され、その際には、例えばインターネットのようなネットワークを介して接続されてもよい。
【００１７】
次に、本実施例のネットワーク表示システムにおける、各構成部位の説明を行う。
始めに、分類部５１について説明する。分類部５１は、ネットワークに存在するノードの分類を行う。本実施例において、分類部５１は、ノードに接続されるリンクに基づくリンクタイプよってノードの分類を行う。リンクタイプとは、ノードに接続されるリンク数とリンクの向きによる分類である。
本実施例において、ネットワーク表示システムが処理を行うネットワークは、例えば、ソーシャルネットワークのようなネットワークである。ソーシャルネットワークにおいて、ノードは、例えば人間である。また、その場合にリンクは、人間関係である。リンクの向きとは、ノードとノードの間にリンクを接続する場合に、どちらのノードからどちらのノードへリンクを張ったかを意味する。例えば、ソーシャルネットワークサービス（以下、ＳＮＳ）のような場合に、人間（ノード）と人間（ノード）の間に人間関係（リンク）を構築するにあたり、どちらからどちらに紹介（接続）を行ったかといったような場合である。
図３は、ネットワーク表示システムに入力されたネットワークの例である。図３において、リンクタイプは、Ｔｙｐｅ１に示すようなノードへの流入リンク（以下、Ｉｎｐｕｔリンク）が０で、流出リンク（以下、Ｏｕｔｐｕｔリンク）が１のリンクや、Ｔｙｐｅ２に示すような、Ｉｎｐｕｔリンクは条件無し（以下、ａｎｙ）、Ｏｕｔｐｕｔリンクが１のリンク、のように分類される。なお、リンクタイプの分類方法はこの例に限らない。また、本実施例において分類部５１は、ノードに接続されるリンクの本数に基づくリンクタイプによってノードを分類している。しかし、分類部５１によるノードの分類の方法はこれに限らない。例えば、各ノードに属性情報を付与して、属性情報基づいて分類する等してもよい。
【００１８】
次に、構成部５２について説明する。構成部５２は、分類部５１が分類したノードの分類に基づいてシソーラスを構成し、ノードの縮約を行う。本実施例において、構成部５２はリンクタイプに基づいてシソーラスを構成し、ノードの縮約を行う。
シソーラスとは、ネットワーク内のいくつかのノードをまとめたノードグループである。構成部５２は、ネットワーク内にシソーラスを構成し、ノードをシソーラスに登録することでノードを縮約し、ネットワークをシソーラスの集合として階層化する。
【００１９】
図４を用いて、構成部５２がシソーラスを構成することによる、ノードの縮約とネットワークの階層化について説明をする。図４は、バネモデルで表されたネットワークにおける、シソーラスの構成とノードの縮約の例を示している。図４のネットワークにおいて、重りがノードであり、バネがリンクである。図４のネットワークは、シソーラス１ａからシソーラス４ａの４つのシソーラスを保有している。シソーラス４ａは、このネットワークにおける最上位のシソーラスである。シソーラス４ａには、ノード１ａからノード５ａが登録されている。ノード５ａは、シソーラス４ａの下位のシソーラスであるシソーラス３ａの代表のノードである。ノード５ａをシソーラス３ａの最上位ノードと呼ぶ。シソーラス４ａにおいて、シソーラス３ａはノード５ａに集約されている。この場合、シソーラス３ａは、シソーラス４ａの下位シソーラスであり、逆にシソーラス４ａはシソーラス３ａの上位ノードである。
次に、シソーラス３ａには、ノード５ａからノード９ａが登録されている。シソーラス４ａにおいて、シソーラス３ａはノードに集約表示がされているが、シソーラス３ａにおいては、シソーラス３ａに登録されているノード５ａからノード９ａの全てが表示されている。ノード６ａは、シソーラス３ａの下位のシソーラスであるシソーラス１ａの代表のノードである。つまり、ノード６ａは、シソーラス３ａの最上位ノードである。同様にノード７ａは、シソーラス３ａの下位のシソーラスであるシソーラス２ａの代表のノードである。つまり、ノード７ａ、シソーラス２ａの最上位ノードである。シソーラス３ａにおいて、シソーラス１ａはノード６ａに集約されている。同様に、シソーラス３ａにおいて、シソーラス２ａはノード５ａに集約されている。シソーラス１ａおよびシソーラス２ａは、シソーラス３ａの下位シソーラスであり、シソーラス３ａは、シソーラス１ａ及びシソーラス２ａの上位シソーラスである。このように、図４のネットワークは、複数のノードで構成されるシソーラス毎に階層をなしており、上位シソーラスにおいて、下位シソーラスは、当該下位シソーラスの最上位ノードに集約される。
【００２０】
次に、図４を用いて、構成部５２によるシソーラスの構成方法の例について説明する。まず、構成部５２は、ノード１０ａのリンクタイプに基づいて、ノード６ａを最上位ノードとするシソーラス１ａを構成する。構成部５２は、ノード１０ａをシソーラス１ａに登録する。これによってノード１０ａはシソーラス１ａに属す。
同様に、構成部５２は、ノード１１ａのリンクタイプに基づいて、ノード７ａを最上位とするシソーラス２ａを構成する。構成部５２は、ノード１１ａをシソーラス２ａに登録する。構成部５２ａは、ノード１２ａ、ノード１３ａのリンクタイプに基づいて、ノード１２ａ、ノード１３ａをシソーラス２ａへ登録する。これによって、ノード１１ａからノード１３ａは、シソーラス２ａへ属す。
次に、構成部５２は、ノード６ａのリンクタイプに基づいて、ノード５ａを最上位ノードとするシソーラス３ａを構成する。構成部５２ａは、ノード６ａをシソーラス３ａに登録する。同時に構成部５２は、シソーラス１ａをシソーラス３ａに登録する。これによりノード６ａは、シソーラス３ａに属し、シソーラス１ａは、シソーラス３ａの下位シソーラスに属す。同様に、構成部５２は、シソーラス２ａの最上位ノードであるノード７ａのリンクタイプに基づいて、ノード７ａをシソーラス３ａに登録する。同時に構成部５２は、シソーラス２ａをシソーラス３ａに登録する。これによりノード７ａは、シソーラス３ａに属し、シソーラス２ａは、シソーラス３ａの下位シソーラスに属す。続いて、構成部５２は、ノード８ａ、ノード９ａのそれぞれのリンク状態に基づいて、ノード８ａ、ノード９ａをそれぞれシソーラス３ａへ登録する。これによりノード８ａとノード９ａは、シソーラス３ａに属す。以上の処理によって、シソーラス３ａには、ノード５ａからノード９ａのノードが登録される。同時にシソーラス１ａ及びシソーラス２ａは、シソーラス３ａの下位シソーラスとして登録される。前述のとおり、シソーラス３ａにおいて、シソーラス１ａは、ノード６ａの集約される。同様に、シソーラス３ａにおいて、シソーラス２ａは、ノード７ａに集約される。構成部５２は、このような処理を繰り返すことで、シソーラス１ａからシソーラス４ａまでを構成し、図４のネットワークを複数のシソーラスの集合として階層化する。
【００２１】
シソーラス３ａのグラフレイアウトにおいて、シソーラス１ａは、ノード６ａに縮約されているためレイアウトされない。シソーラス１ａがレイアウトされないため、ノード１０ａもレイアウトされない。シソーラス１ａが存在することは、例えばノード６ａが、シソーラスを有していない他ノードと大きさや色によって判別できるように明示される。
同様に、シソーラス３ａのグラフレイアウトにおいて、シソーラス２ａは、ノード７ａに縮約されているためのレイアウトされない。シソーラス２ａがレイアウトされないため、ノード１１ａからノード１３ａもレイアウトはされない。シソーラス２ａが存在することは、ノード７ａが、シソーラスを有していない他ノードと大きさや色によって判別できるよう明示される。構成部５２は、シソーラス１ａ及びシソーラス２ａを、それぞれに対して表示するように命令が入力されて初めてグラフレイアウトする。このように、構成部５２は、シソーラス１ａ及びシソーラス２ａを、シソーラス３ａの下位シソーラスとして階層化する。以上が、構成部５２がシソーラスを構成することによる、ノードの縮約とネットワークの階層化の説明である。
【００２２】
次に計算制御部５３について説明する。計算制御部５３は、ユーザーからのネットワーク表示命令に基づいて、ネットワークのノードデータと、リンクデータと、構成部５２が構成したシソーラスデータのうちから、当該ネットワーク表示命令によるネットワークの表示に必要となるデータを抽出して計算部５４へ出力する。計算制御部５３は、シソーラスを構成していないネットワークとは別に、シソーラスデータによって階層化されたネットワークを仮想的に形成する機能を有している。例えば、図４において、全てのノードデータとリンクデータに基づいて（ノード１ａからノード１３ａまで全てのデータに基づいて）、ネットワーク全体のグラフレイアウトを計算しようとすると、計算処理が多くなり応答速度が低下する。計算制御部５３は、構成部５２によって構成されたシソーラスデータを用いて、階層化されたネットワークのグラフレイアウトを計算する。例えば、シソーラス４ａに登録されている、ノード１ａからノード５ａまでのデータに基づいてグラフレイアウトを計算する。
【００２３】
図４を参照して、計算制御部５３のデータの抽出方法について説明する。まず、計算制御部５３は、ユーザーからのネットワーク表示命令に基づいて、シソーラス４ａをグラフレイアウトするように、シソーラス４ａのデータを抽出して計算部５４へ出力する。この場合、計算部５４によって出力部５７へ出力されるグラフレイアウトでは、シソーラス４ａに存在するノードのみ（ノード１ａからノード５ａ）しかレイアウトされない。シソーラス４ａのグラフレイアウトでは、ノード５ａに下位シソーラスの存在がわかるように明示する。図４において、ノード５ａは、他ノードより大きく表示されている。これによって、ユーザーはノード５ａの下位シソーラスが存在することを確認できる。なお、下位シソーラスの明示方法はこれに限定しない。例えば、下位シソーラスを持つノードの色に変化を持たせてもよい。
【００２４】
ユーザーが下位のシソーラスの存在を確認し、下位のシソーラスをグラフレイアウトするよう下位シソーラスのネットワーク表示命令を入力部５６へ入力する。例えば、ユーザーが、ノード５ａを選択して下位シソーラスのネットワーク表示命令を入力したとする。計算制御部５３は、下位シソーラスのネットワーク表示命令に基づいて、シソーラス３ａをグラフレイアウトするように、シソーラス３ａのデータを抽出して計算部５４へ出力する。この場合、計算部５４によって計算されるグラフレイアウトでは、シソーラス３ａに存在するノードがレイアウトされる。なお、この場合のグラフレイアウトは、シソーラス４ａとシソーラス３ａを組み合わせたレイアウトとしてもよいし、シソーラス３ａのみにクローズアップしたレイアウトとしてもよい。このようにして計算制御部５３は、ユーザーからの命令に応じて、必要なデータを抽出する。
【００２５】
次に、計算部５４についての説明をする。計算部５４は、計算制御部５３が出力したデータを入力して、グラフレイアウトを計算する。計算部５４は計算したレイアウトをデータ蓄積部５５へ出力する。本実施例において、計算部５４がグラフレイアウトを計算するにあたっては、以下の２つの条件を満たすものであれば、グラフレイアウトアルゴリズムは限定しない。
（条件１）
バネモデルアルゴリズム（非特許文献１）、ＫＫ（Ｋａｍａｄａ−Ｋａｗａｉ）アルゴリズム（非特許文献２）、ＧＥＭアルゴリズム（非特許文献３）、擬似焼きなまし法（非特許文献４）に代表されるＦｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくアルゴリズムであること。
（条件２）
多項の要素に分解可能であるか、近似的に分解可能な全体エネルギーの数式モデルであること。（例として、ＫＫ（Ｋａｍａｄａ−Ｋａｗａｉ）アルゴリズム（非特許文献２）におけるエネルギーの定義式を図５に示す。またＫＫアルゴリズムにおけるエネルギー定義式を分解した式を図６示す。）
各グラフレイアウトアルゴリズムにおけるグラフレイアウトの計算方法については、それぞれのグラフレイアウトアルゴリズムの文献を参照されたい。なお、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄとは異なるアルゴリズムとして、ＡＧＭアルゴリズム（特許文献４）等が存在する。
【００２６】
次に、データ蓄積部５５についての説明をする。データ蓄積部５５は、分類部５１、構成部５２、計算制御部５３、計算部５４がそれぞれ処理を行うためのデータと、処理を行った結果のデータを保存する。データ蓄積部５５が保存するデータの詳細については後述する。また、データ蓄積部は、データ蓄積部５５は、分類部５１、構成部５２、計算制御部５３、計算部５４が要求するデータを抽出し、それぞれの構成部位へ出力する。
【００２７】
次に、入力部５６についての説明をする。入力部５６は、外部からネットワーク表示システムへの入力をつかさどる。入力部５６は、ユーザーからの命令を受け付ける。ユーザーからの命令には、例えば前述のネットワーク表示命令等がある。また、入力部５６は、外部装置からのネットワークデータを受け付ける。外部から入力されるネットワークデータ等は、前述の通信部５００を介して入力される。入力部５６は、入力したネットワークデータをデータ蓄積部５５へ出力する。
【００２８】
次に、出力部５７は、計算部５４が計算したグラフレイアウトを視覚的に表示する。また、ユーザーが各種命令を入力するためのユーザーインターフェイス（以下、ＵＩＦ）等を表示する。本実施例において、ネットワーク表示システムとユーザーとのＵＩＦは、従来の技術によるものであり特に限定はしない。
【００２９】
以上が、本実施例における構成の説明である。入力されたネットワークデータに対して、あらかじめ、分類部５１は、ネットワークデータを分類する。構成部５２は、分類部５１が分類したネットワークデータに基づいてシソーラスを構成する。計算制御部５３は、ユーザーのネットワーク表示命令に基づいて、構成部５２が構成したシソーラス単位でデータを抽出して計算部５４へグラフレイアウトを命令する。計算部５４は、計算制御部５３からのグラフレイアウト命令にもとづいて、シソーラス単位のデータからグラフレイアウトを計算する。
計算部５４は、ネットワークデータに存在する全てのノードのデータに基づいてネットワークのグラフレイアウトを計算する場合に比べて演算量を減らすことができる。これによて、計算部５４は、グラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。
また、構成部５２が、ネットワークデータから、あらかじめシソーラスを構成しているため、ユーザーからの下位シソーラスのネットワーク表示命令に対しても、計算制御部５３は、当該シソーラスに対応するデータのみを抽出することができる。これによって、計算部５４は、下位シソーラスのグラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。そのため、出力部５７へのグラフレイアウトの高速な描画（表示）が可能となる。
【００３０】
［動作方法の説明］
次に、本実施例の動作方法の説明を行う。本実施例において、ネットワーク表示システムの動作方法は、２つの段階を有する。第１段階の動作方法は、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを計算するまでの動作方法である。第２段階の動作方法は、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法である。なお、動作方法の説明において、説明内容の明示のために「項目」と「項目番号」を付与しているが、「項目番号」は、本実施例における動作順序を示しているものではない。動作方法の流れについては、後述する動作フローの説明のとおりである。
【００３１】
（第１段階の動作方法）
始めに、第１段階の動作方法について説明する。図７は、ネットワーク表示システムに入力されたネットワークの例を示している。本動作方法の説明において、このネットワークをネットワークＡと呼ぶことにする。
【００３２】
１．ネットワークデータの保存
ネットワークＡのネットワークデータは、ネットワーク表示システムの外部から通信部５００を介してデータ蓄積部５５へ入力される。データ蓄積部５５は、ネットワークＡのネットワークデータを内部のデータベースに保存する。ネットワークデータには、ネットワークＡに存在する全てのノードとリンクのデータが含まれている。
【００３３】
図８は、データ蓄積部５５が保存するネットワークＡのノードデータベース（以下、ノードＤＢ）の例である。図８のノードＤＢは、ネットワークＡに存在する全てのノードのノードデータを記録している。図８のノードＤＢを説明する。ノードＤＢのデータ項目には、「Ｎｏｄｅ＿ＩＤ」、「Ｉｎｐｕｔ＿Ｌｉｎｋ」、「Ｏｕｔｐｕｔ＿Ｌｉｎｋ」、「Ｎｏｄｅ質量」「接続Ｌｉｎｋ＿ＩＤ」が存在する。「Ｎｏｄｅ＿ＩＤ」は、ネットワークＡに存在する全てのノードに対して割付けられたユニークなＩＤである。この「Ｎｏｄｅ＿ＩＤ」によって各ノードは識別される。「Ｉｎｐｕｔ＿Ｌｉｎｋ」は、ネットワークＡの各ノードに接続されるリンクのうち、当該ノードに流入してくるリンクの数である。「Ｏｕｔｐｕｔ＿Ｌｉｎｋ」は、ネットワークＡの各ノードに接続されるリンクのうち、当該ノードから流出していくリンクの数である。「Ｎｏｄｅ質量」は、ネットワークＡに存在するそれぞれのノード単体の質量である。この質量は、前述したＦｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づいて、計算部５４がグラフレイアウトを計算する際に使用するために割付けた仮想の質量である。本実施例において、それぞれのノード単体の質量は全て均一である。図８において「Ｎｏｄｅ質量」のデータを参照すると、全てのノードの質量が「１０」で統一されていることが確認できる。なお、この質量の決定方法はこれに限定しない。「接続Ｌｉｎｋ＿ＩＤ」は、ネットワークＡに存在するそれぞれのノードに接続されるリンクＩＤである。ネットワークＡに存在する全てのリンクは、ノードと同様にユニークなＩＤを割付けられている。「接続Ｌｉｎｋ＿ＩＤ」は、当該ノードに接続されている全てのリンクのリンクＩＤを記録している。
【００３４】
図８を参照すると、例えば、Ｎｏｄｅ＿ＩＤ＝１のノードは、Ｉｎｐｕｔ＿Ｌｉｎｋ＝２であることから、当該ノードに流入しているリンクが２あることがわかる。また、Ｎｏｄｅ＿ＩＤ＝１のノードは、Ｏｕｔｐｕｔ＿Ｌｉｎｋ＝１であることから、当該ノードから流出するリンクが１あることがわかる。また、Ｎｏｄｅ＿ＩＤ＝１のノードは、Ｎｏｄｅ質量＝１０であることから、当該ノードの単体質量は１０であることがわかる。また、Ｎｏｄｅ＿ＩＤ＝１のノードは、接続Ｌｉｎｋ＿ＩＤ＝７，９，１４であることから、当該ノードには、Ｌｉｎｋ＿ＩＤ＝７，  Ｌｉｎｋ＿ＩＤ＝９，  Ｌｉｎｋ＿ＩＤ＝１４のリンクが接続されていることがわかる。当該ノードは、接続されているリンクの数が３であり、これはＩｎｐｕｔ＿Ｌｉｎｋ＝２とＯｕｔｐｕｔ＿Ｌｉｎｋ＝１を合計した数と一致していることも確認できる。
【００３５】
図９は、データ蓄積部５５が保存するネットワークＡのリンクデータベース（リンクＤＢ）の例である。図９のリンクＤＢは、ネットワークＡに存在する全てのノード間を接続している全てのリンクデータを記録している。図９のリンクＤＢを説明する。リンクＤＢのデータ項目には、「Ｌｉｎｋ＿ＩＤ」、「Ｄｅｓｔｉｎａｔｉｏｎ＿Ｎｏｄｅ＿ＩＤ」、「Ｓｏｕｒｃｅ＿Ｎｏｄｅ＿ＩＤ」が存在する。「Ｌｉｎｋ＿ＩＤ」は、ネットワークＡに存在する全てのリンクに対して割付けられたユニークなＩＤである。この「Ｌｉｎｋ＿ＩＤ」によって各リンクは識別される。ノードＤＢの「接続Ｌｉｎｋ＿ＩＤ」に記録されるのはこの「Ｌｉｎｋ＿ＩＤ」である。「Ｄｅｓｔｉｎａｔｉｏｎ＿Ｎｏｄｅ＿ＩＤ（以下。Ｄ＿Ｎｏｄｅ＿ＩＤ）」は、当該リンクが流入するノードの「Ｎｏｄｅ＿ＩＤ」である。違う表現をすれば、当該リンクが指し示す先のノードの「Ｎｏｄｅ＿ＩＤ」である。「Ｓｏｕｒｃｅ＿Ｎｏｄｅ＿ＩＤ（以下、Ｓ＿Ｎｏｄｅ＿ＩＤ）」は、当該リンクが流出するノードの「Ｎｏｄｅ＿ＩＤ」である。違う表現をすれば、当該リンクの出元のノードの「Ｎｏｄｅ＿ＩＤ」である。
【００３６】
図９を参照すると、例えば、Ｌｉｎｋ＿ＩＤ＝１４のリンクは、Ｓ＿Ｎｏｄｅ＿ＩＤ＝１でＤ＿Ｎｏｄｅ＿ＩＤ＝２である。このことからＬｉｎｋ＿ＩＤ＝１４のリンクは、ノード１から流出して、ノード２へ流入していることがわかる。なお、ノードＤＢとリンクＤＢのデータ項目はこれに限定しない。
【００３７】
２．ノードの分類
次に、分類部５１は、ノード蓄積部５に保存されたネットワークＡのネットワークデータに基づいて、ネットワークＡに存在するノードを分類する。本実施例において、分類部５１は、ネットワークＡに存在する各ノードに接続されているリンクの数と向きに基づくリンクタイプによってノードを分類する。
【００３８】
分類部５１が実行するノード分類処理は、データ蓄積部５５へネットワークデータが新たに保存された時に実行される。あるいは、分類部５１が実行するノード分類処理は、データ蓄積部５５に保存されているネットワークデータが更新される度に実行されてもよい。この場合、分類部５１は、データ蓄積部５５のデータ保存状態を監視している。データ蓄積部５５は、保存しているネットワークデータが更新されると、分類部５１に対してデータ更新通知を出力する。分類部５１は、データ蓄積部５５からのデータ更新通知を受信することによって、データ蓄積部５５に保存されたネットワークデータの更新を検知して、ノード分類処理を実行する。このように、データ蓄積部５５のネットワークデータが更新される度に、分類部５１はノード分類処理を実行する。また、ネットワークデータが新たに保存された場合にも、同様に、データ蓄積部５５がデータ更新通知によって分類部５１へ通知する動作方法としてもよい。これらによって、分類部５１は、データ蓄積部５５に保存されているネットワークデータが、常に最新の状態でノード分類処理を実行することができる。なお、分類部５１のノード分類処理のトリガはこの方法に限定しない。ユーザーが入力部５６へ入力する命令に基づいて実行する方法でも、ある一定の定められた時間や時刻によって実行する方法でもよい。
【００３９】
図１０は、分類部５１がノード分類処理を実行した後のデータ蓄積部５５のノードＤＢの例を示している。図１０を参照すると、図８のノードＤＢのデータ項目に加えて、「Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」がノードＤＢの項目として追加されていることが確認できる。本実施例において、分類部５１がノードを分類するリンクタイプとは、この「Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」に記録された値である。分類部５１は、ネットワークＡに存在する各ノードに接続されるリンクの数に基づいて「Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」を計算する。本実施例において、分類部５１は、それぞれのノードのＩｎｐｕｔ＿Ｌｉｎｋ数に１，０００を乗算してＯｕｔｐｕｔ＿Ｌｉｎｋ数と加算することによってＬｉｎｋ＿Ｔｙｐｅ＿ＩＤを計算する。図１０において、例えば、Ｎｏｄｅ＿ＩＤ＝１は、Ｉｎｐｕｔ＿Ｌｉｎｋ＝２でＯｕｔｐｕｔ＿Ｌｉｎｋ＝１であるので、「２×１０００＋１＝２００１」であり、Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ＝２００１となる。このようにして分類部５１は、全てのノードに対して、Ｉｎｐｐｕｔ＿Ｌｉｎｋ数とＯｕｔｐｕｔ＿Ｌｉｎｋ数に基づいてＬｉｎｋ＿Ｔｙｐｅ＿ＩＤを計算する。ネットワークＡの全てのノードに対してＬｉｎｋ＿Ｔｙｐｅ＿ＩＤを割付けることで、Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤが同一のノードは、他のノードとのリンク状態が同一であることが判別できる。分類部５１は、ネットワークＡの全てのノードに対してＬｉｎｋ＿Ｔｙｐｅ＿ＩＤを割付けると、ノードＤＢをデータ蓄積部５５へ保存する。
なお、分類部５１が実行するノード分類処理における、Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤの割付けはこの方法に限定しない。さらに、分類部５１が実行するノード分類処理は、リンクタイプによる分類に限定しない。例えば、ノードＤＢやリンクＤＢに他のデータ項目を設けることによって、そのデータ項目に基づいてノードを分類することも可能である。
【００４０】
３．シソーラスの構成
次に、構成部５２は、分類部５１が分類したノードの分類に基づいてシソーラスを構成する。本実施例において、構成部５２は、分類部５１が割付けた「Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」に基づいてシソーラス構成処理を実行する。
【００４１】
構成部５２のシソーラス構成処理は、分類部のノード分類処理の完了後に実行する。分類部５１はノード分類処理によって、ノードＤＢのＮｏｄｅ＿ＩＤ毎に「ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」を割付ける処理が完了すると、データ蓄積部５５へノードＤＢを保存する。分類部５１は、構成部５２へノード分類完了通知を出力する。構成部５２は、分類部５１が出力するノード分類完了通知を入力することで、分類部５１のノード分類処理の完了を検知し、シソーラス構成処理を実行する。分類部５１は、データ蓄積部５５のネットワークデータが新たに保存される度に、あるいはネットワークデータが更新される度にノード分類処理を実行してもよい。構成部５２は、分類部５１がノード分類処理を完了する度にシソーラス構成処理を実行する。これによって、構成部５２は、データ蓄積部５５に保存されているネットワークＡのネットワークデータが常に最新の状態でシソーラスを構成することができる。なお、構成部５２のシソーラス構成処理のトリガはこの方法に限定しない。ユーザーが入力部５６へ入力する命令に基づいて実行する方法でも、ある一定の定められた時間や時刻によって実行する方法でもよい。
【００４２】
３−１．縮約可能ノードの抽出  
本実施例において、構成部５２は、ネットワークＡに存在する全てのノードのうち、「当該ノードへのリンクの流入が０で、当該ノードからのリンクの流出が１であるノードを対象にシソーラス構成処理を実行する（以下、ルール１）」とのルールに基づいてシソーラス構成処理を実行するものとする。なお、このルールについてはこれに限定しない。また、ルールの数は一つに限られず複数であってもよい。これらのルールは、ネットワークの構成に依存するため、あらかじめユーザーによって構成部５２へ設定されている。または、ネットワークデータがデータ蓄積部５５に入力される場合にルールも共に入力されてもよい。この場合は、構成部５２がデータ蓄積部５５からルールを読み込む動作方法となる。構成部５２へのルールの設定方法はこれらの方法に限定しない。
【００４３】
構成部５２は、ルール１に従ってネットワークＡにシソーラス構成処理を実行可能なノードが存在するかを確認する。構成部５２は、データ蓄積部５５に保存されたノードＤＢを読み込む。構成部５２は、ノードＤＢの「Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ」に基づいて、シソーラス構成処理を実行可能なノードを抽出する。ルール１は、ノードＤＢのデータにおいて、Ｉｎｐｕｔ＿Ｌｉｎｋ＝０でかつＯｕｔｐｕｔ＿Ｌｉｎｋ＝１のノードが対象となる。言い換えれば、ルール１が適用となるノードは、Ｌｉｎｋ＿Ｔｙｐｅ＿ＩＤ＝０００１であるということができる。構成部５２は、ノードＤＢの中からＬｉｎｋ＿ｔｙｐｅ＿ＩＤ＝０００１のノードを抽出する。図１１は、構成部５２が図１０に示すノードＤＢからＬｉｎｋ＿Ｔｙｐｅ＿ＩＤ＝０００１のノードを抽出したデータを示している。構成部５２は、このようにノードＤＢからルールが適用となるノードを抽出してデータリストを作成する。本実施例において、このデータリストを、縮約可能ノードリストと呼ぶ。
【００４４】
３−２．シソーラスＤＢ
次に、構成部５２は、縮約可能ノードリストに基づいてシソーラスを構成し、縮約可能ノードリストに記載されたそれぞれのノードをシソーラスに登録して、ネットワークＡを階層化していく。図１２は、ネットワークＡにおいて、縮約可能ノードリストの記載されたそれぞれのノードとシソーラスの関係を示している。図１２を参照すると、図１１の縮約可能ノードリストに記載されたノードから、６つのシソーラスが構成されることが確認できる。これらのシソーラスは、データ蓄積部５５が保存するシソーラスデータベース（以下、シソーラスＤＢ）に登録される。
【００４５】
図１３は、データ蓄積部５５が保存するシソーラスＤＢの例である。図１３のシソーラスＤＢは、ネットワークＡに存在する全てのシソーラスを記録している。図１３のシソーラスＤＢを説明する。シソーラスＤＢのデータ項目には、「シソーラスＩＤ」、「最上位Ｎｏｄｅ＿ＩＤ」、「保有Ｎｏｄｅ＿ＩＤ」、「上位シソーラス＿ＩＤ」、「下位シソーラス＿ＩＤ」が存在する。「シソーラスＩＤ」は、ネットワークＡに存在する全てのシソーラスに対して割付けられたユニークなＩＤである。この「シソーラスＩＤ」によって各シソーラスは識別される。なお、本実施例において、図１２及び、後述する図１５、図１７、図１８では、「ノードＩＤ」と区別するために「シソーラスＩＤ」の後ろに「ｔ」を付与して表記する。「最上位Ｎｏｄｅ＿ＩＤ」は、当該シソーラスに登録されるノードの中で最上位に位置するノードを表している。本実施例において、最上位ノードは、当該シソーラスと、当該シソーラスの上位階層に位置するシソーラス（以下、上位シソーラス）に、唯一共に登録されるノードである。当該シソーラスのグラフレイアウトにおいて、上位シソーラスのグラフレイアウトにおいて、当該シソーラスは最上位ノードに縮約されるものとして、最上位ノード以外の当該シソーラスに存在するノードは表示されない。つまり、当該シソーラスの上位シソーラスにおいて、グラフレイアウトされるのは最上位ノードのみである。
【００４６】
例えば、図１２のシソーラス３（図１２上は「ｔ」を付与して「３ｔ」と表記、以下、図１２上の他のシソーラスＩＤにおいて同じ。）において、最上位ノードはノード５である。シソーラス３の上位シソーラスのグラフレイアウトにおいて、ノード７からノード９は表示されず、ノード５のみが表示されることになる。「保有Ｎｏｄｅ＿ＩＤ」は、当該シソーラスに登録された全てのノードのＮｏｄｅ＿ＩＤである。「上位シソーラスＩＤ」は、当該シソーラスの最上位ノードが登録されている上位シソーラスの「シソーラスＩＤ」である。上位シソーラスと、当該シソーラスの双方には、当該シソーラスの最上位ノードが登録されている。当該シソーラスの最上位ノードは、上位シソーラスとの階層の境目となる。「下位シソーラスＩＤ」は、当該シソーラスの最上位ノード以外のノードが保有する、当該シソーラスの下位階層に位置するシソーラスである下位シソーラスのシソーラスＩＤである。当該シソーラスの最上位ノード以外のノードは、下位シソーラスの最上位ノードである可能性がある。
【００４７】
図１３を参照すると、シソーラスＩＤ＝３のシソーラスは、最上位Ｎｏｄｅ＿ＩＤの欄より、最上位ノードがＮｏｄｅ＿ＩＤ＝５のノードであることが確認できる。また、保有Ｎｏｄｅ＿ＩＤ欄より、Ｎｏｄｅ＿ＩＤ＝７，８，９の３つのノードが登録されていることが確認できる。さらに、上位シソーラスＩＤと下位シソーラスＩＤの欄より、上位シソーラスは、シソーラスＩＤ＝９であり、下位シソーラスは存在しないことが確認できる。
一方、シソーラスＩＤ＝３の上位シソーラスにあたるシソーラスＩＤ＝９のデータを参照すると、最上位Ｎｏｄｅ＿ＩＤの欄より、最上位ノードは、Ｎｏｄｅ＿ＩＤ＝３であることが確認できる。また、保有Ｎｏｄｅ＿ＩＤの欄より、Ｎｏｄｅ＿ＩＤ＝５，６が登録されていることが確認できる。さらに、下位シソーラスＩＤの欄より、下位シソーラスにシソーラスＩＤ＝３，４が登録されていることが確認できる。つまり、前述のシソーラスＩＤ＝３におけるＮｏｄｅ＿ＩＤ＝５の最上位ノードは、Ｎｏｄｅ＿ＩＤ＝３を最上位ノードとするシソーラスＩＤ＝９に登録されていることが確認できる。これによって、シソーラスＩＤ＝３は、ノードＩＤ＝５を階層の境として、シソーラスＩＤ＝９の下位シソーラスとして登録されていることになる。
【００４８】
３−３．シソーラス構成処理
構成部５２は、縮約可能ノードリストに基づいて、順にシソーラス構成処理を行う。図１２におけるシソーラス３を例にして、構成部５２が行うシソーラス構成処理を説明する。まず、構成部５２は、縮約可能ノードリスト（図１１）を参照して、最初に処理を行うべきノードがＮｏｄｅ＿ＩＤ＝７であることを特定する。次に、構成部５２は、縮約可能ノードリストの接続Ｌｉｎｋ＿ＩＤ欄を参照して、Ｎｏｄｅ＿ＩＤ＝７に接続されているリンクがＬｉｎｋ＿ＩＤ＝２４であることを特定する。次に、構成部５２は、リンクＤＢ（図９）を検索してＬｉｎｋ＿ＩＤ＝２４のデータを特定する。次に、構成部５２は、リンクＤＢのＬｉｎｋ＿ＩＤ＝２４のデータにおいて、Ｄ＿Ｎｏｄｅ＿ＩＤ欄からＬｉｎｋ＿ＩＤ＝２４が指し示す先は、Ｎｏｄｅ＿ＩＤ＝５であることを特定する。ここで、構成部５２は、Ｎｏｄｅ＿ＩＤ＝７が、Ｎｏｄｅ＿ＩＤ＝５の下位に位置することを特定する。
【００４９】
構成部５２は、シソーラスＤＢ（図１３）を参照して、Ｎｏｄｅ＿ＩＤ＝５を最上位ノードとするシソーラスが存在するかを検索する。（この時点ではシソーラス３は、まだ構成されていないものとする。）構成部５２は、Ｎｏｄｅ＿ＩＤ＝５を最上位ノードとするシソーラスが存在しないことを検知する。また、構成部５２は、シソーラスＤＢにおいて、この時点で構成されているシソーラスがシソーラスＩＤ＝２までであることを検知する。
次に、構成部５２は、Ｎｏｄｅ＿ＩＤ＝５を最上位ノードとするシソーラス３を構成する。構成部５２は、シソーラスＤＢにシソーラスＩＤ＝３のデータを記録する。これと同時に構成部５２は、シソーラスＩＤ＝３のレコードにおいて、最上位Ｎｏｄｅ＿ＩＤの欄にＮｏｄｅ＿ＩＤ＝５を記録する。次に、構成部５２は、シソーラス３にＮｏｄｅ＿ＩＤ＝７のノードを登録する。構成部５２は、シソーラスＩＤ＝３のレコードにおいて、保有Ｎｏｄｅ＿ＩＤの欄にＮｏｄｅ＿ＩＤ＝７を記録する。これによって、シソーラスＤＢ上でＮｏｄｅ＿ＩＤ＝７は、Ｎｏｄｅ＿ＩＤ＝５を最上位とするシソーラスＩＤ＝３に登録された。
【００５０】
次に、構成部５２は、ノード７がシソーラス３に登録されたことをノードＤＢ上に登録する。図１４は、構成部５２が、ネットワークＡに存在するノードとシソーラスの関係を登録した後のノードＤＢの例を示している。図１４を参照すると、ノードＤＢには、「上位シソーラスＩＤ」、「上位シソーラスでの質量」、「下位シソーラスＩＤ」のデータ項目が追加されている。「上位シソーラスＩＤ」は、当該ノードが登録された上位シソーラスのシソーラスＩＤである。「上位シソーラスＩＤ」に、シソーラスＩＤが記録されていることで、当該ノードは、当該シソーラスＩＤの上位シソーラスに登録されていることになる。「下位シソーラスＩＤ」は、当該ノードが、最上位ノードとして登録されているシソーラスが存在する場合に記録される。「下位シソーラスＩＤ」に、シソーラスＩＤが記録されることで、当該ノードは、当該ノードを最上位ノードとする下位シソーラスを有することになる。この場合、「上位シソーラスＩＤ」のシソーラスにおいて、「下位シソーラスＩＤ」のシソーラスは、当該ノードに縮約されてグラフレイアウトされる。「上位シソーラスでの質量」は、所属シソーラスにおいて、当該ノードが当該ノードの保有シソーラスに存在するノードを縮約してレイアウトされる場合の質量である。当該ノードが、当該ノードを最上位ノードとして登録される保有シソーラスを有する場合、その所属シソーラスにおいて、保有シソーラスは当該ノードに縮約表示されることとなる。この場合、当該ノードは、保有シソーラスに登録されている全てのノードの質量を有する。
【００５１】
図１４において、Ｎｏｄｅ＿ＩＤ＝７は、シソーラスＩＤ＝３に登録されたため、構成部５２は、Ｎｏｄｅ＿Ｉｄ＝７の「上位シソーラスＩＤ」の欄に上位シソーラスＩＤ＝３を記録する。次に、構成部５２は、Ｎｏｄｅ＿ＩＤ＝５の「下位シソーラスＩＤ」の欄に下位シソーラスＩＤ＝３を記録する。さらに、構成部５２は、Ｎｏｄｅ＿ＩＤ＝５の「上位シソーラスでの質量」の欄に、２０を記録する。構成部５２は、保有シソーラスに存在するノードの「Ｎｏｄｅ質量」の合計を「上位シソーラスでの質量」に記録する。この例の場合、この時点でシソーラスＩＤ＝３には、Ｎｏｄｅ＝ＩＤ＝３と５の二つのノードが存在するため、Ｎｏｄｅ＿ＩＤ＝３の「Ｎｏｄｅ質量」である１０と、Ｎｏｄｅ＿ＩＤ＝５の「Ｎｏｄｅ質量」である１０を合計した２０を、Ｎｏｄｅ＿ＩＤ＝５の「上位シソーラスでの質量」の欄に記録する。なお、「上位シソーラスでの質量」の計算方法は、これに限定しない。「上位シソーラスでの質量」の計算方法は、例えばノード間にリンクの相互参照が存在する場合等、ネットワークの構成にも依存して調整する。
【００５２】
次に、構成部５２は、ノード７の縮約に伴い、ノード７とノード５を接続するリンク２４を削除する。図１５は、シソーラス構成処理にともなって、縮約したノードのリンクが削除されたリンクＤＢの例を示している。具体的には構成部５２は、リンクＤＢの削除対象リンクに削除フラグを記録することで、当該リンクの削除処理をおこなう。図１５を参照すると、リンクＤＢには、「削除フラグ」のデータ項目が追加されている。「削除フラグ」は、当該リンクがシソーラス構成処理に伴って削除されたことを意味する。ここでいう「削除」は、ネットワークＡからの削除ではない。あくまでシソーラス構成処理上での削除を意味する。構成部５２は、Ｌｉｎｋ＿ＩＤ＝２４のリンクの「削除フラグ」欄に削除フラグを意味する「ｄ」を記録する。これによって、Ｌｉｎｋ＿ＩＤ＝２４は、シソーラス構成処理上で削除されたこととなる。
【００５３】
以上で、構成部５２は、ネットワークＡにおける、ノード７のシソーラス構成処理が完了する。構成部５２は、縮約可能ノードリストを参照して、次に処理するべきノードを特定する。構成部５２は、ノード７と同様に、ノード８、ノード９のシソーラス構成処理を行う。構成部５２は、ノード１０の処理に移ると、ノード６を最上位とするシソーラスが存在しないことを検知して、シソーラス４を構成する。その後、構成部５２は、前述と同様にノード１０、ノード１１をシソーラス４へ登録する。
【００５４】
図１６は、構成部５２が図１３の縮約可能ノードリストに記載されている全てのノードに対して、シソーラス構成処理を完了した後のネットワークＡを示している。図１６を参照すると、新たに「ルール１」によって縮約可能となるノードがシソーラスＩＤと共に示されている。構成部５２は、シソーラス構成処理において、縮約したノード及び、削除フラグを立てたリンクを考慮して、ノードＤＢ上で新たに縮約対象リストを作成する。図１６に示すとおり、構成部５２は、シソーラス７（図１６上は「ｔ」を付与して「７ｔ」と表記、以下、図１６上の他のシソーラスＩＤにおいて同じ。）からシソーラス１１を構成して、それぞれのシソーラスに含まれるノードを登録する。
【００５５】
図１７は、シソーラス７からシソーラス１１までシソーラス構成処理が完了した後のネットワークＡを示している。図１７を参照すると、さらに「ルール１」で縮約可能なノードが存在することが確認できる。構成部５２は、さらにシソーラス１０（図１７上は「ｔ」を付与して「１０ｔ」と表記、以下、図１７上の他のシソーラスＩＤにおいて同じ。）とシソーラス１１を構成して、それぞれのシソーラスに含まれるノードを登録して縮約する。構成部５２は、このようにして、縮約対象となるノードが存在しなくなるまでシソーラス構成処理を繰り返す。
【００５６】
３−４．最終形態のシソーラス登録
図１８は、このようにして、構成部５２が「ルール１」によって縮約可能なノードに対してシソーラス構成処理を繰り返して到達したネットワークＡの最終形態である。構成部５２は、この最終形態をシソーラスＩＤ＝０（図１８上は「ｔ」を付与して「０ｔ」と表記。）としてシソーラスＤＢに登録する。シソーラスＩＤ＝０はネットワークＡにおける最上位のシソーラスである。シソーラスＩＤ＝０のシソーラスの最上位Ｎｏｄｅ＿ＩＤは、シソーラスＩＤ＝０のシソーラスに登録されるいずれのノードでもかまわない。本実施例において、構成部５２は、シソーラスＩＤ＝０のシソーラスの最上位Ｎｏｄｅは、Ｎｏｄｅ＿ＩＤ＝２２を登録する。また、構成部５２は、シソーラスＩＤ＝０のシソーラスに登録したノードのうち、下位シソーラスにおいて最上位ノードであるＮｏｄｅ＿ＩＤ＝１，３，１３，２２の下位シソーラスのシソーラスＩＤ＝７，９，１０，１２を下位シソーラスＩＤの欄に記録する。同時にシソーラスＩＤ＝７，９，１０，１２のデータにおいて、上位シソーラスＩＤの欄にシソーラスＩＤ＝０を記録する。これによって、構成部５２のシソーラス構成処理が完了する。図１３のシソーラスＤＢを参照すると、図１８に示すネットワークＡの最終形態が、シソーラスＩＤ＝０のデータとして登録されていることが確認できる。構成部５２のシソーラス構成処理の結果は、ノードＤＢ、リンクＤＢ、シソーラスＤＢの全てに反映されて、データ蓄積部５５へ保存されている。なお、本動作方法の説明における、構成部５２のシソーラス構成処理の動作方法は一実施例でありこれに限定するものではない。
【００５７】
以上が、本発明の本実施例においての、動作方法の第１段階にあたる、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを記録するまでの動作方法である。この動作方法によって、あらかじめ、ネットワークＡ内に複数のシソーラスを構成することによって、ネットワークＡを階層化することにより、後述するグラフレイアウトの計算においては、シソーラス単位でグラフレイアウトを計算することによって、計算部５４の演算量を減らすことが可能となる。
【００５８】
（第２段階の動作方法）
次に、本発明の本実施例においての、第２段階の動作方法にあたる、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法を説明する。
【００５９】
１．ユーザーからの命令入力
まず、ユーザーが、入力部５６へネットワーク表示命令を入力する。ネットワーク表示命令は、データ蓄積部５５に保存されているネットワークが複数ある場合には、そのうちの一つを選択するものでもよい。また、シソーラスにより階層化されたノードのグラフレイアウトを出力する形式か、全てのノードのグラフレイアウトを出力する形式かを選択可能なものとしてもよい。本実施例において、入力部５６におけるユーザーインターフェイスは、特に限定しない。なお、本説明においては、ユーザーはネットワークＡを選択して、シソーラスにより階層化されたノードのグラフレイアウトを要求したものとする。入力部５６は、ユーザーからのネットワーク表示命令の入力を検知し、計算制御部５３へネットワーク表示命令を出力する。
【００６０】
２．ネットワークデータの抽出
計算制御部５３は、入力部５６が出力したネットワーク表示命令を入力する。計算制御部５３は、ネットワークＡのシソーラス０のデータを出力するよう、データ蓄積部５５へデータ出力要求を出力する。
【００６１】
データ蓄積部５５は、計算制御部５３からのデータ出力要求を入力する。データ蓄積部５５は、シソーラスＤＢを検索してシソーラスＩＤ＝０のデータを特定する。データ蓄積部５５は、シソーラスＩＤ＝０のデータの保有Ｎｏｄｅ＿ＩＤから、シソーラスＩＤ＝０に登録されているノードのＮｏｄｅ＿ＩＤを、「保有Ｎｏｄｅ＿ＩＤ」から特定する。図１３のシソーラスＤＢを参照すると、シソーラスＩＤ＝０には、Ｎｏｄｅ＿ＩＤ＝１，２，３，４，１３，１４，２２，２８のノードが登録されていることが確認できる。
次に、データ蓄積部５５は、ノードＤＢを参照して、Ｎｏｄｅ＿ＩＤ＝１，２，３，４，１３，１４，２２，２８に接続されるリンクを「接続Ｌｉｎｋ＿ＩＤ」から特定する。図１４のノードＤＢを参照すると、例えば、Ｎｏｄｅ＿ＩＤ＝１には、Ｌｉｎｋ＿ＩＤ＝７，９，１４が接続されていることが確認できる。
次に、データ蓄積部５５は、リンクＤＢを参照して、Ｎｏｄｅ＿ＩＤ＝１，２，３，４，１３，１４，２２，２８に接続されているリンクの接続関係を「Ｄ＿Ｎｏｄｅ＿ＩＤ」と「Ｓ＿Ｎｏｄｅ＿ＩＤ」から特定する。図１６のリンクＤＢを参照すると、例えば、Ｌｉｎｋ＿ＩＤ＝７は、Ｎｏｄｅ＿ＩＤ＝１９から流出してＮｏｄｅ＿ＩＤ＝１へ流入していることが確認できる。
データ蓄積部５５は、シソーラス０のグラフレイアウトの計算に必要なデータをこのように特定し、ノードＤＢ、リンクＤＢ、シソーラスＤＢから抽出して、計算制御部５３へ出力する。
【００６２】
３．グラフレイアウトの計算命令
計算制御部５３は、データ蓄積部５５が出力する、シソーラス０のグラフレイアウトの計算に必要なデータ入力する。計算制御部５３は、計算部５４へシソーラス０のグラフレイアウト計算命令を出力する。計算制御部５３は、シソーラス０のグラフレイアウトの計算に必要なデータを、計算部５４へ出力する。
【００６３】
４．グラフレイアウトの計算
計算部５４は、計算制御部５３からのグラフレイアウト計算命令を入力する。計算部５４は、計算制御部５３から、シソーラス０のグラフレイアウトの計算に必要なデータを入力する。計算部５４は、前述したＦｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくグラフレイアウトアルゴリズムを用いてシソーラス０のグラフレイアウトを計算する。本実施例において、計算部５４が、グラフレイアウトの計算に用いるグラフレイアウトアルゴリズムは、以下の２つの条件を満たすものであれば、グラフレイアウトアルゴリズムは限定しない。
（条件１）
バネモデルアルゴリズム（非特許文献１）、ＫＫ（Ｋａｍａｄａ−Ｋａｗａｉ）アルゴリズム（非特許文献２）、ＧＥＭアルゴリズム（非特許文献３）、擬似焼きなまし法（非特許文献４）に代表されるＦｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくアルゴリズムであること。
（条件２）
多項の要素に分解可能であるか、近似的に分解可能な全体エネルギーの数式モデルであること。（例として、ＫＫ（Ｋａｍａｄａ−Ｋａｗａｉ）アルゴリズム（非特許文献２）におけるエネルギーの定義式を図５に示す。またＫＫアルゴリズムにおけるエネルギー定義式を分解した式を図６示す。）
各グラフレイアウトアルゴリズムにおけるグラフレイアウトの計算方法については、それぞれのグラフレイアウトアルゴリズムの文献を参照されたい。なお、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄとは異なるアルゴリズムとして、ＡＧＭアルゴリズム（特許文献４）等が存在する。
【００６４】
また、計算部５４は、計算制御部５３から受信したノードＤＢのデータのうち、当該ノードのデータにおいて、「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードについては、グラフレイアウトアルゴリズムの計算処理において使用するノードの質量は、「上位シソーラスでの質量」の欄に記録されている質量を用いる。「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードは、当該ノードの配下に下位シソーラスを保有している。そのため、「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードは、下位シソーラスに登録されている他のノードの質量を集約した質量となっている。計算部５４は、「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録がないノードについては、ノードＤＢの「Ｎｏｄｅ質量」の欄に記録された質量を用いてグラフレイアウトを計算する。
【００６５】
この、質量の差は、グラフレイアウトにおいて、ノードの大きさや、色に反映させてもよい。例えば、図４において、ノード６ａとノード７ａは、下位シソーラスを有しているが、下位シソーラスに登録されているノードの数量の差から、グラフレイアウトにおける大きさが異なっている。これによりユーザーは、ノードの大きさによって、下位シソーラスの存在と、下位シソーラスの規模を直感的に把握することが可能である。なお、ノードの質量とグラフレイアウトにおける表示方法については、この例に限定しない。
計算部５４は、計算したシソーラス０のグラフレイアウトをデータ蓄積部５５へ保存する。なお、本実施例において、グラフレイアウトの保存形式は特に限定せず、従来の技術によるものとする。計算部５４が、計算したシソーラス０のグラフレイアウトの例は図１８に示すとおりである。  構成部５２が、シソーラス構成処理を実行した結果、ネットワークＡの最終形態がシソーラス０である。図１８に示すとおり、シソーラス０のグラフレイアウトを計算処理することにより、ネットワークＡに存在する全てのノードのグラフレイアウトを計算処理する場合（図７を参照）に比べて、ノード数は約三分の一となっている。計算部５４は、計算制御部５３へ、シソーラス０のグラフレイアウト計算完了通知を出力する。
【００６６】
５．グラフレイアウトの表示
計算制御部５３は、計算部５４が出力するシソーラス０のグラフレイアウト計算完了通知を入力する。計算制御部５３は、シソーラス０のグラフレイアウト計算完了を検知する。計算制御部５３は、データ蓄積部５５にシソーラス０のグラフレイアウトを要求する。データ蓄積部５５は、シソーラス０のグラフレイアウトを計算制御部５３へ出力する。
計算制御部５３は、データ蓄積部５５が出力したシソーラス０のグラフレイアウトを入力する。計算制御部５３は、シソーラス０のグラフレイアウトを出力部５７へ出力する。出力部５７は、シソーラス０のグラフレイアウトを表示する。
【００６７】
以上が、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法である。なお、ユーザーによるネットワーク表示命令がネットワークＡに存在するノードを指定するものであってもよい。その場合、当該ノードがいずれのシソーラスに登録されているかをノードＤＢのノードデータから特定し、その後の動作方法は、シソーラスを表示する動作方法と同様である。
本動作方法によって、ネットワークＡの初期表示状態として、シソーラス０がグラフレイアウトされて出力部５７へ表示される。構成部５２があらかじめネットワークＡをシソーラス構成処理によって階層化しているために、計算部５４のグラフレイアウト計算処理においては、特定のシソーラスの範囲のみの計算処理を行うのみで足りるため、計算量を減らすことが可能となる。そのため、計算部５４は高速にグラフレイアウトを行うことができる。
【００６８】
次に、シソーラス０のグラフレイアウトを確認したユーザーが、下位シソーラスの表示を要求した場合の動作方法を説明する。なお、上位シソーラスが存在する場合には、ユーザーが、上位シソーラスのを要求した場合の動作方法も同様となる。
【００６９】
６．ユーザーからの命令入力
ユーザーは、出力部５７へ出力されたシソーラス０のグラフレイアウトを確認する。ユーザーは、出力されたグラフレイアウトにおける明示の表示によって、シソーラス０が下位のシソーラスを保有していることを検知する。ユーザーは入力部５６へ下位シソーラス表示命令を入力する。本説明において、ユーザーはノード３を指定して、下位シソーラス表示命令を入力したものとする。下位シソーラス表示命令の入力は、出力部５７に表示されているグラフレイアウトにおいて、下位シソーラスを保有するノードをポインタによって指定する形でもよい。本実施例において、下位シソーラス表示命令の入力方法については特に限定しない。
【００７０】
７．データの抽出
入力部５６は、下位シソーラス表示命令の入力を検知する。入力部５６は、下位シソーラス表示命令を計算制御部５３へ出力する。計算制御部５３は、下位シソーラス表示命令から、ユーザーがノード３の下位シソーラスの表示を要求していることを検知する。計算制御部５３は、ネットワークＡのノード３が保有するシソーラスのグラフレイアウトに必要なデータを出力するよう、データ蓄積部５５へデータ出力要求を出力する。
【００７１】
データ蓄積部５５は、計算制御部５３が出力するデータ出力要求を入力する。データ蓄積部は、ノードＤＢ（図１４参照）を検索して、Ｎｏｄｅ＿ＩＤ＝３のデータを特定する。データ蓄積部５５は、ノードＤＢにおいて、Ｎｏｄｅ＿ＩＤ＝３のデータの「下位シソーラスＩＤ」に記録されているデータから、Ｎｏｄｅ＿ＩＤ＝３が保有するシソーラスを特定する。図１４を参照すると、Ｎｏｄｅ＿ＩＤ＝３は、シソーラスＩＤ＝９を保有していることが確認できる。データ蓄積部５５は、Ｎｏｄｅ＿ＩＤ＝３は、シソーラスＩＤ＝９を保有していると特定する。
次に、データ蓄積部５５は、シソーラスＤＢ（図１３参照）を検索して、シソーラスＩＤ＝９のデータを特定する。データ蓄積部５５は、シソーラスＤＢにおいて、シソーラスＩＤ＝９のデータの「保有Ｎｏｄｅ＿ＩＤ」に記録されているＮｏｄｅ＿ＩＤから、シソーラスＩＤ＝９に登録されているノードを特定する。図１３を参照すると、シソーラスＩＤ＝９には、Ｎｏｄｅ＿ＩＤ＝５，６が登録されていることが確認できる。データ蓄積部５５は、シソーラスＩＤ＝９には、Ｎｏｄｅ＿ＩＤ＝５，６が登録されていることを特定する。
次に、データ蓄積部５５は、ノードＤＢを検索して、Ｎｏｄｅ＿ＩＤ＝５，６のデータを特定する。データ蓄積部５５は、ノードＤＢにおいて、Ｎｏｄｅ＿ＩＤ＝５，６のデータの「接続Ｌｉｎｋ＿ＩＤ」に記録されているＬｉｎｋ＿ＩＤから、Ｎｏｄｅ＿ＩＤ＝５，６に接続されているリンクを特定する。図１４を参照すると、例えば、Ｎｏｄｅ＿ＩＤ＝５には、Ｌｉｎｋ＿ＩＤ＝１９，２２，２３，２４が接続されていることが確認できる。データ蓄積部５５は、Ｎｏｄｅ＿ＩＤ＝５には、Ｌｉｎｋ＿ＩＤ＝１９，２２，２３，２４が接続されていることを特定する。同様にデータ蓄積部５５は、Ｎｏｄｅ＿ＩＤ＝６に接続されているリンクも特定する。
次に、データ蓄積部５５は、リンクＤＢ（図１６を参照）を検索して、Ｌｉｎｋ＿ＩＤ＝１９，２２，２３，２４のリンクのデータを特定する。データ蓄積部５５は、リンクＤＢにおいて、Ｌｉｎｋ＿ＩＤ＝１９，２２，２３，２４の接続関係を特定する。図１６を参照すると、例えば、Ｌｉｎｋ＿ＩＤ＝１９のリンクは、Ｎｏｄｅ＿ＩＤ＝５のノードから流出して、Ｎｏｄｅ＿ＩＤ＝３のノードへ流入していることが確認できる。データ蓄積部５５は、Ｌｉｎｋ＿ＩＤ＝１９のリンクは、Ｎｏｄｅ＿ＩＤ＝５のノードから流出してＮｏｄｅ＿ＩＤ＝３のノードへ流入していることを特定する。同様にデータ蓄積部５５は、Ｎｏｄｅ＿ＩＤ＝５，６のノードに接続されているほかのリンクについても接続関係を特定する。データ蓄積部５５は、このように特定したノード３が保有するシソーラス９のグラフレイアウトの計算に必要なデータをノードＤＢ、リンクＤＢ、シソーラスＤＢから抽出して、計算制御部５３へ出力する。
【００７２】
８．グラフレイアウトの計算命令
計算制御部５３は、データ蓄積部５５からのシソーラス９のグラフレイアウトの計算に必要なデータ入力する。計算制御部５３は、計算部５４へシソーラス９のグラフレイアウト計算命令を出力する。計算制御部５３は、シソーラス９のグラフレイアウトの計算に必要なデータを、計算部５４へ出力する。
【００７３】
９．グラフレイアウトの計算
計算部５４は、計算制御部５３からのグラフレイアウト計算命令を入力する。計算部５４は、計算制御部５３から、シソーラス９のグラフレイアウトの計算に必要なデータを入力する。計算部５４は、前述したＦｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づくグラフレイアウトアルゴリズムを用いてシソーラス９のグラフレイアウトを計算する。
【００７４】
計算部５４は、計算制御部５３から受信したノードＤＢのデータのうち、当該ノードのデータにおいて、「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードについては、グラフレイアウトアルゴリズムの計算処理において使用するノードの質量は、「上位シソーラスでの質量」の欄に記録されている質量を用いる。「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードは、当該ノードの配下に下位シソーラスを保有している。そのため、「下位シソーラスＩＤ」の欄にシソーラスＩＤの記録があるノードは、下位シソーラスに登録されている他のノードの質量を集約した質量となっている。
シソーラス９のグラフレイアウトを計算する場合、計算部５４は、ノード３の質量を、ノードＤＢの「Ｎｏｄｅ質量」に記録された質量＝１０を使用する。計算部５４が、ノード３について、ノードＤＢの「Ｎｏｄｅ質量」に記録された質量を使用するのは、ノード３にとってシソーラス９は所属シソーラスではないためである。また、計算部５４は、ノード５及びノード６の質量を、ノードＤＢの「上位シソーラスでの質量」に記録された質量を使用する。つまり、計算部５４は、ノード５の質量＝４０、ノード６の質量＝３０を使用する。計算部５４が、ノード５及びノード６について、ノードＤＢの「上位シソーラスでの質量」に記録された質量を使用するのは、ノード５及びノード６にとってシソーラス９は所属シソーラスであるためである。このようにして、計算部５４はグラフレイアウトを計算する対象となるシソーラスによって、計算に使用するノードの質量を変更する。これによって、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄに基づいたグラフレイアウトアルゴリズムによって、適切なグラフレイアウトを計算できる。計算部５４は、計算したシソーラス９のグラフレイアウトをデータ蓄積部５５へ保存する。計算部５４は、計算制御部５３へ、シソーラス９のグラフレイアウト計算完了通知を出力する。
【００７５】
１０．グラフレイアウトの表示
計算制御部５３は、計算部５４が出力するシソーラス９のグラフレイアウト計算完了通知を入力する。計算制御部５３は、シソーラス９のグラフレイアウト計算完了を検知する。計算制御部５３は、データ蓄積部５５にシソーラス９のグラフレイアウトを要求する。データ蓄積部５５は、シソーラス９のグラフレイアウトを計算制御部５３へ出力する。
計算制御部５３は、データ蓄積部５５が出力したシソーラス９のグラフレイアウトを入力する。計算制御部５３は、シソーラス９のグラフレイアウトを出力部５７へ出力する。出力部５７は、シソーラス９のグラフレイアウトを表示する。
【００７６】
以上が、第２段階の動作方法である、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法である。この後さらにユーザーが下位シソーラスの表示を要求した場合についても、データ蓄積部５５が同様に、ユーザーが指定したノードの保有するシソーラスをシソーラスＤＢから特定し、当該シソーラスに含まれるノードをノードＤＢから特定し、当該ノードに接続されるリンクをリンクＤＢから特定して、これらグラフレイアウトに必要なデータを計算制御部５３へ出力する。
また、ユーザーによるネットワーク表示命令がシソーラス単位でなくノード単位でもよい。その場合も指定されたノードがいずれのシソーラスに属するのかをノードＤＢのどデータから特定し、その後はシソーラスを表示する動作方法と同様である。
【００７７】
このように、構成部５２が、あらかじめネットワークＡ内にシソーラスを構成して階層化することによって、計算制御部５３はシソーラス単位でネットワークデータを抽出することが可能になるため、計算部５４は、ネットワークデータ全体をグラフレイアウトする場合に比べて、演算量を減らすことができ、高速にグラフレイアウトを計算できる。また、分類部５１は、データ蓄積部５５に保存されるネットワークデータが更新される度にノード分類処理を行い、それに伴って、構成部５２がシソーラスを再度構成することによって、常に最新の状態でネットワークＡをシソーラスによって階層化することができる。さらに、上位シソーラスにおいて下位シソーラスの最上位ノードに縮約された、下位シソーラスに登録される他のノードの質量は、最上位ノードに加算されて調整される。これによって上位シソーラスのグラフレイアウトにおいて、Ｆｏｒｃｅ  Ｄｉｒｅｃｔｅｄ  Ｍｅｔｈｏｄ  に基づくグラフレイアウトアルゴリズムにより適切にグラフレイアウトを計算することができる。
【００７８】
［動作フローの説明］
次に、上述の動作方法を図１９、図２０を使用して説明する。
【００７９】
（第１段階の動作フロー）
まず、図１９は、本発明の本実施例における第１段階の動作方法を示している。第１段階の動作方法は、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを作成するまでの動作方法である。
【００８０】
（ステップＡ０１）
外部から入力部５６を介してデータ蓄積部５５へネットワークＡのネットワークデータ（ノードＤＢ、リンクＤＢ）が入力される。（あるいはネットワークデータが更新される。）データ蓄積部５５は、データ更新通知を分類部５１へ出力する。
【００８１】
（ステップＡ０２）
分類部５１は、データ蓄積部５５が出力したデータ更新通知を入力する。分類部５１が、ネットワークＡのネットワークデータ（ノードＤＢ、リンクＤＢ）を読み込む。
【００８２】
（ステップＡ０３）
分類部５１が、ノードに接続されるリンクの数に基づくリンクタイプによってノードを分類する。
【００８３】
（ステップＡ０４）
構成部５２は、シソーラス構成処理のルールに基づいて、縮約可能なノードを抽出する。
縮約可能なノードが存在する場合はステップＡ０５へ進む。縮約可能なノードが存在しない場合はステップＡ０７へ進む。
【００８４】
（ステップＡ０５）
構成部５２は、縮約可能ノードリストを作成する。
【００８５】
（ステップＡ０６）
構成部５２は、縮約可能ノードリストに従ってシソーラス構成処理を実行する。縮約可能ノードリストに記載された全てのノードに対してシソーラス構成処理が完了したら、新たな縮約可能ノードを抽出するためにステップＡ０４へ戻る。
【００８６】
（ステップＡ０７）
構成部５２は、縮約可能ノードリストに基づいてシソーラス構成処理を繰り返すことによって、これ以上縮約することができない状態に到達したネットワークを、ネットワークＡの最上位のシソーラスとしてデータ蓄積部５５へ登録して、シソーラス構成処理を完了する。
【００８７】
以上が、第１段階の動作方法であり、ネットワークデータが入力されてから当該ネットワークをシソーラスによって階層化したデータを作成するまでの動作方法である。
【００８８】
（第２段階の動作フロー）
次に、図２０は、本発明の本実施例における第２段階の動作方法を示している。
第２段階の動作方法は、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法である。
【００８９】
（ステップＢ０１）
入力部５６が、ユーザーからのネットワーク表示命令を入力する。
【００９０】
（ステップＢ０２）
計算制御部５３が、データ蓄積部５５へネットワークＡの最上位シソーラスであるシソーラス０のデータ要求を出力する。
【００９１】
（ステップＢ０３）
データ蓄積部５５は、計算制御部５３が出力するシソーラス０のデータ要求を入力する。データ蓄積部５５は、ノードＤＢ、リンクＤＢ、シソーラスＤＢを検索し、シソーラス０のグラフレイアウトに必要なデータを抽出して、計算制御部５３へ出力する。
【００９２】
（ステップＢ０４）
計算制御部５３は、データ蓄積部５５が出力したシソーラス０のデータを入力する。計算制御部５３は、シソーラス０のグラフレイアウトを計算するように、計算部５４へグラフレイアウト計算命令を、シソーラス０のデータと共に出力する。
【００９３】
（ステップＢ０５）
計算部５４は、計算制御部５３が出力するグラフレイアウト計算命令を、シソーラス０のデータと共に入力する。計算部５４は、グラフレイアウトアルゴリズムに基づいて、シソーラス０のグラフレイアウトを計算する。計算部５４は、計算したシソーラス０のグラフレイアウトをデータ蓄積部５５へ保存する。計算部５４は、グラフレイアウト計算完了通知を計算制御部５３へ出力する。
【００９４】
（ステップＢ０６）
計算制御部５３は、計算部３が出力するグラフレイアウト計算完了通知を入力する。計算制御部５３は、データ蓄積部５５へシソーラス０のグラフレイアウトデータの出力を要求する。データ蓄積部５５は、シソーラス０のグラフレイアウトデータを計算制御部５３へ出力する。
計算制御部５３は、データ蓄積部５５が出力したシソーラス０のグラフレイアウトデータを入力する。計算制御部５３は、シソーラス０のグラフレイアウトデータを出力部５７へ出力する。
【００９５】
（ステップＢ０７）
出力部５７は、計算制御部５３が出力する、シソーラス０のグラフレイアウトデータを入力する。出力部５７は、シソーラス０のグラフレイアウトを表示する。
【００９６】
（ステップＢ０８）
ユーザーから下位（上位）ネットワーク表示命令の入力があるかの判定。下位（上位）ネットワーク表示命令がある場合は、ステップＢ０９へ進む。下位（上位）ネットワーク表示命令がない場合は、終了となる。
【００９７】
（ステップＢ０９）
計算制御部５３が、データ蓄積部５５へ、ユーザーが入力した下位（上位）ネットワーク表示命令において指定された下位（上位）シソーラスのデータ要求を出力する。
【００９８】
（ステップＢ１０）
データ蓄積部５５は、計算制御部５３が出力するデータ要求を入力する。データ蓄積部５５は、ノードＤＢ、リンクＤＢ、シソーラスＤＢを検索し、下位（上位）シソーラスのグラフレイアウトに必要なデータを抽出して、計算制御部５３へ出力する。
【００９９】
（ステップＢ１１）
計算制御部５３は、データ蓄積部５５が出力した下位（上位）シソーラスのデータを入力する。計算制御部５３は、下位（上位）シソーラスのグラフレイアウトを計算するように、計算部５４へグラフレイアウト計算命令を、下位（上位）シソーラスのデータと共に出力する。
【０１００】
（ステップＢ１２）
計算部５４は、計算制御部５３が出力するグラフレイアウト計算命令を、下位（上位）シソーラスのデータと共に入力する。計算部５４は、グラフレイアウトアルゴリズムに基づいて、下位（上位）シソーラスのグラフレイアウトを計算する。計算部５４は、計算した下位（上位）シソーラスのグラフレイアウトをデータ蓄積部５５へ保存する。計算部５４は、グラフレイアウト計算完了通知を計算制御部５３へ出力する。
【０１０１】
（ステップＢ１３）
計算制御部５３は、計算部３が出力するグラフレイアウト計算完了通知を入力する。計算制御部５３は、データ蓄積部５５へ下位（上位）シソーラスのグラフレイアウトデータの出力を要求する。データ蓄積部５５は、下位（上位）シソーラスのグラフレイアウトデータを計算制御部５３へ出力する。
計算制御部５３は、データ蓄積部５５が出力した下位（上位）シソーラスのグラフレイアウトデータを入力する。計算制御部５３は、下位（上位）シソーラスのグラフレイアウトデータを出力部５７へ出力する。
【０１０２】
（ステップＢ１４）
出力部５７は、計算制御部５３が出力する、下位（上位）シソーラスのグラフレイアウトデータを入力する。出力部５７は、下位（上位）シソーラスのグラフレイアウトを表示する。その後、ステップＢ０８へ戻る。
【０１０３】
以上が、第２段階の動作方法であり、ユーザによるネットワーク表示命令の入力に応じて出力部５７がグラフレイアウトを表示するまでの動作方法である。
【０１０４】
以上が、本発明の本実施例における動作方法の説明である。なお、ステップＢ０２において、ユーザーが最初に選択するシソーラスは、最上位のシソーラスでなくともよい。対象となるネットワークに含まれる一つのシソーラスを選択してグラフレイアウトを出力し、その後にその下位（あるいは上位）のシソーラスをを表示することも可能である。これは本実施例の動作方法は、これに限定するものではない。
【０１０５】
このようにして、入力されたネットワークデータに対して、あらかじめ構成したシソーラス単位でデータを抽出してグラフレイアウトを計算することで、ネットワークデータに存在する全てのノードのデータに基づいてネットワークのグラフレイアウトを計算する場合に比べて演算量を減らすことができる。これによって、グラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。さらに、ユーザーからの下位あるいは上位のシソーラスの表示命令に対しても、当該下位または上位シソーラスに対応するデータのみを抽出することができる。これによって、下位のシソーラスのグラフレイアウトを高速に計算することができる。また、ネットワーク表示システムのシステムの応答性能が低下することを防ぐことができる。そのため、出力部５７へのグラフレイアウトの高速な描画（表示）が可能となる。
【０１０６】
なお、本発明は、「リンクタイプの頻度分布に偏りがある。」ネットワークであって、特に「ノードに接続されるリンクの向きにおいて、指し示されるノードの数より指し示すノードの数が多い。」ようなネットワークが表示対象である場合に特に有効な効果を示す。言い換えれば「有名なものは少数でかつそれぞれ特徴が異なり、無名なものが多数でかつそれぞれ類似であるような場合」である。このような条件のネットワークは、人と人との関係や、組織と組織の関係などのソーシャルネットワークに現れやすい。また、論文や特許文献等の引用関係や、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）サイトのハイパーリンク関係にも現れる。従って、本発明は、上記のようなソーシャルネットワーク以外の類似な性質を持つネットワークの可視化システムとしても応用可能である。
【図面の簡単な説明】
【０１０７】
【図１】本発明の本実施例におけるネットワーク表示システムの機能ブロック図である。
【図２】本発明の本実施例におけるネットワーク表示システムを実現するコンピュータの構成図である。
【図３】本発明の本実施例におけるネットワーク表示システムに入力されたネットワークの例である。
【図４】本発明の本実施例におけるシソーラスの構成とノードの縮約のイメージ図である。
【図５】Ｋａｍａｄａ−Ｋａｗａｉアルゴリズムにおけるエネルギーの定義式である。
【図６】Ｋａｍａｄａ−Ｋａｗａｉアルゴリズムにおけるエネルギー定義式を分解した式である。
【図７】本発明の本実施例におけるネットワーク表示システムに入力されたネットワークの例である。
【図８】本発明の本実施例におけるノードＤＢの例である。
【図９】本発明の本実施例におけるリンクＤＢの例である。
【図１０】本発明の本実施例におけるリンクタイプ割付け後のノードＤＢの例である。
【図１１】本発明の本実施例における縮約可能ノードリストの例である。
【図１２】本発明の本実施例におけるネットワークＡでの縮約可能ノードの関係を示した図である。
【図１３】本発明の本実施例におけるシソーラスＤＢの例である。
【図１４】本発明の本実施例におけるノードとシソーラスの関係を登録した後のノードＤＢの例である。
【図１５】本発明の本実施例における削除フラグを記録したリンクＤＢの例である。
【図１６】本発明の本実施例における縮約したネットワークＡの例である。
【図１７】本発明の本実施例における縮約したネットワークＡの例である。
【図１８】本発明の本実施例における縮約したネットワークＡの例である。
【図１９】本発明の本実施例におけるネットワーク表示システムの動作フローである。
【図２０】本発明の本実施例におけるネットワーク表示システムの動作フローである。
【符号の説明】
【０１０８】
１  〜２７  ノード
１ａ〜１３ａ  ノード
０ｔ〜１２ｔ  シソーラス
５１  分類部
５２  構成部
５３  計算制御部
５４  計算部
５５  データ蓄積部
５６  入力部
５７  出力部
１００  処理部
２００  記憶部
３００  入力部
４００  出力部
５００  通信部
【図１】
2009134520.tif 000003
【図２】
2009134520.tif 000004
【図３】
2009134520.tif 000005
【図４】
2009134520.tif 000006
【図５】
2009134520.tif 000007
【図６】
2009134520.tif 000008
【図７】
2009134520.tif 000009
【図８】
2009134520.tif 000010
【図９】
2009134520.tif 000011
【図１０】
2009134520.tif 000012
【図１１】
2009134520.tif 000013
【図１２】
2009134520.tif 000014
【図１３】
2009134520.tif 000015
【図１４】
2009134520.tif 000016
【図１５】
2009134520.tif 000017
【図１６】
2009134520.tif 000018
【図１７】
2009134520.tif 000019
【図１８】
2009134520.tif 000020
【図１９】
2009134520.tif 000021
【図２０】
2009134520.tif 000022