JP2000076119A - メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法 - Google Patents

メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法

Info

Publication number
JP2000076119A
JP2000076119A JP11214493A JP21449399A JP2000076119A JP 2000076119 A JP2000076119 A JP 2000076119A JP 11214493 A JP11214493 A JP 11214493A JP 21449399 A JP21449399 A JP 21449399A JP 2000076119 A JP2000076119 A JP 2000076119A
Authority
JP
Japan
Prior art keywords
node
link
memory
data
routine
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.)
Pending
Application number
JP11214493A
Other languages
English (en)
Inventor
Tichomir G Tenev
ジー.テネヴ ティチョミア
John O Lamping
オー.ランピング ジョン
Ramana B Rao
ビー.ラオ ラマナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JP2000076119A publication Critical patent/JP2000076119A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 ノード−リンク構造の格納に関する問題を緩
和する技術を提供する。 【解決手段】 ノード−リンク構造の要素のセットを自
動的に走査することを含む反復が開始される(100)。反
復が実行される間、ノード−リンク構造を定義している
ノード−リンクデータのメモリ内にある部分を変更する
(102)。メモリ内のノード−リンクデータの変更された
部分は、自動的な走査を含む次の反復により走査される
であろう要素のセットをより高い確率で定義する。ステ
ップ100で始まりステップ102の処理を含む反復
は、ステップ104で完了する。ステップ100、10
2及び104での処理は、一連の反復のそれぞれにより
実行されることが可能であり、各反復は構造の要素の対
応するそれぞれのセットを自動的に走査することを含
む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ノード−リンクデ
ータ本体のどの部分をメモリ内に存在させるかの制御に
関する。
【0002】
【従来の技術】ネットスケープナビゲーター(Nets
cape (登録商標)Navigator)は、最近
アクセスした多数のウェブページに関するデータを保存
するウェブブラウザであり、ウェブを介してアクセスす
ることなく、保存されたページを見ることを可能にす
る。ユーザは、保存されたページ間のリンクを辿ること
により、又はブラウザにより提供されるページフレーム
の「次」及び「戻る」ボタンのクリック等によって他の
ナビゲーション信号を発行することにより、保存された
ページを介してナビゲーションすることができる。記憶
領域の限界に達すると、新たにアクセスしたページのた
めのメモリ空間を作るために、先に保存されたページが
削除される。
【0003】本発明は、本明細書の中で「ノード−リン
クデータ」と呼ばれ、ノード−リンク構造を定義してい
るデータの本体をメモリに格納する際の問題を扱う。単
純な事例では、構造の全部又は一部を表示するための追
加データを含む、その構造を定義しているノード−リン
クデータ全てがメモリに格納されることが可能である。
しかし、この技法は多くの状況において不適切である。
【0004】他の技法を必要とする1つの状況は、大型
の又は複雑な構造を定義しているノード−リンクデータ
が、使用可能なメモリ空間よりも大きい場合である。別
の状況は、例えば、リモートソース(発信源)からの低
速検索又はそのデータのどこか一部で行われている変更
のために、ノード−リンクデータの全てが同時には使用
できない場合である。
【0005】
【発明が解決しようとする課題】本発明は、ノード−リ
ンク構造の格納に関するこれらの問題を緩和する技術を
提供する。
【0006】
【課題を解決するための手段】本発明で提供される技術
は、構造を定義しているノード−リンクデータのどの部
分をメモリに存在させるかを制御する。一連の反復の中
の1回の反復の実行において、各反復はノード−リンク
構造内の要素のセットを自動的に走査することを含む。
個々の技術は、メモリ内に存在するノード−リンクデー
タの部分が、次の反復により走査されるであろう要素の
セットを定義する確率が高いように、メモリにノード−
リンクデータのどの部分が存在するかを変更する。
【0007】一連の反復の中の各反復は、構造を定義し
ているノード−リンクデータ内の要素に関するデータに
アクセスするあらゆる処理であってよい。例えば、各反
復はノード−リンク構造の表現を準備し表示してもよ
い。要素を自動的に走査することが可能な処理の他の例
は、レイアウト、マッピング及びペインティング等の表
示処理、空間内の要素の位置を取得する他の処理、探索
又は検索処理、構造の要素の走査等により構造を特徴づ
けているデータを取得する処理、構造の要素を分析する
ことによりその構造に基づく決定、又はその構造に関す
る決定を行なう処理等を含む。
【0008】この新技術は、非常に大きなノード−リン
ク構造を増分的にロードすることができる一方で、必要
に応じて構造の一部をアンロード又は再ロードすること
が可能なため有利である。この新技術は、メモリ内のノ
ード−リンクデータの部分がメモリの固定量以下しか占
有することができなくても、これらの目的を達成するこ
とが可能である。更に、この技術は、構造内の別の要素
への興味を示すユーザ入力に基づく判定基準を適用する
ことが可能である。その結果、ノード−リンク構造の選
択された要素が表示されることを要求するナビゲーショ
ン信号をユーザが発行するような実施態様において、メ
モリ内に存在する構造の部分が、表示のためにユーザが
選択する要素を含む確率は高い。
【0009】別の利点は、この新技術を、構造を定義し
ているノード−リンクデータのキャッシュへの格納及び
先取りと組み合わせることができ、またそれらを実施す
るために使用することができることである。
【0010】より少量のデータがメモリ内外へ転送され
ること、並びにデータ転送が必要時にのみ発生すること
により、更なる利点が生じる。その結果、大きなノード
−リンク構造の初期表示を、従来より非常に早く表示す
ることが可能であり、またノード−リンク構造を表示す
るために必要な計算がより少なくなる。
【0011】上述のネットスケープのウェブページキャ
ッシング技術等の従来のキャッシング技術と比較する
と、この新技術は、より簡単に理解されるノード−リン
ク構造の表現を提供するために実施され得る。新技術は
従来の技術と同様のタイプの基礎を成すノード−リンク
構造に適用され得るが、新技術は、表示のためにより統
合された一連の構造を定義するデータをメモリ内に保持
するように実施されることが可能である。一連の構造内
では、各要素はルートへのパスを常に有することがで
き、オーファン(孤立したデータ)は許可されず、そし
て現在表示されている要素をメモリから除去することは
できない。更に、新技術は、要素の親が表示されている
場合、メモリにその要素を追加するために実施されるこ
とが可能であり、従ってノード−リンクデータのメモリ
内の部分が、将来に成される表示に含まれるであろう要
素を定義する確率を高める。
【0012】
【発明の実施の形態】以下の概念的構想は、米国特許第
5,590,250号及び第5,619,632号で述べられた概念的構想
と共に読むと、本発明の広い範囲を理解する上で役に立
ち、以下に定義される用語は、特許請求の範囲を含む本
出願を通して示された意味を有する。
【0013】「ノード−リンク構造」は、ノードとリン
クとに区別できる項目を含み、各リンクが2つ以上のノ
ードに関係している構造である。「グラフ」は、各リン
クが2つのノードに関係しているノード−リンク構造で
ある。「有向グラフ」は、各リンクが関係するノード間
の方向を示し、一方のノードがリンクのソース又は「フ
ロムノード」であり、他方のノードがリンクの宛先又は
「ツーノード」であるグラフである。「非環式有向グラ
フ」は、リンクが、それらの示された方向に辿られたと
きに、任意のノードからそれ自体に戻るパスを提供しな
い有向グラフである。「ツリー」は、ツリー内の任意の
非ルートノードについて、リンクが、その示された方向
に辿られたときに、ルートノードで始まり非ルートノー
ドへと導く1つのパスだけを提供するような、1つのル
ートノードだけを有する非環式有向グラフである。
【0014】反復が、構造を定義しているノード−リン
クデータのメモリ内にある部分内の要素に関するデータ
にアクセスする処理を含む場合、反復はノード−リンク
構造の要素を「走査する(traverses)」。反復がセッ
ト内の全ての要素を走査すると、反復は「要素のセット
を走査する」と言われる。反復が、同時に起こる人間に
よる制御とは無関係にセット内の全ての要素を走査する
と、反復は要素のセットを「自動的に走査する」と言わ
れる。「走査(traversal)」とは、完了した走査処理
のことである。
【0015】反復が、ノード−リンク構造を定義してい
るノード−リンクデータのメモリ内にある部分を、ノー
ド−リンク構造の要素の別のサブセットを定義するよう
に変更する処理を含むと、反復は「メモリ内にあるノー
ド−リンクデータの部分を変更すること」を含むと言
う。反復が、メモリ内にあるノード−リンクデータの部
分を変更すると、反復は「ノード−リンクデータの変更
された部分をメモリ内に取得する」。
【0016】現実的な条件で、変更された部分が取得さ
れる前のノード−リンクデータのメモリ内にある部分と
比較した場合、変更された部分が、その後走査されるセ
ット内の要素の全てをより頻繁に定義すると、ノード−
リンクデータの変更された部分は、走査されるであろう
要素のセットを「定義する確率がより高い」ことにな
る。統計的な意味での適切なレベルに達するために、比
較は十分な回数の走査にわたって成され得る。
【0017】処理が、ノード−リンクデータのメモリ内
の部分がその処理の前に定義した幾つかの要素をもはや
定義しないようにノード−リンクデータのメモリ内の部
分を変更すると、その処理はメモリ内のノード−リンク
データのある部分を「除去する」。
【0018】本明細書では、「ナビゲーション信号」と
いう用語は、ユーザがノード−リンク構造のある部分に
他の部分よりも高い興味を持っていることを示す信号を
意味する。例えば「拡張信号」は、グラフのある要素の
表現が拡張されているグラフ表現を表示する要求を示
し、一方「収縮信号」は、グラフのある要素の表現が収
縮されているグラフ表現を表示する要求を示す。他の例
は、ノード−リンク構造の一部を特定の位置で表示する
要求を含み、それはブックマーク等を選択することによ
って、又は指し示されたフィーチャ(feature)を焦点
の中心へと移動することを要求するポイント及びクリッ
ク動作によって可能である。
【0019】「ナビゲーション履歴判定基準」という用
語は、本明細書では、少なくとも部分的に前述のナビゲ
ーション信号に関する判定基準を意味する。
【0020】図1において、ノード−リンクデータの本
体10は、ノード−リンク構造を定義する。ボックス2
0は、メモリ内にある本体10の一部により定義される
ノード−リンク構造の部分を示す。ノード−リンク構造
の図示された部分において、ノード22は子ノード24
及び26の親であり、子ノード24は孫ノード28及び
30の親である。
【0021】処理ボックス40において、ノード−リン
ク構造の要素のセットを自動的に走査することを含む一
連の反復の内の1つが実行される。この反復は、要素を
自動的に走査するあらゆる処理を含んでよく、それらの
処理の幾つかの例が上に挙げられている。反復は、メモ
リ内のデータが、自動的な走査を含む次の反復において
走査されるはずの要素のセットを定義するように、本体
10のどの部分がメモリ内に存在するかを変更すること
を含む。処理ボックス40は、ノード−リンク構造の別
の部分が本体10のメモリ内にある部分によって定義さ
れるように、メモリからデータを除去すること、及び本
体10から他のデータをメモリに追加することを含む。
ボックス50に示されるように、ノード22、24、及
び26を定義しているデータはメモリ内にあるが、孫ノ
ード28及び30を定義しているデータはもはやメモリ
内にはなく、子ノード26の子である孫ノード52及び
54を定義しているデータがメモリに追加されている。
【0022】図2において、処理ボックス100の処理
は、ノード−リンク構造の要素のセットを自動的に走査
することを含む反復を開始する。処理ボックス100で
の処理は、上述された処理の1つ又は構造の自動的な走
査を含む他のあらゆる処理を実行する反復を開始するこ
とができる。
【0023】反復が実行される間、処理ボックス102
での処理は、ノード−リンク構造を定義しているノード
−リンクデータのどの部分がメモリ内にあるかを変更す
る。メモリ内のノード−リンクデータの変更された部分
は、自動的な走査を含む次の反復により走査されるであ
ろう要素のセットをより高い確率で定義する。
【0024】処理ボックス104での処理は、処理ボッ
クス100で始まり処理ボックス102の処理を含む反
復を完了する。処理ボックス104から処理ボックス1
00に戻る矢印で示されるように、処理ボックス10
0、102、及び104での処理は、一連の反復のそれ
ぞれにより実行されることが可能であり、各反復は構造
の要素の対応するそれぞれのセットを自動的に走査する
ことを含む。
【0025】図3の装置150は、ユーザ入力回路15
4からユーザ信号を示すデータを受信すると共にディス
プレイ156に画像を定義するデータを供給するために
接続された、プロセッサ152を含む。プロセッサ15
2は、ノード−リンクデータ158にアクセスするため
にも接続されており、ノード−リンクデータ158はノ
ード−リンク構造を定義する。図示されるように、ノー
ド−リンクデータ158は、ノード−リンク構造を定義
するノード−リンクデータの本体190を含み、またノ
ード−リンクデータのメモリ内にある部分192も含
む。プロセッサ152は、例えば、メモリ164、記憶
媒体アクセス装置166、又はネットワーク168への
接続から受信した命令を供給できる命令入力回路162
を介して、命令を示す命令データ160を受信するため
にも接続されている。
【0026】命令データ160に示される命令の実行に
おいて、プロセッサ152は一連の反復を実行する。各
反復は、ノード−リンクデータの本体190により定義
されるノード−リンク構造内の要素の対応するそれぞれ
のセットを自動的に走査することを含む。各反復は、例
えば、プロセッサ152が、ノード−リンク構造のユー
ザの興味対象である部分を示すユーザ入力回路154か
らの信号を受信すること等により、処理要求の受信時に
開始されることが可能である。反復の実行において、プ
ロセッサ152は、メモリ内在部分192からのデータ
の除去及び本体190からメモリ内在部分192へのデ
ータの追加等により、メモリ内にどのノード−リンクデ
ータがあるかを変更する。プロセッサ152は、変更さ
れたメモリ内在部分192が、次に走査されるであろう
要素のセットを定義する確率がより高くなるように変更
を実行する。
【0027】上述のように、図3は、命令入力回路16
2が命令を示すデータを受信し得る3つの可能なソー
ス、即ちメモリ164、記憶媒体アクセス装置166、
及びネットワーク168を示している。
【0028】メモリ164は、ランダムアクセスメモリ
(RAM)又は読取り専用メモリ(ROM)を含む、装
置150内の任意の従来のメモリか、又は任意の種類の
周辺又は遠隔メモリ装置であってよい。より一般には、
メモリ164は複数のタイプのメモリ構成要素の組み合
わせであってよい。
【0029】記憶媒体アクセス装置166は、例えば1
組の1つ以上のテープ、ディスケット、又はフロッピー
ディスクのような磁気媒体、1組の1つ以上のCD−R
OMのような光学媒体、又はデータを格納するための任
意の他の適切な媒体であり得る記憶媒体170にアクセ
スするための、ドライブ又は他の適切な装置又は回路で
あってよい。記憶媒体170は、装置150の一部、サ
ーバの一部、他の周辺又は遠隔メモリ装置、又はソフト
ウェア製品であってよい。これらの場合のそれぞれで、
記憶媒体170は装置150内に用いることができる1
つの製造品である。記憶媒体170の上にデータユニッ
トを配置して、記憶媒体アクセス装置166がデータユ
ニットにアクセスしてそれらを命令入力回路162を介
してプロセッサ152にシーケンスで供給できるように
することが可能である。データユニットは、シーケンス
で供給されると、図示されるように命令を示す命令デー
タ160を形成する。
【0030】ネットワーク168は、装置180から受
信した命令データ160を供給できる。装置180内の
プロセッサ182は、ネットワーク168を渡ってネッ
トワーク接続回路184及び命令入力回路162を介し
て、プロセッサ152との接続を確立できる。どちらの
プロセッサが接続を開始してもよく、接続は任意の適切
なプロトコルで確立されてよい。次に、プロセッサ18
2はメモリ186に格納されている命令データにアクセ
スして命令データをネットワーク168を渡ってプロセ
ッサ152に転送できるので、プロセッサ152はネッ
トワーク168から命令データ160を受信できる。次
に、命令データ160は、プロセッサ152によってメ
モリ164又はどこかに格納され、実行されることが可
能である。
【0031】上述した全般的なフィーチャは、ノード−
リンク表現を表示するための多くの方法で様々な装置上
で実施されてよい。以下に述べる実施例は、マイクロソ
フトウインドウズ(Microsoft Windows)の32ビット版を
走らせ、C++言語ソースコードからコンパイルされたコ
ードを実行する、PCに基づくシステム上で実施された
ものである。
【0032】図4では、システム200は、画像を表示
するためのディスプレイ204、及びユーザから信号を
供給するためのマウス208及びキーボード206に接
続された、PCプロセッサ202を含む。PCプロセッ
サ202は、メモリ210及びクライアント212にア
クセスできるようにも接続されている。メモリ210
は、例示されているように、プログラムメモリ214及
びデータメモリ216を含むことができる。クライアン
ト212は、メモリ210に格納されたルーチン及びデ
ータの組合せか、又は示されるようにメモリ210から
独立していてよい、有向グラフに関する情報のソースで
ある。例えば、プロセッサ202はネットワークを介し
てクライアント212と通信してもよい。
【0033】プログラムメモリ214に格納されている
ルーチンは、幾つかの機能にグループ化できる。グラフ
ァルーチン220は、クライアント212からの情報に
よって定義される有向グラフを表わすデータ構造を生成
及び変更する。ウォーカルーチン222は、有向グラフ
データ構造から情報を入手することによって、キーボー
ド206及びマウス208からのナビゲーション信号及
び他のユーザ信号に応答する。ペインタルーチン224
は、ディスプレイ204に信号を提供して有向グラフデ
ータ構造の表現を表示させる。メモリ管理ルーチン22
6は、メモリ210内の有向グラフデータ構造のどの部
分を変更すべきかを決定するためにナビゲーション履歴
判定基準を適用する際に、グラファルーチン220によ
り呼出されることが可能である。数学ルーチン228
は、レイアウト空間内の有向グラフの要素の位置を得る
ために呼出されることができる。
【0034】次に、データメモリ216は、プログラム
メモリ214内のルーチンの実行中にプロセッサ202
によってアクセスされるデータ構造を収容する。有向グ
ラフデータ構造230は、上述のように、グラファルー
チン220によって生成及び変更され得ると共に、ウォ
ーカルーチン222及びペインタルーチン224によっ
てアクセスされ得る。ノードIDのリスト232は、有
向グラフデータ構造230により定義される有向グラフ
に関わるナビゲーション履歴に関する情報を保持するた
めに、メモリ管理ルーチン226により生成され維持さ
れることが可能である。プログラムメモリ214内のル
ーチンは、種々の雑データ構造234にもアクセスでき
る。データ構造234は、例えば、標準ヒープとして実
施される、1対のノードIDからリンクIDへのマッピ
ングのための予備データ構造を含んでもよい。即ち、こ
の予備データ構造は、リンク数の対数である時間内のリ
ンクIDの検索及び挿入を可能にする。
【0035】図5は、メモリ管理ルーチン226により
実行される処理に関連する有向グラフデータ構造230
のフィーチャを示す。
【0036】識別子(ID)マッピング構造250は、
要素IDからポインタへのマッピングを行なう。要素I
Dは、ノードID及びリンクIDを含む。構造250
は、メモリ内の全てのノード及びリンクが、一定時間内
に確認されほぼいつも一定時間内に生成され得るIDに
より特定されることを可能にする。構造250は、有向
グラフデータ構造230内以外では、ポインタを使用す
る必要がない。ノードIDにより索引付けされる1つの
アレイ(配列)及びリンクIDにより索引付けされるも
う1つのアレイの2つのポインタアレイとして実施され
るが、構造250は、例えば、各エントリがID及びポ
インタを含むルックアップテーブルであってもよい。
【0037】ルートノード要素252は、メモリに常駐
する特殊なノードを表わし、そのノードの子はあらゆる
適切な判定基準に応じてクライアント212により選択
され得る。例えば、ルートノード要素252の子は、他
の全てのノードへのリンク、他の親を持たない他の全て
のノードへのリンク、又はファイルシステムのルート又
はウェブサイトのホームページを表わすノード等の構造
230の生来の開始ノードである1つのノードのみへの
リンクを含み得る。従って、要素252の上段は、その
要素が親を持たないことを示す「X」を有する一方、下
段は、第1の子へのリンクIDを有する。要素252の
中段は、その要素が表わすルートノードに関連する適切
なデータを保有し得る。
【0038】リンク要素254は、親ノードと子ノード
との間のリンクを表わし、それらのノードのIDは、要
素の最上段及び最下段に入れられる。親ノードのIDの
すぐ下の2段はそれぞれ、その親ノードからの先行する
子リンクのIDと次の子リンクのIDである。同様に、
子ノードのIDのすぐ上の2段はそれぞれ、その子ノー
ドに導く先行する親リンクのIDと次の親リンクのID
である。要素252の場合と同様に、要素254の中段
は、その要素が表わすリンクに関連する適切なデータを
保有する。
【0039】ノード要素256は、現在はメモリ内にあ
るが、以下で説明されるメモリ管理技術に従って除去さ
れる可能性のあるノードを表わす。従って、要素256
の上段は第1の親リンクのIDを有し、下段は第1の子リ
ンクのIDを有する。要素252と同様に、要素256
の中段は、その要素が表わすノードに関連する適切なデ
ータを保有し得る。例えば、中段は、以下で説明される
ノードIDのリスト内のノードのエントリへのポインタ
を含むことが可能であり、従って探索を実行することな
く一定時間内にリストからノードのエントリを除去する
ことを可能にする。
【0040】図6は、270、272から274までの
N個のエントリから成るリンクリストとして実施される
ノードIDのリスト232を示す。Nは、メモリ内で許
されるノードの最大数であるNMAXよりも小さい任意の
値であってよい。
【0041】例示される実施において、各エントリはノ
ードIDフィールド280、282から284までをそ
れぞれ含む。このフィールドは単にノードのIDを示
す。
【0042】各エントリはまた、リンクリスト内の次の
エントリへのポインタ、又はフィールド294の場合は
「x」により示されるリスト内の最後のエントリである
ことを示す特別の値を含む、ポインタフィールド29
0、292から294までを含む。
【0043】以下でより詳細に説明されるように、リス
ト232は、最も最近処理されたノードが0番目のエン
トリに入れられ、最も以前に処理されたノードが(N−
1)番目のエントリに入れられるように管理される。従
って、リスト232内のノードのエントリの位置は、各
ノードがどの程度最近処理されたかに関するノードの順
位を示す。
【0044】図7は、ナビゲーション信号に応答してグ
ラファルーチン220及びウォーカルーチン222によ
り実行され得る処理を示す。図7の処理は、各受入れ可
能なナビゲーション信号に応答して、少なくとも一度実
行され得る。
【0045】図7の技術は、メモリ内のノード及びリン
クのセットを、自動走査を含む反復の間に変更し、次の
反復で走査されるであろう要素を全て含む確率がより高
い変更されたセットをもたらす。この基準を満たす変更
されたセットは、本明細書では「予測ノード−リンクセ
ット」とも呼ばれる。当然ながら、図7の技術は、その
セットをそれまでロードされていなかったが現在の反復
で走査されているあらゆる要素を含むように変更するこ
とも可能である。
【0046】図7の技術は、現在の反復の間にノードの
親が走査されると、メモリ内のセットにノード(及びそ
の親からそのノードへのリンク)を追加することによ
り、次の反復のための予測ノード−リンクセットを生成
する。
【0047】例示される処理は、処理ボックス300で
ナビゲーション信号を受信すると開始される。ナビゲー
ション信号は、表示されているグラフの別の部分への焦
点の変更を要求する信号か、又はグラフ内のノードがそ
の子孫を示すように拡張されるか、その子孫を隠すよう
に収縮されることを要求する信号であり得る。このルー
チンは先ず判断ボックス302で、例えば、そのノード
の祖先のいずれかがそのノードのクローンであるか否か
を判断するために上方への巡回(ウォーク)を引き起こ
す呼出し等により、そのナビゲーション信号が受入れ可
能であるか否かをテストし、この例で祖先にクローンが
存在する場合には、ノードを拡張しないことにより循環
を回避することができる。ナビゲーション信号が受入れ
可能でない場合、ルーチンはナビゲーション信号に応じ
た処理を一切行なわず、処理ボックス304で次のナビ
ゲーション信号に備えて待機する。
【0048】判断ボックス302でのテストが、受入れ
可能なナビゲーション信号を受信したと判断すると、こ
のルーチンは処理ボックス306で、ナビゲーション信
号に応じてグラフの表現を準備する反復を開始する。そ
の実行において、有向グラフデータ構造230の巡回走
査を1回又は複数回実行するために、ウォーカルーチン
222が呼出され、その間にノードは、それらが巡回さ
れたことを示すカウント(数値)によりマークされる。
【0049】巡回の実行において、ウォーカルーチン2
22は、有向グラフデータ構造230内のリンク及びノ
ードIDと、以下で説明される巡回カウンタ値と、拡張
フラグとを使用することにより、巡回されるべき次のノ
ードのノードIDを取得することが可能である。拡張フ
ラグは、データ構造230により定義されるグラフ内の
ツリーを定義することができ、ウォーカルーチン222
はツリーの選択されたノードからルートノードへのパス
に沿って上方に巡回し、次に選択されたノードを方向付
けるためにパスを下方に巡回して戻り、次に可視ルート
ノードまでパスを上方に巡回し、そしてツリー内の可視
ルートノードの子孫を介して巡回することができる。
【0050】ウォーカルーチン222は、ルートノード
までの上方巡回及び選択されたノードまで戻る巡回を実
行する間に、選択されたノードを方向付けるための最も
最近の巡回でそのノードが巡回されたことを示す方向付
け(オリエント)カウントにより各ノードをマークする
ことが可能であり、従って、幾らかのナビゲーション履
歴を保存する。同様に、ウォーカルーチン222は、可
視ルートの子孫を介しての巡回を実行する間に、可視ル
ートノードの子孫をマッピングするための最も最近の巡
回でそのノードが巡回されたことを示すマッピングカウ
ントにより各ノードをマーキングすることが可能であ
り、従って、更なるナビゲーション履歴を保存する。ウ
ォーカルーチン222により格納される方向付けカウン
ト及びマッピングカウントは、それぞれの対応するグロ
ーバルカウンタに基づくことが可能であり、所定の巡回
で走査される全てのノードのカウントはグローバルカウ
ンタの数値に等しい。別に記憶されたカウント数値を有
するノードは、所定の巡回では走査されなかったことに
なる。
【0051】以下で説明されるように、方向付けカウン
ト及びマッピングカウントの何れかにより示される最も
最近巡回されたノードは、メモリから除去されることが
できない。
【0052】また、表現の準備は、判断ボックス310
でのテストにより開始及び終了する反復の内側ループを
含む。判断ボックス310へ入っている破線及び判断ボ
ックス310から出ている破線により示唆されるよう
に、表現の準備は、反復の内側ループ及び巡回走査に加
えて他の処理を含むことが可能である。
【0053】反復の内側ループが完了すると、判断ボッ
クス310はグラフの表現を表示するため処理ボックス
312に進む。処理ボックス312から処理ボックス3
06に戻る破線により示唆されるように、一連の表現が
1つのナビゲーション信号に応じて準備され表示されて
もよい。処理ボックス312から処理ボックス304に
戻る破線により示唆されるように、ナビゲーション信号
への応答の完了時に、別のナビゲーション信号への応答
が提供されることも可能である。
【0054】他の処理に加えて、内側ループの各反復
は、処理ボックス314で、次に処理されるはずのノー
ドのノードIDと共にメモリ管理ルーチン226を呼出
す。内側ループは、例えば、ウォーキングルーチン22
2により実行されるペイント処理に含まれることが可能
であり、その処理において、ペイントされる予定のノー
ドスタック上の各ノードは順次処理され、そして各ノー
ドごとに適切なペインタルーチン224の呼出しも行な
われる。
【0055】処理ボックス314での呼出しに応答し
て、メモリ管理ルーチン226は、処理ボックス316
で次のノードをリスト232の先頭に移動する。判断ボ
ックス320において、メモリ管理ルーチン226はま
た、次のノードが、本明細書では「未生成子ノード」と
呼ばれるメモリ内にない子を1つでも有するか否かを判
断する。これは、ノードごとの未生成子フラグから判断
されることが可能である。このフラグは通常、クライア
ント212により制御されることが可能であるが、他の
ルーチンからもアクセス可能である。
【0056】ノードが未生成子ノードを有するならば、
処理ボックス322でクライアント212の呼出しが実
行され、未生成子ノードの生成を要求する。このコンテ
キスト及びノードが現在メモリ内にないために割り当て
られたノードIDを持たない類似のコンテキストにおい
て、クライアント212の呼出しは、その親のノードI
Dによって、そして適切である場合は、例えばノードX
のn番目の子のようにそれがどの子であるかを示す数字
表示によってそのノードのことを示すことができる。ク
ライアント212は、「プロトグラフ(基本グラフ)」
のように考えられ得るノード−リンク構造に関するより
完全な情報へのアクセスを有し、クライアント212
は、各未生成の子に関する情報を取得するためにその情
報及び親のノードIDを使用することができる。例え
ば、ノードIDを使用することにより、クライアント2
12は図5に示されるようなノードのデータ項目にアク
セスすることができ、データ項目のノードデータは、元
来、ノードのデータ項目が生成された時にクライアント
212により提供された一意の識別子を含むことができ
る。クライアント212は次に、プロトグラフ内の関連
情報にアクセスするために、この一意の識別子を使用す
ることができる。例えば、このノードがウェブページで
ある場合、この一意の識別子は、ノードの子及び親に関
する情報を取得するために使用されることが可能なハイ
パーテキストリンクであり得る。またクライアント21
2は、即座の生成を可能にするために、最近生成された
ノード及び関連するリンクのキャッシュを保持すること
ができる。処理ボックス322での呼出しが、キャッシ
ュされていないノードの生成である場合、クライアント
212は、バックグラウンドでこのノードの非同期生成
をスケジューリングしてもよいが、その場合も子の生成
の失敗は示す。
【0057】処理ボックス322での呼出しに応じたノ
ードの生成において、クライアント212は順次ノード
生成要求を実行し、これは結果としてグラファルーチン
220の呼出しをもたらす。グラファルーチン220は
同様に、図8に関連して以下で説明されるようにメモリ
管理ルーチン226を呼出す。これらのルーチンは、要
求されたノードの生成が可能か否かの指標を戻す。生成
不可能な場合は、例えば空IDを戻す。判断ボックス3
24に示されるように、クライアント212の応答は、
ノードの生成が成功か否かに基づいて分岐し得る。生成
が成功した場合、クライアント212は、判断ボックス
310に戻る前に処理ボックス326で親の未生成子フ
ラグをクリアする(消す)。子の生成が不成功の場合、
未生成子フラグはクリアされずにルーチンは判断ボック
ス310に進む。
【0058】処理ボックス300でナビゲーション信号
が受信される際に、メモリ内のノードのセットが走査さ
れるべき全要素を含まない場合、クライアント212は
未生成ノードを提供したいという要求を通知され得る。
【0059】図8は、図7の処理ボックス322でのよ
うなクライアント212からの子ノード生成要求をグラ
ファルーチン220が処理ボックス350で受信した
後、グラファルーチン220及びメモリ管理ルーチン2
26がどのように応答するかを示す。処理ボックス35
0に示されるように、グラファルーチン220はメモリ
管理ルーチン226を呼出し、メモリ管理ルーチン22
6が図8に示される他の処理のほとんどを実行する。
【0060】処理ボックス352で、ルーチン226は
未生成子ノードの親ノードをリスト232の先頭に移動
する。図6に見られるように、この移動及びリスト内で
のノードの他の移動は、290、292から294まで
のフィールド内のポインタを変更することにより行なわ
れることができる。
【0061】判断ボックス354では、次にルーチン2
26が、(N+1)をNMAXと比較することにより、メ
モリ内で許容されるノードの最大数を超えずにノードを
メモリに追加できるか否かをテストする。(N+1)が
MAXを超えない場合、ルーチン226は処理ボックス
356で、新ノード生成要求及び適切なリンク情報と共
にグラファルーチン220を呼出す。これらの呼出しに
応じたグラファルーチン220の処理は、図10に関連
して以下で説明されるように実施されることが可能であ
る。新ノードの生成は、新ノードの親から新ノードへの
リンクの生成を含み、また新ノードから既に生成されて
いるそれの子ノードの何れかへのリンクの生成、及びリ
ンクが拡張されていること並びに新ノードが未生成の子
ノードを1つでも有するか否か、更にウォーカルーチン
222により巡回されたことを示す適切なフラグ又は他
のデータの初期化も含むことができる。またルーチン2
26は、グラファルーチン220に戻る前に、新ノード
のための新たなエントリをリスト232の先頭に入れ
る。次にグラファルーチン220は、処理ボックス35
8で新ノードのIDを戻す。
【0062】リンクもまたメモリ内になければならない
ため、NMAXの値はメモリ内に保持され得る総ノード数
ほど大きくてはいけないことに留意することは重要であ
る。N個のノード間の最大可能リンク数は(N!)であ
るが、一般的に ((NMAX*NodeSize)+(N
MAX!*LinkSize))が利用可能なメモリ空間を
超えないほどNMAXを小さくする必要はない。特定のア
プリケーションにおいて、リンク生成のための空間が不
十分なことによりエラーが生じる場合、有向グラフデー
タ構造230に割り当てられたメモリ空間を増やすこと
が必要であり得る。
【0063】ノードの追加が、許容されている最大ノー
ド数を超える場合、ルーチン226は処理ボックス36
0で、ノードの除去及び新ノードの追加等によりメモリ
内にグラフのどの部分が存在するのかを変更するか否か
を判断するために、ナビゲーション履歴判定基準を適用
する。ルーチン226は判断ボックス362での結果に
応じて分岐する。判定基準が、メモリ内にグラフのどの
部分が存在するかを変更しないように判断すると、ルー
チン226は処理ボックス364で空IDを戻す。しか
し、判定基準が変更するように判断すると、ルーチン2
26は処理ボックス366でグラファルーチン220を
メモリからのノード除去要求と共に呼出す。またルーチ
ン226は、リスト232からノードを除去し、グラフ
ァルーチン220への別の要求を介して、未生成の子ノ
ードを有することを示すフラグによりそのノードの親に
印をつける。これらの呼出しに応答したグラファルーチ
ン220の処理は、図11に関連して以下で説明される
ように実施されることが可能である。次にルーチン22
6は、親ノードをリスト232の先頭に移動する。
【0064】この時点で、上述のように、ルーチン22
6は要求されたノードを処理ボックス356で生成する
ことができ、グラファルーチン220は処理ボックス3
58でそのノードのノードIDを戻すことができる。こ
れに対して、ルーチン226が処理ボックス364で空
IDを戻す場合、グラファルーチン220はノードが生
成され得なかったことを示すデータを戻すことができ
る。
【0065】図9は、図8の処理ボックス360及び判
断ボックス362が実施され得る1つの方法をより詳細
に示す。一般的な手法は、除去可能なノードを探索しな
がらリスト232を下から上へ進む。リスト232内の
ノードの順序は、処理ボックス352及び356でのよ
うな変更の結果、並びにペイント及びレイアウト処理等
のノードを走査する他のあらゆるイベントの結果として
受信されたナビゲーション信号に依存するので、これは
ナビゲーション履歴の判定基準の一例である。
【0066】処理ボックス380において、リスト23
2の先頭のエントリのノードIDが保存される。次に処
理ボックス382で、リスト232の最後のノードID
が選択される。判断ボックス384でのテストは、最後
のノードIDを保存された先頭のノードIDと比較する
ので、除去されることが可能なノードを見つけるまでリ
スト232内の各ノードをテストする反復ループを開始
する。
【0067】判断ボックス386でのテストは先ず、図
7の処理ボックス306での最も最近の方向付け巡回又
はマッピング巡回中に、そのノードが巡回されたか否か
を決定するためにノードの方向付け及びマッピングカウ
ントをテストする。現在表示されているノードをメモリ
内に保持することに加え、このテストは図5のルートノ
ード252がメモリから除去されないことを保証する。
判断ボックス386でのテストは、例えば、ウォーカル
ーチン222への呼出しと共に実行されることが可能で
あり、ウォーカルーチン222はノードの方向付け及び
マッピングカウントをそれらの巡回のためのグローバル
カウンタの現在の値と比較することができる。
【0068】最も最近の方向付け巡回又はマッピング巡
回の間にそのノードが巡回されている場合、そのノード
は除去されることが不可能であるため、処理ボックス3
88でリスト232の先頭に移動され、次のノードが選
択される。しかし、そのノードが巡回されていない場
合、このノードは除去の候補であり、処理ボックス39
0で、このノードが除去可能であるか否かを判断する要
求と共にクライアント212の呼出しが実行される。ク
ライアント212は、ノードが除去可能か否かを判断す
るためのあらゆる適切な追加判定基準を有してよい。処
理ボックス392でクライアント212から受信した結
果は、判断ボックス394からどの分岐が選択されるか
を決定する。その結果が、このノードは除去不可能であ
ることを示す場合は、このノードは処理ボックス388
でリスト232の先頭に移動され、別のノードが処理ボ
ックス382で選択される。しかし、その結果が、この
ノードは除去可能であることを示す場合は、図8の処理
ボックス366等で除去される。
【0069】全ノードが選択されると、判断ボックス3
84でのテストは2つのノードIDが一致することを判
断し、リスト232が除去されることが可能なノードを
1つも含まないことを意味する。従って、図8の処理ボ
ックス364等で空IDが戻される。
【0070】図8の処理ボックス360で適用されるナ
ビゲーション履歴判定基準は従って、少なくとも2つの
副判定基準を含む。第1は、除去されるノードが、リス
ト232におけるその位置により示されるように最近あ
まり処理されていないノードであることであり、第2
は、除去されるノードが、最も最近の方向付け巡回及び
マッピング巡回の間に巡回されたノードではないことで
ある。
【0071】図10は、図8の処理ボックス356での
ノード生成が実施され得る1つの方法をより詳細に示
す。ノード生成は、処理ボックス400で、メモリ管理
ルーチン226から新ノードを生成するための呼出しを
グラファルーチン220が受信すると開始される。この
呼出しは、新ノードのノードID及び新ノードの入リン
ク及び出リンクに関する情報を含む。
【0072】グラファルーチン220は処理ボックス4
02で、図5のノード256のような新ノードを生成す
ることにより応答する。またグラファルーチン220
は、第1の親リンクID及び第1の子リンクID、更に新
ノードに含まれるフラグを初期化する。未生成子フラグ
は、新ノードが未生成子ノードを1つも持たないことを
示すようにOFFと初期化され得る。また、方向付け巡
回又はマッピング巡回の間にそのノードが最近巡回され
たか否かを判断するために使用されることが可能なカウ
ンタが、適切な値に初期化され得る。
【0073】次に判断ボックス410で、グラファルー
チン220は、既に生成されている親ノードからの入リ
ンクを新ノードが1つでも有するか否かにより分岐す
る。
【0074】入リンクを有さない場合は、処理ボックス
412でルートノード252への新たなリンクが生成さ
れる。この新リンクの生成は、リンクIDの取得、及び
親ノードIDとしてルートノード252のノードID、
子ノードIDとして新ノードのノードID、を有する図
5のリンク254のようなリンクの生成を含む。更に、
他の適切なリンクIDが設定される。例えば、これがル
ートノード252からの最初の出リンクである場合、新
リンクのIDはそれの第1の子リンクIDとしてルート
ノード252にロードされ、新リンクの先行及び次の子
リンクIDはヌル(空文字)に設定される。そうではな
い場合、新リンクの先行する子リンクIDはルートノー
ド252の子リンクの最後に設定され、そのリンクの次
の子リンクIDは新リンクのIDに設定されるが、新リ
ンクの次の子リンクIDはヌルに設定される。
【0075】他方、新ノードが既に生成されている親ノ
ードからの1つ又は複数の入リンクを有する場合、その
生成されている親ノードのそれぞれへのリンクが処理ボ
ックス414で生成される。各新リンクは、そのリンク
の親ノードIDとして適切なノードIDと、そのリンク
の子ノードIDとして新ノードのノードIDを有する。
更に、他の適切なIDが設定される。例えば、新リンク
が親からの最初の出リンクである場合、新リンクのID
が親ノードにその第1の子リンクIDとしてロードさ
れ、新リンクの先行及び次の子リンクIDはヌルに設定
される。そうでない場合、新リンクの先行する子リンク
IDは親ノードの子リンクの最後に設定され、そのリン
クの次の子リンクIDは新リンクのIDに設定される
が、新リンクの次の子リンクIDはヌルに設定される。
処理ボックス414において、グラファルーチン220
はまた、そのノードが1つでも未生成の子を有するか否
かを判断するために各親ノードをチェックすることが可
能であり、もし有さない場合にはそのノードの未生成子
フラグをOFFに変更する。
【0076】同様に、グラファルーチン220は、新ノ
ードが1つでも出リンクを有するか否かに基づき判断ボ
ックス420で分岐する。出リンクを有する場合、生成
された各子への新リンクが処理ボックス422で生成さ
れる。この新リンクの生成は、リンクIDの取得及び図
5のリンク254のようなリンクの生成を含む。新リン
クがルートノード252からのリンクに置き換わる場
合、これは子ノードの最初の入リンクであるため、子ノ
ードの第1の親リンクIDは新リンクのIDである。ま
た新リンクは、そのリンクの親ノードIDとして新ノー
ドのノードIDを有し、そのリンクの子ノードIDとし
て子ノードのノードIDを有する。更に、他の適切なリ
ンクIDが設定される。例えば、これが新ノードからの
最初の出リンクである場合、新リンクのIDが新ノード
にそのノードの第1の子リンクIDとしてロードされ、
新リンクの先行及び次の子リンクIDはヌルに設定され
る。そうでない場合、新リンクの先行する子リンクID
は新ノードの子リンクの最後に設定され、そのリンクの
次の子リンクIDは新リンクのIDに設定されるが、新
リンクの次の子リンクIDはヌルに設定される。同様
に、そのような場合には先行及び次の親リンクIDがヌ
ルである、新リンクがルートノード252からのリンク
に置き換わるのでない場合、新リンクの先行する親リン
クIDは子ノードの親リンクの最後に設定され、そのリ
ンクの次の親リンクIDは新リンクのIDに設定される
が、新リンクの次の親リンクIDはヌルに設定される。
【0077】生成された子への出リンクを生成した後、
グラファルーチン220は判断ボックス424で新ノー
ドが未生成の子を1つでも有するか否かをテストする。
有さない場合、又は新ノードが出リンクを有さない場
合、端子ボックス428で戻る前に、処理ボックス42
6で未生成子フラグがOFFに設定される。しかし、少
なくとも1つの未生成の子が存在する場合、端子ボック
ス428で「戻る」前に、処理ボックス430で未生成
子フラグがONに設定される。
【0078】図11は、図8の処理ボックス366での
ノード除去が実施され得る1つの方法をより詳細に示
す。ノード除去は、処理ボックス450で、メモリ管理
ルーチン226からノードを除去するための呼出しをグ
ラファルーチン220が受信すると開始される。この呼
出しは、除去されるべきノードのノードIDを含む。
【0079】グラファルーチン220は、処理ボックス
450で受信したノードIDがルートノード252のノ
ードIDであるか否かを判断ボックス452でテストす
ることにより応答する。ルートノードのIDである場合
は、ルーチン220は処理ボックス454で、更なる処
理を行なわずに戻ること等による適切な方法でエラー処
理する。
【0080】判断ボックス452でのテストはまた、処
理ボックス450で受信したノードIDが別の理由によ
り除去されることが不可能なノードのノードIDである
か否かを決定する。例えば、ナビゲーション信号がブッ
クマーク等を含み得る場合、クライアント212はブッ
クマークを有するノードの除去を許可しないであろう。
【0081】ノードIDがルートノード252又は除去
されることが不可能な別のノードのノードIDではない
場合、グラファルーチン220は、処理ボックス456
でそのノードにアクセスし、親リンクのリンクリストを
介して進むためにノードIDを使用する。各親リンクに
対して、グラファルーチン220は、親リンクのフロム
ノードの未生成子フラグをONに設定し、次に親リンク
を削除する。親リンクの削除において、グラファルーチ
ン220はまた、削除されたリンクを除外するように親
リンクのフロムノードの子リンクのリンクリストを変更
することができる。グラファルーチン220はまた、処
理ボックス456で処理された各フロムノードをリスト
232の先頭に移動するようにメモリ管理ルーチン22
6を呼出すことが可能である。
【0082】次にグラファルーチン220は、そのノー
ドの子リンクのリンクリストを介して続けられる外側反
復ループを開始し、そのループは判断ボックス460で
のテストが子リンクを検出しなくなるまで続けられる。
処理ボックス462において、グラファルーチン220
は、次の子リンクのリンクIDを取得するためにノード
のリンクリストにアクセスし、次にそのリンクIDをス
タックに入れることにより外側ループの各反復を開始す
る。
【0083】グラファルーチン220は次に、スタック
内の各リンクIDを処理する内側反復ループを開始す
る。処理ボックス472で、グラファルーチン220
は、最も最近スタックに入れられたリンクである一番上
のリンクのリンクIDをスタックから取得するためにス
タックをポッピングすることにより内側ループの各反復
を開始する。判断ボックス480は次に、一番上のリン
クがそれのツーノードの唯一の親であるか否かを、リン
クIDを使用してそのツーノードの親リンクのリンクリ
ストにアクセスすることによりテストする。唯一の親で
ある場合は、処理ボックス482はそのツーノードの子
リンクのリンクリストにアクセスし、子リンクのリンク
IDをスタックに入れる。次に処理ボックス484は、
メモリからツーノードを削除する。何れの場合も、処理
ボックス486は処理ボックス472から一番上のリン
クを削除する。一番上のリンクがそのツーノードの唯一
の親ではない場合も、処理ボックス486は、削除され
たリンクを除外するようにツーノードの親リンクのリン
クリストを変更することが可能である。
【0084】判断ボックス470でスタックが空である
場合、及び全ての子リンクが判断ボックス460で処理
された場合、処理ボックス490は、ノードIDが処理
ボックス450で受信されたノードを除去し、端子ボッ
クス492は「戻る」。処理ボックス490はまた、例
えば除去されているノードのための全てのブックマーク
等を除去する関連処理を含んでもよい。
【0085】図11の技術は、除去されたノードの1レ
ベル(階層)の子孫のみを除去し、メモリ内に他の祖先
を有する除去されたノードの子孫を除去しない。これに
代わって、この技術は、処理ボックス482及び484
を、判断ボックス460で開始し処理ボックス490の
後で終了する処理手順をノードIDと共に再帰的に呼出
すことに置き換えることで実施されてもよい。またこの
技術は、もしその処理が適切であるならば、メモリ内に
他の祖先を有する子孫も除去するように変更されてもよ
い。
【0086】また、処理ボックス412、414、42
2、456、482、及び486に関連して上述された
ような処理は、ノード生成及び除去とは無関係にリンク
を生成又は除去する際に実行されてもよい。
【0087】図4から11に関連して上述された実施例
に類似の実施は、ノード−リンク構造の表現を表示する
ブラウザで使用されている。
【0088】ナビゲーション信号はしばしば、ノードが
より良く見えるように表現内の他の位置から焦点の中心
に移動されるべきことを要求する。このような多くの例
において、要求された移動は、ノードの追加レイヤー
(層)を表現の周辺部に付加するという結果をもたら
し、それらのノードは先行する反復の間に走査されたノ
ードの子であるので、メモリ内に既に存在しているであ
ろう。従って、これらの例において、先行する反復は、
次に続く反復で走査されるであろう要素のセットを定義
する予測ノード−リンクセットをもたらした。一般に、
先行する反復は、次に続く反復により走査されるであろ
う要素のセットをより高い確率で定義する予測ノード−
リンクセットをもたらす。
【0089】上述の実施に類似の実施は、IBM互換P
Cのプロセッサ上でうまく実行されたが、実施は任意の
適切なプロセッサを有する他の装置で実行されてもよ
い。
【0090】上述の実施に類似の実施は、32ビットのウ
インドウズ(Windows)環境でC++言語を用いてうまく実
行されたが、非オブジェクト指向環境を含む他のプログ
ラム言語及び環境を用いてもよく、また、リスプ(Lis
p)、ユニックス(Unix)環境、ANSI C、及びパスカル(Pas
cal)等のような他のプラットフォームを用いてもよい。
【0091】上述の実施に類似の実施は、一般のXML
フォーマット及びある実験的フォーマットで表示される
ノード−リンクデータを用いてうまく実行されたが、本
発明は、静的又は動的いずれかの、メモリ内又はネット
ワークを介してのように任意の適切な方法でアクセス可
能な、任意の適切なタイプのノード−リンクデータを用
いて実行されてもよい。
【0092】上述の実施に類似の実施は、ナビゲーショ
ン信号に応答してグラフの1つの表現を準備及び表示す
る各反復を用いて実施されたが、本発明は他のタイプの
信号又は呼出しによって呼出される他のタイプの反復、
並びにノード−リンク構造の要素のセットを自動的に走
査することを含む反復を用いて実施されてもよい。自動
的な走査を含むことが可能な処理の幾つかの例が上述さ
れている。
【0093】上述の実施に類似の実施は、キーボード及
びマウスから受信され、且つノード−リンク構造の特定
のタイプの表示された表現に関係するナビゲーション信
号を用いてうまく実行された。しかしながら、本発明
は、ナビゲーション信号を用いて又は用いずに実施され
てもよい。例えば、あるノードの子の異なるソーティン
グに応答して、又はある構造の要素への異なるフィルタ
の適用に応答して、要素を動き回らせてもよい。また、
本発明は、任意の適切なタイプの拡張及び収縮信号、又
は外部の照会、示されたノード又はリンクの下に拡張を
要求するメニューエントリーのような項目の選択、又は
現在の焦点の下に拡張を要求するメニューエントリーの
ような項目の選択から生じた信号を含む他のナビゲーシ
ョン信号を用いて実施されてもよい。ナビゲーション信
号は、代わりに、ビデオゲーム又はバーチャルリアリテ
ィ環境によって生成される空間のような現実には無い空
間又はディスプレイ以外の表示空間に関係してもよく、
また、ナビゲーション信号は、代わりに、他の種類の位
置決め装置、及び英数字又は声、身振りのような言語的
入力、又は他の様式のユーザ入力を受信するための他の
種類の装置を含む、任意の適切なユーザ入力装置によっ
て生成されてもよい。更に、本発明は、ノード−リンク
構造の他のタイプの表現と共に実施されてもよい。本発
明は、アニメーションを一切使用せずに、又はあらゆる
適切なアニメーション技術を使用して、実施されてもよ
い。
【0094】上述の実施に類似の実施は、特定の方法で
取得されたレイアウトデータを用いて実施されている
が、本発明は、そのようなレイアウトを用いて又は用い
ずに実施されてもよく、又はノード−リンク構造全体を
各表現について個別にレイアウトすることによる、又は
ノード−リンク構造を他の方法でレイアウトすることに
よるような、他の方法でレイアウトデータを得ることに
よって実施されてもよい。
【0095】上述の実施に類似の実施は、ユニットディ
スク(単位円)にマッピングされ、次にペイントされる
ノード−リンク構造を用いて実施されているが、本発明
は、マッピングを用いて又は用いずに実施されてもよ
く、又は、ノード−リンク構造を3次元レンダリング空
間及び表示空間を含む任意の他の適切なレンダリング空
間にマッピングして任意の他の適切な表示空間に表示す
ることを含む、任意の他の適切な方法でノード−リンク
構造をマッピング及び表示するように実施されてもよ
い。
【0096】上述された実施に類似の実施は、走査の間
に、走査されたノードの未生成の子を生成し、最近最も
アクセスされていないノードを除去して、予測ノード−
リンクデータを取得するように実施されているが、本発
明は、次に走査されるであろう要素のセットをより高い
確率で定義するノード−リンクデータを取得するための
他の様々な手法により実施されてもよい。上述の実施
は、近接性がどのノードを生成するかを決定し、最新性
(最近の使用頻度)がどのノードを除去するかを決定す
ることにより、近接性に基づく手法及び最新性に基づく
手法の組み合わせを使用する。この手法は、表現全体に
わたって短いスクロール動作が成されるブラウジングア
プリケーションで特に適切に作用する。他の適切な手法
が使用されてもよく、それらの手法は、例えば、ビュー
内の何れかのノードのクローンをクローンの近接ノード
と共にロードするような類似性に基づく手法等を含む。
また、走査されている特定のノード−リンクデータ構造
の特性に基づいて、近接性、最新性、及び類似性の任意
の適切な組み合わせが使用され得る。特に、構造の離散
的な走査領域間で大きな飛越し動作が成されるアプリケ
ーションでは、他の手法がより適切に作用し得る。
【0097】上述の実施は同期的であり、その中でノー
ドは要求された時点で生成されるが、本発明は、自由な
サイクルでクライアントにより操作される適切なスレッ
ド等によりノード生成がバックグラウンドで実行される
ように、非同期で実施されてもよい。
【0098】上述の実施は、どの程度最近ノードが処理
されたか、及び最も最近のペイント処理中にノードが巡
回されたか否かに関する副判定基準を含むナビゲーショ
ン履歴判定基準を適用する。他のあらゆる適切な判定基
準がノードを除去するか否かを決定するために適用され
てよく、例えば、ノード生成の難度に基づく判定基準、
ノード生成の確率に基づく判定基準、又は難度及び確率
の両方に基づく組み合わされた判定基準等が適用され
得、難度及び確率の組み合わせにおいては、難度及び確
率は性能指数で表わされ、削除されるノードに関する性
能指数の積が最も低い。
【0099】上述の実施は、ナビゲーション履歴に関す
る情報をノードIDのためのリンクリストデータ構造で
保存するが、ナビゲーション履歴情報は、他のあらゆる
適切な形式で保存されてよい。
【0100】上述の実施は、1ノードに関するデータを
除去し、別のノードに関するデータを追加することによ
りメモリ内にノード−リンクデータのどの部分が存在す
るかを変更する。変更は、他のあらゆる適切な方法で実
行されてよい。
【0101】上述の実施は、グラフ内のツリーを定義す
るためのリンクの拡張フラグを含むノード−リンクデー
タを用いるが、本発明は、任意の他の適切な方法で定義
されてもよい。特に、上述の実施は、リンクが、フロム
ノードからの出リンクのためのリンクリスト及びツーノ
ードへの入リンクのためのリンクリストの2つのリンク
リスト内の項目として表現される、有向グラフデータ構
造を使用する。他のあらゆる適切なデータ構造が使用さ
れてよい。
【0102】上述の実施は、メモリ容量を示すために最
大ノード数を使用する。メモリ内のノード及びリンクの
総数又はノード−リンクデータの合計サイズ等の、メモ
リ容量の他の測定単位が用いられてよい。
【0103】上述の実施は、循環有向グラフを含む有向
グラフを扱うことができるが、本発明は、他のタイプの
リンクを有向グラフの適切な組合せに変換することによ
って、又は別様ではグラフの構造をツリーにマッピング
するためのプロトコルを供給することによって、他のタ
イプのグラフ用に実施されてもよい。例えば、2つのノ
ード間の無向リンクが、同じノードの間の1対の有向リ
ンクに変換されてもよく、又は適切な基準に基づいて方
向を割り当てられてもよい。一般的に、全ての無向リン
クが1対の有向リンクへと変換されている表現は、結果
的に有向リンクの各対が循環するので、視覚的に混乱さ
せる傾向があるが、別の方法で循環を表示することによ
ってこの混乱は克服されるかもしれない。
【0104】上述の実施では、処理は多くの場合に変更
されてもよい順位で行われる。
【0105】同じく、上述の実施では、幾つかのソフト
ウェアの部分が、グラファ、ウォーカ、ペインタ、メモ
リ管理、及び数学ルーチン、並びにクライアントのよう
に区別されるが、本発明は、ハードウェア及びソフトウ
ェアの他の組合せ並びに任意の適切な方法で構成された
ソフトウェアで実施されてもよい。
【0106】本発明は、ノード−リンク構造の対話式ブ
ラウザの提供に適用された。本発明は、ノード−リンク
構造が視覚化される様々なコンテキストに適用され得
る。特に、本発明は、キャッシュに格納された1組のウ
ェブページ又は他のウェブオブジェクトによって形成さ
れた構造のような、ウェブ関連構造の視覚化に適用され
得る。
【0107】より一般的には、本発明は、組織図、ファ
イルシステム階層、ハイパーテキスト階層、ワールドワ
イドウェブ接続性構造、パーツ分解、SGML構造、又
は任意の他の大きなノード−リンク構造のためのブラウ
ザの提供に適用され得る。このブラウザは、構造又は構
造の内容の編集に用いられてもよい。
【0108】本発明は、ソフトウェアとしての実施例に
関係して述べられてきたが、本発明は専用ハードウェア
を用いて実施されてもよい。
【図面の簡単な説明】
【図1】ノード−リンク構造を定義しているデータのど
の部分をメモリに存在させるかを制御する方法を示す概
略的なフローダイアグラムである。
【図2】図1に示されるような制御の実行における一般
的な処理を示すフローチャートである。
【図3】図1に示されるような制御を実行する装置の一
般的な構成要素を示す概略図である。
【図4】システムの概略図である。
【図5】有向グラフデータ構造の概略図である。
【図6】ノード識別子(ID)のリストの概略図であ
る。
【図7】図4のルーチンがどのようにナビゲーション信
号に応答するかを示すフローチャートである。
【図8】図4のルーチンがどのようにノード生成要求に
応答するかを示すフローチャートである。
【図9】メモリ管理ルーチンがどのようにナビゲーショ
ン履歴判定基準を適用するかをより詳細に示すフローチ
ャートである。
【図10】図4のルーチンがどのようにノードを生成す
るかをより詳細に示すフローチャートである。
【図11】図4のルーチンがどのようにノードを除去す
るかをより詳細に示すフローチャートである。
【符号の説明】
158 ノード−リンクデータ 190 ノード−リンクデータの本体 192 ノード−リンクデータのメモリ内の部分 230 有向グラフデータ構造 250 IDマッピング構造 252 ルートノード要素 254 リンク要素 256 ノード要素
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン オー.ランピング アメリカ合衆国 94024 カリフォルニア 州 ロス アルトス エヴァ アベニュー 1299 (72)発明者 ラマナ ビー.ラオ アメリカ合衆国 94112 カリフォルニア 州 サンフランシスコ イナ コート 50

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ノード−リンク構造を定義しているノー
    ド−リンクデータのどの部分をメモリに存在させるかを
    制御する方法であって、 各反復が前記ノード−リンク構造の要素のセットを自動
    的に走査することを含む一連の反復を実行するステップ
    を含み、 前記反復の少なくとも1回が、前記反復において要素の
    セットを自動的に走査する間に、メモリ内に前記ノード
    −リンクデータの変更された部分を取得するために前記
    メモリ内にノード−リンクデータのどの部分が存在する
    かを変更するステップを含み、前記ノード−リンクデー
    タの変更された部分は、次の反復により走査されるであ
    ろう要素のセットをより高い確率で定義する、 メモリ内に配置されるノード−リンクデータ部分の制御
    方法。
