(57)【要約】【課題】複数のノードをリンクで繋いだ２次元のグラフにてノード間の関連性を表現する際に、ノード間の関連性を確認できるようにする。【解決手段】本方法は、相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、複数のノードの各々について、算出された移動ベクトルで表示位置を移動させる移動処理と、取得処理と算出処理と移動処理とを繰り返す間に又は取得処理と算出処理と移動処理を実行する前に、複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じてノードの前記表示装置上で出力される表示位置を変更する処理とを含む。【選択図】図３
2014191757.tif 000002
【特許請求の範囲】
【請求項１】
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、
前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理と、
前記取得処理と前記算出処理と前記移動処理とを繰り返す間に又は前記取得処理と前記算出処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する処理と、
を含み、コンピュータにより実行される情報処理方法。
【請求項２】
前記算出処理が、
前記複数のノードの各々について、他のノードとの表示位置に関する第１の距離と、前記コンピュータがアクセス可能なデータ格納部に予め格納されており且つノード間の関連度に応じて予め設定されている、当該他のノードとの第２の距離との差に応じて重み付けられた、当該他のノードとの相対ベクトルの、他の全てのノードについての総和に応じて、移動ベクトルを算出する処理
である請求項１記載の情報処理方法。
【請求項３】
ノード間のリンクが、当該ノード間の関連度合いに応じて、前記表示装置での表示対象とするか否かが選択される
請求項１又は２記載の情報処理方法。
【請求項４】
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、
前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理と、
前記取得処理と前記算出処理と前記移動処理とを繰り返す間に又は前記取得処理と前記算出処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する処理と、
を、コンピュータに実行させるためのプログラム。
【請求項５】
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得部と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出し、前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理部と、
を有し、
前記取得部が、
前記取得部による取得処理と前記移動処理部による移動処理とを繰り返す間に又は前記取得処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付けると、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードをリンクで繋いだグラフの生成技術に関する。
【背景技術】
【０００２】
複数のノードをリンクで繋いだグラフを表示する際に、各ノードの位置をばねモデルなどの力学モデルに従ったアルゴリズムにて計算する技術が多数存在している。
【０００３】
このような技術では、ノードの数が多くなると、計算量や表示の問題から一部のノードについてはリンクで繋がないのが一般的となる。リンクでノード間を繋がない場合、それらのノード間に関連性がほとんど無い場合が多いが、実際にリンクが設けられないと、それらのノード間に関連性がほとんど無いという情報が、位置計算に反映されなくなる。すなわち、それらのノード間の関連性が「ほとんど無い」のではなく、関連性は「どうでもよい」というような形でノードの位置計算がなされることになる。よって、他の制約条件のために、関連性がほとんど無いノードが近くに配置されるような場合が出てくる。
【０００４】
近年、大量のデータからある知識を抽出する技術であるデータマイニングが注目されている。データマイニングにおいては、大量のデータに含まれる個々の要素の関連性を導出する解析が行われることが多い。例えば、メールの送信元と宛先とが関連性を有するとすると、あるユーザ群で送受信されるメールを解析すれば、ユーザ間の関連性を表すデータが抽出される。一般的に、あるユーザ間では頻繁にメールのやりとりがあるが、全くメールのやりとりを行わないユーザも存在するので、ユーザ間の関連性は様々である。
【０００５】
このようなユーザ間の関連性を表すデータを２次元のグラフで表現する際には、関連性をリンクの太さで表現する場合もあれば、上で述べたようにばねモデルなどの力学モデルを用いてユーザを表すノードの位置を最適化して最終的なノードの位置関係にてユーザ間の関連性を表現する場合もある。
【０００６】
後者のような表現方式を採用する場合、上で述べたような一般的な従来手法を採用すると、ノード間の関連性を誤認することがある。すなわち、近くに配置されるノード群にも拘わらず関連性が薄いノードが入っている場合も出てくる。特に、二次元でグラフを表現する場合には、スペースの問題からノードやリンクが重なってしまい、関連性が薄いにも拘わらず近隣に配置されているノードを確認できない。
【０００７】
なお、このようなグラフは静的なものとして取り扱われることが多いが、中にはノードの位置をユーザの指示に応じて変更できるようにするものもある。しかしながら、ノードの位置をユーザの指示に応じて動かすという意味合いについては明らかではない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】T. M. J. Fruchterman and E. M. Reingold: Graph drawing by force-directed placement, Software - Practice and Experience 18, 1129-1164 (1991)
【非特許文献２】Force-based graph drawing in AS3, ［平成２５年３月２２日検索］、インターネット＜URL: http://blog.ivank.net/force-based-graph-drawing-in-as3.html＞
【非特許文献３】Force-Directed graph drawing, ［平成２５年３月２２日検索］、インターネット＜URL: http://en.wikipedia.org/wiki/Force-directed_graph_drawing＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、一側面によれば、複数のノードをリンクで繋いだ２次元のグラフにてノード間の関連性を表現する際に、ノード間の関連性を確認できるようにするための技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の情報処理方法は、（Ａ）相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、（Ｂ）複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、（Ｃ）複数のノードの各々について、算出された移動ベクトルで表示位置を移動させる移動処理と、（Ｄ）取得処理と算出処理と移動処理とを繰り返す間に又は取得処理と算出処理と移動処理とを実行する前に、複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じてノードの前記表示装置上で出力される表示位置を変更する処理とを含む。
【発明の効果】
【００１１】
一側面によれば、複数のノードをリンクで繋いだ２次元のグラフにてノード間の関連性を表現する際に、ノード間の関連性を確認できるようになる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施の形態に係る情報処理装置の機能ブロック図である。
【図２】図２は、力の均衡について説明するための図である。
【図３】図３は、本実施の形態に係る処理の処理フローを示す図である。
【図４】図４は、関連度のデータの一例を示す図である。
【図５】図５は、第４データ格納部に格納されるデータの一例を示す図である。
【図６】図６は、表示されるグラフの一例を示す図である。
【図７】図７は、第３データ格納部に格納されるデータの一例を示す図である。
【図８】図８は、表示例を示す図である。
【図９】図９は、表示例を示す図である。
【図１０】図１０は、表示例を示す図である。
【図１１】図１１は、表示例を示す図である。
【図１２】図１２は、表示例を示す図である。
【図１３】図１３は、表示例を示す図である。
【図１４】図１４は、表示例を示す図である。
【図１５】図１５は、表示例を示す図である。
【図１６】図１６は、表示例を示す図である。
【図１７】図１７は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１３】
図１に、本実施の形態に係る情報処理装置１００等の機能ブロック図を示す。情報処理装置１００は、第１データ格納部１１０と、距離算出部１２０と、第２データ格納部１３０と、移動処理部１４０と、第４データ格納部１５０と、表示データ生成部１６０と、表示部１７０と、第３データ格納部１９０と、位置取得部１８０と、入力部２００とを有する。
【００１４】
第１データ格納部１１０は、例えばデータマイニングに係る処理を実行して要素間の関連度のデータを算出する解析装置３００から得られる要素ｉｊ間の関連度ａijのデータを格納する。例えば、関連度ａijは０．０乃至１．０で表現されるものとする。本実施の形態では、要素の全ての組み合わせについて関連度ａijが設定されて、以下で述べる基準距離も設定される。
【００１５】
距離算出部１２０は、第１データ格納部１１０に格納されている関連度のデータから、要素ｉに対応するノードｉと要素ｊに対応するノードｊとの間の基準距離ｄijを算出し、第２データ格納部１３０に格納する。上でも述べたように、ノードの全ての組み合わせについて基準距離ｄijが算出される。第３データ格納部１９０は、ノードｉの現在表示位置ｖi（＝（ｘ，ｙ）。二次元空間の座標値。）のデータを格納する。
【００１６】
移動処理部１４０は、第２データ格納部１３０に格納されているデータと、第３データ格納部１９０に格納されているデータとから、各ノードについて、移動先の表示位置ｖiのデータを算出して、第４データ格納部１５０に格納する。本実施の形態では、移動先の算出のために力学モデルの一例としてばねモデルを採用している。但し、後に説明するように慣性の力がノードに働かないようにする。
【００１７】
位置取得部１８０は、現在の表示位置のデータを、第４データ格納部１５０と入力部２００とから取得して、第３データ格納部１９０に格納する。
【００１８】
表示データ生成部１６０は、第４データ格納部１５０に格納されているノードの表示位置のデータと、第１データ格納部１１０に格納されている、ノード間の関連度ａijのデータとを用いて、グラフの表示データを生成し、表示部１７０に出力する。なお、ユーザが、マウスなどの入力装置を操作してノードの位置を動かす指示を入力部２００を介して入力すると、表示データ生成部１６０は、指示に応じてノードを動かす処理も行う。また、入力部２００からの、ノードの位置を動かす指示は位置取得部１８０にも出力され、位置取得部１８０は、第４データ格納部１５０に格納されているノードの表示位置を修正した上で、他のノードの表示位置と共に第３データ格納部１９０に格納する。
【００１９】
なお、本実施の形態では、原則として関連が強いノードをより近くに配置し、関連が薄いノード同士を遠くに配置することで、ノードに対応する要素間の関連を、グラフを見たユーザが直感的に理解できるようにするものである。このためには、ノードの全ての組み合わせについてリンクがあるものとしてばねモデルに基づきノードの配置処理を実行することになる。関連が薄いためにリンクがないということにしてしまってノードの位置を決定すると、関連が薄いという関係性を加味しないノード配置が得られてしまって問題だからである。すなわち、どのような関係性であってもよい、というのと同じように処理されて、関連が薄いノードが近くに配置されることが多くなる。より具体的には、関連の薄いノード間に斥力が働かなくなる。
【００２０】
但し、ノードの数が膨大となると、二次元のグラフではノード同士が重なったりして見づらくなる。しかし、上で述べたような直感性を維持するために、ノード同士の重なりを別の法則で解消するような方式は採用しない。
【００２１】
また、図２に模式的に示すように、ノードの全ての組み合わせについてリンクが存在するとしてノードの配置を算出しても、関連が強く強い引力が働くノードＡとノードＢに対して、他のたくさんのノードによる弱い斥力とが釣り合ってしまい、必ずしも強い関連を有するノードが近くに配置されない可能性がある。
【００２２】
このようなノード同士の重なりによる見づらさを解消し、さらに局所最適化のようにとりあえず力の均衡が生じているのか、それとも本当に関連の強いノードが近くに配置されているのかを検証する目的で、グラフを参照するユーザがインタラクティブにノード位置を動かすことができるようにしている。ばねモデルを採用している場合には、関連の強いノード群のうち１つのノードを引き離すと、他の関連の強いノードの方へ、すなわち元の位置に直ぐに戻って行くという、直感的で分かり易い現象を確認できる。一方、とりあえずの力の均衡が生じているためにその位置に配置されているだけであって、周辺のノードと関連の薄いノードを移動させると、元の位置に戻るよりも、他の位置に移動して安定的になるという現象を確認できる。このように、ノードを動かすことによって、周辺ノードとの関連の強さ、これによってノードの重要性を確認できる。
【００２３】
以下、図３乃至図７を用いて情報処理装置１００の処理内容について説明する。
【００２４】
まず、距離算出部１２０は、第１データ格納部１１０に格納されている、要素間の関連度ａijから、ノード間の基準距離ｄijを算出し、第２データ格納部１３０に格納する（図３：ステップＳ１）。
【００２５】
例えば図４に示すような関連度のデータが第１データ格納部１１０に格納されており、例えば、ｄij＝ｃ（１．０−ａij）2（ｃは係数）などで基準距離ｄijを算出する。但し、この式は一例であり、他の式を採用しても良い。但し、関連度＝０の場合にも距離が算出されることが好ましい。
【００２６】
なお、基準距離ｄijは、以下の行列Ｄのように表される。
【００２７】
【数１】
2014191757.tif 000003
ここではノードはｎ個あるものとしている。
【００２８】
また、位置取得部１８０は、各ノードｉ（１≦ｉ≦ｎ）についての初期表示位置ｖiを設定し、第３データ格納部１９０に格納する（ステップＳ３）。例えばランダムに設定する。
【００２９】
その後、移動処理部１４０は、各ノードｉについて、他のノードｊとの表示位置ｖjについての距離ｄ（ｖi，ｖj）と基準距離ｄijとの差（より具体的には、距離ｄ（ｖi，ｖj）で正規化された差）に応じて重み付けられた相対ベクトル（ｖj−ｖi）の総和に応じた移動ベクトルｆiを算出し、第４データ格納部１５０に格納する（ステップＳ５）。
【００３０】
具体的には、以下の式にて移動ベクトルｆiを算出する。
【００３１】
【数２】
2014191757.tif 000004
なお、δは、十分に小さい値である。すなわちループを繰り返す中で少しずつノードを移動させるものである。ｄ（ｖi，ｖj）は、表示位置ｖiと表示位置ｖjとの距離（例えばユークリッド距離）を算出する関数を表している。
上でも述べたように、この式は、１つのノードｉに対して、他の全てのノードｊからの力が、その基準距離ｄijとの差に応じて掛かることを表している。但し、この式は一例であり、他の式を採用するようにしても良い。例えば、この式ではばね定数は１であるが、他のばね定数の値を採用するようにしても良い。
【００３２】
但し、本実施の形態では、摩擦は無限大とし、慣性の力が全く働かないものとする。慣性の力をこのばねモデルで考慮に入れると、ノード配置の収束までに時間が掛かってしまう。上でも述べたように、ノード位置の変更を手動で行って関連の強さを確認する場合もあるが、収束までに時間が掛かると、確認開始までに時間が掛かるので、対話性が落ちる。また、ノードをユーザが動かすので、運動エネルギーが増加するが、慣性があるとするとそのために系が不安定になり、ノード配置が収束しない事態も生じ得る。このため慣性なしのばねモデルを採用している。なお、慣性の力がないとすると、速度の演算などが無くなり、演算量が少なくなるという効果がある。ひいては、対話性向上になるという効果もある。
【００３３】
さらに、ノードの重みについては、ばねでは動かないような十分に大きい重みが用いられる。
【００３４】
この演算は、以下の評価式を最小化するノード位置ｖiを求めるという問題において実行される演算である。
【００３５】
【数３】
2014191757.tif 000005
【００３６】
本実施の形態では、従来良く用いられるエネルギーなどのようなスカラ値ではなく、各ノードに掛かる力の方向（相対ベクトル）を考慮している点が、一般的な従来技術とは異なる。
【００３７】
そして、移動処理部１４０は、各ノードｉを、移動ベクトルｆiにて移動させて、移動先の表示位置を、移動ベクトルｆi＋現在の表示位置ｖiにて算出し、第４データ格納部１５０に格納する（ステップＳ７）。
【００３８】
例えば、図５に示すようなデータが第４データ格納部１５０に格納される。図５の例では、ノードの識別番号毎に、表示位置として２次元の座標値が格納されるようになっている。
【００３９】
そうすると、表示データ生成部１６０は、第４データ格納部１５０に格納されている各ノードの表示位置ｖiにノードを配置すると共に、例えば第１データ格納部１１０に格納されている関連度ａiに応じてノード間にリンクを設定したグラフの表示データを生成し、表示部１７０に表示する（ステップＳ９）。すなわち、所定値以下の関連度の場合には、リンクの表示を省略したり、所定値を超える関連度の場合にはリンクの太さを太くしたり、関連度に応じた太さのリンクを設定したりしても良い。但し、上でも述べたように基準距離ｄijは、ノードの全ての組み合わせについてリンクが存在するものとして算出されるし、ステップＳ５でもノードの全ての組み合わせについて考慮した上で移動ベクトルｆiが算出される。
【００４０】
例えば図６のような表示がなされる。図６は、４つのノードが存在する場合であって、各ノードに対応する要素間の関連度は図４に示すものであるとしている。このように、関連度が高い、ノード１とノード２の間のリンクは太くなっており、それらのノードは近くに配置される。同様に、関連度が高い、ノード２とノード４の間のリンクも太くなっており、近くに配置される。さらに、関連度が比較的高い、ノード３とノード４の間のリンクもやや太くなっており、比較的近くに配置される。その他のリンクは細くなって、両端のノードの配置も遠くなっている。
【００４１】
ここで処理を終了するようにユーザなどから指示があれば、もしくは予め設定されていた終了条件として、例えば、ステップＳ５で算出した移動ベクトルfiの総和が所定の値よりも小さいという条件を満たせば、（ステップＳ１１：Ｙｅｓルート）、処理を終了し、そうでなければ（ステップＳ１１：Ｎｏルート）、入力部２００は、ユーザからノードの移動指示がなされたか判断する（ステップＳ１２）。ノードの移動指示がなされていない場合には（ステップＳ１２：Ｎｏルート）、処理はステップＳ１５に移行する。
【００４２】
一方、ユーザがマウスなどを操作して、表示されたノードの配置位置を、例えばドラッグアンドドロップにより変更することで移動指示を入力した場合には（ステップＳ１２：Ｙｅｓルート）、入力部２００は当該移動指示を受け付け、表示データ生成部１６０に出力する。そうすると、表示データ生成部１６０は、移動指示に従って表示内容を変更して表示部１７０に出力する（ステップＳ１３）。
【００４３】
また、位置取得部１８０は、特に入力部２００から移動指示がなければ、第４データ格納部１５０に格納されている表示位置のデータをそのまま読み出して第３データ格納部１９０に格納する。一方、入力部２００が移動指示を受け付けた場合には、当該移動指示を位置取得部１８０に出力する。そうすると、位置取得部１８０は、当該移動指示に係るノードについては移動指示に応じて表示位置を変更した上で、他のノードについては第４データ格納部１５０に格納されている表示位置のデータを読み出して、第３データ格納部１９０に格納する（ステップＳ１５）。第３データ格納部１９０には、例えば図７に示すようなデータが格納される。ここでノード３の表示位置を（ｐ，ｑ）だけ変更させる指示がなされたものとする。そうすると、ノード３の表示位置が（ａ3＋ｐ，ｂ3＋ｑ）に変更される。そして処理はステップＳ５に戻る。
【００４４】
このような処理を繰り返すことで、以下に模式的に示すような表示がなされる。
【００４５】
例えば、多数の商品を取り扱うチェーン店において同じ日に同じ店舗から一緒に発注される商品群が関連しているとして、多数の店舗及び複数の日の発注を解析装置３００で解析すると、多数の商品間の関連性が抽出される。
【００４６】
例えば、ステップＳ３乃至Ｓ１５（ステップＳ１３を除く）を、ノード位置が一旦収束する、すなわち、ステップＳ５において算出したベクトルfiの総和が所定の値よりも小さくなるまで繰り返させると、図８のようなグラフが表示される。ここで「牛乳」ノードに着目する。「牛乳」ノードの周辺には「卵」ノード、「マヨネーズ」ノード、「カップ焼きそば」ノード、「食パン」ノードが存在している。ここで、図９に示すように、ユーザから「牛乳」ノードをドラッグすることで移動指示がなされると、「牛乳」ノードは移動するが、他のノードは、ばねの力では動かないほど十分に重いので移動しない。
【００４７】
図９の状態で「牛乳」ノードをユーザがドロップする、すなわちステップＳ１２でノードの表示位置の変更指示を検出すると、ステップＳ１３、Ｓ１５を経由して、さらにステップＳ５乃至Ｓ１５の処理が繰り返し実行されることにより、図１０に示すように、「牛乳」ノードは、元の位置に向かって移動し始める。そして、最終的には、図１１に示すように、「牛乳」ノードは、おおよそ元の位置、すなわち図８のグラフ上で配置されていた位置に戻る。このように、本当に周辺ノードと関連度が高いノードであれば、おおよそ元の位置に戻るので、ユーザは、グラフ上のノードを選択して任意の位置に移動させてみれば、周辺ノードと関連度が高いノードであるか否かを確認できる。このような周辺ノードと関連が強いノードについては、安定的な位置が少ないので、元の位置に戻りやすい。
【００４８】
なお、関連度が高ければ、移動速度も速くなる。慣性が働かないので、ステップＳ５乃至Ｓ１５の処理が１回行われる毎の移動距離が関連度が低い場合と比較して大きく、急速にノード位置が収束する。従って、直ぐに他のノードの検証を行うことができる。
【００４９】
なお、図８乃至図１１に示すように、本実施の形態では、周辺のノードと関連が強いノードは、当該周辺のノードと共に比較的中央に配置され、それらのノードの周りに比較的関連の薄いノードが取り巻くような表示になりやすい。これは、他のノードと関連の薄いノードにもリンクが存在しており、それらの間には弱い斥力が働くためである。
【００５０】
次に、図１２に示すように、「とうもろこし」ノードに着目する。周辺には、「ごはん」ノード、「つぶしあん」ノード、「マカロニ」ノードなどが存在している。そして、図１３に示すように、この「とうもろこし」ノードをユーザがドラッグして移動させ、その後「とうもろこし」ノードをドロップしたとする。そうすると、図１４に示すように、元の位置の方向に移動することは移動するが、図１５に示すように、「とうもろこし」ノードは元の位置には戻らず、元の位置とは異なる位置で収束する。このように周辺ノードと関連が薄いノードは、局所的に安定する位置が多数あるので、元の位置に戻らないことが多い。すなわち、局所最適のようにとりあえずノード位置が収束していただけであって、周辺ノードとの関連は強くなかったということが分かる。
【００５１】
以上のように、本実施の形態の処理を行うことで、ユーザは、２次元空間に複数のノードが配置されているグラフにおいて、関連が強い他のノードに囲まれているノードなのか、関連が薄いがたまたま配置されているノードなのかを確認できる。
【００５２】
また、送信元ユーザと宛先ユーザとが関連があるものとして、多数のメールを解析して関連度を算出した場合、上で述べたような処理を行えば、図１６に示すようなグラフが生成される。この図１６や図８でも分かるように、関連が強いノード群は、必ずしもグラフの中央に配置されるわけではなく、やや周辺にずれた位置に配置されることが多い。このような場合、他のノードと関連が薄いため周辺に追いやられているノードと、関連が強いノード群とある程度関連が強いので当該関連が強いノード群のやや外側に配置されているノードとは区別ができない場合がある。図１６の例では、楕円で囲んだあたりのノードについては、このような条件を満たすものである。従って、このようなエリアのノードのうちユーザが興味のあるノードについては、上で述べたように、ユーザがノードを選択して移動させてみれば、関連が強い内側のノード群と本当に関連があるのか否かを確認できる。
【００５３】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数ステップを並列に実行するようにしても良い。例えば、ノード位置がある程度収束するまで、すなわち、図３のステップＳ５において算出したベクトルfiの総和が所定の値よりも大きい場合はノードの移動指示を受け付けず、ノード位置がある程度収束した後、すなわちステップＳ５において算出したベクトルfiの総和が所定の値よりも小さくなった場合に、ノードの移動指示を受け付け、その後、ノード位置が収束する様子を表示させるようにしても良い。
【００５４】
また、機能ブロック図については一例であり、プログラムモジュール構成やファイル構成とは一致しない場合もある。
【００５５】
また、実施の形態の適用範囲は商品の関連性やユーザの関連性のみではなく、様々な分野に適用可能である。
【００５６】
さらに、情報処理装置１００は、１台のコンピュータではなく、複数のコンピュータで構成される場合もある。
【００５７】
なお、上で述べた情報処理装置１００は、コンピュータ装置であって、図１７に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００５８】
以上述べた本実施の形態をまとめると、以下のようになる。
【００５９】
本実施の形態に係る情報処理方法は、（Ａ）相互に関連する複数のノードの各々の表示位置を取得する取得処理と、（Ｂ）複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、（Ｃ）複数のノードの各々について、算出された移動ベクトルで表示位置を移動させる移動処理と、（Ｄ）取得処理と算出処理と移動処理とを繰り返す間に又は取得処理と算出処理と移動処理とを実行する前に、複数のノードのうちいずれかのノードの表示位置を強制的に変更させる指示を受け付け、当該指示に応じてノードの表示位置を変更する処理とを含む。
【００６０】
例えば、一旦表示位置が収束した後、ノードの表示位置を強制的に移動させると、移動後の表示位置に応じて移動ベクトルを再度算出するので、周辺ノードと関連が強いノードであればおおよそ元の位置に戻り、そうでなければ他のノード位置で収束する現象を観察できる。本来関連が強いノード群ほど近くに配置されるが、二次元空間でグラフを表示するために生ずる歪み等にて近くに配置されてしまったノードも存在する。上で述べた処理によれば、このようなノードであるか否かを容易に確認できる。なお、ノードの全ての組み合わせについてリンクが存在するとして移動ベクトルを算出するので、ノード間の関連が薄い場合であっても、互いに弱い斥力が働くようになって、適切なノード配置が得られるようになる。
【００６１】
なお、上で述べた算出処理が、複数のノードの各々について、他のノードとの表示位置に関する第１の距離と、データ格納部に予め格納されており且つノード間の関連度に応じて予め設定されている、当該他のノードとの第２の距離との差に応じて重み付けられた、当該他のノードとの相対ベクトルの、他の全てのノードについての総和に応じて、移動ベクトルを算出する処理である場合もある。このように慣性が働かないようにすれば、ノード位置の収束が安定的且つ高速化される。
【００６２】
また、ノード間のリンクが、当該ノード間の関連度合いに応じて表示の有無が選択されるようにしても良い。ノードの全ての組み合わせにてリンクが設定されるが、そのリンクを表示するか否か、どのように表示するか否かについては別途設定するものである。
【００６３】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００６４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６５】
（付記１）
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、
前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理と、
前記取得処理と前記算出処理と前記移動処理とを繰り返す間に又は前記取得処理と前記算出処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する処理と、
を含み、コンピュータにより実行される情報処理方法。
【００６６】
（付記２）
前記算出処理が、
前記複数のノードの各々について、他のノードとの表示位置に関する第１の距離と、前記コンピュータがアクセス可能なデータ格納部に予め格納されており且つノード間の関連度に応じて予め設定されている、当該他のノードとの第２の距離との差に応じて重み付けられた、当該他のノードとの相対ベクトルの、他の全てのノードについての総和に応じて、移動ベクトルを算出する処理
である付記１記載の情報処理方法。
【００６７】
（付記３）
ノード間のリンクが、当該ノード間の関連度合いに応じて、前記表示装置での表示対象とするか否かが選択される
付記１又は２記載の情報処理方法。
【００６８】
（付記４）
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得処理と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出する算出処理と、
前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理と、
前記取得処理と前記算出処理と前記移動処理とを繰り返す間に又は前記取得処理と前記算出処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付け、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する処理と、
を、コンピュータに実行させるためのプログラム。
【００６９】
（付記５）
相互に関連する複数のノードの各々について、表示装置に出力される表示位置を取得する取得部と、
前記複数のノードの各々について、慣性が働かない力学モデルに従って、他のノードとの表示位置に関する距離に関連して掛かる力の、他の全てのノードについての総和に応じた移動ベクトルを算出し、前記複数のノードの各々について、算出された前記移動ベクトルで表示位置を移動させる移動処理部と、
を有し、
前記取得部が、
前記取得部による取得処理と前記移動処理部による移動処理とを繰り返す間に又は前記取得処理と前記移動処理を実行する前に、前記複数のノードのうちいずれかのノードの表示位置を変更させるユーザの操作に応じた指示を受け付けると、当該指示に応じて前記ノードの前記表示装置上で出力される表示位置を変更する、
情報処理装置。
【符号の説明】
【００７０】
１００  情報処理装置
１１０  第１データ格納部
１２０  距離算出部
１３０  第２データ格納部
１４０  移動処理部
１５０  第４データ格納部
１６０  表示データ生成部
１７０  表示部
１８０  位置取得部
１９０  第３データ格納部
２００  入力部
【図１】
2014191757.tif 000006
【図２】
2014191757.tif 000007
【図３】
2014191757.tif 000008
【図４】
2014191757.tif 000009
【図５】
2014191757.tif 000010
【図６】
2014191757.tif 000011
【図７】
2014191757.tif 000012
【図１７】
2014191757.tif 000013
【図８】
2014191757.tif 000014
【図９】
2014191757.tif 000015
【図１０】
2014191757.tif 000016
【図１１】
2014191757.tif 000017
【図１２】
2014191757.tif 000018
【図１３】
2014191757.tif 000019
【図１４】
2014191757.tif 000020
【図１５】
2014191757.tif 000021
【図１６】
2014191757.tif 000022