(57)【要約】      （修正有）【課題】グラフィカルに式を定義する。【解決手段】第１の演算子オブジェクトのグラフィカルな表現が表示される。データを含むための変数オブジェクトが提供される。変数オブジェクトを第１の演算子オブジェクトの入力の１つ又は結果の１つに関連付けるためのユーザからの入力が受け取られる。第１の変数オブジェクトのグラフィカルな表現及びその演算子オブジェクトに対する関係が表示される。オブジェクト間の関係の論理的な記述が記録され、これによって式を定義する。【選択図】図２
2008165739.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、
前記第１の演算子オブジェクトをグラフィカルな表現で表示し、
データを保持するための第１の変数オブジェクトを提供し、
前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付け、
前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示し、
前記オブジェクト間の関係の論理的な記述を記録し、
これにより、論理的記述により式が定義される
コンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２】
データを保持するための変数オブジェクトを提供し、
前記変数オブジェクトをグラフィカルな表現で表示し、
少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、
前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つを前記変数オブジェクトに関係付ける入力をユーザから受け付け、
前記第１の演算子オブジェクト及びその前記変数オブジェクトとの関係をグラフィカルな表現で表示し、
前記オブジェクト間の関係の論理的な記述を記録し、
これにより論理的記述により式が定義される
コンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３】
１以上のさらなる変数オブジェクトを提供し、
前記さらなる変数オブジェクトの各々を第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付けるさらなる入力をユーザから受け付け、
前記さらなる変数オブジェクト及びそれらの前記演算子オブジェクトとの関係をグラフィカルな表現で表示する
工程をさらに有する請求項１又は２に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４】
１以上のさらなる演算子オブジェクトを提供し、
各変数オブジェクトを前記さらなる演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付けるさらなる入力をユーザから受け付け、
前記さらなる演算子オブジェクト及びその前記変数オブジェクトとの関係をグラフィカルな表現で表示する
工程をさらに有する請求項１〜３のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５】
各変数オブジェクトは、データソースからのデータを提供するための入力オブジェクト、データの行き先にデータを供給する出力オブジェクト、又は、１つの演算子オブジェクト又はもう１つの演算子オブジェクトからデータを流すための結合オブジェクトより選択される
請求項１〜４のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項６】
結合オブジェクトは演算子オブジェクトの間のリンクとして表現される
請求項１〜５のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項７】
各変数オブジェクトは変数ラベルを伴って提供される
請求項１〜６のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項８】
各演算子オブジェクトは演算子ラベルを伴って提供される
請求項１〜７のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項９】
前記式の前記論理的な記述は前記オブジェクト間の論理的関係により定義される
請求項１〜８のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１０】
オブジェクト間の前記関係の前記グラフィカルな表示を定義する前記式のグラフィカルな定義は記録される
請求項１〜９のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１１】
前記論理的な定義を記述する情報を記憶するステップを含む
請求項１〜１０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１２】
前記グラフィカルな定義定義を記述する情報を記憶するステップを含む
請求項１〜１０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１３】
２以上の前記演算子オブジェクトがグループ化されており、グループ化は、グルーピングの演算子オブジェクトを定義し、その中においてはグルーピングの境界を横切りグループ内の演算子オブジェクトの入力に対して結合されている変数オブジェクトがグルーピングオブジェクトコンポーネントの入力となり、グルーピングの境界をクロスしグループ内の演算子オブジェクトの結果に結合された変数オブジェクトは、グルーピングの演算子オブジェクトの結果となる
請求項１〜１２のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１４】
他のオブジェクトにリンクされていないグループ内の演算子オブジェクトの入力及び結果は、各々、グループのオペレータオブジェクトの入力及び結果となる
請求項１３に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１５】
グループ化されたオブジェクトのグラフィカルな表現は、グループの演算子オブジェクトのグラフィカルな表現によって配置され、グループのコンテンツへのグラフィカルな表現は、グループのオブジェクトの表現へのリンクのグラフィカルな表現により配置される
請求項１３又は１４に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１６】
定義された式の論理的な定義は、グループの演算子オブジェクトの内容を含む  請求項１３又は１５に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１７】
表示される全ての式のグラフィックの定義は、グループの演算子オブジェクトの内容を含まない
請求項１３又は１６に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１８】
グループの演算子オブジェクトの内容は、式の全てのグラフィカルな表現とは分離されてグラフィカルに表現される
請求項１３又は１７に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項１９】
変数オブジェクトは保持可能なデータのタイプを定義する属性を付される
請求項１〜１８のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２０】
演算子オブジェクトの入漁ｋ及び結果は、演算子オブジェクトが受け取ること及び生成することが各々予測されるデータのタイプを定義する属性を付される
請求項１９に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２１】
変数オブジェクトは、既に定義されており調停する演算子オブジェクトによって関係付けられている他の変数オブジェクトの属性から、属性を受け継ぐ
請求項２０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２２】
変数オブジェクトは、既に定義されており、関係付けられている演算子オブジェクトの入力又は結果の属性から、属性を受け継ぐ
請求項２０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２３】
演算子オブジェクトの入力または結果は、既に定義されており関係付けられている変数オブジェクトの属性から、属性を受け継ぐ
請求項１９〜２２のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２４】
既に付されており対応が関係付けられているオブジェクトの属性をチェックするステップを含む
請求項１９から２３のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２５】
ラベル付けされた変数オブジェクトのライブラリが予め定義されている
請求項７に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２６】
ラベル付けされた変数オブジェクトのライブラリが予め定義されており、各ラベル付けされた変数オブジェクトの処理の方法、その生成のための入力及び出力もまた、予め定義されている
請求項８に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２７】
変数オブジェクトの変数ラベルは、予め定義した変数ラベルのリストから選択される
請求項７又は２５に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２８】
各変数ラベルには、ラベルによりラベル付けされた変数オブジェクトが含むことができるデータのタイプが定義されている属性が付されている
請求項１９に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項２９】
変数ラベルの選択は、変数オブジェクトへのラベルに関連付けられた属性が付される
請求項１９に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３０】
変数オブジェクトに付されている属性は、選択が有効なラベルの選択を制限する
請求項２９に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３１】
演算子オブジェクトは、少なくとも、加算、減算、乗算、除算、ルックアップテーブル及び条件付動作の１つである
請求項１〜３０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３２】
演算子オブジェクトは、より複雑な演算子の実行にリンクされた多数の単純な演算子を含む多数の段階の演算である
請求項１〜３０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３３】
一形態においては、演算子オブジェクトはデータベースのキュエリである
請求項１〜３０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３４】
第１の演算子オブジェクトはデータベースへの書き込みを行う
請求項１〜３０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３５】
演算子オブジェクトの演算子ラベルは予め定義された演算子ラベルのリストより選択される
請求項８に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３６】
各演算子ラベルには、ラベルを付された演算子オブジェクトが受け取り又は提供することのできる入力又は結果の各々のデータのタイプを定義する属性が付される
請求項３５に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３７】
演算子ラベルの選択は、演算子オブジェクトへのラベルに関連する属性が付されている
請求項３６に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３８】
演算子オブジェクトに付された属性は、選択されることが可能なラベルの選択を制限する
請求項３７に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項３９】
論理的な記述はランタイムエンジンにより使用され、定義した式の処理が行われ、各変数オブジェクトに提供されたデータは、演算子オブジェクトの入力にリンクされ、これにより、データは、式のオペランドとなり、演算子オブジェクトによって表現される各演算子は、式の演算子となり、演算子オブジェクトの各結果は、次の演算子又は式の最終的な結果となり、これにより、式の処理が実行され式の結果が得られる
請求項１〜３８のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４０】
各変数に対して名前領域が定義され、これにより、変数オブジェクトにより表現される論理的な変数におけるデータは、名前空間内の変数オブジェクトの各発生と同じである。
請求項１〜３９のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４１】
名前空間は、モデル化された式に対するデフォルトグローバルによる
請求項４０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４２】
論理的な結合は、名前空間内のラベルが付された変数オブジェクトの各発生の間に生成される
請求項４０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４３】
グラフィカルなリンクが表示され、ラベル付けされた変数オブジェクトの発生の間の論理的な結合が示される
請求項４０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４４】
名前空間は各演算子オブジェクトに定義され、これにより、演算子オブジェクトにより表現される論理的な演算子の処理は、名前空間内の演算子オブジェクトの各発生と同じである
請求項１〜４３のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４５】
名前空間は、モデル化された式に対するデフォルトグローバルによる
請求項４４に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４６】
グループ化された演算子オブジェクトは、１回以上グループ化された演算子オブジェクトの定義に使用され、式の論理的な定義に適用される
請求項１３に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４７】
ラベルの属性は、タイプ、単位及びディメンションを有する
請求項１９に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４８】
グラフィカルな定義は、ＸＭＬにより記述される
請求項１０に記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項４９】
論理的な記述は、ＸＭＬにより記述される
請求項１〜４８のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５０】
各演算子オブジェクトは、演算子オブジェクトにより表現される演算子により実行される多数の演算の定義を含み、各定義は、演算子により処理されることができるデータの分離したタイプのためである
請求項１〜４９のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５１】
演算子オブジェクトは、１つ以上の入力及び１つ以上の出力を有するコンポーネントとしてグラフィカルに表現され、そのコンポーネントは、表現される演算子に表示されるインジケータを有する
請求項１〜５０のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５２】
演算子オブジェクトは、結果を生成するための処理の方法の入力が未だ定義されていない演算子の表現である空コンポーネントである
請求項１〜５１のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５３】
前記空コンポーネントは、適切に定義された方法を有する適切な演算子オブジェクトをサーチするための基準を形勢するために使用される
請求項１〜５１のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５４】
オブジェクトのライブラリが提供される
請求項１〜５３のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５５】
オブジェクトは、外部より供給される
請求項１〜５３のいずれかに記載のコンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項５６】
ディスプレイ及びユーザ入力手段を有するコンピュータと、
少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供する手段と、
前記第１の演算子オブジェクトをグラフィカルな表現で表示する手段と、
データを保持するための第１の変数オブジェクトを提供する手段と、
前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付ける手段と、
前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示する手段と
を有し、これによりオブジェクト間の関係により式が定義される
グラフィカルに式を定義するシステム。
【請求項５７】
コンピュータをコントロールすることにより式をグラフィカルに定義するコンピュータプログラムであって、
少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、
前記第１の演算子オブジェクトをグラフィカルな表現で表示し、
データを保持するための第１の変数オブジェクトを提供し、
前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付け、
前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示し、
前記オブジェクト間の関係の論理的な記述を記録し、
これにより、オブジェクト間の関係により式が定義される
コンピュータプログラム
【請求項５８】
請求項５７に記載のコンピュータプログラムが記録されたコンピュータにより読み取り可能な記録媒体。
【請求項５９】
少なくとも１つのデータを保持するための変数オブジェクトを提供し、
少なくとも１つの前記入力データを処理し結果を生成する方法を定義する演算子を提供し、
ユーザに結果の変数を選択するための変数のリストを表示し、
入力データの処理の結果を記憶するための結果の変数の選択をユーザから受け取り、
前記選択された結果の変数をグラフィカルな表現により表示し、
演算子を選択するための演算子のリストをユーザに表示し、
ユーザより演算子の選択を受け取り、
選択された演算子のグラフィカルな表現を表示し、
ユーザに前記変数か１以上の定数であるところの少なくとも１つの入力を選択させるため、入力データを記憶するための入力のリストを表示し、
ユーザからの少なくとも１つの入力の選択を受け取り、
前記選択された入力のグラフィカルな表現を表示し、
これにより、選択された結果変数を、選択された処理による選択された入力の処理と等しくすることによって、式を定義する
コンピュータにより実行されるグラフィカルに式を定義する方法。
【請求項６０】
予め設定された属性を有する少なくとも１つの変数のタイプを提供し、
少なくとも１つの前記入力データを処理し結果を生成する方法を定義する少なくとも１つの演算を提供し、
ユーザに変数のタイプを選択させるため変数のタイプのリストを表示し、
ユーザからの変数のタイプの選択を受け取り、
選択した変数のタイプに対する名前を受け取り、
名前が付された変数を表示し、
ユーザに演算を選択させるための演算のリストを表示し、
ユーザからの演算の選択を受け取り、
選択された変数を選択された演算と協働させるためのユーザからの入力を受け取り、選択された変数を入力された変数か結果の変数とし、
選択された変数が結果の変数とされた場合には、ユーザから少なくとも１つの入力変数か入力定数及びその入力変数又は入力定数に対する名前を受け取り、その入力された変数又は入力された定数をグラフィカルに表示し、
選択された変数が入力の変数とされた場合には、出力変数の名前を受け取り、これをグラフィカルに表示し、
これにより、入力変数又は入力定数による入力データの選択された演算による処理の結果により式を定義し、結果の変数を得る
コンピュータにより実行されるグラフィカルに式を定義する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データを処理して結果を生成するための式をグラフィカルに定義する方法に関する。特に、その方法は、コンピュータプログラムの形態により具体化される。
【背景技術】
【０００２】
データの複雑な処理のためには、通常、多くの複雑な式を必要とする。その式を定義するためには、しばしば、データの処理を表現する多数のレベルのアプローチを提供するモデルが有効である。モデルの各レベルのために必要とされている式を解くことは、しばしば難しいに違いない。もし式がグラフィカルに表現でき定義できるならば、それはこの処理のためにさらに役に立つに違いない。
【０００３】
コドスキー他による米国特許Ｎｏ．４９０１２２１は、プロセスをモデリングするためのグラフィカルなシステム及び方法を開示している。その開示されている方法は、図表を作成するユーザが、創造された図表がある結果を達成するための手続き上の方法をグラフィカルに表示するようなブロック図エディターを使用することを可能にする。ユーザがデータ流れ図を作成する時、機械語命令は自動的に生成され、それは表示手続きに対応する実行手続きを特徴つける。ユーザはグラフィカルなプログラミング環境を使用することによって、テキストベースのコンピュータプログラムを単独で創造することができる。この方法の限界は、これが、任意の与えられた時間に入力変数に当てるデータの関数の結果である各出力を生成するための繰り返し制御に依存しているということである。これはまた、データフローの多数の繰り返しを制御するための繰り返し制御手段を参照する繰り返しアイコンを含むデータ流れ図の、スクリーン上での組み立てにも依存している。
【０００４】
特にデータの繰り返しを考慮することなしにモデルを設計する場合には、モデルに適合したオブジェクトを設計する場合が望ましい。
【発明の開示】
【０００５】
本発明の目的は、式をグラフィカルに定義する方法を提供することにある。
【０００６】
本発明の第１の観点によれば、少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、前記第１の演算子オブジェクトをグラフィカルな表現で表示し、データを保持するための第１の変数オブジェクトを提供し、前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付け、前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示し、前記オブジェクト間の関係の論理的な記述を記録し、これにより、論理的記述により式が定義されるコンピュータにより実行されるグラフィカルに式を定義する方法が提供される。
【０００７】
本発明の第２の観点によれば、データを保持するための変数オブジェクトを提供し、前記変数オブジェクトをグラフィカルな表現で表示し、少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つを前記変数オブジェクトに関係付ける入力をユーザから受け付け、前記第１の演算子オブジェクト及びその前記変数オブジェクトとの関係をグラフィカルな表現で表示し、前記オブジェクト間の関係の論理的な記述を記録し、これにより論理的記述により式が定義されるコンピュータにより実行されるグラフィカルに式を定義する方法が提供される。
【０００８】
好適には、前記方法は、１以上のさらなる変数オブジェクトを提供し、前記さらなる変数オブジェクトの各々を第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付けるさらなる入力をユーザから受け付け、前記さらなる変数オブジェクト及びそれらの前記演算子オブジェクトとの関係をグラフィカルな表現で表示する工程をさらに有する。
【０００９】
好適には、前記方法は、１以上のさらなる演算子オブジェクトを提供し、各変数オブジェクトを前記さらなる演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付けるさらなる入力をユーザから受け付け、前記さらなる演算子オブジェクト及びその前記変数オブジェクトとの関係をグラフィカルな表現で表示する工程をさらに有する。
【００１０】
好適には、各変数オブジェクトは、データソースからのデータを提供するための入力オブジェクト、データの行き先にデータを供給する出力オブジェクト、又は、１つの演算子オブジェクト又はもう１つの演算子オブジェクトからデータを流すための結合オブジェクトより選択される。好適には、結合オブジェクトは演算子オブジェクトの間のリンクとして表現される。好適には、各変数オブジェクトは変数ラベルを伴って提供される。好適には、各演算子オブジェクトは演算子ラベルを伴って提供される。
【００１１】
好適には、前記式の前記論理的な記述は前記オブジェクト間の論理的関係により定義される。好適には、オブジェクト間の前記関係の前記グラフィカルな表示を定義する前記式のグラフィカルな定義は記録される。
【００１２】
好適には、前記方法は、前記論理的な定義を記述する情報を記憶する工程を含む。好適には、前記方法は、前記グラフィカルな定義定義を記述する情報を記憶する工程を含む。
【００１３】
好適には、２以上の前記演算子オブジェクトがグループ化されており、グループ化は、グルーピングの演算子オブジェクトを定義し、その中においてはグルーピングの境界を横切りグループ内の演算子オブジェクトの入力に対して結合されている変数オブジェクトがグルーピングオブジェクトコンポーネントの入力となり、グルーピングの境界をクロスしグループ内の演算子オブジェクトの結果に結合された変数オブジェクトは、グルーピングの演算子オブジェクトの結果となる。
好適には、他のオブジェクトにリンクされていないグループ内の演算子オブジェクトの入力及び結果は、各々、グループのオペレータオブジェクトの入力及び結果となる。好適には、グループ化されたオブジェクトのグラフィカルな表現は、グループの演算子オブジェクトのグラフィカルな表現によって配置され、グループのコンテンツへのグラフィカルな表現は、グループのオブジェクトの表現へのリンクのグラフィカルな表現により配置される。
【００１４】
好適には、定義された式の論理的な定義は、グループの演算子オブジェクトの内容を含む。好適には、表示される全ての式のグラフィックの定義は、グループの演算子オブジェクトの内容を含まない。好適には、グループの演算子オブジェクトの内容は、式の全てのグラフィカルな表現とは分離されてグラフィカルに表現される。
【００１５】
好適には、変数オブジェクトは保持可能なデータのタイプを定義する属性を付される。好適には、演算子オブジェクトの入漁ｋ及び結果は、演算子オブジェクトが受け取ること及び生成することが各々予測されるデータのタイプを定義する属性を付される。
【００１６】
好適には、変数オブジェクトは、既に定義されており調停する演算子オブジェクトによって関係付けられている他の変数オブジェクトの属性から、属性を受け継ぐ。好適には、変数オブジェクトは、既に定義されており、関係付けられている演算子オブジェクトの入力又は結果の属性から、属性を受け継ぐ。好適には、演算子オブジェクトの入力または結果は、既に定義されており関係付けられている変数オブジェクトの属性から、属性を受け継ぐ。
【００１７】
好適には、既に付されており対応が関係付けられているオブジェクトの属性をチェックするステップを含む。
【００１８】
好適には、ラベル付けされた変数オブジェクトのライブラリが予め定義されている。好適には、ラベル付けされた変数オブジェクトのライブラリが予め定義されており、各ラベル付けされた変数オブジェクトの処理の方法、その生成のための入力及び出力もまた、予め定義されている。
【００１９】
好適には、変数オブジェクトの変数ラベルは、予め定義した変数ラベルのリストから選択される。好適には、各変数ラベルには、ラベルによりラベル付けされた変数オブジェクトが含むことができるデータのタイプが定義されている属性が付されている。好適には、変数ラベルの選択は、変数オブジェクトへのラベルに関連付けられた属性が付される。好適には、変数オブジェクトに付されている属性は、選択が有効なラベルの選択を制限する。
【００２０】
好適には、演算子オブジェクトは、少なくとも、加算、減算、乗算、除算、ルックアップテーブル及び条件付動作の１つである。好適には、演算子オブジェクトは、より複雑な演算子の実行にリンクされた多数の単純な演算子を含む多数の段階の演算である。好適には、一形態においては、演算子オブジェクトはデータベースのキュエリである。好適には、第１の演算子オブジェクトはデータベースへの書き込みを行う。
【００２１】
好適には、演算子オブジェクトの演算子ラベルは予め定義された演算子ラベルのリストより選択される。好適には、各演算子ラベルには、ラベルを付された演算子オブジェクトが受け取り又は提供することのできる入力又は結果の各々のデータのタイプを定義する属性が付される。好適には、演算子ラベルの選択は、演算子オブジェクトへのラベルに関連する属性が付されている。好適には、演算子オブジェクトに付された属性は、選択されることが可能なラベルの選択を制限する。
【００２２】
好適には、論理的な記述はランタイムエンジンにより使用され、定義した式の処理が行われ、各変数オブジェクトに提供されたデータは、演算子オブジェクトの入力にリンクされ、これにより、データは、式のオペランドとなり、演算子オブジェクトによって表現される各演算子は、式の演算子となり、演算子オブジェクトの各結果は、次の演算子又は式の最終的な結果となり、これにより、式の処理が実行され式の結果が得られる。
【００２３】
好適には、各変数に対して名前領域が定義され、これにより、変数オブジェクトにより表現される論理的な変数におけるデータは、名前空間内の変数オブジェクトの各発生と同じである。好適には、名前空間は、モデル化された式に対するデフォルトグローバルによる。好適には、論理的な結合は、名前空間内のラベルが付された変数オブジェクトの各発生の間に生成される。好適には、グラフィカルなリンクが表示され、ラベル付けされた変数オブジェクトの発生の間の論理的な結合が示される。
【００２４】
好適には、名前空間は各演算子オブジェクトに定義され、これにより、演算子オブジェクトにより表現される論理的な演算子の処理は、名前空間内の演算子オブジェクトの各発生と同じである。
【００２５】
好適には、グループ化された演算子オブジェクトは、１回以上グループ化された演算子オブジェクトの定義に使用され、式の論理的な定義に適用される。
【００２６】
好適には、ラベルの属性は、タイプ、単位及びディメンションを有する。好適には、グラフィカルな定義は、ＸＭＬにより記述される。好適には、論理的な記述は、ＸＭＬにより記述される。
【００２７】
好適には、各演算子オブジェクトは、演算子オブジェクトにより表現される演算子により実行される多数の演算の定義を含み、各定義は、演算子により処理されることができるデータの分離したタイプのためである。
【００２８】
好適には、演算子オブジェクトは、１つ以上の入力及び１つ以上の出力を有するコンポーネントとしてグラフィカルに表現され、そのコンポーネントは、表現される演算子に表示されるインジケータを有する。好適には、演算子オブジェクトは、結果を生成するための処理の方法の入力が未だ定義されていない演算子の表現である空コンポーネントである。好適には、前記空コンポーネントは、適切に定義された方法を有する適切な演算子オブジェクトをサーチするための基準を形勢するために使用される。
【００２９】
好適には、オブジェクトのライブラリが提供される。好適には、オブジェクトは、外部より供給される。
【００３０】
本発明の第３の観点によれば、本発明に係るグラフィカルに式を定義するシステムは、ディスプレイ及びユーザ入力手段を有するコンピュータと、少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供する手段と、前記第１の演算子オブジェクトをグラフィカルな表現で表示する手段と、データを保持するための第１の変数オブジェクトを提供する手段と、前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付ける手段と、前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示する手段とを有し、これによりオブジェクト間の関係により式が定義される。
【００３１】
本発明の第４の観点によれば、本発明のコンピュータをコントロールすることにより式をグラフィカルに定義するコンピュータプログラムは、少なくとも１つの入力を処理し少なくとも１つの結果を生成する方法を定義するための第１の演算子オブジェクトを提供し、前記第１の演算子オブジェクトをグラフィカルな表現で表示し、データを保持するための第１の変数オブジェクトを提供し、前記変数オブジェクトを前記第１の演算子オブジェクトの前記入力の１つまたは前記出力の１つに関係付ける入力をユーザから受け付け、前記第１の変数オブジェクト及びその前記第１の演算子オブジェクトとの関係をグラフィカルな表現で表示し、前記オブジェクト間の関係の論理的な記述を記録し、これにより、オブジェクト間の関係により式が定義される。
【００３２】
本発明の第５の観点によれば、本発明に関わる記録媒体は、前述したコンピュータプログラムが記録されたコンピュータにより読み取り可能な記録媒体である。
【００３３】
本発明の第６の観点によれば、本発明のコンピュータにより実行されるグラフィカルに式を定義する方法は、少なくとも１つのデータを保持するための変数オブジェクトを提供し、少なくとも１つの前記入力データを処理し結果を生成する方法を定義する演算子を提供し、ユーザに結果の変数を選択するための変数のリストを表示し、入力データの処理の結果を記憶するための結果の変数の選択をユーザから受け取り、前記選択された結果の変数をグラフィカルな表現により表示し、演算子を選択するための演算子のリストをユーザに表示し、ユーザより演算子の選択を受け取り、選択された演算子のグラフィカルな表現を表示し、ユーザに前記変数か１以上の定数であるところの少なくとも１つの入力を選択させるため、入力データを記憶するための入力のリストを表示し、ユーザからの少なくとも１つの入力の選択を受け取り、前記選択された入力のグラフィカルな表現を表示し、これにより、選択された結果変数を、選択された処理による選択された入力の処理と等しくすることによって、式を定義する。
【００３４】
本発明の第７の観点によれば、本発明のコンピュータにより実行されるグラフィカルに式を定義する方法は、予め設定された属性を有する少なくとも１つの変数のタイプを提供し、少なくとも１つの前記入力データを処理し結果を生成する方法を定義する少なくとも１つの演算を提供し、ユーザに変数のタイプを選択させるため変数のタイプのリストを表示し、ユーザからの変数のタイプの選択を受け取り、選択した変数のタイプに対する名前を受け取り、名前が付された変数を表示し、ユーザに演算を選択させるための演算のリストを表示し、ユーザからの演算の選択を受け取り、選択された変数を選択された演算と協働させるためのユーザからの入力を受け取り、選択された変数を入力された変数か結果の変数とし、選択された変数が結果の変数とされた場合には、ユーザから少なくとも１つの入力変数か入力定数及びその入力変数又は入力定数に対する名前を受け取り、その入力された変数又は入力された定数をグラフィカルに表示し、選択された変数が入力の変数とされた場合には、出力変数の名前を受け取り、これをグラフィカルに表示し、これにより、入力変数又は入力定数による入力データの選択された演算による処理の結果により式を定義し、結果の変数を得る。
【発明を実施するための最良の形態】
【００３５】
式は、１つ以上のオペランドに演算子を適用することによる結果の計算のための方法論の記述である。典型的には、オペランドは代数学上の観念における変数である。本発明は、オペランド（変数）及び演算子に関しての記述としての式を定義する。具体的には、変数及び演算子は関係がある。簡単な式Ｘ＝Ａ＋Ｂは、オペランドＡ及びＢと加算演算子（＋）との間の関係の記述である。本発明は、これがグラフィカルに表現されることを可能にするものであり、これは複雑なモデルや関数を表現するときに望ましい。本発明はまた、定義されたグラフィカルな関係の記述、換言すれば、式を定義する変数と演算子との間の関係を生成する。
【００３６】
本発明の方法は、グラフィカルの式定義ツール（ＧＦＤＴ）１２により実行される。図１に示すように、ＧＦＤＴ１２は、グラフィカルユーザインターフェイス（ＧＵＩ）１４と相互に作用する。ＧＵＩ１４は、コンピュータのオペレーティングシステムの一部を構成する。その一例は、マイクロソフトのウィンドウズ（Microsoft Windows）の種々の版、マッキントゥッシュブランドのコンピュータのためのＭａｃＯＳ、あるいは、ＵＮＩＸオペレーティングシステムの下で動作するＸ−Ｗｉｎｄｏｗｓである。ＧＦＤＴ１２は、グラフィックディスプレイに提供するための命令を提供するＧＵＩ１４と通信する。
【００３７】
図２に示すように、ＦＧＤＴ１２は、２つの主要部、コンポーネントマネージャ（Component Manager）１６及びコネクションマネージャ（Connection Manager）１８を有する。コンポーネントマネージャ１６は、少なくとも１つの入力を処理し結果を生成する方法を定義するために提供される演算子オブジェクト２０を取り扱う。演算子オブジェクトは、式の中の演算子を示す物である。本例においては、演算子はコンポーネントとして参照される。従ってコンポーネントマネージャは好適な具体例の目的のためにコンポーネントオブジェクト（Component Object）を管理する。
【００３８】
コネクションマネージャ１８は、変数オブジェクトを取り扱う。変数オブジェクトは、式の結果の計算の各実例のための式の中のオペランドを示す物である。変数オブジェクトには多数の型が生じ、その主な１つは、コンポーネントにまたはコンポーネントからデータを流す、後により詳細に説明するような、結合オブジェクト（Connector Object）２２である。変数オブジェクトの他の型は、一般的にラベルにより名前が付けられる入力及び出力オブジェクトである。これらは、好適な具体例において、名前付き結合として参照される。それらにはユーザが参照できるラベルが付付されるので、コンポーネントに又はコンポーネントから流されるデータについての情報を知るための、名前付き結合として参照される。
【００３９】
ＧＦＤＴ１２は、ユーザに対して、ＧＵＩ１４を介して、定義される際に式をグラフィカルに表現するインターフェイスを提供する。ＧＦＤＴ１２はまた、それが定義された時に、式の論理的な記述を記録する。グラフィックの記述の記録は論理的な記述の記録とは区別される。論理的な記述は、インターフェイスの中に表示されるオブジェクトの間の関係を論理的な用語により記述される。インターフェイス２４の画面のコピーを図３に示す。
【００４０】
インターフェイス２４は、標準的なＷｉｎｄｏｗｓのウィンドウであり、ツールバーブ２６、基本ウィンドウ２８及び補助ウィンドウ３０を有する。基本ウィンドウ２８は、総括的な式の部分を示すカレントページを表示する。ウィンドウ２６は、ページセレクタ３２を含む。その他のページは、式のほかの部分を示すように提供される。メインウィンドウ２８は、アキュムレータのための簡単なモデルを表示して示されている。
【００４１】
式またはモデルを作成する方法を、図４Ａ〜４Ｄを参照して記述する。この例は、採掘現場に関わる。採掘現場の計画、予算を組むこと又は監視は、予め定義された式に従った計算の結果を用いることにより行われる。式は、入力変数に含まれる情報が特定の演算子に従って処理され結果を生成したときに生成された結果を決定する。その結果から、採掘現場の運営の計画、予算を組むこと又は監視は実行される。具体的には、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”の結果が一例として使用される。”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ”は、このケースでは、デフィアンス（Ｄｅｆｉａｎｃｅ）という名前の穴における、採掘穴からの鉱物に含まれる物質の積載及び運搬のコストである。
【００４２】
図４Ａに示すように、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”が計算されることが望まれている。マウスの移動によりポインタの位置を決め、クリックし、ドラッグし、所望の位置に変数オブジェクトを下ろすというよく知られている処理により、変数オブジェクト３４がツールバー２６より選択され、メインウィンドウ中に配置される。その変数オブジェクトには、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”という名称が付与される。使用されるシンボルに対する取り決めは、名称の付された変数（名称の付された変数オブジェクト）は円形の中、コンポーネント（演算子オブジェクト）は入力を表す内向きの矢印及び出力を表す外向きの矢印を伴う矩形、及び、データの流れの結合（変数オブジェクト）はラインにより表現する、というものである。
【００４３】
”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”変数３４には特定の属性が付与されてもよい。これは、補助ウィンドウ３０中の”Ｐｒｏｐｅｒｔｉｅｓ”タブが選択され、これは数値でなければならないというような所望の属性、より具体的にはそれは通貨を示す数値でなければならずその通貨単位は”ＡＵ＄”であるというような属性が入力されることにより行われる。一度生成されたその変数は、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”とラベルが付された円形３４として、ビデオディスプレイユニット上にグラフィカルに表現される。その変数のアイコンは、それが手入力のような任意の適切なソースからデータを受け取ってもよい、それは他のプログラムから受け取られてもよい、又は  データベースから受け取られてもよい、ということを表現することになるだろう。
【００４４】
”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”は、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ（精選）”データが加えられた”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”データから計算される。すなわち、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”はバルク物質及び精選物質の積載及び運搬のコストを表現する。バルク状物質は、鉱物が含有する物質及び非鉱物が含有する物質を生成する採掘方法から得られる。精選された鉱物は、上質な、鉱物が含有する物質を生成する採掘方法から得られる。
【００４５】
図４（Ｂ）に示すように、次のステップは、ツールバー２６からコンポーネント３６を選択すること及びメインウインドウ２８中に配置することである。通常、各コンポーネントのボタンの数又はリストはユーザに提供され、そこから、図３に示すような加算、減算、乗算、除算等から選択される。条件付き演算、及び、微積分、三角法等のその他のより複雑な演算等のコンポーネントは、ルックアップテーブルのようにして提供される。これに加えて、データまたはテキストを取り扱う演算も含まれる。実行可能な演算の型は制限されない。実際に多数のレベル化された演算を含む膨大な演算のライブラリが利用可能にされている。これについては、後により詳細に説明する。このケースでは、”加算”演算が選択されている。加算は、ボックス３６としてグラフィカルに表現される。加算は少なくとも２つの（このケースでは実際に２つの）入力及び１つの出力を有する。そして、オブジェクト間の関係が生成される。このケースにおいては、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”変数は加算の結果である。従って、結合オブジェクト３８をツールバー２６より選択することによって、これらは結合され、加算コンポーネント３６の出力矢印を”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”変数３４に接続するライン３８が引かれる。従って、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”は連携の特徴の効力によって結果変数となる。入力及び出力は矢印として表現され、連係は、結果の矢印と変数との間の結合３８として表現される。
【００４６】
図４（Ｃ）に示すように、もう１つの変数オブジェクト４０がツールバー２６より選択され、メインウィンドウ２８中に配置され、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”の名称が付される。変数名は、初めのうちは、ユーザが所望の変数を選択するためのリストを生成するために入力される。その他の点としては、変数の名称は、要求されるように入力されてよい。”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”変数４０は、もう１つの結合オブジェクト４２がツールバー２６より選択されて２つのオブジェクトの間が結合されることによって、加算演算子３６の入力と連携される。このようにして、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”は入力変数になる。”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”は円形４０として表現され、入力関係は、変数とコンポーネントの間の結合４２として表現される。
【００４７】
図４（Ｄ）に示すように、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（精選）”と名称が付されたもう１つの変数４４が選択され、配置され、加算演算子３６の他方の入力と連携される。この式の定義は、これにより完了する。結果の変数、コンポーネント（演算子）及び入力の変数の選択、及び、それらの間の関係は、次のように定義された式という結果をもたらす：「入力変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”及び入力変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(精選)”は、加算演算子によって合算され、結果の変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”が生成される。」。式が演算の実行に付された時には、入漁データ変数に入力されたデータが、定義された式に従って、結果変数に入力される結果を生成する。
【００４８】
定義した式を後の回復のために記憶するために、各オブジェクトの型、名称及び属性は、全て、ウィンドウ２８内の各オブジェクトの位置に対応して記録される。この情報により、式は、記憶し後の表示の際に回復することが可能となる。
【００４９】
ブロック図による式の描画と同時に、式の論理的な定義も記録される。再び図４（Ａ）を参照すると、変数オブジェクト”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”３４  の生成は登録される。図４（Ｂ）においては、加算コンポーネント３６の生成もまた、その配置と同様に登録される。加算コンポーネントの出力と変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”との間の結合３８の配置も登録される。そして、コンポーネントの結果の出力と結果の変数との間の論理的な結合が、記録される。
【００５０】
図４（Ｃ）に示すように、同様に、変数オブジェクト”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”４０及びその加算コンポーネントの第１の入力への結合が登録される。再び図４（Ｄ）においては、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(精選)”精選変数の生成及びその加算コンポーネントの第２の入力への結合も登録される。コンポーネント及びそれらの間の結合（及びこれによるそれらの関係）の登録は、これによって登録される。従って、式の論理的な定義が、オブジェクト及びそれらの関係の記述という形態で生成される。画面上の位置及びその他のグラフィカルな情報は、その論理的記述に対しては重要ではなく、単にグラフィックの記述の中に記録される。
【００５１】
そのグラフィックの記述は、ユーザ、ある意味で関わることのできるユーザ、に対する式の表示のために使用され、式の論理的な記述の記録は、式の処理エンジンによって、定義された式を使用に供するために使用される。ユーザは、論理的な記述に関わる必要はなく、処理エンジンは、グラフィックの記述に関わる必要はない。このような単純な式を対象とするこの段階においては、グラフィックの記述及び論理的な記述は、概念のレベルにおいては実質的に異ならない。しかしながら、より複雑な式がモデル化されるに際しては、後述するように、これらの定義は異なってくる。しかしそれでも、ユーザはまだ、定義される式に対して、式のグラフィカルな表現によって知的なレベルで関わることができ、式の処理エンジンは、単にグラフィカルな表現に関連するのみの情報を除外しなければならないということ無しに、論理的な記述を使用することができる。
【００５２】
変数と演算子との間の連携は、演算子の他の入力の属性が少なくともある程度の範囲で決定されることを可能にする。例えば、結果の変数の演算子との連携は、このケースでは通貨を示す数値であるが、演算子の入力の属性が知られることを可能にする。”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”入力変数が入力の１つと連携されている時には、この入力変数に連携されている属性は、演算子の要求に対してチェックされる。代わりに、もし”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”入力変数がそれに連携された属性を持っていなければ、それはこれらの属性を受け継ぐことができる。従って、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”は通貨を示す数値であるという属性を持っているので、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”及び”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”の両方の変数もまた、通貨を示す数値であるに違いない。チェックが実行され、もしいずれかの入力が要求されている属性と一致しなかった場合には、警告が発せられるか、又は、この連携は許されない。また別の状態としては、もし入力が連携している属性を持っていなければ、その通貨を示す数値であるとの属性が受け継がれる。
【００５３】
チェックと継承は双方向に働くことができる。すなわち、もし入力が通貨を示す数値であるとの属性を持っているならば、結果もまたチェックされ、それが矛盾のない属性を持っているか否かを確かめられる。通常は、より最近に生成された入力／結果変数が、チェックされる。
【００５４】
コンポーネントの入力及び出力は、コンポーネントに関わる属性情報を保持する。コンポーネントは、入力から出力を生成するという機能とともに、その入力及び出力の属性により定義される。
【００５５】
図５において、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ(バルク)”４０の値を計算する式は、入力変数”Ｂｕｌｋ  Ｒａｔｅ”４８と入力変数”Ｂｕｌｋ  ＢＣＭｓ”５０の乗算によって定義される。バルクレート（”Ｂｕｌｋ  Ｒａｔｅ”）は、その場所における各１立方メートルのバルクの鉱物が含有する物質の採掘のためのコストを示す。バルクＢＣＭ（”Ｂｕｌｋ  ＢＣＭｓ”）は、バルクの物質の（その場所に）堆積された立法メートル（ＢＣＭ）を示す。この式は、同様のステップを使用することにより再び組み立てることができ、先の式が定義される。”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”入力変数４０は、結果変数として使用可能である。それは、従って、選択されディｓプレイ上に表現される。もし、”Ｂｕｌｋ  Ｒａｔｅ”及び”Ｂｕｌｋ  ＢＣＭｓ”入力変数が、まだ使用可能でないならば、それらは入力される。乗算演算子オブジェクト４６が、次に、選択され、入力変数及び出力変数と連携される。これは、乗算演算子の表現がドラッグされて配置されることにより実行されてよい。入力及び結果変数は演算子に関係付けられる。従って、入力変数（”Ｂｕｌｋ  Ｒａｔｅ”及び”Ｂｕｌｋ  ＢＣＭｓ”）は演算子の入力に結合され、出力の矢印は結果変数（”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”）に結合される。ここで、変数及び演算子の配置の順番は、先に定義した式とは異なる。この順番は、属性のチェック及び継承の順番の相違のみををもたらす。もし、乗算の時に入力変数の属性が結果変数の属性と矛盾していれば、属性の継承に問題があるとのメッセージがユーザに提供される。すなわち、もし、バルクレート入力変数が容積当たりの価格を示す数値であるとの属性を持っていなければ、及び／又は、バルクＢＣＭ入力変数が容積を示す数値であるとの属性を持っていなければ、警告メッセージが与えられるか、又は、もし２つのうちの一方が正しい属性を持っていれば他方に正しい属性が継承される。属性の解析と継承は、変数／定数の次元に限定される必要はない。数値の単位もチェック可能であり、例えば、もし一方の単位がＡＵ＄であり他方の単位がＵＳ＄である場合、これは警告という結果になる。これに代わって、後に記述するように転換を行ってもよい。
【００５６】
この式は、図４（Ｄ）の式と同じページに生成されてもよいし、新しいページに生成されてもよい。もし別々のページになるのであれば、適切なページを選択するために、ページセレクタ３２が使用される。これはまた、特に、それらが別々のページ上にあるならば、グラフィックの定義が論理的な定義から分離され始める場所でもある。各ページが各式に対する分離されたグラフィックの定義を含む場合には、論理的な定義は、図５の式の”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”結果変数と図４（Ｄ）の式の”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”入力変数との間の結合を形成する。１つの式は、ユーザに対して、２つのより小さな式として表現される。これは、式の知的な理解を助けるが、論理的には、分離はない。これは、同じ名前が付されている変数が作用する特有の空間を有しているときに分離が生じることができないと言うことではない。
変数（及びコンポーネント）に対する名称の空間は、それらのアプリケーションを限定し定義されることが可能である。これについては、後に詳細に説明する。
【００５７】
ここで、コンポーネントマネージャ１６及びコネクションマネージャ１８により行われる処理について、図６，７及び８を参照してより詳細に説明する。図６に示すように、コンポーネントマネージャ１６は、まず、５２において、ユーザにコンポーネントタイプを、ツールバー２６の中に表示されているパレットから選択させる。図３に示す例においては、加算、減算、乗算及び除算のボタンがコンポーネントとして選択されるように提供されている。これらのボタンの１つが押されると、オペレーティングシステムはコンポーネントマネージャ１６にその特定のボタンが選択されたことを通知する。演算子コンポーネントのタイプは知られている。そこで、ユーザは、５４において、描画ウィンドウ２８の中でクリックする。すると、クリックされた場所にコンポーネントが配置されるという結果をもたらす。これは、５６においてコンポーネントが描画ウィンドウ２８の中に描画され、５８においてコンポーネントが式の定義の中に登録されるということを必然的にもたらす。コンポーネントの名称、そのタイプ及びページ上の位置やコンポーネントを表現するためのアイコンの詳細のようなコンポーネントのグラフィカルな表現のための詳細な仕様が記憶される。論理的な定義におていは、コンポーネントの名称やタイプのような詳細が登録される。
【００５８】
図７に示すように、名前の付された結合が式の中に含まれることになる時には、ユーザは、６０において、名前の付された結合コンポーネントのタイプを、パレットから選択する。６２において、ユーザが描画ウィンドウ２８をクリックすると、６４において、名称が空の結合変数が描画される。その後ユーザは、変数に名前を付したり、または待機した後で名前を付すことが可能である。もし、それに名前が付されたら、６６においてが、ユーザｓが名前を入力するための設備が提供され、その名前は、その後、６８において名称が付された新しい結合において表示される。その名称が付された結合は、その後、７０において登録される。名前、タイプ、ページ上の位置、名称が付された結合等の名称が付された結合のグラフィカルな表示に関わる詳細は、記録される。名称、タイプ及び名称が付された結合のような名称が付された結合の論理的な記述の詳細は登録される。
【００５９】
図８に示すように、コンポーネント間又はコンポーネントと名前が付された結合の間のような演算子オブジェクト間の結合は、図８に示すような関係で記述される。ユーザは、７２において、ツールバーより結合オプションを選択する。ユーザは、７４において、コンポーネント上をクリックし、名前の付された結合または他のコンポーネントに結合されている結合子をドラッグする。コネクションマネージャは、７６において、それから結合を許すか否かを結合されているオブジェクトの属性に基づいて決定する。もし、７８に”ｎｏ”で示すように、結合が許されなければ、８８において、描画されているラインの色を赤に変えることによって警告を発するか、あるいはまた、名前が付された結合の色が赤に変えられる。９０においてユーザがマウスを開放した時には、９２において描画は達成されず、従って結合は登録されない。もし、７８に”ｙｅｓ”で示すように結合が許された場合には、８０において、その名前が付された結合の色は緑に変化される。８２においてユーザがマウスを開放した時には、８４において結合を表現するラインが描画され、８６において結合は登録される。ラインの終了点やラインの頂点（曲がり目）のような結合（ライン）のグラフィカルな表現に関する詳細。結合されているコンポーネントの詳細のような論理的な記述に関する詳細は登録される。
【００６０】
図６，７及び８に記述された処理は、図面の各ページにおいて発生する。これに加えて、グラフィックの記述においては、各図面は記録された名称（ページ名）を有し、図面の各ページに対しては、各登録コンポーネント、名称が付された結合及び結合の詳細が記録される。これに加えて、ネームスペースの詳細が、後により詳細に説明するように、記録される。
【００６１】
図９を参照して、式の定義のもう１つの例を示す。この例においては、”Ｂｕｌｋ  Ｒａｔｅ”４８は、ルックアップテーブル９４によりいくつかの変数及び定数９６〜１０４から定義される。ＰＩＴ９６は、採掘穴の名前を表す変数である。Ｓｃｈｅｄｕｌｅ９８は、採掘される鉱物の量に依存する採掘レートを表す変数である。ＲＬ１００は、鉱物が掘り出される採掘穴の深さの相対的なレベルを表す変数である。ＭａｔｅｒｉａｌＴｙｐｅ１０２は、例えばそれが新しい物質または沈殿した土砂であるというような、採掘された物質のタイプを表す変数である。Ｂｕｌｋ”Ｂ”は、文字定数である。ルックアップテーブル９４は、５つの入力の値に基づいて、値を調べる演算である。そしてその結果の値は、結果変数４８に提供される。図は、その入力及びその出力の間の結合を示す。入力、結果及び演算の選択及びこれらの画面上への表現の配置による関係の構築は記録される。これらのオブジェクト及びそれらの間の関係の論理的な記述はこの式を定義する。
【００６２】
図１０に示すように、このように大きく記述された例はトップダウンの方法論を使用し、いくつかの単純な式としてのモデルを定義している。これらの式は合わせられるか、又は、示されたの同様の１つの複雑な式として描画される。理解できるように、入力変数”ＰＩＴ”９６、入力変数”ＳＣＨＥＤＵＬＥ”９８、入力変数”ＲＬ”１００、入力変数”ＭＡＴＥＲＩＡＬ  ＴＹＰＥ”１０２、入力変数”Ｂｕｌｋ”Ｂ””１０４、入力変数”Ｂｕｌｋ  ＢＣＭｓ”５０及び入力変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（精選）”４４が全て使用されて、最終的な出力である結果変数”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”３４が計算される。輪郭をとって符号を付した領域１０６は、多くのステップが存在する式（モジュール）が連鎖されてより複雑な上のレベルの式を生成されることが可能であることを示す。破線のボックス１０６の内側のステップは、上位のコンポーネントを形成するためにグループ化され得る。上位のコンポーネントの入力は、”Ｘ”により示され、出力は小さいサークルにより示される。
【００６３】
上のレベルの式もまた、変数”Ｂｕｌｋ  Ｒａｔｅ”及び”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”の必要無しに、定義されることが可能である。その代わりに、演算子９４の出力が直接に演算子４６の入力に与えられ、演算子４６の出力は、演算子３６の入力に直接に与えられる。換言すれば、演算子は、直接的に連鎖されることが可能である。しかしながら、もし変数”Ｂｕｌｋ  Ｒａｔｅ”及び”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ（バルク）”がどこかよその場所で使用されている時には、この式の設計は、図１０に示すように行うことがより適切かもしれない。
【００６４】
演算子の連鎖のコンポーネント化は、コンポーネント化される要素の周りのボックス１０６の描画及びコンポーネント化する機能の選択により行われる。ボックス１０６の中のオブジェクトは、その際、カレントページから消去されて、当たらしページに移される。新しいコンポーネントの内部の働きは、新しいページ上において観察可能である。コンポーネントのグラフィックの記述は新しいページにコピーされる。消去されたオブジェクトの場所には、図１１に示すように、新しいコンポーネント１０８が置かれる。コンポーネントのグラフィックの記述は、新しいコンポーネント１０８への入力を形成する消去されたコンポーネントへの各入力を伴って、カレントページの記述に含まれる。名前が付された結合９６〜１０４、５０及び４４からの結合は、新しいコンポーネント１０８の入力に対応して生成される。新しいコンポーネントの出力からの結合は、名前が付されたコンポーネント３４に結合される。カレントページの記述は、新しいコンポーネント及びそれらに対する結合を反映してアップデートされる。新しいコンポーネントの入力の各々と、他のページにおいてグループ化されたコンポーネントの入力の各々との間には、論理的な結合が生成される。同様に、そのコンポーネントの出力と他のページのコンポーネントの出力との間には、論理的な結合が生成される。従って、このモデルの論理的な記述は、モデルのグラフィックの記述が異なるのに対して、実際には変更されずに維持される。
【００６５】
図１１において、図１０の１０６内の連鎖した演算子は１つにグループ化されて、より高いレベルの演算子１０８を提供している。この演算子は、５つの入漁を要求し、”Ｌｏａｄ  ａｎｄ  Ｈａｕｌ  ＩＰＤ”の結果変数を生成する。その後は、上位のレベルの演算子１０８を構成するより低いレベルの式の各々を再定義する必要無しに、新しいコンポーネント１０８は再利用されることが可能である。コンポーネントの働きを見せるための設備は提供されるかもしれない。これは、例えば、コンポーネントの内部の働きが見せられているページまでページがめくられることにより、内部の連鎖が表示されるまで、それがオープンされるように上位のレベルの式の上でダブルクリックをすることによってもよい。このドリルダウンと呼ばれる次に詳細なレベルを見るための処理である。
【００６６】
見てきたように、トップダウンの設計方法は、それらが矛盾なく継承されていることを保証するためのチェックがなされる各レベルの属性を伴う種々の式を定義するために使用され得る。同様にボトムアップの設計方法も採用可能である。これは、多数のレベルのモデルを生成することを許容し、これはグラフィカルに表現され、定義され得る。より上位のレベルの機能のモジュール式の組み立てもまた実行される。
【００６７】
図１２に示すように、継承は、選択が可能な変数／定数の選択肢を制限するために使用されることができる。すなわち、もし、もう１つの変数を選択することによって、選択された変数がある属性を持たなければならない場合、その変数の選択は、要求される属性を保持する変数に制限されるかもしれない。その他の変数は”グレイアウト”され、選択が不可能にされるか、又は、単純に選択肢のリストに表示されなくされる。継承される属性の一例は、ディメンションの継承である。この場合は、各変数は、例えば距離、時間、量等の少なくとも１つのディメンションを有しなければならない。
【００６８】
図１２において提供される例においては、定義される式は、Ａ×Ｂ＝Ｃである。変数には、タイプ、ディメンション及び単位を含む属性が与えられる。この場合、結果変数Ｃは、実数の変数であり、質量・距離のディメンション及びキログラムメータ（ｋｇｍ）の単位を有する。Ａは、実数で、そのディメンションは質量で、単位はキログラム（ｋｇ）であるという属性を有する。Ｂは、実数または整数のいずれかであるという属性により定義される。これは、Ｂは実数または整数のいずれかであるという継承の効果による、Ａ及びＣの属性の定義の結果である。もし、例えば、Ｃが整数として定義されており、Ａが整数として定義されていた場合には、これにより、Ｂも必然的に整数となる。これに加えて、Ｃは質量・距離（ｋｇｍ）というディメンションであり、Ａは質量（ｋｇ）というディメンションであるので、必然的に、Ｂは距離（ｍ）のディメンションを有することとなる。同様に、もし、Ａ及びＢが最初にＡがｋｇでＢがｍであると定義されるならば、ディメンション及び各入力の単位の効力及び演算子の効果により、単位Ｃは必然的にｋｇｍとならなければならない。
【００６９】
Ｂは、実数または整数でありディメンションはメータであるので、それらの継承した属性に適合する実際の変数のタイプは、Ｂである入力変数のタイプを制限する。以前に入力されたいくつかの変数のタイプをリストにしたプルダウンメニュー１１０が示される。属性に適合する変数のタイプは、通常のフォントによって示され、属性に適合しない変数は、”グレイアウト”されて示される。もちろん、この代わりに、選択が許されない変数のタイプは、単純に表示されないようにしてもよい。
【００７０】
この場合、変数タイプ”ＳＨＡＦＴ  ＤＩＡＭＥＴＥＲ”又は”ＬＥＶＥＲ  ＡＲＭ  ＬＥＮＧＴＨ”が選択され得る。プルダウンメニュから選択されたこれらの変数のいずれかが、その後変数Ｂの変数タイプとなる。選択され得る変数は、データベース又は変数のライブラリ等の種々のソースから獲得され、手入力されることはない。プルダウンメニュは、図示のごとく、原文通りの変数名のリストを含む。しかしながら、プルダウンメニューの中においては、変数のアイコンの表現も使用可能である。その他の適切な選択手段を使用するようにしてもよい。
【００７１】
同じ処理は、Ａのようなその他の入力変数、同様にＣのような結果の変数にも適用可能である。変数の選択の順番が、その後の変数（又は定数）の属性を必然的に決定する。
【００７２】
式の定義の進行をチェックするために、定義される式の一部分の上のポインタが配置された場所に設備が含まれ、そのような大きく定義された式を表示するウィンドウが出現する（図１３（Ａ）及び図１３（Ｂ）に示すように）。
【００７３】
図１３（Ａ）においては、ポインタはルックアップテーブルの入力のいずれか１つの上に配置されているということがわかる。ポインタの下には、入力の属性は０以上の数字であるグレード（”Ｇｒａｄｅ”）である必要があることを示しているボックスが出現する。グレードはメートルトンあたりのグラムの属性で与えられるということもわかる。
【００７４】
図１３（Ｂ）においては、ポインタはスケジュール結果変数をさしていることが示される。それは、式の定義をそのように大きく示している。このケースにおいては、式の定義は、もし（ルックアップテーブル：変数の中のデータを伴った”ｍｏｎｔｙｌｙ  ｃｏｓｔ  ｐｅｒｉｏｄ”：”ｐｅｒｉｏｄ”が”ｍｏｎｔｈｌｙ  ｃｏｓｔｓ  ｌｏｗｅｒ”値と等しい）であれば、結果は低い方の値（Ｌ）であり、さもなければ結果は高い方の値（Ｕ）である。これはまた、入力された式のシンタックスをチェックすることも可能である。
【００７５】
図１４に示すように、この例においては、はさみの圧力の式が定義されている。はさみの圧力（”ＳＨＡＲＥ  ＳＴＲＥＳＳ”）＝（半径”ＲＡＤＩＵＳ”×曲がりの角度（”ＡＮＧＬＥ  ＯＦ  ＴＷＩＳＴ”）×（はさみの弾性力”ＳＨＡＲＥ  ＭＯＤＵＬＵＳ  ＯＦ  ＥＬＡＳＴＩＣＩＴＹ”））÷長さ（”ＬＥＮＧＴＨ”）。この例においては、表示されるオブジェクトを表現するアイコンが異なる。はさみの弾性力１２０は、入力を受け取るルックアップテーブル演算子である。それは、金属合金入力変数１２２であり、その中においてデータは受け取られる。ルックアップテーブルは、ＧＦＤＴの中に記憶されているデータを参照するコンポーネントである。あるいは、ルックアップテーブルは、外部データを参照するコンポーネントである。例えば、外部データは、スプレッドシートの形態であってよい。ＧＦＤＴは、データが外部のソフトウエアアプリケーションから転送されことを可能にするプラグインにより提供されることも可能である。標準的なスプレッドシートアプリケーションは、マイクロソフト・エクセルである。ＧＦＤＴは、プラグインを介して、エクセルスプレッドシート内のデータを検索するために、エクセルと通信することができる。ルックアップテーブルは、各金属合金のはさみ弾性力に関しては、物質供給者によって供給されるデータから得られる。データは、いくつかの物質供給者から提供されてよい。データは、物質供給者によって提供されたデータベース１２４から提供されてもよい。データベースは、インターネットのようなコンピュータネットワークを介してアクセスされるようにしてもよい。従って、演算子１２０はデータベース１２４をアクセスするデータベースキュエリを伴ってもよい。データベース１２４は、分散データベースであってもよい。したがって、グラフィカルに式を定義する方法は、データベースキュエリは本方法に従って定義される式の特定のであるとして、データベースキュエリを定義するためにも用いられてもよい。
【００７６】
図１５に示すように、この例においては、結果変数Ｅは、Ｅ＝Ｃ（Ａ×Ｂ）＋Ｄとして定義され、Ｃは他の関数である。もし、Ｃが定義されていなければ、これは空コンポーネントと呼ばれる。Ｃの属性は、図１５に示す式の他の属性により定義されてよい。すなわち、変数Ａ，Ｂ，Ｄ及びＥが、ある程度までは、Ｃが保持しなければならない動作の入力及び出力という属性を定義する。Ｃは徐々に定義されることも可能であり、その結果、もし図１６に示すようにＣに対してもしさらなる入力”ｆ”、”ｇ”及び”ｗ”を加えることが望まれた場合、式が徐々に定義されるように、これらを式に加えられる。新しい入力をコンポーネントＣに加えることが望まれている時には、入力をコンポーネントに加えるための選択が選択され、新しい入力及び出力が要望されるように生成される。このように、更なる名前が付された変数”ｆ”、”ｇ”及び”ｗ”が、ここでコンポーネントＣの各入力に結合されることが可能である。道央に、追加の出力を要求されたように付け加えることが可能である。
【００７７】
コンポーネントＣの機能を明記することが望まれた時には、図１７に示すように次のレベルへのドリルダウンによって、Ｃがオープンされることができる。Ｃの機能のもう１つのレイヤーはボックス１２６の中に示されるように定義される。あるいはまた、Ｃの機能は、コンポーネントのライブラリから描画されてもよい。基本ライブラリがＧＦＤＴには提供されてもよいし、あるいはまた、ライブラリはオンラインにより提供されてもよい。一度、要求を実行するコンポーネントが発見されたら、それは、式の中に挿入される。図１８に示すように、異なるマシン上に存在するコンポーネントが発見されたら、それはコンポーネントの要求される属性を果たし、要求される機能をコンポーネントに付加されている記述のように実行する。そして、これは、インターネットのようなコンピュータネットワークを介してＧＦＤＴのローカルなインスタンスに対して、生成されている式に挿入するために、転送されることができる。
【００７８】
図１６を参照すると、ＣはＡ及びＢの生成物の機能であり、また、入力ｆ、ｇ及びｗを受け取ることがわかる。すなわち、Ｃ＝（Ａ×Ｂ、ｆ、ｇ、ｗ）である。図１７を参照すると、Ｃがドリルダウンした時、Ａ及びＢの生成物は結合子１２８によって借りの変数”ｐ”に結合されていることがわかる。変数”ｐ”は、そこで、統合演算子”＝”によって示されるように、入力変数”ｗ”と比較される。”ＲＥＳＵＬＴ”演算子は、比較の結果が真かどうかをテストし、その場合には、入力”ｆ”及び”ｇ”を受け取るルックアップテーブルの結果が提供される。一方、もし、比較の結果が偽ならば、結果は０である。”ＲＥＳＵＬＴ”演算子の結果は、その後、乗算演算子（”ｘ”）によって示されるように、定数”ｋ”と乗算され、出力１３０が提供される。これは、そして、加算演算子（”＋”）の丹生ロクに提供され、そこで変数Ｄと加算され、結果Ｅが提供される。
【００７９】
空コンポーネントは、いっぱいに定義されているコンポーネントのプレイスホルダとして提供されることができる。空コンポーネントは、まだ、定義されたその入力と出力との間の機能を持っていない。ユーザは、空コンポーネントを設計環境の中に配置し、その入力及び出力を定義する。コンポーネントの機能は、その後に要求されたように定義されることが可能であるか、又は、入力及び出力の定義は、機能を実行可能なコンポーネントをライブラリから探すときのその探索基準を形成することができる。探索基準は、さらに、キーワード、より上位のクラスの構造情報当のように提供されることができる。空コンポーネントは、さらに、トップダウン設計方法の助けとなる。
【００８０】
グラフィカルな表現を支援するために、カラーコーディングを使用することは望ましい。例えば、１つのカラーは、ブルーとし、変数を表現するできる。もう１つのカラーは、グリーンとし、演算子を表現するのに使用する。入力は薄い影付きのライトブルーであり、出力は深い影付きのダークブルーである。これは、式の表現の視覚的な認識の支援となり、特に、複雑で多数レベルの式が表現される時の支援となる。その他の視覚的な表現としては、図中で使用されていたように、アイコンが変数、定数及び演算子を表現するために使用される。
【００８１】
ＧＦＤＴモデルのオブジェクトの多くは、ユーザが観察できて、さらに／又は、変更できるような属性を伴って提供される。図１９に示すように、アキュムレータコンポーネントはエクセルスプレッドシート１３２から受け取った入力を蓄積するように定義される。スプレッドシート１３２から分離した出力は、演算子１３４において、最新のサブトータル（ランニングトータル）に加えられ、メモリ演算子１３６により記憶される。そして、スプレッドシートからの最後の列のデータの時に、ランニングトータル変数１３８からの結果は、ゲート１４０によって、合計変数１４２にゲートされる。そしてこれは別のスプレッドシート１４４に渡る。１４６結合子は、高輝度で示される。補助ウィンドウ３０に、高輝度オブジェクトの属性が示されている。その高輝度結合子１４６の属性は、その名前が”コネクタ１”であり、それが数字タイプであり、それは長さのディメンションのためにメータを単位として提供されるということである。ウィザードが、属性の選択を支援するために、Ｄｅｌｐｈｉ又はＶｉｓｕａｌ  Ｂａｓｉｃのような製品で提供されるものと同様の方法により提供される。いくつかの予め定義されたデータのタイプが、彼らの必要性に応じてユーザによってさらに拡張可能なように提供される。あるいは、ユーザは、拡張したデータタイプのライブラリを購入する又は獲得するようにしてもよい。例えば、複素数のデータタイプは、複素数の実数及び虚数である２つの独立した数字として表現され、また、他の例においては、エンジンの出力の一般的なデータタイプのサブコンポーネントとして、エンジンの出力はパワー、トルク及び角速度によって表現されるかもしれない。
【００８２】
図１９において、ユーザはフィールドの値を編集することによって、または、ドロップダウンリストから選択を作成することにより、属性の値を簡単に変更することができる。
【００８３】
複素数データのタイプは、また、それらに対して実行される動作を定義する必要がある。演算子は、モデルによる表現として、存在するコンポーネントを使用する。例えば、複素数の加算は、実数の加算とは異なるセットの演算子を要求する。それらはともに”プラス（ｐｌｕｓ）”コンポーネントによって表現されるが、コンポーネントがそのデータタイプを取り扱う方法は、そのデータタイプの本質に依存する。コンポーネントへの結合がなされる時には、これまでに結合子のデータタイプ、又は、演算子又は名前が付された結合の入力又は出力の属性が存在している場所においてはネゴシエーション処理が行われ、データタイプの結合は矛盾ないものでなければならない。このように、各オブジェクト間のネゴシエーション処理を通して、正しいデータタイプが選択される。
【００８４】
図２０に示すように、加算コンポーネント１４８は、データタイプに依存して加算のいくつかの方法を実行することができる。これは、データのオーバーローディングとして知られている。データタイプは、テーブルに示すような異なるデータのタイプを処理するための固有の方法により提供されるが、異なるデータタイプを処理するための加算の方法が提供される。追加の定義を加えるためのフォーマットを定義する予め定義された図表が提供されているので、さらなるデータタイプを追加しコンポーネントにより処理されることが可能である。
【００８５】
特有のタイプの単位でデータが提供される場合においては、多くのケースにおいてしばしば、変換のファクタが要求される。例えば、時間という同じディメンションにおいて、１つの単位が秒でありもう１つの単位が分で有る場合等である。そのときに変換が要求される。変換のファクタは、例えば時間当たりのキロメータのスピードを、分当たりのメータに変換する時にも要求される。また、ディメンションの定義は、単位の基本的なディメンションの組み合わせを要求する。基本的な定義は、長さ、時間、質量、金額等である。例えば、加速度は、長さ×時間の二乗である。その他の属性もまた、オブジェクトに対して提供される。その他の属性の例は、セキュリティ情報（その情報を使用することのできるユーザのタイプや暗号化情報）、バージョン情報（バージョン番号及びそのバージョンが有効な期間）、証明書情報（保証されたソースから来たものであることを特定するデータタイプ機能）、課金情報（使用に対する支払いのため及びデータ又はオブジェクトに対する署名のためのアクセス）、位置情報（データやオブジェクトの場所のためのＩＰアドレスやファイル名等）及びブローカ情報（コンポーネントの管理者の情報）を含む。
【００８６】
モデル、名前が付された結合及びコンポーネントの定義の各々は、それ自身の名称のスペースを有する。これは、各モデル又はコンポーネントの定義において使用されている各オブジェクトの名前は、それらのモデルまたはコンポーネントに対してユニークであることを意味する。共通の名前を使用している異なるモデル又は異なるコンポーネントの定義、そして特に名前が付された結合のオブジェクトは、同じオブジェクトではない。しかしながら、名称のスペースは変更可能である。これは、変数の名前は特定の範囲内においてのみ適用されるという、多くのプログラム言語におけるローカル変数と同種である。これは、同じ名前を有するものの関係のない２つのオブジェクトが相互に混同されることを防ぐことになる。
【００８７】
いくつかの動作は非本質的な外部のものである。これは、それらは、式に関わるエンジンの外部で実行されるということを意味する。それらは、通常アプリケーションに固有のプラグインを通して、外部のコンポーネントを、任意の入力の要求とともにコールすることにより実行される。結果は、さらなる式の処理のために、（そのプラグインを介して）そのエンジンにフィードバックされる。非本質的な外部のコンポーネントは、コンポーネントタイプの定義ファイルを読み込むことによって、ＧＦＤＴ内において有効にされる。そしてこれは、ＧＦＤＴによる使用のための定義をコンポーネントに対して提供する。コンポーネントタイプは、標準的には、入力及び出力の結合子のセットを有し、コンポーネントがコンポーネントタイプに応じて生成される。
【００８８】
もし名前が付された結合がコンポーネントの外部の任意の場所で使用されるならば、１つのグループのコンポーネントのコンポーネント化の時には、コンポーネントの外部に導かれるすべての結合は、名前が付されたコンポーネントに対する入力及び出力オブジェクトを生成し入力する。もし、名前が付された結合がコンポーネントの内部のみで使用されるならば、その名前が付された結合の名前のスペースはコンポーネントとなる。これは、もはやコンポーネントの外部においては有効ではない。この方法は、詳細を隠しユーザにモデルを組み立てる時により構造的なアプローチを行うように仕向ける手段を提供する。複雑なコンポーネントは、十分に定義されたインターフェイスを有する機能ブロックが効果的である。ユーザは、定義されたインターフェイス及び機能ブロックが提供された時に、”スパゲッティ・コード”なモデルを組み立てるのが難しいことに気づく。
【００８９】
いくつかのコンポーネントは、マイクロソフト・エクセル、ワードスプレッドシートのように、非本質的な外部のコンポーネントである。これは、ＧＦＤＴコンポーネントの中に含まれることとなり、モデルの定義の時に使用される。定義が実行され式が計算される時に、実際にエクセルスプレッドシートが使用される。エンジンは、データをコンポーネントに対して及びコンポーネントから流すために、スプレッドシートとエクセルを介して通信を行う。リモートコンポーネントは、メインのモデルとは異なるエンジンで実行する。ローカルな機能エンジンの支店からは、これらは、内部の働きがわからないブラックボックスである。
【００９０】
コンポーネント等の２つの要素の間で結合が要求された場合、名前が付された結合がページ上に配置され、ラベルが割り当てられる。そして、その名前が付された結合に属性が割り当てられる。名前が付された結合は、この段階で他のオブジェクトに結合される必要はないが、ほかの名前が付された結合オブジェクトが設計中のページに配置されて、同じラベルがドロップダウンリストから選択されることによって、その他の場所で使用可能となる。これは、新しいオブジェクトを生成しているのではなく、存在している同じオブジェクトに２番目のインスタンスを許したことになる。提供された２番目のインスタンスは、最初のものと同じ名前スペースの中となる。図２１に示すように、２つの名前が付された結合の論理的な結合が形成されると、その結果、コンポーネントのような他のオブジェクトへの結合子が名前が付された結合に結合された時に、名前が付された結合の全てのインスタンスは、コンポーネントの属性を隠すことが可能となる。同様に、ある場所の名前が付された結合にデータが提供された時に、論理的な結合のために、それは他の場所の名前が付された結合にも提供される。さらに、その他の論理的な結合のインスタンスは、属性を他のコンポーネントまたは名前が付された結合に関係のある他の結合に転送する。標準的には、名前が付された結合は、モデルの中間値と同様に入力されるデータ及び出力されるデータの確認のために使用される。名前が付された結合は、モデル内の多くの場所に現れる伝統的なソフトウエアプログラム言語における変数と同種であり、コードの実行の間、変化する値を伝達する。名前が付された結合、又は、演算子の入力への数値の割り当ては、ただ１箇所において行われる。なぜならば、その値は、名前が付された結合の他のインスタンスに流されるからである。従って、ただ１つの出力の結合が、演算子又は名前が付された結合の入力に結合することが許される。
【００９１】
図２２を参照して、コンポーネントＡがあるページの名前が付された結合に出力を提供し、これにより、ほかのページの名前が付された結合がコンポーネントＢに入漁ｋを提供するときには、効果は、コンポーネントＡの出力とコンポーネントＢの入力の論理的な結合が生成されるということである。論理的な結合は、モデルの種々のコンポーネントを介したデータの通信の本質である。論理的な定義に関しては、名前が付された結合は、これは純粋にコンポーネント及び結合の間の網の目状のネットワークであるため、無意味である。
【００９２】
２つのオブジェクトの結合の間においては、チェック、照合及び採択が行われる。例えば、もしディメンションが両方の結合に対して定義されていた場合、結合が許可されるためには、それらは同じでなければならない。単位は、変換ファクタが決定されることができる限りにおいては、位置する必要はない。もし一方の端部で属性のいずれかが定義されていない場合は、属性が矛盾ないものであることを維持するために、それらが採択されるか、又は、異なる属性が破棄される。一度、結合の間で矛盾のないデータタイプが調整されたら、コンポーネントは、データタイプに対して有効に動作する機能を保持していることを確認するためのチェックが実行される。もし、保持してない場合には、次に、任意の変換手段が、矛盾なく互換性のあるものに変換するか否かを確認するチェックを行う。例えば、数値は、テキスト文字列に変換する必要がある等である。
【００９３】
出力は、多くの入力に結合されてよく、したがって２つの結合の間のネゴシエーションは単純ではないということに注意すべきである。さらなる入力が結合のセットに付加される各瞬間に、データタイプに矛盾がないことの確認を行うための、さらなる調停が実施され、もし必要であれば、データタイプが新しい結合に適合するものに変更される。コンポーネントマネージャは、有効で過負荷な機能で、適切なデータタイプとともに動作するセットをサーチする。これに加えて、有効なデータ変換手段がチェックされ、データが受け入れ可能なデータタイプに変換可能であるか否かの確認がなされる。もし、これが不可能であれば、コネクションマネージャは、結合が結合するコンポーネントと再度調停をするよう試みる。これは、全ての結合の属性を、モデル全体において再度調停する状態に導くかもしれない。しかしながら、ユーザは、調停の続行が許される新結合からの距離を定義することにより、この処理の拡大を制限することができる。
【図面の簡単な説明】
【００９４】
【図１】図１は、本発明の方法を実行する、グラフィカルな式定義ツールを含むシステムの概略図である。
【図２】図２は、図１のグラフィカルな式定義ツールの概略図である。
【図３】図３は、図１及び２におけるグラフィカルな式定義ツールにより生成されたウィンドウの画面のコピーである。
【図４】図４（Ａ）は、好適な実施例におけるグラフィカルな式の表現の第１のステップの概略図であり、図４（Ｂ）は、グラフィカルな式の表現の第２のステップの概略図であり、図４（Ｃ）は、グラフィカルな式の表現の第３のステップの概略図であり、図４（Ｄ）は、グラフィカルな式の表現の第４のステップの概略図である。
【図５】図５は、グラフィカルに表現された式の概略図である。
【図６】図６は、コンポーネント（演算子）オブジェクトの生成のステップを示すフローチャートである。
【図７】図７は、名前が付された結合（変数）オブジェクトの生成のステップを示すフローチャートである。
【図８】図８は、結合オブジェクトの生成のステップを示すフローチャートである。
【図９】図９は、グラフィカルに表現された式の概略図である。
【図１０】図１０は、図４（Ｄ）、５及び９において定義され、統合されて上位のレベルの式が形成されたしいのグラフィカルな表示を示す図である。
【図１１】図１１は、個々の段階は示さないように短縮した図１０に示した上位のレベルの式のグラフィカルな表示を示す図である。
【図１２】図１２は、変数属性の継承による変数タイプの制限のさらなる例を示す図である。
【図１３】図１３（Ａ）は、ルックアップテーブルコンポーネントへの入力の属性を示すポインタを伴う式の概略図であり、図１３（Ｂ）は、名前が付された結合への入力の属性を示すポインタを伴う式の概略図である。
【図１４】図１４は、式への入力変数を伴うグラフィカルに定義された式の概略図である。
【図１５】図１５は、演算子を含むほかのグラフィカルに定義された式の概略図である。
【図１６】図１６は、図１５の機能Ｃがどのように変更されたかを示す図である。
【図１７】図１７は、図１２の機能Ｃが追加の詳細を追加されるかを示す図である。
【図１８】図１８は、第１のコンピュータからコンピュータネットワークを介して第２のコンピュータに、コンピュータを通ってコンポーネントが通過する状態を示す概略図である。
【図１９】図１９は、図２に示したグラフィカルな式定義ツールのほかの画面を示す図である。
【図２０】図２０は、演算子により実行されるオーバーフローの方法を示す概略図である。
【図２１】図２１は、異なるページ上の名前が付された結合オブジェクトの間の論理的な結合を示す概略図である。
【図２２】図２２は、異なるページ上の名前が付された結合オブジェクトの間の論理的な結合及び異なったページ上の機能Ｂの入漁への機能Ａの出力の概略図である。
【図２３】図２３は、本発明を説明するための図である。
【図２４】図２４は、本発明を説明するための図である。
【図２５】図２５は、第１の付録の前半部分である。
【図２６】図２６は、第１の付録の後半部分である。
【図２７】図２７は、第２の付録である。
【符号の説明】
【００９５】
１２…ＧＦＤＴ
１４…マイクロソフトウィンドウズＧＵＩ
１６…コンポーネントマネージャ
１８…コネクションマネージャ
２０…コンポーネントオブジェクト
２２…コネクションオブジェクト
【図１】
2008165739.tif 000003
【図２】
2008165739.tif 000004
【図３】
2008165739.tif 000005
【図４】
2008165739.tif 000006
【図５】
2008165739.tif 000007
【図６】
2008165739.tif 000008
【図７】
2008165739.tif 000009
【図８】
2008165739.tif 000010
【図９】
2008165739.tif 000011
【図１０】
2008165739.tif 000012
【図１１】
2008165739.tif 000013
【図１２】
2008165739.tif 000014
【図１３】
2008165739.tif 000015
【図１４】
2008165739.tif 000016
【図１５】
2008165739.tif 000017
【図１６】
2008165739.tif 000018
【図１７】
2008165739.tif 000019
【図１８】
2008165739.tif 000020
【図１９】
2008165739.tif 000021
【図２０】
2008165739.tif 000022
【図２１】
2008165739.tif 000023
【図２２】
2008165739.tif 000024
【図２３】
2008165739.tif 000025
【図２４】
2008165739.tif 000026
【図２５】
2008165739.tif 000027
【図２６】
2008165739.tif 000028
【図２７】
2008165739.tif 000029