JP11214493A 1998-07-29 1999-07-29 メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法 Pending JP2000076119A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/124,474 US6654761B2 (en) 1998-07-29 1998-07-29 Controlling which part of data defining a node-link structure is in memory
US124474 1998-07-29

Publications (1)

Publication Number Publication Date
JP2000076119A true JP2000076119A (ja) 2000-03-14

Family

ID=22415108

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11214493A Pending JP2000076119A (ja) 1998-07-29 1999-07-29 メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法

Country Status (3)

Country Link
US (1) US6654761B2 (ja)
EP (1) EP0977131A3 (ja)
JP (1) JP2000076119A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006521639A (ja) * 2003-03-10 2006-09-21 ユニシス コーポレイシヨン インタロック状態のツリーデータストアにデータを記憶し、このデータにアクセスするためのシステムおよび方法
JP2006522984A (ja) * 2003-03-10 2006-10-05 ユニシス コーポレイシヨン インタロック状態のツリーデータストアにデータを記憶し、このデータにアクセスするためのシステムおよび方法

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377259B2 (en) 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US8069407B1 (en) * 1998-12-08 2011-11-29 Yodlee.Com, Inc. Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes
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
US7752535B2 (en) 1999-06-01 2010-07-06 Yodlec.com, Inc. Categorization of summarized information
US6624826B1 (en) * 1999-09-28 2003-09-23 Ricoh Co., Ltd. Method and apparatus for generating visual representations for audio documents
KR100429838B1 (ko) * 2000-03-14 2004-05-03 삼성전자주식회사 인터랙티브 멀티미디어 콘텐츠 서비스에서 업스트림채널을 이용한 사용자 요구 처리방법 및 그 장치
US7660869B1 (en) * 2000-08-21 2010-02-09 Vignette Software, LLC Network real estate analysis
US7627588B1 (en) 2001-05-07 2009-12-01 Ixreveal, Inc. System and method for concept based analysis of unstructured data
USRE46973E1 (en) 2001-05-07 2018-07-31 Ureveal, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
US7194483B1 (en) 2001-05-07 2007-03-20 Intelligenxia, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
US7305667B1 (en) 2001-06-15 2007-12-04 Oracle International Corporation Call back structures for user defined DOMs
US7437662B1 (en) 2001-06-15 2008-10-14 Oracle International Corporation Representing deltas between XML versions using XSLT
US7321900B1 (en) * 2001-06-15 2008-01-22 Oracle International Corporation Reducing memory requirements needed to represent XML entities
US7797271B1 (en) * 2001-06-18 2010-09-14 Versata Development Group, Inc. Custom browse hierarchies for subsets of items in a primary hierarchy
US7194477B1 (en) * 2001-06-29 2007-03-20 Revenue Science, Inc. Optimized a priori techniques
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
US7843855B2 (en) * 2001-09-13 2010-11-30 Network Foundation Technologies, Llc System and method for broadcasting content to nodes on computer networks
US7263694B2 (en) * 2001-10-26 2007-08-28 International Business Machines Corporation Directed non-cyclic graph walking system for data processing and analysis in software application
US6889226B2 (en) * 2001-11-30 2005-05-03 Microsoft Corporation System and method for relational representation of hierarchical data
US7124358B2 (en) * 2002-01-02 2006-10-17 International Business Machines Corporation Method for dynamically generating reference identifiers in structured information
US8589413B1 (en) 2002-03-01 2013-11-19 Ixreveal, Inc. Concept-based method and system for dynamically analyzing results from search engines
US7810024B1 (en) * 2002-03-25 2010-10-05 Adobe Systems Incorporated Efficient access to text-based linearized graph data
US8667390B2 (en) 2002-03-25 2014-03-04 Adobe Systems Incorporated Asynchronous access to structured data
US20050010606A1 (en) * 2003-07-11 2005-01-13 Martin Kaiser Data organization for database optimization
US20050278362A1 (en) * 2003-08-12 2005-12-15 Maren Alianna J Knowledge discovery system
US7333997B2 (en) * 2003-08-12 2008-02-19 Viziant Corporation Knowledge discovery method with utility functions and feedback loops
US7814047B2 (en) 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US7747580B2 (en) * 2003-08-25 2010-06-29 Oracle International Corporation Direct loading of opaque types
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
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
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
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
JP4046086B2 (ja) * 2004-01-21 2008-02-13 トヨタ自動車株式会社 可変圧縮比内燃機関
US8086660B2 (en) * 2004-05-21 2011-12-27 Ixia Distributed data model
CN1997995B (zh) 2004-06-23 2010-05-05 甲骨文国际公司 使用转换有效评估查询
US20050289175A1 (en) * 2004-06-23 2005-12-29 Oracle International Corporation Providing XML node identity based operations in a value based SQL system
US7870112B2 (en) * 2004-06-30 2011-01-11 Oracle International Corporation Efficient memory usage for unified document object model implementation for Java
US7587409B2 (en) * 2004-09-24 2009-09-08 Sas Institute Inc. Computer-implemented system and method for handling node-link representations
US7389282B2 (en) * 2004-11-02 2008-06-17 Viziant Corporation System and method for predictive analysis and predictive analysis markup language
US20070162508A1 (en) * 2004-11-08 2007-07-12 Mazzagatti Jane C Updating information in an interlocking trees datastore
US7526346B2 (en) * 2004-12-10 2009-04-28 General Motors Corporation Nonlinear thermal control of a PEM fuel cell stack
EP1877968A2 (en) * 2005-04-12 2008-01-16 Alianna J. Maren System and method for evidence accumulation and hypothesis generation
US8078636B2 (en) * 2005-08-24 2011-12-13 Temporal Dynamics, Inc. Database heap management system with variable page size and fixed instruction set address resolution
US20070156720A1 (en) * 2005-08-31 2007-07-05 Eagleforce Associates System for hypothesis generation
WO2007047252A2 (en) 2005-10-11 2007-04-26 Intelligenxia Inc. System, method & computer program product for concept based searching & analysis
US7933928B2 (en) * 2005-12-22 2011-04-26 Oracle International Corporation Method and mechanism for loading XML documents into memory
US7657848B2 (en) * 2006-01-09 2010-02-02 Sas Institute Inc. Computer-implemented node-link processing systems and methods
US7676485B2 (en) 2006-01-20 2010-03-09 Ixreveal, Inc. Method and computer program product for converting ontologies into concept semantic networks
US8429526B2 (en) * 2006-04-10 2013-04-23 Oracle International Corporation Efficient evaluation for diff of XML documents
CN101136106B (zh) * 2006-08-30 2010-07-07 国际商业机器公司 基于双曲几何显示加权树的方法和计算机系统
US7606752B2 (en) 2006-09-07 2009-10-20 Yodlee Inc. Host exchange in bill paying services
US7933935B2 (en) 2006-10-16 2011-04-26 Oracle International Corporation Efficient partitioning technique while managing large XML documents
US8782043B2 (en) * 2007-07-10 2014-07-15 Nbc Universal, Inc. Multi-sided media viewer and technique for media association
US8429196B2 (en) 2008-06-06 2013-04-23 Oracle International Corporation Fast extraction of scalar values from binary encoded XML
JP5430164B2 (ja) * 2009-01-30 2014-02-26 キヤノン株式会社 データ管理方法及び装置
US9245243B2 (en) 2009-04-14 2016-01-26 Ureveal, Inc. Concept-based analysis of structured and unstructured data using concept inheritance
US8935129B1 (en) * 2010-06-04 2015-01-13 Bentley Systems, Incorporated System and method for simplifying a graph'S topology and persevering the graph'S semantics
US9201890B2 (en) * 2010-10-04 2015-12-01 Dell Products L.P. Storage optimization manager
US9355478B2 (en) * 2011-07-15 2016-05-31 Hewlett Packard Enterprise Development Lp Reflecting changes to graph-structured data
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9148387B2 (en) 2013-05-10 2015-09-29 Brocade Communications Systems, Inc. Hardware hash table virtualization in multi-packet processor networking systems
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US9313102B2 (en) * 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
KR101764994B1 (ko) * 2013-05-31 2017-08-03 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 스케일가능 및 동적 시맨틱 데이터에 기초한 증분적 추론
EP2838015A1 (en) * 2013-08-13 2015-02-18 Danfoss Power Solutions GmbH & Co. OHG Dependency tool for use in graphical programming
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) * 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US10049334B2 (en) * 2014-02-24 2018-08-14 International Business Machines Corporation Providing support to human decision making
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10019536B2 (en) * 2014-07-15 2018-07-10 Oracle International Corporation Snapshot-consistent, in-memory graph instances in a multi-user database
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US10963476B2 (en) * 2015-08-03 2021-03-30 International Business Machines Corporation Searching and visualizing data for a network search based on relationships within the data
US11456885B1 (en) 2015-12-17 2022-09-27 EMC IP Holding Company LLC Data set valuation for service providers
US10528522B1 (en) 2016-03-17 2020-01-07 EMC IP Holding Company LLC Metadata-based data valuation
US10838946B1 (en) 2016-03-18 2020-11-17 EMC IP Holding Company LLC Data quality computation for use in data set valuation
US10838965B1 (en) * 2016-04-22 2020-11-17 EMC IP Holding Company LLC Data valuation at content ingest
US10671483B1 (en) 2016-04-22 2020-06-02 EMC IP Holding Company LLC Calculating data value via data protection analytics
US10789224B1 (en) 2016-04-22 2020-09-29 EMC IP Holding Company LLC Data value structures
US10210551B1 (en) 2016-08-15 2019-02-19 EMC IP Holding Company LLC Calculating data relevance for valuation
CN106446417B (zh) * 2016-09-27 2023-05-12 东软集团股份有限公司 并发体的处理方法、装置和终端
US10719480B1 (en) 2016-11-17 2020-07-21 EMC IP Holding Company LLC Embedded data valuation and metadata binding
US11037208B1 (en) 2016-12-16 2021-06-15 EMC IP Holding Company LLC Economic valuation of data assets
US11070461B1 (en) * 2017-03-20 2021-07-20 Amazon Technologies, Inc. System for dividing a tree data structure to improve traversal operations
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008820A (en) 1987-03-30 1991-04-16 International Business Machines Corporation Method of rapidly opening disk files identified by path names
US5408655A (en) * 1989-02-27 1995-04-18 Apple Computer, Inc. User interface system and method for traversing a database
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
JP3245655B2 (ja) 1990-03-05 2002-01-15 インキサイト ソフトウェア インコーポレイテッド 作業スペースの表示処理方法
US5604841A (en) * 1990-07-06 1997-02-18 United Technologies Corporation Hierarchical restructuring generic test templates and reusable value spaces for machine failure isolation using qualitative physics
US5333254A (en) * 1991-10-02 1994-07-26 Xerox Corporation Methods of centering nodes in a hierarchical display
CA2097232C (en) 1993-05-28 1999-01-19 Phillip J. Beaudet Displaying partial graphs by expanding and collapsing nodes
US5632009A (en) 1993-09-17 1997-05-20 Xerox Corporation Method and system for producing a table image showing indirect data representations
JP2906949B2 (ja) * 1993-10-27 1999-06-21 富士ゼロックス株式会社 ハイパーテキスト装置
US5806079A (en) * 1993-11-19 1998-09-08 Smartpatents, Inc. System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects
US5522022A (en) * 1993-11-24 1996-05-28 Xerox Corporation Analyzing an image showing a node-link structure
US5522014A (en) * 1994-04-26 1996-05-28 United Technologies Corporation Intergrated qualitative/quantitative reasoning with enhanced core predictions and extended test procedures for machine failure isolation using qualitative physics
JPH0854998A (ja) * 1994-07-28 1996-02-27 Xerox Corp コンピュータ制御ディスプレイシステム
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
US5590250A (en) 1994-09-14 1996-12-31 Xerox Corporation Layout of node-link structures in space with negative curvature
US5619632A (en) 1994-09-14 1997-04-08 Xerox Corporation Displaying node-link structure with region of greater spacings and peripheral branches
US5694594A (en) * 1994-11-14 1997-12-02 Chang; Daniel System for linking hypermedia data objects in accordance with associations of source and destination data objects and similarity threshold without using keywords or link-difining terms
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
EP1515248A3 (en) 1994-12-16 2005-07-20 Canon Kabushiki Kaisha Hierarchical data display method and information processing system for realizing it
JP2861908B2 (ja) * 1996-01-16 1999-02-24 日本電気株式会社 ブラウジング装置
US5812134A (en) * 1996-03-28 1998-09-22 Critical Thought, Inc. User interface navigational system & method for interactive representation of information contained within a database
JPH1069423A (ja) * 1996-08-28 1998-03-10 Nec Corp ハイパーメディアシステムおよびそのディレクトリデータ管理方法
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
EP0968477A1 (en) * 1997-03-24 2000-01-05 Queen's University At Kingston Coincidence detection method, products and apparatus
US6369819B1 (en) * 1998-04-17 2002-04-09 Xerox Corporation Methods for visualizing transformations among related series of graphs
US6108698A (en) 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
US6377259B2 (en) * 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US6377287B1 (en) * 1999-04-19 2002-04-23 Hewlett-Packard Company Technique for visualizing large web-based hierarchical hyperbolic space with multi-paths
US6282694B1 (en) * 1999-06-18 2001-08-28 Chung-Kuan Cheng IC design floorplan generation using ceiling and floor contours on an O-tree structure

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006521639A (ja) * 2003-03-10 2006-09-21 ユニシス コーポレイシヨン インタロック状態のツリーデータストアにデータを記憶し、このデータにアクセスするためのシステムおよび方法
JP2006522984A (ja) * 2003-03-10 2006-10-05 ユニシス コーポレイシヨン インタロック状態のツリーデータストアにデータを記憶し、このデータにアクセスするためのシステムおよび方法

