(57)【要約】    データベースにある複数データオブジェクトの内の、第１集合の一つ以上のデータオブジェクトに関係する情報を決定する。一つ以上のアクションの複合を適用して一つ以上のデータオブジェクトの第１集合に関係する情報を決定する。そのアクションの内の少なくとも一つには、データオブジェクト集合を、ナビゲーションアクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、マッピングするナビゲーションアクションが含まれる。一つ以上のアクションの複合の適用には、ナビゲーションアクションの再帰的適用を含めることができる。アクションには、ナビゲーションアクションにより返されるデータオブジェクトと関連付けられる値に基づく関数を実行する第２アクションを含めることができ、その場合、それぞれの値は、関連するデータオブジェクトの属性を表す。
2008524671.tif 000002
【特許請求の範囲】
【請求項１】
データベース内の複数のデータオブジェクトの内の一つ以上のデータオブジェクトの第１集合と関係する情報を決定するための方法であって、
前記一つ以上のデータオブジェクトの第１集合と関係する前記情報を決定するよう一つ以上のアクションの複合を適用することを含み、前記アクションの少なくとも一つは、ナビゲーションアクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、データオブジェクト集合をマッピングする前記ナビゲーションアクションを含み、
一つ以上のアクションの前記複合を適用することは、前記ナビゲーションアクションの再帰的適用を含む方法。
【請求項２】
前記ナビゲーションアクションの再帰的適用は、前記ナビゲーションアクションを含むナビゲーションアクションの複合の再帰的適用を含む請求項１の方法。
【請求項３】
一つ以上のアクションの前記複合を適用することは、前記ナビゲーションアクションの再帰的適用で見つけたデータオブジェクトを識別することを更に含む請求項１の方法。
【請求項４】
一つ以上のアクションの複合を適用することは、前記ナビゲーションアクションの再帰的適用の最後に見つけたデータオブジェクトを識別することを更に含む請求項１の方法。
【請求項５】
請求項１の方法であって、更に、
前記データベース内のデータオブジェクトに関する情報の視覚的表現の指定を受け取ることを含み、前記指定は、一つ以上のアクションの複合の指定を含み、および、
一つ以上のデータオブジェクトの第１集合に関係する前記情報を含む前記視覚的表示を、ユーザに提示すること含む請求項１の方法。
【請求項６】
前記ナビゲーションアクションの指定は、データオブジェクトカテゴリおよび前記関係性タイプを指定する注釈ルール名称を引数に含む関数を含む請求項５の方法。
【請求項７】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項１の方法。
【請求項８】
前記複数の関係性タイプは、データオブジェクトの複数のカテゴリに対応する請求項７の方法。
【請求項９】
前記関係性タイプは、第２データオブジェクトと関連付けられる値を参照する第１データオブジェクトと関連付けられる値を識別する請求項８の方法。
【請求項１０】
前記第１データオブジェクトは第１カテゴリにあり、前記第２データオブジェクトは第２カテゴリにある請求項９の方法。
【請求項１１】
前記第１データオブジェクトと関連付けられる前記値は外部キーであり、前記第２データオブジェクトと関連付けられる前記値は主キーである請求項９の方法。
【請求項１２】
データベース内の複数のデータオブジェクトの内の一つ以上のオブジェクトの第１集合と関係する情報を決定するための方法であって、
一つ以上のデータオブジェクトの第１集合と関係する前記情報を決定するようアクションの複合を適用することを含み、前記アクションは、
第１アクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、データオブジェクト集合をマッピングする前記第１アクションおよび、
前記第１アクションにより返される前記データオブジェクトと関連付けられる値に基づく関数を実行する第２アクションであって、それぞれの値は、前記関連データオブジェクトの属性を表す第２アクションを含む方法。
【請求項１３】
前記関数は、前記値に基づいて返された前記データオブジェクト集合をフィルタ処理して、前記返された集合のサブ集合を生成することを含む請求項１２の方法。
【請求項１４】
前記関数は、返された前記データオブジェクト集合をソートすることを含む請求項１２の方法。
【請求項１５】
前記関数は、前記値の少なくとも幾つかの算術関数を含む請求項１２の方法。
【請求項１６】
前記関数は、前記値の少なくとも幾つかの論理関数を含む請求項１２の方法。
【請求項１７】
請求項１２の方法であって、更に、
前記データベース内のデータオブジェクトに関する情報の視覚的表現の指定を受け取ることを含み、前記指定は、前記アクションの複合の指定を含み、
一つ以上のデータオブジェクトの前記第１集合に関係する前記情報を含む前記視覚的表示を、ユーザに提示することを含む請求項１２の方法。
【請求項１８】
前記第１アクションの指定は、データオブジェクトカテゴリおよび前記関係性タイプを指定する注釈ルール名称を引数に含む関数を含む請求項１７の方法。
【請求項１９】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項１２の方法。
【請求項２０】
前記複数の関係性タイプは、データオブジェクトの複数のカテゴリに対応する請求項１９の方法。
【請求項２１】
前記関係性タイプは、第２データオブジェクトと関連付けられる値を参照する第１データオブジェクトに関連付けられる値を識別する請求項２０の方法。
【請求項２２】
前記第１データオブジェクトは第１カテゴリにあり、前記第２データオブジェクトは第２カテゴリにある請求項２１の方法。
【請求項２３】
前記第１データオブジェクトと関連付けられる前記値は外部キーであり、前記第２データオブジェクトと関連付けられる前記値は主キーである請求項２１の方法。
【請求項２４】
データベースにある複数データオブジェクトの内の、一つ以上のデータオブジェクトの第１集合に関係する情報を決定するための、コンピュータ可読媒体上に格納したソフトウエアであって、前記ソフトウェアはコンピューターシステムに、
一つ以上のアクションの複合を適用して一つ以上のデータオブジェクトの前記第１集合に関係する前記情報を決定させる命令を含み、前記アクションの内の少なくとも一つは、データオブジェクト集合を、前記ナビゲーションアクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合にマッピングする、ナビゲーションアクションを含み、
前記一つ以上のアクションの複合を適用することは、前記ナビゲーションアクションの再帰的適用を含むソフトウエア。
【請求項２５】
前記ナビゲーションアクションの再帰的適用は、前記ナビゲーションアクションを含むナビゲーションアクションの複合の再帰的適用を含む請求項２４のソフトウエア。
【請求項２６】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項２４のソフトウエア。
【請求項２７】
データベースにある複数データオブジェクトの内の、一つ以上のデータオブジェクトの第１集合に関係する情報を決定するための、コンピュータ可読媒体上に格納したソフトウエアであって、前記ソフトウェアはコンピューターシステムに、
アクションの複合を適用して一つ以上のデータオブジェクトの前記第１集合に関係する前記情報を決定させる命令を含み、前記アクションは、
第１アクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、データオブジェクト集合をマッピングする前記第１アクション、および、
前記第１アクションにより返される前記データオブジェクトと関連付けられる値に基づく関数を実行する第２アクションであって、それぞれの値は、前記関連データオブジェクトの属性を表す第２アクションを含むソフトウエア。
【請求項２８】
前記関数は、前記値に基づいて返された前記データオブジェクト集合をフィルタ処理して、前記返された集合のサブ集合を生成することを含む請求項２７のソフトウエア。
【請求項２９】
前記関数は、返された前記データオブジェクト集合をソートすることを含む請求項２７のソフトウエア。
【請求項３０】
前記関数は、前記値の少なくとも幾つかの算術関数を含む請求項２７のソフトウエア。
【請求項３１】
前記関数は、前記値の少なくとも幾つかの論理関数を含む請求項２７のソフトウエア。
【請求項３２】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項２７のソフトウエア。
【請求項３３】
データベース内の複数のデータオブジェクトの内の一つ以上のオブジェクトの第１集合に関係する情報を決定するためのシステムであって、
前記複数のデータオブジェクトを格納する収納庫、および、
一つ以上のアクションの複合を適用して、一つ以上のデータオブジェクトの前記第１集合と関係する前記情報を決定するよう構成した前記収納庫と結合した計算システムであって、前記アクションの少なくとも一つは、前記ナビゲーションアクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、データオブジェクト集合をマッピングする前記ナビゲーションアクションを含む計算システムを含み、
前記一つ以上のアクションの複合を適用することは、前記ナビゲーションアクションの再帰的適用を含むシステム。
【請求項３４】
前記ナビゲーションアクションの再帰的適用は、前記ナビゲーションアクションを含むナビゲーションアクションの複合の再帰的適用を含む請求項３３のシステム。
【請求項３５】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項３３のシステム。
【請求項３６】
データベース内の複数のデータオブジェクトの内の一つ以上のオブジェクトの第１集合と関係する情報を決定するためのシステムであって、
前記複数のデータオブジェクトを格納する収納庫および、
アクションの複合を適用して、一つ以上のデータオブジェクトの前記第１集合に関係する前記情報を決定するよう構成した前記収納庫と結合した計算システムであって、前記アクションは、
第１アクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合に、データオブジェクト集合をマッピングする前記第１アクションと、
前記第１アクションにより返される前記データオブジェクトと関連付けられる値に基づく関数を実行する第２アクションであって、それぞれの値は、前記関連データオブジェクトの属性を表す第２アクションとを含む計算システムを含むシステム。
【請求項３７】
前記関数は、前記値に基づいて返された前記データオブジェクト集合をフィルタ処理して、前記返された集合のサブ集合を生成することを含む請求項３６のシステム。
【請求項３８】
前記関数は、返された前記データオブジェクト集合をソートすることを含む請求項３６のシステム。
【請求項３９】
前記関数は、前記値の少なくとも幾つかの算術関数を含む請求項３６のシステム。
【請求項４０】
前記関数は、前記値の少なくとも幾つかの論理関数を含む請求項３６のシステム。
【請求項４１】
前記関係性タイプは、複数の関係性タイプの内の第１関係性タイプに対応する請求項３６のシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
発明の背景
本発明は、関係データオブジェクトのインターフェースの管理および提供に関する。
【０００２】
格納装置内のデータは、ファイルシステムに従って体系化するのが普通である。ファイルシステムは、ファイルおよび／または他のディレクトリのグループをそれぞれに含めることができるディレクトリの階層に、データ（例えば、ファイル）を体系化するのが普通である。ディレクトリ階層は、開始場所を暗示的または明示的に識別するパス、および開始場所と相対的な一つ以上のファイルおよび／またはディレクトリを識別するパスを用いてナビゲートできる。
【０００３】
ファイルシステムの階層は、ディレクトリがディレクトリ内の各項目に対する枝を有するノードとなり、ファイルが葉のノードとなるノードツリーで表すことができる。ノードとその子との間の枝は、ノード間の「包含」関係性を表す。パスには、選択したノード集合をフィルタ処理するワイルドカードを含む式を含めることができる。
【０００４】
他のデータシステムを用いて、データオブジェクトのツリー構造階層をナビゲートすることもできる。例えば、Ｘｐａｔｈを用いてＸＭＬ文書部分の間をナビゲートすることができる。Ｘｐａｔｈは、ＸＭＬ文書をノードツリーとしてモデル化する。階層構造に関係する要素ノード、属性ノードおよびテキストノードを含む様々な種類のノードがある。
【０００５】
Ｘｐａｔｈのナビゲーションに用いる式の一種が、ロケーションパスである。コンテクストノードと相対的なノード集合を、ロケーションパスにより選択する。ロケーションパスを評価した結果が、ロケーションパスの選択したノード集合となる。ロケーションパスには、選択したノード集合をフィルタ処理するために用いる式を含めることもできる。
【０００６】
発明の概要
一般的な態様では、本発明は、データベースにある複数データオブジェクトの内の、一つ以上のデータオブジェクトの第１集合に関係する情報を決定するための、方法および対応ソフトウエアおよびシステムを特徴とする。一つ以上のアクションの複合を適用して一つ以上のデータオブジェクトの第１集合に関係する情報を決定する。そのアクションの内の少なくとも一つには、データオブジェクト集合を、ナビゲーションアクションの指定から決定される関係性タイプにより関係付けられる別のデータオブジェクト集合にマッピングするナビゲーションアクションが含まれる。
【０００７】
本発明の態様には、以下の特徴の内の一つ以上を含むことができる。
【０００８】
一つ以上のアクションの複合の適用には、１ナビゲーションアクションの再帰的適用が含まれる。１ナビゲーションアクションの再帰的適用には、１ナビゲーションアクションを含むナビゲーションアクションの複合の再帰的適用を含めることができる。一つ以上のアクションの複合の適用には、１ナビゲーションアクションの再帰的適用で見つけたデータオブジェクトの識別、および／またはそのナビゲーションアクションの再帰的適用の最後に見つけたデータオブジェクトの識別を含めることができる。
【０００９】
データベース内のデータオブジェクトに関する情報の視覚的表示の指定を受け取る。指定には、一つ以上のアクションの複合指定が含まれる。一つ以上のデータオブジェクトの第１集合に関係する情報を含む視覚的表示を、ユーザに提示する。
【００１０】
ナビゲーションアクションの指定には、データオブジェクトカテゴリおよび関係性タイプを指定する注釈ルール名称、を引数に含む関数が含まれる。
【００１１】
アクションには、ナビゲーションアクションにより返されるデータオブジェクトと関連付けられる値に基づく関数を実行する第２アクションが含まれ、その場合、それぞれの値は、関連するデータオブジェクトの属性を表す。関数には、値に基づいて返されたデータオブジェクト集合をフィルタ処理して、返された集合のサブ集合を生成すること、返されたデータオブジェクト集合をソートすること、値の少なくとも幾つかの算術関数、および／または値の少なくとも幾つかの論理関数を含めることができる。
【００１２】
関係性タイプは、データオブジェクトカテゴリ等の、多数の関係性タイプの内の一つに対応する。
【００１３】
関係性タイプは、第２データオブジェクトと関連付けられる値を参照する第１データオブジェクトと関連付けられる値を識別する。
【００１４】
第１データオブジェクトは、第１カテゴリにあり、第２データオブジェクトは、第２カテゴリにある。
【００１５】
第１データオブジェクトと関連付けられる値は、外部キーであり、第２データオブジェクトと関連付けられる値は、主キーである。
【００１６】
本発明の態様には、以下の利点の内の一つ以上を含めることができる：
【００１７】
本明細書で説明する技法により、多数の関係性タイプ（例えば、多数の主キー／外部キー関係性タイプ）により関係付けられる可能性があるデータベース（オブジェクト指向リレーショナルデータベース）内のデータオブジェクト間をナビゲートでき；ナビゲーションアクションの指定が関係性タイプを決定すると、ナビゲーションアクションを用いてその関係性タイプにより関係付けられるデータオブジェクト集合を検索できる；ナビゲーションアクションの再帰的適用により、関係データオブジェクトの検索の柔軟性を高めることができる；また、データオブジェクトと関連付けられる属性値に基づく関数を実行する能力により、データベースから所望の情報を抽出する柔軟性を高めることができる。
【００１８】
本発明の他の特徴および利点は、以下の説明、および特許請求の範囲から明らかとなろう。
【００１９】
発明の説明
１  概観
１．１  システム
図１Ａは、グラフ型計算を作成、実行および管理するための計算システム１００の部分の相互関係を示すブロック図である。グラフ型計算は、有向グラフで表される「データフローグラフ」を用いて実装され、そのグラフの頂点は成分（データファイルまたは処理）を表し、有向リンクつまり「辺」は成分間のデータフローを表す。グラフ生成環境（ＧＤＥ）１０２は、実行可能なグラフを指定し、グラフ成分のパラメータを定義するためのユーザーインターフェースを提供する。ＧＤＥは、例えば、本発明の譲受人から入手できるＣＯ＞ＯＰＥＲＡＴＩＮＧ
ＳＹＳＴＥＭ（登録商標）ＧＤＥでもよい。ＧＤＥ１０２は、収納庫１０４および並列動作環境１０６と通信する。同様に、ユーザーインターフェースモジュール１０８および管理部１１０が、収納庫１０４および並列動作環境１０６と結合されている。
【００２０】
収納庫１０４は、グラフ型アプリケーションの展開および実行、ならびにグラフ型アプリケーションと他のシステム（例えば、他のオペレーティングシステム）との間のメタデータ交換、をサポートするよう設計された拡張可能オブジェクト指向データベースシステムであることが好ましい。収納庫１０４は、文書、レコードフォーマット（例えば、テーブル内レコードのフィールドおよびデータの型）、変換関数、グラフ、ジョブ、および情報モニタを含むあらゆる種類のメタデータのための格納システムである。収納庫１０４には、外部データ格納装置１１２に格納されたデータを含む計算システム１００が処理する実際のデータを表すデータオブジェクトも格納される。
【００２１】
並列動作環境１０６は、ＧＤＥ１０２内で生成されたデータフローグラフの指定を受け取り、グラフが定義する論理の処理およびリソースに対応するコンピュータ命令を生成する。次いで、並列動作環境１０６は、複数のプロセッサ（同質でなくてもよい）上でこれらの命令を実行するのが典型的である。適切な並列動作環境は、本発明の譲受人から入手できるＣＯ＞ＯＰＥＲＡＴＩＮＧ
ＳＹＳＴＥＭ（登録商標）である。
【００２２】
ユーザーインターフェースモジュール１０８は、収納庫１０４の内容のウェブブラウザ型ビューを提供する。ユーザーインターフェースモジュール１０８を用いて、ユーザは、オブジェクト閲覧、新規オブジェクト創出、既存オブジェクト変更、アプリケーションパラメータ指定、ジョブスケジュール化等ができる。ユーザーインターフェースモジュール１０８は、ユーザが収納庫１０４内に格納されたオブジェクトおよびオブジェクト情報を検索し、閲覧するようフォームに基づいたブラウザースクリーンを生成する。
【００２３】
管理部１１０は、ユーザーインターフェースモジュール１０８を通じてアクセスされるオプションの、収納庫に基づくジョブスケジュール化システムである。管理部１１０は、ジョブおよびジョブキューを収納庫１０４内のオブジェクトとして維持し、ユーザーインターフェースモジュール１０８は、ジョブおよびジョブキューのビューと設備を提供し、ジョブおよびジョブキューを操作する。
【００２４】
１．２  メタデータ解析
収納庫１０４は、計算グラフを作成するためのグラフ成分および他の関数オブジェクトを含むグラフ型アプリケーション用のデータオブジェクトを含むメタデータを格納する。収納庫１０４に格納されるメタデータは、例えば、「技術」メタデータ（例えば、アプリケーション関係ビジネスルール、レコードフォーマット、および実行統計）および「企業」または「ビジネス」メタデータ（例えば、職務権限、役割、および責任のユーザ定義文書）を含めることもできる。
【００２５】
データオブジェクトの形式で収納庫１０４に格納されている情報により、アプリケーションおよびこれらアプリケーションが処理するデータについての様々な種類の解析が可能になる。例えば、ユーザは、データの系統に関する疑問への回答を得ることができる（例えば、どこから所与の値が来たのか？  どのようにその出力値を計算したのか？  どのアプリケーションがこのデータを作成し、このデータに依存しているのか？）。開発者は提案した修正（例えば、この部分を変更した場合、何か他に影響しないか？  このソースフォーマットを変更した場合、どのアプリケーションが影響を受けるのか？）の結果を理解することができる。ユーザ／開発者は、技術メタデータおよびビジネスメタデータの両方に関わる疑問への回答（例えば、どのグループがこのデータの作成、使用に責任をもつのか？  誰がこのアプリケーションを最後に変更したのか？  彼らは何を変更したのか？）を得ることもできる。
【００２６】
収納庫１０４は、格納データの状態を追跡できる。収納庫１０４に格納されているデータオブジェクトはバージョン管理されるので、先週、先月、または昨年の状態を調べ、それを現在の状態と比較することができる。収納庫１０４は、ジョブ追跡、つまりトレンド解析（例えば、自分達のデータが成長している速度は？）を可能にする実行情報および能力計画（例えば、そのアプリケーション実行に要した時間は？  それが処理したデータ量、処理レートは？  アプリケーションが消費したリソースは？  別のサーバをいつ追加する必要があるか？）を収集する。
【００２７】
ユーザは、格納されているデータオブジェクトに含まれる情報および／またはそれと関連付けられる情報を、ユーザーインターフェースモジュール１０８を通じて見ることが（オプションで編集することも）できる。一実装では、ユーザは、ウェブページ内のデータオブジェクトの関連サブ集合についての情報を提供する一つ以上の「ビュー」を定義できる。ビューは、以下に更に詳細に説明するように、これらオブジェクト間の関係性に基づいて、一つ以上のデータオブジェクトを選択するためのシンタックスを用いて定義する。
【００２８】
２  データモデル
２．１  基本スキーマ
図２は、エンティティ関係図として表されるある会社と関連付けられるメタデータについて、基本スキーマ２００内で選択したカテゴリを示す。基本スキーマ２００は、収納庫１０４内に格納されているメタデータの基底にある関係構造を定義する。基本スキーマ２００内のエンティティタイプを「カテゴリ」と称する。それぞれのカテゴリは、データオブジェクトのクラスを表す。それぞれのカテゴリには「注釈ルール」集合が含まれる。カテゴリの注釈ルールは、以下に更に詳細に説明するように、表における列の定義と類似している。
【００２９】
ユーザは、ユーザ定義カテゴリを追加することにより、基本スキーマ２００を拡張できる。ユーザは、既存の「親」カテゴリに基づいて「子」カテゴリを追加することできる。子カテゴリには、親カテゴリの注釈ルールが含まれ、オプションで子カテゴリに特有の注釈ルールを更に含む。
【００３０】
データオブジェクトを、カテゴリのメンバーとして収納庫１０４に格納できる。カテゴリのメンバーであるデータオブジェクトは、表における行と類似している。メンバーデータオブジェクト（例えば、従業員に関する情報を含むデータ構造）は、そのカテゴリ（例えば、「従業員」カテゴリ）に特有のディレクトリ内に格納できる。代替として、メンバーデータオブジェクトは、データオブジェクト内部の参照を通じてカテゴリと関連付けることができる。カテゴリのメンバーであるデータオブジェクトは、そのカテゴリについて定義した注釈ルールと関連付けられる値を格納する。
【００３１】
二つのデータオブジェクト間の「関係」を定義する一方法は、「主キー／外部キー」関係による。カテゴリに対する「主キー」は、（一つまたは複数の）注釈ルールであり、その値（または相互に取る値）がカテゴリ内のそれぞれのデータオブジェクトを一意に識別する。第２データオブジェクトが、第１データオブジェクトの主キーの値を参照する注釈ルール値を有する場合、第１データオブジェクトは、（異なるカテゴリ内または同一カテゴリ内の）第２データオブジェクトに対して主キー／外部キー関係を有する。第２データオブジェクトに対するこの注釈ルールを「外部キー」と呼ぶ。
【００３２】
他の技法を用いて二つのデータオブジェクト間の関係を定義できる。例えば、場合によっては、親データオブジェクトを一意に識別するために、外部キーが主キーの二つ以上の注釈ルール値を参照することが必要になることがある。二つ以上の注釈ルール値で構成される主キーを「複合」キーと呼ぶ。
【００３３】
基本スキーマ２００は、各種のカテゴリに属するデータオブジェクト間に存在しうる潜在的関係を示す。二つのカテゴリを接続する（またはカテゴリをそれ自体に接続する）線は、それぞれのカテゴリのデータオブジェクト間の潜在的関係の「接続性」を表す。カテゴリ間の接続性の基本タイプは：一対一、一対多数、および多数対多数である。
【００３４】
一対一接続性は、カテゴリＡ内の多くても一つのデータオブジェクトが、カテゴリＢ内の一つのデータオブジェクトと関係付けられる場合に存在する。例えば、「従業員」カテゴリ２０２が会社の従業員を表し、カテゴリ内のそれぞれのデータオブジェクトが従業員を表す。「オフィス」カテゴリ２０４が建物で占有されるオフィスを表し、それぞれのデータオブジェクトがオフィスを表す。それぞれの従業員が自身のオフィスに割り当てられる場合、対応するデータオブジェクトは、一対一の外部キー関係を有することになる。図２に、一対一の接続性を線で表す。
【００３５】
一対多数の接続性は、カテゴリＡの一つのデータオブジェクトに対して、カテゴリＢに、ゼロ、１つまたは多数の関係データオブジェクトがあり、かつカテゴリＢの一つのデータオブジェクトに対して、カテゴリＡに、一つの関係データオブジェクトがある場合に存在する。例えば、上記のように、「従業員」カテゴリ２０２は会社の従業員を表す。「部門」カテゴリ２０６は会社の部門を表す。各従業員は一つの部門に関係し、それぞれの部門は多数の従業員に関係する。従って、「部門」および「従業員」にそれぞれ対応するデータオブジェクトは、一対多数の外部キー関係を有する。図２に、一対多数の接続性をカラスの脚で終わる線で示す。
【００３６】
多数対多数の接続性は、カテゴリＡの一つのデータオブジェクトに対して、カテゴリＢに、ゼロ、１つまたは多数の関係データオブジェクトがあり、かつカテゴリＢの一つのデータオブジェクトに対して、カテゴリＡに、ゼロ、１つまたは多数の関係データオブジェクトがある場合に存在する。例えば、従業員を同時に任意の数のプロジェクトに割り当てることができ、プロジェクト（「プロジェクト」カテゴリ２０８のデータオブジェクト）が、それに割り当てられる任意の数の従業員を持つことができると仮定する。「従業員」および「プロジェクト」カテゴリからの対応するデータオブジェクトは、多数対多数の外部キー関係を有することになる。図２に、多数対多数の接続性をカラスの脚で終わる1本の線として示す。
【００３７】
同一カテゴリ内のオブジェクト間の関係もあり得る。例えば、「従業員」カテゴリ内のデータオブジェクトは、「従業員」カテゴリ内の他のデータオブジェクトと一対多数の関係性を有する。一人の従業員が、一対多数の外部キー関係により表される別の従業員と「監督される」関係を有することがある。
【００３８】
２．２  注釈ルール
注釈ルールは、所与のカテゴリのメンバーであるデータオブジェクトと関連付けることができる様々な特性の値を定義する。注釈ルールは単一の値でも多数の値でもよい。各注釈ルールは、識別できる一意の名前を有する。多数カテゴリは共通している一つ以上の注釈ルールを有することができる。
【００３９】
一実施の形態では、（例えば、最終ユーザが）データオブジェクトと関連付けることができる値の数および種類（データ型）を制約する能力をユーザ（例えば、アプリケーション開発者）に提供する４種類の注釈ルールがある。４種類の注釈ルールは：string（文字列）、choice（選定）、reference（参照）およびrecord（レコード）である。４種類の注釈ルールの特性は以下のとおりである。
【００４０】
２．２．１  string型
string型注釈ルールは、データオブジェクトを一つ以上の文字列（例えば、ＡＳＣＩＩ文字列）と関連付ける。一つ以上の文字列が、データオブジェクトに添付され、注釈ルールの名前と関連付けられる。一つの文字列値を有するstring型注釈ルールは単一値である。例えば、一従業員は一つの社会保険番号しか持たないので、従業員データオブジェクトは、単一値「社会保険番号」string型注釈ルールを持つことができる。２つ以上の文字列値を有する文字列注釈ルールは多数値である。例えば、一従業員は２つ以上の電話番号を持つことができるので、従業員のデータオブジェクトは、多数値「電話番号」string型注釈ルールを持つことができる。
【００４１】
２．２．２  choice型
choice型注釈ルールは、データオブジェクトを、可能性のある値のリストからユーザが選定した一つ以上の値と関連付ける。例えば、choice型ルールは、注釈ルールが持つことができる妥当な値についての予想がある場合に用いることができる。単一値のchoice型注釈ルールでは、最終ユーザは幾つかの選定の内の一つしか選択できない。単一値のchoice型注釈ルールの例は、二つの可能性のある回答「Ｙｅｓ」または「Ｎｏ」の内の一つしか持てない質問への回答を表す値である。
【００４２】
多数値のchoice型注釈ルールでは、最終ユーザは、可能性のある値のリストから任意の数の値を選択できる。例えば、従業員は２つの部門、「開発」および「ＱＡ」で働くことができかもしれない。choice型「部門」注釈ルールにより、最終ユーザは、部門リスト、「財務」、「開発」、「経営」、「文書」、「ＱＡ」、および「管理」から適切な値を選択できよう。
【００４３】
既定値により、可能性のある値のリストを、ユーザが定義した所定の値のリストに制限することができる。代替として、最終ユーザは、所定の値のリスト内にない値を指定できる。オプションで、最終ユーザがリストにない値を指定する場合、他の最終ユーザがオプションとしてその値を見ることができるように、最終ユーザはその値を所定の値のリストに追加できる。代替として、リストに載らない値を収納庫１０４に保存できるが、他の最終ユーザには、オプション表示されない。
【００４４】
２．２．３  reference型
reference型注釈ルールは、第１データオブジェクトを一つ以上の他のデータオブジェクトと関連付ける。そのデータオブジェクトは、第１データオブジェクトと同一カテゴリでも、異なるカテゴリのメンバーでもよい。多数値の参照型注釈ルールは、多数データオブジェクトを参照することができる。
【００４５】
reference型注釈ルールを用いて、データオブジェクト間の主キー／外部キー関係を指示することができる。reference型注釈ルールの値は、異なるカテゴリ内のデータオブジェクトの主キーの値を参照する外部キーの値とすることができる。例えば、「従業員」カテゴリ内のデータオブジェクトの注釈ルールには、「部門」カテゴリ内のデータオブジェクトを一意に識別するstring型注釈ルール「キー」の値と一致する値を有するreference型注釈ルール「departmentKEY（部門キー）」が含まれる。従って、一意のオブジェクト識別子「キー」は、主キーとして作用する。
【００４６】
異なる関係性タイプが、一つのデータオブジェクトと別のデータオブジェクトとの間に存在しうる。データオブジェクトは、異なる関係性タイプをそれぞれが表す多数の参照型注釈ルールを持つことができる。例えば、「従業員」カテゴリ内のデータオブジェクトには、「オフィス」カテゴリ内のデータオブジェクトを一意に識別する文字列型注釈ルール「キー」の値と一致する値を有する参照型注釈ルール「officeKEY（オフィスキー）」も含まれる。
【００４７】
２．２．４  record型
record型注釈ルールは、データオブジェクトを、別のカテゴリ内のオブジェクトからの注釈ルール値集合と関連付ける。例えば、「従業員」カテゴリの「email_info」注釈ルールの値には、「Email
Info」カテゴリ（不図示）について定義した注釈ルールの全ての値が含まれる。「Email Info」カテゴリ内のデータオブジェクトが、「joe@home.com」の値を有するstring型注釈ルール「home_email」、および「joe@work.com」の値を有するstring型注釈ルール「work_email」を有する場合、「従業員」カテゴリ内のデータオブジェクトは、そのデータオブジェクトを参照して、値「joe@home.com」および「joe@work.com」を「email_info」と関連付けることができる。
【００４８】
２．２．５  実施例
全ての定義したカテゴリは、共通の注釈ルール集合を共有できる。例えば、基本スキーマ２００内の各カテゴリは、共通の２つの注釈ルール、すなわち、key（キー）およびname（名前）を有する。これらの注釈ルールについては下記に説明する。
key：収納庫内の各データオブジェクトを一意に識別する文字列。
name：データオブジェクトの名前
各カテゴリは、そのカテゴリに特有の注釈ルールを有することもできる。例えば、基本スキーマ２００内のカテゴリ「従業員」および「部門」に対する注釈ルールの幾つかは以下のように与えられる。
会社の従業員を表す「従業員」カテゴリに対する注釈ルールには以下が含まれる：
start_date（開始日）：従業員の雇用が開始された日付け。
name（名前）：従業員の名前。
gender（性）：従業員の性。女性は「Ｆ」、男性は「Ｍ」。
managed_byKEY：この値は、その従業員のマネージャである別の従業員のキー値を参照する。
departmentKEY：この値は、その従業員が属している部門を表す部門カテゴリのメンバーに対するキー値を参照する。
email_info：従業員に対する電子メール情報を表す。
projectKEY：この値は、従業員が割り当てられているプロジェクトを表すプロジェクトカテゴリのメンバーに対するキー値を参照する。
officeKEY：この値は、従業員が働くオフィスを表すオフィスカテゴリのメンバーに対するキー値を参照する。
会社内の部門を表す「部門」カテゴリに対する注釈ルールには以下が含まれる：
name：その部門の名前を参照する。
location：その部門のためのオフィスの場所を参照する。
【００４９】
３  ビュー
上記に紹介したように、ユーザーインターフェースモジュール１０８を通じてウェブブラウザ内でユーザに提示されるユーザ定義ビューを用いて、ユーザは、収納庫１０４内のメタデータを見ることが（オプションで編集することも）できる。図１Ｂを参照すると、メタデータ収納庫１０４には、データオブジェクトカテゴリおよび注釈ルールを定義する関係データ１５０、関係データ１５０が定義したオブジェクトのインスタンスに対応するデータオブジェクト１５２、およびデータオブジェクト１５２内に含まれる所望の情報および／またはデータオブジェクト１５２と関連付けられる所望の情報にアクセスするためにユーザが定義した格納されたビュー１５４が含まれる。ユーザーインターフェースモジュール１０８は、ビューに従って収納庫１０４から適切なデータオブジェクトにアクセスし、所望の情報（例えば、指定した基準と合致するデータオブジェクトに対するラベルまたはデータオブジェクトの数のカウント）を有するＨＴＭＬページを描画する。各ビューは、カテゴリと関連付けられ、描画すべきメタデータを定義する一つ以上の「ビュー要素」を含む。それぞれのビュー要素には、関連付けられるカテゴリ内の、または一つ以上の主キー／外部キー関係により関連付けられるカテゴリと関係付けられるカテゴリ内の、一つ以上のデータオブジェクトに基づくメタデータの検索を可能にするelement-descriptor（要素記述子）が含まれる。
【００５０】
図３は、ビューに対する描画したＨＴＭＬページ３００の実施例を示す。ページ３００には、ナビゲーションバーを含むヘッダ３０２、コンテンツ部３０４、およびフッタ３０６が含まれる。コンテンツ部３０４はには、ビューを定義するカテゴリの名前３０８（例えば、従業員）およびビュー内の情報を関連付けるカテゴリ内の主データオブジェクトの名前３１０が含まれる。コンテンツ部３０４には、ユーザ定義ラベル３１２等の、主データオブジェクトと関連付けられる情報、および主データオブジェクトについての注釈ルールの値３１４も含まれる。ページ３００には、主データオブジェクトと関係する他のデータオブジェクトと関連付けられる情報を表示できるビュー要素も含まれる。本実施例では、ページ３００には、「この従業員が責任を負うアプリケーション」（「アプリケーション」カテゴリのメンバー）を表示するビュー要素３１８、および「この従業員が責任を負うデータファイル」（「データファイル」カテゴリのメンバー）を表示するビュー要素３２０が含まれる。
【００５１】
ビュー要素には３種類、すなわちsimple、view、decorateがある。simple型ビュー要素には、関連付けられるカテゴリ内の、または一つ以上の主キー／外部キー関係により関連付けられたカテゴリに関係付けられるカテゴリ内の、データオブジェクトの注釈ルール値に基づくメタデータが含まれる。view型ビュー要素には、一つ以上の主キー／外部キー関係により関連付けられるカテゴリと関係付けられるカテゴリに対する予め定義されたビュー内で指定されたメタデータが含まれる。decorate型ビュー要素には、ビューのためにウェブページに表示されるテキスト（例えば、ウェブページの案内）が含まれる。
【００５２】
３．１  ビュー要素の指定
add-view-elementコマンドを用いて一つ以上のビュー要素を定義し、指定したカテゴリ上の既存のビューとそれら要素を関連付ける。ユーザは、ユーザーインターフェースモジュール１０８に表示すべき順序でビュー要素を追加する。コマンド用シンタックスは：add-view-element
category view element-type label element-descriptor element-viewである。コマンド引数は以下のように定義される：
category：既存のカテゴリの名前。
view：このビュー要素を追加すべきcategory上で定義した既存のビューの名前。
element-type： simple型、view型、またはdecorate型の内の一つを指定する。
label：メタデータ項目を記述するテキスト文字列。labelのテキストは、描画されるブラウザページ内に表示されるが、ただしdecorate型ビュー要素のlabelを除く。
element-descriptor：検索すべきメタデータを記述する（decorate型を除く）。
element-view：含めるべきビューの名前（element-typeがview型の場合のみ使用）。
【００５３】
３．２  メタデータ選択アクション
ユーザーインターフェースモジュール１０８は、ユーザーインターフェースモジュール１０８が所望のメタデータを検索できるようにするelement-descriptorを指定するシンタックスをユーザに提供する。element-descriptorには、アクションの複合が含まれる。ユーザーインターフェースモジュール１０８は、一つ以上のデータオブジェクト集合を識別する開始コンテクストに対してアクションの複合を実行する。例えば、開始コンテクストには、オンスクリーンリンクを通じてユーザが選択するデータオブジェクトを含めることができ、または開始コンテクストには、ユーザ選択カテゴリと関連付けられるデータオブジェクト集合を含めることができる。
【００５４】
第１アクションは、データオブジェクトのこの開始集合に作用する。後続の各アクション（それがある場合）は、先行するアクションから返される出力に作用する。アクションから返される出力には、一つ以上のデータオブジェクト集合（例えば、データオブジェクト用の主キーの形で）、注釈ルールの一つ以上の値、または計算結果（例えば、先行するアクションから出力されたデータオブジェクトの数のカウント）を含めることができる。返された一つ以上のデータオブジェクトおよび／または注釈ルール値の集合は、後続アクション用の「開始集合」となる。以下に説明する「ナビゲーションアクション」等の、幾つかのタイプのアクションは、データオブジェクト上に含まれる開始集合のみに作用する。
【００５５】
アクションの複合に対するシンタックスには、アクション識別子（アクションを識別するキーワード）および何らかの引数（argument）（アクションによっては引数がない）が含まれる。対応するアクションの複合を表すアクション識別子のシーケンスには、単一アクションまたはピリオド（シンボル「.」）で区切った多数アクション、例えば：
action1(<arguments>).action2(<arguments>).action3()
をオプションで含めることができる。
【００５６】
３．２．１  ナビゲーションアクション
「stroll（ストロール、散策）」は、一つ以上のデータオブジェクトの開始集合から、一つ以上のデータオブジェクトの宛先集合までのナビゲーションの指定を表す一つ以上の「ナビゲーションアクション」の複合である。ナビゲーションアクションには、下記に定義するようなwalkアクションおよびinv_walkアクションが含まれる：
walk（arule,cat）：開始データオブジェクトそれぞれに対する注釈ルールaruleが参照するカテゴリcat内のデータオブジェクトを返す。
inv_walk（arule,cat）：開始データオブジェクト集合の何れかのメンバーを参照する注釈ルールaruleを有するカテゴリcat内のデータオブジェクトを返す。
例えば、開始オブジェクトがマネージャであり、所望するデータがそのマネージャに直接報告する従業員達の場合、対応するelement-descriptorは、単一ナビゲーションアクションを有する次のストロールである：
inv_walk(managed_byKEY,Employee)
開始オブジェクトがプロジェクトであり、所望するデータがそのプロジェクトで働く従業員達のマネージャ全員である場合、対応するelement-descriptorは、多数ナビゲーションアクションを有する次のストロールである：
inv_walk(projectKEY,Employee).＼
walk(managed_byKEY,Employee)
この例では、element-descriptorを新規ラインに続ける指示をするバックスラッシュ（シンボル「＼」）の使用法を説明している。
幾つかのナビゲーションアクションは、指定したストロールを再帰的に実行することにより、データオブジェクト間をナビゲートする。例えば、二つの再帰的ナビゲーションアクションは：
gather_allおよびfind_ultimateであり、下記に説明する。
gather_all(stroll)： strollにより指定されたナビゲーションアクションを再帰的に実行し、各再帰ステップで見つけた全てのデータオブジェクトを返す。
find_ultimate(stroll)： strollにより指定されたナビゲーションアクションを再帰的に実行し、再帰ステップの最後に見つけた全ての「葉ノード」データオブジェクトを返す（指定したナビゲーションアクションがヌル出力を返すデータオブジェクト）。
【００５７】
３．２．２  式アクション
幾つかのアクションは、Python等の、スクリプト言語で用いられるものと類似の「式」を用いて開始集合に作用する。以下は、一つ以上の開始データオブジェクトおよび／または注釈ルール値の開始集合に作用する式アクションの実施例である。
sort(expr)： 式expr（例えば、python式）がソートした開始集合を返す。
rsort(expr)： 式exprが逆順でソートした開始集合を返す。
filter(expr)： 式exprにより開始集合をフィルタ処理する。
eval(expr)： 開始集合上で式exprを評価する。
avg(expr)： 開始集合全体での式exprの平均を返す。
他のアクションは、引数が何もなくても開始集合に作用する。例えば：
count()： 開始集合内の項目の数を返す。
【００５８】
標準のPythonシンタックス等の、シンタックスに加えて、式には、開始集合上で関数を実行できる関数シンタックス（例えば、キーワード）を含めることができる。以下は、そのような関数シンタックスの例である。
【００５９】
キーワードannは、ann.aruleとして注釈ルールaruleと組合されて、注釈ルールaruleの値を返す。例えば、式expr内で発生するann.keyは、式が適用されるデータオブジェクトのkey注釈ルールの値を返す。別の実施例では、従業員カテゴリのメンバーであるデータオブジェクト集合について、以下のelement-descriptorは、女性である従業員を返す：filter（ann.gender
== “F”）。
【００６０】
開始集合内の各項目に適用される式で発生するキーワードpositionは、開始集合内の項目の順番に並んだリスト内の各項目の位置を返す。例えば、次のelement-descriptorは、開始集合から５名の最古参の従業員を返す：
sort(ann.start_date).filter(position
< 5)
最初に、sortアクションは、開始日、値のリストを昇順で編成する。最終的に、フィルタアクションは、式「position
< 5」を、sortにより返される値のリストに適用し、最初の５つの値（位置（position）０〜４までの値）を返す。
【００６１】
キーワードlook_aheadは、開始集合で直接利用可能ではないデータオブジェクトに基づいてフィルタ処理する能力を提供する。filterアクション内に含まれる式look_ahead（stroll）は、stroll内のナビゲーションアクションを開始集合内の各データオブジェクトに適用し、開始集合内のデータオブジェクトをフィルタ処理するために用いることができるデータオブジェクト集合を返す。フィルタアクションがlook_ahead（stroll）の式しか含まない場合、開始集合内の開始データオブジェクトは、stroll内のナビゲーションアクションが、その開始データオブジェクトからの何らかのデータオブジェクトを返すかどうかに基づいて、フィルタ処理される。何らかのデータオブジェクトが返された場合、フィルタは開始データオブジェクトを返す。何も返されなかった場合、フィルタは開始データオブジェクトを返さない（「フィルターアウト」）。
【００６２】
例えば、「従業員」カテゴリのビューには、従業員のマネージャに関する情報を含めることができる。従業員のマネージャに関する情報に基づいてフィルタ処理するために、フィルタは、キーワードlook_aheadを用いて従業員のマネージャに関する情報を調べる。従業員の上に少なくとも二つの管理レベルがある全従業員集合を記述するelement-descriptorは：
filetr(look_ahead(walk(managed_byKEY,
Employee).＼
walk(managed_byKEY,
Employee).count()) > 0)
【００６３】
４  実施例
ビュー用の所望の情報を検索するためのelement-descriptorの構造を示す幾つかの実施例を下記に示す。
【００６４】
４．１  実施例１
従業員を含むコンテクストから開始する従業員の部門内の従業員数を検索するためのelement-descriptorは：
walk(departmentKEY,
Department).inv_walk(departmentKEY, 
Employee).count()
walkナビゲーションアクションが、この従業員を含む部門オブジェクトを見つける。次いでinv_walkナビゲーションアクションが、その部門にいる全従業員を見つける。次いで、countアクションがこのようなグラフの数を見つける。
【００６５】
４．２  実施例２
以下の実施例では、ナビゲーションは、開始コンテクストで与えられる部門内の最古参の従業員を見つける：
inv_walk(departmentKEY,
Employee).sort(ann.start_date).＼
filter(position < 1)
inv_walkナビゲーションアクションが、その部門内の全従業員の過去にさかのぼってdepartmentKEY注釈ルールの後に続く。次いで、rsortアクションが、開始日付けによりこれら従業員を最も古いものから最新のものに逆ソートする。次いで、filterアクションが、従業員のソートしたリストに作用して、リストの最初のオブジェクトだけを選択する。得られた結果は、その部門内の最古参の従業員である。
【００６６】
４．３  実施例３
以下の実施例では、ナビゲーションが、開始部門内の最古参の女性従業員を見つける：
inv_walk(departmentKEY,
Employee).＼
filter(ann.gender == “F”).＼
sort(ann.start_date).filter(position
< 1)
本実施例には、追加のfilterアクションが含まれる。その部門の従業員全てを見つけた後、第１filterアクションが、女性従業員を選択する。次いで、sortが、女性従業員のリストを逆ソートし、最古参から新入社員まで従業員を並べる。ソートした女性従業員に操作すると、第２filterアクションは、最古参従業員を除いて全て破棄する。
【００６７】
４．４  実施例４
場合により、所望の情報を得るのに、所与のコンテクストで、element-descriptorでは直接利用できない値のフィルタ処理が含まれることがある。例えば、従業員集合が与えられると、これら従業員のマネージャのリストが必要になることがある。マネージャの性別等の、情報をこれらのマネージャデータオブジェクトから取得できる。これらの種類の問い合わせをサポートするために、上記説明のキーワードlook_aheadによるfilterアクションを用いることができる。以下の例示のelement-descriptorは、全ての従業員を含む開始コンテクストからのlook_aheadキーワードによるfilterアクションを用いて、マネージャが男性である従業員を見つける：
filter(look_ahead(walk(managed_byKEY,
Employee).＼
filter(ann.gender == “M”)))
従業員集合はlook_aheadキーワードを用いてフィルタ処理される。look_aheadに渡されるストロールは、対象のデータオブジェクトに到達するために用いることができる一連の一つ以上のナビゲーションアクションを記述する。この場合には、ストロールの第１ウォークアクションは、従業員データオブジェクトのmanaged_byKEY注釈ルールに従う。次のウォークアクションは、gender注釈ルールの値により、これらのオブジェクトをフィルタ処理する。従業員のマネージャが男性でない場合、彼女らは結果集合から外される。
【００６８】
４．５  実施例５
マネージャと性が異なる従業員を全て検索するためのelement-descriptorは：
filter(look_ahead(walk(managed_byKEY,
Employee).＼
filter(ann.gender == “M”))).filter(ann.gender == “F”)+
filter(look_ahead(walk(managed_byKEY,
Employee).＼
filter(ann.gender == “F”))).filetr(ann.gender == “M”)
本実施例では、「＋」シンボルは、多数のストロールの結果を合計する。第１ストロールは実施例４と類似しているが、マネージャが男性である従業員全ての集合が、更にフィルタ処理されて、集合内の女性従業員だけが返される。第２ストロールは、マネージャが女性である従業員全てを見付けて、この集合をフィルタ処理し、男性従業員だけを返す。
【００６９】
４．６  実施例６
状況によっては、再帰的に実行されるウォークの結果を知りたいと要望されることがある。例えば、マネージャの直属部下だけでなく、彼の直属部下の直属部下の更に、等と際限なく続くのを知りたいと要望されることがある。element-descriptorは、gather_allナビゲーションアクションを用いてこの情報を得ることができる：
gather_all(inv_walk(managed_byKEY,
Employee))
本実施例では、ストロールは従業員集合から、彼らが管理する従業員全てに至るまでである。回答集合が会社の階層にいる従業員の開始集合「に満たない」従業員全員の集合となるように、gather_allアクションは、このストロールを再帰的に実行させる。
【００７０】
５  実装手法
上記説明のデータオブジェクト管理技法は、コンピュータ上で実行するためのソフトウエアを用いて実装できる。ソフトウエアは、例えば、少なくとも一台のプロセッサ、少なくとも一台のデータ格納システム（揮発性および非揮発性メモリおよび／または格納素子を含む）、少なくとも一台の入力装置またはポート、および少なくとも一台の出力装置またはポートをそれぞれが含む一台以上のプログラム化されるか、またはプログラマブルのコンピューターシステム（分散型、クライアント／サーバ、またはグリッド型等の各種アーキテクチャからなっていてもよい）上で実行される、一つ以上のコンピュータープログラム内に手順を形成する。ソフトウエアは、例えば、計算グラフの設計および構成に関係する他のサービスを提供する、規模がより大きなプログラムの内の一つ以上のモジュールを形成してもよい。グラフのノードおよび素子は、コンピュータ可読媒体に格納したデータ構造、またはデータ収納庫内に格納したデータモデルと適合する他の体系化データとして、実装することができる。
【００７１】
ソフトウエアは、汎用または専用プログラマブルコンピュータで読み取り可能なＣＤ−ＲＯＭ等の、媒体で提供されるか、またはネットワークを通じて（伝搬信号で符号化されて）実行している場所のコンピュータに配送される。全ての機能を専用コンピュータで実行してもよく、またはコプロセッサ等の、専用ハードウエアを用いて実行してもよい。ソフトウエアは、ソフトウエアが規定する異なる部分の計算を異なるコンピュータで実行する分散方式で実装してもよい。このようなコンピュータープログラムはそれぞれ、汎用または専用のプログラマブルコンピュータが可読な格納媒体または装置（例えば、固体メモリもしくは媒体、または磁気式もしくは光式媒体）に格納するか、またはダウンロードするのが好ましく、その格納媒体または装置をコンピューターシステムが読み出すと、本明細書で説明した手順を実行するようコンピュータが構成され、動作する。集約的な本システムは、コンピュータープログラムにより構成されたコンピュータ可読格納媒体として実装されると考えることもでき、その場合、格納媒体により、コンピューターシステムが特有の、かつ所定の方法で動作して本明細書で説明した機能を実行するよう構成される。
【００７２】
言うまでもなく、上記説明は、説明を意図したものであって、付帯のクレームの範囲により定義される本発明の範囲を限定する意図はない。他の実施の形態は以下のクレームの範囲内にある。
【図面の簡単な説明】
【００７３】
【図１Ａ】計算システムのブロック図。
【図１Ｂ】メタデータ収納庫のブロック図。
【図２】例示の基本スキーマのエンティティ関係図。
【図３】ビューを示すページ。
【図１Ａ】
2008524671.tif 000003
【図１Ｂ】
2008524671.tif 000004
【図２】
2008524671.tif 000005
【図３】
2008524671.tif 000006