(57)【要約】【課題】１つのグラフ構造が変化した複数のグラフ構造を同時に表示する場合、グラフ構造内で変化したノード及びエッジを簡単に確認することができなかった。【解決手段】それぞれが複数の要素から構成される複数のグラフ構造を１つのグラフ構造に集約して表示する表示装置であって、複数のグラフ構造を取得する取得部と、複数の要素のうち、複数のグラフ構造において変化しない非変化要素と、複数のグラフ構造の間で変更のあった変化要素とを判別する判別部と、複数のグラフ構造を集約する集約部と、変化要素および非変化要素が識別可能となるように、集約されたグラフ構造を表示する表示部と、を備える表示装置、当該表示装置による表示方法、及び、当該表示装置に用いられるプログラム。【選択図】図４
2014197279.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の要素から構成される複数のグラフ構造を１つのグラフ構造に集約して表示する表示装置であって、
前記複数のグラフ構造を取得する取得部と、
前記複数の要素のうち、前記複数のグラフ構造において変化しない非変化要素と、前記複数のグラフ構造の間で変更のあった変化要素とを判別する判別部と、
前記複数のグラフ構造を集約する集約部と、
前記変化要素および前記非変化要素が識別可能となるように、集約されたグラフ構造を表示する表示部と、
を備える表示装置。
【請求項２】
前記取得部は、前記複数の要素のそれぞれとしてノード及びエッジを含むグラフ構造を取得する、
請求項１に記載の表示装置。
【請求項３】
前記取得部は、時系列に沿った複数の時点における前記複数のグラフ構造を取得する、
請求項２に記載の表示装置。
【請求項４】
前記集約されたグラフ構造において２以上の前記要素を１つの縮退要素に縮退する縮退部を備え、
前記表示部は、前記集約されたグラフ構造の表示において前記２以上の要素に代えて、前記縮退要素を表示する、
請求項３に記載の表示装置。
【請求項５】
前記縮退部は、２以上の非変化要素を縮退し、
前記表示部は、前記集約されたグラフ構造の表示において前記２以上の非変化要素に代えて、前記縮退要素を表示する、
請求項４に記載の表示装置。
【請求項６】
ユーザからの操作を入力する入力部をさらに備え、
前記縮退要素を展開する操作を前記入力部が入力したことに応じて、
前記表示部は、前記縮退要素に代えて前記縮退要素に縮退される前の前記２以上の要素を表示する、
請求項４又は５に記載の表示装置。
【請求項７】
前記表示部は、前記複数の時点を示す時系列を表示し、
前記時系列上の一の時点を選択する操作が入力されたことに応じて、前記表示部は前記一の時点に対応するグラフ構造を表示する、
請求項３から６のいずれか１項に記載の表示装置。
【請求項８】
前記表示部は、前記一の時点に対応するグラフ構造において、前記集約されたグラフ構造における位置と同じ位置に前記ノードを表示する、
請求項７に記載の表示装置。
【請求項９】
前記集約部は、前記時系列上の２以上の時点を選択する操作が入力されたことに応じて、選択された前記２以上の時点に対応する２以上のグラフ構造を集約したグラフ構造を生成し、
前記表示部は、前記２以上の時点に対応する２以上のグラフ構造を集約したグラフ構造を表示する、
請求項７に記載の表示装置。
【請求項１０】
前記要素は、属性名と前記属性名に対応する属性値を有し、
前記判別部は、ユーザから属性名の指定を入力されたことに応じて、前記複数の要素のうち、指定された前記属性名に対応する属性値が変化しない非変化要素と、指定された前記属性名に対応する属性値が変更された変化要素とを判別する、
請求項６から９のいずれか１項に記載の表示装置。
【請求項１１】
一のノードを選択する操作を入力したことに応じて、前記表示部は前記一のノードが変化する前後の時点におけるグラフ構造を表示する、
請求項６から９のいずれか１項に記載の表示装置。
【請求項１２】
前記判別部は、前記時系列で隣接する２つの時点に対応する２つのグラフ構造の間で変化する要素の数を算出し、
前記表示部は、前記時系列の前記隣接する２つの時点の間に前記変化する要素の数を表示する、
請求項７から９のいずれか１項に記載の表示装置。
【請求項１３】
前記表示部は、複数のグラフ構造の間で変更のあったノードの位置を、前記集約されたグラフ構造において移動させて表示する、
請求項２に記載の表示装置。
【請求項１４】
前記表示部は、前記集約されたグラフ構造において、前記変更のあったノードの位置を、前記ノードの変更の量に応じて移動して表示する、
請求項１３に記載の表示装置。
【請求項１５】
前記表示部は、複数の時点において削除された後に再び生成された前記変化要素が識別可能となるように前記集約されたグラフ構造を表示する
請求項１から１４のいずれか１項に記載の表示装置。
【請求項１６】
それぞれが複数の要素から構成される複数のグラフ構造を１つのグラフ構造に集約して表示する表示装置により、
前記複数のグラフ構造を取得する取得段階と、
前記複数の要素のうち、前記複数のグラフ構造において変化しない非変化要素と、前記複数のグラフ構造の間で変更のあった変化要素とを判別する判別段階と、
前記複数のグラフ構造を集約する集約段階と、
前記変化要素および前記非変化要素が識別可能となるように、集約されたグラフ構造を表示する表示段階と、
を実行させる表示方法。
【請求項１７】
コンピュータを、それぞれが複数の要素から構成される複数のグラフ構造を１つのグラフ構造に集約して表示する表示装置として機能させるプログラムであって、
当該プログラムは、前記コンピュータを、
前記複数のグラフ構造を取得する取得部と、
前記複数の要素のうち、前記複数のグラフ構造において変化しない非変化要素と、前記複数のグラフ構造の間で変更のあった変化要素とを判別する判別部と、
前記複数のグラフ構造を集約する集約部と、
前記変化要素および前記非変化要素が識別可能となるように、集約されたグラフ構造を表示する表示部と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示装置、表示方法、及びプログラムに関する。
【背景技術】
【０００２】
複数のグラフ構造を同時に表示する方法として、異なるデータをもとに生成した２つのグラフ構造の違いを強調して表示する方法が知られている（例えば、特許文献１参照）。
［特許文献１］  特開２００８−１５２７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、複数のノード等の変化の有無及び変化の様子が明確になるように、複数のグラフ構造を１つのグラフ構造に集約して表示することができなかった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、それぞれが複数の要素から構成される複数のグラフ構造を１つのグラフ構造に集約して表示する表示装置であって、複数のグラフ構造を取得する取得部と、複数の要素のうち、複数のグラフ構造において変化しない非変化要素と、複数のグラフ構造の間で変更のあった変化要素とを判別する判別部と、複数のグラフ構造を集約する集約部と、変化要素および非変化要素が識別可能となるように、集約されたグラフ構造を表示する表示部と、を備える表示装置、当該表示装置による表示方法、及び、当該表示装置に用いられるプログラムを提供する。
【０００５】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】図１は、本実施形態のシステム１の構成を示す。
【図２】本実施形態の表示装置１０の処理フローを示す。
【図３】時系列に沿って変化する複数のグラフ構造の一例を示す。
【図４】表示部１１０が表示する集約グラフ構造の一例を示す。
【図５】入力部１１２が一の要素を選択する操作を入力する場合の表示部１１０の表示の一例を示す。
【図６】表示部１１０の縮退要素を含む集約グラフ構造の表示の一例を示す。
【図７】入力部１１２が一の時点を選択する操作を入力する場合の表示部１１０の表示の一例を示す。
【図８】入力部１１２が２以上の時点を選択する操作を入力する場合の表示部１１０の表示の一例を示す。
【図９】入力部１１２が属性名を選択する操作を入力する場合の表示部１１０の表示の一例を示す。
【図１０】本実施形態の第１変形例における表示部１１０の表示の一例を示す。
【図１１】本実施形態の第２変形例における集約グラフ構造の一例を示す。
【図１２】本実施形態の第３変形例における集約グラフ構造の一例を示す。
【図１３】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態のシステム１の構成を示す。システム１は、複数のグラフ構造を管理し、複数のグラフ構造を集約して表示する。システム１は、データベース２、及び、表示装置１０を備える。
【０００９】
データベース２は、一例として、系列に沿って変化する複数のグラフ構造を格納する記憶装置である。データベース２は、系列に沿った複数のグラフ構造として、直列に配置される複数の時刻又は場所等に対応する複数のグラフ構造の集合（例えば、時系列上の各時点に対応する複数のグラフ構造）を格納する。
【００１０】
データベース２は、複数の要素から構成されるグラフ構造を格納する。データベース２は、複数の要素のそれぞれとしてノード及びエッジを含むグラフ構造を格納してよい。データベース２は、格納したグラフ構造を表示装置１０に供給する。
【００１１】
データベース２は、複数のグラフ構造として、例えば、販売時期ごとにバージョンが異なる同一の製品（例えば、自動車、及び、家電製品）の構造を複数のグラフ構造として格納してよい。また、例えば、データベース２は、開発中のタイミング毎にバージョン又はリビジョンが異なる開発途中の同一プログラムの構造（例えば、プログラムコールグラフ）を複数のグラフ構造として格納してよい。なお、データベース２は、表示装置１０に設けられる記憶装置であってもよい。
【００１２】
表示装置１０は、データベース２から取得した複数のグラフ構造を１つのグラフ構造に集約して表示する。表示装置１０は、取得部１０２、判別部１０４、集約部１０６、縮退部１０８、表示部１１０、及び、入力部１１２を有する。
【００１３】
取得部１０２は、複数のグラフ構造をデータベース２から取得する。例えば、取得部１０２は、時系列に沿った複数の時点における複数のグラフ構造を取得する。取得部１０２は、取得した複数のグラフ構造を判別部１０４に供給する。
【００１４】
判別部１０４は、取得部１０２から供給された複数のグラフ構造に含まれる複数の要素のうち、複数のグラフ構造において変化しない非変化要素と、複数のグラフ構造の間で変更のあった変化要素とを判別する。判別部１０４は、複数のグラフ構造に変化要素及び非変化要素の情報を含めて集約部１０６に供給する。
【００１５】
集約部１０６は、判別部１０４から供給された複数のグラフ構造を集約する。例えば、集約部１０６は、複数のグラフ構造において、同一の又は対応関係にあるノードを１つのノードに集約し、同一の又は対応関係にあるエッジを１つのエッジに集約することにより、複数のグラフ構造を１つのグラフ構造に集約したグラフ構造（本明細書において「集約グラフ構造」ともいう）を生成する。
【００１６】
ここで、集約部１０６は、変化要素と非変化要素を識別可能となるように集約グラフ構造を生成する。集約部１０６は、複数のグラフ構造、及び、集約グラフ構造を縮退部１０８に供給する。
【００１７】
縮退部１０８は、集約部１０６から供給された集約グラフ構造において、２以上の要素を１つの縮退された要素（本明細書において「縮退要素」ともいう）に縮退する。縮退部１０８は、複数のグラフ構造、集約グラフ構造、及び、縮退要素の情報を表示部１１０に供給する。
【００１８】
表示部１１０は、ディスプレイ等の表示機器に接続されて、変化要素および非変化要素が識別可能となるように、縮退部１０８から供給された集約グラフ構造を表示機器に表示する。例えば、表示部１１０は、集約グラフ構造において、変化要素であることを視覚的に示すインジケータを、非変化要素を示すインジケータと異なるように表示してよい。
【００１９】
表示部１１０は、集約グラフ構造において、２以上の要素が縮退された縮退要素を表示する。また、表示部１１０は、入力部１１２を介して縮退要素を展開する操作をユーザから入力したことに応じて、集約グラフ構造において、縮退要素に代えて縮退要素に縮退される前の２以上の要素を表示してよい。
【００２０】
また、表示部１１０は、集約グラフ構造に併せて、複数の時点を示す時系列を表すインターフェイスを表示する。時系列上の一又は複数の時点を選択する操作が、入力部１１２を介してユーザから入力されたことに応じて、表示部１１０は、選択された時点に対応するグラフ構造を表示する。
【００２１】
入力部１１２は、マウス、キーボード、及び、タッチパネル等の入力機器に接続され、ユーザからの様々な操作を入力する。例えば、入力部１１２は、集約対象となる複数のグラフ構造を選択する操作をユーザから入力して取得部１０２に通知する。例えば、入力部１１２は、集約グラフ構造に含まれる要素のいずれかを選択する操作をユーザから入力して取得部１０２に通知する。例えば、入力部１１２は、変化要素と非変化要素を判別する際に着目する変化の対象をユーザから入力し、当該変化の対象を判別部１０４に供給する。
【００２２】
例えば、入力部１１２は、時系列上の一又は複数の時点を選択する操作をユーザから入力し、当該操作の内容を集約部１０６及び表示部１１０に通知する。また、例えば、入力部１１２は、縮退要素を展開する操作をユーザから入力して、当該操作の内容を表示部１１０に通知する。
【００２３】
このように、本実施形態の表示装置１０によれば、取得部１０２が取得した複数のグラフ構造中の変化要素と非変化要素を判別部１０４により判別し、複数のグラフ構造を集約部１０６が集約グラフ構造に集約し、変化要素等が識別可能となるように表示部１１０が集約グラフ構造を表示する。これにより、表示装置１０は、系列上の複数のグラフ構造におけるノード及びエッジ等の変化の有無及び変化の内容を、集約グラフ構造上でユーザに示すことができる。
【００２４】
図２は、本実施形態の表示装置１０による表示方法の処理フローを示す。本実施形態において、表示装置１０は、Ｓ１０２〜Ｓ１３０の処理を実行する。
【００２５】
まず、Ｓ１０２において、取得部１０２は、１つのグラフ構造から時系列に沿って変化する複数のグラフ構造を取得する。取得部１０２は、予め定められた複数のグラフ構造を取得してよく、これに代えて、入力部１１２を介してユーザから指定されたグラフ構造を取得してよい。また、取得部１０２は、複数のグラフ構造として、エッジの向きを区別する有向グラフ、又は、エッジの向きを区別しない無向グラフを取得してよい。
【００２６】
取得部１０２は、複数のグラフ構造における、グラフ構造を時系列上で一意に識別するグラフＩＤ、及び、グラフ構造の時系列上の時点を示すタイムスタンプを取得する。
【００２７】
また、例えば、取得部１０２は、複数のグラフ構造のそれぞれに含まれる複数の要素の情報を取得する。一例として、取得部１０２は、複数の要素の情報として、ノードを識別するノードＩＤ、ノードの属性集合、ノードが属するグラフ構造のグラフＩＤ、ノードが属するグラフ構造のタイムスタンプ、及び、ノードが属するグラフ構造中のノードの座標とグラフ構造の階層構造におけるルートノードからのパス等の情報との少なくとも一方を含む表示コンテキストを取得する。
【００２８】
また、取得部１０２は、複数の要素の情報として、エッジを識別するエッジＩＤ、エッジの属性集合、エッジの両端を構成するノードのノードＩＤの組、エッジが属するグラフ構造のグラフＩＤ、及び、エッジが属するグラフ構造のタイムスタンプを取得する。取得部１０２は、エッジＩＤとして、エッジの両端を構成するノードのノードＩＤの組を取得してもよい。取得部１０２は、有向グラフを取得する場合、エッジの両端を構成するノードのノードＩＤの記載順序からエッジの向きを取得してもよい。
【００２９】
取得部１０２は、ノード及びエッジの属性集合として、１又は複数の属性名及び属性名に対応する属性値の組を取得する。取得部１０２は、取得した複数のグラフ構造のＩＤ等、及び、複数のグラフ構造の各要素のＩＤ等を判別部１０４に供給する。
【００３０】
次に、Ｓ１０４において、判別部１０４は、取得部１０２から供給される複数のグラフ構造に含まれる複数の要素のうち、複数のグラフ構造において変化しない非変化要素と、複数のグラフ構造の間で変更のあった変化要素とを判別する。
【００３１】
例えば、判別部１０４は、複数のグラフ構造に含まれる同一のノードＩＤを有する１又は複数のノードをグループ化し、グループ化された同一のＩＤの１又は複数のノードにおいて、あるグラフ構造から時系列上で次の時点のグラフ構造に至る間に、生成され、削除され、又は、少なくとも１つの属性名に対応する属性値が変更されたノードを変化要素（すなわち「変化ノード」）と判別し、それ以外のノードを非変化要素（すなわち「非変化ノード」）と判別する。
【００３２】
さらに、判別部１０４は、複数のグラフ構造に含まれる同一のエッジＩＤを有する１又は複数のエッジをグループ化し、グループ化された同一ＩＤの１又は複数のエッジにおいて、あるグラフ構造から時系列上で次の時点のグラフ構造に至る間に、生成され、削除され、両端を構成するノードが変更され、又は、少なくとも１つの属性名に対応する属性値が変更されたエッジを変化要素（すなわち「変化エッジ」）と判別し、それ以外のエッジを非変化要素（すなわち「非変化エッジ」）と判別する。
【００３３】
ここで、判別部１０４は、入力部１１２から属性名の指定操作を受け取っている場合には、入力部１１２に指定された属性名に対応する属性値が変更されたノード／エッジを変化ノード／変化エッジとして判別してよい。
【００３４】
また、判別部１０４は、時系列で隣接する２つの時点に対応するグラフ構造の間で変化する要素の数を算出する。例えば、判別部１０４は、時系列上で隣接する２つの時点に対応するグラフ構造において、生成され、削除され、又は、属性値が変更されたノード、及び、生成され、削除され、両端を構成するノードが変更され、又は、属性値が変更されたエッジの数を算出する。
【００３５】
判別部１０４は、複数のグラフ構造の各要素に、変化要素／非変化要素である旨の情報を追加して集約部１０６に供給する。また、判別部１０４は、隣接する２つの時点に対応するグラフ構造の間で変化する要素の数を、当該２つの時点と対応づけて集約部１０６に供給する。
【００３６】
次に、Ｓ１０６において、集約部１０６は、判別部１０４から供給された複数のグラフ構造を集約する。例えば、集約部１０６は、複数のグラフ構造の同一のノードＩＤを有する１又は複数のノードを１つのノードとして集約し、同一のエッジＩＤを有する１又は複数のエッジを１つのエッジとして集約し、これらのノード及びエッジの情報に変化の情報を含める。
【００３７】
一例として、まず、集約部１０６は、判別部１０４が変化要素と判断した要素に対して、複数のグラフ構造に基づき、要素のＩＤごとに変更の内容、及び、変更のあった時点についての情報を生成する。次に、集約部１０６は、各ノードが、ノードＩＤ、属性集合、変化要素／非変化要素である旨、変更の内容と変更のあった時点とを含む変化情報、表示コンテキスト、及び、表示座標等を有し、各エッジがエッジＩＤ、属性集合、変化情報、及び、両端を構成するノードのノードＩＤ等を有する、集約グラフ構造を生成する。
【００３８】
これにより、集約部１０６は、ＩＤごとに複数のグラフ構造に含まれる全てのノード及び全てのエッジを含み、変化要素及び非変化要素が識別可能な集約グラフ構造を生成する。
【００３９】
集約部１０６は、集約グラフ構造における各ノードの座標を予め定められた規則に基づいて決定してよい。例えば、集約部１０６は、可能な限り集約前の複数のグラフ構造とレイアウトが近くなるように、集約グラフ構造における各ノードの座標を算出してよい。一例として、集約部１０６は、複数のグラフ構造における各ノードの座標から算出される平均座標を集約グラフ構造における各ノードの座標としてよい。また、別の一例として、複数のグラフ構造の一部に特定の種類のエッジを有するツリー構造が含まれる場合、集約部１０６は、集約グラフ構造の少なくとも一部に当該エッジを有するツリー構造がそのまま維持されるように、各ノードの座標を算出してよい。
【００４０】
また、例えば、集約部１０６は、２以上のノードのそれぞれの間には、ばねによる引力−反発力、重力、又は、電磁力等の物理的な力が存在すると仮定し、各ノードはノード間の物理的な力によってそれぞれが安定的な位置に移動すると仮定したモデルを用いて、各ノードの座標を算出してよい。
【００４１】
一例として、集約部１０６は、ノードを予め定められた質量を有する点、エッジを予め定められた長さを有するばねと想定し、系全体が物理的に安定するように（例えば、全ノードに印加される力の合計が予め定められた大きさ以下となるように）各ノードを配置した座標を算出してよい。
【００４２】
さらに、集約部１０６は、ノード間に電磁的な斥力が生じることを想定してよい。これにより、集約部１０６は、集約グラフ構造においてエッジにより接続していない複数のノードが近接して重なることを防ぐことができる。集約部１０６は、複数のグラフ構造、及び、集約グラフ構造の情報を縮退部１０８に供給する。
【００４３】
次に、Ｓ１０８において、縮退部１０８は、集約部１０６から供給された集約グラフ構造において、２以上の要素を縮退要素に縮退する。例えば、縮退部１０８は、集約グラフ構造において、予め定められたルールに従って、２以上の要素をグループ化することにより、当該２以上の要素のグループを表す縮退要素を生成する。
【００４４】
例えば、縮退部１０８は、集約グラフ構造の２以上の非変化要素同士を非変化縮退要素に縮退し、２以上の変化要素同士を変化縮退要素に縮退してよい。一例として、縮退部１０８は、集約グラフ構造における２以上の非変化ノードを縮退して非変化縮退ノードを生成し、２以上の非変化エッジを縮退して非変化縮退エッジを生成してよい。
【００４５】
また、一例として、縮退部１０８は、集約グラフ構造における非変化ノード−非変化エッジ−非変化ノードを縮退して１つの非変化縮退ノードを生成し、変化ノード−変化エッジ−変化ノードを縮退して１つの変化縮退ノードを生成してもよい。これにより、縮退部１０８は、集約グラフ構造の変化する部分、及び、変化しない部分を両者の境界を保存したまま、集約グラフ構造を簡略化することができる。
【００４６】
また、例えば、縮退部１０８は、集約グラフ構造における１以上の変化要素と１以上の非変化要素とを変化縮退要素に縮退してよい。一例として、縮退部１０８は、集約グラフ構造における１以上の変化ノード及び１以上の非変化ノード等を縮退して変化縮退ノードを生成し、１以上の変化エッジ及び１以上の非変化エッジ等を縮退して変化縮退エッジを生成してよい。これにより、縮退部１０８は、縮退要素が変化要素を含むことを示しながら、集約グラフ構造を簡略化することができる。
【００４７】
また、縮退部１０８は、集約グラフ構造全体のノードの位置を再計算してもよく、これに代えて、縮退されていないノードの位置を固定し、縮退されたノードの位置のみを再計算してもよい。縮退部１０８は、Ｓ１０６における集約部１０６による各ノードの座標の計算と同様の物理的なモデルを用いて、縮退後のノードの位置を計算してよい。縮退部１０８は、物理的なモデルを用いることにより、縮退後の集約グラフ構造のレイアウトを縮退前に近づけることができる。
【００４８】
縮退部１０８は、縮退要素の情報として、縮退要素に含まれるノード及びエッジの情報、変化縮退要素／非変化縮退要素の区別、表示コンテキスト、及び、座標等を生成する。
【００４９】
縮退部１０８は、予め定められた条件を満たすまで複数の要素の縮退を繰り返してよい。例えば、縮退部１０８は、集約グラフ構造に含まれる要素の数が一定以下になるまで、複数の要素を縮退してよい。また、縮退部１０８は、集約グラフ構造の全ての要素を縮退の対象としてよく、これに代えて、集約グラフ構造の一部の要素を縮退の対象としてよい。
【００５０】
縮退部１０８は、複数のグラフ構造、集約グラフ構造、及び、縮退要素の情報を表示部１１０に供給する。さらに、縮退部１０８は、隣接する２つの時点に対応するグラフ構造の間で変化する要素の数を、表示部１１０に供給する。
【００５１】
次に、Ｓ１１０において、表示部１１０は、変化要素および非変化要素が識別可能となるように、縮退部１０８から供給された集約グラフ構造を表示する。集約グラフ構造が縮退要素を含む場合には、表示部１１０は、変化縮退要素と非変化縮退要素とが識別可能となるように集約グラフ構造を表示する。
【００５２】
例えば、表示部１１０は、集約グラフ構造の表示において、変化縮退要素／非変化縮退要素の情報に基づいて、２以上の変化要素を変化縮退要素に置き換え、２以上の非変化要素を非変化縮退要素に置き換えて表示する。
【００５３】
表示部１１０は、集約グラフ構造に併せて、複数のグラフ構造のいずれかをユーザに選択させるためのインターフェイスを表示する。例えば、表示部１１０は、複数のグラフ構造に対応する複数の時点を示す時系列を表示する。一例として、表示部１１０は、複数の時点を示す時系列を示す直線上に、複数のグラフ構造に含まれるタイムスタンプの時刻に対応する時点を順番に配置した時系列バーを表示してもよい。
【００５４】
表示部１１０は、時系列バー上で隣接する２つの時点の間に変化する要素の数を表示してよい。これにより、表示部１１０は、時系列上で変化する複数のグラフ構造において、どの時点で多数の変化があったかを表示することができる。
【００５５】
また、表示部１１０は、集約グラフ構造の要素に含まれる全部又は一部の属性名を選択させるチェックボックス等を表示する。これにより、表示部１１０は、入力部１１２を介してユーザに、変化要素と非変化要素を判別する際に着目する属性を入力させることができる。
【００５６】
次に、Ｓ１１２において、入力部１１２はユーザからの操作を入力する。例えば、入力部１１２は、表示部１１０が表示する集約グラフ構造、及び、時系列バー等に対するユーザの操作を入力する。
【００５７】
次に、Ｓ１１４において、入力部１１２は、表示部１１０が表示する集約グラフ構造又は一の時点に対応するグラフ構造に含まれる要素のうち一の要素を選択する操作をユーザから入力したか否かを判断する。入力部１１２は、一の要素を選択する操作をユーザから入力した場合には、処理をＳ１１６に進め、そうでない場合には処理をＳ１１８に進める。
【００５８】
Ｓ１１６において、表示部１１０は、選択された一の要素が変化する前後の時点におけるグラフ構造を表示する。例えば、表示部１１６は、集約グラフ構造において、選択された要素の変化情報から当該要素に変更のあった前後の時点を示す情報を抽出し、当該変更のあった前後の時点のグラフ構造を表示する。
【００５９】
次に、表示装置１０は、処理をＳ１１２に戻す。これに代えて、入力部１１２が変更のあった前後の時点のグラフ構造の表示を終了する操作をユーザから入力した場合、表示部１１０は、変更のあった前後の時点のグラフ構造に代えて元の集約グラフ構造を表示して、処理をＳ１１２に戻してもよい。
【００６０】
Ｓ１１８において、入力部１１２は、表示部１１０が表示する集約グラフ構造又は一の時点に対応するグラフ構造に含まれる要素のうちの複数の要素を縮退する操作をユーザから入力したか否かを判断する。入力部１１２は、複数の要素を縮退する操作をユーザから入力した場合には、処理をＳ１２０に進め、そうでない場合には処理をＳ１２２に進める。
【００６１】
Ｓ１２０において、表示部１１０は、選択された複数の要素を縮退した集約グラフ構造を表示する。例えば、縮退部１０８は、選択された複数の要素を縮退した集約グラフ構造をＳ１０８と同様に生成し、表示部１１０は縮退部１０８が生成した集約グラフ構造を表示する。次に、表示装置は処理をＳ１１２に戻す。
【００６２】
Ｓ１２２において、入力部１１２は、集約グラフ構造内の縮退要素を展開する操作をユーザから入力したか否かを判断する。入力部１１２は、縮退要素を展開する操作をユーザから入力した場合には、処理をＳ１２４に進め、そうでない場合には処理をＳ１２６に進める。なお、表示部１１０が表示するグラフ構造に縮退要素が含まれない場合、表示装置１０はＳ１２２の処理を省略してＳ１２６に処理を進めてよい。
【００６３】
Ｓ１２４において、表示部１１０は、縮退要素に代えて縮退要素に縮退される前の２以上の要素を集約グラフ構造に表示する。例えば、表示部１１０は、縮退要素に含まれる情報から、縮退される前の２以上の要素の情報を取得し、当該要素の情報を表示する。表示装置１０は、処理をＳ１１２に戻す。
【００６４】
Ｓ１２６において、入力部１１２は、表示部１１０が表示する時系列上で一又は２以上の時点を選択する操作をユーザから入力したか否かを判断する。入力部１１２は、一又は２以上の時点を選択する操作をユーザから入力した場合には、処理をＳ１２８に進め、そうでない場合には処理をＳ１３０に進める。
【００６５】
Ｓ１２８において、表示部１１０は、選択された当該一又は２以上の時点に対応するグラフ構造を表示する。例えば、一の時点を選択する操作を入力した場合、表示部１１０は、選択された一の時点に対応するグラフ構造を表示する。
【００６６】
ここで、表示部１１０は、一の時点に対応するグラフ構造において、Ｓ１１０において表示した集約グラフ構造における各ノードの位置と同じ位置に各ノードに対応するノードを配置して表示してよい。これにより、表示部１１０は、集約グラフ構造と一の時点に対応するグラフ構造を切り替えて表示した場合に、同一のノードの識別を容易にし、表示のちらつき等を抑えるように一の時点のグラフ構造を表示できる。
【００６７】
２以上の時点を選択する操作を入力した場合、入力部１１２は、判別部１０４に選択された２以上の時点の情報を提供し、判別部１０４はＳ１０４の処理と同様に２以上の時点に対応する２以上のグラフ構造において非変化要素と変化要素を判別する。判別部１０４は、２以上のグラフ構造等の情報を集約部１０６に供給する。
【００６８】
集約部１０６はＳ１０６の処理と同様に複数のグラフ構造のうち当該選択された２以上の時点に対応する２以上のグラフ構造を集約して、サブ集約グラフ構造を生成する。集約部１０６は、選択された２以上のグラフ構造、及び、生成したサブ集約グラフ構造の情報を縮退部１０８に供給する。
【００６９】
縮退部１０８は、Ｓ１０８の処理と同様に、サブ集約グラフ構造において２以上の要素を縮退要素に縮退する。縮退部１０８は、Ｓ１０８において用いられたルールと同じルールに従って２以上の要素を縮退してよい。これにより、縮退部１０８は、表示部１１０に、集約グラフ構造と対比しやすいようにサブ集約グラフ構造を表示させることができる。
【００７０】
縮退部１０８は、サブ集約グラフ構造及び縮退要素の情報等を表示部１１０に供給する。次に、表示部１１０は、縮退部１０８から供給された集約グラフ構造を表示する。表示装置１０は、処理をＳ１１２に戻す。
【００７１】
Ｓ１３０において、入力部１１２は、ユーザから属性名を指定する操作を入力したか否かを判断する。例えば、入力部１１２は、ユーザから表示部１１０が表示する属性名のうちいずれかを指定する操作、又は、いずれかの属性名の指定を解除する操作を入力したかを判断する。
【００７２】
入力部１１２は、ユーザから属性名を指定する操作を入力したと判断する場合は処理をＳ１０４に戻し、そうでない場合は処理をＳ１１２に戻す。２回目以降のＳ１０４において、判別部１０４は、複数の要素のうち、生成され、削除され、又は、指定された属性名に対応する属性値が変更された変化要素と、生成されず、削除されず、及び、指定された属性名に対応する属性値が変化しない非変化要素とを判別する。
【００７３】
これにより、入力部１１２が属性名の指定操作を受け取った場合に、判別部１０４は、ユーザに指定された属性名に係る属性値の変化に基づき、改めて変化要素及び非変化要素を判別することができる。
【００７４】
このように、本実施形態の表示方法によれば、表示装置１０により、複数のグラフ構造におけるノード及びエッジ等の変化を集約グラフ構造内でユーザに表示することができ、さらにユーザからの操作を入力することに応じて、任意の要素の変化の様子を表示させ、選択された要素を縮退又は展開し、任意の時点に対応するグラフ構造又はサブ集約グラフ構造を表示し、着目する属性名を変更した集約グラフ構造を表示することができる。
【００７５】
また、本実施形態のＳ１０６等において集約部１０６が集約グラフ構造における各ノードの座標を決定し、Ｓ１０８等において縮退部１０８が縮退後のノードの位置を計算しているが、これらに代えて、Ｓ１１０等において表示部１１０が集約グラフ構造における各ノードの座標及び縮退後の各ノードの位置を決定してもよい。
【００７６】
図３は、時系列に沿って変化する複数のグラフ構造の一例を示す。グラフ構造Ｇ１は、時点ｔ１におけるグラフ構造を示す。グラフ構造Ｇ１は、ノードＡ、Ｂ、Ｃ、Ｄ及びＧを有し、ノードＢとノードＡとを接続するエッジＡ−Ｂ、ノードＢとノードＣとを接続するエッジＢ−Ｃ、ノードＢとノードＤとを接続するエッジＢ−Ｄ、及び、ノードＢとノードＧとを接続するエッジＢ−Ｇとを有する。
【００７７】
グラフ構造Ｇ２は、時点ｔ１の後の時点ｔ２におけるグラフ構造を示す。グラフ構造Ｇ２においては、グラフ構造Ｇ１からノードＡ、ノードＧ、エッジＡ−Ｂ、及び、エッジＢ−Ｇが削除されている。
【００７８】
グラフ構造Ｇ３は、時点ｔ２の後の時点ｔ３におけるグラフ構造を示す。グラフ構造Ｇ３においては、グラフ構造Ｇ２に対してノードＥ、ノードＦ、エッジＢ−Ｅ、及び、エッジＢ−Ｆが追加されている。また、グラフ構造Ｇ３においては、グラフ構造Ｇ２のノードＣの一部の属性値が変更されて、ノードＣ'となっている。
【００７９】
グラフ構造Ｇ４は、時点ｔ３の後の時点ｔ４におけるグラフ構造を示す。グラフ構造Ｇ４においては、グラフ構造Ｇ３に対して、ノードＧ及びエッジＢ−Ｇが再び追加され、ノードＥ及びエッジＢ−Ｅが削除されている。
【００８０】
図４は、Ｓ１１０において表示部１１０が表示する集約グラフ構造の一例、及び、集約グラフ構造におけるインジケータの説明を示す。集約グラフ構造Ｇ１−４は、図３に示すグラフ構造Ｇ１、グラフ構造Ｇ２，グラフ構造Ｇ３、及び、グラフ構造Ｇ４から生成される。
【００８１】
集約グラフ構造Ｇ１−４は、グラフ構造Ｇ１〜Ｇ４に含まれる全てのノードＡ、ノードＢ、ノードＣ、ノードＤ、ノードＥ、ノードＦ及びノードＧと、全てのエッジＢ−Ａ、エッジＢ−Ｃ、エッジＢ−Ｄ、エッジＢ−Ｅ、エッジＢ−Ｆ及びエッジＢ−Ｇとを含む。図４の集約グラフ構造は、縮退要素を含まない。
【００８２】
表示部１１０は、集約グラフ構造Ｇ１−４において、これらの要素を、複数のグラフ構造Ｇ１〜Ｇ４における変化の有無及び変化の内容に応じて、異なるインジケータにより表示する。
【００８３】
例えば、表示部１１０は、グラフ構造Ｇ２において削除されたノードＡ及びエッジＡ−Ｂを丸点線及び点線で表示し、グラフ構造Ｇ３において生成されたノードＦ及びエッジＢ−Ｆを丸二重線及び二重線で表示し、グラフ構造Ｇ３において生成されたがグラフ構造Ｇ４において削除されたノードＥ及びエッジＢ−Ｅを丸二重点線及び二重点線で表示する。
【００８４】
表示部１１０は、グラフ構造Ｇ２で削除されたがグラフ構造Ｇ４で復元されたノードＧ及びエッジＢ−Ｇを太線丸及び太線で表示する。表示部１１０は、グラフ構造Ｇ３で属性値が変化したノードＣを単線丸で表示する。
【００８５】
また、表示部１１０は、複数のグラフ構造Ｇ１〜Ｇ４において生成されず、削除されず、又は、属性値が変化しなかったノードＤ、エッジＢ−Ｃ及びエッジＢ−Ｄを単線四角及び直線で表示する。このように、表示部１１０は、複数の時点において削除された後に再び生成された変化要素が識別可能となるように集約されたグラフ構造を表示する。
【００８６】
表示部１１０は、非変化要素及び変化要素を線種及び図形等で区別する代わりに、変化要素及び非変化要素を色で区別してもよい。また、表示部１１０は、要素が複数のグラフ構造間で変化した回数を要素の近傍に表示してもよい。
【００８７】
表示部１１０は、図示するように集約グラフ構造Ｇ１−４の上部に、複数の時点ｔ１〜ｔ４が順番に配置された時系列バーを表示する。さらに、表示部１１０は、時系列バーの隣接する２つの時点の間に、当該２つの時点間に変化する要素の数を表示する。
【００８８】
例えば、表示部１１０は、時点ｔ１とｔ２の間に４つの要素が変更されたことを示し、時点ｔ２とｔ３の間に５つの要素が変更されたことを示し、時点ｔ３とｔ４との間に４つの要素が変更されたことを示す。
【００８９】
表示部１１０は、図示するように集約グラフ構造Ｇ１−４の下部に、集約グラフ構造の各要素に含まれる一部又は全ての属性名を表示する。また、表示部１１０は、判別部１０４が変化要素等を判別する際に用いた属性名を識別可能なように表示する。
【００９０】
例えば、表示部１１０は、ノードＡ等に含まれる属性ａ、属性ｂ、及び、属性ｃに対応するチェックボックスを表示し、属性ａ、属性ｂ、及び属性ｃの属性値が変更された要素を変化要素として判別部１０４が判別する場合、属性ａ、属性ｂ、及び属性ｃのチェックボックスがチェックされていることを表示する。
【００９１】
図５は、入力部１１２が一の要素を選択する操作を入力する場合の、Ｓ１１６における表示部１１０の表示の一例を示す。図５（ａ）は、図４に示す集約グラフ構造Ｇ１−４と同一の集約グラフ構造Ｇ１−４を示す。表示部１１０は、選択された一の要素が変化する前後の時点におけるグラフ構造を表示する。
【００９２】
例えば、図５（ａ）に示す集約グラフ構造Ｇ１−４において、入力部１１２がユーザからノードＣを選択する操作（例えば、ノードＣにカーソルを合わせてマウスの左ボタン等をクリックする動作）を入力したことに応じて、表示部１１０は、図５（ｂ）に示すようにノードＣに変更があった前後の時点ｔ２及びｔ３におけるグラフ構造Ｇ２及びＧ３を表示する。表示部１１０は、図５（ｂ）に示すように、ノードＣに変更があった前後の時点ｔ２及びｔ３を示す下向き三角形のインジケータを表示してよい。
【００９３】
表示部１１０は、上記表示に加えて／代えて、選択された一の要素の情報を表示してもよい。例えば、図５（ｂ）に示すグラフ構造Ｇ３において、入力部１１２がユーザからノードＤを選択する操作（例えば、ノードＤにカーソルを合わせてマウスの右ボタン等をクリックする動作）を入力したことに応じて、表示部１１０はノードＤの各属性名及び対応する各属性値を表示してよい。
【００９４】
ここで、集約部１０６が集約する複数のグラフ構造が木構造である場合、表示部１１０は、集約グラフ構造／グラフ構造のルートノードからのパス等を含む表示コンテキストを表してもよい。例えば、表示部１１０は、図５（ｂ）に示すように、ノードＤの表示コンテキストとして、ルートノードＥからのパス（Ｅ、Ｂ、Ｄ）を表示してよい。
【００９５】
図６は、表示部１１０による縮退要素を含む集約グラフ構造の表示の一例を示す。表示部１１０は、Ｓ１１０において、図４に示す集約グラフ構造に代えて、図６（ａ）に示す縮退要素を含む集約グラフ構造Ｇ１−４を表示してよい。
【００９６】
例えば、表示部１１０は、図６（ａ）に示すように、ノードＢ、エッジＢ−Ｄ、及び、ノードＤに代えて、これらの要素が縮退された縮退ノードＢ／Ｄを表示する。ここで、ノードＢ、エッジＢ−Ｄ、及び、ノードＤはグラフ構造Ｇ１〜Ｇ４においていずれも非変化要素であるので、表示部１１０は、縮退ノードＢ／Ｄを、非変化縮退ノードを表す単線四角により表示してよい。また、表示部１１０は、変化縮退要素を単線丸で表示してよい。
【００９７】
表示部１１０は、ユーザからの操作入力に応じて、縮退要素に代えて縮退要素に縮退される前の２以上の要素を表示する。例えば、図６（ａ）に示す集約グラフ構造Ｇ１−４において、入力部１１２がユーザから縮退ノードＢ／Ｄを選択する操作（例えば、縮退ノードＢ／Ｄにカーソルを合わせてマウスの左ボタン等をクリックする動作）を入力したことに応じて、表示部１１０は、選択された縮退ノードＢ／Ｄを展開した後の図４に示す集約グラフ構造Ｇ１−４を表示する。
【００９８】
ここで、表示部１１０は、図４に示す集約グラフ構造Ｇ１−４において、ユーザから選択された２以上の要素を縮退して表示してもよい。例えば、Ｓ１１８において、入力部１１２がユーザからノードＢ及びノードＤを選択する操作（例えば、ノードＢ及びノードＤを含むようにマウスで範囲指定する操作）を入力したことに応じて、表示部１１０は、ノードＢ及びノードＤを縮退することをユーザに選択させるメニュー画面等を表示させる。
【００９９】
当該メニュー画面において入力部１１２がユーザからノードＢ及びノードＤを縮退する操作を入力した場合、Ｓ１２０において、縮退部１０８は、ノードＢ、ノードＤ及びエッジＢ−Ｄを縮退して、図６（ａ）に示す集約グラフ構造Ｇ１−４を生成し、表示部１１０は当該集約グラフ構造Ｇ１−４を表示してよい。
【０１００】
図６（ａ）に代えて、表示部１１０は、図６（ｂ）に示すように縮退ノードＢ／Ｄを構成するノードＢ及びＤ及びエッジＢ−Ｄを表示してよい。また、これらに代えて、表示部１１０は、図６（ｃ）に示すように縮退ノードＢ／Ｄを展開した部分的なグラフ構造を表示してもよい。
【０１０１】
このように、表示部１１０が複数の要素の代わりに縮退要素を表示することで、多数の要素から構成される集約グラフ構造を簡潔に表示することができる。
【０１０２】
図７は、入力部１１２が一の時点を選択する操作を入力する場合の表示部１１０の表示の一例を示す。図７（ａ）は、図４に示す集約グラフ構造Ｇ１−４と同一の集約グラフ構造Ｇ１−４を示す。表示部１１０は、Ｓ１２６で選択された一の時点におけるグラフ構造を表示する。
【０１０３】
例えば、図７（ａ）に示す集約グラフ構造Ｇ１−４において、入力部１１２がユーザから時系列バー上の時点ｔ２を選択する操作（例えば、時点ｔ２にカーソルを合わせてマウスの左ボタン等をクリックする動作）を入力したことに応じて、表示部１１０は、図７（ｂ）に示すように時点ｔ２におけるグラフ構造Ｇ２を表示する。
【０１０４】
表示部１１０は、時系列バー上の時点を選択させるために、時系列バーとしてスライドバーを表示してもよい。これにより、表示部１１０は、時系列バー上のグラフ構造の変化を次々に表示させることができる。
【０１０５】
ここで、表示部１１０は、複数のグラフ構造Ｇ１〜Ｇ４における要素のバージョンを各時点のグラフ構造において表示してもよい。例えば、表示部１１０は、ノードＣの属性値が変化する前の時点ｔ１及びｔ２のグラフ構造Ｇ１及びＧ２においてノードＣを「Ｃ１」と表示し、変化した後の時点ｔ３及びｔ４のグラフ構造Ｇ３及びＧ４においてノードＣを「Ｃ２」と表示してよい。
【０１０６】
図８は、入力部１１２が２以上の時点を選択する操作を入力する場合の表示部１１０の表示の一例を示す。図８（ａ）は、図４に示す集約グラフ構造Ｇ１−４と同一の集約グラフ構造Ｇ１−４を示す。表示部１１０は、Ｓ１２６で選択された２以上の時点のグラフ構造を集約したサブ集約グラフ構造を表示する。
【０１０７】
例えば、図８（ａ）に示す集約グラフ構造Ｇ１−４において、入力部１１２がユーザから時系列バー上の時点ｔ２及びｔ３を選択する操作（例えば、時点ｔ２及びｔ３を含むように領域指定する動作）を入力したことに応じて、表示部１１０は、図８（ｂ）に示すように時点ｔ２及び時点ｔ３におけるグラフ構造Ｇ２及びＧ３を集約したサブ集約グラフ構造Ｇ２−３を表示する。
【０１０８】
表示部１１０は、サブ集約グラフ構造Ｇ２−３において、選択されたグラフ構造Ｇ２〜３に含まれない要素を表示しない。例えば、表示部１１０は、サブ集約グラフ構造Ｇ２−３において、ノードＡ、ノードＧ、エッジＡ−Ｂ、及び、エッジＢ−Ｇは表示しない。
【０１０９】
また、表示部１１０は、サブ集約グラフ構造Ｇ２−３において、選択された２以上のグラフ構造Ｇ２〜Ｇ３内の変化にのみ基づいて、変化要素及び非変化要素を表示してよい。例えば、表示部１１０は、サブ集約グラフ構造Ｇ２−３において、ノードＥが時点ｔ４で削除されたにも関わらず、ノードＥを単に生成されたノードとして二重線丸で表示してよい。
【０１１０】
また、集約部１０６は、サブ集約グラフ構造において、各ノードの座標を集約グラフ構造と同一としてもよく、サブ集約グラフ構造に含まれるノードのみで新しい座標を再計算してもよい。
【０１１１】
また、表示部１１０は、２以上の時点が入力されたことに応じて、サブ集約グラフ構造を表示する代わりに、入力された２以上の時点に対応するグラフ構造Ｇを図５（ｂ）に示すように並べて表示してよい。
【０１１２】
図９は、入力部１１２が属性名を指定する操作を入力する場合の表示部１１０の表示の一例を示す。図９（ａ）は、図４に示す集約グラフ構造Ｇ１−４と同一の集約グラフ構造Ｇ１−４を示す。表示部１１０は、選択された属性名に対応する属性値の変化に基づいて判別された変化要素及び非変化要素を、集約グラフ構造において表示する。
【０１１３】
例えば、図９（ａ）に示す集約グラフ構造Ｇ１−４において、ノードＣは、時点ｔ２からｔ３の間に属性ａに係る属性値のみが変化し、属性ｂ及び属性ｃの属性値は変化しない。
【０１１４】
ここで、入力部１１２が、属性ａ〜ｃのうち属性ａの指定の解除する操作、すなわち、属性ｂ及びｃを指定する操作（例えば、チェック済の属性ａのチェックボックスにカーソルを合わせてマウスの左ボタン等をクリックする動作）を入力すると、表示部１１０は、図９（ｂ）に示すように属性ｂ及び属性ｃの属性値の変化に基づいて判別された変化要素及び非変化要素を含む集約グラフ構造Ｇ１−４を表示する。
【０１１５】
ノードＣは属性ｂ及び属性ｃの属性値は変化しないので、表示部１１０は、図９（ｂ）に係る集約グラフ構造において、ノードＣを非変化ノードとして単線四角で表示する。また、表示部１１０は、時系列バー上において、時点ｔ２及びｔ３間に変化する要素の数を５から４に減じて表示する。
【０１１６】
図１０は、本実施形態の第１変形例における表示部１１０の表示の一例を示す。図１０は、図４に示す集約グラフ構造Ｇ１−４と同一の集約グラフ構造Ｇ１−４を示す。本変形例において、表示部１１０は、時系列バーに代えて、複数の時点及び複数の要素がマトリクス状に配置された時系列マトリクスを表示する。
【０１１７】
例えば、表示部１１０は、集約グラフ構造Ｇ１−４の上部に、横軸が時点ｔ１〜ｔ４を示し、縦軸がノードＡ〜Ｇを示す時系列マトリクスを表示する。表示部１１０は、時系列マトリクス上において、各ノードに対する時系列に対応する横線を表示し、当該横線上にノードが存在する位置に黒丸を表示する。例えば、表示部１１０は、ノードＢの横線上で時点ｔ１〜ｔ４に対応する位置に黒丸を表示する。
【０１１８】
表示部１１０は、各ノードに対する横線上で、ノードが変化した時点間の位置及び変化の内容を表示する。例えば、表示部１１０は、ノードＡの横線上で時点ｔ１及びｔ２間の位置にノードＡが削除されたことを示す点線丸を表示する。表示装置１０は、時系列マトリクスを表示することで各要素の変化の情報をより詳細に表示できる。
【０１１９】
また、本変形例において、表示部１１０は、時系列バーに代えて、複数の時点及び複数のバージョン等をマトリクス状に配置した時系列マトリクスを表示してもよい。例えば、表示装置１０が複数のグラフ構造として製品の構造を示すグラフ構造を取得する場合、表示部１１０は、製品の販売時期を示す複数の時点、及び、製品の販売対象地域（例えば、日本、欧州、及び、米国等）に対応する複数の製品バージョンをマトリクス状に配置した時系列マトリクスを表示する。
【０１２０】
表示部１１０は、複数の時点間、又は、複数のバージョン間で変更された要素を識別可能なように集約グラフ構造に表示する。例えば、表示部１１０は、入力部１１２がユーザから一の時点の選択を入力したことに応じて、当該時点における複数のバージョン（対象地域）に対応する複数のグラフ構造の要素の変更点が識別可能となるように、集約グラフ構造を表示する。
【０１２１】
また、例えば、表示部１１０は、入力部１１２がユーザから一のバージョン（対象地域）の選択を入力したことに応じて、当該バージョンにおける複数の時点に対応する複数のグラフ構造の要素の変更点が識別可能となるように、集約グラフ構造を表示する。これにより、表示部１１０は、販売時期及び販売対象地域等による製品の構造の相違点を集約グラフ構造上に表示することができる。
【０１２２】
図１１は、本実施形態の第２変形例における集約グラフ構造の一例を示す。本変形例において、表示部１１０は、ノードの表示コンテキストに含まれるパスが変化する場合、当該ノードを１つのノード又は複数のノードとして集約グラフ構造を表示する。
【０１２３】
本変形例において、表示装置１０は、図１１（ａ）に示す複数のグラフ構造Ｇ１及びＧ２を集約する。図示するように、グラフ構造Ｇ１及びＧ２は木構造であり、表示装置１０は、各ノードの表示コンテキストとしてルートノードＡからのパスを取得する。
【０１２４】
例えば、表示部１１０は、グラフ構造Ｇ１のノードＤの表示コンテキストとして、ルートノードＡ→ノードＢ→ノードＤのパスを取得し、グラフ構造Ｇ２のノードＤの表示コンテキストとしてルートノードＡ→ノードＣ→ノードＤのパスを取得する。
【０１２５】
ここで、表示部１１０は、図１１（ｂ）に示すように、集約グラフ構造Ｇ１−２において、表示コンテキストのパスに関わらず、同じノードＩＤのノードＤを、１つのノードＤとして表示してよい。
【０１２６】
また、表示部１１０は、図１１（ｃ）に示すように、集約グラフ構造Ｇ１−２において、表示コンテキストのパスが異なるノードＤを区別して、２つのノードＤ及びノードＤ'として表示してよい。
【０１２７】
入力部１１２は、ユーザからいずれの方法で集約グラフ構造を表示するかについての指示を入力し、表示部１１０は当該入力した指示に応じて集約グラフ構造を表示してよい。これにより、表示装置１０は、集約グラフ構造を表示するポリシーをユーザに選択させることができる。
【０１２８】
図１２は、本実施形態の第３変形例における集約グラフ構造の一例を示す。本変形例において、表示部１１０は、複数のグラフ構造の間で変更のあったノードの位置を、集約グラフ構造において移動させて表示する。
【０１２９】
例えば、表示装置１０は、図１２（ａ）に示す複数のグラフ構造Ｇ１及びＧ２を取得する。図示するように、グラフ構造Ｇ１からグラフ構造Ｇ２にかけて、ノードＡの属性ａの属性値は変化せず、ノードＢの属性ａの属性値は１０から１２に変化し、ノードＣの属性ａの属性値は１０から３０に変化し、ノードＤの属性ａの属性値は１０から１５に変化する。
【０１３０】
この場合、表示部１１０は、図１２（ｂ）に示すように、集約グラフ構造Ｇ１−２において、ノードＢ、ノードＣ、及びノードＤを下方に落下するように移動させて表示し、ノードＡを移動せずに表示してよい。
【０１３１】
また、表示部１１０は、集約グラフ構造において、変更のあったノードの位置を、ノードの変更の量に応じて移動して表示してよい。例えば、表示部１１０は、図１２（ｂ）に示すように、集約グラフ構造Ｇ１−２において、属性ａの属性値の変化割合が最大のノードＣを最も大きく移動させ、変化割合が最小のノードＢを小さく移動させてよい。これにより、表示部１１０は、集約グラフ構造において、要素の変化の大きさを視覚的に表示することができる。
【０１３２】
これに代えて、表示部１１０は、変更のあったノードを変更の量に応じて、振動させ、又は、色及び大きさを変化させて表示してよい。また、表示部１１０は、変更のあったノードを、変更値の各時点間の差分の最大値に応じて、移動等させてよい。これにより、表示部１１０は、属性値に突然変化が生じたノードを強調して表示することができる。
【０１３３】
図１３は、表示装置１０として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【０１３４】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。
【０１３５】
グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１３６】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。
【０１３７】
また、通信インターフェイスは、表示装置１０における通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【０１３８】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。
【０１３９】
フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【０１４０】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１４１】
コンピュータ１９００にインストールされ、コンピュータ１９００を表示装置１０として機能させるプログラムは、取得モジュールと、判別モジュールと、集約モジュールと、縮退モジュールと、表示モジュールと、入力モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部１０２と、判別部１０４と、集約部１０６と、縮退部１０８と、表示部１１０と、入力部１１２としてそれぞれ機能させてよい。
【０１４２】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１０２と、判別部１０４と、集約部１０６と、縮退部１０８と、表示部１１０と、入力部１１２として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の表示装置１０が構築される。
【０１４３】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。
【０１４４】
通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上  に設けた受信バッファ領域等へと書き込む。
【０１４５】
このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１４６】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。
【０１４７】
そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等によりデータベース２であってよい外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【０１４８】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【０１４９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１５０】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１５１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１５２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１５３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１５４】
１  システム、２  データベース、１０  表示装置、１０２  取得部、１０４  判別部、１０６  集約部、１０８  縮退部、１１０  表示部、１１２  入力部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
2014197279.tif 000003
【図２】
2014197279.tif 000004
【図３】
2014197279.tif 000005
【図４】
2014197279.tif 000006
【図５】
2014197279.tif 000007
【図６】
2014197279.tif 000008
【図７】
2014197279.tif 000009
【図８】
2014197279.tif 000010
【図９】
2014197279.tif 000011
【図１０】
2014197279.tif 000012
【図１１】
2014197279.tif 000013
【図１２】
2014197279.tif 000014
【図１３】
2014197279.tif 000015