(57)【特許請求の範囲】
【請求項１】
ノードリンク構造レイアウト方法であって、
レイアウトデータを得るステップを有し；
該レイアウトデータは、ノードリンク構造部分に対するレイアウト空間内位置を示し；
前記レイアウト空間は負の曲率を有する空間であり；
前記ノードリンク構造は、ノード及びリンクを含み、各リンクはノードの中の少なくとも２つに関連し；
前記レイアウトデータは、ノード集合に対するレイアウト空間内位置を示し；
前記ノード集合は、最上位レベルと少なくとも１つの下位レベルとを含む２つ以上のノードレベルを有するブランチを形成し、該最上位レベルが最上位レベルノードを含み、該下位レベルが下位レベルノードを含み、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有すると共にこの親ノードに１つのリンクを介して関連付けられ；
２つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、
親ノードに対するレイアウト空間における親位置を示し、
親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を示し、前記親位置は該円の弧よりも該円の中心に近接し、前記下位レベルノード数が２つ以上であり、円に沿って隣接する子位置が互いに離間され；
前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって該半径と、円に沿って隣接する子位置同士間のスペーシングとが全て前記ブランチ内で均一であり；
前記方法がさらに、
前記レイアウトデータを用いてノードリンク構造の第１の表現をディスプレイ上に表示するステップを有し；
ユーザからの信号を受け取るステップを有し；
該信号が第１のディスプレイ位置から第２のディスプレイ位置への変更を示し；
前記第１の表現が第１のディスプレイ位置付近に第１の特徴を含み、該第１の特徴がノードリンク構造の第１の部分を表し；
前記信号に応答して、ノードリンク構造の第２の表現をディスプレイに表示するステップを有し；
該第２の表現がノードリンク構造の第１の部分を表す第２の特徴を含み、該第２の特徴が第２のディスプレイ位置付近に表示され；
前記第２の表現が前記第１の表現の変更された継続として知覚されることができる、
ことを特徴とするノードリンク構造レイアウト方法。
【請求項２】
マシンを動作する方法であって、
該マシンが、メモリと、該メモリに格納されたデータをアクセスするように接続されるプロセッサと、該メモリに格納されるノードリンクデータと、を含み、該ノードリンクデータがノードリンク構造を規定し、該ノードリンク構造がノード及びリンクを含み、各リンクが少なくとも２つのノードに関連し、
前記マシン動作方法は、
プロセッサを操作してノードリンクデータを用いてレイアウトデータを得るステップを有し；
前記レイアウトデータが、ノードリンク構造部分に対するレイアウト空間内位置を示し、該レイアウト空間が負の曲率を有する空間であり；
前記ノードリンク構造がノード及びリンクを含み、各リンクがノードの中の少なくとも２つに関連し；
前記レイアウトデータが、ノード集合に対するレイアウト空間内位置を示し；
前記ノード集合が、最上位レベルと少なくとも１つの下位レベルとを含む２つ以上のノードレベルを有するブランチを形成し、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有し、ノードが親ノードに対して１つのリンクを介して関連付けられ；
２つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、
親ノードに対するレイアウト空間における親位置を含み、
前記親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を示し、前記親位置は該円の弧よりも該円の中心に近接し、下位レベルノード数が２つ以上であり、前記円に沿って隣接する子位置が互いに離間され、
前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内において均一であり、
前記マシン動作方法がさらに、
前記プロセッサを動作して、レイアウトデータを用いて２つ以上の異なるマッピングを実行するステップを有し；
各マッピングによりマッピングデータが得られ；
各マッピングにより得られたマッピングデータがノード集合の部分集合の位置を示す、
ことを特徴とするマシン動作方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ノードリンク構造のレイアウトに関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
ギンドン，アール．エドワード（Ｇｕｉｎｄｏｎ，  Ｒ．，  Ｅｄ．，  ）の「人間とコンピュータの対話のための認識科学とその応用（Ｃｏｎｇｎｉｔｉｖｅ  Ｓｃｉｅｎｃｅ  ａｎｄ  ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎ  ｆｏｒ  Ｈｕｍａｎ  Ｃｏｍｐｕｔｅｒ  Ｉｎｔｅｒａｃｔｉｏｎ  ）」［ニュージャージー州ヒルズデイルのローレンスアールバウム（Ｌａｗｒｅｎｃｅ  Ｅｒｌｂａｕｍ）、１９８８年］のＰ２０１〜Ｐ２３３におけるフェアチャイルド，ケイ．エム．（Ｆａｉｒｃｈｉｌｄ，  Ｋ．Ｍ．  ）、ポルトロック，エス．イー．（Ｐｏｌｔｒｏｃｋ，  Ｓ．Ｅ．）、ファーナス，ジー．ダブリュ．（Ｆｕｒｎａｓ，  Ｇ．Ｗ．）の「セムネット（ＳｅｍＮｅｔ）：大規模知識ベースの３次元グラフィック表示（Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｇｒａｐｈｉｃ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ  ｏｆ  Ｌａｒｇｅ  Ｋｎｏｗｌｅｄｇｅ  Ｂａｓｅｓ）」は、セムネット即ち３次元グラフィカルインタフェースについて述べている。
【０００３】
図１−１に関して示され且つ述べられているように、セムネットは、知識ベースを３次元空間において有向グラフとして表し、該有向グラフは、線又は弧で連結されてラベル付けされた矩形として表された知識エレメントを有する。
【０００４】
本発明の一態様は、ノードリンク構造のレイアウトにおける基本的な問題を軽減する。ノードリンク構造中の情報は、構造を横断するにつれて指数関数的に増大する傾向がある。例えば、ノードリンク構造が、ルートノードと、ルートノードより低いレベルのノードとを有するツリー又は他の階層（ｈｉｅｒａｒｃｈｙ  ）的構造である場合には、ノード数と、それ故にツリーにおける情報量とは、ルートから下位レベルになるにつれて、指数関数的に増大する傾向がある。ノードリンク構造の表現をディスプレイする場合等いくつかのアプリケーションでは、各ノードが他のノードから十分に離間された独自の位置を有するように、１つの空間にノードリンク構造をレイアウトすることが有益である。ノード数及びツリーにおける情報量が指数関数的に増大することにより、１つの空間にノードリンク構造をレイアウトすることは困難である。
【０００５】
いくつかの従来技術は、２次元、３次元、又はそれ以外のｎ次元のユークリッド空間においてノードリンク構造をレイアウトする。例えば、上述のフェアチャイルド他の技術はノードを３次元空間に配置するが、それは一部には、ノードを平面に配置すると弧が交わってしまうからである。ロバートソン（Ｒｏｂｅｒｔｓｏｎ  ）他の米国特許第５，２９５，２４３号は、回転するサブ構造を有する階層的構造を３次元空間に配置する技術について述べている。
【０００６】
ユークリッド空間におけるレイアウトは例えば、ルートノードから始まり、空間に各ノードを配置しながら構造を横断する。ユークリッド空間におけるレイアウトは、指数関数的な増大のために、密度において大きなばらつきを含みがちである。ブランチにおけるノードは、ルートに近いノードよりもずっと密度が高い傾向がある。密度に大きなばらつきがあると、このようなレイアウトに基づいて走査検索を使用するユーザが、密度の異なる領域におけるノード同士の関係を理解することが困難であるため、レイアウトの使用において問題が生じる。
【０００７】
【課題を解決するための手段】
本発明の技術は、指数関数的に増大するブランチを有するノードリンク構造が、負の曲率を有する空間では密度の大きなばらつきを有することなくレイアウトされることができるという発見に基づくものである。空間は、平行な線が発散する場合に負の曲率を有する。本発明の実施の形態は、ｎ次元の双曲的空間（２次元の双曲的空間は「双曲面」と呼ばれる）を含む。双曲面では、例えば、円の面積はその半径の指数関数に比例するので、指数関数的に増大するブランチを有するノードリンク構造の均一なレイアウトを得ることが容易である。負の曲率を有するレイアウト空間は、レイアウト空間における位置が限られた精度で特定される場合に、双曲面又は負の曲率を有する他の連続的空間に対する「ディスクリート（離散的）な近似」と呼ばれ、レイアウト空間における全ての位置は、双曲面又は負の曲率を有する他の連続的空間における位置にマッピング（写像）されるが、逆は成り立たない。
【０００８】
各技術は、負の曲率を有するレイアウト空間においてノードリンク構造の部分の位置を示すレイアウトデータを使用する。レイアウトデータは例えば、レイアウト空間における位置を示す座標を含む。レイアウトデータは、ブランチを形成するノードの集合の中の各ノードに対するレイアウト空間における位置を示す。親ノードの集合の中の各々に関して言えば、親ノードを共有する下位レベルのノードは、空間における円又は円の弧に略沿った形で存在し、親ノードはその円の略中心に位置される。ここで使用するように、「円に沿って」とは、円の弧に沿った配列も含まれる。各円に沿って隣接する下位レベルのノードの位置は、おおよそ基底スペーシング（間隔）だけ離間される。集合中の全親ノードの円の半径は共に半径方向離間関数を近似し、該関数は、半径と円に沿って隣接する下位レベルのノード同士間の離間とが全てブランチ内で略均一となるように、下位レベルのノード数と共にゆっくりと増大する。
【０００９】
ブランチの略均一なレイアウトは非常に有益である。例えば、ブランチを含むノードリンク構造の表現をディスプレイすることにおいて、さらなるレイアウトが必要でなくなる、即ち、レイアウト空間において厳密な変換を実行して変換された位置を得ることにより、そして、この変換位置から、ディスプレイ上に表されることのできる平坦なユークリッド領域（円形、ディスク形状領域、若しくは任意の他の適切な形状の領域等）へとマッピングすることにより、表現が得られることができる。
【００１０】
レイアウト空間は、例えば双曲面のディスクリートな近似であることが可能であり、レイアウトデータは、双曲面における位置を一体となって示す２つの座標を各ノードに対して示すことができる。ノードリンク構造は、ツリー等の非循環グラフであることが可能である。
【００１１】
本発明の一態様は、ノードリンク構造の表現のディスプレイに関する。この技術では、レイアウトデータを使用して、ノードリンク構造の第１の表現をディスプレイ上に表示する。第１のディスプレイ位置から第２のディスプレイ位置への変更を示すユーザからの信号に応答して、この技術は次に、第１の表現の移動された継続として認知される第２の表現を示す。第１の表現は、第１のディスプレイ位置付近に、ノードリンク構造の第１の部分を表す第１の特徴を含み、また第２の表現は、前記第１の部分を示すものの第２のディスプレイ位置付近にある第２の特徴を含む。
【００１２】
本発明の別の態様は、上述のレイアウトデータを得るための技術を提供する。この技術は、上述のレイアウトデータを得るためにノードリンク構造を規定するノードリンクデータを使用する。この技術は次に、レイアウトデータを使用して、２つ以上の異なるマッピングを実行する。各マッピングにより得られたマッピングデータは、ノード集合の部分集合に対する位置を示す。例えば位置は、ディスプレイ位置、又は別の適切な空間における位置であることが可能である。
【００１３】
本発明のまた別の態様は、レイアウトデータが双曲面のディスクリートな近似における位置を示す場合に、上述の変換データを得る技術を実行する際に生じる問題の認識に基づく。変換が純粋な平行移動（ｔｒａｎｓｌａｔｉｏｎ  ）である場合には、回転に関する問題が生じる。双曲面において直線に対して平行移動を実行すると、その直線上にない点がその直線上の点に対して回転されるので、直覚的にわからなくなるおそれがある。さらに、閉ループを形成する一連の平行移動は、その各々が、平行移動のその直線に沿ってオリエンテーション（配向）を保持するので、この場合もまた反直覚的な回転を生じる。
【００１４】
本発明のこの態様は、回転の問題を軽減する技術を提供する。各技術は、回転成分を含む変換を提供する。この技術は、より大きなスペーシングの領域における子ノードが、例えば常にその親ノードの右にというように、正規のオリエンテーションで表されるように回転作用する。別の技術は、ノードリンク構造のルートノードのオリエンテーションを保持するように回転作用する。
【００１５】
上述の技術は、指数関数的に増大するノードリンク構造が、負の曲率を有する面において均一にレイアウトされることができるため、有利である。例えば、一旦ノードリンク構造が双曲面にレイアウトされると、そのノードリンク構造を再度レイアウトする必要がない、即ち、同一のレイアウトを変換して、他の望ましい表現を生成することができる。双曲面は、ディスク等のディスプレイ領域にマッピングされて、或る部分はより詳細に示し、他の部分は詳細に示さないことができるので、詳細に示された部分の内容を見ることができる。さらに、２つの表現同士間の任意の変換が同じ時間量でなされることができるので、高品質のアニメーションを用いたナビゲーションが可能となる。アニメーション速度で表される一続きの画像は、構造の複数の部分の位置を変えながら、継続したものとして知覚されることができる。従ってユーザは、或る部分の位置の変更を指示することができ、マシンは、指示された通りにその部分が移動された画像を自動的に表すことができる。このことは、ユーザが構造の任意の部分に変更の的を当てることができることを示している。
【００１６】
本発明の請求項１の態様は、ノードリンク構造レイアウト方法であって、レイアウトデータを得るステップを有し；該レイアウトデータは、ノードリンク構造部分に対するレイアウト空間内位置を示し；前記レイアウト空間は負の曲率を有する空間であり；前記ノードリンク構造は、ノード及びリンクを含み、各リンクはノードの中の少なくとも２つに関連し；前記レイアウトデータは、ノード集合に対するレイアウト空間内位置を示し；前記ノード集合は、最上位レベルと少なくとも１つの下位レベルとを含む２つ以上のノードレベルを有するブランチを形成し、該最上位レベルが最上位レベルノードを含み、該下位レベルが下位レベルノードを含み、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有すると共にこの親ノードに１つのリンクを介して関連付けられ；２つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、親ノードに対するレイアウト空間における親位置を示し、親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を示し、前記親位置は該円の弧よりも該円の中心に近接し、前記下位レベルノード数が２つ以上であり、円に沿って隣接する子位置が互いに離間され；前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって該半径と、円に沿って隣接する子位置同士間のスペーシングとが全て前記ブランチ内で均一であり；前記方法がさらに、前記レイアウトデータを用いてノードリンク構造の第１の表現をディスプレイ上に表示するステップを有し；ユーザからの信号を受け取るステップを有し；該信号が第１のディスプレイ位置から第２のディスプレイ位置への変更を示し；前記第１の表現が第１のディスプレイ位置付近に第１の特徴を含み、該第１の特徴がノードリンク構造の第１の部分を表し；前記信号に応答して、ノードリンク構造の第２の表現をディスプレイに表示するステップを有し；該第２の表現がノードリンク構造の第１の部分を表す第２の特徴を含み、該第２の特徴が第２のディスプレイ位置付近に表示され；前記第２の表現が前記第１の表現の変更された継続として知覚されることができる、ことを特徴とする。
【００１７】
本発明の請求項２の態様は、マシンを動作する方法であって、該マシンが、メモリと、該メモリに格納されたデータをアクセスするように接続されるプロセッサと、該メモリに格納されるノードリンクデータと、を含み、該ノードリンクデータがノードリンク構造を規定し、該ノードリンク構造がノード及びリンクを含み、各リンクが少なくとも２つのノードに関連し、前記マシン動作方法は、プロセッサを操作してノードリンクデータを用いてレイアウトデータを得るステップを有し；前記レイアウトデータが、ノードリンク構造部分に対するレイアウト空間内位置を示し、該レイアウト空間が負の曲率を有する空間であり；前記ノードリンク構造がノード及びリンクを含み、各リンクがノードの中の少なくとも２つに関連し；前記レイアウトデータが、ノード集合に対するレイアウト空間内位置を示し；前記ノード集合が、最上位レベルと少なくとも１つの下位レベルとを含む２つ以上のノードレベルを有するブランチを形成し、各下位レベルにおける各ノードが、次に高いレベルに親ノードを有し、ノードが親ノードに対して１つのリンクを介して関連付けられ；２つ以上の親ノードの集合中の各々に対して、前記レイアウトデータが、親ノードに対するレイアウト空間における親位置を含み、前記親ノードを共有する多数の下位レベルのノードに対するレイアウト空間における円の中心よりも該円の弧に近接する子位置を含み、前記親位置は該円の弧よりも該円の中心に近接し、下位レベルノード数が２つ以上であり、前記円に沿って隣接する子位置が互いに離間され、前記円の半径の平均長は下位レベルノード数の増加に伴い増加し、該半径の平均長の増加の傾きは下位レベルノードの数の増加に伴い減少し、よって半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内において均一であり、前記マシン動作方法がさらに、前記プロセッサを動作して、レイアウトデータを用いて２つ以上の異なるマッピングを実行するステップを有し；各マッピングによりマッピングデータが得られ；各マッピングにより得られたマッピングデータがノード集合の部分集合の位置を示す、ことを特徴とする。
【００１８】
【発明の実施の形態】
「グラフ」は、各リンクが２つのノードに関連するノードリンク構造である。「非循環グラフ」は、リンクがグラフ中の任意の２つのノード同士間に１つの経路のみを提供するグラフである。「有向グラフ」は、各リンクが、そのリンクの関連するノード同士間に、１つのノードがリンクのソースであり他のノードが目的地であるというように方向を示すグラフである。ツリーは、必ず１つのルートノードを有する非循環有向グラフであり、ツリー中のあらゆる他のノードは、ルートノードから始まり示された方向にある各リンクに従う唯一の経路により到達されることができる。
【００１９】
ノードリンク構造の「ブランチ（分岐）」は、リンクが、関連するノードペアとして且つ方向を示すものとして取り扱われる場合に、ノードリンク構造内にツリーを形成するノード集合である。従ってブランチは、２つ以上のレベルを含み、「最上位レベルノード」は、ツリーのルートノードであるノードであり、「下位レベルノード」は、最上位レベルノードよりも１つ以上下のツリーレベルのノードである。各下位レベルノードは、そのすぐ上のレベルに「親ノード」を有し、下位レベルノードは、１つのリンクを介して親ノードに関連づけられる。親ノードは、そのすぐ下のレベルに「子ノード」の集合を有し、親ノードは１つのリンクを介して各子ノードに関連づけられる。１つの親ノードの複数の子ノードは、その親ノードを共有する。親ノードはまた、「子孫ノード」の集合を有し、該「子孫ノード」は、親ノードの子ノードとそれら子ノードの子ノードの全て等を包含する。
【００２０】
ノードリンク構造の「指数関数的に増大するブランチ」は、下位レベルにいくにつれて、ノード数がおおよそ、下位レベルのノードをブランチの最上位レベルノードに関連づけるリンク数ｍの指数関数で増大するブランチである。例えば、ブランチ内の親ノードが平均して３つの子ノード有する場合、ｍ番目の下位レベルにおけるノード数はおおよそ３ｍ  個である。
【００２１】
「有界ノード特徴」は、知覚できる境界を有するノード特徴である。有界ノード特徴の「範囲の中心」は、ノード特徴の境界内の領域範囲の中心である。従って有界ノード特徴の範囲の中心は、ノード特徴の境界から演算されたり、表現を見て評価されたりできる。
【００２２】
１つの表現における第１の有界ノード特徴に「最も近い他のノード特徴」は、第１のノード特徴の範囲の中心から任意の他の有界ノード特徴の範囲の中心までのスペーシングを越えない距離だけ、第１のノード特徴の中心から離間された中心を有する第２の有界ノード特徴である。ここではこの距離をノード特徴の「最も近いノードスペーシング」と呼ぶ。有界ノード特徴は、最も近い他のノード特徴を１つより多く有することもあり、その全ては、最も近いノードスペーシングだけ離れた所に範囲の中心を有する。
【００２３】
第１の領域における最も近いノードスペーシングが第２の領域におけるそれよりも概して大きいと観察者が認めることができる場合には、第１の領域における有界ノード特徴は、第２の領域における有界ノード特徴よりも「概して知覚的に大きい」最も近いノードスペーシングを有する。有界ノード特徴が、１つの表現の中の他の領域における最も近いノードスペーシングよりも概して知覚的に大きい「最も近いノードスペーシング」を有する領域は、「より大きいスペーシングの領域」と呼ばれることが可能である。
【００２４】
ノードリンク構造の表現においては、親ノード特徴及び子ノード特徴のディスプレイ位置と、それらのディスプレイ位置が得られた方法がわかっていて、子の子孫が領域の外周から最小スペーシングより遠くに位置する可能性が小さければ、親ノード特徴のディスプレイ位置と子ノード特徴のディスプレイ位置との間の関係は、「子孫ノードのいずれもが領域の外周から最小スペーシングより遠くにある可能性は小さい」ということになる。例えば、以下に述べる実行では、２つのディスプレイ位置の関係が、子ノード特徴のディスプレイ位置が親ノード特徴のディスプレイ位置と同じ位外周に近接しているような関係であるかどうかの可能性を検査する。
【００２５】
「負の曲率を有する空間」は、平行な線が発散する空間である。従って、所与の直線上にない負の曲率を有する空間における任意の位置を介すれば、所与の直線に平行な他の直線が複数ある。負の曲率を有する空間の一例は、双曲的なｎ次元空間である。「双曲面」は、双曲的な２次元空間である。
【００２６】
連続空間の「ディスクリートな（離散的）近似」は、空間内の各位置が連続空間に対する連続した範囲の数の部分集合により一義的に特定されることができる空間であり、該部分集合は、ディスクリートな近似での位置が、連続空間と比較した場合に限られた精度で特定されることのみが可能である。例えば、連続空間における位置が実数により特定されることができる場合には、ディスクリートな近似での位置は、整数又はｎビット数等によってのみ特定されることが可能である。
【００２７】
各位置が複数の位置のうち隣接する位置に対してよりも弧に対しての方がより近接しているというように、楕円や円の弧がレイアウト空間内に存在することができる場合には、データ項目は「円に略沿った」位置又は「弧に略沿った」位置を示す。円に略沿った隣接位置同士は、レイアウト空間における隣接位置同士間の距離が、基底スペーシングの大きさの水準内にある場合には、略基底スペーシングだけ離間される。
【００２８】
位置が円に対してよりも円の中心に対しての方がより近接する場合には、データ項目は、レイアウト空間において「円の略中心」にある位置を示す。
【００２９】
２つ以上の親ノードを含み、その各々に対してデータ項目が、円に略沿って親ノードを共有する子ノードの位置と該円の略中心にある親ノードの位置とを示すブランチ内において、円の半径と、円に沿って隣接する子の位置との間のスペーシングとの最大及び最小のものが、互いの大きさの水準内にある場合には、その半径及びスペーシングは、「ブランチ内で全て略均一」である。円は半径を有し、各数の子ノードを有する円の半径の平均長が、単調な正のスロープを有すると共にそのスロープが子の数の増加と共に減少する関数を近似する曲線を形成する場合に、該半径は「下位レベルノードの数と共にゆっくりと増大する関数を近似する」。
【００３０】
図１〜図５は、本発明の概括的な特徴を示す。図１は、ノードリンク構造を規定するノードリンクデータを用いて、負の曲率を有するレイアウト空間における位置を示すレイアウトデータを得、それにより２つ以上の異なるマッピングが行われることのできる方法を示す。図２は、ノードリンクデータを用いて、図１のようにレイアウトデータを得てマッピングを達成することにおける概括的な動作を示す。図３は、第１及び第２の表現を以下のように表すことのできる方法を示す；第２の表現は、第１の表現での第１のディスプレイ位置から第２のディスプレイ位置への変更を示すユーザからの信号に応答して、自動的に示されることができる。図４は、第１及び第２の表現を図３のように表すことにおける概括的な動作を示す。図５は、図１で示されるようにレイアウトデータを得ることができると共に、それを使用してマッピングを達成することができ、図３で示されるように第１及び第２の表現を表すことのできるマシンの概括的な構成要素を示す。
【００３１】
図１において、ノードリンクデータ１０は、ノードリンク構造（一部が図示される）を規定する。示されるように、ノードリンク構造２０は、ノードと、ノードに関連するリンクとを含む。図１は、ノードリンク構造２０の指数関数的に増えるブランチを示し、最上位レベルノード２２は、１つのリンクを介して下位レベルノード２４、２６、及び２８に関連づけられている。破線で示されるように、下位レベルノード２４、２６、及び２８のそれぞれは、その次に下位レベルの３つのノードに関連づけられる。この増加率が続けば、指数関数的に増加するブランチの下位レベルにおけるノード数は略３ｍ  個であり、ここでｍは、そのレベルにおけるノードを最上位レベルノード２２に関連づけるリンク数である。図１で示されるように、２次元のユークリッド平面において指数関数的に増加するブランチをレイアウトすることは困難である。
【００３２】
しかしながらレイアウトデータ３０は、ノードリンク構造２０の指数関数的に増加するブランチにおけるノードの、負の曲率を有する空間３２における位置を示す。空間３２は、レイ３６とレイ３８の間で頂点から延びるウェッジの該頂点に最上位レベルノード２２の位置３４を有するように、概括的に図示される。この最上位レベルウェッジは、最上位レベル２２に割り当てられたものである。下位レベルノード２４、２６、及び２８は、円４８に略沿った位置４２、４４、及び４６を有することができ、空間３２における円４８の中心はおおよそ、最上位レベルウェッジの頂点である位置３４にある。
【００３３】
位置４２、４４、及び４６は全て、最上位レベルウェッジ内にあり、より下位レベルにある、最上位レベルノード２２の全ての子孫もまた、最上位レベルウェッジ内に位置することができる。例えば、指数関数的に増加するブランチの、次に下位レベルにあるノードも同様に、空間３２におけるその中心がほぼ、位置４２、４４、及び４６にあるそれぞれの円に沿って、位置されることができる。空間３２は負の曲率でカーブしているので、下位レベルノード２４、２６、及び２８の各々は、たとえ下位レベルウェッジが互いにオーバーラップしなくても、レイ３６及び３８が位置３４から発散するのと略同じ角度でウェッジの頂点から分岐するレイ同士の間に下位レベルウェッジを割り当てられることができると共に、その全ては最上位レベルウェッジ内に含まれる。
【００３４】
円４８上で隣接する子位置４２及び４４は、距離ｄ１  だけ離間されており、隣接する子位置４４及び４６は、距離ｄ２  だけ離間されている。距離ｄ１  又はｄ２  の各々は基底スペーシングに略等しく、円４８の半径ｄ０  とブランチ内の他の円の半径は共に、半径と、円に沿って隣接する子位置同士間のスペーシングとが全てブランチ内で略均一であるように、下位レベルノードの数と共にゆっくりと増大する関数を近似する。
【００３５】
図１で示されるように、レイアウトデータ３０は、２つ以上の異なるマッピングを実行するように使用されることができる。０番目にマッピングされたデータ５０とＮ番目にマッピングされたデータ５２で示されるように、マッピング毎にマッピングデータが得られる。各マッピングにより得られたマッピングデータは、ノードリンク構造２０におけるノードの部分集合の位置を示す。例えば位置は、ディスプレイ位置、又はレイアウト空間とは別の空間における位置であることが可能である。
【００３６】
図２において、ボックス６０における動作は、ノードリンク構造を規定するノードリンクデータを得ることにより開始する。ノードリンク構造は、ノード及びリンクを含み、各リンクは少なくとも２つのノードに関連づけられる。
【００３７】
ボックス６２の動作は、ボックス６０で得られたノードリンクデータを使用して、負の曲率を有するレイアウト空間における、ブランチ中のノードの位置を示すレイアウトデータを得る。親ノード集合中の各々に対しては、親ノードを共有する子の位置は、ほぼ親ノードの位置にその中心をおく円にほぼ沿っており、隣接する子ノード同士は、略基底スペーシングだけ離間される。ブランチ内の複数の円の半径は共に、親を共有する子ノードの数と共にゆっくりと増加する関数を近似するので、半径と、円に沿って隣接する子位置同士間のスペーシングとは全て、ブランチ内で略均一である。
【００３８】
ボックス６４における動作は次に、ボックス６２からのレイアウトデータを使用して、少なくとも２つの異なるマッピングに対してマッピングデータを得る。各マッピングに対して得られたマッピングデータは、ノードの部分集合の位置を示す。
【００３９】
図３において、レイアウトデータ７０は、ノードリンク構造の部分（複数）の、負の曲率を有するレイアウト空間における位置を示す。レイアウトデータ７０は、ノードリンク構造の第１の表現７４を有する画像７２を表すように用いられる。画像７２は、マウスや他のポインタ制御デバイスにより制御されてディスプレイ位置を示す信号を提供することのできるポインタ７６を含むように図示される。
【００４０】
図３の破線で示されるように、第１のディスプレイ位置から第２のディスプレイ位置への変更を示す信号７８をユーザが提供する前に、不特定の時間が経過する。第１の表現７４は、第１のディスプレイ位置付近にノードリンク構造の第１の部分を表す第１の特徴を有する。例えば、ノード特徴８０、８２、及び８４のうちの１つが、第１のディスプレイ位置付近にあることが可能である。
【００４１】
信号７８に応答して、画像８６は、ノードリンク構造の第２の表現８８を有するように示される。第２の表現８８は、第１の表現７４の変更された継続として知覚される。
【００４２】
第２の表現８８では、ノードリンク構造の第１の部分を表す第２の特徴は、第２のディスプレイ位置付近にある。例えば、第１の表現７４におけるノード特徴８０が第１のディスプレイ位置付近にあったとして、ノード特徴９０が同一ノードを示すとすれば、第２のディスプレイ位置は、ノード特徴８０の位置からノード特徴９０の位置へのドラッギング信号により指示されたということができる。同様に、ノード特徴９２及び９４がそれぞれ、ノード特徴８２及び８４と同一のノードを示すとすれば、第２のディスプレイ位置は、ノード特徴８２又はノード特徴８４の位置からそれぞれ、ノード特徴９２又はノード特徴９４の位置へのドラッギング信号により指示されることができたといえる。また、ノード特徴８２からノード特徴９２へとサイズが増していることにより示される通り、より大きいスペーシングの領域の中心に第２の位置を示すように、第１の表現７４のノード特徴８２上でクリックすることにより、第２のディスプレイ位置が指示されることができたといえる。
【００４３】
図４は、図３で示されたオペレーションを実行する概括的な動作を示す。ボックス１２０の動作では、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータが得られる。
【００４４】
ボックス１２２の動作は、ボックス１２０からのレイアウトデータを用いて、ノードリンク構造の第１の表現を表示する。第１の表現は、ノードリンク構造の第１の部分を示す第１の特徴を含み、該第１の特徴は第１のディスプレイ位置付近にある。
【００４５】
破線で示されるように不特定の時間経過後、ボックス１２４の動作は、第１のディスプレイ位置から第２のディスプレイ位置への変更を示す、ユーザからの信号を受け取る。
【００４６】
ボックス１２６の動作は、ノードリンク構造の第２の表現を表すことにより、ボックス１２４の信号に応答する。第２の表現は、ノードリンク構造の第１の部分を示す第２の特徴を含む。この第２の特徴は、第２のディスプレイ位置付近にある。
【００４７】
図５のマシン１５０は、ユーザ入力回路１５４からユーザのアクションを示すデータを受け取るように、そして画像を規定するデータをディスプレイ１５６に提供するように接続されるプロセッサ１５２を含む。プロセッサ１５２はまた、ノードリンクデータ１５８をアクセスするようにも接続され、該ノードリンクデータは、図２に関して上述したようにノードリンク構造を規定する。プロセッサ１５２は、命令入力回路１６２を介して命令を指示する命令データ１６０を受け取るようにも接続され、この命令入力回路１６２は、この図では、メモリ１６４、記憶媒体アクセスデバイス１６６、又はネットワーク１６８への接続から受け取られた命令を提供することができる。
【００４８】
命令データ１６０により示された命令を実行する際、プロセッサ１５２はノードリンクデータ１５８を用いて、図２のボックス６２と図４のボックス１２０で示されたように、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータを得る。次にプロセッサ１５２は、レイアウトデータを用いて、図４のボックス１２２で示されたように、ディスプレイ１５６上にノードリンク構造の第１の表現を表示するが、これは、図２のボックス６４で示されたように、ディスプレイの１つの領域に対してノードの部分集合の第１のマッピングを行うことにより、実行されることができる。プロセッサ１５２がユーザ入力デバイス１５４からユーザ信号を示すデータを受け取り、その信号が、図４のボックス１２４のように第１のディスプレイ位置から第２のディスプレイ位置への変更を示すものである場合には、プロセッサ１５２は、ノードリンク構造の第２の表現を自動的にディスプレイ１５６上に表示することができ、この場合、第１のディスプレイ位置付近にあった特徴の位置は、図４のボックス１２６で示されるように、第２のディスプレイ位置に変更されることとなる。第２の表現は、図２のボックス６４で示されたように、第２のマッピングを実行することにより表示されることができる。
【００４９】
上述のように、図５は、命令入力回路１６２が、命令を示すデータを受け取ることのできる３つの可能なソース、即ちメモリ１６４、記憶媒体アクセスデバイス１６６、及びネットワーク１６８を示している。
【００５０】
メモリ１６４は、ランダムアクセスメモリ（ＲＡＭ）や読出し専用記憶素子（ＲＯＭ）を含むマシン１５０内の任意の従来のメモリ、又は任意の種類の周辺若しくは遠隔メモリであることが可能である。
【００５１】
記憶媒体アクセスデバイス１６６は、記憶媒体１７０をアクセスするドライブ又は他の適切なデバイスであることが可能である。記憶媒体１７０は例えば、１つ以上のテープ、ディスケット、若しくはフロッピーディスク等の磁気媒体；１つ以上のＣＤ−ＲＯＭのセットのような光媒体；又はデータを記憶するための他の任意の適切な媒体；であることが可能である。記憶媒体１７０は、マシン１５０の一部；サーバ又は他の周辺若しくは遠隔メモリデバイスの一部；又はソフトウェア製品の一部；であることが可能である。これら全ケースにおいて、記憶媒体１７０は、マシン１５０で使用されることのできる工業製品である。データユニットが記憶媒体１７０上に位置づけられることができるので、記憶媒体アクセスデバイス１６６は、データユニットをアクセスすることができると共に、命令入力回路１６２を介してプロセッサ１５２にそれらを連続して提供することができる。連続して提供されると、データユニットは、命令データ１６０を形成し、示されるような命令を指示する。
【００５２】
ネットワーク１６８は、マシン１８０から受け取られた命令データ１６０を提供することができる。マシン１８０におけるプロセッサ１８２は、ネットワーク接続回路１８４を介してネットワーク１６８を経て、命令入力回路１６２との接続を確立することができる。どちらのプロセッサも、接続を開始することが可能であり、接続は、任意の適切なプロトコルにより確立されることができる。プロセッサ１８２は、メモリ１８６に格納された命令データをアクセスし、この命令データをネットワーク１６８を経てプロセッサ１５２に伝送することができ、その結果プロセッサ１５２が、ネットワーク１６８から命令データを受け取ることができる。命令データ１６０は、プロセッサ１５２によりメモリ１６４若しくは他の場所に格納されることができると共に、実行されることができる。
【００５３】
上述の概括的な特徴は、種々のマシンにおいて多数の方法で実行され、負の曲率を有するレイアウト空間におけるノードリンク構造の部分の位置を示すレイアウトデータが得られ且つ使用されることができる。以下に述べる実行は、ＵＮＩＸ／Ｘオペレーティングシステムを実行するＳｕｎＳＰＡＲＣＳｔａｔｉｏｎにおいて実行した。それとは別に、アップルマッキントッシュ（Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  ）のパーソナルコンピュータにおいても実行した。ＵＮＩＸでの実行では、コモンＬＩＳＰインタフェースマネージャ（ＣＬＩＭ）を付けて拡張されたコモンＬＩＳＰプログラミング環境において書かれた命令を実行する。コモンＬＩＰＳ環境及びＣＬＩＭ拡張は、ルシッド・インコーポレイテッド（Ｌｕｃｉｄ  Ｉｎｃ．）及びフランツ・インコーポレイテッド（Ｆｒａｎｚ  Ｉｎｃ．）から購入することができる。
【００５４】
図６は、本発明を実行したシステムの構成要素を示す。
【００５５】
図６のマシン２００は、中央処理ユニット（ＣＰＵ）２０２、マイクロプロセッサ、又は適切なプロセッサを含む。ＣＰＵ２００は、キーボード２０４及びマウス２０６を含むように図示されるユーザ入力デバイスから、ユーザ信号を示すデータを受け取るように、接続される。ＣＰＵ２０２はまた、ディスプレイ２０８上に画像を表示させるデータを提供するように、接続される。ディスプレイ２０８に表示される画像は、マウス２０６や別のポインタ制御デバイスにより制御されるポインタ２１０を含むことができる。
【００５６】
ＣＰＵ２０２は、メモリ環境２２０を共に提供する１つ以上のメモリ構成要素に接続される。メモリ構成要素は従来的に、ＣＰＵ２０２に直接接続される常駐ＲＡＭ、内部バスを介してＣＰＵ２０２に接続される１つ以上の内部ディスクドライブ若しくは他の記憶媒体アクセスデバイス、そして、記憶媒体アクセスデバイスを含むと共に、マシン２００の外部接続を介してＣＰＵ２０２に接続される周辺デバイス若しくは遠隔サーバ等の１つ以上の外部メモリ構成要素、を包含する。ＣＰＵ２０２は従来的に、アドレスを提供することにより、メモリ環境２２０中の任意のメモリ構成要素に格納されたデータをアクセスする。
【００５７】
図６は、メモリ環境２２０に格納されるプログラム構成要素とデータ構成要素を示す。プログラム構成要素とデータ構成要素は別々に図示されているが、所与のメモリ構成要素内に別々に格納される必要はない。プログラム構成要素は、ＣＰＵ２０２が実行することのできる命令を示すデータを含むとともに、目的コードフォーム又はソースコードフォームで格納されることができる。適切であれば、プログラム構成要素は、ソースコードフォームで格納されたプログラム構成要素から命令を得るのに必要な、任意のコンパイラ及びインタプリタを含むことも可能である。プログラム構成要素により示された命令を実行する際、ＣＰＵ２０２はデータ構成要素をアクセスして使用する。
【００５８】
オペレーティングシステムプログラム２３０により示された命令を実行する際、ＣＰＵ２０２は、ＣＰＵ２０２とマシン２００の他の構成要素との間でデータを伝送するオペレーションを実行する。このようなオペレーションには、例えば、ＣＰＵ２０２のメモリスペース中の論理アドレスを物理アドレスにマッピングして、メモリ環境２２０中のメモリ構成要素をアクセスすること等が含まれる。
【００５９】
ＣＬＩＭライブラリ及びユーザインタフェース拡張を含むコモンＬＩＰＳ環境プログラム２３２により示された命令を実行する際、ＣＰＵ２０２は、フランツ・インコーポレイテッド（Ｆｒａｎｚ  Ｉｎｃ．）から入手可能なＣＬＩＭ２．０仕様において規定される標準ＣＬＩＭインタフェースを提供する。その結果、ＣＰＵ２０２が、ＣＬＩＭソースコードを実行することができるので、走査検索（ｂｒｏｗｓｅｒ  ）インタフェースプログラム２３４及び双曲ジオメタリプログラム２３６は、ＣＬＩＭを付けて拡張されたコモンＬＩＳＰで実行されることができる。
【００６０】
走査検索インタフェースプログラム２３４により指示された命令を実行する際、ＣＰＵ２０２はまず、マシン２００を初期化する。ＣＰＵ２０２は、ノードリンク構造を規定するノードリンクデータ２４０を用いて、双曲面におけるノードリンク構造の部分の位置を示すレイアウトデータ２４２を得る。ＣＰＵ２０２は、レイアウトデータ２４２を用いて、ノードリンク構造の初期表現に対するマッピングデータ２４４を得る。ＣＰＵ２０２がディスプレイ２０８にデータを提供すると、ディスプレイに初期表現が表示される。
【００６１】
走査検索インタフェースプログラム２３４により示された命令を実行する際、ＣＰＵ２０２はまた、キーボード２０４及びマウス２０６から、ユーザ信号のイベントを示すデータを受け取る。ＣＰＵ２０２は、イベント待ち行列データ２４６をアクセスすることにより、イベントに応答するステップの待ち行列をセットアップし、維持し、そしてハンドルする（処理する）。ユーザ信号イベントに応答するステップが完了すると、ＣＰＵ２０２は次のイベントに応答するステップをセットアップすることができる。
【００６２】
走査検索インタフェースプログラム２３４により示された命令を実行する際、ＣＰＵ２０２はまた、アニメーションパラメータデータ２４８をアクセスすることにより、アニメーションパラメータを修正することができる。あるいはＣＰＵ２０２は、レイアウトデータ２４２を用いて、ノードリンク構造の変更された表現に対するマッピングデータ２４４を得ることができ、ディスプレイ２０８にデータを提供して、変更された表現をディスプレイに表示させる。
【００６３】
ＣＰＵ２０２は、レイアウトデータ２４２を得るため、マッピングデータ２４４を得るため、ポインタ２１０の位置からノードリンク構造の一部分にマッピングするため等、多様な目的のために、双曲的ジオメトリプログラム２３６により示された命令を実行することができる。図６で示されるように、表現は、その上にフィギュア２５２が示される背景２５０を含むことができ、フィギュア２５２内でポインタ２１０の位置は、例えば最も近いノードにマッピングされることができる。
【００６４】
上述したＣＰＵ２０２のオペレーションを多くの方法で実行して、負の曲率を有する空間においてレイアウトされたノードリンク構造に対して走査検索（ｂｒｏｗｓｅｒ  ）を提供することが可能である。図７は、図６のマシンが如何にして、エッジに近すぎないノードの位置を変換することにより走査検索を提供することができるかを示す。図８は、図６のマシンが如何にして、全ノードのレイアウトデータを連続的に変換することにより走査検索を提供することができるかを示す。
【００６５】
図７及び図８の概括的なアプローチは、ノードの位置がレイアウト空間において変換され、次にレイアウト空間からディスプレイ位置へのマッピングにより表現が表示されることができる、ということである。上述のように、レイアウト空間は、双曲面又は負の曲率を有する別の適切な空間であることが可能である。双曲面とディスプレイ領域の間のマッピングを容易にするために、ディスプレイ位置は、円形のディスプレイ領域内の位置であることが可能である。
【００６６】
図７のボックス２６０の動作は、ノードリンク構造中の各ノードに対するレイアウト空間における位置を示すレイアウトデータを得る。レイアウト空間は、例えば双曲面であることが可能である。ボックス２６０の動作はまた、レイアウトデータにおいて実行されることのできる現行変換を初期設定して、変換位置を得る。初期現行変換は例えば、レイアウト空間におけるノードの位置を変更しないヌル変換であることが可能である。
【００６７】
ボックス２６２の動作は次に、ボックス２６０からのレイアウトデータに現行変換を実行し、レイアウト空間における位置がエッジに非常に近いノード以外の各ノードの変換位置を示す変換データを得る。エッジは、ノードリンク構造の表現がディスプレイされた時に表示されるレイアウト空間の部分の境界となる。
【００６８】
次にボックス２６４の動作は、ボックス２６２から得られた変換位置をマッピングして、エッジに近すぎない各ノードに対するディスプレイ上の位置を得る。ボックス２６４の動作は次に、ディスプレイに表現を表示する。エッジにそれほど近くない各ノードの表現は、ノードのディスプレイ位置にノードの特徴を含む。
【００６９】
図７の破線により示されるように、ボックス２７０の動作は、不特定の時間の経過後、ボックス２６４の動作に続くことができ、この動作は、位置の変更に対する要求をユーザから受け取る。この要求は、ディスプレイ上での少なくとも１つの位置の指示を含む。
【００７０】
ボックス２７２の動作は、ボックス２７０において指示されたディスプレイ位置（単数又は複数）をレイアウト空間に再びマッピングして、レイアウト空間における開始位置及び終了位置を得る。例えば、マウスクリック等によりディスプレイ位置が１つのみ示される場合には、クリックの発生した時のポインタの位置を用いて開始位置を得ることができ、また終了位置は、レイアウト空間におけるその表現の中心の位置であることが可能である。あるいは、例えばボタンを押してその後放すことによるドラッギング動作の間に、２つのディスプレイ位置が示される場合には、ボタンを押した時のポインタの位置を用いて開始位置を得、またボタンから手を放した時のポインタの位置を用いて、終了位置を得ることができる。
【００７１】
ボックス２７４の動作は、開始位置を終了位置に移動するレイアウト空間の変換を得る。ボックス２７６の動作は、現行変換とボックス２７４からの新たな変換とを結合して、結合された変換を得る。ボックス２６２及び２６４の動作が実行されて別の表現が表示される時には、この結合された変換が現行変換となる。
【００７２】
以下に述べるように、図７の技術を実行して、ただ１つの表現ではなく、クリックに応答して一連の表現を表示した。このように変更することにより、開始位置から終了位置への連続した動作の知覚を提供することができる。
【００７３】
図８の技術は、例えばボックス２８０の動作が図７のボックス２６０の動作と同じであるといったように、図７の技術と類似する。しかしながら、重要な違いは、ボックス２８２の動作が、ボックス２６２でエッジ付近のノードとして取り扱われたものも含めて、ノードリンク構造中の各ノードの変更された位置を得るということである。よって図８の技術は、大型のノードリンク構造に対しては、図７の技術ほど有効でない。
【００７４】
ボックス２８４の動作は、図７のボックス２６４の動作と同じように、ボックス２８２からの変換された位置をディスプレイ位置にマッピングし、このディスプレイ位置を用いて、ボックス２６４と同じように表現を表示する。
【００７５】
ボックス２９０の動作は、ボックス２７０と同じように要求を受け取る。ボックス２９２の動作は、ボックス２８０からのレイアウトデータではなく、ボックス２８２からの変換されたデータであるようにレイアウトデータを先ず更新することにより、応答する。次にボックス２９２の動作は、ボックス２９０で示されたディスプレイ位置（単数又は複数）から変換されたレイアウト空間へとマッピングを行って、開始位置及び終了位置を得る。ボックス２９４の動作は、開始位置を終了位置に移動する新たな変換を得、ボックス２８２及びボックス２８４の動作が実行されて別の表現が表示される前に、現行変換を更新して、新変換とする。
【００７６】
上述の通り、図７の技術は、大型のノードリンク構造を図８の技術以上により良くハンドルするが、その理由は、エッジに非常に近いノードに対してはボックス２６２の動作が実行されないからである。図８の技術は、大型の構造に対しては実用的でないということが判った。さらに、図８の技術では変換を得る際に情報がいくらか失われるため、図７の技術の方がより正確である；それはなぜなら、図７の技術はボックス２６０からの元々のレイアウトデータを使用し続けるからである。
【００７７】
以下に述べるＣＰＵ２０２のオペレーションの実行は、図７の走査検索技術に続くものであるが、以下に述べる基本的なオペレーションを使用して、図８の走査検索技術を実行することもできる。
【００７８】
以下に述べる実行は、一様な方法でノードリンク構造を双曲面にレイアウトし、この面を円形のディスプレイ領域にマッピングする。双曲面は、平行な線が互いに離れるように発散する数学上の構築物である。これは、円の円周がその半径と共に指数関数的に増大するという便利な特性につながり、このことは、距離が増すとともに指数関数的により多くの空間を利用できるということを意味する。従って、指数関数的に増大するノードリンク構造を双曲的空間において一様な方法でレイアウトすることができれば、親、子、及び同胞の間の距離は、階層中のどの場所でも略同じである。
【００７９】
双曲面は数学上の物体であるが、双曲面は、単位円上へ自然な方法でマッピングされることができ、単位円は、２次元（ユークリッド）ディスプレイ上にそれをディスプレイする方法を提供する。このマッピングは、双曲面の起点付近の部分を他の部分よりも多くのディスプレイ空間を用いてディスプレイする。双曲面の起点から非常に遠隔の部分は、ディスプレイのエッジ付近に極小さい空間を取る。従って単位円への投影は、ノードリンク構造の一部を構造全体の構成の中に埋め込みながら、該一部により多くの空間を割り当てる固有のメカニズムを提供する。
【００８０】
双曲面上での構造の平行移動は、構造全体を見ているという錯覚を弱めることなく、構造のどの部分が最も大きい空間を得るのかを調整するメカニズムを提供する。構造はまず、そのルートをより大きいスペーシングの領域の中心にディスプレイされるが、実行は、ポインタクリックや対話式ドラッギングを用いてフォーカスを操作すると共に、かかる操作を織りまぜて移り変わり（ｔｒａｎｓｉｔｉｏｎ）をスムーズにアニメート（動画化）する有効な手続きを包含する。構造の構成は常に、親、同胞、及び子といったいくつかの世代を含んでおり、ユーザは、迷うことなく構造を探索することが容易になる。
【００８１】
以下に述べる走査検索は、従来の階層的視覚よりもずっと大きな構造との効果的な対話を支持すると共に、ロバートソン（Ｒｏｂｅｒｔｓｏｎ  ）他の米国特許第５，２９５，２４３号において述べられたもの等の他の新しい走査検索に比べて優れている。６００×６００ピクセルのウィンドウでは、標準的な２次元階層走査検索は、各々が３文字列を有する１００個のノードをディスプレイできるのが、典型的である。以下に述べる走査検索は、１０００個のノードをディスプレイすることができ、そのうちフォーカスに最も近い５０個は、３〜１２個の文字列を示すことができる。従って、１０倍に及ぶ数のノードがディスプレイされることが可能であると共に、ノードリンク構造にわたって一層有効なナビゲーションが提供されることができる。構造の部分の対象とするレベルが変化するに従って、構造を動的に歪ませてディスプレイすることにより、スケーリングの利点が得られる。
【００８２】
図９及び図１０は、レイアウトオペレーションにおける動作を示す。図９は、ＣＰＵ２０２が双曲面にノードリンク構造をレイアウトする方法を示す。図９の技術は、図７のボックス２６０の動作と図８のボックス２８０の動作を実行するように用いられることができる。図１０は、ノードの子までの距離、子の位置、ウェッジ、及びルーム（空間）の境界と、ノードの半径が図９において如何に得られることができるかを示す。
【００８３】
図９のレイアウト技術は、局所情報に基づいてノードリンク構造中の各ノードを再帰的にレイアウトする。ノードは、それ自体から外方向に向かう双曲面のウェッジを割り当てられ、該ウェッジの中にそのノードの子孫が配置されることができる。ノードの子の全ては、そのノードのウェッジの弧に沿って（即ちノードから等しい距離をおいて）配置されると共に、互いに或る最小の距離だけ離間されるに足りるだけ親ノードから離れた所に配置される。各子は、その子孫に対するサブウェッジを有する。
【００８４】
双曲的ジオメトリでは平行な線同士が発散するということにより、各子は典型的に、その親のウェッジと略同じ角度で広がるウェッジを有する。不均一な構造に対してよりコンパクトなレイアウトを得るために、それ自体が多くの子孫を有する同胞は子孫を有さない同胞よりも大きいルーム（空間）を得るように、この構造を変更する。この変更は、孫を祖父母から同じ距離でより近くに置く傾向がある。
【００８５】
図９の技術はまた、ルートノードの子の占める角度を変えることによって変更されることができる。ルートノードの子は、３６０°の円いっぱいに広げられるか、あるいは全てが円の片側に置かれることができる。いくつかのケースでは、後者の方が良い。
【００８６】
図９のボックス３５０の動作は、ノードリンクデータ中のルートノードのハンドル、双曲面の起点の座標、該ルートノードの子孫に対して利用可能な双曲面のウェッジ、及びルームの境界を用いてレイアウトオペレーションを実行するための呼出しを受け取ることにより、開始する。図９のレイアウトオペレーションは、ノードリンクデータのハンドルがルートノードのハンドルでもあるように、非循環型の階層的ノードリンク構造を規定するノードリンクデータを用いて、使用されることができる。双曲面のウェッジは、ウェッジの角度と方向により規定されることができる。オリエンテーションが放射状である場合には、ウェッジ角度は３６０°であることが可能であるので、その方向は重要でないが、例えばオリエンテーションが右方向である場合には、ウェッジ角度はより小さく（例えば１２０°）、方向がオリエンテーションを決定する。ルームの境界は、ルートノードに対して０．９に初期設定されることが可能である。
【００８７】
ボックス３５２の動作は、現在ハンドルされているノードが子を有するかどうかを調べる。子を有しておれば、ボックス３５４の動作は、以下に述べるように、双曲面において子までの距離を得る。次にボックス３６０の動作は、現行ノードの子の各々をハンドルする繰り返しループを開始する。
【００８８】
ボックス３６２の動作は、次の子ノードに対して、以下に述べるように双曲面における位置、ウェッジ、及びルーム境界を得ることによって、各ループを開始する。ボックス３６４の動作は次に、次の子のハンドルと、ボックス３６２からのその位置、ウェッジ、及びルーム境界を用いてレイアウトオペレーションに対する再帰的な呼出しを行う。ボックス３６６の動作は、再帰的呼出しからリターンし、次いでボックス３６８の動作は、現行ノードの子ノードのリストに、その子のハンドルを加える。
【００８９】
現行ノードの子の全てがハンドルされたら、ボックス３７０の動作は、ボックス３５０又はボックス３６４の呼出しにおいて受け取られたルーム境界か、あるいはボックス３５４からの、現行ノードの子までの距離の半分か、のいずれかを取ることにより、現行ノードの半径を得る。現行ノードが子を有さない場合には、ボックス３７０の動作は、ボックス３５０からのルーム境界を半径とする。
【００９０】
次にボックス３７２の動作は、現行ノードのデータ構造を形成する。現行ノードのデータ構造は、その位置とボックス３７０からのその半径を含み、現行ノードが子を有する場合には、そのノードのデータ構造はまた、ハンドル又はボックス３６８からのその子のリストに対する他のリンクを含む。データ構造はまた、他の関連する情報を含むことも可能である。次にボックス３７４の動作は、現行ノードのデータ構造のハンドルを戻すことにより、終了する。
【００９１】
図１０は、図９のボックス３５４、３６２、及び３７０の動作が如何に実行されることができるかを示す。
【００９２】
以下の記述において、１対の点同士の間の距離は、起点に１つの点を置くポアンカレモデルにおける点同士の間の距離として、符号化される。この距離は、双曲的空間における点同士間の距離の逆双曲線正接である。
【００９３】
ボックス３９０の動作は、全ノードに対して同一である基底スペーシングＳを用いて、必要とされるスペースの値を得ることによってノードの子までの距離を得ることにより、開始する。必要なスペースは、子孫が均一に離間された場合に、ノードの各子の子孫により占められることになる角度に依存する。このような角度をここでは「重み」と呼称する。各子の重みの値は、１．０とｌｎ（１．０＋Ｇｒａｎｄｃｈｉｌｄｒｅｎ  ）の大きい方を取ることにより得られることができ、ここで変数Ｇｒａｎｄｃｈｉｌｄｒｅｎ  は、ノードの子の子であるノードの孫の全てに対して、１．０とｌｎ（  １．０＋（子の数））の大きい方を合計したものに等しい。
【００９４】
必要なスペースの値を得るために、ボックス３９０の動作はまた、利用できる全角度を、現行ノードの全ての子に対する重みの合計で割ることによって、角度小片を得る。角度小片に重みの中で最小のものを乗算して角度単位αが得られる。よって必要なスペースは、（（ｓｓｉｎ２  ＋１．０）１／２  −ｓｓｉｎ）  に等しく、ここでｓｓｉｎ＝（（（  １．０−Ｓ２）／２Ｓ）（  ｓｉｎα））である。
【００９５】
ボックス３９２の動作は、ボックス３９０からの必要なスペースが、２Ｓ／（１＋Ｓ２）として計算される最小スペース（最小スペースは、基底スペーシングＳとそれ自体の双曲的合計である）より大きいかどうかを決定する。大きければ、ボックス３９４の動作は、子までの距離を必要なスペースに設定し、大きくない場合には、ボックス３９６の動作は、子までの距離を最小スペースに設定する。
【００９６】
次にボックス３９８の動作は、幅Ｗ０  の値を０に初期設定する；下位ルームの値は、ボックス３９４又はボックス３９６からの距離Ｄの双曲的な半値に初期設定されることができ、Ｄ／（１．０＋  （１．０−Ｄ２）１／２）として計算される；方向を示す値は、現行ノードのウェッジの角度幅Ｗを示す値と、単位円上の一点のｘ及びｙ座標である（Θｘ  ，Θｙ  ）の形態で現行ノードのウェッジの方向を示す値とを用いて初期設定されることができる。第１の子の方向を計算するための開始方向（Θｘ  ，Θｙ  ）は、（（（  Θｘ  （ｃｏｓ（  −Ｗ）））  −  （Θｙ  （ｓｉｎ（  −Ｗ））））という計算値を有することができる。
【００９７】
ボックス３６０の動作は、図９に関して上述したように、繰り返しループを開始する。繰り返しループの役割は、ボックス４００、４０２、４０４、及び４０６で示される。
【００９８】
ボックス４００の動作は、次の子ノードのウェッジの初期幅と方向を得、次いでこの初期幅を用いて最終幅を更新する。ボックス４００の動作はまた、利用できる次の子ノードの位置、ウェッジ、及びルームを得る。
【００９９】
ボックス４００の動作は、子の重みと角度小片（両方共にボックス３９０で得られる）の積として初期幅Ｗｎ  を得ることができる。ボックス４００の動作は、ボックス３９８又は前ループのいずれかからの（Θｘ  ，Θｙ  ）及び幅角Ｗ０  を用いて、（（（  Θｘ  （ｃｏｓ（  Ｗ０  ＋Ｗｎ  ）））  −（  Θｙ  （ｓｉｎ（  Ｗ０  ＋Ｗｎ  ））））、（（Θｙ  （ｃｏｓ（  Ｗ０  ＋Ｗｎ  ）））  ＋（  Θｘ  （ｓｉｎ（  Ｗ０  ＋Ｗｎ  ）））））  に等しい座標値を有する子の方向（Θｘ  ，Θｙ  ）を計算することができる。ボックス４００の動作は次に、初期幅Ｗｎ  の値を有するように幅Ｗ０  を更新する。
【０１００】
ボックス４００の動作は、親ノードがルートノードである場合にはボックス３５０からの、あるいは親ノードに対して実行される場合にはボックス３６４からの親ノードの位置（ｘ，ｙ）を用いて；子の方向（Θｘ  ，Θｙ  ）を用いて；そしてボックス３９４若しくは３９６からの距離Ｄを用いて；次の子ノードの位置を得ることができる。位置は、変換を用いて計算された値（ｘ，ｙ，Θｘ  ，Θｙ  ）を含む。
【０１０１】
ポアンカレモデルにより表される双曲面の厳密な変換は、点ｐ及び角度αにより決定される（ｐは変換前に起点であった点の最終位置を示し、αは回転を示す）。点（ｘ，ｙ）の変換は、（（Θｚ  ＋Ｐ）／（  Ｐ＊  Θｚ  ＋１））であり、ここで、ｚは、実部ｘと虚部ｙを有する複素数；Ｐは、ｐを表す複素数；Θは、角度α分の回転を表す大きさ１の複素数；Ｐ＊  はＰの複素共役；である。得られた値の実部及び虚部はそれぞれ、ポアンカレモデルにおいて変換された点ｐのｘ座標及びｙ座標である。
【０１０２】
共に４つの座標（ｘ，ｙ，Θｘ  ，Θｙ  ）により表される角度αのコサイン及びサインと点ｐを規定する値が得られたら、実部ｘと虚部ｙを有する複素数としてのＰと、実部Θｘ  及び虚部Θｙ  を有する複素数としてのΘを得ることにより、変換を得ることができる。
【０１０３】
従って、起点から点（ｘ，ｙ）への変換を得るには、点及び方向（ｘ，ｙ，１．０，０．０）から変換が得られることができ、ここで、座標１．０及び０．０は、右方向、即ちそれから他の方向が測定される基準方向を示す。この変換を、ここでは「起点からのトランスレータ」と呼ぶ。反対に、点（ｘ，ｙ）から起点への変換を得るには、点及び方向（−ｘ，−ｙ，１．０，０．０）から変換が得られることができる。この変換を、ここでは「起点へのトランスレータ」と呼ぶ。
【０１０４】
ボックス４００の動作は、起点から親ノードの位置への第１のトランスレータ（ｔｒａｎｓｌａｔｏｒ）を得て、次いでこの第１のトランスレータを距離Ｄのｘ及びｙ成分即ち（ＤΘｘ  ，ＤΘｙ  ）に適用することにより新たなｘ及びｙ座標を得ることができる（ここで（Θｘ  ，Θｙ  ）は、上述した子の方向である）。ボックス４００の動作は次に、新たなｘ及びｙ座標に対する起点への第２のトランスレータを得、そして子の方向（Θｘ  ，Θｙ  ）に第１のトランスレータを適用して得られたものに第２のトランスレータを適用し、（Θｘ  ，Θｙ  ）の新たな値を得る。
【０１０５】
（Θｘ  ，Θｙ  ）の新たな値は、子ノードのウェッジの方向を示す。ボックス４００の動作は、ボックス３９４又はボックス３９６からの初期幅Ｗｎ  及び距離Ｄを用いることによって、次の子ノードのウェッジの角度を得ることができる。ボックス４００の動作は、座標（Ｄ，０．０）に対する起点へのトランスレータを得、次いでこのトランスレータを  ｃｏｓＷｎ  及び  ｓｉｎＷｎ  に適用して、比Ｒを有する値を得ることができる。
【０１０６】
最後に、ボックス４００の動作は、ボックス３６４の再帰的呼出しにおいて渡されるべきルーム境界を得る際に使用されることのできるルームを得ることができる。利用可能なルームは、ボックス３９４又はボックス３９６からの距離Ｄと初期幅Ｗｎ  を用いて計算されることができる。利用可能なルームは次いで、（（ｓ２  ＋１．０）１／２  −ｓ）と計算されることができ、ここでｓ＝（（（  １．０−Ｄ２  ）／２Ｄ）／（ｓｉｎＷｎ  ））である。
【０１０７】
ボックス４０２の動作は次に、ボックス４００からの利用可能なルームが、ボックス３９８からの下位ルームより大きいかどうかに基づいて分岐する。大きい場合には、ボックス４０４の動作はルーム境界を、利用可能なルームの値に設定する。大きくない場合には、ボックス４０６の動作は、ルーム境界を下位ルームの値に設定する。
【０１０８】
次に、現行ノードの全ての子が繰り返しループによりハンドルされる（処理される）と、ボックス４１０の動作は、ボックス３５０で受け取られたルーム境界がボックス３９８からの下位ルームより大きいかどうかに基づいて分岐する。大きい場合には、ボックス４１２の動作は、ノードの半径をルーム境界の値に設定する。大きくない場合には、ボックス４１４の動作は、ノードの半径を下位ルームの値に設定する。
【０１０９】
図１０のオペレーションの結果、ブランチ内のノードは略均一なスペーシングで離間される。それはなぜなら、基底スペーシングＳは、それより小さいスペーシングが発生しない最小値であるからであると共に、他のスペーシングは、ノードの子の数と共にゆっくりとしか増加しないために、Ｓと比べてたいして大きくないということがわかるからである。
【０１１０】
図１１〜図１３は、双曲面からディスプレイ領域へのマッピングオペレーションを示す。図１１は、レイアウト空間からディスプレイ位置へのマッピングが如何に実行されることができるかを示す。図１１の技術を用いて、図７のボックス２６２及び２６４の動作を実行することができ、同じ技術を用いて、図８のボックス２８２及びボックス２８４の動作を実行することもできる。図１２は、単位円においてノードのマッピング位置が如何にして得られることができるかを示すと共に、リンク特徴を表示することにおける関連オペレーションを示す。図１３は、ノード特徴を表示することにおけるオペレーションを示す。
【０１１１】
図１１の技術は、上述の双曲面レイアウト空間から単位円へ、そして単位円から円形のディスプレイ領域へとマッピングを行う。双曲面を単位円にマッピングするには２つの標準的な方法がある。両方の方法において、双曲面における１つの近傍は円中心のフォーカスにレイアウトされ、一方双曲面の残りの部分は、円の周囲方向に遠近法的な状態で消えていく。投影（ｐｒｏｊｅｃｔｉｖｅ）マッピング即ちクレインモデル（Ｋｌｅｉｎ  ｍｏｄｅｌ  ）は、双曲面における線を単位円における線にするが、角度を歪ませる。等角（ｃｏｎｆｏｒｍａｌ  ）マッピング即ちポワンカレモデルは、角度はそのまま保持するが、双曲面における線を、単位円で弧となるように歪ませる。
【０１１２】
ｒｋ  ＝（（２ｒｐ  ）  ／（  １＋ｒｐ  ２））  に従って起点からの距離を再計算することにより、２つのマッピング間で変換を行うことは容易であり、これら両方を、走査検索の実行における使用に関して、実験によりテストした。ポアンカレモデルは、ノードにおいて扇の広がった形状を保持すると共に、スクリーンの実面積（ｓｃｒｅｅｎ  ｒｅａｌ−ｅｓｔａｔｅ）を用いることに関してより優れた仕事を行うので、ポアンカレモデルの機能の方が、より良い。加えて、ディスプレイにおける弧は、ディスプレイにマッピングする際に生じている歪みの種類を暗示する。従って、図１１の技術は、ポアンカレモデルを使用する。ポアンカレモデルの下での双曲面の厳密な変換は、単位円をそれ自体に送る複素平面での線形的部分変換（ｌｉｎｅａｒ  ｆｒａｃｔｉｏｎａｌ  ｔｒａｎｓｆｏｒｍａｔｉｏｎ）に対応する。アールフォース，エル．ブイ．（Ａｈｌｆｏｒｓ，  Ｌ．Ｖ．  ）の「複素分析（Ｃｏｍｐｌｅｘ  Ａｎａｌｙｓｉｓ）」（ＭｃＧｒａｗ−Ｈｉｌｌ，  １９６６  ）の７６〜８９頁には、線形部分変換の理論が述べられている。
【０１１３】
ポアンカレ投影は、マッピングされた円が起点から遠くなるにつれてその大きさが縮んでいくものの、双曲面上の円をユークリッド単位円上の円にマッピングする。図１１の技術は、他のどのノードの円とも交わらないように保証された、各ノードの回りの双曲面における円を計算することにより、この特性を発揮する。そのような円が単位円にマッピングされると、円は、ノードの図式的又は組織的な表現がディスプレイされることになる円形のディスプレイ領域を各ノードに対して提供する。これは、ノードが受け取る実際のスペースの量に依存してノードの異なる表現を用いるという便宜と組み合わせられることができる。
【０１１４】
図１１において、ボックス５００の動作は、図９のボックス３５０の動作と同じく、ノードリンク構造のルートノードのハンドルと共にマッピングに関する呼出しを受け取る。ボックス５００の動作はまた、現行トランスレータと呼ばれる変換；リンク機能と呼ばれる、リンク特徴を表すための機能；ノード機能と呼ばれる、ノード特徴を表す機能；ノード特徴を表す際にノードがエッジに近すぎないかどうかを決定するために使用される限界値；を受け取る。例えば、呼出しがアニメートされる画像のシーケンス中に行われれば、限界値は０．０７であることが可能であり、そうでない場合には、マッピングが実行されている円形のディスプレイ領域の半径の逆数を得ることにより計算して、限界値はピクセルの大きさであることが可能である。満足できるアニメーションが必要な場合には、限界値は、表現をレンダリング（ｒｅｎｄｅｒ）するのに必要な時間を減少するように調整されることができる。
【０１１５】
ボックス５０２の動作は、前のノード特徴の位置を示す変数や、単位円の外周からの、上記前の位置の半径方向のギャップを示す変数を含めて、複数の変数を初期設定することにより、マッピングを開始する。ボックス５０２の動作は以下に述べるように、限界値等の、アニメートされる表現のシーケンス内で使用されるべき値を、予め計算することができる。
【０１１６】
ボックス５０４の動作は、以下に述べる技術を用いて、単位円における現行ノードのマッピング位置（ｘ，ｙ）を得ることにより、図１１においてＤｏＮｏｄｅと呼称される再帰的オペレーションを開始する。マッピング位置は、レイアウト空間における現行ノードの逆像である。ボックス５０６の動作は次いで、現行変換を用いて、ボックス５０４からの位置を前ノード特徴の位置に連結する線として実行されたリンク特徴を表示する。
【０１１７】
ボックス５１０の動作は、ボックス５０４からの位置によりノード特徴が表されることができるかどうかを決定する。これは、ボックス５０４からの位置の半径方向ギャップを計算し、次にそれをボックス５０２からの予め計算された限界値と比較して、それが単位円の外周に近すぎる位置でないかどうかを決定することにより実行される。ＤｏＮｏｄｅ内での計算を減少するために、半径方向ギャップを（１．０−（ｘ２  ＋ｙ２  ））と計算する；それはなぜなら、（ｘ２  ＋ｙ２  ）の値は別の目的のためにも計算されなければならないからである。ボックス５０２の動作は、ボックス５００からの限界値を用いて、予め計算される限界値（１．０−（１．０−限界値）２  ）を得ることができる。半径方向ギャップが予め計算された限界値より小さい場合には、ボックス５０４からの位置は、単位円の外周に近すぎるということになる。
【０１１８】
ボックス５０４からの位置が外周に近すぎる場合には、ボックス５１０の動作は、半径方向ギャップを前位置の半径方向ギャップの９５％と比較して、その子が現在の位置よりも単位円の外周から遠くにあり得る状態で、その親からの方向に存在するかどうかを決定する。ボックス５１０の動作が、位置及び方向が両方共によくないことを見い出せば、ＤｏＮｏｄｅは終了する。しかし、現在の位置が単位円の外周に近すぎない場合や、その子が現位置よりも外周から遠くにあり得るような場合には、現行ノードを表すノード特徴が表示され得るので、ボックス５１２の動作は、その子の各々をハンドルする（処理する）繰り返しループを開始する。
【０１１９】
ＤｏＮｏｄｅに対して再帰的呼出しを繰り返し行う際、ボックス５１４の動作は、前ノード特徴の位置をボックス５０４からの位置にセットすることにより、そして前位置の半径方向ギャップをボックス５１０で計算された半径方向ギャップにセットすることにより、各ループを開始する。これらの値は、ループ内で局所的にセットされる。次にボックス５１６の動作は、次の子に対してＤｏＮｏｄｅを子のハンドルとボックス５０４からの親の位置と共に呼び出す。ボックス５１８の動作は、ＤｏＮｏｄｅからリターンする。
【０１２０】
全ての子がハンドルされて各々が単位円におけるマッピング位置を有すると、ボックス５２０の動作は、ＤｏＮｏｄｅが終了する前に現行ノードのノード特徴を表示する。従ってノード特徴は、ボックス５０６で表されたリンク特徴の上に描かれる。ノード特徴は、レイアウト空間におけるノードの位置と半径を用いて配置され、ディスプレイ面においてマッピング領域を得ることができ、このマッピング領域は、後述するように中心及び半径により規定される。ウェーハ変数がある場合には、ノード特徴は、その中心に中心を置くテキストと半径を有する円を含むが、テキスト変数がある場合には、ノード特徴は、その中心に中心を置くテキスト及び矩形を含む。
【０１２１】
ボックス５０６及びボックス５２０の動作はそれぞれ、ディスプレイ２０８上に特徴を表示することを含む。これらの動作は、従来のディスプレイドライバ技術を用いて、使用されている指定ディスプレイシステムに適切なように実行されることができる。一般に、これらの動作は、単位円位置からディスプレイ位置への一定の変換を行う。
【０１２２】
図１２は、ボックス５０４及びボックス５０６の動作が実行されることのできる方法を示す。
【０１２３】
ボックス５４０の動作は、ＤｏＮｏｄｅ呼出しをノードのハンドルと親の変換位置と共に受け取る。ノードがルートノードである場合には、親の変換位置は、それ自身の変換位置とされる。そうでない場合には、親の変換位置は、以下に述べられるように現行トランスレータを適用することにより以前に得られたものである。
【０１２４】
ボックス５４２の動作は、ノードのハンドルを使用して、レイアウト空間におけるその位置を得るが、該位置は、図９のボックス３７２に関して述べたようにノードのデータ構造から得られることができる。ボックス５４４の動作は次に、ボックス５００からの現行トランスレータをボックス５４２からのノード位置に適用して、レイアウト空間における変換位置を得る。トランスレータは、図１０のボックス４００に関して上述したように得られることができる。
【０１２５】
ボックス５００からのリンク機能は、ボックス５４０からの親の位置と、ボックス５４４からの変換位置と共に呼び出されて、図１２における残りの動作が実行されることができる。リンク機能は、親の変換位置と現行ノードの変換位置とを用いてマッピング位置を得ることにより、ボックス５４６において開始する。この実施の形態では、ウィンドウの左上の角から（Ｒｄ  ，Ｒｄ  ）に中心を置く半径Ｒｄ  の円形のディスプレイ領域へとマッピングされると、各座標ｃのマッピングは、（ｃＲｄ  ＋Ｒｄ  ＋０．５）の下のフロア（ｆｌｏｏｒ  ）を計算することにより、得られることができる。このマッピングは、レイアウト空間から単位円へのインプリシットなマッピングを含み、それは、レイアウト空間における位置の座標を単位円での位置のｘ座標及びｙ座標として得ることにより実行される。次いで単位円位置が、上記計算によりディスプレイ位置にマッピングされる。
【０１２６】
リンク機能は、弧であるリンク特徴をディスプレイすることが適切であるかどうかを決定することにより、ボックス５５０で継続する。弧は、例えば、アニメーションシーケンス中には適切であり得ない；それはなぜなら、弧が付加的な計算を必要とするからである。あるいは、ボックス５４６からのマッピング位置同士間の差が小さい場合に弧は適切であり得ないので、弧はいずれにしても略線として現れるであろう。弧が適切でない場合には、ボックス５５２の動作は、ボックス５４６からのマッピング位置を連結する直線を引く。
【０１２７】
弧が適切である場合には、ボックス５５４の動作は、ボックス５４０からの親の位置（ｘｐ  ，ｙｐ  ）とボックス５４４からの変換位置（ｘｔ  ，ｙｔ  ）とを使用して、ディスプレイ空間における弧の曲率半径を計算することにより開始する。ボックス５５４の動作は、２つの点を通ると共に９０度で境界円と交わる弧の曲率の中心を得ることにより、実行されることができる。これは、レイアウト空間における２つの点同士の間の線からマッピングされた弧である。次に計算により、曲率半径を得ることができる。
【０１２８】
ボックス５５４の動作は、ｄ＝２（ｘｐ  ｙｔ  −ｘｔ  ｙｐ  ）という値をまず得て、次いでａ＝（（１＋ｘｔ  ２  ＋ｙｔ  ２  ）／ｄ）  とｂ＝（（１＋ｘｐ  ２  ＋ｙｐ  ２  ）／ｄ）  という２つの値を得ることができる。曲率の中心は、ｘｃ  ＝ｂｙｔ  −ａｙｐ  、ｙｃ  ＝ａｘｐ  −ｂｘｔ  であるような点（ｘｃ  ，ｙｃ  ）である。曲率半径は、曲率の中心から、親の変換位置（ｘｐ  ，ｙｐ  ）か現行ノードの変換位置（ｘｔ  ，ｙｔ  ）のいずれかまでの距離として、計算されることができる。
【０１２９】
ボックス５５６の動作は、ボックス５５４からの曲率半径が正確なドローイング（ｄｒａｗｉｎｇ  ）に対して大きすぎないかどうかを決定する。大きすぎる場合には、ボックス５５２の動作は、上述のように直線を引く。しかしながら、半径が十分に小さい場合には、ボックス５５８の動作は、従来の計算を用いて、ボックス５５４で計算されたように、ディスプレイ上に弧を描く。
【０１３０】
ボックス５５２の動作又はボックス５５８の動作の後、図１２の技術は図１１のボックス５１０に戻る。
【０１３１】
図１３は、図１１のボックス５２０の動作が実行されることのできる方法を示す。
【０１３２】
図１３のボックス５７０の動作は、ノード特徴を表示することが適切であるかどうかを検査することにより開始する。この動作は、ノード特徴がディスプレイされるべきことを示すようにパラメータが設定されるのかどうか、又はアニメーションシーケンスに対しては、ノード特徴がアニメーションの間にディスプレイされるべきではないことを示すようにパラメータが設定されるのかどうか、を決定することを含む。ノード特徴の表示が適切でない場合には、ＤｏＮｏｄｅは終了する。
【０１３３】
ノード特徴の表示が適切である場合には、ボックス５７２の動作は、ボックス３７２に関して述べられたデータ構造からの現行ノードの位置及び半径を使用して、単位円における中心位置と単位円内半径を得る。中心位置のｘ及びｙ座標は、各々に（（１．０−ｒｊ  ２  ）／（  １．０−（  ｘ２  ＋ｙ２  ）  ｒｊ  ２  ））を乗算することにより得られることができ、ここで、ｒｊ  は現行ノードの半径であり、例えば０．９より小さい数を乗算されることにより、ノード同士間にギャップを付加するように任意に調整される。ボックス５７２の動作は、半径ｒｊ  に（（１．０−（  ｘ２  ＋ｙ２  ））／（１．０−（  ｘ２  ＋ｙ２  ）  ｒｊ  ２  ））を乗算して、単位円内半径ｒｕ  を得ることができる。
【０１３４】
次にボックス５７４の動作は、ボックス５７２からの中心位置と単位円内半径ｒｕ  を用いて、ディスプレイ上の対応する円を囲む境界ボックスの左上の角にディスプレイ位置を得るとともに、ディスプレイ上の対応する円の直径を得る。左上角のｘ及びｙ座標はそれぞれ、座標ｃを用いて、（Ｒｄ  （ｃ−ｒｕ  ）＋Ｒｄ  ＋０．５）の下のフロアを計算することにより、得られることができる。直径は、値（Ｒｄ  （  ｘ＋ｒｕ  ）＋Ｒｄ  ＋０．５）の下のフロアと、値（Ｒｄ  （ｘ−ｒｕ  ）＋Ｒｄ  ＋０．５）の下のフロアとの間の差として得られることができる。
【０１３５】
次にボックス５７６の動作は、ボックス５７４からの大きさに合うキャラクタの総数を得る。総数は、サイズにおけるフロアファンクションとキャラクタサイズに関して得られることができる。ボックス５８０の動作は、総数が２より大きいかどうかにより分岐する。２より小さければ、ＤｏＮｏｄｅは、意味のあるテキストを表現するのにサイズが不十分であるため、終了する。
【０１３６】
総数が２より大きい場合には、ボックス５８２の動作は、テキストの位置を得る。例えばｘ座標は、マッピングされたサイズと、そのノードのテキスト中のキャラクタの数とキャラクタサイズとの積と、の差の半分とマッピングされたｘ座標との合計であることが可能である。ｙ座標は、（Ｒｄ  ｙ＋Ｒｄ  ＋０．５）の下のフロアであることが可能であり、ここでｙはボックス５７２からの中心のｙ座標である。
【０１３７】
次にボックス５９０の動作は、ウェーハが表示されるべきか矩形が表示されるべきかに基づいて分岐する。ウェーハの場合には、ボックス５９２の動作は、ボックス５７４からのマッピング位置に円を描く。矩形の場合には、ボックス５９４の動作は、テキストの回りに合う矩形を、ボックス５８２からの位置に描く。次に、ボックス５９６の動作は、ＤｏＮｏｄｅが終了する前にボックス５８２からの位置にテキストを描く。
【０１３８】
以下に述べるように、図１１〜図１３の技術は、位置の変更に対する要求に応答して使用されることもできる。
【０１３９】
図１４〜図１６は、表現の位置の変更を要求するユーザからの信号に応答するオペレーションを示す。図１４は、ＣＰＵ２０２が、レイアウト空間にマッピングすると共に変換を得てそれを適用することにより、ユーザからの信号に如何に応答することができるかを示す。図１４の技術を用いて、図７のボックス２７２、２７４、及び２７６の動作を実行することができ、同じ技術を用いて、図８のボックス２９２及び２９４の動作を実行することができる。図１５は、ルートノードのオリエンテーションを保持しながら、第１の位置から第２の位置への変換を得る方法を示す。図１６は、右方向へ、より大きいスペーシングの領域の中心にノードの子を方向づけながら、第１の位置から第２の位置への変換を得る方法を示す。
【０１４０】
図１４の技術は、双曲面における構造を平行移動して、連続的且つ幾何学的なフォーカス移動方法を提供する。ユーザは、構造全体の視覚的な構成を維持しながら、構造を容易に走査検索することができる。ユーザは、目に見える任意の点をクリックして、それを中心にあるフォーカスに持っていくか、あるいは目に見える任意の点を任意の他の位置に対話的にドラッギングするかのいずれかにより、フォーカスを変更することができる。どちらの場合にも、表現の残りの部分は適切に変換される。中心に近づく領域は大きくなり、元は中心にあった領域は、エッジ近くになるにつれて縮んでいく。
【０１４１】
２つの変換の合成を計算するために、点（０，０）が第１の変換の下で変換され、次にその結果に対して第２の変換が行われることができる。次に、同様のことが、点（０，１）に対して行われることができる。それら２つの点の画像は、合成を識別するのに十分であり、適切な幾何学的オペレーションは、その情報から直接的に演算されることができる。
【０１４２】
図１４のボックス６１０の動作は、表現が表示されているディスプレイ領域において、第１の位置と第２の位置を示す位置の変換に対する呼出しを受け取る。ドラッギングオペレーションでは、第１及び第２の位置は、明確に示されることができる。クリックオペレーションでは、第１の位置がクリック位置であり、第２の位置がディスプレイ領域の中心であることが可能である。
【０１４３】
ボックス６１２の動作は、ボックス６１０からの第１及び第２の位置を、双曲的ジオメトリオペレーションが実行されることのできる単位円座標に変換することにより、開始する。この実施の形態では、表現はウィンドウ内の半径ｒの円形ディスプレイ領域に表示されるので、ボックス６１２の動作は、各座標をｒで割って１．０を減算することにより、実行されることができる。
【０１４４】
ボックス６２０の動作は次に、ボックス６１２からの単位円位置のいずれかが、単位円のエッジに近すぎないかどうか（例えばエッジの約０．０２５範囲内にあるかどうか）を検査する。いずれかが近すぎる場合には、ボックス６２２の動作は、起点からその位置までの距離の９７％を各座標に乗算するなどして、エッジに近すぎる位置を調整する。このように、エッジに近すぎる位置をエッジから遠くなるよう移動させるように、各座標をわずかに減らす。
【０１４５】
ボックス６１２の変換と、必要であればボックス６２２の調整は、第１の位置の逆像と第２の位置の逆像の両方を、レイアウト空間に生成する。
【０１４６】
次にボックス６２４の動作は、第１の位置の逆像を第２の位置の逆像にする、レイアウト空間における変換を見い出すことにより、トランスレータを得る。以下に詳細に述べる技術を用いてトランスレータを得ることができる。
【０１４７】
図１４の技術は、ボックス６３０の動作に示されるように、アニメーションが実行されているか否かに依存して、２つの異なる経路をとることができる。ドラッギングオペレーションでは、アニメーションは連続性の知覚を生じる必要がないこともあるが、クリックオペレーションでは、連続性の知覚を生じる、より小さいステップのアニメートシーケンスに分割されることが必要であり得る。
【０１４８】
アニメーションが実行されていない場合には、ボックス６３２の動作は、ボックス６２４からのトランスレータを現行平行移動と合成することにより、新たな現行平行移動を得る。これは、平行移動（ｔｒａｎｓｌａｔｉｏｎ  ）を用いて、レイアウトデータからディスプレイ表現を得るという意味である。新たな値Ｐｎ  とΘｎ  を、Ｐｎ  ＝（（Ｐ１  ＋Ｐ２  Θ１  ）／（  １．０＋Ｐ１  ＊  Ｐ２  Θ１  ）（ここで、Ｐ１  ＊  はＰ１  の複素共役である）、Θｎ  ＝（（Θ２（Θ１  ＋Ｐ１  Ｐ２ ＊  ））／（１．０＋Ｐ１  ＊  Ｐ２  Θ１  ）  と計算することにより、各々が点Ｐｉ  と回転角度Θｉ  （ｉはトランスレータを示す）により規定される、第１のトランスレータと第２のトランスレータの合成が得られることができる。合成されると位置の交換が可能でないため、トランスレータが合成される順序は、結果として得られる平行移動に影響を及ぼす。
【０１４９】
ボックス６３４の動作は、ボックス６３２からの新たな現行平行移動をレイアウトデータに適用して、変換位置を得、次いで変換位置をマッピングし、図１１に関して上述されたように表現を表示する。こうして、ボックス６１０の呼出しに対する応答が終了する。
【０１５０】
アニメーションが実行されている場合には、ボックス６４０の動作は、以下に述べるようにボックス６２４からのトランスレータのｎ番目のルートを得る。次に、ボックス６４２の動作は、中間的平行移動を、表現を表示するために用いられる現行平行移動に初期設定することにより、繰り返しループに備える。ボックス６４４の動作は、ｎ回実行される繰り返しループを開始して、ｎ個の中間的平行移動を得る。ボックス６４６の動作は、ボックス６４０からのｎ番目のルートを中間的トランスレータと合成し、ボックス６３２に関して述べた合成技術を用いて、新たな中間的平行移動を得る。次に、ボックス６４８の動作は、ボックス６４６からの新たな中間的平行移動を、中間的平行移動の待ち行列に加える。
【０１５１】
ｎ個の中間的平行移動が待ち行列に加えられた後、ボックス６５０の動作は、ボックス６２４からのトランスレータを、表現の表示に用いられる現行平行移動と合成することにより、最終の平行移動を得る。ボックス６５２の動作は、最終の平行移動を待ち行列に加え、次いでボックス６５４の動作は待ち行列を通って、レイアウトデータに各平行移動を適用して変換位置を得、次いで、変換位置をマッピングすると共に、ボックス６３４に関して上述したように表現を表示するが、待ち行列に加えられた各々の平行移動に対して１つの表現を有する。こうして、ボックス６１０の呼出しに対する応答が終了する。
【０１５２】
ボックス６４０の動作は、トランスレータの点Ｐｔ  と回転角度Θｔ  を用いて以下のようにｎ番目のルートを得ることができる。３つのケースのどれを適用するかを決定するために、ボックス６４０の動作は、ｄ＝（４｜Ｐｔ  ｜２  −｜Θｔ  −１｜２  ）を得ることができる。ボックス６４０の動作はまた、例えばｑａ  ＝（｜Θｔ  −１｜２  ／｜Θｔ  ＋１｜２  ）及びｑｂ  ＝（ｄ／｜Θｔ  ＋１｜２  ）のように、１つより多いケースにおいて使用可能な値を予め計算することも可能である。
【０１５３】
ｄ＞０であれば、ボックス６４０の動作は、ａ１  ＝（ｔａｎｈ（（ａｔａｎｈ（ｑｂ  １／２））／ｎ）／（  ｑｂ  １／２））  、ｔ１  ＝ａ１２ｑａ  、及びｒ１  ＝ａ１  （（１＋ｑａ  ）／（１＋ｔ１  ））１／２  を得ることができる。
【０１５４】
ｄ＝０であれば、ボックス６４０の動作は、ｔ２  ＝（ｑａ  ／ｎ２  ）、ｒ２  ＝（（（  １＋ｑａ  ）／（１＋ｔ２  ））１／２  ／ｎ）という同様の値を得ることができる。
【０１５５】
ｄ＜０である場合には、ボックス６４０の動作は、ａ３  ＝（（ｔａｎ（（ａｔａｎ（−ｑｂ  １／２））／ｎ））、ｔ３  ＝（ａ３２｜Θｔ  −１｜２  ／（−ｄ））、及びｒ３  ＝（４ｔ３  ／（（１＋ｔ３  ）（｜Θｔ  −１｜２  ））１／２  を得ることができる。
【０１５６】
次に、ボックス６４０の動作は、実部（（１−ｔｉ  ）／（１＋ｔｉ  ））と虚部（２ｔｉ  １／２  ／  （  １＋ｔｉ  ））（ここで、ｔｉ  は上述のように適用可能なケースに対する値である）を有する複素角度Θｒ  をまず得ることにより、ｎ番目のルートトランスレータの回転角度Θｎ  を得ることができ、また複素平方根に対するブランチカットが選択されて、より小さい絶対回転を有する角度が与えられる。Θｒ  は、Θｎ  を得るために１という大きさを有するように正規化される。
【０１５７】
最後に、ボックス６４０の動作は、ｎ番目のルートトランスレータの点Ｐｎ  を、Ｐｎ  ＝Ｐｔ  ｒｉ  （  Θｎ  ／Θｔ  ）１／２  （ここで、ｒｉ  は上述のように適用可能なケースに対する値である）として得ることができる。
【０１５８】
図１５は、第１の位置（ｘ１  ，ｙ１  ）から第２の位置（ｘ２  ，ｙ２  ）へのトランスレータを得ると共に、第３の位置（ｘ３  ，ｙ３  ）のオリエンテーションを保持するために、ボックス６２４の動作が如何に実行されることができるかを示す。示されるように、図１５の動作は、図１４のボックス６２０又はボックス６２２のいずれかの後に続き、この実施の形態では、ドラッギング呼出しに応答しての実行の場合にはボックス６３２に先行し、クリック呼出しに応答しての実行の場合にはボックス６４０に先行する。ドラッギング呼出しに応答して呼び出される場合には、第１の位置はドラッギング動作の開始位置であり、第２の位置は終了位置である。クリック呼出しに応答して呼び出される場合には、第１の位置はクリックの位置であり、第２の位置は単位円の起点である。どちらの場合にも、第３の位置は、ルートノードの現在位置であり、この現在位置は、レイアウト空間において位置（０，０）に現行平行移動を実行することにより得られる。
【０１５９】
ボックス６７０の動作は、第３の位置から起点への第１のトランスレータを得、図１０のボックス４００に関して上述したように実行されることができる。次にボックス６７２の動作は、第１の位置に第１のトランスレータを適用し、第１の変換位置を得る。
【０１６０】
ボックス６７４の動作は、回転成分を有さないと共に、第１の変換位置（ｘａ  ，ｙａ  ）を第２の位置（ｘｂ  ，ｙｂ  ）に移す第２のトランスレータを得る。ボックス６７４の動作は、点Ｐ２  と回転角度（１．０，０．０）を有するトランスレータを得ることにより、実行されることができる。ボックス６７４の動作は、複素値（（Ｂ−Ａ）（１＋（  ＡＢ  ）＊  ）  ／  （  １−  （｜ＡＢ｜＊  ）２）の実部を得ることにより、Ｐ２  の実部を得ることができる。ボックス６７４の動作は同様に、複素値（（Ｂ−Ａ）（１−（  ＡＢ  ）＊  ）  ／（１−  （｜ＡＢ｜＊  ）２）  の虚部を得ることにより、Ｐ２  の虚部を得ることができる。これらの式において、Ａ＝ｘａ  ＋ｉｙａ  、Ｂ＝ｘｂ  ＋ｉｙｂ  である。
【０１６１】
ボックス６７６の動作は次に、ボックス６７４から得られた第２のトランスレータとボックス６７０から得られた第１のトランスレータとの合成であるトランスレータを得る。ボックス６７６から得られたトランスレータは次に、図１４のボックス６３２の動作において、又はボックス６４０及びボックス６５０の動作において、実行されることができる。
【０１６２】
図１６は、ノード特徴の子が右方向への方向付けで、より大きいスペーシングの領域の中心付近にあるように、第１の位置から起点である第２の位置へのトランスレータを得るために、ボックス６２４の動作が実行されることのできる方法を示す。示されるように、図１６の動作は、図１４のボックス６２０又はボックス６２２のいずれかの後に続くと共に、この実施の形態では、クリック呼出しに応答して実行されるだけなので、図１６の動作はボックス６４０に先行する。第１の位置はクリック位置である。
【０１６３】
ボックス６９０の動作は、第１の位置から起点への第１のトランスレータを得ると共に、図１０のボックス４００に関して上述したように実行されることができる。ボックス６９２の動作は、ボックス６９０から得られた第１のトランスレータと、ディスプレイされる表現を得るために使用される現行トランスレータとの合成である第２のトランスレータを得る。
【０１６４】
ボックス６９４の動作は、現行変換の反転を適用して、第１の位置の逆像を得る。点Ｐと回転角度Θとにより規定される変換は、点（−ＰΘ＊  ）と回転角度Θ＊  とによる変換を得ることにより、反転されることができる。ボックス６９４の動作はまた、第１の位置の逆像を用いて、最も近いノードの親を見い出す。
【０１６５】
ボックス７００の動作は、ボックス６９４からの親ノードの位置にボックス６９２からの第２のトランスレータを適用すると共に、その結果が１という大きさを有するように正規化して、親の方向（Θｘ  ，Θｙ  ）を得る。ボックス７０２の動作は次に、起点を移動することなくレイアウト空間を親方向に回転する第３のトランスレータを得る。第３のトランスレータは、（０，０）という点と（−Θｘ  ，Θｙ  ）を有することができる。
【０１６６】
次にボックス７０４の動作は、ボックス７０２から得られた第３のトランスレータをボックス６９２から得られた第２のトランスレータと合成することにより、第４のトランスレータを得る。次に、ボックス７０６の動作は、ボックス７０４からの第４のトランスレータと、現行平行移動の反転とを合成することにより、トランスレータを得る。ボックス７０６からのトランスレータは、図１４のボックス６４０及び６５０の動作において使用されることができる。
【０１６７】
上述の実行は、円形のディスプレイ領域に表現を表示するが、表現は、双曲面からの適切なマッピングを介して、楕円のような任意の他の適切な形状のディスプレイ領域にも表示されることができる。
【０１６８】
上述の実行は、単一のより大きいスペーシングの領域を有するように表現を示すが、表現は、より多くのノード特徴にフォーカスを当てるために、２つ以上の、より大きいスペーシング領域を有するように表示されることができる。特に興味深いのは、ポアンカレマップにおける点（ａ，０）及び点（−ａ，０）がそれぞれ、双眼鏡で見た場合のような（２つの）より大きいスペーシング領域の中心となる、２重フォーカス表現である。この表現の場合、ポアンカレマップにより表現される双曲面における点ｚは、ディスプレイ空間における（（ｚ（１−ａ２）  ／  （１−ａ２  ｚ２））  にマッピングされる。
【０１６９】
上述の実行は、双曲面を使用するが、双曲的なｎ空間等の負の曲率を有する別の空間を使用することもできる。
【０１７０】
上述の実行は、双曲面において位置を表示するのに複素数を使用するが、それは一部には、複素数における連続関数が等角マッピングであるからである。しかしながら、双曲面における位置は、他のタイプのデータ又は座標を用いて表示されることができる。
【０１７１】
上述の実行は、双曲面から単位円へ、そして単位円から円形のディスプレイ領域へとマッピングするが、レイアウト空間からディスプレイ領域への他のタイプのマッピングを使用することもできる。例えば、ポアンカレモデルからクラインモデルへのマッピングは実験段階ではまだ満足がいく程には実行されなかったが、このようなマッピングも使用することができる。
【０１７２】
アニメーションを実行することにおいて、上述の実行は、ｎ個（ｎは定数）のステップを使用する。アニメーションの数は、定数ではなく、アニメート動作が生じている開始位置と終了位置との間の距離に依存する変数であることも可能である。
【０１７３】
ループ型の走査検索を行うことにおいて本発明を使用した。
【０１７４】
さらに、負の曲率を有する空間においてノードリンク構造を均一にレイアウトすることは、インタラクティブボイスシステムに適用されることができ、また、レイアウト空間からサウンドレンダリングへのマッピングが実行されることが可能である。
【図面の簡単な説明】
【図１】ノードリンクデータを用いて、負の曲率を有する空間における位置を示すレイアウトデータを得、それにより２つ以上の異なるマッピングが達成されることのできる方法を示す概略的フローチャートである。
【図２】図１のようにレイアウトデータを得ると共にマッピングを達成することにおける概括的な動作を示すフローチャートである。
【図３】ノードリンク構造の第１及び第２の表現が如何に表示されるかを示す概略的なフローチャートであり、この第２の表現は、第１の表現における、第１の位置から第２の位置への変更を指示する信号に応答して自動的に表示される。
【図４】図３のように第１及び第２の表現を表示することにおける概括的な動作を示すフローチャートである。
【図５】図１のようにレイアウトデータを得てマッピングを実行し、また図３のように第１及び第２の表現を表示するマシンの概括的な構成要素を示す概略図である。
【図６】負の曲率を有するレイアウト空間においてノードリンク構造をレイアウトし、次いでマッピングを行ってディスプレイ上にノードリンク構造の表現を表示することのできるシステムの構成要素を示す概略ブロック図である。
【図７】図６のマシンが、位置の変更に関する要求に応答して、エッジに近すぎないノードの部分集合の位置を変換し且つマッピングすることにより、走査検索インタフェースを提供することのできる動作を示すフローチャートである。
【図８】図６のマシンが、位置の変更に関する要求に応答して、全ノードの位置を連続的に変換し且つマッピングすることにより、走査検索インタフェースを提供することのできる動作を示すフローチャートである。
【図９】図７の技術を実行する図６のシステムによるレイアウトオペレーションにおける動作を示すフローチャートである。
【図１０】ノードの子までの距離、子の位置、ルーム境界、及びノードの半径を図９において得ることのできる動作を示すフローチャートである。
【図１１】図７の技術を実行する図６のシステムによるレイアウト空間からディスプレイ位置へのマッピングにおける動作を示すフローチャートである。
【図１２】単位円におけるノードのマッピング位置を得ると共に、リンク特徴を表示することのできる図１１の動作を示すフローチャートである。
【図１３】図１１におけるノード特徴を表示する動作を示すフローチャートである。
【図１４】図７の技術を実行する図５のシステムによる、位置の変更を要求するシステムに応答する動作を示すフローチャートである。
【図１５】図１４のルートノードのオリエンテーションを保持するトランスレータを得ることのできる動作を示すフローチャートである。
【図１６】より大きいスペーシングを有する領域の中心にある或るノードの子ノードを起点として右方向に再配置するトランスレータを得ることのできる、図１４の動作を示すフローチャートである。
【符号の説明】
１０    ノードリンクデータ
２０    ノードリンク構造
２２    最上位レベルノード
２４、２６、２８    下位レベルノード
３０    レイアウトデータ
３２    負の曲率を有する空間
１５０    マシン
１５２    プロセッサ
１５４    ユーザ入力回路
１５６    ディスプレイ
１５８    ノードリンクデータ
１６０    命令
１６２    命令入力回路
【図１】
0003630791.tif 000002
【図２】
0003630791.tif 000003
【図３】
0003630791.tif 000004
【図４】
0003630791.tif 000005
【図５】
0003630791.tif 000006
【図６】
0003630791.tif 000007
【図７】
0003630791.tif 000008
【図８】
0003630791.tif 000009
【図９】
0003630791.tif 000010
【図１０】
0003630791.tif 000011
【図１１】
0003630791.tif 000012
【図１２】
0003630791.tif 000013
【図１３】
0003630791.tif 000014
【図１４】
0003630791.tif 000015
【図１５】
0003630791.tif 000016
【図１６】
0003630791.tif 000017