JP2000067253A - 負曲率を有する空間にノ―ド―リンク構造をレイアウトする方法 - Google Patents

負曲率を有する空間にノ―ド―リンク構造をレイアウトする方法

Info

Publication number
JP2000067253A
JP2000067253A JP21449199A JP21449199A JP2000067253A JP 2000067253 A JP2000067253 A JP 2000067253A JP 21449199 A JP21449199 A JP 21449199A JP 21449199 A JP21449199 A JP 21449199A JP 2000067253 A JP2000067253 A JP 2000067253A
Authority
JP
Japan
Prior art keywords
node
parent
link
data
child
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.)
Granted
Application number
JP21449199A
Other languages
English (en)
Other versions
JP4864181B2 (ja
Inventor
John O Lamping
オー.ランピング ジョン
Ramana B Rao
ビー.ラオ ラマナ
Tichomir G Tenev
ジー.テネヴ ティチョミア
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of JP2000067253A publication Critical patent/JP2000067253A/ja
Application granted granted Critical
Publication of JP4864181B2 publication Critical patent/JP4864181B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)
  • Bridges Or Land Bridges (AREA)

Abstract

(57)【要約】 【課題】 負曲率を有する空間にレイアウトされたノー
ド−リンク構造の局所的な再レイアウトを可能にするレ
イアウト方法の提供。 【解決手段】 この方法は、ノード−リンク構造10内
の要素22について、近隣ノード−リンク関係に関する
情報を示す近隣関係データ40を入手し、近隣関係デー
タ40に基づいて、負曲率を有する空間での要素22の
親24に対する相対位置を示すレイアウトデータ42を
入手する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、双曲空間のような
負曲率を有する空間へのノード−リンク構造のレイアウ
トに関する。
【0002】
【従来の技術】ジャーナル・オブ・ビジュアルランゲー
ジズ・アンド・コンピューティング誌(Journal of Visu
al Languages and Computing)、1996年、第7巻、33頁
−55頁の、ランピング(Lamping, J.)及びラオ(Rao, R.)
の「双曲ブラウザ:大きな階層を視覚化するための焦点
+コンテキスト技術(“The Hyperbolic Browser: A Foc
us+Context Technique for Visualizing Large Hierarc
hies”)」は、双曲平面に、親子間及び同胞間の距離が
どこでもほぼ同じように階層をレイアウトするための技
術を開示している。再帰的アルゴリズムが、局所的情報
に基づいて各ノードをレイアウトし、ノードの子孫に双
曲平面の楔を割付ける。そのアルゴリズムは全ての子
を、楔内の弧に沿って、親ノードから等距離であり且つ
互いから少なくとも最小距離で離間するように配置す
る。ノードのレイアウトは、その親のレイアウト及びそ
の親から始まる2又は3世代のノード構造だけに依存す
る。従って、レイアウトは、最初にルートに最も近いノ
ードをレイアウトし、次に、構造が更に走査されるにつ
れて更にノードを追加することによって、増分的に行う
ことができる。ランピングら(Lamping et al.)の米国
特許第5,590,250号は、各ノードが、そのノードの位置
及び半径、及びそのノードが子を有する場合は子のリス
トへのリンクを含むデータ構造を有し、双曲平面での位
置を表わすために複素数が用いられる、類似のレイアウ
ト技術を開示している。
【0003】1995年のアメリカ計算機学会コンピュータ
グラフィックス分科会(ACM SIGGRAPH)のVRML'95シ
ンポジウム(1995年12月13日−16日、カリフォルニア州
サンディエゴにて)議事録の33頁−38頁の、ミュンツナ
ー(Munzner, T.)及びバーチャード(Burchard, P.)の
「3次元双曲空間におけるワールドワイドウェブ構造の
視覚化(“Visualizing the Structure of the World Wi
de Web in 3D Hyperbolic Space”)」は、循環を有する
有向グラフに用いることができる、双曲平面にグラフを
レイアウトするための技術を開示している。2つのノー
ドを結ぶエッジの双曲線の長さは、双曲線関数と2つの
ノードに入射するエッジ間の角度とを用いて入手され
る。循環を有する有向グラフは、バックリンクエッジの
フィルイン(filling in)によって、空間がそれ自体を包
んで閉鎖できる双曲マニホールド空間か、又は標準双曲
空間に埋め込まれることが可能である。
【0004】本発明は、双曲空間のような負曲率を有す
る空間へのノードリンク構造のレイアウトにおける問題
を扱う。
【0005】負曲率レイアウトのためのランピング及び
ラオによって述べられた技術及び他の従来の技術では、
構造が表示後に変化する場合、その変更された構造の少
なくとも大きな部分について新たなレイアウトが一般的
になされなければならず、次に再表示されなければはな
らない。大きな構造にレイアウトを行うのは遅く、再表
示と一緒に行うと、ユーザが変更された構造と効果的に
対話するのを妨げることがある。これらの問題は、特に
構造の変更に対して深刻であるのだが、静的構造又はそ
の部分の頻繁なレイアウトを要求する操作が行われる際
にも生じる。
【0006】ランピング及びラオによって述べられた、
静的構造のためのレイアウト技術は、構造の少なくとも
大きな部分のレイアウトを命令する特徴を有する。静的
構造のためのレイアウト技術は、ツリー内のより上位の
レイアウト決定に左右される各ノードでの、及びその同
胞ノードでの決定を行い、その結果、あるノードの1つ
の子の追加又は削除が、そのノードの全ての子孫及び任
意の同胞についてのレイアウトの再実行を命令する。ま
た、この静的構造のためのレイアウト技術は、双曲平面
内のノードの位置だけを保存し、ノードの位置を変える
であろう構造のいかなる変更も、そのノードの同胞及び
全ての子孫のレイアウトの繰返しを要求する。
【0007】
【発明が解決しようとする課題及び課題を解決するため
の手段】本発明は、双曲空間又は双曲平面のような負曲
率を有する空間へのノード−リンク構造の局所的なレイ
アウトの実行を可能にする技術の提供によって、大きな
構造のレイアウトの結果生じる問題を軽減する。この技
術は、要素について、近隣ノード−リンク関係に関する
情報を示す近隣関係データを入手する。次に、この技術
は近隣関係データを用いて、負曲率を有する空間でのそ
の要素の親に対する相対位置を示す、レイアウトデータ
を入手する。
【0008】例えば、要素及び親がノードである場合
は、レイアウトデータは、親の位置と要素の位置との間
の距離を示す位置変位データと、親への入リンクと親か
ら子への出リンクとの間の角度差を示す角度変位データ
とを含むことができる。特にエレガントな実施例では、
レイアウトデータは位置変位データ及び角度変位データ
だけを含む。
【0009】近隣ノード−リンク関係は、親と、その親
の子と孫との間の関係だけを含むことができる。
【0010】この新たな技術は、1つの要素が削除又は
挿入されたときに少数の近隣要素だけ再レイアウトされ
ればよいので、動的ノード−リンク構造のレイアウトに
おいて有益である。また、この技術は、要素の絶対位置
ではなく、親に対する相対位置を入手し、データ構造に
単一の変更又は小さい一定数の局所的変更を行うことに
よって要素及び全ての子孫の位置の変更を可能にする。
【0011】また、この新たな技術は、ノード−リンク
構造の一部をレイアウトすることが望ましい種々の状況
で用いることができるので、有益である。従って、この
新たな技術は動的ノード−リンク構造に適用可能なだけ
ではなく、メモリ内で構造を全ては使用できないために
断片的にレイアウトされて表示できるだけの静的構造に
も適用可能である。この技術は、ノードが複数の入リン
クを有する有向グラフの部分的表現であるツリーのレイ
アウトに特に有益である。そのようなツリーの共有ブラ
ンチは、発生ごとに一番上の要素の相対位置だけが異な
るので、共有ブランチの全発生に対して1回完全にレイ
アウトされるだけでよい。
【0012】また、この技術は、構造の一部だけを含む
変更のアニメーションにも有益である。例えば、構造に
挿入又は削除がなされた場合、挿入又は削除に近い要素
の位置を変えるだけの遷移のアニメーション化が望まし
いかもしれない。この技術は、挿入又は削除に近い要素
の位置だけが変更される、各アニメーションステップに
ついて1回の、一連のレイアウトの急速な実行を可能に
する。その結果、アニメーションのパフォーマンスが向
上し、より単純なアニメーションアルゴリズムを用いる
ことができる。アルゴリズムは、挿入又は削除に近い各
ノードについての角度及び半径のような、少数の変数だ
けを続けて変更できる。
【0013】別の長所として、この新たな技術は、従来
技術のように常に構造のルートノード又は基底のリーフ
で開始するのではなく、どの任意の要素で開始しても表
示を生成できるレイアウトを提供する。
【0014】更に別の長所として、要素の、親に対する
相対位置を、常に適度な精度をもって表わすことができ
る。それとは対照的に、要素の、双曲平面内の絶対位置
が用いられる場合は、大きな構造は使用可能な浮動小数
点数を使い果たすことがある。
【0015】本発明の態様は、負曲率を有する空間にノ
ード−リンク構造をレイアウトする方法であって、構造
内の要素について、近隣ノード−リンク関係に関する情
報を示す近隣関係データを入手し、近隣関係データに基
づいて、負曲率を有する空間での要素の親に対する相対
位置を示すレイアウトデータを入手する、負曲率を有す
る空間にノード−リンク構造をレイアウトする方法であ
る。
【0016】
【発明の実施の形態】以下の概念的構想は、米国特許第
5,590,250号及び第5,619,632号で述べられた概念的構想
と共に読むと、本発明の広い範囲を理解する上で役に立
ち、以下に定義される用語は、特許請求の範囲を含む本
出願を通して示された意味を有する。
【0017】“ノード−リンク構造”は、ノードとリン
クとに区別できる項目を含み、各リンクが2つ以上のノ
ードに関係している構造である。“グラフ”は、各リン
クが2つのノードに関係しているノード−リンク構造で
ある。“有向グラフ”は、各リンクが関係するノード間
の方向を示し、一方のノードがリンクのソース又は“フ
ロムノード”であり、他方のノードがリンクの宛先又は
“ツーノード”であるグラフである。“非環式有向グラ
フ”は、リンクが、それらの示された方向に辿られたと
きに、任意のノードからそれ自体に戻るパスを提供しな
い有向グラフである。“ツリー”は、ツリー内の任意の
非ルートノードについて、リンクが、その示された方向
に辿られたときに、ルートノードで始まり非ルートノー
ドへと導く1つのパスだけを提供するような、1つのル
ートノードだけを有する非環式有向グラフである。
【0018】ノード−リンク構造では、“ノード−リン
ク関係”は、要素間のノード及びリンクのパスに基づい
た要素間の関係である。
【0019】ノード−リンク関係を、パスの長さがパス
内の要素の数によって測定されるとき、要素間の最短パ
スの長さに基づいて区分することが有用である。有向グ
ラフでは、例えば、あるノードの“最も近い”ノード−
リンク関係は、その入及び出リンクとの関係であろう
し、次に、そのノードの親及び子ノードである他のノー
ドとの関係、その次に、そのノードの親及び子ノードの
他の入及び出リンクとの関係、その次に、そのノードの
親の親、同胞、孫、及び共親(co-parent)である他のノ
ードとの関係、等であろう。ある要素の1組の“近隣”
ノード−リンク関係は、要素間の全ての最短パスの長さ
が、比較的短い2、3、又は4のような最大長さより全
て短いというような近さの適切な基準を満たす、1組の
関係である。近隣ノード−リンク関係の有用なグループ
の例は、ある要素の親、親の子(その要素を含む)、及
び親の孫の間の関係のグループである。
【0020】データが、親の絶対位置から要素の絶対位
置を得るために用いることができる1つ以上の変位を示
す場合、そのデータは要素の“親に対する相対位置”を
示す。例えば、親の位置から要素の位置までのベクトル
を定義する1組の変位は、要素の親に対する相対位置を
示す。変位のタイプの例としては、座標軸に沿って又は
大きさ(絶対値)でのいずれかで位置間の距離を示す位
置変位、及び親への入リンクと親からその要素への出リ
ンクとの間のような角度差を示す角度変位が挙げられ
る。
【0021】本明細書では、“ナビゲーション信号”と
いう用語は、ユーザがノード−リンク構造のある部分に
他の部分よりも高い興味を持っていることを示す信号を
意味する。例えば“拡張信号”は、グラフのある要素の
表現が拡張されているグラフ表現を表示する要求を示
し、一方“収縮信号”は、グラフのある要素の表現が収
縮されているグラフ表現を表示する要求を示す。他の例
は、ノード−リンク構造の一部を特定の位置で表示する
要求を含み、それはブックマーク等を選択することによ
って、又は指し示されたフィーチャを焦点の中心へと移
動することを要求するポイント及びクリック動作によっ
て可能である。
【0022】図1は、どのように負曲率を有する空間に
ノード−リンク構造10内の要素をレイアウトできるか
を示している。ボックス20への点線で示されるよう
に、ノード−リンク構造10内の要素、例示的にノード
22は、幾つかの近隣ノード−リンク関係を有する。ボ
ックス20で示されるように、近隣ノード−リンク関係
は、例えば、親ノード24からノード22へのリンク、
親ノード24から同胞ノード26及び28へのリンク、
及びノード22から子ノード30及び32へのリンクの
結果生じる関係を含み得る。
【0023】ノード−リンク構造10からの実線及びボ
ックス20からの点線によって示されるように、ノード
22の近隣ノード−リンク関係に関する情報を示す、近
隣関係データ40が入手される。次に、近隣関係データ
40に基づいて、ノード22についてのレイアウトデー
タ42を入手できる。ノード−リンク構造10に関する
他の情報も、レイアウトデータ42を入手するために用
いられ得るが、ノード22が近隣ノード−リンク関係が
変更されたときにのみ再レイアウトされればよいことを
確実にするために、そのような他の情報は、好ましく
は、遠いノード−リンク関係に関する情報を含むべきで
はない。
【0024】レイアウトデータ42は、ノード22と、
負曲率を有する空間での少なくともノード22の親ノー
ド24に対する相対位置を含むノード22の位置とに関
する、種々の情報を示してよい。例えば、ボックス44
で示されるように、レイアウトデータ42は、負曲空間
での親ノード24からノード22への距離及び方向を示
すベクトルを示すことができる。子の位置を親の位置
に対して相対的に定義できるように、親から子への方向
を親の親から親への方向に対して相対的に(又は、親が
ルートである場合は、初期方向に対して相対的に)定義
できる。従って、ベクトルは、親からの位置変位及び
親の親から親への方向の角度変位を示すことができる。
【0025】図2では、処理ボックス100の処理は、
ノード−リンク構造内の要素について、その要素の近隣
ノード−リンク関係に関する情報を示す、近隣関係デー
タを入手することによって開始する。処理ボックス10
0の周りの内側の点線で示されるように、近隣関係デー
タは1組の要素のうちのそれぞれについて入手できる。
【0026】次に、処理ボックス102の処理は、処理
ボックス100で入手された近隣関係データに基づい
て、負曲空間での要素の親に対する相対位置を示す、レ
イアウトデータを入手する。処理ボックス102の周り
の内側の点線で示されるように、レイアウトデータも同
様に、処理ボックス100で近隣関係データが入手され
た1組の要素のそれぞれについて入手できる。処理ボッ
クス100及び102の周りの外側の点線で示されるよ
うに、要素のレイアウトデータ入手後、別の要素につい
て又は別の組の要素について近隣関係データを入手でき
る。
【0027】図3の装置150は、ユーザ入力回路15
4からユーザ信号を示すデータを受信すると共にディス
プレイ156に画像を定義するデータを供給するために
接続された、プロセッサ152を含む。プロセッサ15
2は、ノード−リンク構造の少なくとも一部を定義する
ノード−リンクデータ158にアクセスするためにも接
続されている。プロセッサ152は、例えば、メモリ1
64、記憶媒体アクセス装置166、又はネットワーク
168への接続から受信した命令を供給できる命令入力
回路162を介して、命令を示す命令データ160を受
信するためにも接続されている。
【0028】命令データ160によって示される命令を
実行する上で、プロセッサ152は要素について、その
要素の近隣ノード−リンク関係に関する情報を示す、近
隣関係データを入手する。プロセッサ152は、ノード
−リンクデータ158にアクセスしてノード−リンク関
係に関する情報を入手できる。次に、プロセッサ152
は、近隣関係データに基づいて、負曲率を有する空間で
の要素の親に対する相対位置を示すレイアウトデータを
入手する。
【0029】上述のように、図3は、命令入力回路16
2が命令を示すデータを受信し得る3つの可能なソー
ス、即ちメモリ164、記憶媒体アクセス装置166、
及びネットワーク168を示している。
【0030】メモリ164は、ランダムアクセスメモリ
(RAM)又は読取り専用メモリ(ROM)を含む、装
置150内の任意の従来のメモリか、又は任意の種類の
周辺又は遠隔メモリ装置であってよい。より一般的に
は、メモリ164は1つ以上のタイプのメモリ構成要素
の組合せであってよい。
【0031】記憶媒体アクセス装置166は、例えば1
組の1つ以上のテープ、ディスケット、又はフロッピー
ディスクのような磁気媒体、1組の1つ以上のCD−R
OMのような光学媒体、又はデータを格納するための任
意の他の適切な媒体であり得る記憶媒体170にアクセ
スするための、ドライブ又は他の適切な装置又は回路で
あってよい。記憶媒体170は、装置150の一部、サ
ーバの一部、他の周辺又は遠隔メモリ装置、又はソフト
ウェア製品であってよい。これらの場合のそれぞれで、
記憶媒体170は装置150内に用いることができる1
つの製造品である。記憶媒体170の上にデータユニッ
トを配置して、記憶媒体アクセス装置166がデータユ
ニットにアクセスしてそれらを命令入力回路162を介
してプロセッサ152にシーケンスで供給できるように
することが可能である。データユニットは、シーケンス
で供給されると、図示されるように命令を示す命令デー
タ160を形成する。
【0032】ネットワーク168は、装置180から受
信した命令データ160を供給できる。装置180内の
プロセッサ182は、ネットワーク168を渡ってネッ
トワーク接続回路184及び命令入力回路162を介し
て、プロセッサ152との接続を確立できる。どちらの
プロセッサが接続を開始してもよく、接続は任意の適切
なプロトコルで確立されてよい。次に、プロセッサ18
2はメモリ186に格納されている命令データにアクセ
スして命令データをネットワーク168を渡ってプロセ
ッサ152に転送できるので、プロセッサ152はネッ
トワーク168から命令データ160を受信できる。次
に、命令データ160は、プロセッサ152によってメ
モリ164又はどこかに格納され、実行されることが可
能である。
【0033】上述した全般的なフィーチャは、ノード−
リンク表現を表示するための多くの方法で様々な装置上
で実施されてよい。以下に述べる実施例は、マイクロソ
フトウインドウズ(Microsoft Windows)の32ビット版を
走らせ、C++言語ソースコードからコンパイルされたコ
ードを実行する、PCに基づくシステム上で実施された
ものである。
【0034】図4では、システム200は、画像を表示
するためのディスプレイ204、及びユーザから信号を
供給するためのマウス208及びキーボード206に接
続された、PCプロセッサ202を含む。PCプロセッ
サ202は、メモリ210及びクライアント212にア
クセスできるようにも接続されている。メモリ210
は、例示されているように、プログラムメモリ214及
びデータメモリ216を含むことができる。クライアン
ト212は、メモリ210に格納されたルーチン及びデ
ータの組合せか、又は示されるようにメモリ210から
独立していてよい、有向グラフに関する情報のソースで
ある。例えば、プロセッサ202はネットワークを介し
てクライアント212と通信してもよい。
【0035】プログラムメモリ214に格納されている
ルーチンは、幾つかの機能にグループ化できる。グラフ
ァルーチン220は、クライアント212からの情報に
よって定義される有向グラフを表わすデータ構造を生成
及び変更する。ウォーカルーチン222は、有向グラフ
データ構造から情報を入手することによって、キーボー
ド206及びマウス208からのナビゲーション信号及
び他のユーザ信号に応答する。ペインタルーチン224
は、ディスプレイ204に信号を提供して有向グラフデ
ータ構造の表現を表示させる。数学ルーチン226は、
レイアウト空間内の有向グラフの要素の位置を得るため
に呼出されることができる。
【0036】次に、データメモリ216は、プログラム
メモリ214内のルーチンの実行中にプロセッサ202
によってアクセスされるデータ構造を収容する。有向グ
ラフデータ構造230は、上述のように、グラファルー
チン220によって生成及び変更され得ると共に、ウォ
ーカルーチン222及びペインタルーチン224によっ
てアクセスされ得る。
【0037】有向グラフデータ構造230内にリンクさ
れ得る又は含まれ得るノード位置データ232は、双曲
平面のような負曲空間内、及び2次元ユニットディスク
(単位円)のようなレンダリング空間内のノードの位置
を含むことができる。ノード位置データ232はプログ
ラムメモリ214内のルーチンによってアクセスされ得
る。
【0038】プログラムメモリ214内のルーチンは、
種々の雑データ構造234にもアクセスできる。データ
構造234は、例えば、標準ヒープとして実施される、
1対のノードIDからリンクIDへのマッピングのため
の予備データ構造を含んでもよい。即ち、この予備デー
タ構造は、一定の期待時間内のリンクIDの検索及び挿
入を可能にする。
【0039】図5は、どのように図4のシステムがグラ
フの表現を表示することによってイベントに応答できる
かを示している。
【0040】処理ボックス300では、クライアント2
12は、開始グラフを入手すると共に、例えばノード生
成の呼出しを介して、要素の初期セットをメモリにロー
ドすることによって開始する。拡張フラグは要素の初期
セット内のツリーを定義する。クライアント212は、
双曲平面にツリーをレイアウトし、ツリーを双曲平面か
らユニットディスクへと、ルートノードをディスクの中
心においてマッピングし、マッピングされたツリーをペ
イントし、二重バッファをスワッピングすることによっ
てペイントされたバージョンをディスプレイ204に表
示することを、全て処理ボックス300で行うために、
メモリ214内のルーチンに対する適切な呼出しも行
う。
【0041】処理ボックス302では、クライアント2
12はグラフに関係するイベントを受信する。イベント
はナビゲーション信号、編集信号、又はユーザからの他
のタイプの信号から生じ得る。或いは、イベントはシス
テム200の内部又は外部いずれかの他のソースから受
信されてもよい。いずれにせよ、イベントはクライアン
ト212内から、メモリ214内のルーチンの1つか
ら、又はプロセッサ202によって実行される他の命令
からの呼出しの形態をとり得る。一連の受信されたイベ
ントは、処理ボックス302がキューからのイベントの
取り出しを含み得るように、キューの中に保持され得
る。
【0042】処理ボックス302で受信されたイベント
に応答して、クライアント212は、メモリ214内の
ルーチンに対して1つ以上の呼出しを行うことによっ
て、適切な応答を開始する。判断ボックス304によっ
て示されるように、応答はイベントのタイプによるの
で、イベントに基づいてブランチが選択される。
【0043】イベントは、オリエンテーション転換イベ
ント、ストレッチイベント、又はドラッグイベントのよ
うな、非アニメーションイベントであってもよい。オリ
エンテーションイベントは、ユーザがルートノードに対
して新たなオリエンテーションを示したときに生じ得
る。ストレッチイベントは、ユーザが表示されている表
現に対して新たなストレッチファクタを示したときに生
じ得る。ドラッグイベントは、例えば、ユーザが、マウ
スダウン(マウスボタンを押したまま)クリック等によ
って表現内の位置を選択し、適切なジェスチャ又は他の
信号によってその位置の移動を要求したときに生じ得
る。
【0044】処理ボックス310では、クライアント2
12は、イベントへの応答に必要な任意の情報を入手す
ることによって、非アニメーションイベントに対する応
答を開始する。オリエンテーションイベントについて
は、処理ボックス310で入手された情報が新たなオリ
エンテーションを含むことができる。ストレッチイベン
トについては、処理ボックス310で入手された情報が
新たなストレッチファクタを含むことができる。
【0045】ドラッグイベントについては、処理ボック
ス310での情報の入手は幾分複雑さが増す。クライア
ント212は、選択位置から最も近いノードのノード識
別子(ノードID)を入手してもよく、また、要求され
た動きに関する情報を入手してもよい。情報のこれらの
項目は、本明細書に参照として援用する米国特許第5,59
0,250号のコラム71−72及び図14に関係して記載
されている“最も近いノードを探索”という関数(機
能)によって説明されているのとほぼ同じ方法で入手し
てもよい。
【0046】クライアント212が処理ボックス310
で必要な情報を入手したら、クライアント212はレイ
アウト、マッピング及びペイントのためのウォーカルー
チン222及びペインタルーチン224に対する適切な
呼出しで締めくくることができる。オリエンテーション
イベントについては、ルートノードは新たなオリエンテ
ーションでレイアウトされなくてはならない。ストレッ
チイベント又はドラッグイベントについてはレイアウト
は必要ない。しかしながら、ストレッチイベントについ
ては、ウォーカルーチン222に対する呼び出しが、マ
ッピングに用いるための新たなストレッチファクタを含
まなければならない。同様に、ドラッグイベントについ
ては、ウォーカルーチン222に対する呼び出しが、マ
ッピングに用いるための最も近いノードのノードID及
び動きのパスに沿った次の位置を含まなければならな
い。
【0047】処理ボックス312では、ウォーカルーチ
ン222は、まず、双曲平面内に任意の必要なレイアウ
トを行ってもよく、また、ツリーの任意の保留中の編集
をレイアウトしてもよい。次に、処理ボックス314で
は、ウォーカルーチン222は、開始ノードを開始位置
において開始して、ツリーをユニットディスクにマッピ
ングしてもよい。例えば、ドラッグイベントに応答し
て、開始ノードは処理ボックス310で識別された最も
近いノードであってよく、開始位置は動きのパスに沿っ
た次の位置であってよい。前にマッピングに用いられた
開始ノード及び開始位置を、オリエンテーション又はス
トレッチイベントに応答して用いてもよい。
【0048】ツリーがマッピングされたら、処理ボック
ス316で、マッピングされたツリーを表示バッファに
ペイントするためにペインタルーチン224を呼出すこ
とができる。ペイント中、ペインタルーチン224はノ
ード生成の結果ツリー内で生じる新たな編集をマーキン
グできる。各編集は、フラグを設定することによって又
は他の適切なデータを格納することによってマーキング
できる。ペイントが完了すると、ペイントされたように
ツリーを表示するために表示バッファのスワッピングを
行うことができ、グラフの表現が供給される。
【0049】上述のように、これらのイベントは現在は
非アニメーションイベントとして実施される。オリエン
テーションイベントに応答して、表現は新たなオリエン
テーションに、典型的には表示領域の焦点にあるノード
の周りを、旋回する。同様に、ストレッチイベントに応
答して、表現は半径方向に、典型的には焦点にあるノー
ドの周りで、拡張又は収縮する。ドラッグイベントに応
答して、表現は入力信号によって決定されたレートで移
動する。しかしながら、クライアント212は、オリエ
ンテーションイベント、ストレッチイベント、又はドラ
ッグイベントに対して、要求された変更を同等のより小
さなイベントのシーケンスに変換し、処理ボックス31
0で、1つの呼出しが個々のより小さなイベントに対す
る一連の呼出しを発することによって、アニメーション
化された応答を供給してもよい。
【0050】図5は、現在の実施では常にアニメーショ
ン化して扱われる2つの異なるタイプのイベントに対す
る応答も示している。第1のタイプはブックマーク又は
クリックイベントであり、それに応答して、アニメーシ
ョンシーケンス中に1つのノードの位置が移動され、他
の要素がその1つのノードの動きに合わせて移動する。
第2のタイプは挿入/削除イベントであり、それに応答
して、ある要素が収縮され別の要素が拡張されるアニメ
ーションシーケンス中に、1つのノードは安定したまま
であるが、他の要素は収縮及び拡張に合わせて移動す
る。
【0051】ブックマーク又はクリックイベントは、ユ
ーザがメニュー又は他のブックマークの集合の中の項目
を選択したとき、又はマウスダウンアップ(マウスボタ
ンを押して放す)クリックで表現内の位置を選択したと
きに生じ得る。このタイプのイベントに応答して、クラ
イアント212はノードID及びユニットディスク内の
宛先位置を入手する。ブックマークイベントの場合は、
ノードID及び宛先位置は以前に格納されており、メモ
リから検索できる。クリックイベントの場合は、クライ
アント212は、本明細書に参照として援用する米国特
許第5,590,250号のコラム71−72に関係して記載さ
れている“最も近いノードを探索”という関数(機能)
とほぼ同じ方法で、選択位置から最も近いノードのノー
ドIDを入手してもよく、宛先はユニットディスクの中
心のようなデフォルト位置であってよい。
【0052】処理ボックス320では、クライアント2
12はウォーカルーチン222をノードID及び宛先位
置で呼出してもよい。ウォーカルーチン222は、ノー
ドが前の位置から宛先位置へと移動する表現のシーケン
スを表示するためのアニメーションループを実行するこ
とによって応答できる。処理ボックス320では、ウォ
ーカルーチン222は、個々がノードID及びユニット
ディスク内の位置を含むノード/位置の対のシーケンス
をセットアップすることによって開始する。位置は、米
国特許第5,619,632号の図12のボックス470、47
2、及び482に記載されているように、前の位置から
宛先位置への総トランスレーション(移動路)を入手し
て、次に総トランスレーションのn番目のルートを入手
して現在のトランスレーションと共に構成することを繰
り返すことによって入手できる。ノード/位置の対の数
は、アニメーション表示中に構造の要素を表わすフィー
チャがオブジェクト不変性を維持しながら、前の位置か
ら宛先位置への滑らかなアニメーションを確保するため
に、十分に大きくできる。n番目ルートの方法の代わり
に、前の位置から宛先位置へと双曲平面内で適切に選択
された弧に沿って適切な数の点を選択することによっ
て、位置を入手してもよい。弧は、不自然に見え得る直
線と、n番目ルートの方法でノードがとったであろう、
滑らかに見えるには過度のアニメーションステップ数を
必要とし得る弧との間を折衷するように選択されてもよ
い。点の数は、満足なアニメーションを確保するように
選択されてもよい。
【0053】処理ボックス320で位置を入手する上
で、オリエンテーションは米国特許第5,590,250号の図
15に関係して述べられているように保存できる。或い
は、変形又は回転を、ユニットサークルの境界上の特定
の点の位置が保存されるように選択できる。選択された
点は、例えば、サークル上の、ルートの子がレイアウト
された方向から反対方向の点であってもよい。
【0054】次に、ウォーカルーチン222は、判断ボ
ックス322で示されるように、シーケンス中のノード
/位置の各対についてアニメーションループを反復す
る。処理ボックス324では、ウォーカルーチン222
は、処理ボックス312に関係して上述したように、ま
ず双曲平面にツリーの任意の保留中の編集をレイアウト
してもよい。次に、処理ボックス326では、ウォーカ
ルーチン222は、処理ボックス314に関係して上述
したように、ツリーをユニットディスクに、次のノード
/位置の対からのノード及び位置を開始ノード及び開始
位置として開始して、マッピングしてもよい。
【0055】ツリーがマッピングされたら、処理ボック
ス328でマッピングされたツリーを表示バッファにペ
イントするためにペインタルーチン224を呼出すこと
ができる。ペイント中、ペインタルーチン224は、処
理ボックス316に関連して上述されたように、ノード
生成の結果ツリー内で生じる新たな編集をマーキングで
きる。ペイントが完了したら、ツリーをペイントされた
ように表示するために表示バッファのスワッピングを実
行して、グラフの表現を提供することができる。
【0056】処理ボックス328でペインタルーチン2
24によって新たな編集がマーキングされると、次の反
復中、処理ボックス324で、新たな編集がレイアウト
される。その結果、表現のアニメーション化されたシー
ケンスは、米国特許第5,629,632号のように静的ノード
−リンク構造を示すのではなく、動的ノード−リンク構
造を示す。しかしながら、この編集は、基本的には、表
現が前の位置から宛先位置へと遷移するときに表現の外
周に沿って新たなノードを表わすフィーチャを追加する
ために働く。その結果、追加されたフィーチャは、他の
要素を表わすフィーチャについてのオブジェクト不変性
の知覚を妨害又は低下させない。
【0057】挿入/削除イベントは、ユーザがノードの
拡張又は収縮を要求したときに、又はグラフ又はツリー
の何か他の変更を要求したときに生じ得る。挿入/削除
イベントは、呼出しの形態でも受信されてもよく、従っ
て、人の手による制御を並行させないグラフ又はツリー
の自動変更のための機構を提供してもよい。
【0058】このタイプのイベントに応答して、クライ
アント212は、処理ボックス330で、要求されたグ
ラフ又はツリーの変更が許容可能か否かを決定するため
に、まずメモリ214内のルーチンに対する適切な呼出
しを行うことができる。
【0059】要求されたグラフ又はツリーの変更が許容
可能な場合は、それに従って、クライアント212は、
必要に応じてメモリ214内のルーチンを呼出して、グ
ラフ又はツリーを変更できる。変更を行うプロセスで
は、変更によって挿入、削除、又は変化させられ得る、
本明細書では“影響された要素”と呼ぶ各要素が、フラ
グの設定又は他の適切なデータの格納等によってマーキ
ングされる。あるノードが拡張信号又は収縮信号によっ
て選択された場合は、その親に割当てられた領域が変化
し得るので、その親も影響されたノードである。他の挿
入/削除イベントのほとんどについては、挿入又は削除
されたノードだけが影響される。クライアント212
は、あるノードが、変更のアニメーション表示中もその
ノードの前の位置に保持される、安定ノードとして選択
できる。
【0060】多くの場合、前にマッピングに用いられた
開始ノードを安定ノードとして選択することができ、そ
のノードを前の開始位置に保持することができる。他の
場合には、クライアント212にとって、異なる安定ノ
ードの選択が望ましいことがある。例えば、拡張されて
いるノードを、現在の位置に保持される安定ノードとし
て選択してもよく、従ってそのノードが新たな開始位置
となる。従って、クライアント212が異なる安定ノー
ドを選択しない限り、通常は前の開始ノード及び開始位
置が保たれる。しかし、前の開始ノードが削除されてい
る場合は、他のノードがクライアント212によって変
更されるデフォルト安定ノードとして選択されなければ
ならない。
【0061】削除が行われているとき、削除中のノード
及びマッピング中のツリー内に削除後も残る最も近い祖
先のノードIDでウォーカルーチン222を呼出すこと
ができる。この祖先は、削除中のノードから現在の挿入
/削除イベントによって削除されていない祖先に到達す
るまで上向きに巡回する(walk)ことによって、見つける
ことができる。
【0062】この呼出しに応答して、ウォーカルーチン
222は、削除中のノードが前の開始ノードか否かをテ
ストできる。そうである場合は、識別された祖先を、開
始ノードとして、削除中のノードと置換するために選択
することができる。祖先が表示されている位置に最近マ
ッピングされたものであり、それが使用可能な位置であ
る場合は、その位置を開始位置として選択できる。祖先
が最近マッピングされたものではない、又は、表示され
ない位置又は現在他の要素がマッピングされているため
に使用不可能な位置にマッピングされたものである場合
は、開始位置をユニットディスクの中心にすることがで
きる。
【0063】処理ボックス330でも、クライアント2
12は安定ノードのID及び位置でウォーカルーチン2
22を呼出してもよい。ウォーカルーチン222は、ま
ず削除されたノードが前の位置で収縮され、次に挿入さ
れたノードが新たな位置で拡張され、その間ずっと、安
定ノードは前の位置に保持されるという、表現のシーケ
ンスを表示するアニメーションループを実行することに
よって応答できる。安定ノードが、最近マッピングされ
たものではない、又は表示されない位置又は使用不可能
な位置にマッピングされたものであるので前の位置に保
持できない場合は、前の開始ノードが前の開始位置にあ
る状態で、削除されたノードが収縮された後に、安定ノ
ードをその位置に移動することができ、その結果、収縮
と拡張との間の突然の動きが生じる。ウォーカルーチン
222は、収縮及び拡張中、影響された各ノードに割当
てられた領域が変化するレートを支配する、重みのシー
ケンスをセットアップすることによって開始する。重み
は、アニメーション表示中のオブジェクト不変性を保つ
ために、十分に小さい増分で区分されている。
【0064】次に、ウォーカルーチン222は、判断ボ
ックス332で示されるように、シーケンス中の各重み
についてアニメーションループを反復する。処理ボック
ス334では、ウォーカルーチン222は、反復の重み
を用いて、まず双曲平面に影響されたノード及びツリー
の任意の保留中の編集をレイアウトしてもよい。次に、
処理ボックス336では、ウォーカルーチン222は、
処理ボックス314に関係して上述されたように、ツリ
ーをユニットディスクに、安定ノード及び位置で開始し
て、マッピングしてもよい。
【0065】ツリーがマッピングされたら、処理ボック
ス338で、マッピングされたツリーを表示バッファに
ペイントするために、ペインタルーチン224を呼出す
ことができる。ペイント中、ペインタルーチン224
は、処理ボックス316及び328に関係して上述され
たように、ノード生成の結果ツリー内で生じる新たな編
集をマーキングできる。ペイントが完了したら、ツリー
をペイントされたように表示するために表示バッファの
スワッピングを実行して、グラフの表現を提供すること
ができる。
【0066】保留中の編集が存在してもしなくても、判
断ボックス332で開始するアニメーションループの一
連の反復は、削除及び/又は挿入による動的ノード−リ
ンク構造の表現を生成する。更に、影響された要素は、
削除及び挿入の前の位置から新たな位置へと移動する。
この技術は、これらの動きの間のオブジェクト不変性を
生み出すために、うまく実現された。
【0067】処理ボックス316で表現が供給された
後、又は判断ボックス322又は332でアニメーショ
ンシーケンスが完了した後、図5の“A”と表示された
円によって示されるように、処理ボックス302で別の
イベントを受信できる。
【0068】図6は、図5の処理ボックス300でレイ
アウトが最初にどのように実行できるかを示している。
図7は、処理ボックス312、324、及び334で、
変更されたノード−リンク構造のレイアウトがどのよう
に実行できるかを示している。
【0069】処理ボックス350で示されるように、ウ
ォーカルーチン222は、ルートノードIDを入手して
有向グラフデータ構造232内のルートノードに関係す
るデータにアクセスするために用いることによって、最
初のレイアウトを開始する。処理ボックス352では、
ウォーカルーチン222は、角度幅で数学ルーチン22
6に対する呼出しを行うことによってルートノードをレ
イアウトする。この角度は、望ましい結果を生成する任
意の適切な角度でよい。角度2π及びπ/2がうまく用い
られ、2πを用いた場合は中心レイアウトスタイルに適
しており、π/2を用いた場合は上、下、右、又は左レイ
アウトスタイルに適していた。望ましい結果を得るため
にこの角度を修正するために、インタフェースが提供さ
れてもよい。
【0070】応答では、数学ルーチン226はルートノ
ードを、ユニットサークルの原点、即ち座標(0,0)
に、上向きのオリエンテーションで座標(0,1)に、及
び角度幅の半分の角度でレイアウトする。次に、処理ボ
ックス354で、ウォーカルーチン222はルートノー
ドIDをキューの前にプッシュする。
【0071】図6の残りでは、判断ボックス360で示
されるように、ウォーカルーチン222は、有向グラフ
データ構造232によって定義されるツリーの1組の要
素を、キューが空になるまで、繰返し走査する。各反復
は、キューの後からノードIDを入手し、それを有向グ
ラフデータ構造232内の識別されたノードに関係する
データにアクセスするために用いることによって開始す
る。
【0072】各反復で、判断ボックス370でのテスト
は、ノードがこの走査で既に巡回されたか否かを決定す
る。巡回されていない場合は、ウォーカルーチン222
は処理ボックス372で巡回済ノードをマーキングし、
複数の子のノードIDを入手し、複数の子のうちの非拡
張リーフ、即ち拡張された入リンクを持たないリーフノ
ードを識別し、以下に説明するように可視ツリー内に存
在する子の数を入手し、同じく以下に説明するように、
可視ツリー内の複数の子についての角度及び半径のアレ
イを入手するために、可視ツリー内に存在するノードの
子の数で数学ルーチン226を呼出す。
【0073】処理ボックス372での処理については、
近隣関係データの1タイプである可視ツリー内の子の数
は、2通りの方法のいずれかで計算できる。即ち、現
在の走査がノード追加ステップのシーケンスの一部であ
る場合は、は走査前の子の数と追加された子の数との
合計に等しい。現在の走査がノード除去ステップのシー
ケンスの一部である場合は、は単に走査前の子の数に
等しい。
【0074】処理ボックス372では、角度及び半径の
アレイは様々な方法で入手できる。1つの成功した実施
例では、各半径は0.7の値に設定され、一方、各角度は
((*π)/18)とπとのより小さい方に設定される。従っ
て、<18については、ノードの角度は可視ツリー内に
存在するそのノードの子の数に左右される。
【0075】次に、処理ボックス374で、ウォーカル
ーチン222は子をレイアウトするために数学ルーチン
226を呼出す。
【0076】処理ボックス374を実施する際、レイア
ウトの2つの一般原則が適用される。第1に、ノード間
の離間及び角度は、ツリー内の近隣要素に関する情報、
即ち近隣関係データだけに基づいて決定される。第2
に、各ノードについて入手されたレイアウト情報は、あ
るノード及びその全ての子の位置がデータ構造内の小さ
な変化で移動できるような方法で、ノード対その親の相
対位置を示す。
【0077】従うことのできる一般戦略は、処理ボック
ス372からの子の半径及び角度で開始し、子が必要と
する近似距離を入手し、近似距離を用いて親からの距離
を入手し、親からの距離を用いて子についてのより正確
な距離を入手し、次に、随意的により正確な距離を用い
て更により正確な距離を入手する、等である。
【0078】一般戦略に従って、子が処理ボックス37
2からの半径R及び角度Θを有する場合は、近似距離D1
及びD2をそれぞれsinh(R)及びtan(Θ/4)として計算でき
る。Nがレイアウト実行中の子の数であり、合計がi=1か
らN-1まで実行される場合に、それぞれの近接した子の
対が、それぞれのD1及びD2の合計のより大きい距離、即
ちDT=Σ(max(D1(i)+D1(i+1),D2(i)+D2(i+1))+max(D1
(1),D2(1))+max(D1(N),D2(N))によって分けられている
とき、D1及びD2を用いて、全ての子についての総距離DT
を得ることができる。その親が使用可能な角度ωを有す
る場合、親からの距離DPはasinh(DT/ω)として計算でき
る。次に、子を、親を中心とする半径DPの円の円周に沿
って、子の分割に比例する子の間の角度で配置できる。
【0079】次に、DPを用いて、子についてのより正確
な距離を以下のように得ることができる。 D1'=sinh(DP)asin(sinh(R)/sinh(DP))、 D2'=2sinh(DP)atan(tan(Θ/4)/eDP) 次に、D1'及びD2'を用いて、上述の方法等のように、所
望のレベルの正確さに到達するまで、親までのより正確
な距離DP'を得ることができる。その時点で、それぞれ
の子のオリエンテーションを親のオリエンテーションか
らの角度のずれとして計算できる。
【0080】上述の距離は双曲平面内の実際の計量で表
わされていることに注目されたい。双曲平面内の距離D
は、ユニットサークル内の原点で開始してtanh(D/2)の
距離を進むベクトルに対応する。
【0081】処理ボックス372に関係して上述したよ
うに、一般戦略はこのようにして、ノード、その親、及
び可視ツリー内の同胞の子に関する情報を含む同胞に関
する近隣関係情報だけに基づくレイアウト情報を入手す
る。一般戦略は、子からその親までの距離と、子とその
親とのオリエンテーションの違いを表わす角度とを示
す、レイアウト情報を入手する。
【0082】一般戦略は、全ての子について2つの反復
ループを遂行するが、一般戦略に関係して上述した方法
でより正確な距離を得る試みをせずに得られる最初の距
離を用いるソフトウェアとして実施された。第1のルー
プは、隣接する子の間の分離及び各子についての“スラ
イスサイズ”を入手して一時的に保存し、分離の合計も
入手する。次に、この情報を用いて親までの距離を得
る。次に、第2ループは、各子の相対的なオリエンテー
ション及び領域を入手して保存する。
【0083】このソフトウェアとしての実施例では、子
が処理ボックス372からの半径R及び角度Θを有する
場合は、一般戦略に関係して上述したように距離D1及び
D2が計算される。各子についてのD1及びD2を前の子につ
いてのD1及びD2に加え、S1及びS2を得る。分離の合計ST
は、最初と最後の子についてを除き、子のS1及びS2の最
大値に増加され、最初と最後の子については、STはその
子のD1及びD2の最大値に増加される。
【0084】子のS1がその子のS2より大きい場合は、S1
が子の分離として保存されると共にまずD1が子のスライ
スサイズとして保存され、2番目以降の子については、
前の子のスライスサイズがその子の前のスライスサイズ
とその子のS1との最小値となるように調整される。逆
に、子のS1がその子のS2より大きくない場合は、S2が子
の分離として保存されると共にまずD2が子のスライスの
サイズとして保存され、2番目以降の子については、前
の子のスライスサイズがその子の前のスライスサイズと
その子のS2との最小値となるように調整される。しかし
ながら、最後の子のスライスサイズは、その子の前のス
ライスサイズとその子のD1及びD2の最大値との最小値と
なるように調整され、第1の反復ループが完了する。
【0085】次に、親の角度ωを用いて、ユニットディ
スク内の親からの距離DPをtanh(asinh(ST/2ω)/2)又は
0.5の大きい方として計算することができる。DPは親ノ
ードに関連するデータの一部として保存される。
【0086】第2の反復ループは、各子について、Sが
子についての保存された分離であるとき、角度(S/ST)2
ωを計算することによって開始する。角度(S/ST)2ω
は、-2ωで開始したランニングトータルに加えられる。
ランニングトータルは子に関連する他のデータと共に保
存される。
【0087】次に、数学ルーチン226は、米国特許第
5,590,250号のコラム67及び68の“内角(inside-ang
le)”関数に類似の関数を呼出すことによって、子につ
いての新たな角度を計算できる。この、本明細書では
“インサイドアングル(InsideAngle)”と呼ぶ関数は、
楔の中へと移動された距離(“dist”)及び楔の半分の角
度で開始する。インサイドアングルは作動可能角度とし
て、開始角度と、εが0.0001のような非常に小さい値を
有し得るときの(π−ε)との、小さい方をとり、逆タ
ンジェントの計算における問題を回避する。インサイド
アングルは、ユニットサークル上の座標(dist,0)にある
点を原点へと移動する変形を入手する。次に、インサイ
ドアングルは、ユニットサークルの円周と、原点から発
する、水平位置との角度が作動可能角度である放射線と
の交点にある点の複合座標に、この変換を適用する。イ
ンサイドアングルは、結果の角度として、原点から変換
された点を通る放射線の水平位置からの角度を戻す。
【0088】子の角度を得るために、インサイドアング
ルは、距離DP及び第1反復からの子のスライスサイズを
2ω/STで乗算することによって計算された角度で呼出
される。インサイドアングルによって戻された角度はπ
/2と比較され、子の角度はこの2つのうちの小さい方で
ある。
【0089】子の新たな角度を保存する前に、数学ルー
チン226は子の前の角度を保存する。古い角度と新し
い角度との差の絶対値が最小値を越える場合は、数学ル
ーチン226は、以下に述べるように、レイアウトが継
続すべきであることを示すデータも保存する。
【0090】最後に、第2反復ループは、米国特許第5,
590,250号のコラム67及び68の“空間使用可能(room
-available)”関数(機能)と類似の関数を呼出すこと
によって、子の領域又はサイドスペースを得る。本明細
書では“ルームアベイラブル(RoomAvailable)”と呼ぶ
この関数は、楔の中へと移動された距離D及び楔の半分
の角度Φで開始する。ルームアベイラブルは、まず比(1
-D2)/2Dを得ることによって、次に初期距離Sを得るため
に比をsinΦで割ることによって計算される、楔のエッ
ジまでの距離を戻す。次に、ルームアベイラブルは距離
((S2-1)1/2-S)を戻す。子の領域を得るために、ルーム
アベイラブルは上述のインサイドアングルの呼出しに用
いられたのと同じ距離及び角度で呼出される。ルームア
ベイラブルによって戻された距離は子の領域の尺度とし
て保存される。
【0091】上述のソフトウェアとしての実施例は付加
的なデータを保存できるにも関わらず、ソフトウェアと
しての実施例は、本明細書に述べるように、レイアウト
及びマッピングを実行できるためには、各ノードについ
て2項目のデータだけ格納される必要があるという発見
に基づいている。一方の項目は、距離即ち双曲平面内の
ノードからその子ノードまでの位置変位を示す。他方の
項目は、そのノードの親までの入リンク及びその親から
そのノードへの出リンクの拡張の間の双曲平面内の角度
変位である。これらの2項目のデータ、又はそれらにア
クセスするために用いることができるハンドルは、有向
グラフデータ構造内のリンクのデータ項目に含まれるこ
とができる。
【0092】判断ボックス380のテストは、ノードの
次の世代までレイアウトを継続するか否かを決定するた
めに適切な基準を適用する。処理ボックス374に関係
して上述されたように、基準は、任意の子ノードの角度
が0.00001のような小さな角度の違い以上の変更をされ
ているか否かであり得る。そうである場合は、レイアウ
トを継続すべきである。
【0093】処理ボックス382では、ウォーカルーチ
ン222は、拡張されている又はリーフではない各子ノ
ードのIDを、キューの前にプッシュする。他の子ノード
は、レイアウトされる子を持たないので、処理ボックス
382でマーキング巡回されてよい。処理ボックス38
2が完了すると、又は判断ボックス380のテストが継
続しないと決定すると、又は判断ボックス370のテス
トがノードがすでに巡回されたと決定すると、判断ボッ
クス360に戻る前に処理ボックス384でキューの後
のノードが取り出される。
【0094】図7は、図5の処理ボックス312、32
4、及び334で、どのように変更されたノード−リン
ク構造のレイアウトが実行できるかを示している。それ
ぞれの場合に、レイアウトは、処理ボックス400で示
されるように、レイアウト及びマッピングへと導く呼出
しに応答して開始する。しかしながら、判断ボックス4
02のブランチによって示されるように、レイアウトが
実行される方法はノード−リンク構造になされた変更の
タイプによる。
【0095】変更が、オリエンテーションイベントに応
答したルートノードのオリエンテーションの変更である
場合は、処理ボックス404で、ウォーカルーチン22
2は数学ルーチン226を呼出し、マッピング及びペイ
ントの前にルートノードを新たなオリエンテーションに
レイアウトすることができる。ルートノードは、新たな
オリエンテーション以外では、図6の処理ボックス35
2に関係して上述されたようにレイアウトできる。次に
新たなオリエンテーションがマッピングに用いられ、表
現のオリエンテーションを変える。
【0096】変更が、ストレッチイベント、ドラッグイ
ベント、ブックマークイベント、又は編集が保留中の場
合のクリックイベントに対する応答で生じ得るように非
アニメーション編集である場合は、ウォーカルーチン2
22は、処理ボックス410で、まず除去編集のリスト
をセットアップし、次に処理ボックス412で、マッピ
ング及びペイント前に除去編集をレイアウトする。次に
処理ボックス414で、ウォーカルーチン222は追加
編集のリストをセットアップし、次に処理ボックス41
6で、マッピング及びペイント前に追加編集をレイアウ
トする。
【0097】この実施では、編集のリストは、グラファ
ルーチン220及びペインタルーチン224を含むメモ
リ214内の種々のルーチンによって維持される編集ソ
ースリストに基づいてセットアップされる。現在の実施
は、拡張されたリンクによって定義されるツリーにも関
係する。本明細書で“コラプストリンクス(CollapsedLi
nks)”及び“エキスパンデッドリンクス(ExpandedLink
s)”と呼ぶ1対の編集ソースリストは、それぞれ収縮要
求及び拡張要求によって選択されたリンクについての編
集を含み、従って、図5の処理ボックス330でセット
アップできる。本明細書で“リムーブドリンクス(Remov
edLinks)”及び“アディッドリンクス(AddedLinks)”と
呼ぶ他の対は、それぞれ削除及び挿入されたリンクにつ
いての編集を含む。編集ソースリストのコピーは、異な
る目的で複数存在していてもよい。
【0098】処理ボックス410でセットアップされた
除去編集のリストはリムーブドリンクスに基づいてお
り、一方、処理ボックス414でセットアップされた追
加編集のリストはアディッドリンクスに基づいている。
処理ボックス410又は414でリストをセットアップ
する際に、ウォーカルーチン222は適切な編集ソース
リスト内の各編集にアクセスし、その編集用いてセット
アップ中のリストについての適切なエントリを入手す
る。それぞれの場合に、編集ソースリスト内の編集を用
いて、編集のリンクの子ノードのノードID及び実行中
の編集のタイプを示す編集識別子を入手する。
【0099】その子ノードの親は、既にリスト上に存在
するのではない限り、影響されたノードのリストの後に
加えられる。親は、その子ノードの拡張された親ノード
か、又は、その子ノードの親ノードが現在どれも拡張さ
れていない場合は、その子ノードの最初の親ノードであ
る。編集ソースリストからの編集が親を持たない子ノー
ドに関係する場合は、その編集はそのルートに関係しな
ければならず、従ってその場合は、そのルートノードが
影響されたノードのリストの後に置かれる。
【0100】ソース編集リストからのリンクについての
反復の最後に、次の反復に用いられる適切な編集ソース
リスト内の次の編集にアクセスする前に、そのリンクの
子ノードも子ノードリストに追加される。このように、
影響されたノード及び子ノードのリストを完成するため
に全ての編集が処理されるまで、編集ソースリストの各
編集について反復が行われる。
【0101】次に、処理ボックス412又は416で
は、リストを用いて編集がレイアウトされ、影響された
ノードのリスト内の各ノードについて図6の処理ボック
ス354から382のシーケンスに類似のシーケンスを
辿り、ソフトウェアのノードをリストから、ルートノー
ドよりもキューの前にプッシュし、処理ボックス372
で、次のように幾つかの変更を行う。処理ボックス41
2及び416のレイアウトは、どの子が非拡張リーフで
あるかの識別に加えて、各子が子ノードリストに存在す
るか否かを決定する。そうである場合は、レイアウトは
その子についての角度及び半径を重みで乗算する。処理
ボックス412では、重みが0なので、処理ボックス3
74でその子はほぼその前の位置に角度及び半径が0で
レイアウトされ、従って消滅する。処理ボックス416
では、重みが1なので、処理ボックス374でその子は
新たな位置に全角度及び全半径でレイアウトされる。
【0102】処理ボックス410から416の操作もア
ニメーションシーケンス内で実施されてもよく、その場
合は、除去編集はアニメーションシーケンスの最初の部
分で処理されてもよく、追加編集はシーケンスの後続部
分で処理されてもよい。一方、図5に関係して上述した
ように主にペイント中のノード生成から非アニメーショ
ン編集が生じる場合は、その編集は追加編集だけであっ
てよく、アニメーションシーケンスの各ステップで全て
の現在保留中の編集が処理されてもよい。
【0103】要素を収縮又は拡張する要求のように挿入
/削除イベントに応答して、変更がアニメーション化編
集である場合は、ウォーカルーチン222は、処理ボッ
クス420で、まずソース編集リストに基づいて除去及
び追加される要素の数を入手する。除去される数は、コ
ラプストリンクス及びリムーブドリンクス内の要素の数
を加算することによって得ることができ、一方、追加さ
れる数は、エキスパンデッドリンクス及びアディッドリ
ンクス内の要素の数を加算することによって得ることが
できる。次に、処理ボックス422で、ウォーカルーチ
ン222は、除去ステップと追加ステップとの間に使用
可能なアニメーションステップを割付け、幾分図7の処
理ボックス410及び414のように、除去編集及び追
加編集のリストもセットアップする。アニメーションス
テップの単純な割付けは、半分の除去ステップと半分の
追加ステップであるが、除去される要素が無い場合は全
てのステップが追加ステップとなり得、追加される要素
が無い場合はその逆である。
【0104】処理ボックス422での除去編集及び追加
編集リストのセットアップにおいて、ウォーカルーチン
222は、収縮又は拡張されたノードが存在しない限
り、処理ボックス410及び414に関係して上述した
ように行うことができる。収縮又は拡張されたノードの
場合は、ノード自体が、その親に加えて、影響されたノ
ードリストの後にプッシュされ、次に、そのノード自体
ではなくそのノードの子が、子ノードリストに加えられ
る。言い換えれば、収縮又は拡張は、1つのノードだけ
に影響する他の操作とは異なり、2世代のノードに影響
すると考えることができる。ウォーカルーチン222
は、影響されたノード及び子ノードの2対のリストをセ
ットアップし、1対を除去編集に、もう1対を追加編集
に用いる。
【0105】次に、判断ボックス430で開始するルー
プで、ノードを除去するアニメーションステップが実行
され、処理ボックス432で、重みを入手し、重みを用
いて除去編集をレイアウトし、アニメーションフレーム
をマッピング及びペイントする。同様に、次に判断ボッ
クス440で開始するループでノードを追加するアニメ
ーションステップが実行され、処理ボックス442で、
重みを入手し、重みを用いて追加編集をレイアウトし、
アニメーションフレームをマッピング及びペイントす
る。ノードを追加する前にノードを除去することによっ
て、単一フレーム内で同一ノードが2箇所に出現する状
況が防止される。ノードを除去した後に1つの最終ステ
ップを重み0で実行し、ノードを追加した後にもう1つ
の最終ステップを重み1で実行することによって、この
技術は最終重みがそれぞれ0又は1であることを確実に
できる。
【0106】処理ボックス432で、除去アニメーショ
ンステップ数から現在の除去アニメーションステップ番
号を引き、次にその差を除去アニメーションステップ数
で割ることによって、一連の除去アニメーションステッ
プの間に重みが1から0になるように重みを入手でき
る。同様に、処理ボックス442で、現在の追加アニメ
ーションステップ番号に1を加え、次にその合計を追加
アニメーションステップ数で割ることによって、一連の
追加アニメーションステップの間に重みが0から1にな
るように重みを入手できる。
【0107】アニメーションステップの総数は、アニメ
ーション速度と共に、アニメーション表示中のオブジェ
クト不変性の知覚への影響を助ける。上述の重みを得る
方法の説明から理解できるように、アニメーションステ
ップの総数は、除去又は追加された要素の領域が変化す
るレートを決定し、従って、他の要素が除去又は追加さ
れた要素の領域に関係して移動しなければならないレー
トを間接的に決定する。十分なアニメーション速度が維
持されることを前提とすれば、除去ステップと追加ステ
ップとの間に適切に割付けられたアニメーションステッ
プ数が多い方が、オブジェクト不変性を生み出すのによ
り適している。
【0108】図7の技術は、適切な速度の適切な数のア
ニメーションステップで実行されると、幾分閉じられた
り広げられたりする扇のような、収縮及び拡張する1組
のノードの知覚をうまく作り出した。ノードに割当てら
れた半径及び角度を調整することによって、削除された
ノードがその親に引き込まれる又は無限へと絞り出され
る、又は挿入されたノードがその親から生え出る又は無
限から引っぱり込まれるような、異なる知覚を得ること
ができる。1つの子のグループから1つの子だけ削除さ
れる場合には、その子が無限へと絞り出されるように見
え、収縮のように1グループとして全ての子が削除され
る場合には、全ての子が親に引き込まれるように見える
ことが可能である。同様に、1つのグループに1つの子
が追加される場合には、その子が無限から引っぱり込ま
れるように見え、拡張のように1グループとして全ての
子が挿入される場合には、全ての子が親から生え出るよ
うに見えることが可能である。更に、孫が安定して見
え、子だけが移動して見えるように調整されたレート
で、子が親に引き込まれている間に孫を無限へと絞り出
すことができる。
【0109】上述の実施に類似の実施は、IBM互換P
Cのプロセッサ上でうまく実行されたが、実施は任意の
適切なプロセッサを有する他の装置で実行されてもよ
い。
【0110】上述の実施に類似の実施は、32ビットのウ
インドウズ(Windows)環境でC++言語を用いてうまく実
行されたが、非オブジェクト指向環境を含む他のプログ
ラム言語及び環境を用いてもよく、また、リスプ(Lis
p)、ユニックス(Unix)環境、ANSI C、及びパスカル(Pas
cal)等のような他のプラットフォームを用いてもよい。
【0111】上述の実施に類似の実施は、XML準拠フ
ォーマット及びある実験的フォーマットで表示されるノ
ード−リンクデータを用いてうまく実行されたが、本発
明は、静的又は動的いずれかの、メモリ内又はネットワ
ークを介してのように任意の適切な方法でアクセス可能
な、任意の適切なタイプのノード−リンクデータを用い
て実行されてもよい。
【0112】上述の実施に類似の実施は、ナビゲーショ
ン信号に応答してグラフの1つの表現又はアニメーショ
ン化された一連の表現を準備及び表示する各反復を用い
て実施されたが、本発明は他のタイプの信号又は呼出し
によって呼出される他のタイプの反復を用いて実施され
てもよい。
【0113】上述の実施に類似の実施は、キーボード及
びマウスから受信され、且つノード−リンク構造の表示
された表現又はアニメーション化された一連の特定のタ
イプの表現に関係するナビゲーション信号を用いてうま
く実行された。しかしながら、本発明は、ナビゲーショ
ン信号を用いて又は用いずに実施されてもよい。例え
ば、あるノードの子の異なるソーティングに応答して、
又はある構造の要素への異なるフィルタの適用に応答し
て、要素を動き回らせてもよい。また、本発明は、任意
の適切なタイプの拡張及び収縮信号、又は外部の照会、
示されたノード又はリンクの下に拡張を要求するメニュ
ーエントリーのような項目の選択、又は現在の焦点の下
に拡張を要求するメニューエントリーのような項目の選
択から生じた信号を含む他のナビゲーション信号を用い
て実施されてもよい。ナビゲーション信号は、代わり
に、ビデオゲーム又はバーチャルリアリティ環境によっ
て生成される空間のような現実には無い空間又はディス
プレイ以外の表示空間に関係してもよく、また、ナビゲ
ーション信号は、代わりに、他の種類の位置決め装置、
及び英数字又は声、身振りのような言語的入力、又は他
の様式のユーザ入力を受信するための他の種類の装置を
含む、任意の適切なユーザ入力装置によって生成されて
もよい。更に、本発明は他のタイプのノード−リンク構
造の表現を用いて実施されてもよい。本発明はアニメー
ションなしで、又は任意の適切なアニメーション技術を
用いて実施されてもよい。
【0114】上述の実施では、親、子及び孫の間の関係
に関する近隣関係データを入手するが、本発明は、レイ
アウト中の要素の、上位又は下位の追加の世代か又は横
方向の追加の親戚かの、より遠い親戚を含む関係のよう
な、異なる組の近隣ノード−リンク関係に関する近隣関
係データを入手するように実施されてもよい。例えば、
レイアウト中の要素の親の親が考えられる。
【0115】上述の実施では、ノードについて、その親
からの位置変位及び角度変位を示すレイアウトデータを
入手する。しかしながら、本発明は、ノードではなく、
又はノードに加えて、リンクについてのレイアウトデー
タを入手するように実施されてもよい。更に、本発明
は、任意の他の適切な方法で相対位置を示すと共に付加
的情報を示すレイアウトデータを入手するように実施さ
れてもよい。
【0116】上述の実施では、要素の親の孫の総数を入
手し、次にその総数を用いて親の子の角度及び半径を入
手し、次にその角度及び半径を用いて位置変位及び角度
変位を入手する。この実施では上述のように特定の計算
を行う。本発明は、任意の他の適切な方法で近隣関係デ
ータ及びレイアウトデータを入手するように実施されて
もよい。例えば、親の各子が重みづけを有してもよく、
子の相対的重みづけを用いて、各子が占めるスペースを
決定又は子から親までの比例距離を決定してもよい。ま
た、ノードの周りの使用可能領域に関する情報も、領域
の重なりが最小のレイアウトを得ることによって、考慮
されてもよい。反復計算を最小限にするために、レイア
ウトの結果をキャッシュに格納してもよい。
【0117】上述の実施では、双曲平面にレイアウトさ
れたノード−リンク構造は、次にユニットディスクにマ
ッピングされ、次にペイントされるが、本発明に従って
レイアウトされたノード−リンク構造は、任意の他の適
切な負曲空間にレイアウトされ、次に任意の他の適切な
方法で、マッピングをして又はせずに処理されてもよ
く、又は、ノード−リンク構造を、3次元レンダリング
空間及び表示空間を含む任意の他の適切なレンダリング
空間にマッピングして任意の他の適切な表示空間に表示
することを含む、任意の他の適切な方法でマッピング及
び表示されてもよい。
【0118】上述の実施では、あるノードについて入手
した角度変位を前の角度変位と比較することによって、
そのノードの子をレイアウトするか否かを決定するが、
本発明は、レイアウトされた各ノードの全ての子孫をレ
イアウトすることによって、又はレイアウトする要素の
決定に任意の他の適切な基準を適用することによって実
施されてもよい。
【0119】上述の実施はツリーの要素のレイアウトに
適している。本発明は、一般的なグラフのような、他の
タイプのノード−リンク構造の要素をレイアウトするの
に用いられてもよい。
【0120】上述の実施では、特定のタイプのメモリ管
理を用いて、特定の方法でグラフ内のツリーを定義する
ためのリンクの拡張フラグを含むノード−リンクデータ
を用いるが、本発明は、任意の他の適切な方法で定義さ
れ、任意の適切な方法でメモリにロードされるノード−
リンク構造を用いて実施されてもよい。
【0121】上述の実施では、リンクが、1つのリスト
がそのフロムノードからの出リンクに対応し1つのリス
トがそのツーノードへの入リンクに対応する2つのリン
クされたリスト内の項目として表わされる、有向グラフ
データ構造を用いる。任意の他の適切なデータ構造を用
いてもよい。
【0122】上述の実施は、循環有向グラフを含む有向
グラフを扱うことができるが、本発明は、他のタイプの
リンクを有向グラフの適切な組合せに変換することによ
って、又は別様ではグラフの構造をツリーにマッピング
するためのプロトコルを供給することによって、他のタ
イプのグラフ用に実施されてもよい。例えば、2つのノ
ード間の無向リンクが、同じノードの間の1対の有向リ
ンクに変換されてもよく、又は適切な基準に基づいて方
向を割り当てられてもよい。一般的に、全ての無向リン
クが1対の有向リンクへと変換されている表現は、結果
的に有向リンクの各対が循環するので、視覚的に混乱さ
せる傾向があるが、別の方法で循環を表示することによ
ってこの混乱は克服されるかもしれない。
【0123】上述の実施では、処理は多くの場合に変更
されてもよい順位で行われる。例えば、図6では、幅優
先巡回よりも深さ優先巡回が実行されてもよい。
【0124】同じく、上述の実施では、幾つかのソフト
ウェアの部分が、グラファ、ウォーカ、ペインタ、及び
数学ルーチン、並びにクライアントのように区別される
が、本発明は、ハードウェア及びソフトウェアの他の組
合せ並びに任意の適切な方法で構成されたソフトウェア
で実施されてもよい。
【0125】本発明は、ノード−リンク構造の対話式ブ
ラウザの提供に適用された。本発明は、ノード−リンク
構造が視覚化のためにレイアウトされる様々なコンテキ
ストに適用され得る。特に、本発明は、キャッシュに格
納された1組のウェブページ又は他のウェブオブジェク
トによって形成された構造のような、ウェブ関連構造の
視覚化に適用され得る。
【0126】より一般的には、本発明は、組織図、ファ
イルシステム階層、ハイパーテキスト階層、ワールドワ
イドウェブ接続性構造、パーツ分解、SGML構造、又
は任意の他の大きなノード−リンク構造のためのブラウ
ザの提供に適用され得る。このブラウザは、構造又は構
造の内容の編集に用いられてもよい。
【0127】本発明は、ソフトウェアとしての実施例に
関係して述べられてきたが、本発明は専用ハードウェア
を用いて実施されてもよい。
【図面の簡単な説明】
【図1】ノード−リンク構造内の要素についてどのよう
に局所的な相対的レイアウトが実行できるかを示す模式
的なフロー線図である。
【図2】図1に示されるような局所的な相対的レイアウ
トの実行における一般的な処理を示すフロー図である。
【図3】図1に示されるような局所的な相対的レイアウ
トを実行する装置の一般的な構成要素を示す模式的な線
図である。
【図4】システムの模式的な線図である。
【図5】どのように図4のシステムが有向グラフの表現
を表示することによってイベントに応答できるかを示す
フロー図である。
【図6】図5でどのように最初のレイアウトを実行でき
るかを示すフロー図である。
【図7】図5でどのように変更されたノード−リンク構
造のレイアウトを実行できるかを示すフロー図である。
【符号の説明】
10 ノード−リンク構造 22 ノード 24 親ノード 26−28 同胞ノード 30−32 子ノード 40 近隣関係データ 42 レイアウトデータ 212 クライアント 220 グラファルーチン 222 ウォーカルーチン 224 ぺインタルーチン 226 数学ルーチン 230 有向グラフデータ構造 232 ノード位置データ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラマナ ビー.ラオ アメリカ合衆国 94112 カリフォルニア 州 サンフランシスコ イナ コート 50 (72)発明者 ティチョミア ジー.テネヴ アメリカ合衆国 95123 カリフォルニア 州 サンノゼ クリー ドライブ 610

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 負曲率を有する空間にノード−リンク構
    造をレイアウトする方法であって、 前記構造内の要素について、近隣ノード−リンク関係に
    関する情報を示す近隣関係データを入手し、 前記近隣関係データに基づいて、前記負曲率を有する空
    間での前記要素の親に対する相対位置を示すレイアウト
    データを入手する、 負曲率を有する空間にノード−リンク構造をレイアウト
    する方法。
JP21449199A 1998-07-29 1999-07-29 ノード表示装置 Expired - Lifetime JP4864181B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/124,805 US8232995B2 (en) 1998-07-29 1998-07-29 Local relative layout of node-link structures in space with negative curvature
US124805 1998-07-29

Publications (2)

Publication Number Publication Date
JP2000067253A true JP2000067253A (ja) 2000-03-03
JP4864181B2 JP4864181B2 (ja) 2012-02-01

Family

ID=22416864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21449199A Expired - Lifetime JP4864181B2 (ja) 1998-07-29 1999-07-29 ノード表示装置

Country Status (4)

Country Link
US (1) US8232995B2 (ja)
EP (1) EP0977155B1 (ja)
JP (1) JP4864181B2 (ja)
DE (1) DE69904539T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262646A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 動的グラフ用アニメーション・プランニング方法及び装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377259B2 (en) 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US6901555B2 (en) 2001-07-09 2005-05-31 Inxight Software, Inc. Tree visualization system and method based upon a compressed half-plane model of hyperbolic geometry
US7127469B2 (en) * 2002-06-13 2006-10-24 Mark Logic Corporation XML database mixed structural-textual classification system
EP1552426A4 (en) * 2002-06-13 2009-01-21 Mark Logic Corp STRUCTURED XML DATABASE UNDER TREE
WO2003107222A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Parent-child query indexing for xml databases
WO2005029393A1 (en) * 2003-08-21 2005-03-31 Microsoft Corporation Electronic ink processing
CA2470118C (en) * 2003-08-21 2012-01-03 Microsoft Corporation Electronic ink processing
CN100414559C (zh) * 2003-08-21 2008-08-27 微软公司 电子墨水处理方法和系统
CN100559364C (zh) * 2003-08-21 2009-11-11 微软公司 用于将第一数据结构与第二数据结构相协调的方法
US7502812B2 (en) * 2003-08-21 2009-03-10 Microsoft Corporation Electronic ink processing
US7616333B2 (en) * 2003-08-21 2009-11-10 Microsoft Corporation Electronic ink processing and application programming interfaces
US7958132B2 (en) * 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
US8214754B2 (en) 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US7477263B2 (en) * 2006-03-10 2009-01-13 International Business Machines Corporation Relayout of all or part of a graph in association with a change in state of a graph element
US8120610B1 (en) * 2006-03-15 2012-02-21 Adobe Systems Incorporated Methods and apparatus for using aliases to display logic
US20080016093A1 (en) * 2006-07-11 2008-01-17 Clement Lambert Dickey Apparatus, system, and method for subtraction of taxonomic elements
US7949946B2 (en) * 2007-10-17 2011-05-24 Microsoft Corporation Layout and line routing composition
CN101676955B (zh) * 2008-09-19 2013-05-08 国际商业机器公司 动画展现动态图序列之间的转变的方法和装置
KR20110003947A (ko) * 2009-07-07 2011-01-13 삼성전자주식회사 데이터 처리 장치 및 방법
TWI470576B (zh) * 2010-02-01 2015-01-21 Ibm 動態圖片的動畫規劃方法與裝置
US9075873B2 (en) * 2011-03-11 2015-07-07 Microsoft Technology Licensing, Llc Generation of context-informative co-citation graphs
US8825710B2 (en) * 2011-05-26 2014-09-02 Planet Technologies Cloud computing method for dynamically scaling a process across physical machine boundaries
US8832582B2 (en) 2012-03-15 2014-09-09 Microsoft Corporation Interactive control of the curvature of links
US10412117B2 (en) 2014-08-05 2019-09-10 Dflabs S.P.A. Method and system for automated cybersecurity incident and artifact visualization and correlation for security operation centers and computer emergency response teams
CN112887112A (zh) * 2019-11-29 2021-06-01 中兴通讯股份有限公司 站点坐标规划方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0411286A (ja) * 1989-12-29 1992-01-16 Xerox Corp 画像をディスプレイへ表示する方法
JPH05210472A (ja) * 1991-10-02 1993-08-20 Xerox Corp 階層化ディスプレイでノードをセンタリングするための方法
JPH0876951A (ja) * 1994-09-07 1996-03-22 Toshiba Corp ハイパーメディアのマップ表示システム及びマップ表示方法
JPH08110847A (ja) * 1994-09-14 1996-04-30 Xerox Corp ノードリンク構造のディスプレイ方法
JPH08129649A (ja) * 1994-09-14 1996-05-21 Xerox Corp ノードリンク構造レイアウト方法及びマシン動作方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
CA2097232C (en) * 1993-05-28 1999-01-19 Phillip J. Beaudet Displaying partial graphs by expanding and collapsing nodes
JP2993434B2 (ja) 1996-07-16 1999-12-20 日本電気株式会社 分散ハイパーメディアシステム
US5798769A (en) 1996-08-15 1998-08-25 Xerox Corporation Method and apparatus for maintaining links between graphic objects in a free-form graphics display system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0411286A (ja) * 1989-12-29 1992-01-16 Xerox Corp 画像をディスプレイへ表示する方法
JPH05210472A (ja) * 1991-10-02 1993-08-20 Xerox Corp 階層化ディスプレイでノードをセンタリングするための方法
JPH0876951A (ja) * 1994-09-07 1996-03-22 Toshiba Corp ハイパーメディアのマップ表示システム及びマップ表示方法
JPH08110847A (ja) * 1994-09-14 1996-04-30 Xerox Corp ノードリンク構造のディスプレイ方法
JPH08129649A (ja) * 1994-09-14 1996-05-21 Xerox Corp ノードリンク構造レイアウト方法及びマシン動作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262646A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 動的グラフ用アニメーション・プランニング方法及び装置

Also Published As

Publication number Publication date
US8232995B2 (en) 2012-07-31
US20020085002A1 (en) 2002-07-04
EP0977155A2 (en) 2000-02-02
EP0977155A3 (en) 2000-10-25
JP4864181B2 (ja) 2012-02-01
DE69904539D1 (de) 2003-01-30
DE69904539T2 (de) 2003-05-15
EP0977155B1 (en) 2002-12-18

Similar Documents

Publication Publication Date Title
JP4864181B2 (ja) ノード表示装置
US6377259B2 (en) Presenting node-link structures with modification
US6300957B1 (en) Mapping a node-link structure to a rendering space beginning from any node
JP3630791B2 (ja) ノードリンク構造レイアウト方法及びマシン動作方法
US6654761B2 (en) Controlling which part of data defining a node-link structure is in memory
JP3737169B2 (ja) ノードリンク構造のディスプレイ方法
Huang et al. On-line animated visualization of huge graphs using a modified spring algorithm
US6108698A (en) Node-link data defining a graph and a tree within the graph
Lamping et al. Laying out and visualizing large trees using a hyperbolic space
US6901555B2 (en) Tree visualization system and method based upon a compressed half-plane model of hyperbolic geometry
US6888554B1 (en) User interface for bicontextual exploration of a graph
EP0435601B1 (en) Display of hierarchical three-dimensional structures
JPH0689084A (ja) 作業スペースの表示処理方法
JPH06266781A (ja) ナビゲート可能な形式でのツリーの格納
JP2017532667A (ja) レイアウトエンジン
JP2554446B2 (ja) 実体関連図を記憶及び表示するための方法並びにコンピュータ・システム
JP3346130B2 (ja) グラフ図形配置法およびその装置
de Berg et al. A segment-tree based kinetic BSP
JP2644735B2 (ja) 図面情報管理方法
JP2590327B2 (ja) 図面情報の管理方法
JP2718783B2 (ja) 図形作成装置
El Haje A heterogeneous data-based proposal for procedural 3D cities visualization and generalization
NAKAMURA et al. Central Research Laboratory Mitsubishi Electric Corporation
van Oosterom Geographic Information Systems
JPH09223223A (ja) イメージデータのトリミング処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111011

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term