Also Published As

Publication number Publication date
EP0977131A2 (en) 2000-02-02
US20010042062A1 (en) 2001-11-15
US6654761B2 (en) 2003-11-25
EP0977131A3 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
JP2000076119A (ja) メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法
JP2000067086A (ja) ノ―ド―リンクデ―タ取得方法
US6300957B1 (en) Mapping a node-link structure to a rendering space beginning from any node
JP4864181B2 (ja) ノード表示装置
JP4140980B2 (ja) プログラムツリーを表示するコンピュータプログラムの構文依存しない表示方法
US8311797B2 (en) Viewing system that supports multiple electronic document types
US4937760A (en) Method for sharing common values implicitly among communicating generative objects
North et al. Applications of graph visualization
JP2000099226A (ja) ディスプレイ上にノ―ド―リンク表現を表示する方法
US20040205594A1 (en) Hierarchical drag and drop structure editor for web sites
US20170206188A1 (en) Manipulation of an ajax tree presentation
EP0924629A2 (en) Virtual navigation
JPH06266781A (ja) ナビゲート可能な形式でのツリーの格納
JPH06290086A (ja) 構造データ処理装置
US7020847B1 (en) Search and navigation device for hypertext documents
JP2839555B2 (ja) 情報検索方法
Van Dam et al. A compact data structure for storing, retrieving and manipulating line drawings
JPH01140332A (ja) 情報検索装置及び情報検索方法
CN109753533A (zh) 一种多源关系型数据库客户端开发方法及装置
JP2004171521A (ja) インクツリーのための共通インタフェース
RU2613026C1 (ru) Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
US7359914B2 (en) Reference manager
JPH086957A (ja) データ検索装置
KR0174870B1 (ko) 객체 지향 디비엠에스에서 무한의 중첩 객체를 갖는 복합 객체의 브라우징 방법
Van Dam Some implementation issues relating to data structures for interactive graphics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091117