JP3630791B2 - ノードリンク構造レイアウト方法及びマシン動作方法 - Google Patents

ノードリンク構造レイアウト方法及びマシン動作方法 Download PDF

Info

Publication number
JP3630791B2
JP3630791B2 JP23186695A JP23186695A JP3630791B2 JP 3630791 B2 JP3630791 B2 JP 3630791B2 JP 23186695 A JP23186695 A JP 23186695A JP 23186695 A JP23186695 A JP 23186695A JP 3630791 B2 JP3630791 B2 JP 3630791B2
Authority
JP
Japan
Prior art keywords
node
box
layout
nodes
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP23186695A
Other languages
English (en)
Other versions
JPH08129649A (ja
Inventor
オー.ランピング ジョン
ビー.ラオ ラマナ
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.)
Business Objects Americas Inc
Original Assignee
Business Objects Americas Inc
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 Business Objects Americas Inc filed Critical Business Objects Americas Inc
Publication of JPH08129649A publication Critical patent/JPH08129649A/ja
Application granted granted Critical
Publication of JP3630791B2 publication Critical patent/JP3630791B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ノードリンク構造のレイアウトに関する。
【0002】
【従来の技術及び発明が解決しようとする課題】
ギンドン,アール.エドワード(Guindon, R., Ed., )の「人間とコンピュータの対話のための認識科学とその応用(Congnitive Science and its Application for Human Computer Interaction )」[ニュージャージー州ヒルズデイルのローレンスアールバウム(Lawrence Erlbaum)、1988年]のP201〜P233におけるフェアチャイルド,ケイ.エム.(Fairchild, K.M. )、ポルトロック,エス.イー.(Poltrock, S.E.)、ファーナス,ジー.ダブリュ.(Furnas, G.W.)の「セムネット(SemNet):大規模知識ベースの3次元グラフィック表示(Three−Dimensional Graphic Representations of Large Knowledge Bases)」は、セムネット即ち3次元グラフィカルインタフェースについて述べている。
【0003】
図1−1に関して示され且つ述べられているように、セムネットは、知識ベースを3次元空間において有向グラフとして表し、該有向グラフは、線又は弧で連結されてラベル付けされた矩形として表された知識エレメントを有する。
【0004】
本発明の一態様は、ノードリンク構造のレイアウトにおける基本的な問題を軽減する。ノードリンク構造中の情報は、構造を横断するにつれて指数関数的に増大する傾向がある。例えば、ノードリンク構造が、ルートノードと、ルートノードより低いレベルのノードとを有するツリー又は他の階層(hierarchy )的構造である場合には、ノード数と、それ故にツリーにおける情報量とは、ルートから下位レベルになるにつれて、指数関数的に増大する傾向がある。ノードリンク構造の表現をディスプレイする場合等いくつかのアプリケーションでは、各ノードが他のノードから十分に離間された独自の位置を有するように、1つの空間にノードリンク構造をレイアウトすることが有益である。ノード数及びツリーにおける情報量が指数関数的に増大することにより、1つの空間にノードリンク構造をレイアウトすることは困難である。
【0005】
いくつかの従来技術は、2次元、3次元、又はそれ以外のn次元のユークリッド空間においてノードリンク構造をレイアウトする。例えば、上述のフェアチャイルド他の技術はノードを3次元空間に配置するが、それは一部には、ノードを平面に配置すると弧が交わってしまうからである。ロバートソン(Robertson )他の米国特許第5,295,243号は、回転するサブ構造を有する階層的構造を3次元空間に配置する技術について述べている。
【0006】
ユークリッド空間におけるレイアウトは例えば、ルートノードから始まり、空間に各ノードを配置しながら構造を横断する。ユークリッド空間におけるレイアウトは、指数関数的な増大のために、密度において大きなばらつきを含みがちである。ブランチにおけるノードは、ルートに近いノードよりもずっと密度が高い傾向がある。密度に大きなばらつきがあると、このようなレイアウトに基づいて走査検索を使用するユーザが、密度の異なる領域におけるノード同士の関係を理解することが困難であるため、レイアウトの使用において問題が生じる。
【0007】
【課題を解決するための手段】
本発明の技術は、指数関数的に増大するブランチを有するノードリンク構造が、負の曲率を有する空間では密度の大きなばらつきを有することなくレイアウトされることができるという発見に基づくものである。空間は、平行な線が発散する場合に負の曲率を有する。本発明の実施の形態は、n次元の双曲的空間(2次元の双曲的空間は「双曲面」と呼ばれる)を含む。双曲面では、例えば、円の面積はその半径の指数関数に比例するので、指数関数的に増大するブランチを有するノードリンク構造の均一なレイアウトを得ることが容易である。負の曲率を有するレイアウト空間は、レイアウト空間における位置が限られた精度で特定される場合に、双曲面又は負の曲率を有する他の連続的空間に対する「ディスクリート(離散的)な近似」と呼ばれ、レイアウト空間における全ての位置は、双曲面又は負の曲率を有する他の連続的空間における位置にマッピング(写像)されるが、逆は成り立たない。
【0008】
各技術は、負の曲率を有するレイアウト空間においてノードリンク構造の部分の位置を示すレイアウトデータを使用する。レイアウトデータは例えば、レイアウト空間における位置を示す座標を含む。レイアウトデータは、ブランチを形成するノードの集合の中の各ノードに対するレイアウト空間における位置を示す。親ノードの集合の中の各々に関して言えば、親ノードを共有する下位レベルのノードは、空間における円又は円の弧に略沿った形で存在し、親ノードはその円の略中心に位置される。ここで使用するように、「円に沿って」とは、円の弧に沿った配列も含まれる。各円に沿って隣接する下位レベルのノードの位置は、おおよそ基底スペーシング(間隔)だけ離間される。集合中の全親ノードの円の半径は共に半径方向離間関数を近似し、該関数は、半径と円に沿って隣接する下位レベルのノード同士間の離間とが全てブランチ内で略均一となるように、下位レベルのノード数と共にゆっくりと増大する。
【0009】
ブランチの略均一なレイアウトは非常に有益である。例えば、ブランチを含むノードリンク構造の表現をディスプレイすることにおいて、さらなるレイアウトが必要でなくなる、即ち、レイアウト空間において厳密な変換を実行して変換された位置を得ることにより、そして、この変換位置から、ディスプレイ上に表されることのできる平坦なユークリッド領域(円形、ディスク形状領域、若しくは任意の他の適切な形状の領域等)へとマッピングすることにより、表現が得られることができる。
【0010】
レイアウト空間は、例えば双曲面のディスクリートな近似であることが可能であり、レイアウトデータは、双曲面における位置を一体となって示す2つの座標を各ノードに対して示すことができる。ノードリンク構造は、ツリー等の非循環グラフであることが可能である。
【0011】
本発明の一態様は、ノードリンク構造の表現のディスプレイに関する。この技術では、レイアウトデータを使用して、ノードリンク構造の第1の表現をディスプレイ上に表示する。第1のディスプレイ位置から第2のディスプレイ位置への変更を示すユーザからの信号に応答して、この技術は次に、第1の表現の移動された継続として認知される第2の表現を示す。第1の表現は、第1のディスプレイ位置付近に、ノードリンク構造の第1の部分を表す第1の特徴を含み、また第2の表現は、前記第1の部分を示すものの第2のディスプレイ位置付近にある第2の特徴を含む。
【0012】
本発明の別の態様は、上述のレイアウトデータを得るための技術を提供する。この技術は、上述のレイアウトデータを得るためにノードリンク構造を規定するノードリンクデータを使用する。この技術は次に、レイアウトデータを使用して、2つ以上の異なるマッピングを実行する。各マッピングにより得られたマッピングデータは、ノード集合の部分集合に対する位置を示す。例えば位置は、ディスプレイ位置、又は別の適切な空間における位置であることが可能である。
【0013】
本発明のまた別の態様は、レイアウトデータが双曲面のディスクリートな近似における位置を示す場合に、上述の変換データを得る技術を実行する際に生じる問題の認識に基づく。変換が純粋な平行移動(translation )である場合には、回転に関する問題が生じる。双曲面において直線に対して平行移動を実行すると、その直線上にない点がその直線上の点に対して回転されるので、直覚的にわからなくなるおそれがある。さらに、閉ループを形成する一連の平行移動は、その各々が、平行移動のその直線に沿ってオリエンテーション(配向)を保持するので、この場合もまた反直覚的な回転を生じる。
【0014】
本発明のこの態様は、回転の問題を軽減する技術を提供する。各技術は、回転成分を含む変換を提供する。この技術は、より大きなスペーシングの領域における子ノードが、例えば常にその親ノードの右にというように、正規のオリエンテーションで表されるように回転作用する。別の技術は、ノードリンク構造のルートノードのオリエンテーションを保持するように回転作用する。
【0015】
上述の技術は、指数関数的に増大するノードリンク構造が、負の曲率を有する面において均一にレイアウトされることができるため、有利である。例えば、一旦ノードリンク構造が双曲面にレイアウトされると、そのノードリンク構造を再度レイアウトする必要がない、即ち、同一のレイアウトを変換して、他の望ましい表現を生成することができる。双曲面は、ディスク等のディスプレイ領域にマッピングされて、或る部分はより詳細に示し、他の部分は詳細に示さないことができるので、詳細に示された部分の内容を見ることができる。さらに、2つの表現同士間の任意の変換が同じ時間量でなされることができるので、高品質のアニメーションを用いたナビゲーションが可能となる。アニメーション速度で表される一続きの画像は、構造の複数の部分の位置を変えながら、継続したものとして知覚されることができる。従ってユーザは、或る部分の位置の変更を指示することができ、マシンは、指示された通りにその部分が移動された画像を自動的に表すことができる。このことは、ユーザが構造の任意の部分に変更の的を当てることができることを示している。
【0016】
本発明の請求項1の態様は、ノードリンク構造レイアウト方法であって、レイアウトデータを得るステップを有し;該レイアウトデータは、ノードリンク構造部分に対するレイアウト空間内位置を示し;前記レイアウト空間は負の曲率を有する空間であり;前記ノードリンク構造は、ノード及びリンクを含み、各リンクはノードの中の少なくとも2つに関連し;前記レイアウトデータは、ノード集合に対するレイアウト空間内位置を示し;前記ノード集合は、最上位レベルと少なくとも1つの下位レベルとを含む2つ以上のノードレベルを有するブランチを形成し、該最上位レベルが最上位レベルノードを含み、該下位レベルが下位レベルノードを含み、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有すると共にこの親ノードに1つのリンクを介して関連付けられ;2つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、親ノードに対するレイアウト空間における親位置を示し、親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を示し、前記親位置は該円の弧よりも該円の中心に近接し、前記下位レベルノード数が2つ以上であり、円に沿って隣接する子位置が互いに離間され;前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって該半径と、円に沿って隣接する子位置同士間のスペーシングとが全て前記ブランチ内で均一であり;前記方法がさらに、前記レイアウトデータを用いてノードリンク構造の第1の表現をディスプレイ上に表示するステップを有し;ユーザからの信号を受け取るステップを有し;該信号が第1のディスプレイ位置から第2のディスプレイ位置への変更を示し;前記第1の表現が第1のディスプレイ位置付近に第1の特徴を含み、該第1の特徴がノードリンク構造の第1の部分を表し;前記信号に応答して、ノードリンク構造の第2の表現をディスプレイに表示するステップを有し;該第2の表現がノードリンク構造の第1の部分を表す第2の特徴を含み、該第2の特徴が第2のディスプレイ位置付近に表示され;前記第2の表現が前記第1の表現の変更された継続として知覚されることができる、ことを特徴とする。
【0017】
本発明の請求項2の態様は、マシンを動作する方法であって、該マシンが、メモリと、該メモリに格納されたデータをアクセスするように接続されるプロセッサと、該メモリに格納されるノードリンクデータと、を含み、該ノードリンクデータがノードリンク構造を規定し、該ノードリンク構造がノード及びリンクを含み、各リンクが少なくとも2つのノードに関連し、前記マシン動作方法は、プロセッサを操作してノードリンクデータを用いてレイアウトデータを得るステップを有し;前記レイアウトデータが、ノードリンク構造部分に対するレイアウト空間内位置を示し、該レイアウト空間が負の曲率を有する空間であり;前記ノードリンク構造がノード及びリンクを含み、各リンクがノードの中の少なくとも2つに関連し;前記レイアウトデータが、ノード集合に対するレイアウト空間内位置を示し;前記ノード集合が、最上位レベルと少なくとも1つの下位レベルとを含む2つ以上のノードレベルを有するブランチを形成し、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有し、ノードが親ノードに対して1つのリンクを介して関連付けられ;2つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、親ノードに対するレイアウト空間における親位置を含み、前記親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を含み、前記親位置は該円の弧よりも該円の中心に近接し、下位レベルノード数が2つ以上であり、前記円に沿って隣接する子位置が互いに離間され、前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内において均一であり、前記マシン動作方法がさらに、前記プロセッサを動作して、レイアウトデータを用いて2つ以上の異なるマッピングを実行するステップを有し;各マッピングによりマッピングデータが得られ;各マッピングにより得られたマッピングデータがノード集合の部分集合の位置を示す、ことを特徴とする。
【0018】
【発明の実施の形態】
「グラフ」は、各リンクが2つのノードに関連するノードリンク構造である。「非循環グラフ」は、リンクがグラフ中の任意の2つのノード同士間に1つの経路のみを提供するグラフである。「有向グラフ」は、各リンクが、そのリンクの関連するノード同士間に、1つのノードがリンクのソースであり他のノードが目的地であるというように方向を示すグラフである。ツリーは、必ず1つのルートノードを有する非循環有向グラフであり、ツリー中のあらゆる他のノードは、ルートノードから始まり示された方向にある各リンクに従う唯一の経路により到達されることができる。
【0019】
ノードリンク構造の「ブランチ(分岐)」は、リンクが、関連するノードペアとして且つ方向を示すものとして取り扱われる場合に、ノードリンク構造内にツリーを形成するノード集合である。従ってブランチは、2つ以上のレベルを含み、「最上位レベルノード」は、ツリーのルートノードであるノードであり、「下位レベルノード」は、最上位レベルノードよりも1つ以上下のツリーレベルのノードである。各下位レベルノードは、そのすぐ上のレベルに「親ノード」を有し、下位レベルノードは、1つのリンクを介して親ノードに関連づけられる。親ノードは、そのすぐ下のレベルに「子ノード」の集合を有し、親ノードは1つのリンクを介して各子ノードに関連づけられる。1つの親ノードの複数の子ノードは、その親ノードを共有する。親ノードはまた、「子孫ノード」の集合を有し、該「子孫ノード」は、親ノードの子ノードとそれら子ノードの子ノードの全て等を包含する。
【0020】
ノードリンク構造の「指数関数的に増大するブランチ」は、下位レベルにいくにつれて、ノード数がおおよそ、下位レベルのノードをブランチの最上位レベルノードに関連づけるリンク数mの指数関数で増大するブランチである。例えば、ブランチ内の親ノードが平均して3つの子ノード有する場合、m番目の下位レベルにおけるノード数はおおよそ3個である。
【0021】
「有界ノード特徴」は、知覚できる境界を有するノード特徴である。有界ノード特徴の「範囲の中心」は、ノード特徴の境界内の領域範囲の中心である。従って有界ノード特徴の範囲の中心は、ノード特徴の境界から演算されたり、表現を見て評価されたりできる。
【0022】
1つの表現における第1の有界ノード特徴に「最も近い他のノード特徴」は、第1のノード特徴の範囲の中心から任意の他の有界ノード特徴の範囲の中心までのスペーシングを越えない距離だけ、第1のノード特徴の中心から離間された中心を有する第2の有界ノード特徴である。ここではこの距離をノード特徴の「最も近いノードスペーシング」と呼ぶ。有界ノード特徴は、最も近い他のノード特徴を1つより多く有することもあり、その全ては、最も近いノードスペーシングだけ離れた所に範囲の中心を有する。
【0023】
第1の領域における最も近いノードスペーシングが第2の領域におけるそれよりも概して大きいと観察者が認めることができる場合には、第1の領域における有界ノード特徴は、第2の領域における有界ノード特徴よりも「概して知覚的に大きい」最も近いノードスペーシングを有する。有界ノード特徴が、1つの表現の中の他の領域における最も近いノードスペーシングよりも概して知覚的に大きい「最も近いノードスペーシング」を有する領域は、「より大きいスペーシングの領域」と呼ばれることが可能である。
【0024】
ノードリンク構造の表現においては、親ノード特徴及び子ノード特徴のディスプレイ位置と、それらのディスプレイ位置が得られた方法がわかっていて、子の子孫が領域の外周から最小スペーシングより遠くに位置する可能性が小さければ、親ノード特徴のディスプレイ位置と子ノード特徴のディスプレイ位置との間の関係は、「子孫ノードのいずれもが領域の外周から最小スペーシングより遠くにある可能性は小さい」ということになる。例えば、以下に述べる実行では、2つのディスプレイ位置の関係が、子ノード特徴のディスプレイ位置が親ノード特徴のディスプレイ位置と同じ位外周に近接しているような関係であるかどうかの可能性を検査する。
【0025】
「負の曲率を有する空間」は、平行な線が発散する空間である。従って、所与の直線上にない負の曲率を有する空間における任意の位置を介すれば、所与の直線に平行な他の直線が複数ある。負の曲率を有する空間の一例は、双曲的なn次元空間である。「双曲面」は、双曲的な2次元空間である。
【0026】
連続空間の「ディスクリートな(離散的)近似」は、空間内の各位置が連続空間に対する連続した範囲の数の部分集合により一義的に特定されることができる空間であり、該部分集合は、ディスクリートな近似での位置が、連続空間と比較した場合に限られた精度で特定されることのみが可能である。例えば、連続空間における位置が実数により特定されることができる場合には、ディスクリートな近似での位置は、整数又はnビット数等によってのみ特定されることが可能である。
【0027】
各位置が複数の位置のうち隣接する位置に対してよりも弧に対しての方がより近接しているというように、楕円や円の弧がレイアウト空間内に存在することができる場合には、データ項目は「円に略沿った」位置又は「弧に略沿った」位置を示す。円に略沿った隣接位置同士は、レイアウト空間における隣接位置同士間の距離が、基底スペーシングの大きさの水準内にある場合には、略基底スペーシングだけ離間される。
【0028】
位置が円に対してよりも円の中心に対しての方がより近接する場合には、データ項目は、レイアウト空間において「円の略中心」にある位置を示す。
【0029】
2つ以上の親ノードを含み、その各々に対してデータ項目が、円に略沿って親ノードを共有する子ノードの位置と該円の略中心にある親ノードの位置とを示すブランチ内において、円の半径と、円に沿って隣接する子の位置との間のスペーシングとの最大及び最小のものが、互いの大きさの水準内にある場合には、その半径及びスペーシングは、「ブランチ内で全て略均一」である。円は半径を有し、各数の子ノードを有する円の半径の平均長が、単調な正のスロープを有すると共にそのスロープが子の数の増加と共に減少する関数を近似する曲線を形成する場合に、該半径は「下位レベルノードの数と共にゆっくりと増大する関数を近似する」。
【0030】
図1〜図5は、本発明の概括的な特徴を示す。図1は、ノードリンク構造を規定するノードリンクデータを用いて、負の曲率を有するレイアウト空間における位置を示すレイアウトデータを得、それにより2つ以上の異なるマッピングが行われることのできる方法を示す。図2は、ノードリンクデータを用いて、図1のようにレイアウトデータを得てマッピングを達成することにおける概括的な動作を示す。図3は、第1及び第2の表現を以下のように表すことのできる方法を示す;第2の表現は、第1の表現での第1のディスプレイ位置から第2のディスプレイ位置への変更を示すユーザからの信号に応答して、自動的に示されることができる。図4は、第1及び第2の表現を図3のように表すことにおける概括的な動作を示す。図5は、図1で示されるようにレイアウトデータを得ることができると共に、それを使用してマッピングを達成することができ、図3で示されるように第1及び第2の表現を表すことのできるマシンの概括的な構成要素を示す。
【0031】
図1において、ノードリンクデータ10は、ノードリンク構造(一部が図示される)を規定する。示されるように、ノードリンク構造20は、ノードと、ノードに関連するリンクとを含む。図1は、ノードリンク構造20の指数関数的に増えるブランチを示し、最上位レベルノード22は、1つのリンクを介して下位レベルノード24、26、及び28に関連づけられている。破線で示されるように、下位レベルノード24、26、及び28のそれぞれは、その次に下位レベルの3つのノードに関連づけられる。この増加率が続けば、指数関数的に増加するブランチの下位レベルにおけるノード数は略3個であり、ここでmは、そのレベルにおけるノードを最上位レベルノード22に関連づけるリンク数である。図1で示されるように、2次元のユークリッド平面において指数関数的に増加するブランチをレイアウトすることは困難である。
【0032】
しかしながらレイアウトデータ30は、ノードリンク構造20の指数関数的に増加するブランチにおけるノードの、負の曲率を有する空間32における位置を示す。空間32は、レイ36とレイ38の間で頂点から延びるウェッジの該頂点に最上位レベルノード22の位置34を有するように、概括的に図示される。この最上位レベルウェッジは、最上位レベル22に割り当てられたものである。下位レベルノード24、26、及び28は、円48に略沿った位置42、44、及び46を有することができ、空間32における円48の中心はおおよそ、最上位レベルウェッジの頂点である位置34にある。
【0033】
位置42、44、及び46は全て、最上位レベルウェッジ内にあり、より下位レベルにある、最上位レベルノード22の全ての子孫もまた、最上位レベルウェッジ内に位置することができる。例えば、指数関数的に増加するブランチの、次に下位レベルにあるノードも同様に、空間32におけるその中心がほぼ、位置42、44、及び46にあるそれぞれの円に沿って、位置されることができる。空間32は負の曲率でカーブしているので、下位レベルノード24、26、及び28の各々は、たとえ下位レベルウェッジが互いにオーバーラップしなくても、レイ36及び38が位置34から発散するのと略同じ角度でウェッジの頂点から分岐するレイ同士の間に下位レベルウェッジを割り当てられることができると共に、その全ては最上位レベルウェッジ内に含まれる。
【0034】
円48上で隣接する子位置42及び44は、距離dだけ離間されており、隣接する子位置44及び46は、距離d だけ離間されている。距離d又はd の各々は基底スペーシングに略等しく、円48の半径dとブランチ内の他の円の半径は共に、半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内で略均一であるように、下位レベルノードの数と共にゆっくりと増大する関数を近似する。
【0035】
図1で示されるように、レイアウトデータ30は、2つ以上の異なるマッピングを実行するように使用されることができる。0番目にマッピングされたデータ50とN番目にマッピングされたデータ52で示されるように、マッピング毎にマッピングデータが得られる。各マッピングにより得られたマッピングデータは、ノードリンク構造20におけるノードの部分集合の位置を示す。例えば位置は、ディスプレイ位置、又はレイアウト空間とは別の空間における位置であることが可能である。
【0036】
図2において、ボックス60における動作は、ノードリンク構造を規定するノードリンクデータを得ることにより開始する。ノードリンク構造は、ノード及びリンクを含み、各リンクは少なくとも2つのノードに関連づけられる。
【0037】
ボックス62の動作は、ボックス60で得られたノードリンクデータを使用して、負の曲率を有するレイアウト空間における、ブランチ中のノードの位置を示すレイアウトデータを得る。親ノード集合中の各々に対しては、親ノードを共有する子の位置は、ほぼ親ノードの位置にその中心をおく円にほぼ沿っており、隣接する子ノード同士は、略基底スペーシングだけ離間される。ブランチ内の複数の円の半径は共に、親を共有する子ノードの数と共にゆっくりと増加する関数を近似するので、半径と、円に沿って隣接する子位置同士間のスペーシングとは全て、ブランチ内で略均一である。
【0038】
ボックス64における動作は次に、ボックス62からのレイアウトデータを使用して、少なくとも2つの異なるマッピングに対してマッピングデータを得る。各マッピングに対して得られたマッピングデータは、ノードの部分集合の位置を示す。
【0039】
図3において、レイアウトデータ70は、ノードリンク構造の部分(複数)の、負の曲率を有するレイアウト空間における位置を示す。レイアウトデータ70は、ノードリンク構造の第1の表現74を有する画像72を表すように用いられる。画像72は、マウスや他のポインタ制御デバイスにより制御されてディスプレイ位置を示す信号を提供することのできるポインタ76を含むように図示される。
【0040】
図3の破線で示されるように、第1のディスプレイ位置から第2のディスプレイ位置への変更を示す信号78をユーザが提供する前に、不特定の時間が経過する。第1の表現74は、第1のディスプレイ位置付近にノードリンク構造の第1の部分を表す第1の特徴を有する。例えば、ノード特徴80、82、及び84のうちの1つが、第1のディスプレイ位置付近にあることが可能である。
【0041】
信号78に応答して、画像86は、ノードリンク構造の第2の表現88を有するように示される。第2の表現88は、第1の表現74の変更された継続として知覚される。
【0042】
第2の表現88では、ノードリンク構造の第1の部分を表す第2の特徴は、第2のディスプレイ位置付近にある。例えば、第1の表現74におけるノード特徴80が第1のディスプレイ位置付近にあったとして、ノード特徴90が同一ノードを示すとすれば、第2のディスプレイ位置は、ノード特徴80の位置からノード特徴90の位置へのドラッギング信号により指示されたということができる。同様に、ノード特徴92及び94がそれぞれ、ノード特徴82及び84と同一のノードを示すとすれば、第2のディスプレイ位置は、ノード特徴82又はノード特徴84の位置からそれぞれ、ノード特徴92又はノード特徴94の位置へのドラッギング信号により指示されることができたといえる。また、ノード特徴82からノード特徴92へとサイズが増していることにより示される通り、より大きいスペーシングの領域の中心に第2の位置を示すように、第1の表現74のノード特徴82上でクリックすることにより、第2のディスプレイ位置が指示されることができたといえる。
【0043】
図4は、図3で示されたオペレーションを実行する概括的な動作を示す。ボックス120の動作では、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータが得られる。
【0044】
ボックス122の動作は、ボックス120からのレイアウトデータを用いて、ノードリンク構造の第1の表現を表示する。第1の表現は、ノードリンク構造の第1の部分を示す第1の特徴を含み、該第1の特徴は第1のディスプレイ位置付近にある。
【0045】
破線で示されるように不特定の時間経過後、ボックス124の動作は、第1のディスプレイ位置から第2のディスプレイ位置への変更を示す、ユーザからの信号を受け取る。
【0046】
ボックス126の動作は、ノードリンク構造の第2の表現を表すことにより、ボックス124の信号に応答する。第2の表現は、ノードリンク構造の第1の部分を示す第2の特徴を含む。この第2の特徴は、第2のディスプレイ位置付近にある。
【0047】
図5のマシン150は、ユーザ入力回路154からユーザのアクションを示すデータを受け取るように、そして画像を規定するデータをディスプレイ156に提供するように接続されるプロセッサ152を含む。プロセッサ152はまた、ノードリンクデータ158をアクセスするようにも接続され、該ノードリンクデータは、図2に関して上述したようにノードリンク構造を規定する。プロセッサ152は、命令入力回路162を介して命令を指示する命令データ160を受け取るようにも接続され、この命令入力回路162は、この図では、メモリ164、記憶媒体アクセスデバイス166、又はネットワーク168への接続から受け取られた命令を提供することができる。
【0048】
命令データ160により示された命令を実行する際、プロセッサ152はノードリンクデータ158を用いて、図2のボックス62と図4のボックス120で示されたように、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータを得る。次にプロセッサ152は、レイアウトデータを用いて、図4のボックス122で示されたように、ディスプレイ156上にノードリンク構造の第1の表現を表示するが、これは、図2のボックス64で示されたように、ディスプレイの1つの領域に対してノードの部分集合の第1のマッピングを行うことにより、実行されることができる。プロセッサ152がユーザ入力デバイス154からユーザ信号を示すデータを受け取り、その信号が、図4のボックス124のように第1のディスプレイ位置から第2のディスプレイ位置への変更を示すものである場合には、プロセッサ152は、ノードリンク構造の第2の表現を自動的にディスプレイ156上に表示することができ、この場合、第1のディスプレイ位置付近にあった特徴の位置は、図4のボックス126で示されるように、第2のディスプレイ位置に変更されることとなる。第2の表現は、図2のボックス64で示されたように、第2のマッピングを実行することにより表示されることができる。
【0049】
上述のように、図5は、命令入力回路162が、命令を示すデータを受け取ることのできる3つの可能なソース、即ちメモリ164、記憶媒体アクセスデバイス166、及びネットワーク168を示している。
【0050】
メモリ164は、ランダムアクセスメモリ(RAM)や読出し専用記憶素子(ROM)を含むマシン150内の任意の従来のメモリ、又は任意の種類の周辺若しくは遠隔メモリであることが可能である。
【0051】
記憶媒体アクセスデバイス166は、記憶媒体170をアクセスするドライブ又は他の適切なデバイスであることが可能である。記憶媒体170は例えば、1つ以上のテープ、ディスケット、若しくはフロッピーディスク等の磁気媒体;1つ以上のCD−ROMのセットのような光媒体;又はデータを記憶するための他の任意の適切な媒体;であることが可能である。記憶媒体170は、マシン150の一部;サーバ又は他の周辺若しくは遠隔メモリデバイスの一部;又はソフトウェア製品の一部;であることが可能である。これら全ケースにおいて、記憶媒体170は、マシン150で使用されることのできる工業製品である。データユニットが記憶媒体170上に位置づけられることができるので、記憶媒体アクセスデバイス166は、データユニットをアクセスすることができると共に、命令入力回路162を介してプロセッサ152にそれらを連続して提供することができる。連続して提供されると、データユニットは、命令データ160を形成し、示されるような命令を指示する。
【0052】
ネットワーク168は、マシン180から受け取られた命令データ160を提供することができる。マシン180におけるプロセッサ182は、ネットワーク接続回路184を介してネットワーク168を経て、命令入力回路162との接続を確立することができる。どちらのプロセッサも、接続を開始することが可能であり、接続は、任意の適切なプロトコルにより確立されることができる。プロセッサ182は、メモリ186に格納された命令データをアクセスし、この命令データをネットワーク168を経てプロセッサ152に伝送することができ、その結果プロセッサ152が、ネットワーク168から命令データを受け取ることができる。命令データ160は、プロセッサ152によりメモリ164若しくは他の場所に格納されることができると共に、実行されることができる。
【0053】
上述の概括的な特徴は、種々のマシンにおいて多数の方法で実行され、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータが得られ且つ使用されることができる。以下に述べる実行は、UNIX/Xオペレーティングシステムを実行するSunSPARCStationにおいて実行した。それとは別に、アップルマッキントッシュ(Apple Macintosh )のパーソナルコンピュータにおいても実行した。UNIXでの実行では、コモンLISPインタフェースマネージャ(CLIM)を付けて拡張されたコモンLISPプログラミング環境において書かれた命令を実行する。コモンLIPS環境及びCLIM拡張は、ルシッド・インコーポレイテッド(Lucid Inc.)及びフランツ・インコーポレイテッド(Franz Inc.)から購入することができる。
【0054】
図6は、本発明を実行したシステムの構成要素を示す。
【0055】
図6のマシン200は、中央処理ユニット(CPU)202、マイクロプロセッサ、又は適切なプロセッサを含む。CPU200は、キーボード204及びマウス206を含むように図示されるユーザ入力デバイスから、ユーザ信号を示すデータを受け取るように、接続される。CPU202はまた、ディスプレイ208上に画像を表示させるデータを提供するように、接続される。ディスプレイ208に表示される画像は、マウス206や別のポインタ制御デバイスにより制御されるポインタ210を含むことができる。
【0056】
CPU202は、メモリ環境220を共に提供する1つ以上のメモリ構成要素に接続される。メモリ構成要素は従来的に、CPU202に直接接続される常駐RAM、内部バスを介してCPU202に接続される1つ以上の内部ディスクドライブ若しくは他の記憶媒体アクセスデバイス、そして、記憶媒体アクセスデバイスを含むと共に、マシン200の外部接続を介してCPU202に接続される周辺デバイス若しくは遠隔サーバ等の1つ以上の外部メモリ構成要素、を包含する。CPU202は従来的に、アドレスを提供することにより、メモリ環境220中の任意のメモリ構成要素に格納されたデータをアクセスする。
【0057】
図6は、メモリ環境220に格納されるプログラム構成要素とデータ構成要素を示す。プログラム構成要素とデータ構成要素は別々に図示されているが、所与のメモリ構成要素内に別々に格納される必要はない。プログラム構成要素は、CPU202が実行することのできる命令を示すデータを含むとともに、目的コードフォーム又はソースコードフォームで格納されることができる。適切であれば、プログラム構成要素は、ソースコードフォームで格納されたプログラム構成要素から命令を得るのに必要な、任意のコンパイラ及びインタプリタを含むことも可能である。プログラム構成要素により示された命令を実行する際、CPU202はデータ構成要素をアクセスして使用する。
【0058】
オペレーティングシステムプログラム230により示された命令を実行する際、CPU202は、CPU202とマシン200の他の構成要素との間でデータを伝送するオペレーションを実行する。このようなオペレーションには、例えば、CPU202のメモリスペース中の論理アドレスを物理アドレスにマッピングして、メモリ環境220中のメモリ構成要素をアクセスすること等が含まれる。
【0059】
CLIMライブラリ及びユーザインタフェース拡張を含むコモンLIPS環境プログラム232により示された命令を実行する際、CPU202は、フランツ・インコーポレイテッド(Franz Inc.)から入手可能なCLIM2.0仕様において規定される標準CLIMインタフェースを提供する。その結果、CPU202が、CLIMソースコードを実行することができるので、走査検索(browser )インタフェースプログラム234及び双曲ジオメタリプログラム236は、CLIMを付けて拡張されたコモンLISPで実行されることができる。
【0060】
走査検索インタフェースプログラム234により指示された命令を実行する際、CPU202はまず、マシン200を初期化する。CPU202は、ノードリンク構造を規定するノードリンクデータ240を用いて、双曲面におけるノードリンク構造の部分の位置を示すレイアウトデータ242を得る。CPU202は、レイアウトデータ242を用いて、ノードリンク構造の初期表現に対するマッピングデータ244を得る。CPU202がディスプレイ208にデータを提供すると、ディスプレイに初期表現が表示される。
【0061】
走査検索インタフェースプログラム234により示された命令を実行する際、CPU202はまた、キーボード204及びマウス206から、ユーザ信号のイベントを示すデータを受け取る。CPU202は、イベント待ち行列データ246をアクセスすることにより、イベントに応答するステップの待ち行列をセットアップし、維持し、そしてハンドルする(処理する)。ユーザ信号イベントに応答するステップが完了すると、CPU202は次のイベントに応答するステップをセットアップすることができる。
【0062】
走査検索インタフェースプログラム234により示された命令を実行する際、CPU202はまた、アニメーションパラメータデータ248をアクセスすることにより、アニメーションパラメータを修正することができる。あるいはCPU202は、レイアウトデータ242を用いて、ノードリンク構造の変更された表現に対するマッピングデータ244を得ることができ、ディスプレイ208にデータを提供して、変更された表現をディスプレイに表示させる。
【0063】
CPU202は、レイアウトデータ242を得るため、マッピングデータ244を得るため、ポインタ210の位置からノードリンク構造の一部分にマッピングするため等、多様な目的のために、双曲的ジオメトリプログラム236により示された命令を実行することができる。図6で示されるように、表現は、その上にフィギュア252が示される背景250を含むことができ、フィギュア252内でポインタ210の位置は、例えば最も近いノードにマッピングされることができる。
【0064】
上述したCPU202のオペレーションを多くの方法で実行して、負の曲率を有する空間においてレイアウトされたノードリンク構造に対して走査検索(browser )を提供することが可能である。図7は、図6のマシンが如何にして、エッジに近すぎないノードの位置を変換することにより走査検索を提供することができるかを示す。図8は、図6のマシンが如何にして、全ノードのレイアウトデータを連続的に変換することにより走査検索を提供することができるかを示す。
【0065】
図7及び図8の概括的なアプローチは、ノードの位置がレイアウト空間において変換され、次にレイアウト空間からディスプレイ位置へのマッピングにより表現が表示されることができる、ということである。上述のように、レイアウト空間は、双曲面又は負の曲率を有する別の適切な空間であることが可能である。双曲面とディスプレイ領域の間のマッピングを容易にするために、ディスプレイ位置は、円形のディスプレイ領域内の位置であることが可能である。
【0066】
図7のボックス260の動作は、ノードリンク構造中の各ノードに対するレイアウト空間における位置を示すレイアウトデータを得る。レイアウト空間は、例えば双曲面であることが可能である。ボックス260の動作はまた、レイアウトデータにおいて実行されることのできる現行変換を初期設定して、変換位置を得る。初期現行変換は例えば、レイアウト空間におけるノードの位置を変更しないヌル変換であることが可能である。
【0067】
ボックス262の動作は次に、ボックス260からのレイアウトデータに現行変換を実行し、レイアウト空間における位置がエッジに非常に近いノード以外の各ノードの変換位置を示す変換データを得る。エッジは、ノードリンク構造の表現がディスプレイされた時に表示されるレイアウト空間の部分の境界となる。
【0068】
次にボックス264の動作は、ボックス262から得られた変換位置をマッピングして、エッジに近すぎない各ノードに対するディスプレイ上の位置を得る。ボックス264の動作は次に、ディスプレイに表現を表示する。エッジにそれほど近くない各ノードの表現は、ノードのディスプレイ位置にノードの特徴を含む。
【0069】
図7の破線により示されるように、ボックス270の動作は、不特定の時間の経過後、ボックス264の動作に続くことができ、この動作は、位置の変更に対する要求をユーザから受け取る。この要求は、ディスプレイ上での少なくとも1つの位置の指示を含む。
【0070】
ボックス272の動作は、ボックス270において指示されたディスプレイ位置(単数又は複数)をレイアウト空間に再びマッピングして、レイアウト空間における開始位置及び終了位置を得る。例えば、マウスクリック等によりディスプレイ位置が1つのみ示される場合には、クリックの発生した時のポインタの位置を用いて開始位置を得ることができ、また終了位置は、レイアウト空間におけるその表現の中心の位置であることが可能である。あるいは、例えばボタンを押してその後放すことによるドラッギング動作の間に、2つのディスプレイ位置が示される場合には、ボタンを押した時のポインタの位置を用いて開始位置を得、またボタンから手を放した時のポインタの位置を用いて、終了位置を得ることができる。
【0071】
ボックス274の動作は、開始位置を終了位置に移動するレイアウト空間の変換を得る。ボックス276の動作は、現行変換とボックス274からの新たな変換とを結合して、結合された変換を得る。ボックス262及び264の動作が実行されて別の表現が表示される時には、この結合された変換が現行変換となる。
【0072】
以下に述べるように、図7の技術を実行して、ただ1つの表現ではなく、クリックに応答して一連の表現を表示した。このように変更することにより、開始位置から終了位置への連続した動作の知覚を提供することができる。
【0073】
図8の技術は、例えばボックス280の動作が図7のボックス260の動作と同じであるといったように、図7の技術と類似する。しかしながら、重要な違いは、ボックス282の動作が、ボックス262でエッジ付近のノードとして取り扱われたものも含めて、ノードリンク構造中の各ノードの変更された位置を得るということである。よって図8の技術は、大型のノードリンク構造に対しては、図7の技術ほど有効でない。
【0074】
ボックス284の動作は、図7のボックス264の動作と同じように、ボックス282からの変換された位置をディスプレイ位置にマッピングし、このディスプレイ位置を用いて、ボックス264と同じように表現を表示する。
【0075】
ボックス290の動作は、ボックス270と同じように要求を受け取る。ボックス292の動作は、ボックス280からのレイアウトデータではなく、ボックス282からの変換されたデータであるようにレイアウトデータを先ず更新することにより、応答する。次にボックス292の動作は、ボックス290で示されたディスプレイ位置(単数又は複数)から変換されたレイアウト空間へとマッピングを行って、開始位置及び終了位置を得る。ボックス294の動作は、開始位置を終了位置に移動する新たな変換を得、ボックス282及びボックス284の動作が実行されて別の表現が表示される前に、現行変換を更新して、新変換とする。
【0076】
上述の通り、図7の技術は、大型のノードリンク構造を図8の技術以上により良くハンドルするが、その理由は、エッジに非常に近いノードに対してはボックス262の動作が実行されないからである。図8の技術は、大型の構造に対しては実用的でないということが判った。さらに、図8の技術では変換を得る際に情報がいくらか失われるため、図7の技術の方がより正確である;それはなぜなら、図7の技術はボックス260からの元々のレイアウトデータを使用し続けるからである。
【0077】
以下に述べるCPU202のオペレーションの実行は、図7の走査検索技術に続くものであるが、以下に述べる基本的なオペレーションを使用して、図8の走査検索技術を実行することもできる。
【0078】
以下に述べる実行は、一様な方法でノードリンク構造を双曲面にレイアウトし、この面を円形のディスプレイ領域にマッピングする。双曲面は、平行な線が互いに離れるように発散する数学上の構築物である。これは、円の円周がその半径と共に指数関数的に増大するという便利な特性につながり、このことは、距離が増すとともに指数関数的により多くの空間を利用できるということを意味する。従って、指数関数的に増大するノードリンク構造を双曲的空間において一様な方法でレイアウトすることができれば、親、子、及び同胞の間の距離は、階層中のどの場所でも略同じである。
【0079】
双曲面は数学上の物体であるが、双曲面は、単位円上へ自然な方法でマッピングされることができ、単位円は、2次元(ユークリッド)ディスプレイ上にそれをディスプレイする方法を提供する。このマッピングは、双曲面の起点付近の部分を他の部分よりも多くのディスプレイ空間を用いてディスプレイする。双曲面の起点から非常に遠隔の部分は、ディスプレイのエッジ付近に極小さい空間を取る。従って単位円への投影は、ノードリンク構造の一部を構造全体の構成の中に埋め込みながら、該一部により多くの空間を割り当てる固有のメカニズムを提供する。
【0080】
双曲面上での構造の平行移動は、構造全体を見ているという錯覚を弱めることなく、構造のどの部分が最も大きい空間を得るのかを調整するメカニズムを提供する。構造はまず、そのルートをより大きいスペーシングの領域の中心にディスプレイされるが、実行は、ポインタクリックや対話式ドラッギングを用いてフォーカスを操作すると共に、かかる操作を織りまぜて移り変わり(transition)をスムーズにアニメート(動画化)する有効な手続きを包含する。構造の構成は常に、親、同胞、及び子といったいくつかの世代を含んでおり、ユーザは、迷うことなく構造を探索することが容易になる。
【0081】
以下に述べる走査検索は、従来の階層的視覚よりもずっと大きな構造との効果的な対話を支持すると共に、ロバートソン(Robertson )他の米国特許第5,295,243号において述べられたもの等の他の新しい走査検索に比べて優れている。600×600ピクセルのウィンドウでは、標準的な2次元階層走査検索は、各々が3文字列を有する100個のノードをディスプレイできるのが、典型的である。以下に述べる走査検索は、1000個のノードをディスプレイすることができ、そのうちフォーカスに最も近い50個は、3〜12個の文字列を示すことができる。従って、10倍に及ぶ数のノードがディスプレイされることが可能であると共に、ノードリンク構造にわたって一層有効なナビゲーションが提供されることができる。構造の部分の対象とするレベルが変化するに従って、構造を動的に歪ませてディスプレイすることにより、スケーリングの利点が得られる。
【0082】
図9及び図10は、レイアウトオペレーションにおける動作を示す。図9は、CPU202が双曲面にノードリンク構造をレイアウトする方法を示す。図9の技術は、図7のボックス260の動作と図8のボックス280の動作を実行するように用いられることができる。図10は、ノードの子までの距離、子の位置、ウェッジ、及びルーム(空間)の境界と、ノードの半径が図9において如何に得られることができるかを示す。
【0083】
図9のレイアウト技術は、局所情報に基づいてノードリンク構造中の各ノードを再帰的にレイアウトする。ノードは、それ自体から外方向に向かう双曲面のウェッジを割り当てられ、該ウェッジの中にそのノードの子孫が配置されることができる。ノードの子の全ては、そのノードのウェッジの弧に沿って(即ちノードから等しい距離をおいて)配置されると共に、互いに或る最小の距離だけ離間されるに足りるだけ親ノードから離れた所に配置される。各子は、その子孫に対するサブウェッジを有する。
【0084】
双曲的ジオメトリでは平行な線同士が発散するということにより、各子は典型的に、その親のウェッジと略同じ角度で広がるウェッジを有する。不均一な構造に対してよりコンパクトなレイアウトを得るために、それ自体が多くの子孫を有する同胞は子孫を有さない同胞よりも大きいルーム(空間)を得るように、この構造を変更する。この変更は、孫を祖父母から同じ距離でより近くに置く傾向がある。
【0085】
図9の技術はまた、ルートノードの子の占める角度を変えることによって変更されることができる。ルートノードの子は、360°の円いっぱいに広げられるか、あるいは全てが円の片側に置かれることができる。いくつかのケースでは、後者の方が良い。
【0086】
図9のボックス350の動作は、ノードリンクデータ中のルートノードのハンドル、双曲面の起点の座標、該ルートノードの子孫に対して利用可能な双曲面のウェッジ、及びルームの境界を用いてレイアウトオペレーションを実行するための呼出しを受け取ることにより、開始する。図9のレイアウトオペレーションは、ノードリンクデータのハンドルがルートノードのハンドルでもあるように、非循環型の階層的ノードリンク構造を規定するノードリンクデータを用いて、使用されることができる。双曲面のウェッジは、ウェッジの角度と方向により規定されることができる。オリエンテーションが放射状である場合には、ウェッジ角度は360°であることが可能であるので、その方向は重要でないが、例えばオリエンテーションが右方向である場合には、ウェッジ角度はより小さく(例えば120°)、方向がオリエンテーションを決定する。ルームの境界は、ルートノードに対して0.9に初期設定されることが可能である。
【0087】
ボックス352の動作は、現在ハンドルされているノードが子を有するかどうかを調べる。子を有しておれば、ボックス354の動作は、以下に述べるように、双曲面において子までの距離を得る。次にボックス360の動作は、現行ノードの子の各々をハンドルする繰り返しループを開始する。
【0088】
ボックス362の動作は、次の子ノードに対して、以下に述べるように双曲面における位置、ウェッジ、及びルーム境界を得ることによって、各ループを開始する。ボックス364の動作は次に、次の子のハンドルと、ボックス362からのその位置、ウェッジ、及びルーム境界を用いてレイアウトオペレーションに対する再帰的な呼出しを行う。ボックス366の動作は、再帰的呼出しからリターンし、次いでボックス368の動作は、現行ノードの子ノードのリストに、その子のハンドルを加える。
【0089】
現行ノードの子の全てがハンドルされたら、ボックス370の動作は、ボックス350又はボックス364の呼出しにおいて受け取られたルーム境界か、あるいはボックス354からの、現行ノードの子までの距離の半分か、のいずれかを取ることにより、現行ノードの半径を得る。現行ノードが子を有さない場合には、ボックス370の動作は、ボックス350からのルーム境界を半径とする。
【0090】
次にボックス372の動作は、現行ノードのデータ構造を形成する。現行ノードのデータ構造は、その位置とボックス370からのその半径を含み、現行ノードが子を有する場合には、そのノードのデータ構造はまた、ハンドル又はボックス368からのその子のリストに対する他のリンクを含む。データ構造はまた、他の関連する情報を含むことも可能である。次にボックス374の動作は、現行ノードのデータ構造のハンドルを戻すことにより、終了する。
【0091】
図10は、図9のボックス354、362、及び370の動作が如何に実行されることができるかを示す。
【0092】
以下の記述において、1対の点同士の間の距離は、起点に1つの点を置くポアンカレモデルにおける点同士の間の距離として、符号化される。この距離は、双曲的空間における点同士間の距離の逆双曲線正接である。
【0093】
ボックス390の動作は、全ノードに対して同一である基底スペーシングSを用いて、必要とされるスペースの値を得ることによってノードの子までの距離を得ることにより、開始する。必要なスペースは、子孫が均一に離間された場合に、ノードの各子の子孫により占められることになる角度に依存する。このような角度をここでは「重み」と呼称する。各子の重みの値は、1.0とln(1.0+Grandchildren )の大きい方を取ることにより得られることができ、ここで変数Grandchildren は、ノードの子の子であるノードの孫の全てに対して、1.0とln( 1.0+(子の数))の大きい方を合計したものに等しい。
【0094】
必要なスペースの値を得るために、ボックス390の動作はまた、利用できる全角度を、現行ノードの全ての子に対する重みの合計で割ることによって、角度小片を得る。角度小片に重みの中で最小のものを乗算して角度単位αが得られる。よって必要なスペースは、((ssin+1.0)1/2 −ssin) に等しく、ここでssin=((( 1.0−S)/2S)( sinα))である。
【0095】
ボックス392の動作は、ボックス390からの必要なスペースが、2S/(1+S)として計算される最小スペース(最小スペースは、基底スペーシングSとそれ自体の双曲的合計である)より大きいかどうかを決定する。大きければ、ボックス394の動作は、子までの距離を必要なスペースに設定し、大きくない場合には、ボックス396の動作は、子までの距離を最小スペースに設定する。
【0096】
次にボックス398の動作は、幅Wの値を0に初期設定する;下位ルームの値は、ボックス394又はボックス396からの距離Dの双曲的な半値に初期設定されることができ、D/(1.0+ (1.0−D1/2)として計算される;方向を示す値は、現行ノードのウェッジの角度幅Wを示す値と、単位円上の一点のx及びy座標である(Θx ,Θy )の形態で現行ノードのウェッジの方向を示す値とを用いて初期設定されることができる。第1の子の方向を計算するための開始方向(Θx ,Θy )は、((( Θx (cos( −W))) − (Θy (sin( −W))))という計算値を有することができる。
【0097】
ボックス360の動作は、図9に関して上述したように、繰り返しループを開始する。繰り返しループの役割は、ボックス400、402、404、及び406で示される。
【0098】
ボックス400の動作は、次の子ノードのウェッジの初期幅と方向を得、次いでこの初期幅を用いて最終幅を更新する。ボックス400の動作はまた、利用できる次の子ノードの位置、ウェッジ、及びルームを得る。
【0099】
ボックス400の動作は、子の重みと角度小片(両方共にボックス390で得られる)の積として初期幅Wを得ることができる。ボックス400の動作は、ボックス398又は前ループのいずれかからの(Θx ,Θy )及び幅角Wを用いて、((( Θx (cos( W+W))) −( Θy (sin( W+W))))、((Θy (cos( W+W))) +( Θx (sin( W+W))))) に等しい座標値を有する子の方向(Θx ,Θy )を計算することができる。ボックス400の動作は次に、初期幅Wの値を有するように幅Wを更新する。
【0100】
ボックス400の動作は、親ノードがルートノードである場合にはボックス350からの、あるいは親ノードに対して実行される場合にはボックス364からの親ノードの位置(x,y)を用いて;子の方向(Θx ,Θy )を用いて;そしてボックス394若しくは396からの距離Dを用いて;次の子ノードの位置を得ることができる。位置は、変換を用いて計算された値(x,y,Θx ,Θy )を含む。
【0101】
ポアンカレモデルにより表される双曲面の厳密な変換は、点p及び角度αにより決定される(pは変換前に起点であった点の最終位置を示し、αは回転を示す)。点(x,y)の変換は、((Θ+P)/( PΘ+1))であり、ここで、zは、実部xと虚部yを有する複素数;Pは、pを表す複素数;Θは、角度α分の回転を表す大きさ1の複素数;PはPの複素共役;である。得られた値の実部及び虚部はそれぞれ、ポアンカレモデルにおいて変換された点pのx座標及びy座標である。
【0102】
共に4つの座標(x,y,Θx ,Θy )により表される角度αのコサイン及びサインと点pを規定する値が得られたら、実部xと虚部yを有する複素数としてのPと、実部Θx 及び虚部Θy を有する複素数としてのΘを得ることにより、変換を得ることができる。
【0103】
従って、起点から点(x,y)への変換を得るには、点及び方向(x,y,1.0,0.0)から変換が得られることができ、ここで、座標1.0及び0.0は、右方向、即ちそれから他の方向が測定される基準方向を示す。この変換を、ここでは「起点からのトランスレータ」と呼ぶ。反対に、点(x,y)から起点への変換を得るには、点及び方向(−x,−y,1.0,0.0)から変換が得られることができる。この変換を、ここでは「起点へのトランスレータ」と呼ぶ。
【0104】
ボックス400の動作は、起点から親ノードの位置への第1のトランスレータ(translator)を得て、次いでこの第1のトランスレータを距離Dのx及びy成分即ち(DΘx ,DΘy )に適用することにより新たなx及びy座標を得ることができる(ここで(Θx ,Θy )は、上述した子の方向である)。ボックス400の動作は次に、新たなx及びy座標に対する起点への第2のトランスレータを得、そして子の方向(Θx ,Θy )に第1のトランスレータを適用して得られたものに第2のトランスレータを適用し、(Θx ,Θy )の新たな値を得る。
【0105】
(Θx ,Θy )の新たな値は、子ノードのウェッジの方向を示す。ボックス400の動作は、ボックス394又はボックス396からの初期幅W及び距離Dを用いることによって、次の子ノードのウェッジの角度を得ることができる。ボックス400の動作は、座標(D,0.0)に対する起点へのトランスレータを得、次いでこのトランスレータを cosW及び sinWに適用して、比Rを有する値を得ることができる。
【0106】
最後に、ボックス400の動作は、ボックス364の再帰的呼出しにおいて渡されるべきルーム境界を得る際に使用されることのできるルームを得ることができる。利用可能なルームは、ボックス394又はボックス396からの距離Dと初期幅Wを用いて計算されることができる。利用可能なルームは次いで、((s+1.0)1/2 −s)と計算されることができ、ここでs=((( 1.0−D)/2D)/(sinW))である。
【0107】
ボックス402の動作は次に、ボックス400からの利用可能なルームが、ボックス398からの下位ルームより大きいかどうかに基づいて分岐する。大きい場合には、ボックス404の動作はルーム境界を、利用可能なルームの値に設定する。大きくない場合には、ボックス406の動作は、ルーム境界を下位ルームの値に設定する。
【0108】
次に、現行ノードの全ての子が繰り返しループによりハンドルされる(処理される)と、ボックス410の動作は、ボックス350で受け取られたルーム境界がボックス398からの下位ルームより大きいかどうかに基づいて分岐する。大きい場合には、ボックス412の動作は、ノードの半径をルーム境界の値に設定する。大きくない場合には、ボックス414の動作は、ノードの半径を下位ルームの値に設定する。
【0109】
図10のオペレーションの結果、ブランチ内のノードは略均一なスペーシングで離間される。それはなぜなら、基底スペーシングSは、それより小さいスペーシングが発生しない最小値であるからであると共に、他のスペーシングは、ノードの子の数と共にゆっくりとしか増加しないために、Sと比べてたいして大きくないということがわかるからである。
【0110】
図11〜図13は、双曲面からディスプレイ領域へのマッピングオペレーションを示す。図11は、レイアウト空間からディスプレイ位置へのマッピングが如何に実行されることができるかを示す。図11の技術を用いて、図7のボックス262及び264の動作を実行することができ、同じ技術を用いて、図8のボックス282及びボックス284の動作を実行することもできる。図12は、単位円においてノードのマッピング位置が如何にして得られることができるかを示すと共に、リンク特徴を表示することにおける関連オペレーションを示す。図13は、ノード特徴を表示することにおけるオペレーションを示す。
【0111】
図11の技術は、上述の双曲面レイアウト空間から単位円へ、そして単位円から円形のディスプレイ領域へとマッピングを行う。双曲面を単位円にマッピングするには2つの標準的な方法がある。両方の方法において、双曲面における1つの近傍は円中心のフォーカスにレイアウトされ、一方双曲面の残りの部分は、円の周囲方向に遠近法的な状態で消えていく。投影(projective)マッピング即ちクレインモデル(Klein model )は、双曲面における線を単位円における線にするが、角度を歪ませる。等角(conformal )マッピング即ちポワンカレモデルは、角度はそのまま保持するが、双曲面における線を、単位円で弧となるように歪ませる。
【0112】
=((2r) /( 1+r )) に従って起点からの距離を再計算することにより、2つのマッピング間で変換を行うことは容易であり、これら両方を、走査検索の実行における使用に関して、実験によりテストした。ポアンカレモデルは、ノードにおいて扇の広がった形状を保持すると共に、スクリーンの実面積(screen real−estate)を用いることに関してより優れた仕事を行うので、ポアンカレモデルの機能の方が、より良い。加えて、ディスプレイにおける弧は、ディスプレイにマッピングする際に生じている歪みの種類を暗示する。従って、図11の技術は、ポアンカレモデルを使用する。ポアンカレモデルの下での双曲面の厳密な変換は、単位円をそれ自体に送る複素平面での線形的部分変換(linear fractional transformation)に対応する。アールフォース,エル.ブイ.(Ahlfors, L.V. )の「複素分析(Complex Analysis)」(McGraw−Hill, 1966 )の76〜89頁には、線形部分変換の理論が述べられている。
【0113】
ポアンカレ投影は、マッピングされた円が起点から遠くなるにつれてその大きさが縮んでいくものの、双曲面上の円をユークリッド単位円上の円にマッピングする。図11の技術は、他のどのノードの円とも交わらないように保証された、各ノードの回りの双曲面における円を計算することにより、この特性を発揮する。そのような円が単位円にマッピングされると、円は、ノードの図式的又は組織的な表現がディスプレイされることになる円形のディスプレイ領域を各ノードに対して提供する。これは、ノードが受け取る実際のスペースの量に依存してノードの異なる表現を用いるという便宜と組み合わせられることができる。
【0114】
図11において、ボックス500の動作は、図9のボックス350の動作と同じく、ノードリンク構造のルートノードのハンドルと共にマッピングに関する呼出しを受け取る。ボックス500の動作はまた、現行トランスレータと呼ばれる変換;リンク機能と呼ばれる、リンク特徴を表すための機能;ノード機能と呼ばれる、ノード特徴を表す機能;ノード特徴を表す際にノードがエッジに近すぎないかどうかを決定するために使用される限界値;を受け取る。例えば、呼出しがアニメートされる画像のシーケンス中に行われれば、限界値は0.07であることが可能であり、そうでない場合には、マッピングが実行されている円形のディスプレイ領域の半径の逆数を得ることにより計算して、限界値はピクセルの大きさであることが可能である。満足できるアニメーションが必要な場合には、限界値は、表現をレンダリング(render)するのに必要な時間を減少するように調整されることができる。
【0115】
ボックス502の動作は、前のノード特徴の位置を示す変数や、単位円の外周からの、上記前の位置の半径方向のギャップを示す変数を含めて、複数の変数を初期設定することにより、マッピングを開始する。ボックス502の動作は以下に述べるように、限界値等の、アニメートされる表現のシーケンス内で使用されるべき値を、予め計算することができる。
【0116】
ボックス504の動作は、以下に述べる技術を用いて、単位円における現行ノードのマッピング位置(x,y)を得ることにより、図11においてDoNodeと呼称される再帰的オペレーションを開始する。マッピング位置は、レイアウト空間における現行ノードの逆像である。ボックス506の動作は次いで、現行変換を用いて、ボックス504からの位置を前ノード特徴の位置に連結する線として実行されたリンク特徴を表示する。
【0117】
ボックス510の動作は、ボックス504からの位置によりノード特徴が表されることができるかどうかを決定する。これは、ボックス504からの位置の半径方向ギャップを計算し、次にそれをボックス502からの予め計算された限界値と比較して、それが単位円の外周に近すぎる位置でないかどうかを決定することにより実行される。DoNode内での計算を減少するために、半径方向ギャップを(1.0−(x+y))と計算する;それはなぜなら、(x+y)の値は別の目的のためにも計算されなければならないからである。ボックス502の動作は、ボックス500からの限界値を用いて、予め計算される限界値(1.0−(1.0−限界値))を得ることができる。半径方向ギャップが予め計算された限界値より小さい場合には、ボックス504からの位置は、単位円の外周に近すぎるということになる。
【0118】
ボックス504からの位置が外周に近すぎる場合には、ボックス510の動作は、半径方向ギャップを前位置の半径方向ギャップの95%と比較して、その子が現在の位置よりも単位円の外周から遠くにあり得る状態で、その親からの方向に存在するかどうかを決定する。ボックス510の動作が、位置及び方向が両方共によくないことを見い出せば、DoNodeは終了する。しかし、現在の位置が単位円の外周に近すぎない場合や、その子が現位置よりも外周から遠くにあり得るような場合には、現行ノードを表すノード特徴が表示され得るので、ボックス512の動作は、その子の各々をハンドルする(処理する)繰り返しループを開始する。
【0119】
DoNodeに対して再帰的呼出しを繰り返し行う際、ボックス514の動作は、前ノード特徴の位置をボックス504からの位置にセットすることにより、そして前位置の半径方向ギャップをボックス510で計算された半径方向ギャップにセットすることにより、各ループを開始する。これらの値は、ループ内で局所的にセットされる。次にボックス516の動作は、次の子に対してDoNodeを子のハンドルとボックス504からの親の位置と共に呼び出す。ボックス518の動作は、DoNodeからリターンする。
【0120】
全ての子がハンドルされて各々が単位円におけるマッピング位置を有すると、ボックス520の動作は、DoNodeが終了する前に現行ノードのノード特徴を表示する。従ってノード特徴は、ボックス506で表されたリンク特徴の上に描かれる。ノード特徴は、レイアウト空間におけるノードの位置と半径を用いて配置され、ディスプレイ面においてマッピング領域を得ることができ、このマッピング領域は、後述するように中心及び半径により規定される。ウェーハ変数がある場合には、ノード特徴は、その中心に中心を置くテキストと半径を有する円を含むが、テキスト変数がある場合には、ノード特徴は、その中心に中心を置くテキスト及び矩形を含む。
【0121】
ボックス506及びボックス520の動作はそれぞれ、ディスプレイ208上に特徴を表示することを含む。これらの動作は、従来のディスプレイドライバ技術を用いて、使用されている指定ディスプレイシステムに適切なように実行されることができる。一般に、これらの動作は、単位円位置からディスプレイ位置への一定の変換を行う。
【0122】
図12は、ボックス504及びボックス506の動作が実行されることのできる方法を示す。
【0123】
ボックス540の動作は、DoNode呼出しをノードのハンドルと親の変換位置と共に受け取る。ノードがルートノードである場合には、親の変換位置は、それ自身の変換位置とされる。そうでない場合には、親の変換位置は、以下に述べられるように現行トランスレータを適用することにより以前に得られたものである。
【0124】
ボックス542の動作は、ノードのハンドルを使用して、レイアウト空間におけるその位置を得るが、該位置は、図9のボックス372に関して述べたようにノードのデータ構造から得られることができる。ボックス544の動作は次に、ボックス500からの現行トランスレータをボックス542からのノード位置に適用して、レイアウト空間における変換位置を得る。トランスレータは、図10のボックス400に関して上述したように得られることができる。
【0125】
ボックス500からのリンク機能は、ボックス540からの親の位置と、ボックス544からの変換位置と共に呼び出されて、図12における残りの動作が実行されることができる。リンク機能は、親の変換位置と現行ノードの変換位置とを用いてマッピング位置を得ることにより、ボックス546において開始する。この実施の形態では、ウィンドウの左上の角から(R,R)に中心を置く半径Rの円形のディスプレイ領域へとマッピングされると、各座標cのマッピングは、(cR+R+0.5)の下のフロア(floor )を計算することにより、得られることができる。このマッピングは、レイアウト空間から単位円へのインプリシットなマッピングを含み、それは、レイアウト空間における位置の座標を単位円での位置のx座標及びy座標として得ることにより実行される。次いで単位円位置が、上記計算によりディスプレイ位置にマッピングされる。
【0126】
リンク機能は、弧であるリンク特徴をディスプレイすることが適切であるかどうかを決定することにより、ボックス550で継続する。弧は、例えば、アニメーションシーケンス中には適切であり得ない;それはなぜなら、弧が付加的な計算を必要とするからである。あるいは、ボックス546からのマッピング位置同士間の差が小さい場合に弧は適切であり得ないので、弧はいずれにしても略線として現れるであろう。弧が適切でない場合には、ボックス552の動作は、ボックス546からのマッピング位置を連結する直線を引く。
【0127】
弧が適切である場合には、ボックス554の動作は、ボックス540からの親の位置(x,y)とボックス544からの変換位置(x,y)とを使用して、ディスプレイ空間における弧の曲率半径を計算することにより開始する。ボックス554の動作は、2つの点を通ると共に90度で境界円と交わる弧の曲率の中心を得ることにより、実行されることができる。これは、レイアウト空間における2つの点同士の間の線からマッピングされた弧である。次に計算により、曲率半径を得ることができる。
【0128】
ボックス554の動作は、d=2(x−x)という値をまず得て、次いでa=((1+x +y )/d) とb=((1+x +y )/d) という2つの値を得ることができる。曲率の中心は、x=by−ay、y=ax−bxであるような点(x,y)である。曲率半径は、曲率の中心から、親の変換位置(x,y)か現行ノードの変換位置(x,y)のいずれかまでの距離として、計算されることができる。
【0129】
ボックス556の動作は、ボックス554からの曲率半径が正確なドローイング(drawing )に対して大きすぎないかどうかを決定する。大きすぎる場合には、ボックス552の動作は、上述のように直線を引く。しかしながら、半径が十分に小さい場合には、ボックス558の動作は、従来の計算を用いて、ボックス554で計算されたように、ディスプレイ上に弧を描く。
【0130】
ボックス552の動作又はボックス558の動作の後、図12の技術は図11のボックス510に戻る。
【0131】
図13は、図11のボックス520の動作が実行されることのできる方法を示す。
【0132】
図13のボックス570の動作は、ノード特徴を表示することが適切であるかどうかを検査することにより開始する。この動作は、ノード特徴がディスプレイされるべきことを示すようにパラメータが設定されるのかどうか、又はアニメーションシーケンスに対しては、ノード特徴がアニメーションの間にディスプレイされるべきではないことを示すようにパラメータが設定されるのかどうか、を決定することを含む。ノード特徴の表示が適切でない場合には、DoNodeは終了する。
【0133】
ノード特徴の表示が適切である場合には、ボックス572の動作は、ボックス372に関して述べられたデータ構造からの現行ノードの位置及び半径を使用して、単位円における中心位置と単位円内半径を得る。中心位置のx及びy座標は、各々に((1.0−r )/( 1.0−( x+y) r ))を乗算することにより得られることができ、ここで、rは現行ノードの半径であり、例えば0.9より小さい数を乗算されることにより、ノード同士間にギャップを付加するように任意に調整される。ボックス572の動作は、半径rに((1.0−( x+y))/(1.0−( x+y) r ))を乗算して、単位円内半径rを得ることができる。
【0134】
次にボックス574の動作は、ボックス572からの中心位置と単位円内半径rを用いて、ディスプレイ上の対応する円を囲む境界ボックスの左上の角にディスプレイ位置を得るとともに、ディスプレイ上の対応する円の直径を得る。左上角のx及びy座標はそれぞれ、座標cを用いて、(R(c−r)+R+0.5)の下のフロアを計算することにより、得られることができる。直径は、値(R( x+r)+R+0.5)の下のフロアと、値(R(x−r)+R+0.5)の下のフロアとの間の差として得られることができる。
【0135】
次にボックス576の動作は、ボックス574からの大きさに合うキャラクタの総数を得る。総数は、サイズにおけるフロアファンクションとキャラクタサイズに関して得られることができる。ボックス580の動作は、総数が2より大きいかどうかにより分岐する。2より小さければ、DoNodeは、意味のあるテキストを表現するのにサイズが不十分であるため、終了する。
【0136】
総数が2より大きい場合には、ボックス582の動作は、テキストの位置を得る。例えばx座標は、マッピングされたサイズと、そのノードのテキスト中のキャラクタの数とキャラクタサイズとの積と、の差の半分とマッピングされたx座標との合計であることが可能である。y座標は、(Ry+R+0.5)の下のフロアであることが可能であり、ここでyはボックス572からの中心のy座標である。
【0137】
次にボックス590の動作は、ウェーハが表示されるべきか矩形が表示されるべきかに基づいて分岐する。ウェーハの場合には、ボックス592の動作は、ボックス574からのマッピング位置に円を描く。矩形の場合には、ボックス594の動作は、テキストの回りに合う矩形を、ボックス582からの位置に描く。次に、ボックス596の動作は、DoNodeが終了する前にボックス582からの位置にテキストを描く。
【0138】
以下に述べるように、図11〜図13の技術は、位置の変更に対する要求に応答して使用されることもできる。
【0139】
図14〜図16は、表現の位置の変更を要求するユーザからの信号に応答するオペレーションを示す。図14は、CPU202が、レイアウト空間にマッピングすると共に変換を得てそれを適用することにより、ユーザからの信号に如何に応答することができるかを示す。図14の技術を用いて、図7のボックス272、274、及び276の動作を実行することができ、同じ技術を用いて、図8のボックス292及び294の動作を実行することができる。図15は、ルートノードのオリエンテーションを保持しながら、第1の位置から第2の位置への変換を得る方法を示す。図16は、右方向へ、より大きいスペーシングの領域の中心にノードの子を方向づけながら、第1の位置から第2の位置への変換を得る方法を示す。
【0140】
図14の技術は、双曲面における構造を平行移動して、連続的且つ幾何学的なフォーカス移動方法を提供する。ユーザは、構造全体の視覚的な構成を維持しながら、構造を容易に走査検索することができる。ユーザは、目に見える任意の点をクリックして、それを中心にあるフォーカスに持っていくか、あるいは目に見える任意の点を任意の他の位置に対話的にドラッギングするかのいずれかにより、フォーカスを変更することができる。どちらの場合にも、表現の残りの部分は適切に変換される。中心に近づく領域は大きくなり、元は中心にあった領域は、エッジ近くになるにつれて縮んでいく。
【0141】
2つの変換の合成を計算するために、点(0,0)が第1の変換の下で変換され、次にその結果に対して第2の変換が行われることができる。次に、同様のことが、点(0,1)に対して行われることができる。それら2つの点の画像は、合成を識別するのに十分であり、適切な幾何学的オペレーションは、その情報から直接的に演算されることができる。
【0142】
図14のボックス610の動作は、表現が表示されているディスプレイ領域において、第1の位置と第2の位置を示す位置の変換に対する呼出しを受け取る。ドラッギングオペレーションでは、第1及び第2の位置は、明確に示されることができる。クリックオペレーションでは、第1の位置がクリック位置であり、第2の位置がディスプレイ領域の中心であることが可能である。
【0143】
ボックス612の動作は、ボックス610からの第1及び第2の位置を、双曲的ジオメトリオペレーションが実行されることのできる単位円座標に変換することにより、開始する。この実施の形態では、表現はウィンドウ内の半径rの円形ディスプレイ領域に表示されるので、ボックス612の動作は、各座標をrで割って1.0を減算することにより、実行されることができる。
【0144】
ボックス620の動作は次に、ボックス612からの単位円位置のいずれかが、単位円のエッジに近すぎないかどうか(例えばエッジの約0.025範囲内にあるかどうか)を検査する。いずれかが近すぎる場合には、ボックス622の動作は、起点からその位置までの距離の97%を各座標に乗算するなどして、エッジに近すぎる位置を調整する。このように、エッジに近すぎる位置をエッジから遠くなるよう移動させるように、各座標をわずかに減らす。
【0145】
ボックス612の変換と、必要であればボックス622の調整は、第1の位置の逆像と第2の位置の逆像の両方を、レイアウト空間に生成する。
【0146】
次にボックス624の動作は、第1の位置の逆像を第2の位置の逆像にする、レイアウト空間における変換を見い出すことにより、トランスレータを得る。以下に詳細に述べる技術を用いてトランスレータを得ることができる。
【0147】
図14の技術は、ボックス630の動作に示されるように、アニメーションが実行されているか否かに依存して、2つの異なる経路をとることができる。ドラッギングオペレーションでは、アニメーションは連続性の知覚を生じる必要がないこともあるが、クリックオペレーションでは、連続性の知覚を生じる、より小さいステップのアニメートシーケンスに分割されることが必要であり得る。
【0148】
アニメーションが実行されていない場合には、ボックス632の動作は、ボックス624からのトランスレータを現行平行移動と合成することにより、新たな現行平行移動を得る。これは、平行移動(translation )を用いて、レイアウトデータからディスプレイ表現を得るという意味である。新たな値PとΘを、P=((P+P Θ)/( 1.0+P Θ)(ここで、P はPの複素共役である)、Θ=((Θ(Θ+P ))/(1.0+P Θ) と計算することにより、各々が点Pと回転角度Θ(iはトランスレータを示す)により規定される、第1のトランスレータと第2のトランスレータの合成が得られることができる。合成されると位置の交換が可能でないため、トランスレータが合成される順序は、結果として得られる平行移動に影響を及ぼす。
【0149】
ボックス634の動作は、ボックス632からの新たな現行平行移動をレイアウトデータに適用して、変換位置を得、次いで変換位置をマッピングし、図11に関して上述されたように表現を表示する。こうして、ボックス610の呼出しに対する応答が終了する。
【0150】
アニメーションが実行されている場合には、ボックス640の動作は、以下に述べるようにボックス624からのトランスレータのn番目のルートを得る。次に、ボックス642の動作は、中間的平行移動を、表現を表示するために用いられる現行平行移動に初期設定することにより、繰り返しループに備える。ボックス644の動作は、n回実行される繰り返しループを開始して、n個の中間的平行移動を得る。ボックス646の動作は、ボックス640からのn番目のルートを中間的トランスレータと合成し、ボックス632に関して述べた合成技術を用いて、新たな中間的平行移動を得る。次に、ボックス648の動作は、ボックス646からの新たな中間的平行移動を、中間的平行移動の待ち行列に加える。
【0151】
n個の中間的平行移動が待ち行列に加えられた後、ボックス650の動作は、ボックス624からのトランスレータを、表現の表示に用いられる現行平行移動と合成することにより、最終の平行移動を得る。ボックス652の動作は、最終の平行移動を待ち行列に加え、次いでボックス654の動作は待ち行列を通って、レイアウトデータに各平行移動を適用して変換位置を得、次いで、変換位置をマッピングすると共に、ボックス634に関して上述したように表現を表示するが、待ち行列に加えられた各々の平行移動に対して1つの表現を有する。こうして、ボックス610の呼出しに対する応答が終了する。
【0152】
ボックス640の動作は、トランスレータの点Pと回転角度Θを用いて以下のようにn番目のルートを得ることができる。3つのケースのどれを適用するかを決定するために、ボックス640の動作は、d=(4|P−|Θ−1|)を得ることができる。ボックス640の動作はまた、例えばq=(|Θ−1|/|Θ+1|)及びq=(d/|Θ+1|)のように、1つより多いケースにおいて使用可能な値を予め計算することも可能である。
【0153】
d>0であれば、ボックス640の動作は、a=(tanh((atanh(q 1/2))/n)/( q 1/2)) 、t=a 、及びr=a((1+q)/(1+t))1/2 を得ることができる。
【0154】
d=0であれば、ボックス640の動作は、t =(q/n)、r =((( 1+q)/(1+t ))1/2 /n)という同様の値を得ることができる。
【0155】
d<0である場合には、ボックス640の動作は、a=((tan((atan(−q 1/2))/n))、t=(a |Θ−1|/(−d))、及びr=(4t/((1+t)(|Θ−1|))1/2 を得ることができる。
【0156】
次に、ボックス640の動作は、実部((1−t)/(1+t))と虚部(2t 1/2 / ( 1+t))(ここで、tは上述のように適用可能なケースに対する値である)を有する複素角度Θをまず得ることにより、n番目のルートトランスレータの回転角度Θを得ることができ、また複素平方根に対するブランチカットが選択されて、より小さい絶対回転を有する角度が与えられる。Θは、Θを得るために1という大きさを有するように正規化される。
【0157】
最後に、ボックス640の動作は、n番目のルートトランスレータの点Pを、P=P( Θ/Θ1/2 (ここで、rは上述のように適用可能なケースに対する値である)として得ることができる。
【0158】
図15は、第1の位置(x,y)から第2の位置(x ,y )へのトランスレータを得ると共に、第3の位置(x,y)のオリエンテーションを保持するために、ボックス624の動作が如何に実行されることができるかを示す。示されるように、図15の動作は、図14のボックス620又はボックス622のいずれかの後に続き、この実施の形態では、ドラッギング呼出しに応答しての実行の場合にはボックス632に先行し、クリック呼出しに応答しての実行の場合にはボックス640に先行する。ドラッギング呼出しに応答して呼び出される場合には、第1の位置はドラッギング動作の開始位置であり、第2の位置は終了位置である。クリック呼出しに応答して呼び出される場合には、第1の位置はクリックの位置であり、第2の位置は単位円の起点である。どちらの場合にも、第3の位置は、ルートノードの現在位置であり、この現在位置は、レイアウト空間において位置(0,0)に現行平行移動を実行することにより得られる。
【0159】
ボックス670の動作は、第3の位置から起点への第1のトランスレータを得、図10のボックス400に関して上述したように実行されることができる。次にボックス672の動作は、第1の位置に第1のトランスレータを適用し、第1の変換位置を得る。
【0160】
ボックス674の動作は、回転成分を有さないと共に、第1の変換位置(x,y)を第2の位置(x,y)に移す第2のトランスレータを得る。ボックス674の動作は、点P と回転角度(1.0,0.0)を有するトランスレータを得ることにより、実行されることができる。ボックス674の動作は、複素値((B−A)(1+( AB )) / ( 1− (|AB|)の実部を得ることにより、P の実部を得ることができる。ボックス674の動作は同様に、複素値((B−A)(1−( AB )) /(1− (|AB|) の虚部を得ることにより、P の虚部を得ることができる。これらの式において、A=x+iy、B=x+iyである。
【0161】
ボックス676の動作は次に、ボックス674から得られた第2のトランスレータとボックス670から得られた第1のトランスレータとの合成であるトランスレータを得る。ボックス676から得られたトランスレータは次に、図14のボックス632の動作において、又はボックス640及びボックス650の動作において、実行されることができる。
【0162】
図16は、ノード特徴の子が右方向への方向付けで、より大きいスペーシングの領域の中心付近にあるように、第1の位置から起点である第2の位置へのトランスレータを得るために、ボックス624の動作が実行されることのできる方法を示す。示されるように、図16の動作は、図14のボックス620又はボックス622のいずれかの後に続くと共に、この実施の形態では、クリック呼出しに応答して実行されるだけなので、図16の動作はボックス640に先行する。第1の位置はクリック位置である。
【0163】
ボックス690の動作は、第1の位置から起点への第1のトランスレータを得ると共に、図10のボックス400に関して上述したように実行されることができる。ボックス692の動作は、ボックス690から得られた第1のトランスレータと、ディスプレイされる表現を得るために使用される現行トランスレータとの合成である第2のトランスレータを得る。
【0164】
ボックス694の動作は、現行変換の反転を適用して、第1の位置の逆像を得る。点Pと回転角度Θとにより規定される変換は、点(−PΘ)と回転角度Θとによる変換を得ることにより、反転されることができる。ボックス694の動作はまた、第1の位置の逆像を用いて、最も近いノードの親を見い出す。
【0165】
ボックス700の動作は、ボックス694からの親ノードの位置にボックス692からの第2のトランスレータを適用すると共に、その結果が1という大きさを有するように正規化して、親の方向(Θx ,Θy )を得る。ボックス702の動作は次に、起点を移動することなくレイアウト空間を親方向に回転する第3のトランスレータを得る。第3のトランスレータは、(0,0)という点と(−Θx ,Θy )を有することができる。
【0166】
次にボックス704の動作は、ボックス702から得られた第3のトランスレータをボックス692から得られた第2のトランスレータと合成することにより、第4のトランスレータを得る。次に、ボックス706の動作は、ボックス704からの第4のトランスレータと、現行平行移動の反転とを合成することにより、トランスレータを得る。ボックス706からのトランスレータは、図14のボックス640及び650の動作において使用されることができる。
【0167】
上述の実行は、円形のディスプレイ領域に表現を表示するが、表現は、双曲面からの適切なマッピングを介して、楕円のような任意の他の適切な形状のディスプレイ領域にも表示されることができる。
【0168】
上述の実行は、単一のより大きいスペーシングの領域を有するように表現を示すが、表現は、より多くのノード特徴にフォーカスを当てるために、2つ以上の、より大きいスペーシング領域を有するように表示されることができる。特に興味深いのは、ポアンカレマップにおける点(a,0)及び点(−a,0)がそれぞれ、双眼鏡で見た場合のような(2つの)より大きいスペーシング領域の中心となる、2重フォーカス表現である。この表現の場合、ポアンカレマップにより表現される双曲面における点zは、ディスプレイ空間における((z(1−a) / (1−a)) にマッピングされる。
【0169】
上述の実行は、双曲面を使用するが、双曲的なn空間等の負の曲率を有する別の空間を使用することもできる。
【0170】
上述の実行は、双曲面において位置を表示するのに複素数を使用するが、それは一部には、複素数における連続関数が等角マッピングであるからである。しかしながら、双曲面における位置は、他のタイプのデータ又は座標を用いて表示されることができる。
【0171】
上述の実行は、双曲面から単位円へ、そして単位円から円形のディスプレイ領域へとマッピングするが、レイアウト空間からディスプレイ領域への他のタイプのマッピングを使用することもできる。例えば、ポアンカレモデルからクラインモデルへのマッピングは実験段階ではまだ満足がいく程には実行されなかったが、このようなマッピングも使用することができる。
【0172】
アニメーションを実行することにおいて、上述の実行は、n個(nは定数)のステップを使用する。アニメーションの数は、定数ではなく、アニメート動作が生じている開始位置と終了位置との間の距離に依存する変数であることも可能である。
【0173】
ループ型の走査検索を行うことにおいて本発明を使用した。
【0174】
さらに、負の曲率を有する空間においてノードリンク構造を均一にレイアウトすることは、インタラクティブボイスシステムに適用されることができ、また、レイアウト空間からサウンドレンダリングへのマッピングが実行されることが可能である。
【図面の簡単な説明】
【図1】ノードリンクデータを用いて、負の曲率を有する空間における位置を示すレイアウトデータを得、それにより2つ以上の異なるマッピングが達成されることのできる方法を示す概略的フローチャートである。
【図2】図1のようにレイアウトデータを得ると共にマッピングを達成することにおける概括的な動作を示すフローチャートである。
【図3】ノードリンク構造の第1及び第2の表現が如何に表示されるかを示す概略的なフローチャートであり、この第2の表現は、第1の表現における、第1の位置から第2の位置への変更を指示する信号に応答して自動的に表示される。
【図4】図3のように第1及び第2の表現を表示することにおける概括的な動作を示すフローチャートである。
【図5】図1のようにレイアウトデータを得てマッピングを実行し、また図3のように第1及び第2の表現を表示するマシンの概括的な構成要素を示す概略図である。
【図6】負の曲率を有するレイアウト空間においてノードリンク構造をレイアウトし、次いでマッピングを行ってディスプレイ上にノードリンク構造の表現を表示することのできるシステムの構成要素を示す概略ブロック図である。
【図7】図6のマシンが、位置の変更に関する要求に応答して、エッジに近すぎないノードの部分集合の位置を変換し且つマッピングすることにより、走査検索インタフェースを提供することのできる動作を示すフローチャートである。
【図8】図6のマシンが、位置の変更に関する要求に応答して、全ノードの位置を連続的に変換し且つマッピングすることにより、走査検索インタフェースを提供することのできる動作を示すフローチャートである。
【図9】図7の技術を実行する図6のシステムによるレイアウトオペレーションにおける動作を示すフローチャートである。
【図10】ノードの子までの距離、子の位置、ルーム境界、及びノードの半径を図9において得ることのできる動作を示すフローチャートである。
【図11】図7の技術を実行する図6のシステムによるレイアウト空間からディスプレイ位置へのマッピングにおける動作を示すフローチャートである。
【図12】単位円におけるノードのマッピング位置を得ると共に、リンク特徴を表示することのできる図11の動作を示すフローチャートである。
【図13】図11におけるノード特徴を表示する動作を示すフローチャートである。
【図14】図7の技術を実行する図5のシステムによる、位置の変更を要求するシステムに応答する動作を示すフローチャートである。
【図15】図14のルートノードのオリエンテーションを保持するトランスレータを得ることのできる動作を示すフローチャートである。
【図16】より大きいスペーシングを有する領域の中心にある或るノードの子ノードを起点として右方向に再配置するトランスレータを得ることのできる、図14の動作を示すフローチャートである。
【符号の説明】
10 ノードリンクデータ
20 ノードリンク構造
22 最上位レベルノード
24、26、28 下位レベルノード
30 レイアウトデータ
32 負の曲率を有する空間
150 マシン
152 プロセッサ
154 ユーザ入力回路
156 ディスプレイ
158 ノードリンクデータ
160 命令
162 命令入力回路

Claims (2)

  1. ノードリンク構造レイアウト方法であって、
    レイアウトデータを得るステップを有し;
    該レイアウトデータは、ノードリンク構造部分に対するレイアウト空間内位置を示し;
    前記レイアウト空間は負の曲率を有する空間であり;
    前記ノードリンク構造は、ノード及びリンクを含み、各リンクはノードの中の少なくとも2つに関連し;
    前記レイアウトデータは、ノード集合に対するレイアウト空間内位置を示し;
    前記ノード集合は、最上位レベルと少なくとも1つの下位レベルとを含む2つ以上のノードレベルを有するブランチを形成し、該最上位レベルが最上位レベルノードを含み、該下位レベルが下位レベルノードを含み、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有すると共にこの親ノードに1つのリンクを介して関連付けられ;
    2つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、
    親ノードに対するレイアウト空間における親位置を示し、
    親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を示し、前記親位置は該円の弧よりも該円の中心に近接し、前記下位レベルノード数が2つ以上であり、円に沿って隣接する子位置が互いに離間され;
    前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって該半径と、円に沿って隣接する子位置同士間のスペーシングとが全て前記ブランチ内で均一であり;
    前記方法がさらに、
    前記レイアウトデータを用いてノードリンク構造の第1の表現をディスプレイ上に表示するステップを有し;
    ユーザからの信号を受け取るステップを有し;
    該信号が第1のディスプレイ位置から第2のディスプレイ位置への変更を示し;
    前記第1の表現が第1のディスプレイ位置付近に第1の特徴を含み、該第1の特徴がノードリンク構造の第1の部分を表し;
    前記信号に応答して、ノードリンク構造の第2の表現をディスプレイに表示するステップを有し;
    該第2の表現がノードリンク構造の第1の部分を表す第2の特徴を含み、該第2の特徴が第2のディスプレイ位置付近に表示され;
    前記第2の表現が前記第1の表現の変更された継続として知覚されることができる、
    ことを特徴とするノードリンク構造レイアウト方法。
  2. マシンを動作する方法であって、
    該マシンが、メモリと、該メモリに格納されたデータをアクセスするように接続されるプロセッサと、該メモリに格納されるノードリンクデータと、を含み、該ノードリンクデータがノードリンク構造を規定し、該ノードリンク構造がノード及びリンクを含み、各リンクが少なくとも2つのノードに関連し、
    前記マシン動作方法は、
    プロセッサを操作してノードリンクデータを用いてレイアウトデータを得るステップを有し;
    前記レイアウトデータが、ノードリンク構造部分に対するレイアウト空間内位置を示し、該レイアウト空間が負の曲率を有する空間であり;
    前記ノードリンク構造がノード及びリンクを含み、各リンクがノードの中の少なくとも2つに関連し;
    前記レイアウトデータが、ノード集合に対するレイアウト空間内位置を示し;
    前記ノード集合が、最上位レベルと少なくとも1つの下位レベルとを含む2つ以上のノードレベルを有するブランチを形成し、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有し、ノードが親ノードに対して1つのリンクを介して関連付けられ;
    2つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、
    親ノードに対するレイアウト空間における親位置を含み、
    前記親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置示し、前記親位置は該円の弧よりも該円の中心に近接し、下位レベルノード数が2つ以上であり、前記円に沿って隣接する子位置が互いに離間され、
    前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内において均一であり、
    前記マシン動作方法がさらに、
    前記プロセッサを動作して、レイアウトデータを用いて2つ以上の異なるマッピングを実行するステップを有し;
    各マッピングによりマッピングデータが得られ;
    各マッピングにより得られたマッピングデータがノード集合の部分集合の位置を示す、
    ことを特徴とするマシン動作方法。
JP23186695A 1994-09-14 1995-09-08 ノードリンク構造レイアウト方法及びマシン動作方法 Expired - Lifetime JP3630791B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US306043 1994-09-14
US08/306,043 US5590250A (en) 1994-09-14 1994-09-14 Layout of node-link structures in space with negative curvature

Publications (2)

Publication Number Publication Date
JPH08129649A JPH08129649A (ja) 1996-05-21
JP3630791B2 true JP3630791B2 (ja) 2005-03-23

Family

ID=23183505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23186695A Expired - Lifetime JP3630791B2 (ja) 1994-09-14 1995-09-08 ノードリンク構造レイアウト方法及びマシン動作方法

Country Status (4)

Country Link
US (1) US5590250A (ja)
EP (1) EP0702330B1 (ja)
JP (1) JP3630791B2 (ja)
DE (1) DE69524330T2 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619632A (en) * 1994-09-14 1997-04-08 Xerox Corporation Displaying node-link structure with region of greater spacings and peripheral branches
JP3744039B2 (ja) * 1995-11-29 2006-02-08 株式会社日立製作所 透視図作成支援方法
CN1107291C (zh) * 1996-10-02 2003-04-30 日本电信电话株式会社 分层结构的图形显示方法及装置
US6144962A (en) * 1996-10-15 2000-11-07 Mercury Interactive Corporation Visualization of web sites and hierarchical data structures
US5958008A (en) * 1996-10-15 1999-09-28 Mercury Interactive Corporation Software system and associated methods for scanning and mapping dynamically-generated web documents
US5870559A (en) 1996-10-15 1999-02-09 Mercury Interactive Software system and associated methods for facilitating the analysis and management of web sites
US5974572A (en) * 1996-10-15 1999-10-26 Mercury Interactive Corporation Software system and methods for generating a load test using a server access log
US6252597B1 (en) * 1997-02-14 2001-06-26 Netscape Communications Corporation Scalable user interface for graphically representing hierarchical data
US5963213A (en) * 1997-05-07 1999-10-05 Olivr Corporation Ltd. Method and system for accelerating warping
US6440750B1 (en) 1997-06-10 2002-08-27 Agere Systems Guardian Corporation Method of making integrated circuit having a micromagnetic device
US8232995B2 (en) * 1998-07-29 2012-07-31 SAP America, Inc. Local relative layout of node-link structures in space with negative curvature
US6300957B1 (en) 1998-07-29 2001-10-09 Inxight Software, Inc. Mapping a node-link structure to a rendering space beginning from any node
US6108698A (en) * 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
US6654761B2 (en) 1998-07-29 2003-11-25 Inxight Software, Inc. Controlling which part of data defining a node-link structure is in memory
US6377259B2 (en) 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US6628304B2 (en) 1998-12-09 2003-09-30 Cisco Technology, Inc. Method and apparatus providing a graphical user interface for representing and navigating hierarchical networks
US6453241B1 (en) 1998-12-23 2002-09-17 Rosetta Inpharmatics, Inc. Method and system for analyzing biological response signal data
US6359635B1 (en) 1999-02-03 2002-03-19 Cary D. Perttunen Methods, articles and apparatus for visibly representing information and for providing an input interface
US6441822B1 (en) * 1999-04-02 2002-08-27 Bruce H. Johnson Drawing with circular arcs
US6434556B1 (en) 1999-04-16 2002-08-13 Board Of Trustees Of The University Of Illinois Visualization of Internet search information
US6496842B1 (en) 1999-05-28 2002-12-17 Survol Interactive Technologies Navigating heirarchically organized information
US6255714B1 (en) 1999-06-22 2001-07-03 Agere Systems Guardian Corporation Integrated circuit having a micromagnetic device including a ferromagnetic core and method of manufacture therefor
US6583794B1 (en) 1999-07-01 2003-06-24 Smart Money Interface system for information mapping
US20030130977A1 (en) * 1999-08-06 2003-07-10 Oommen B. John Method for recognizing trees by processing potentially noisy subsequence trees
US7292261B1 (en) * 1999-08-20 2007-11-06 Patrick Teo Virtual reality camera
US6505209B1 (en) * 1999-11-02 2003-01-07 Monkeymedia, Inc. Poly vectoral reverse navigation
US6366299B1 (en) * 2000-02-21 2002-04-02 Verizon Laboratories Inc. Multidimensional information visualization using attribute rods
US6957205B1 (en) 2000-03-08 2005-10-18 Accenture Llp Knowledge model-based indexing of information
US6604113B1 (en) 2000-04-14 2003-08-05 Qwest Communications International, Inc. Method and apparatus for providing account information
US6693633B2 (en) * 2001-05-04 2004-02-17 Sas Institute Inc. Computer-implemented node spreader
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
US8473922B2 (en) * 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US6918097B2 (en) 2001-10-09 2005-07-12 Xerox Corporation Method and apparatus for displaying literary and linguistic information about words
US7086012B1 (en) * 2001-12-27 2006-08-01 Perttunen Cary D Representation of weighted tree-related elements
US20030131097A1 (en) * 2002-01-09 2003-07-10 Stephane Kasriel Interactive path analysis
US6996774B2 (en) * 2002-02-12 2006-02-07 Accenture Global Services Gmbh Display of data element indicia based on data types
US7046248B1 (en) 2002-03-18 2006-05-16 Perttunen Cary D Graphical representation of financial information
US20030187744A1 (en) * 2002-03-27 2003-10-02 Goodridge Alan Gardner System for enabling omnidirectional navigation of hierarchical networks with spatial continuity
US6944612B2 (en) 2002-11-13 2005-09-13 Xerox Corporation Structured contextual clustering method and system in a federated search engine
US7075535B2 (en) * 2003-03-05 2006-07-11 Sand Codex System and method for exact rendering in a zooming user interface
US7546419B2 (en) * 2004-06-01 2009-06-09 Aguera Y Arcas Blaise Efficient data cache
US7042455B2 (en) * 2003-05-30 2006-05-09 Sand Codex Llc System and method for multiple node display
US7133054B2 (en) * 2004-03-17 2006-11-07 Seadragon Software, Inc. Methods and apparatus for navigating an image
US7930434B2 (en) * 2003-03-05 2011-04-19 Microsoft Corporation System and method for managing communication and/or storage of image data
US7254271B2 (en) * 2003-03-05 2007-08-07 Seadragon Software, Inc. Method for encoding and serving geospatial or other vector data as images
US7912299B2 (en) * 2004-10-08 2011-03-22 Microsoft Corporation System and method for efficiently encoding data
US7949964B2 (en) * 2003-05-29 2011-05-24 Computer Associates Think, Inc. System and method for visualization of node-link structures
EP1510938B1 (en) * 2003-08-29 2014-06-18 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
EP1510939A1 (en) * 2003-08-29 2005-03-02 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
US20050046630A1 (en) * 2003-08-29 2005-03-03 Kurt Jacob Designable layout animations
EP1510940A1 (en) 2003-08-29 2005-03-02 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
EP1510941A1 (en) * 2003-08-29 2005-03-02 Sap Ag A method of providing a visualisation graph on a computer and a computer for providing a visualisation graph
US7383269B2 (en) * 2003-09-12 2008-06-03 Accenture Global Services Gmbh Navigating a software project repository
US20050110702A1 (en) * 2003-11-21 2005-05-26 Aoki Paul M. Collapsible display device and methods for using the same
US7587409B2 (en) * 2004-09-24 2009-09-08 Sas Institute Inc. Computer-implemented system and method for handling node-link representations
US8660977B2 (en) * 2005-02-04 2014-02-25 Accenture Global Services Limited Knowledge discovery tool relationship generation
US20060179026A1 (en) * 2005-02-04 2006-08-10 Bechtel Michael E Knowledge discovery tool extraction and integration
US20060179069A1 (en) 2005-02-04 2006-08-10 Bechtel Michael E Knowledge discovery tool navigation
US7904411B2 (en) * 2005-02-04 2011-03-08 Accenture Global Services Limited Knowledge discovery tool relationship generation
US20060235941A1 (en) * 2005-03-29 2006-10-19 Microsoft Corporation System and method for transferring web page data
US7378969B2 (en) * 2005-10-25 2008-05-27 Sap Ag Systems and methods for visualizing auto-id data
US7657848B2 (en) * 2006-01-09 2010-02-02 Sas Institute Inc. Computer-implemented node-link processing systems and methods
CN100580671C (zh) * 2006-04-27 2010-01-13 国际商业机器公司 构造布局平衡的带标记映像树的方法和系统
US7447998B2 (en) * 2006-05-04 2008-11-04 International Business Machines Corporation Graphical interface for tree view
CN101136106B (zh) * 2006-08-30 2010-07-07 国际商业机器公司 基于双曲几何显示加权树的方法和计算机系统
US7644105B2 (en) * 2006-11-08 2010-01-05 Palo Alto Research Center Incorporated Systems and methods for structured variable resolution information dissemination and discovery
US7765176B2 (en) * 2006-11-13 2010-07-27 Accenture Global Services Gmbh Knowledge discovery system with user interactive analysis view for analyzing and generating relationships
JP4887184B2 (ja) * 2007-03-02 2012-02-29 株式会社リコー 表示処理装置、表示処理方法、および表示処理プログラム
US8019760B2 (en) * 2007-07-09 2011-09-13 Vivisimo, Inc. Clustering system and method
US20100235725A1 (en) * 2009-03-10 2010-09-16 Microsoft Corporation Selective display of elements of a schema set
US8677279B2 (en) * 2009-05-06 2014-03-18 Business Objects Software Limited Visual hierarchy explorer
US20100325101A1 (en) * 2009-06-19 2010-12-23 Beal Alexander M Marketing asset exchange
US8502823B2 (en) * 2009-12-21 2013-08-06 Business Objects Software Limited Method and system for lane graph visualization
US20120167015A1 (en) * 2010-12-22 2012-06-28 Sap Ag Providing visualization of system landscapes
US9014717B1 (en) * 2012-04-16 2015-04-21 Foster J. Provost Methods, systems, and media for determining location information from real-time bid requests
US9092547B2 (en) * 2012-09-19 2015-07-28 Wal-Mart Stores, Inc. Transforming a graph to a tree in accordance with analyst guidance
US9552590B2 (en) 2012-10-01 2017-01-24 Dstillery, Inc. Systems, methods, and media for mobile advertising conversion attribution
US20150007078A1 (en) 2013-06-28 2015-01-01 Sap Ag Data Displays in a Tile-Based User Interface
GB2523776B (en) * 2014-03-04 2018-08-01 Toshiba Res Europe Limited Methods for 3D object recognition and pose determination
US10176605B2 (en) * 2014-03-26 2019-01-08 Brigham Young University Dynamic display of heirarchal data
WO2015167518A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Maintaining an orientation of a graph
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
EP3355261A4 (en) * 2015-09-25 2019-04-03 NEC Patent Service,Ltd. INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM RECORDING MEDIUM
US10885281B2 (en) 2018-12-06 2021-01-05 International Business Machines Corporation Natural language document summarization using hyperbolic embeddings

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528643A (en) * 1983-01-10 1985-07-09 Fpdc, Inc. System for reproducing information in material objects at a point of sale location
JPH0757003B2 (ja) * 1983-05-09 1995-06-14 大日本スクリ−ン製造株式会社 画像走査記録装置
US4710763A (en) * 1984-10-19 1987-12-01 Texas Instruments Incorporated Method for generating and displaying tree structures in a limited display area
US4790028A (en) * 1986-09-12 1988-12-06 Westinghouse Electric Corp. Method and apparatus for generating variably scaled displays
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
US5295243A (en) * 1989-12-29 1994-03-15 Xerox Corporation Display of hierarchical three-dimensional structures with rotating substructures
JP3151774B2 (ja) * 1989-12-29 2001-04-03 ゼロックス コーポレーション 画像をディスプレイへ表示する方法
JP3245655B2 (ja) * 1990-03-05 2002-01-15 インキサイト ソフトウェア インコーポレイテッド 作業スペースの表示処理方法
AU9148691A (en) * 1990-11-27 1992-06-25 Paraspectives, Inc. A system for imaging objects in alternative geometries
US5297241A (en) * 1991-09-30 1994-03-22 Hewlett-Packard Company Automated re-layout with dimensional associativity
US5333254A (en) * 1991-10-02 1994-07-26 Xerox Corporation Methods of centering nodes in a hierarchical display
US5428744A (en) * 1993-08-30 1995-06-27 Taligent, Inc. Object-oriented system for building a graphic image on a display
US5515488A (en) * 1994-08-30 1996-05-07 Xerox Corporation Method and apparatus for concurrent graphical visualization of a database search and its search history

Also Published As

Publication number Publication date
DE69524330D1 (de) 2002-01-17
JPH08129649A (ja) 1996-05-21
EP0702330A2 (en) 1996-03-20
EP0702330A3 (en) 1996-07-10
EP0702330B1 (en) 2001-12-05
US5590250A (en) 1996-12-31
DE69524330T2 (de) 2002-06-13

Similar Documents

Publication Publication Date Title
JP3630791B2 (ja) ノードリンク構造レイアウト方法及びマシン動作方法
JP3737169B2 (ja) ノードリンク構造のディスプレイ方法
US6300957B1 (en) Mapping a node-link structure to a rendering space beginning from any node
US6901555B2 (en) Tree visualization system and method based upon a compressed half-plane model of hyperbolic geometry
US6377259B2 (en) Presenting node-link structures with modification
US8232995B2 (en) Local relative layout of node-link structures in space with negative curvature
Lamping et al. The hyperbolic browser: A focus+ context technique for visualizing large hierarchies
US5295243A (en) Display of hierarchical three-dimensional structures with rotating substructures
Been et al. Dynamic map labeling
JP3151774B2 (ja) 画像をディスプレイへ表示する方法
JP3240156B2 (ja) 三次元作業域における目標に対する移動ビューポイント
JP2003016465A (ja) グラフィックス・イメージ作成装置、及びその方法並びにプログラム
US9569868B2 (en) Generating Voronoi treemaps
JPH0689084A (ja) 作業スペースの表示処理方法
JPH07302336A (ja) 画像の特徴を曖昧化する方法および装置
JP4448637B2 (ja) ライティングされ、テクスチャのある球体の高速で滑らかなレンダリング
US6043825A (en) Method of displaying 3D networks in 2D with out false crossings
Urribarri et al. Gyrolayout: A Hyperbolic Level-of-Detail Tree Layout.
US12118039B2 (en) Visually exploring implicit features of hierarchical graphs based on attributes of nodes of the graphs
KR100490296B1 (ko) 비트맵 이미지를 이용하는 하이퍼볼릭 패턴 생성 방법
JP4304551B2 (ja) 画像処理装置及びその方法
Kim Multi-user non-linear adaptive magnification for satellite imagery and graph networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041029

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: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071224

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 9

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