(57)【要約】オントロジー的コンテキストを動的に検索する方法及び装置が開示される。１つの実施例において、この方法は、ビジネスクラスにフィールドクラスの定義を含むパターン言語コードを含み、そのフィールドクラスはオントロジー的コンテキストを含む。この方法はまたビジネスクラスとオントロジー的コンテキストを含む高級オブジェクト指向コードの発生を含む。【選択図】図５
2008501195.tif 000002
【特許請求の範囲】
【請求項１】
ビジネスクラスとフィールドクラスの定義を含み、フィールドクラスはオントロジー的コンテキスト規則を含むパターン言語コードを受信し、
前記ビジネスクラスと、オントロジー的コンテキストを有する前記フィールドクラスを含む高級オブジェクト指向コードを発生することからなる方法。
【請求項２】
前記高級オブジェクト指向コードはジャバコードである請求項１の方法。
【請求項３】
前記オントロジー的コンテキスト規則はどのフィールドクラスが所定のフィールドクラスの到達可能なオントロジー的コンテキスト内になければならないかを示す請求項１の方法。
【請求項４】
第一のフィールドクラスに対する定義を生成し、
第二のフィールドクラスに対する定義を生成するものであって前記第二のフィールドクラスはオントロジー的コンテキスト規則を含み、前記オントロジー的コンテキスト規則は前記第一のフィールドクラスを使うものであり、
第二のフィールド及び第一のフィールドからなるビジネスクラスの定義を生成するものであって、前記第一のフィールドは前記第二のフィールドの到達可能なオントロジー的コンテキスト内にあり、前記第一のフィールドは第一のフィールド定義に関連しており、前記第二のフィールドは前記第二のフィールド定義に関連してなる方法。
【請求項５】
前記第一のフィールドクラスの定義と前記第二のフィールドクラスの定義はジャバプログラミング言語である請求項４の方法。
【請求項６】
更にパターン言語コード部分を受信する請求項４の方法。
【請求項７】
オントロジー的コンテキスト規則を有するフィールドからなるビジネスクラスを生成するための要求を受信し、
前記ビジネスクラスのインスタンスを生成する方法。
【請求項８】
前記ビジネスクラスは１またはそれ以上のフィールドからなり、前記ビジネスクラスのインスタンスの生成は各フィールドのインスタンスを生成することと、オントロジー的コンテキスト規則を実行することからなる請求項７の方法。
【請求項９】
前記実行は、
第一のフィールドから第二のフィールドについてのオントロジー的コンテキスト規則実行要求を受信し前記第一のフィールドは第一の階層グループにあるものと、
前記第二のフィールドが前記第一の階層グループ内にあるかどうかを決定するために前記第一の階層グループのフィールドを検査し、
もし前記第二のフィールドが前記第一の階層グループにあるならば、前記第一の階層レベルの前記第二のフィールドを用い、
前記第二のフィールドが前記第一の階層グループに含まれないならば、前記第二のフィールドが前記第二の階層レベルにあるかを決定するために第二の階層レベルの第二の階層グループをサーチし、
前記第二のフィールドが前記第二の階層グループにあるならば、前記第二の階層レベルの前記第二のフィールドを使うことからなる請求項８の方法。
【請求項１０】
ビジネスクラスの複数のフィールドクラスに対する到達可能なオントロジー的コンテキストフィールドを決定し、前記フィールドクラスのあるものはオントロジー的コンテキスト規則を含み、前記オントロジー的コンテキスト規則の各々は複数のフィールドクラスの少なくとも一つを用い、
前記いくつかのフィールドクラスの一つを選択し、その選択された所定のフィールドクラスは前記オントロジー的コンテキスト規則の一つを含み、前記オントロジー的コンテキスト規則の一つは前記複数のフィールドクラスの一つを用い、
前記選択された所定のフィールドクラスの到達可能なオントロジー的コンテキストは前記複数のフィールドクラスの一つを含むかを決定することを含む方法。
【請求項１１】
到達可能なオントロジー的コンテキストを決定することは前記ビジネスクラスの前記複数のフィールドクラス間のオントロジー的コンテキスト関係を表す階層トリーを生成することからなる請求項１０の方法。
【請求項１２】
前記複数のフィールドクラスと前記ビジネスクラスはパターン言語コードで表される請求項１０の方法。
【請求項１３】
前記複数のフィールドクラスと前記ビジネスクラスはジャバコードで表される請求項１０の方法。
【請求項１４】
オントロジー的コンテキスト規則からなるパターン言語コードを記憶するパーシスタントなデータ記憶部と、
前記パターン言語コードから高級オブジェクト指向言語を発生するための高級オブジェクト指向言語発生部及び有効化部であって、前記高級オブジェクト指向言語コードはビジネスクラスとフィールドクラスの定義を含み、前記フィールドクラスはオントロジー的コンテキストを含むシステム。
【請求項１５】
前記高級オブジェクト指向言語コードはジャバである請求項１４のシステム。
【請求項１６】
命令を与えその命令は機械によって実行される時その機械を動作させるものであり、
ビジネスクラスとフィールドクラスの定義を含むパターン言語コードを受信し、前記フィールドクラスはオントロジー的コンテキスト規則を含み、
前記ビジネスクラスと、オントロジー的コンテキストを有する前記フィールドクラスからなる高級オブジェクト指向コードを発生することからなる機械読取可能媒体。
【請求項１７】
前記高級オブジェクト指向コードはジャバコードからなる請求項１６記載の機械読取可能媒体。
【請求項１８】
前記オントロジー的コンテキスト規則は前記フィールドクラスのどれが前記フィールドクラスのあるものの前記到達可能なオントロジー的コンテキスト内に無ければならないかを示す請求項１６記載の機械読取可能媒体。
【請求項１９】
機械により実行されたとき前記機械に動作を行わせる命令を提供するものであって、
第一のフィールドクラスの定義を生成し、
オントロジー的コンテキスト規則を含む第二のフィールドクラスの定義を生成し、前記オントロジー的コンテキスト規則は前記第一のフィールドクラスを用い、
第二のフィールドと第一のフィールドを含むビジネスクラスの定義を生成し、前記第一のフィールドは前記第二のフィールドの前記到達可能なオントロジー的コンテキスト内にあり、前記第一のフィールドは前記第一のフィールド定義と関連し、前記第二のフィールドは前記第二のフィールド定義と関連する機械読取可能媒体。
【請求項２０】
前記第一のフィールドのクラス定義と前記第二のフィールドのクラス定義がジャバプログラム言語である請求項１９記載の方法。
【請求項２１】
更にパターン言語コード部分を受信するもの請求項１９記載の方法。
【請求項２２】
機械によって実行されるとき前記機械に動作を実行させる命令を提供するものであって、
オントロジー的コンテキスト規則を有するフィールドからなるビジネスクラスを生成することの要求を受け取り、
前記ビジネスクラスのインスタンスを生成する機械読取可能媒体。
【請求項２３】
前記ビジネスクラスは一つまたはそれ以上のフィールドからなり、前記ビジネスクラス生成は各フィールドのインスタンスを生成し、
オントロジー的コンテキスト規則を実行する請求項２２記載の機械読取可能媒体。
【請求項２４】
前記実行は、
第一のフィールドから第二のフィールドについてのオントロジー的コンテキスト規則実行要求を受信し前記第一のフィールドは第一の階層グループにあるものと、
第二のフィールドが第一の階層グループ内にあるかを決定するために第一の階層グループのフィールドを検査し、
もし前記第二のフィールドが前記第一の階層グループにあるならば、前記第一の階層レベルの前記第二のフィールドを用い、
前記第二のフィールドが前記第一の階層グループに含まれないならば前記第二のフィールドが前記第二の階層レベルにあるかを検査するために第二の階層レベルの第二の階層グループをサーチし、
前記第二のフィールドが前記第二の階層グループに含まれているならば前記第二の階層レベルの前記第二のフィールドを使うことからなる請求項２２記載の機械読取可能媒体。
【請求項２５】
機械で実行されたとき前記機械に動作を実行させる命令を提供するものであって、
ビジネスクラスの複数のフィールドクラスに対する到達可能なオントロジー的コンテキストフィールドを決定し、前記フィールドクラスのあるものはオントロジー的コンテキスト規則を含み、前記オントロジー的コンテキスト規則の各々は複数のフィールドクラスの少なくとも一つを用い、
前記いくつかのフィールドクラスの一つを選択し、その選択された所定のフィールドクラスは前記オントロジー的コンテキスト規則の一つを含み、前記オントロジー的コンテキスト規則の一つは前記複数のフィールドクラスの一つを用い、
前記選択された所定のフィールドクラスの到達可能なオントロジー的コンテキストは前記複数のフィールドクラスの一つを含んでいるかを決定する機械読取可能媒体。
【請求項２６】
到達可能なオントロジー的コンテキストを決定することは前記ビジネスクラスの前記複数のフィールドクラス間のオントロジー的コンテキスト関係を表す階層トリーを生成することからなる請求項２５の機械読取可能媒体。
【請求項２７】
前記複数のフィールドクラスと前記ビジネスクラスはパターン言語コードで表される請求項２５の機械読取可能媒体。
【請求項２８】
前記複数のフィールドクラスと前記ビジネスクラスはジャバコードで表される請求項２５の機械読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜制限付著作権放棄＞
この特許書類の開示の一部には、著作権保護の請求がなされているものが含まれている。この著作権所有者は米国特許庁のファイルまたは記録に現れる特許書類または特許開示のいずれかの人によるファクシミリの再生に対しては異議はないが、しかし他のいかなる権利に対しても留保する。
【０００２】
この発明はソフトウェア分野一般にかかり特にオブジェクト指向プログラムに対するオントロジーテキスト規則を実行することに関する。
【背景技術】
【０００３】
ほとんどのプログラム言語はデータを一つの機能または方法から他に送るための一組のパラメータ／メッセージおくり機構を有する。これらの機構はしばしば、機械的メタファに基づいており、このメタファはそのコンテキストに無関係である「機械」を定義する。従来は、コンテキスト感受性を減少することが健全な機械設計にとって重要であった。健全に設計された機械は固定的に定義された少数の入力及び出力を有する。この機械の入力／出力インターフェースはプログラム言語のパラメータ／メッセージおくり機構と類似である。この機械的メタファにおいて、「ユーザ」は機械入力を決定する。したがって「エージェント」は機械にはなく、むしろ常に機械のユーザにある。同様にプログラム言語パラダイムにおいて、機能または方法の「ユーザ」はその入力及び出力が何であるかを決定する。
【０００４】
その機械的メタファは簡単なタスクを正確に繰り返し行うことに向いているが、機械すなわち機構の一つの欠点はその機械が環境変化に十分に対応しないということである。環境が変化するときその機械はかかる環境変化に通常は適応しない。同様に典型的なプログラム言語パラメータ／メッセージおくり機構は本来的に機械的に固定的であって環境変化に対しての適応を禁ずる。例えばビジネスアプリケーションシステムは人間の行うプロセスを頻繁に変更するコンピューターモデルである。人間の行うプロセスは環境の変化に適応するので、複雑な適応的なシステムである。しかしながらアプリケーションソフトウェアは一般に極めて変化しにくいのは、人間の行うプロセスが変化するにつれて時期遅れになる最初の設計に「ロック」されているパラメータおくり機構を使うからである。
【０００５】
一つの従来のプログラム言語によれば、機能とそれらのパラメータは設計時に宣言されねばならない。さらに機能の呼び出し者はその機能の名前とパラメータ名と型を使ってその機能を呼び出す。多数のパラメータ／メッセージおくり機構において、呼び出し及び呼び出されるルーチンはいかにパラメータが表現され解釈されるかを特定しなければならない。パラメータ／メッセージおくり機構はパラメータが表すものが設計時に表現されることを要求する。システムが変形されるとき、パラメータの表現するものはそれらが呼ばれるいずれの場所においても変形されなければならない。大きなシステムにおいて、パラメータは見つけることが難しくしたがってパラメータを変形することは極めて難しく高価となる。
【０００６】
他の従来のプログラム言語によれば、全てのパラメータ評価は呼ばれたルーチンあるいは機能が実行を開始する前に行われる。この従来のプログラム言語の一つの欠点は早期のパラメータ評価が所定のパラメータがそのルーチンあるいは機能内で使われていない時には冗長な計算となることである。
【発明を実施するための最良の形態】
【０００７】
オントロジー的コンテキスト（ｏｎｔｏｌｏｇｉｃａｌ  ｃｏｎｔｅｘｔ）規則を動的に検索する方法及び装置がここに説明される。以下の説明では多数の特定な詳細が提出されている。しかしながらこの発明の実施例はこれらの特定の詳細なくしても実施できることは理解される。他の例においては、周知の回路、構造及び技術はそれほど詳細には示されていない説明の理解を曖昧にするものではない。この説明では一つの実施例あるいは「一実施例」という参照は、参照されている特徴がこの発明の少なくとも一つの実施例の中に含まれているということを示す。更にこの説明において「一つの実施例」というは別の参照は必ずしも同じ実施例を参照するものではない。しかしながら、そのように述べられていない及び同業者にとって明らかである場合を除いて、かかる実施例はお互いに排他的ではない。したがってこの発明はここに述べられている各実施例の組み合わせ及びまたは一体化されたもののあらゆる種類のものを含む。さらにこの説明は例示的実施例という句は参照された実施例は一例または例示であることを示す。
【０００８】
ここでブロック図はこの発明の例示的実施例を示す。更にフロー図はこの発明の例示的実施例の動作を示す。フロー図の動作はそのブロック図に示された例示的実施例を参照して説明される。しかしながらフロー図の動作はブロック図を参照して議論される実施例以外の発明の実施例によって行われ、ブロック図を参照してなされた実施例はフロー図を参照してなされた実施例と異なった動作を行いうる。更にフロー図は一連の動作を示すのだが各実施例はこれらの動作を並列に実行することができるということを理解されるべきである。
【０００９】
図１は例示的実施例にかかり、オブジェクト指向クラス間の関係を表す図である。図１に示すようにビジネスクラス１００はフィールド１と３を含む。フィールド３はフィールド１のオントロジー的コンテキスト規則１０２を含むフィールド２を含んでなる。
【００１０】
一実施例によれば、ビジネスクラス（例えばビジネスクラス１００）はパーシスタントオブジェクトの抽象的表現である（例えばパーシスタントオブジェクトとはリレーショナルデータベース管理システムに記憶されたオブジェクト）。図１においてフィールド１、２及び３はビジネスクラス１００内のオブジェクト指向クラスを表す。フィールド１のオントロジー的コンテキスト規則１０２は、フィールド１がインスタンス化されるとき、
フィールド２がフィールド１の到達可能なオントロジー的コンテキスト内にあることを要求する（到達可能なオントロジー的コンテキストはより詳細に以下に説明される）。更に加えてオントロジー的コンテキスト規則はあるオブジェクトがコンパイル時に一つのオブジェクトの到達可能なオントロジー的コンテキスト内にあることを要求する。
【００１１】
ことに、オントロジー的コンテキスト規則はそのなかでコンテキスト規則が定義されているフィールドに対するオントロジー的コンテキストとして動作する一つのフィールド（複数のフィールド）を特定する。例えば従業員３０２はそれがＨＲ会社３０５（図３参照）のコンテキスト内にそれ自身を見つける時、そのフィールドがはじめて有効であることすなわちそのフィールドがはじめて意味があることを示しているオントロジー的コンテキスト規則を有している。あるＨＲ会社フィールドのコンテキスト内にそれが無いときには従業員フィールド３０２は意味がない。オントロジー的コンテキスト規則はそのフィールドがどのコンテキスト内にそれ自身を発見するかを決定するために各フィールドに対して責任を与える。これにより機械的固定性のレベルを克服する。なぜなら、オントロジー的コンテキスト規則は、いかなる変形もそのフィールドそれ自身に要求することなく、それらのフィールドに対してほとんど無限数のコンテキスト内に自分自身を発見させるからである。加えてフィールドのオントロジカル構造（これはそのオントロジー的コンテキスト規則内に実現されている）を、フィールドのコンテキストを変えることなく変更することが可能である。ただ一つの要求はフィールドがその要求されたオントロジー的コンテキスト内にそれ自身を見つけるということである。
【００１２】
オントロジー的コンテキストが変化する一つの方法はそのフィールドが他のフィールドによって囲まれることである。例えば従業員フィールド３０４はスーパーバイザーフィールド（スーパーバイザーフィールドは図に示されていない）内に置くことができる。この場合従業員及び会社フィールドを変化する必要がない。なぜなら従業員フィールド３０４はその到達可能なオントロジー的コンテキスト内に会社をなお見つけるだろうからである。他の例として、従業員のオントロジカル構造は会社内に存在する部門内にそれが存在することを特定することによって変更できる。この場合従業員のオントロジー的コンテキスト規則だけが変化する必要があり、部門フィールドはそのコンテキスト内に存在している限り他のいかなる変化も必要がない。
【００１３】
オントロジー的コンテキストフィールドは、ある場合においてはそれが任意であると特定されるのだが、通常は到達可能なコンテキスト内に存在することが要求される。
【００１４】
図２はビジネスクラス内のフィールドクラスに対する到達可能なオントロジー的コンテキストを定義するクラス集合階層を図示するトリー図である。その階層２００は図１のビジネスクラス１００の部品間の関係を示す。図２に示すようにビジネスクラス１００は階層２００の頂点にある。フィールド１とフィールド３は中間階層グループ２０２を形成する。フィールド２は下層階層グループ２０４を形成する。フィールド３は辺２０６によって下方の階層グループ２０４へ接続される。辺２０６はフィールド３と階層グループ２０４内のフィールド（すなわちフィールド２）との間のオントロジー的コンテキスト関係を示す。フィールドの到達可能なオントロジー的コンテキストはその階層グループ内の全てのフィールド及び接続されたより高いレベルの階層グループ内の全てフィールドを含む。例えば到達可能なフィールド２のオントロジー的コンテキストはそれ自身とフィールド１と３を含む。なぜならばそれらは接続されたより高いレベルの階層グループ内のフィールドであるからである。他の例としてフィールド１の到達可能なオントロジー的コンテキストはフィールド３のみを含む。なぜならフィールド３はフィールド１内の階層グループ内にありフィールド１は接続されたより高い階層グループを持っていないからである。フィールドの到達可能なオントロジー的コンテキストのより詳細な例は図４の説明において以下で述べられる。
【００１５】
図３はこの発明の例示的実施例に従うもので、従業員マスタービジネスクラス内のフィールド間の関係を現す図である。従業員のマスタービジネスクラス３００は上述したオブジェクト指向関係のより詳細な記述を与えるために提出されている。図３はパターン言語または高級オブジェクト指向言語のクラス定義の抽象的表現として従業員マスタービジネスクラス３００を表す。例えば従業員マスタービジネスクラス３００はパターン言語内に定義されている（例えばミネソタ州セントポールのローソンソフトウエア会社から提供されるローソンパターン言語，カリフォルニア州サンタクララのサンマイクロシステムから提供されるジャバプログラム言語，または他の適当なオブジェクト指向プログラム言語）。従業員マスタービジネスクラス３００のローソンパターン言語（ＬＰＬ）はアペンディックスＡとして以下に示される。
【００１６】
図３に示されているように従業員マスタクラス３００に，従業員フィールド３０２，国コードフィールド３０６，ＨＲ会社フィールド３０５，住所フィールド３０８，一次給料領域フィールド３１４，二次給料領域フィールド３２４からなる。従業員フィールド３０２はＨＲ会社オントロジー的コンテキスト規則３０４を含む。住所フィールド３０８は国コードフィールド３１０を含み、地域はフィールド３１２でありこれは国コードオントロジー的コンテキスト規則３３４を含む。一次給料領域フィールド３１４はＨＲ会社，国コード，地域オントロジー的コンテキスト規則３１８を含む給料コードフィールド３１６を含む。給料領域フィールド３１４はまた国コードオントロジー的コンテキスト規則３２２を含む地域フィールド３２０を含む。二次給料領域フィールド３２４はＨＲ会社，国コード，地域オントロジー的コンテキスト規則３２８を含む給料コードフィールド３２６を含む。二次給料領域フィールド３２４はまた国コードオントロジー的コンテキスト規則３３２を含む地域フィールド３３０を含む。
【００１７】
図１について説明したように、オントロジー的コンテキスト規則が所定のフィールドがそのコンパイル時にフィールド到達可能オントロジー的コンテキスト内にあることを要求する。例えば図３において、地域フィールドの国コードオントロジー的コンテキスト規則３３４はその地域フィールド３１２に対してその地域内の到達可能なオントロジー的コンテキスト内に国コードフィールドを有することを要求する。他の例として、給料コードフィールドのコンテキスト規則はＨＲ会社、国コード及び地域フィールドをコンパイル時にその到達可能なオントロジー的コンテキスト内に有することを給料コードフィールド３１８に対して要求する。従業員マスタービジネスクラスフィールドの各々到達可能なオントロジー的コンテキストは以下の図４を参照して説明される。
【００１８】
図４はビジネスクラス内におけるフィールドクラスに対する到達可能なオントロジー的コンテキストを定義するクラス階層を例示するトリー図である。階層４００は図３の従業員マスタービジネスクラス３００のフィールド間の関係を示す。図４に示すように従業員マスタービジネスクラス３００は階層４００の上部に有り、一方その下方には二つの階層レベルにおいて四つの階層グループが存在する。その第２の階層グループ４０８は住所フィールド３０８、ＨＲ会社フィールド３０５、従業員フィールド３０２、国コードフィールド３０６、一次給料領域フィールド３１４及び二次給料領域フィールド３２４から成る。第２、第３、第４の階層グループはその第１の階層グループ４０８の下方の階層レベルである。第２の階層グループ４０４は辺４１０によって住所フィールド３０８に接続されており国コードフィールド３１０と地域フィールド３１２を含む。第３の階層グループ４０２は一次給料領域フィールド３１４に辺４１２によって接続されており、地域フィールド３２０と給料コードフィールド３１８を含む。第４の階層グループ４０６は地域フィールド３３０及び給料コードフィールド３２６を含む。第４の階層グループ４０６は二次給料領域フィールド３２４へ辺４１４によって接続される。
【００１９】
従業員マスタービジネスクラス３００の各フィールドは到達可能なオントロジー的コンテキストを有する。各フィールドの到達可能なオントロジー的コンテキストはそれ自身の階層グループ内に各フィールドを有すると共にその接続されたより高い階層レベルの階層グループに各フィールドを有する。例えば第２の階層グループ（４０４）の国コードフィールド３１０及び領域フィールド３１２はそれ自身の階層グループ（４０４）の各フィールド及び第１の階層グループ４０８の各フィールドから成る到達可能なオントロジー的コンテキストを有する。第３及び第４の階層グループにおける各フィールドの到達可能なオントロジー的コンテキストは同様に決定される。
【００２０】
図１ないし図４はビジネスクラス内のフィールド間の関係を示し、図５ないし図１０はオントロジー的コンテキスト規則を処理するためのシステム構成と動作を示す。
【００２１】
図５はオントロジー的コンテキスト規則を含むプログラミング言語コードを記憶し処理するためのシステムを示す。そのシステムの動作は図６ないし図１０を参照して以下により具体的に説明される。図５に示すようにシステム５００はパーシスタントなデータ記憶部５０６を含む。システム５００が動作するとき、パーシスタントなデータ記憶部は高級オブジェクト指向言語コード５０８、パターン言語コード５１０、及びオブジェクトコード５１２を含む。しかしながら動作の前に、パーシスタントなデータ記憶部５０６は単にパターン言語コード５１０のみを含んでも良い。
【００２２】
パーシスタントなデータ記憶部５０６は高級オブジェクト指向言語発生部及び有効化部５０２に接続され、これはオントロジー的コンテキスト規則を含む高級オブジェクト指向言語コードを発生する。発生部５０２はパーシスタントなデータ記憶部５０６に接続されている高級オブジェクト指向コンパイラ５０４へ接続される。パーシスタントなデータ記憶部５０６は実行部５１４にもまた接続される。一実施例において、実行部５１４はオブジェクトコード５１２を実行するために必要な全ての要素を含む。例えば実行部５１４はプロセッサ、メモリ、例えばジャバ実行時環境（これはカリフォルニア州サンタクララのサンマイクロシステムから入手可能である。）のようなソフトウエアを含む。
【００２３】
システム５００は上述したような（すなわち図２及び図４を参照）トリー図を生成し記憶する。より具体的にはシステム５００はビジネスクラスの各フィールドの到達可能なオントロジー的コンテキストを表すデータ構造たとえばトリー図を生成する。システム５００は以下に示すようにＬＰＬまたはジャバコードプログラム内に含まれているコンテキスト規則を実行するためのトリー図を用いる。
【００２４】
図５に示されるのかそうでなければこの発明の実施例と共に使われる機能部のいづれもが、ここに説明されている動作を実行するための命令を含む機械読取可能媒体を含む、機械読取可能媒体は情報を機械（例えばコンピュータ）によって読み取られる形で与える（すなわち記憶し及びあるいは転送する）機構を含む。例えば機械読取可能媒体はリードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶メディア、光記憶メディア、フラッシュメモリ装置、電気的，光学的，音響的又は他の形での伝送信号（搬送波、赤外線信号、デジタル信号等）から成る。この発明の実施例によれば機能部はここに述べる動作を実行するための他のタイプのロジック（例えばデジタルロジック）から成ってもよい。
【００２５】
図６はパターン言語コードを高級オブジェクト指向コードへ翻訳するための一般的な動作を示すフロー図である。フロー図６００は図５に示された例示的システムを参照して説明される。フロー図はブロック６０２から始まる。
【００２６】
ブロック６０２においてビジネスクラス、フィールド及びオントロジー的コンテキスト規則の定義からなるパターン言語コードが受信される。例えば高級オブジェクト指向言語発生部及び有効化部５０２はパーシスタントなデータ記憶部５０６からのパターン言語コードを受け取る。パターン言語コードの例はアペンディックスＡに示される。ブロック６０２からそのフローはブロック６０４へ継続する。
【００２７】
ブロック６０４において高級オブジェクト指向コードはパターン言語コードに基づいて発生され、一方高級オブジェクト指向コードはビジネスクラス、フィールドクラス、オントロジー的コンテキスト規則からなる。一つの実施例において高級オブジェクト指向コードは公知のスキャン、構文解析、コード発生技術を使って生成される。一実施例において、高級オブジェクト指向コードはジャバコードである。ブロック６０４の動作は図７を参照してより詳細に説明される。ブロック６０４からフローはブロック６０６へ継続する。
【００２８】
ブロック６０６では高級オブジェクト指向言語コードはコンパイルされ、有効化され、実行される。例えば高級オブジェクト指向言語コード５０８は高級オブジェクト指向コンパイラ５０４によってコンパイルされ有効化される。高級オブジェクト指向コンパイラ５０４はパーシスタントなデータ記憶部５０６にコンパイルされた高級オブジェクト指向言語コードをオブジェクトコード５１２として記憶する。ブロック６０６でそのフローは終了する。
【００２９】
図７はこの発明の実施例に従って、オントロジー的コンテキストの概念を用いたフィールドとビジネスクラスの定義とを発生するための動作を示すフロー図である。実施例によれば、このフィールドとビジネスクラスの定義はジャバコードによって表わすことができる。フロー図７００の動作は図４及び図５に示されている例示的実施例を参照して説明される。フロー図７００はブロック７０２で開始する。
【００３０】
ブロック７０２は第１のフィールドクラスの定義が生成される。例えば高級オブジェクト指向言語発生部及び有効化部５０２はパターン言語コード５０８に基づいて第１のフィールドクラス定義を生成する。より具体的な例として高級オブジェクト指向言語発生部及び有効化部５０２はＨＲ会社フィールド３０５のＬＰＬ表現に基づくＨＲ会社３０５のジャバクラス定義を生成する。ブロック７０２からフローはブロック７０４に継続する。
【００３１】
ブロック７０４では第２のフィールドクラスの定義が生成され、一方第２のフィールドクラスの定義は、第１のフィールドクラスを使うオントロジー的コンテキスト規則を含む。例えば高級オブジェクト指向言語発生部及び有効化部５０２は第２のフィールドクラス定義を生成し、これは第１のフィールドクラス（第１のフィールドクラスはブロック７０２で定義された）を使うコンテキスト規則を含む。より具体的な例として、高級オブジェクト指向言語発生部及び有効化部５０２は従業員フィールド３０２のジャバクラス定義を生成し、これはＨＲ会社フィールド３０５を使うオントロジー的コンテキスト規則３０４を含む。ブロック７０４からこのフローはブロック７０６に継続する。
【００３２】
ブロック７０６においてビジネスクラスの定義が生成され、そのビジネスクラスの定義は第１及び第２のフィールドクラスタイプのそれぞれの第１及び第２のフィールドからなる。例えば高級オブジェクト指向言語発生部及び有効化部５０２は第２のフィールド及び第１のフィールドを含むビジネスクラス定義を生成し、第１のフィールドは第２のフィールドの到達可能なオントロジー的コンテキスト内にある。ブロック７０６でそのフローは終了する。
【００３３】
フロー７００は従業員マスタービジネスクラス３００または他のいかなるユーザが定義したビジネスクラスの全てのフィールドに対する高級オブジェクト指向言語定義を生成するために変形することが出来ることは当業者にとっては明らかである。さらに上述したように周知のスキャン、構文解析及びコード発生技術が上述の定義を生成するプロセスにおいて用いられる。このフィールドとビジネスクラスの定義を生成した後にシステム５００は例えば図８において説明されるようなビジネスクラスフィールド間のオントロジー的コンテキスト関係を有効化する。
【００３４】
図８はコンテキスト規則を有効化するための動作を例示するフロー図である。フロー図８００の動作は図４の階層及び図５の例示的システムを参照して説明される。そのフロー図８００はブロック８０２から始まる。
【００３５】
ブロック８０２において高級オブジェクト指向コードが受信される。例えば高級オブジェクト指向言語発生部及び有効化部５０２はパーシスタントなデータ記憶５０６から高級オブジェクト指向コードを受信する。そのフローはブロック８０４に継続する。
【００３６】
ブロック８０４は、ビジネスクラスのフィールドクラス間のオントロジー的コンテキスト関係を表す階層トリーが構築される。例えば高級オブジェクト指向を言語発生部及び有効化部５０２はビジネスクラスのフィールドクラス間におけるオントロジー的コンテキスト関係を表す階層トリーを構築する。一実施例においては階層トリーは図２及び図４に示すようなものである。そのフローはブロック８０６に継続する。
【００３７】
ブロック８０６ではオントロジー的コンテキスト規則を含むフィールドが選択される。例えば高級オブジェクト指向発生部及び有効化部５０２は一つ又はそれ以上にコンテキスト規則を含む階層トリーからのフィールドを選択する。そのフローはブロック８０８に継続する。
【００３８】
ブロック８０８ではオントロジー的コンテキスト規則が使われているフィールドが現在の階層グループ内にあるかどうかが決定される。例えば高級オブジェクト指向言語発生部及び有効化部５０２は選択されたフィールドの階層グループを検索し、そしてその要求されたフィールドが階層内にあるかどうかを決定する。そのフィールドが階層グループ内にあるならば、そのフローはブロック８１０に継続する。そうでなければそのフローはブロック８１２に継続する。
【００３９】
ブロック８１０では、有効化が完了したかを決定する。例えば高級オブジェクト指向言語発生部及び有効化部５０２は有効化を行うべき追加のフィールドがあるかどうか（すなわち到達可能なオントロジー的コンテキストがサーチされるべき追加のフィールドがあるかどうか）を決定する。もし有効化が完了するならば、そのプロセスは終了する。そうでなければそのフローはブロック８０６に継続する。
【００４０】
ブロック８１２では接続されたいかなるより上位レベルの階層グループがあるか否かが決定される。例えば高級オブジェクト指向言語発生部及び有効化部５０２は現在の階層グループに接続されたいかなるより上位レベルの階層グループがあるかどうかを決定する。すなわち有効化部５０２は追加のより上位レベルの階層グループの中に要求されたフィールドを探すことを続けるかどうかを決定する。他の接続されたより上位レベルの階層グループが存在するならばそのフローはブロック８１４に継続する。そうでなければそのフローはブロック８１６に継続する。
【００４１】
ブロック８１４では階層トリーがより上位レベルの階層グループへ逆にたどられる。例えば高級オブジェクト指向言語発生部及び有効化部５０２はより上位レベルの階層グループに接続された辺に沿って階層トリーを逆にたどる。そのフローはブロック８０８に継続する。
【００４２】
ブロック８１６では、誤りが報告される。例えば高級オブジェクト指向言語発生部及び有効化部５０２はそれが適当な到達可能なオントロジー的コンテキスト内に要求されたフィールドが存在することが発見できないときに誤りを報告する。ブロック８１６でそのフローは終了する。
【００４３】
図７ないし図８は実行時の前にフィールドとビジネスクラスの定義を生成し有効化するための動作を記述する。図９ないし図１１は実行時におけるフィールドとビジネスクラスのためのオントロジー的コンテキスト関係をインスタンス化し有効化するための動作を説明する。
【００４４】
図９はその発明の例示的実施例に従うものであって、ビジネスクラスをインスタント化するための動作を例示するフロー図である。そのフロー図９００は図５に示された例示的システムに関して説明される。そのフロー図９００はブロック９０２で開始する。
【００４５】
ブロック９０２はコンテキスト規則を含むフィールドを含むビジネスクラスを生成するための要求を受信する。例えば実行部５１４はコンテキスト規則を含むフィールドを含むビジネスクラスを生成するための要求を受信する。ブロック９０２からフローはブロック９０４に継続する。
【００４６】
ブロック９０４ではビジネスクラスのインスタンスが生成される。例えば実行部５１４はビジネスクラスをインスタンス化する。ブロック９０４でそのフローは終了する。
【００４７】
図１０はこの発明の例示的実施例に従って、ビジネスクラス（ブロック９０４参照）のインスタンスを生成するためのより詳細な動作を例示するフロー図である。このフロー図１０００は図５に示されている例示的システムに関して説明される。そのフロー図１０００はブロック１００２で開始する。
【００４８】
ブロック１００２では各フィールドのインスタンスはビジネスクラスの定義の中で生成される。例えば実行部５１４は従業員マスタビジネス３００の各フィールドをインスタンス化する。フローはブロック１００４に継続する。
【００４９】
ブロック１００４では、フィールド定義が他のフィールドを含むかどうかについて決定がなされる。例えば実行部５１４はフィールド定義が他のフィールドを含むかどうかを決定する。そのフィールド定義は他のフィールドを含むならばそのフローはブロック１００２に継続する。そうでなければそのフローはブロック１００６に継続する。
【００５０】
ブロック１００６ではオントロジー的コンテキスト規則が実行される。例えば実行部５１４はオントロジー的コンテキスト規則を実行する。オントロジー的コンテキスト規則を実行するためのより詳細な説明については図１１を参照して以下に述べる。ブロック１００６でそのブロックは終了する。
【００５１】
図１１はオントロジー的コンテキスト規則を実行するための動作を例示するフロー図である。フロー図１１００の動作は図４の階層トリーと図５の例示的システムを参照して説明される。そのフロー図１１００はブロック１１０２で開始する。
【００５２】
ブロック１１０２では第２フィールドについてのオントロジー的コンテキスト規則実行要求が第１フィールドから受信される。例えば実行部５１４は第１のフィールドから第２のフィールドについてのコンテキスト実行要求を受け取る。以下の動作においては、実行部５１４は階層トリー（図２及び図４を参照）を用いてオントロジー的コンテキスト規則を実行する。そのフローはブロック１１０４に継続する。
【００５３】
ブロック１１０４では、その第１フィールドの階層グループがサーチされてその第２フィールドが第１フィールドの階層グループ内にあるかどうかが決定される。例えば実行部５１４は第２フィールドを得るために第１フィールドの階層グループを検索する。フローは１１０６ブロックに継続する。
【００５４】
ブロック１１０６では第２フィールドが第１フィールドの階層グループ内に含まれているかどうかを決定する。もしその第１フィールドが第２フィールドの階層グループ内に有る場合にはそのフローはブロック１１０８に継続する。そうでなければそのフローはブロック１１１２に継続する。
【００５５】
ブロック１１０８では第２のフィールドが第１のフィールドに対してコンテキスト規則を適応するために用いられる。例えば実行部５１４はコンテキスト規則を第１フィールドに適応するために第２フィールドを使用する。ブロック１１０８でそのフローは終了する。
【００５６】
ブロック１１１２ではいかなる到達可能なより上位レベルの階層グループが存在するかどうかについて決定する。もし追加のより上位レベルの階層グループが存在するならばフローはブロック１１１４に継続しそうでなければそのフローはブロック１１１０に継続する。
【００５７】
ブロック１１１４では、サーチは接続されたより上位レベルの階層グループで行われる。例えば実行ユニット５１４は階層トリーを逆にたどって接続されたより上位レベルの階層グループへ達する。ブロック１１１４ではそのフローはブロック１１０４で終了する。
【００５８】
ブロック１１１０では誤りが報告される。例えば実行ユニット５１４が誤りを報告する。ブロック１１１０でこのフローは終了する。
【００５９】
＜ハードウエアと動作環境＞
この部分はこの発明の実施例が実行される例示的ハードウエアと動作環境を概説する。
【００６０】
図１２はこの発明の幾つかの実施例と共に用いられる例示的コンピュータシステムを示す。図１２に例示するように、コンピュータシステム１２００はプロセッサ１２０２を含む。コンピュータシステム１２００はまたメモリ部１２３０、プロセッサバス１２２２及びインプット／アウトプットコントローラハブ（ＩＣＨ）１２２４を含む。プロセッサ１２０２、メモリ部１２３０、ＩＣＨ１２２４はプロセッサバス１２２２に接続される。そのプロセッサ１２０２は適当なプロセッサアーキテクチャを有する。そのコンピュータシステム１２００は１、２、３個またはより多くのプロセッサを有し、それらのどれもがこの発明の実施例に従って一組の命令を実行する。
【００６１】
メモリ部１２３０はデータ及びまたは命令を格納しダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような適当なメモリから成る。コンピュータシステム１２００もまたＩＤＥドライブ１２０８及びまたは他の適当な出力装置を含む。グラフィックス制御部１２０４はこの発明の実施例に従って表示装置１２０６上に表示された情報を制御する。
【００６２】
入出力コントローラハブ（ＩＣＨ）１２２４はコンピュータシステム１２００に対するＩＯ装置あるいは周辺部品へのインターフェースを提供する。ＩＣＨ１２２４は適当なインターフェース制御部から成り、ＩＣＨ１２２４と通信してプロセッサ１２０２，メモリ部１２３０及びまたは適当な装置または部品に対して適当な通信リンクを与える。この発明の一実施例においてはＩＣＨ１２２４は各インターフェースに対する適当なアービトレーションとバッファリングを与える。
【００６３】
この発明の一実施例によればＩＣＨ１２２４はハードディスクドライブ（ＨＤＤ），コンパクトディスク，リードオンリーメモリ（ＣＤＲＯＭ）ドライブのような一つまたはそれ以上の適当な一体化された駆動電子装置（ＩＤＥ）ドライブ１２０８にインターフェースを提供するかあるいは一つあるいはそれ以上のＵＳＢポート１２１０を介して適当なユニバーサルシリアルバス（ＵＳＢ）装置のインターフェースを与える。この一つの実施例では、ＩＣＨ１２２４をまたキーボード１２１２、マウス１２１４、ＣＤ―ＲＯＭドライブ１２１８、一つあるいはそれ以上のファイヤーワイヤーポート１２１６を介する一つのまたはそれ以上適当な装置に対するインターフェースを提供する。この発明の一実施例によればＩＣＨ１２２４はそのコンピュータシステム１２００が他のコンピュータ及び又は装置と通信出来るようなネットワーク上のインターフェース１２２０を与える。
【００６４】
一実施例ではコンピュータシステム１２００はダイナミック検索オントロジー的コンテキストのためのメソドロジのいかなる一つまたは全てを実現している一組の命令（ソフトウエア）を提供を記憶する機械読取可能媒体を含む。さらにソフトウエアは完全にあるいは少なくとも一部分はメモリ部１２３０及びまたはプロセッサ１２００の内に存在する。
【００６５】
したがってオントロジー的コンテキスト規則を実行するための方法及びシステムは以下に述べたとおりである。上述したように（図３及び図６の説明を参照。）以下のアペンディックスはこの発明の実施例に関する例示を示すものである。この発明は（アペンディックスＡおよびＢにソースコードを含んでいる）特定な例示的実施例を参照して説明されるが、沢山の変形や変更がこの発明のより広い精神に反しない範囲でこの発明の実施例であるとされる。したがって明細書と図面は限定できない意味ではなく例示的なものとして考慮されるべきである。
【図面の簡単な説明】
【００６６】
この発明は添付された図面の各図において一例として示され特定されている。
【図１】図１は、この発明の例示的な実施例であり、オブジェクト指向クラス間の関係を図示的に示す。
【図２】図２は、ビジネスクラス内でフィールドクラスに対する到達可能なオントロジー的コンテキストを定義するクラス集合階層を示すトリー図である。
【図３】図３は、この発明の例示的実施例であり、従業員マスタービジネスクラスにおけるフィールド間の関係を図示的に示す。
【図４】図４は、ビジネスクラス内のフィールドクラスに対する到達可能なオントロジー的コンテキストを定義するクラス階層を例示するトリー図である。
【図５】図５は、オントロジー的コンテキストを含むプログラム言語コードを記憶し処理するためのシステムを例示するブロック図である。
【図６】図６は、パターン言語コードを高級オブジェクト指向コードへ変換するための一般的な動作を示すフロー図である。
【図７】図７は、この発明の実施例でありオントロジー的コンテキストの概念を使うフィールド及びビジネスクラス定義を発生するための動作を示すフロー図である。
【図８】図８はオントロジー的コンテキスト規則を有効化するための動作を例示するフロー図である。
【図９】図９は、この発明の例示的実施例でありビジネスクラスをインスタンス化するための動作を示すフロー図である。
【図１０】図１０は、この発明の例示的実施例であり、ビジネスクラス（ブロック９０４）のインスタンスを生成するためのより詳細動作を示すフロー図である。
【図１１】図１１は、オントロジー的コンテキスト規則を実行するためのフロー図である。
【図１２】図１２は、この発明の実施例とともに使われるコンピュータシステムの例示である。
【００６７】
2008501195.tif 000003
2008501195.tif 000004
2008501195.tif 000005
2008501195.tif 000006
【００６８】
2008501195.tif 000007
2008501195.tif 000008
2008501195.tif 000009
2008501195.tif 000010
2008501195.tif 000011
2008501195.tif 000012
2008501195.tif 000013
2008501195.tif 000014
2008501195.tif 000015
2008501195.tif 000016
2008501195.tif 000017
2008501195.tif 000018
2008501195.tif 000019
【図１】
2008501195.tif 000020
【図２】
2008501195.tif 000021
【図３】
2008501195.tif 000022
【図４】
2008501195.tif 000023
【図５】
2008501195.tif 000024
【図６】
2008501195.tif 000025
【図７】
2008501195.tif 000026
【図８】
2008501195.tif 000027
【図９】
2008501195.tif 000028
【図１０】
2008501195.tif 000029
【図１１】
2008501195.tif 000030
【図１２】
2008501195.tif 000031
【国際調査報告】
2008501195.tif 000032
2008501195.tif 000033
2008501195.tif 000034