(57)【特許請求の範囲】
【請求項１】
リソグラフィシミュレーションに適用されるリレーショナルデータ構造を備えたデータをコンピュータシステムによって管理する方法であって、前記データがサブツリー構造を有する１つ又は複数のツリー構造として構成され、各ツリー又はサブツリー構造が、ノードを有し、かつ、前記ツリー構造又は前記サブツリー構造の少なくとも１つのうちのノードが別のツリー構造の１つ又は複数のノードに関連することを示す関係情報を有し、
前記システムによって、前記リレーショナルデータ構造をデータベース記憶部へ格納するステップと、
前記システムの読み出し部によって、前記データベース記憶部から前記ノードの関係情報を読み出すステップと、
前記システムの割り当て部によって、前記関係情報に従って前記ツリー構造又は前記サブツリー構造の少なくとも１つを別のツリー構造に割り当てるステップと
を含み、
前記割り当てが、前記ツリー構造又は前記サブツリー構造の１つと前記別のツリー構造との間に値スイッチを追加することを含み、前記値スイッチが、前記別のツリー構造内のサブツリー構造のノードを直接的に選択するように構成される、方法。
【請求項２】
前記サブツリー構造が属するツリー構造内にサブツリー構造を再割り当てすることを更に含む、請求項１に記載の方法。
【請求項３】
前記再割り当てが、前記サブツリー構造と前記ツリー構造との間にノードを追加することを含む、請求項２に記載の方法。
【請求項４】
前記ノード間の依存性を示すクロス依存性情報をノードに追加することを更に含む、請求項１に記載の方法。
【請求項５】
リソグラフィシミュレーションに適用されるリレーショナルデータ構造を備えたデータを管理するシステムであって、前記データがサブツリー構造を有する１つ又は複数のツリー構造として構成され、各ツリー又はサブツリー構造が、ノードを有し、かつ、前記ツリー構造又は前記サブツリー構造の少なくとも１つのうちのノードが別のツリー構造の１つ又は複数のノードに関連することを示す関係情報を有し、
前記リレーショナルデータ構造を格納するデータベース記憶部と、
前記データベース記憶部から前記ノードの関係情報を読み出す読み出し部と、
前記関係情報に従って前記ツリー構造又は前記サブツリー構造の少なくとも１つを前記別のツリー構造に割り当てるように構成された割り当て部と、
を備え、
前記割り当て部が、前記ツリー構造又は前記サブツリー構造の１つと前記別のツリー構造との間に値スイッチを追加するように更に構成され、前記値スイッチが、前記別のツリー構造内のサブツリー構造のノードを直接的に選択するように構成される、システム。
【請求項６】
前記割り当て部が、前記サブツリー構造が属するツリー構造内にサブツリー構造を再割り当てするように更に構成される、請求項５に記載のシステム。
【請求項７】
前記割り当て部が、前記サブツリー構造と前記ツリー構造との間にノードを追加するように更に構成される、請求項６に記載のシステム。
【請求項８】
前記ノード間の依存性を示すノードにクロス依存性情報を追加するように構成された追加部を更に備える、請求項５に記載のシステム。
【請求項９】
前記ノードが、プロパティ及び値を有し、
前記システムが、前記ノードの前記プロパティ及び値を表示するテーブルビューを作成するように構成されたテーブル作成部を更に備える、請求項５に記載のシステム。
【請求項１０】
前記テーブルビューが、子孫ノードのプロパティ及び値を含む、請求項９に記載のシステム。
【請求項１１】
リソグラフィシミュレーションに適用されるリレーショナルデータ構造を備えたデータを管理する方法をコンピュータに実行させる命令をその内部に格納するコンピュータ読み取り可能媒体であって、
前記データがサブツリー構造を有する１つ又は複数のツリー構造として構成され、各ツリー又はサブツリー構造が、ノードを有し、かつ、前記ツリー構造又は前記サブツリー構造の少なくとも１つのうちのノードが別のツリー構造の１つ又は複数のノードに関連することを示す関係情報を有し、
前記コンピュータによって、前記リレーショナルデータ構造をデータベース記憶部へ格納するステップと、
前記コンピュータの読み出し部によって、前記データベース記憶部から前記ノードの関係情報を読み出すステップと、
前記コンピュータの割り当て部によって、前記関係情報に従って前記ツリー構造又は前記サブツリー構造の少なくとも１つを別のツリー構造に割り当てるステップであって、前記割り当てが、前記ツリー構造又は前記サブツリー構造の１つと前記別のツリー構造との間に値スイッチを追加することを含み、前記値スイッチが、前記別のツリー構造内のサブツリー構造のノードを直接的に選択するように構成される、ステップと
を実行させるプログラムを格納するコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
[0001]  本出願は、２００７年１０月１２日出願の米国仮出願第６０／９６０７５７号の優先権を主張する。その内容は、全体を参照により本明細書に組み込むものとする。
【０００２】
[0002]  本発明は、概して、情報表示方法に関する。より詳細には、本発明は、ツリーベースのデータ構造又はリレーショナルテーブルベースのフラットデータ構造などの複雑なリレーショナルデータ構造(relational data structure)を有するデータを表示する方法及びシステムを提供する。
【背景技術】
【０００３】
[0003]  本発明に関連する背景を説明する前に、本出願で一貫して使用される用語について定義する。本出願で、「ノード」("Node")は、グラフィカル表現上のノードとして記述可能なデータ構造下の任意のオブジェクト及びそのプロパティを意味する。「関係」("Relationship")は、２つのノード間の一方向又は双方向の任意のリンクを意味する。「親／子／兄弟」("Parent/Child/Sibling")は、ＡからＢにパスが直接繋がっていれば、Ａは親、Ｂは子であり、ＢとＣが同じ親を共有する場合、それらは兄弟であることを意味する。「子孫／祖先」("Descendant/Ancestor")はＡからＢへのパスが存在する場合、Ａが祖先、及びＢが子孫であるということを意味する。「依存関係」("Dependency Relationship")は、ノードＡの変化がノードＢの変化をもたらす場合、ＢのＡへの依存性が存在するということを意味する。「クロス依存性」("Cross Dependency")は、ＢがＡの子孫でない場合のＢのＡへの依存性を意味する。「ルート」("Root")は、親を有さないノードを意味する。「リーフ」("Leaf")は、子を有さないノードを意味する。「深さ」("Depth")は、ルートからノードへのパス上のノード数を意味する。「レベル」("Level")は、ノードの表示深さを意味し、同じ深さを有するノードは、通常、同一のレベルである。「参照関係」("Reference Relationship")は、非リーフノードを表すリーフノードを意味する。「プロパティ」("Property")は、データフィールドの記述を意味する。「プロパティ値」("Property value")は、あるデータフィールドの値を意味する。「プロパティと値によるインデックス」("Property-and-value index")は、個別の各要素の一意の識別子を意味する。「プロパティビュー」("Property View")は、各ノードがプロパティ名とプロパティ値という２つの項目を有するツリービューの拡張を意味する。「組合せプロパティ／テーブルビュー」("Combined Property/Table View")は、プロパティビューとテーブルビューとの組合せを意味する。プロパティビューは
、ノードの階層ビューを提供し、テーブルビューは、それに応じてそのノードの全体ビューを提供する。
【０００４】
[0004]  大半のコンピュータアプリケーションは、ツリー構造又はリレーショナルテーブルベースのフラットデータ構造を有する階層データなどのリンクされた情報の表現を表示する必要がある。リンクされた情報とは、一方向又は双方向の何らかの論理的又は組織的な関係を有する情報を意味する。例えば、組織表、コンピュータプログラム、ファイリングシステム、又はシミュレーションシステムは、そのような階層データ構造を含む。通常、これらのデータ構造は、多くの場合、コンピュータディスプレイモニタの画面内に表示するには大きすぎる。それ故、ユーザがその構造内の要素を容易に見つけ、２つ又はそれ以上の要素間の関係を理解するためのこれらの構造を表示する方法を提供する必要があった。
【０００５】
[0005]  図１は、グラフィックで表現された従来のリレーショナルデータ構造を示す。図１で、各オブジェクトは、いくつかのプロパティ及び／又はいくつかの関連オブジェクトを含む。例えば、オブジェクト１（１）は、プロパティ１、２及び３と関連オブジェクト２及び３を含む。オブジェクト２（２）は、プロパティ４及び５と関連オブジェクト４及び５を含む。データ構造は、さらに、テーブルフォーマットの関係１〜４を含む関係テーブル３を含む。例えば、関係１は、オブジェクト１と２との関係を表す。図１で、データ構造は、階層ビューではなくフラット構造ビューで表される。オブジェクトの数が増加すると、関係テーブルはますます複雑になることに留意されたい。
【０００６】
[0006]  また、図２は、ツリーグラフで表現された別の従来のデータ構造を示す。図２には、３つのツリー構造がある。すなわち、ルートノードＡの直下の第１のツリー構造４と、ルートノードＦの直下の第２のツリー構造５と、ルートノードＣの直下の第３のツリー構造６である。例えば、第１のツリー構造４は、３つのプロパティ、すなわち、ノードＡの直下の１つのオブジェクトＮと２つの関係４１及び４２を含む。オブジェクトＮは、２つのオブジェクトＤ及びＧと、１つのプロパティと、１つの関係Ｌとを含む。オブジェクトＤ及びＧは、それぞれ３つのプロパティを含み、オブジェクトＧの直下のプロパティの１つは別のプロパティＫを含む。これら３つのツリー構造は、独立したツリーであってもよく、又は別の親ノードの直下のサブツリーであってもよい。
【０００７】
[0007]  参照ノード４１は、ノードＦの直下のオブジェクト５１への参照関係を含み、参照ノード４２は、ルートノードＦへの参照関係を表し、参照ノード４４は、ノードＣの直下のオブジェクトＨ、Ｉ及びＪへの参照関係を表す。更に、参照ノード６１〜６３は、別のシステム７への参照関係を表すことができる。図２に示すデータ構造は、例えば、ノードＤとＥの間の参照関係を含む関係テーブル８を更に含む。一般関係は、依存関係又は参照関係として表すことができる。所与のケースで、ＤＩＥは参照関係であるが、関係は従来のツリーグラフで表せないため、グラフ上で表すことはできない。
【０００８】
[0008]  図２に示すツリーグラフは、テーブルビューでも表すことができる。図３は、図２に示すツリー４の従来のテーブルビューを示す。テーブルビュー９では、オブジェクトＤに含まれるプロパティ値ｐ１、ｐ２及びｐ３と、オブジェクトＧに含まれるプロパティ値ｐ１’、ｐ２’及びｐ３’が表示される。ノードＫの値は表示されないことに留意されたい。
【０００９】
[0009]  しかし、図１〜図３に示されるデータ構造の従来の表現には、以下の問題点がある。第１に、ノードを探索する効率的な方法がない。例えば、図２では、Ａ、Ｆ及びＣに対応するツリーのルートであるべき複数のツリーエントリがナビゲーションの様々な目的のために必要であるため、すべてに通用する解決方法は存在しない。ユーザがノードＡからノードＢへナビゲートしたい場合、まずエントリＡを通過し、Ｌへナビゲートし、Ｊへの参照を入手し、次にＪを含む別のエントリＣを通過し、最終的にノードＢに到達しなければならない。その結果、ノードＡからＢへのナビゲート時に、ユーザはノードＣを通過しなければならず、ツリー全体をナビゲートする際に冗長な情報が生成される。
【００１０】
[0010]  第２に、非リーフノードはすでに子を含むため、非リーフノードに対して参照はできない。それ故、他の非リーフノードへのリンクを確立することができない。例えば、図２で、ユーザがノードＡからＥへナビゲートする時に、ノードＤがノードＥとある関係を有する場合、ナビゲーションはノードＡを通過してオブジェクトＤを入手し、関係テーブル８にアクセスして関係Ｄ／Ｅを入手し、次にツリー５へ進んでノードＦを通してオブジェクトＥを入手しなければならない。しかし、Ｄは非リーフノードであるため、Ｅへのリンクを有することができない。非リーフノードはすでに複数の子を有しているため、空ノードではない。従来のツリー参照表現は、空ノードを用いて実行される。これは、空ノード（リーフノード）が他の意味を持たないからである。
【００１１】
[0011]  第３に、クロス依存性の更新は、ツリーの一部又は全体について実行しなければならないため、クロス依存性ノードを更新する有効な方法はない。例えば、図２で、プロパティＢがプロパティＫに依存する場合、依存関係を用いてその依存性を定義しなければならないが、プロパティＫの変更は直接ノードＢに送信することができない。大半のケースでは、既存の依存性関係は、依存性が存在した受信側オブジェクトを明確にしない。依存オブジェクトを更新するには、同じクラスの依存及び非依存オブジェクトを含むすべてのオブジェクトを更新する必要がある。その結果、更新が冗長になる。ツリーＨ、Ｉ、Ｊは、同じクラスに基づくため、同じアーキテクチャを有し、ツリーＪのＢだけが更新されるのではなく、ツリーＨ、Ｉ内のツリーＪのＢと同じ要素も更新される。
【００１２】
[0012]  第４に、情報及び表示の冗長性がある。ツリー構造をナビゲートする時には、ノードを特定するために、すべての上位レベルのノードを通過することが必須である。ツリー構造内のそれらの兄弟とすべてのオブジェクト（同じクラスであるか否かにかかわらず）を検索又は表示しなければならない。その結果、各階層レベルで冗長な兄弟ノードの検索又は表示が行われる。例えば、図２で、ノードＤ及びＧが同じクラスであり、ノードＨ、Ｉ、及びＪが同じクラスであるが、グラフではこれらすべてが兄弟ノードとして表される。それ故、ノードＤを表示する時には、例えば、ノードＧを検索し表示しなければならない。
【００１３】
[0013]  第５に、表示の変更には融通性がない。同一のレベル上に深さが異なるノードを表示するか、又は類似のプロパティを備えた異なるクラス間の分散ノードを管理することは不可能である。ノードは、一般に固定場所に常駐しているため、ユーザはノードの表示レベルを変更することができない。
【００１４】
[0014]  更に、融通性がないテーブルビューでは、限られた情報しか表示されない。テーブルビューは、所与のノードの１つのレベルの情報しか有さないので、子孫ノードが直接の子ノードの１つでない場合、子孫ノード情報のすべては表示できないし、参照先オブジェクトのプロパティも表示できない。単に現在のノードの１つのレベルの子を定義することができるにとどまり、それ故、子以外の子孫又は参照先オブジェクトのノードプロパティは、テーブルビューで表示することができない。例えば、図３で、ノードＫは、既存のテーブルビュー９内に表示することができない。ｐ２及びｐ２’が参照元オブジェクトノードの場合、参照先オブジェクトのプロパティは現在のテーブル内に表示することができない。現在の実施されたテーブルは、その直接の子しか表示できないという制限された能力しか有さず、参照オブジェクトはツリー外の関係として有効にされる。従って、現在の実施されたテーブル実装では、テーブル実装から参照先オブジェクトのプロパティを確認することができない。
【００１５】
[0015]  更に、テーブルグラフのノードの全体を表示することは不可能である。代わりに、正確な情報を得るには多数のテーブルを通過しなければならない。データツリーがノードＡの複数のオブジェクトを有する場合、既存のテーブル実装でＡの全プロパティを１つのテーブルビュー内に配置することはできない。
【００１６】
[0016]  従って、上記問題を克服する融通性があるフォーマットで複雑なリレーショナルデータ構造を有するデータを表示する方法を提供することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
[0017]  本発明の１つの目的は、コンパクトなシステムビューワのためのプロパティと値の組合せによるインデックス付けによるオブジェクト参照を用いて直接的で直裁的なインデックス付け方法を提供することである。また、別の目的は、子孫を管理し、各ノードに対して新しいプロパティと値の組合せによるインデックス付け方法が使用される論理的な意味による子孫の再構成の機能を備えた簡単なデータ管理方法及びシステムを提供することである。
【００１８】
[0018]  本発明の別の目的は、ノードに属する選択された子孫全体を表示できるプロパティと値の組合せによるインデックス付けシステムによって管理される簡単なテーブル管理方法及びシステムを提供することである。また、１つの目的は、ノードの論理的分類が可能であるが新しいノードが背景のデータシステムの表現を全く有さない階層的な仕方で任意のノードを追加する簡単な方法及びシステムを提供することである。更に、本発明の１つの目的は、１つのノードで実行されたいかなる必要な変更も関連するノードに容易に伝搬することができる簡単なクロス依存性管理システムを提供することである。
【課題を解決するための手段】
【００１９】
[0019]  従って、本発明は、複雑なリレーショナルデータ構造を備えたデータを管理する方法に関する。この方法は、上記データがサブツリー構造を有する１つ又は複数のツリー構造を有し、各ツリー又はサブツリー構造がノードを含み、関係情報がノード間の関係を示し、上記関係情報が上記ツリー構造又は上記サブツリー構造の少なくとも１つのうちのノードが別のツリー構造の１つ又は複数のノードに関連することを示す場合に、上記関係情報に従って上記ツリー構造又は上記サブツリー構造の少なくとも１つを別のツリー構造に割り当てることを含む。
【００２０】
[0020]  上記方法は、上記サブツリー構造が属するツリー構造内にサブツリー構造を再割り当てすることを更に含む。この方法では、上記再割り当ては、上記サブツリー構造と上記ツリー構造との間にノードを追加することを含むことができる。
【００２１】
[0021]  本発明の上記方法では、上記ツリー構造又は上記サブツリー構造の１つと別のツリー構造との間に値スイッチを追加することを含むことができる。本発明の上記方法は、上記ノード間の依存性を示すクロス依存性情報をノードに追加することを更に含むことができる。上記ノードは、プロパティ及び値を含み、本発明の上記方法は、上記ノードのプロパティ及び値を表示するテーブルビューを作成することを更に含むことができる。
【００２２】
[0022]  また、本発明は、リレーショナルデータ構造を備えたデータを管理するシステムに関する。このシステムは、上記データがサブツリー構造を有する１つ又は複数のツリー構造を有し、各ツリー又はサブツリー構造がノードを有し、関係情報がノード間の関係を示し、上記リレーショナルデータ構造を格納するデータベースと、上記関係情報が上記ツリー構造又は上記サブツリー構造の少なくとも１つのうちのノードが別のツリー構造の１つ又は複数のノードに関連することを示す場合に、上記関係情報に従って上記ツリー構造又は上記サブツリー構造の少なくとも１つを上記別のツリー構造に割り当てるように構成された割り当て部とを備える。
【００２３】
[0023]  下記の他の利点のうちとりわけ、本発明の方法又はシステムは、ノード間の容易なナビゲーションを提供する。また、非リーフノードに対して参照を提供する。別の利点は、本発明によってノード間のクロス依存性の容易で効率的な更新が提供されるという点である。本発明には、更に、冗長性を低減して融通性を高める作用がある。本発明は、全体のビュー及び融通性に関して改善されたテーブルビューを提供する。
【００２４】
[0024]  本発明の上記及び他の態様及び特徴は、添付の図面と関連させて本発明の以下の特定の実施形態の説明を読むことで当業者には明らかとなろう。
【発明を実施するための最良の形態】
【００２５】
[0038]  以下、当業者が本発明を実施するための本発明の例示としてのものとして図面を参照しながら本発明について詳述する。特に、以下の図及び例は、本発明の範囲を１つの実施形態に限定するものではなく、記述又は図示された要素の一部又は全部を差し替えることで他の実施形態も可能になる。更に、本発明のある要素を周知の構成要素を部分的又は全面的に用いて実施することが可能な場合、本発明を分かりにくくしないために、本発明の理解に必要なそのような周知の構成要素のその部分だけを説明し、そのような周知の構成要素の他の部分の詳細な説明は省略する。本明細書で特に断りのない限り、当業者には明らかなように、ソフトウェアで実施されると記述された実施形態はそれに限定されるべきではなく、ハードウェア、又はソフトウェアとハードウェアとの組合せで実施される実施形態を含むことができ、またその逆の場合も同様である。本明細書では、単一の構成要素を示す実施形態は限定的と考えるべきではない。そうではなく、本発明は、本明細書で特に断りのない限り、複数の同じ構成要素を含む他の実施形態を含み、またその逆の場合も同様である。さらに、出願人らは本明細書又は特許請求の範囲内のいかなる用語も、特に明示的に示されない限り、一般的でない又は特別の意味に帰することを意図していない。更に、本発明は、図によって本明細書で参照する周知の構成要素の現在又は将来の周知の等価物を含む。
[0039]
【００２６】
[0040]  図４は、本発明による例示的なシステムビューを示す。図４では、図２に示す３つのツリー構造が、オブジェクト参照によってルートノードＡの直下に１つの拡張ツリー構造に組み立てられている。システムは、リレーショナルデータを格納するデータベースと、テーブルビューのツリー構造を表示するディスプレイとを有することができる。
【００２７】
[0041]  図４で、「ａ」は、３つのノードが左側の新しい論理ノードＭの直下に再割り当てされる動作を示す。動作「ｃ」は、新しい論理ノードＭをルートノードＡの直下に追加する動作を示す。これは、提案の方法がツリー内に論理ノードを任意に追加することができることを示すための例に過ぎないことに留意されたい。
【００２８】
[0042]  動作「ｅ」は、拡張ツリー構造内にノードＦの直下のツリーを割り当てる動作を実行する。動作「ｂ」は、子（及び孫Ｋ）を含む既存のノードＤ及びＧを組合せツリーＤ’／Ｇ’内に再割り当てする動作を実行する。Ｄ及びＧは類似のツリー構造を有するため、Ｋ’の存在は値スイッチに基づく。これらのノード移動動作を用いて、非リーフノードについてオブジェクト参照を実施する子参照ノードを追加することができることに留意されたい。例えば、子ノードＫを含む非リーフノードについて参照１１０が可能である。
【００２９】
[0043]  類似のノードを１つのノードに分類して探索中の冗長性を低減することができる。図２に示すように、類似したデータ構造を有する複数のエントリＨ、Ｉ及びＪの直下に各々が３つの値を含む３つのサブツリーがある。図４で、これら３つのサブツリーは、値スイッチＲを用いて拡張ツリー構造内に含まれる。この動作は、図４では「ｄ」で示されることに留意されたい。この動作によって、ビューの係数１／ｎを達成するよりコンパクトなビューを備えた１つのエントリＲだけがある。値スイッチＲは、ビューの冗長性を低減し、高速ナビゲーションに備える。例えば、ユーザは値ノードのすべて（例えば、図２では、Ｃ〜Ｊ）を通過しなくともよく、値スイッチＲのレベルで１つのスイッチ動作だけを実行する。値スイッチを用いることで、オブジェクトが他のツリーを参照する修正子ノードを有すると仮定して、リレーショナル構造をユーザが任意のオブジェクトからナビゲーションを開始するための複数のツリー階層に変換することができる。
【００３０】
[0044]  図２に示す従来のビューでは、クロス依存性は不可能であるため、関係テーブル８が必要である。また、伝搬はいくつかのツリーを通過しなければならず、Ｈ、Ｉ、及びＪについて更新が冗長になる。Ｈ、Ｉ、及びＪについてのこの更新は、関係が異なるツリー間の場合に現在の関係の方法が正確な依存性を割り当てることができないために実行される。更に、関係ノードの１つがそれ自体同じクラスを備えた複数のインスタンスを有する場合、すべてのインスタンスがそのツリー内にある、例えば、Ｈ、Ｉ、Ｊがすべてツリー６内にあるため、関係は実際にどのインスタンスをポイントしているのか分からない。
【００３１】
[0045]  他方、図４に示す本発明では、この方法は、矢印１１０、１１２、又は１１４で示すクロス依存性を可能にする。矢印１１０及び１１２は一方向の依存性を示し、矢印１１４は双方向の依存性を示すことに留意されたい。値の更新は、クロス依存性に付加されたプロパティと値のインデックスの変更を監視することで実行することができる。この変更は、オブジェクト間クロス依存性によって正確に監視することができ、余分な冗長更新をする必要はない。例えば、一度にＪだけが更新される。
【００３２】
[0046]  図５は、本発明による所与の実施形態のクロス依存性の監視の例示的なフローチャートを示す。所与のノードが他のノードとの何らかのクロス依存性を有する場合、ノードはクロス依存性マップを与えられる。クロス依存性マップ１２０は、キャッシュ値、ＩＤ、フラグ、コールバック又はクロス依存性などのデータを含むことができる。システムが所与のノードへの更新信号を受信すると、ノードのＩＤをチェックする。ＩＤがキャッシュ値として先に格納された更新ＩＤと同一でない場合、システムは、更新信号の要求に応じてノードのプロパティ値を更新する。プロパティ値が更新されると、システムは、クロス依存性マップを入手して所与のノードに応じて他のノードのプロパティ値を更新する。所与のノードに２つ以上の依存性がある場合、依存ノードのプロパティ値の更新が繰り返される。システムは、任意の関連ノードに監視信号を挿入することで当該ノードからのコールバック信号を監視することもできる。この監視方法を使用して、ユーザは任意の関連ノードの変更を容易に監視することができ、システムは、それに応じて更新信号に基づいて追加の動作を実行することができる。また、これによって、システム構築後に監視方法を追加する際に使いやすい方法が提供される。また、本発明によって、ユーザは自身の監視機構にプラグインしてノード変更を監視することができる。
【００３３】
[0047]  更に、図６は、本発明による所与の実施形態の例示的なテーブルビューを示す。図３に示すように、従来のシステムでは、現在のツリー情報だけが１つのレベルのプロパティ値が表示できるテーブル内に表示することができる。それ故、参照先オブジェクトノードのプロパティをテーブルビューに含ませることはできない。例えば、図３で、ノードＫのプロパティ値はテーブル９に含ませることができない。更に、このテーブル実装は、異なるノード構造を扱うために使用することができない。
【００３４】
[0048]  他方、本発明のシステムは、プロパティ及び値のインデックスを用いて従来のテーブル実装を拡張してテーブルビューを生成することができる。プロパティ及び値のビューで管理されるテーブルでは、テーブル内容が１つの特定のノードの直接の子だけでなくその任意の子孫を表示することができる。テーブル管理は値スイッチによって管理され、各行は値スイッチ内の１つの値を表す。これによって、テーブル内に内容を表示する際の融通性が提供され、テーブルは必ずしもすべての内容を同じフォーマットで表示しない。
【００３５】
[0049]  所与の実施形態では、プロパティ及び値のインデックスはＵＲＬを用いて表すことができる。例えば、ノードＧ’のプロパティが「値１」を有する「プロパティ１」の時、Ｋ’の親ノードは、値「ｐ１’」を有する「プロパティ２」を有し、ノードＫ’のプロパティ値「ｋ’」は、以下のように表される。
Property 1={value 1}＼Property2={p1’)＼k'
それ故、子孫ノード情報は、提供されたノードインデックスでテーブルビュー内に編成することができ、テーブルビューを実際に用いてすべての子孫ノードを含む現在のノードの全体ビューを生成することができる。例えば、図６に示すように、修正されたツリー１４０のノードＤ’及びＧ’について、テーブルビュー１４５を使用することができる。従って、本発明のシステム及び方法で表示ビューは極めて小型化できる。
【００３６】
[0050]  更に、拡張オブジェクトツリーで、参照先ノードとその子孫をテーブルビュー内に含めることができる。図６に示すように、参照ノード７１、７２及び７３の値は、ノードＨ、Ｉ及びＪの直下に含まれる。
【００３７】
[0051]  図７は、インデックス分析システム内の例示的なフローチャートを示す。インデックス分析システムは、任意のプロパティ及び値のインデックスとその実際のバックエンドデータベースとの間のマッピングである。そのようなインデックス分析は、各レベルの動作を抽出し、動作が必要であれば各レベルで動作を実行する。次に、インデックス分析は、そのようなノードが実際のデータノードであれば対応するdatabase1mapを特定し、所与の実データを特定し、そのようなノードがその特定の値に関連付けられる参照map1referenceテーブルを用いて関連付けた参照を有する場合、サブオブジェクトへの参照を入手する。また、インデックス分析は、レベル別に分析を実行し、最終的に宛先に到達することができる。そのようなマッピングは、値スイッチノードが既存のデータベースに対応する場合、各値スイッチノード内に格納される。
【００３８】
[0052]  例えば、図６に示すＵＲＬ"Property1={value1)＼Property2=｛p1’)＼k’"は、以下のようなインデックス分析システムの動作をトリガする。ＵＲＬを２つのセクションに分解する。すなわち、"Property1={value1}"と、"Property2={p1’）"に分解する（図７のステップ１６２）、ＵＲＬ＝Property1を有するノードを特定する（ステップ１６４）、そのノードに進入してその関連するデータベース／マップテーブルで値{value1)を特定する（ステップ１６６）、そのノードに格納された参照マップを入手するか又はそのノードに関連する参照テーブルにアクセスすることでその値への参照を入手する（ステップ１６８）、ＵＲＬが最終的に分析されるまでステップ１６２〜１６８を繰り返す。更に、インデックス分析では、そのすべての祖先インデックス情報で相対インデックスを絶対インデックスに変換することができる。同じ論理がテーブルビュー作成にもあてはまる。テーブルビュー作成では、開発者又はユーザは各列にリンクするＵＲＬを与え、次にインデックス付けシステムは、列及び行情報に基づいて内容を取り出すことができる。ここで行情報は、値スイッチから引き出され、列情報は、開発者／ユーザが関連付けたＵＲＬから引き出される。
【００３９】
[0053]  図８は、本発明の方法を実施する例示的なフローチャートを示す。第１に、データベース内に格納することができる複雑なリレーショナルデータのツリー構造又は階層がシステムのユーザによって決定又は定義される（ステップ１７０）。次に、システムは、ツリー構造の各ノードにプロパティ、値、及び値インデックスを割り当てる（ステップ１７２）。ノードに与えられるインデックスはその親に関して比較的一意であり、ノードのプロパティ及び値情報、例えば、上記ＵＲＬの両方を反映しなければならないことに留意されたい。また、いかなる非リーフノードもその表示可能な子を示す１組のインデックスを含まなければならない。
【００４０】
[0054]  次に、システムは、トップダウン方式で各ノードの値を初期化する（ステップ１７４）。これは、最終的に各層を初期化し、従ってツリー内の各ノードについて、データベース又はデフォルト設定から初期値が与えられる。ユーザは、常に初期値から開始して作業を続行することができる。
【００４１】
[0055]  次に、システムは、値スイッチが有効にされると、それらを作成する（ステップ１７６）。次のステップで、システムは、参照オブジェクトが有効にされると、オブジェクト参照によってツリー又はサブツリーをルートノードの直下の拡張ツリー構造内に組み込む（ステップ１７８）。各オブジェクト参照ノードは、その参照ノードのパスベースのインデックス（プロパティ及び値のインデックスと同じであるが、あるレベルで同じ祖先を共有する場合、比較的短くでき、その祖先のパスは無視することができる）を含んでいなければならない。ルートノードは、すべての絶対インデックスの起源であってもよいことに留意されたい。
【００４２】
[0056]  次に、システムは、参照関係又は関係テーブルを参照することでクロス依存性を作成する（ステップ１８０）。各ノードは、その関連ノードのパスベースのインデックスを含む１組の一方向のクロス依存性ノードを格納することに留意されたい。このステップで、システムは、クロス依存性ループが存在した時に無限ループに陥ることを防止するストップフラグを設定することができる。
【００４３】
[0057]  次に、システムは、通常のノードとして論理ノードを追加する（ステップ１８２）。論理ノード位置に関する実際のノードのパスベースのインデックスがどれかの情報がなければならない。ステップ１８４で、システムは、ユーザコールバックを設定することができる。ユーザは、関連ノードにコールバックを挿入することで関連ノードの監視機構を設定することができることに留意されたい。
【００４４】
[0058]  システムは、すべてのノードが操作されるまでステップ１７４〜１８４を繰り返すことができる。ステップ１７４〜１８４の順序は変更することができることに留意されたい。
【００４５】
[0059]  更に、本発明のシステム又は方法は、ソフトウェアを用いてコンピュータ又はワークステーションによって実施することができる。
【００４６】
[0060]  他の実現可能な方法を実施して、メッセージループ、信号／スロットなどの依存性監視機構を監視することができる。テーブルビューは、現在のテーブルに表示する１組のインデックスに対応するテーブルで実施することができ、テーブルビューはすべてのノードに共通の祖先を特定し、そのノードから始めてポピュレートを実行することができる。
【００４７】
適用例１
[0061]  本発明のシステム又は方法は、多数の複雑な光及び材料パラメータを使用するリソグラフィシミュレーションシステムに適用することができる。図９は、リソグラフィシミュレーションシステム（例：カリフォルニア州サンタクララのASML Masktools社から発売されているLithoCruiser）への例示的な適用を示す。左側の列２００は、従来方式のリソグラフィシステムのデータ構造を示す。中央の列２１０は、従来方式のツリー実装を示す。例えば、ノード"Stack"（スタック）は、プロパティ"Layer N"（レイヤＮ）を有する４つの子ノードを有する。各"Layer N"は、プロパティとして"Name"（名称）、"Thickness"（厚さ）及び"Material"（材料）を有し、"Material"は、"Refractive Index"（屈折率）又は"Absorption"（吸収）などの他のプロパティを更に含む。"Layer 1"の"Material ARC"の"Refractive Index"のプロパティ値は、１．４６であってよい。Layer 2 (RESIST)の直下の材料プロパティは、他のプロパティとは異なることに留意されたい。
【００４８】
[0062]  本発明のシステム又は方法を用いて、従来方式のツリー実装２１０は、新しいツリー構造２２０に変換される。材料プロパティは再編成されるので、ツリービューはよりコンパクトになることに留意されたい。システムは、"Layer"（レイヤ）プロパティ名称の[TARC]、[RESIST]、[BARC]及び[SUBSTRATE]などの値スイッチを作成した。これによって、図１０に示すように、テーブルビュー２３０は、より小型化することができる。このテーブルビューで、ノードが再編成されるため、各行は異なるプロパティを有する（すなわち、RESIST（レジスト）、TARC、Substrate（基板）は異なる）。例えば、RESISTの行（２）だけがプロパティとして"Dill"パラメータを含み、SUBSTRATEの行はThickness（厚さ）のプロパティを含まない。
【００４９】
適用例２
[0063]  また、本発明のシステム又は方法は、ポータブルデバイスディスプレイに適用することができる。図１１は、ポータブルデバイスディスプレイ（例えば、ノートブック又はタブレットＰＣ、ＰＤＡ、携帯電話など）への例示的な適用を示す。左側の列２５０は、従来のポータブルデバイスディスプレイのデータ構造を示す。中央の列２６０は、従来のツリー実装を示す。"Action"（動作）と３つの異なるデータエントリ（"Schedule"（スケジュール）、"Action"（動作）及び"Project"（プロジェクト））との間には参照関係があることに留意されたい。
【００５０】
[0064]  図１１の右側の列２７０に示すように、本発明のシステム又は方法の適用によって、複数のエントリが可能になり、各エントリは全ノードをナビゲートすることができる。この適用は、任意のエントリについて拡張仮想ツリーを生成するこの方法の能力を示している。ユーザは、スケジュール、動作、又はプロジェクトからナビゲートを開始することができる。本発明では、必要な時にユーザからの要求に応じてより論理的な表示のツリー構造のトポロジーを再編成することができる。更に、図１２に示すように、本発明の適用によって、スケジュールテーブル２８０、動作テーブル２８５又はプロジェクトテーブル２９０のコンパクトな表示が可能になる。ツリー２７０の目的はユーザがナビゲートする複数のエントリポイントを提供することであるため、ツリー２７０は現実のルートノードを有さないことに留意されたい。しかし、このシステム実施態様では、上記３つのツリーをすべて含む論理ルートノードが作成されるが、仮想ルートに過ぎないため、図示されている。
【００５１】
[0065]  本発明に関連する利点の１つは、本発明によってノード間のナビゲートが容易にできるという点である。また本発明は、非リーフノードについて参照を提供する。本発明のさらなる利点は、本発明によってノード間のクロス依存性を容易にかつ効率的に更新することができるという点である。更に、本発明は、冗長性を低減し、融通性を改善する。本発明は、また全体ビューと融通性を備えた改良型テーブルビューを提供する。
【００５２】
[0066]  図１３は、上記データ管理／表示プロセスを使用することができるコンピュータシステム１００を示すブロック図である。コンピュータシステム１００は、情報を通信するためのバス１０２又は他の通信機構と、情報を処理するためにバス１０２に結合されたプロセッサ１０４とを含む。コンピュータシステム１００は、プロセッサ１０４によって実行される情報及び命令を格納するバス１０２に結合されたランダムアクセスメモリ（ＲＡＭ）又は他のダイナミック記憶装置などのメインメモリ１０６を更に含む。また、メインメモリ１０６は、プロセッサ１０４によって実行される命令の実行中に一時変数又は他の中間情報を格納するためにも使用することができる。コンピュータシステム１００は、さらに、プロセッサ１０４のための静的情報及び命令を格納するために、バス１０２に結合された読取り専用メモリ（ＲＯＭ）１０８又は他のスタティック記憶装置を含む。磁気ディスク又は光ディスクなどのストレージデバイス１１０が、情報及び命令を格納するために提供されバス１０２に結合される。
【００５３】
[0067]  コンピュータシステム１００は、コンピュータユーザに情報を表示するために、バス１０２を介して、陰極線管（ＣＲＴ）あるいはフラットパネル又はタッチパネルディスプレイなどのディスプレイ１１２に結合することができる。英数字及び他のキーを含む入力デバイス１１４は、情報及びコマンド選択をプロセッサ１０４に送るために、バス１０２に結合される。他のタイプのユーザ入力デバイスは、プロセッサ１０４に方向情報及びコマンド選択を送信するためのマウス、トラックボール、又はカーソル方向キーなどのカーソルコントローラ１１６である。この入力デバイスは、通常、デバイスが平面内の位置を指定できるようにする第１の軸（例えば、ｘ）及び第２の軸（例えば、ｙ）という２つの軸における２つの自由度を有する。タッチパネル（スクリーン）ディスプレイも入力デバイスとして使用することができる。
【００５４】
[0068]  本発明の一実施形態によれば、プロセッサがメインメモリ１０６内に含まれる１つ又は複数の命令の１つ又は複数のシーケンスを実行するプロセッサ１０４に応答してマスク設計プロセスをコンピュータシステム１００が支援することができる。そのような命令は、ストレージデバイス１１０などの別のコンピュータ読み取り可能媒体からメインメモリ１０６内に読み込むことができる。メインメモリ１０６内に含まれる命令のシーケンスを実行すると、プロセッサ１０４は、本明細書に記載するプロセスステップを実行する。マルチ処理装置内の１つ又は複数のプロセッサを用いてメインメモリ１０６内に含まれる命令のシーケンスを実行することができる。別の実施形態では、ソフトウェア命令の代わりに又はソフトウェア命令を組み合わせて、ハードワイヤ回路を用いて本発明を実施することができる。従って、本発明の実施形態は、ハードウェア回路及びソフトウェアのいかなる特定の組合せにも限定されない。
【００５５】
[0069]  本明細書で使用される「コンピュータ読み取り可能媒体」という用語は、実行命令をプロセッサ１０４に提供することに関与する任意の媒体を意味する。このような媒体は、これに限定はされないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含む多数の形態をとることができる。不揮発性媒体は、例えば、ストレージデバイス１１０などの光又は磁気ディスクを含む。揮発性媒体は、メインメモリ１０６などのダイナミックメモリを含む。伝送媒体は、バス１０２を含むワイヤを含む同軸ケーブル、銅線及び光ファイバを含む。また、伝送媒体は、無線周波（ＲＦ）及び赤外線（ＩＲ）データ通信中に生成される音波又は光波の形態をとることができる。コンピュータ読み取り可能媒体の一般的な形態は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、任意の他の光媒体、パンチカード、紙テープ、穴パターンを備えた任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップ又はカートリッジ、以下に説明する搬送波、又はコンピュータが読み取り可能な任意の他の媒体を含む。
【００５６】
[0070]  コンピュータ読み取り可能媒体の種々の形態は、１つ又は複数のシーケンスの１つ又は複数の命令を、実行のためにプロセッサ１０４に搬送することに関与することができる。例えば、命令は、初期にはリモートコンピュータの磁気ディスク上に担持される。リモートコンピュータは、そのダイナミックメモリに命令をロードし、モデムを使用し電話回線を介して命令を送信することができる。コンピュータシステム１００に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を使用してデータを赤外線信号に変換することができる。バス１０２に結合された赤外線検出器は、赤外線信号で搬送されるデータを受信し、このデータをバス１０２上に配置することができる。バス１０２は、データをメインメモリ１０６に搬送し、プロセッサ１０４がそこから命令を取り出して実行する。メインメモリ１０６が受信した命令は、任意選択で、プロセッサ１０４による実行の前又は後のいずれかにストレージデバイス１１０に格納することができる。
【００５７】
[0071]  また、コンピュータシステム１００は、好ましくは、バス１０２に結合された通信インタフェース１１８を含む。通信インタフェース１１８は、ローカルネットワーク１２２に接続されたネットワークリンク１２０への双方向データ通信結合を提供する。例えば、通信インタフェース１１８は、対応するタイプの電話回線へのデータ通信接続を提供するディジタル総合サービス網（ＩＳＤＮ）カード又はモデムであってもよい。別の例として、通信インタフェース１１８は、互換ＬＡＮへのデータ通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであってもよい。無線リンクも実施することができる。そのようないずれの実施態様でも、通信インタフェース１１８は、種々のタイプの情報を表すディジタルデータストリームを搬送する電気、電磁又は光信号を送受信する。
【００５８】
[0072]  ネットワークリンク１２０は、通常、１つ又は複数のネットワークを通して他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク１２０は、ローカルネットワーク１２２を通してインターネットサービスプロバイダ（ＩＳＰ）１２６によって運用されるホストコンピュータ１２４又はデータ装置への接続を提供することができる。次に、ＩＳＰ１２６は、現在一般に「インターネット」１２８と呼ばれる世界的規模のパケットデータ通信ネットワークを通してデータ通信サービスを提供する。ローカルネットワーク１２２及びインターネット１２８は、共にディジタルデータストリームを搬送する電気、電磁又は光信号を使用する。コンピュータシステム１００との間でディジタルデータを搬送する、種々のネットワークを通過する信号とネットワークリンク１２０上及び通信インタフェース１１８を通過する信号は、情報を伝送する搬送波の例示的な形態である。
【００５９】
[0073]  コンピュータシステム１００は、１つ又は複数のネットワーク、ネットワークリンク１２０、及び通信インタフェース１１８を通して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットを例にとると、サーバ１３０は、インターネット１２８、ＩＳＰ１２６、ローカルネットワーク１２２及び通信インタフェース１１８を通してアプリケーションプログラムに要求コードを送信することができる。本発明によれば、そのようなダウンロードされたアプリケーションでは、例えば、実施形態の照明の最適化が可能である。受信したコードは、受信時にプロセッサ１０４によって実行することができ、及び／又はストレージデバイス１１０又は他の不揮発性記憶装置に格納して後ほど実行することができる。こうして、コンピュータシステム１００は、搬送波の形態のアプリケーションコードを入手することができる。
【００６０】
[0074]  本発明をその好ましい実施形態を参照しながら詳細に説明してきたが、当業者には明らかなように、本発明の精神及び範囲を逸することなく、本発明の形態と詳細とをさまざまに変更及び修正することができる。添付の特許請求の範囲はそのような変更及び修正を含むものである。
【図面の簡単な説明】
【００６１】
【図１】[0025]  グラフィックで表現された従来のリレーショナルデータ構造を示す。
【図２】[0026]  ツリーグラフで表現された別の従来のデータ構造を示す。
【図３】[0027]  従来のテーブルビューを示す。
【図４】[0028]  本発明による例示的なシステムビューを示す。
【図５】[0029]  本発明によるクロス依存性を監視する例示的なフローチャートを示す。
【図６】[0030]  本発明による所与の実施形態の例示的なテーブルビューを示す。
【図７】[0031]  インデックス分析システム内の例示的なフローチャートを示す。
【図８】[0032]  本発明の方法を実施する例示的な全体フローチャートを示す。
【図９】[0033]  リソグラフィシミュレーションシステムへの本発明の適用を示す。
【図１０】[0034]  リソグラフィシミュレーションシステムへの本発明の適用を示す（テーブルビュー）。
【図１１】[0035]  ポータブルデバイスディスプレイへの本発明の適用を示す。
【図１２】[0036]  ポータブルデバイスディスプレイへの本発明の適用を示す（テーブルビュー）。
【図１３】[0037]  ポータブルデバイスディスプレイへの本発明の適用を示す（テーブルビュー）。
【図１】
0004972066.tif 000002
【図２】
0004972066.tif 000003
【図３】
0004972066.tif 000004
【図４】
0004972066.tif 000005
【図５】
0004972066.tif 000006
【図６】
0004972066.tif 000007
【図７】
0004972066.tif 000008
【図８】
0004972066.tif 000009
【図１１】
0004972066.tif 000010
【図１３】
0004972066.tif 000011
【図９】
0004972066.tif 000012
【図１０】
0004972066.tif 000013
【図１２】
0004972066.tif 000014