対応する参照符号は、いくつかの図にわたって、対応する部分を示す。図面は、本発明の実施形態を表現するが、図面は、必ずしも原寸に比例しておらず、いくつかの特徴は、本発明をより良く例示し、説明するために誇張されていることがある。本明細書において記載される例証は、本発明の一実施形態を1つの形式において例示するものであり、このような例証は、いかなる形でも本発明の範囲を限定するものとして解釈されるべきではない。
下記に続く説明および図面において、少数のコンポーネントおよび接続は、説明および例示を容易にするために示されることがある。本明細書において使用されるコンポーネントの数は、例のためのものに過ぎない。こうした例は、取り得るコンポーネントの数量、インスタンスまたは相互接続の数を含む、本発明の究極の機能を説明するものではないことが理解されるべきである。下記に開示される実施形態は、包括的であること、または、下記の詳細な説明において開示される正確な形式に本発明を限定することを意図されない。むしろ、実施形態は、その教示を当業者が活用し得るように選ばれ、説明されている。
下記に続く詳細な説明は、英数字または他の情報を表現する、コンピュータ・メモリ内のデータ・ビットに対する動作(演算)のアルゴリズムおよび記号的表現の観点から部分
的に提示される。コンピュータは、一般に、命令を実行するためのプロセッサと、命令およびデータを記憶するためのメモリとを含む。汎用コンピュータが、そのメモリに記憶された一連の機械符号化された命令を有する場合、このような符号化された命令上で動作するこのコンピュータは、特定のタイプの機械、つまり、一連の命令によって具現化される動作を実行するように特に構成されたコンピュータとなり得る。命令のうちの一部は、他の機械の動作を制御する信号を生成するように適合され得、したがって、それらの制御信号を通じて動作して、コンピュータ自体から遠く離れた材料を変換し得る。こうした説明および表現は、データ処理技術の当業者によって、当業者の研究の本質を他の当業者へ最も効果的に伝達するために使用される手段である。
アルゴリズムは、ここでは、また、一般に、所望の結果を導く工程の自己無撞着シーケンスであると考えられる。こうした工程は、物理量の物理操作を必要とする工程である。必ずというわけではないが、通常、こうした量は、記憶され、伝送され、変換され、結合され、比較され、さもなければ操作されることが可能な電気パルスもしくは電気信号または磁気パルスもしくは磁気信号の形式を取る。主に、一般的な用法の理由から、このような信号が具現化され、または表現される物理的な品物または物理的発現への参照として、こうした信号をビット、値、シンボル、文字、表示データ、用語、数などとして参照することは時には都合がよいことが分かっている。しかしながら、これらの全ておよび同様の用語は、適当な物理量に対して関連付けられるべきであり、ここでは、こうした量に対して適用される都合がよいラベルとして使用されるに過ぎないことが留意されるべきである。
いくつかのアルゴリズムは、情報の入力と所望の結果の生成との両方のためにデータ構造を使用し得る。データ構造は、データ処理システムによるデータ管理を非常に容易にし、洗練されたソフトウェア・システムを通じて以外はアクセス不可能である。データ構造は、メモリの情報コンテンツではなく、むしろ、データ構造は、メモリに記憶された情報に関する物理的組織を伝え、または明示する特定の電気構造要素を表現する。単なる抽象化に留まらず、データ構造は、複雑なデータ、しばしば、関連するアイテムのデータ・モデル化の物理的な特徴を正確に表現すると同時に、コンピュータ動作における向上された効率を提供する、メモリ内の特定の電気構造要素または磁気構造要素である。
さらに、実行される操作は、人間のオペレータによって実行される心的操作に対して一般に関連付けられる、比較または追加などの用語で参照されることが多い。人間のオペレータのそのような機能は、本発明の一部を形成する、本明細書において説明される動作のいずれにおいても、大抵の場合に必要ではなく、または望ましくない。動作は、機械動作である。本発明の動作を実行するための有益な機械は、汎用デジタル・コンピュータまたは他の同様のデバイスを含む。あらゆる場合において、コンピュータを動作させる際の方法動作と、演算の方法自体との間の区別が認識されるべきである。本発明は、電気物理信号または他の(例えば、機械的、化学的)物理信号を処理して、他の所望の物理的発現または物理信号を生成する際にコンピュータを動作させるための方法および装置に関する。コンピュータは、ソフトウェア・モジュール上で動作し、ソフトウェア・モジュールは、アルゴリズム工程を実装する機械命令をコンピュータ・プロセッサが実行することを可能とする一連の機械命令を表現する媒体上に記憶された信号の集合である。このような機械命令は、プロセッサが命令を実装するために解釈する実際のコンピュータ・コードであり得、または、代替的に、実際のコンピュータ・コードを取得するために解釈される、より高次の命令のコーディングであり得る。ソフトウェア・モジュールは、ハードウェア・コンポーネントも含むことができ、この場合、アルゴリズムのいくつかの態様は、命令の結果としてというよりも、回路自体によって実行される。
本発明は、こうした動作を実行するための装置にも関する。この装置は、必要とされる
目的のために具体的に構築されてもよく、またはコンピュータに記憶されるコンピュータ・プログラムによって選択的に活性化され、もしくは再構成される汎用コンピュータを備えてもよい。本明細書において提示されるアルゴリズムは、特定のハードウェアを必要とするものとして明示的に示されない限り、任意の特定のコンピュータまたは他の装置に本質的に関するものではない。いくつかの場合において、コンピュータ・プログラムは、相互作用すべき特定のハードウェアまたはプログラミングを必要とし、または必要としないことがあり得る特定のプロトコルのために構成される信号を通じて、他のプログラムまたは機器と通信し、または関連し得る。具体的には、様々な汎用機械が、本明細書における教示に従って書かれたプログラムと共に使用されてもよく、または、必要とされる方法工程を実行するために、より特殊な装置を構築する方がより都合がよいと分かることもあり得る。多様なこうした機械のために必要とされる構造は、下記の説明から出現するであろう。
下記の説明において、頻繁に使用されるいくつかの用語は、本文脈において特殊な意味を有する。「ウィンドウ環境」、「ウィンドウ内で実行中」、および「グラフィック・ユーザ・インタフェース・オペレーティン・システム」という用語は、ラスタ走査されるビデオ・ディスプレイ上の有界領域内などの、ビデオ・ディスプレイ上で情報が操作され、表示されるコンピュータ・ユーザ・インタフェースを表すために使用される。「ネットワーク」、「ローカル・エリア・ネットワーク」、「LAN」、「広域ネットワーク」または「WAN」という用語は、メッセージがコンピュータ間で送信され得るように接続される、2つ以上のコンピュータを意味する。このようなコンピュータ・ネットワークにおいて、典型的には、1以上のコンピュータは、「サーバ」、すなわち、ハード・ディスク・ドライブなどの大容量記憶デバイスと、プリンタまたはモデムなどの周辺デバイスを動作させるための通信ハードウェアとを有するコンピュータとして動作する。「ワークステーション」と称される他のコンピュータは、コンピュータ・ネットワークのユーザが共有データ・ファイル、共通周辺デバイス、およびワークステーション間通信などのネットワーク・リソースへアクセスし得るように、ユーザ・インタフェースを提供する。ユーザは、コンピュータ・プログラムまたはネットワーク・リソースを活性化して、入力変数およびその環境によって決定される特定の動作の特徴と共に、コンピュータ・プログラムの一般的な動作も共に含むプロセスを作成する。プロセスと同様のものにはエージェント(知的エージェントと呼ばれることもある)があり、エージェントは、ユーザ介入なしに、何らかの定期的なスケジュールで、情報を収集し、または何らかの他のサービスを実行するプロセスである。典型的には、エージェントは、ユーザによって典型的には提供されるパラメータを使用して、ホストマシン上またはネットワーク上の何らかの他のポイントにおけるロケーションをサーチし、エージェントの目的に関する情報を収集し、この情報をユーザに対して周期的に提示する。
「ウィンドウ」という用語、および上記で定義された「ウィンドウ環境」または「ウィンドウ内で実行中」などの関連付けられる用語は、ワシントン州レドモンド(Redmond)のマイクロソフト・コーポレーション(Microsoft Corporation)から入手可能ないくつかのウィンドウ・システムによって例証されるコンピュータ・ユーザ・インタフェースを指す。他のウィンドウ・コンピュータ・インタフェースは、例えば、カリフォルニア州クパチーノ(Cupertino)のアップル・コンピュータ・インコーポレーテッド(Apple Computers Incorporated)から、およびLINUX(登録商標)動作環境のコンポーネントとして入手可能である。具体的には、本明細書の説明における、こうした用語の使用は、いかなる特定のコンピューティング環境またはオペレーティング・システムに対する限定も暗示しないことが理解されるべきである。
「デスクトップ」という用語は、デスクトップに対して関連付けられるユーザのために
、メニューまたはオブジェクトの表示を関連付けられた設定と共に提示する特定のユーザ・インタフェースを意味する。デスクトップが、ネットワーク・リソースに対してアクセスする場合、これは、典型的には、アプリケーション・プログラムが遠隔サーバ上で実行されることを必要とし、デスクトップは、アプリケーション・プログラム・インタフェースすなわちAPIを呼び出して、ユーザがネットワーク・リソースに対してコマンドを提供し、任意の出力を観察することを可能とする。
「ブラウザ」という用語は、必ずしもユーザにとって明らかとは限らないが、PDFとネットワーク・サーバとの間でメッセージを送信すること、ならびに、ネットワーク・ユーザへ表示すること、およびネットワーク・ユーザと相互作用することに責任を負うプログラムを指す。ブラウザは、コンピュータの世界的なネットワーク、つまり、「ワールド・ワイド・ウェブ」または単に「ウェブ」上でのテキストおよびグラフィック情報の送信のための通信プロトコルを活用するように設計される。本発明と互換性のあるブラウザの例は、マイクロソフト・コーポレーションによって販売されるインターネット・エクスプローラ(インターネット・エクスプローラは、マイクロソフト・コーポレーションの商標である)、オペラ・ソフトウェアASA(Opera Software ASA)によって作成されるオペラ・ブラウザ・プログラム、またはモジラ・ファウンデーション(Mozilla Foundation)によって流通されるFirefoxブラウザ・プログラム(Firefoxは、モジラ・ファウンデーションの登録商標である)を含む。下記の説明は、そのような動作をブラウザのグラフィック・ユーザ・インタフェースの観点から詳細に説明するが、本発明は、グラフィック・ベースのブラウザの機能のうちの多くを有する、テキスト・ベースのインタフェース、または、音声起動されるインタフェースもしくは視覚的に起動されるインタフェースすら用いて実施され得る。
ブラウザは、標準汎用マークアップ言語(「SGML:Standard Generalized Markup Language」)またはハイパーテキスト・マークアップ言語(「HTML」)でフォーマットされる情報を表示し、これら両方は、特別なASCIIテキスト・コードの使用を通じて、テキスト文書内に非視覚的なコードを埋め込むスクリプト言語である。これらのフォーマットのファイルは、インターネットのようなグローバル情報ネットワークを含むコンピュータ・ネットワーク上で簡単に送信され、ブラウザがテキスト、画像を表示し、オーディオ記録およびビデオ記録を再生することを可能とし得る。ウェブは、これらのデータ・ファイル・フォーマットを、このような情報をサーバとワークステーションとの間で送信するためのウェブの通信プロトコルと併せて活用する。ブラウザは、拡張可能マークアップ言語(「XML:eXtensible Markup Language」)ファイルで提供される情報を表示するようにもプログラムされ得、XMLファイルは、いくつかの文書型定義(「DTD:Document Type Definitions」)と共に使用することが可能であり、したがって、SMGLまたはHTMLよりも本質的に一般的である。XMLファイルは、データとスタイルシート・フォーマットとが別個に含まれているため、オブジェクトに類似し得る(フォーマットは、情報を表示する方法として考えられてもよく、したがって、XMLファイルは、データと、関連付けられた方法とを有する)。
上記で定義されたような「パーソナル・デジタル・アシスタント」または「PDA」という用語は、演算機能、電話機能、ファックス機能、電子メール機能およびネットワーク機能を備える任意のハンドヘルドの携帯デバイスを意味する。「無線広域ネットワーク」または「WWAN」という用語は、ハンドヘルド・デバイスとコンピュータとの間におけるデータの送信のための媒体としての役割を果たす無線ネットワークを意味する。「同期」という用語は、ハンドヘルド・デバイスとデスクトップ・コンピュータとの間における、有線を介した、または無線での情報の交換を意味する。同期は、ハンドヘルド・デバイスとデスクトップ・コンピュータとの両方におけるデータが同一であることを確保する。
無線広域ネットワークにおいて、通信は、主に、アナログ・ネットワーク、デジタル・セルラ・ネットワーク、またはパーソナル通信サービス(「PCS:personal communications service」)ネットワーク上での無線信号の送信を通じて発生する。信号は、マイクロ波および他の電磁波を通じて送信されることもあり得る。通信のために使用される電磁波は、自由空間を通じて、または「光ファイバ」を導波路として使用して送信される、視覚周波数またはほぼ視覚周波数における「光」波を含み得る。現在のところ、大抵の無線データ通信は、符号分割多元接続(「CDMA」)、時分割多元接続(「TDMA」)、グローバル・システム・フォー・モバイル・コミュニケーション(「GSM(登録商標)」)、パーソナル・デジタル・セルラ(「PDC」)などの第2の世代技術を使用してセルラ・システム上で、または先進移動電話サービス(「AMPS」)上で使用されるセルラ・デジタル・パケット・データ(「CDPD」)などの、アナログ・システム上のパケット・データ技術を通じて起こる。「無線アプリケーション・プロトコル」または「WAP」という用語は、ハンドヘルド・デバイスおよびモバイル・デバイス上で小さいユーザ・インタフェースを用いてウェブベースのデータの配信および提示を容易にするためのユニバーサルな仕様を意味する。
「リアル・タイム」(「リアルタイム」とも言う)または「ほぼリアル・タイム」という用語は、タイミングを主な設計目的として使用するシステム設計アプローチを意味する。具体的には、リアル・タイム・システムは、所定の基準を満たす時間間隔内に、1以上の動作を完了する。この用語は、実行される動作、例えば、「リアル・タイムでの更新」を指すためにも使用され得る。時間間隔基準は、特定の量の時間であってもよく、または、「バッチ」システムもしくは「オフライン」システムと称されることもある、別の非リアル・タイム・システムと対照的に定義されてもよい。時間間隔は、システムによって変わる要件によって決定されることが認められ得る。例えば、高性能航空機のリアル・タイム制御システムは、マイクロ秒単位で応答することが必要とされ得るのに対して、リアル・タイムの貯水位調整装置については、数時間間隔での更新が容認可能であり得る。人間のユーザとの相互作用において、「リアル・タイム応答」を提供するシステムは、不快な遅延なしにシステムの相互作用的な使用または「ライブ」使用を可能とするのに十分な速さで、ユーザが入力に対する応答を受け取ることを意味する。
本明細書における説明では、リアル・タイム・トランザクション処理は、システム・データに影響を与える動作を迅速に完了するようにシステムが設計されており、結果として得られる変更されたデータは、オフライン同期プロセスを必要とせずに、できる限り迅速に他のシステム・コンポーネントに対して利用可能にされることを意味する。このようなシステムの正確なタイミングは、処理時間およびネットワーク上でのデータの伝搬などの数多くの要因に依存するが、顕著な特徴は、トランザクション・イベントの結果として変更されたデータの迅速な利用可能性であることが認められ得る。
図12Aは、1つの実施形態に係るコンピューティング環境1200の高レベルのブロック図である。図12Aは、ネットワーク1214によって接続されるサーバ1210と3つのクライアント1212とを例示する。説明を単純化し、明確にするために、3つのクライアント1212のみが図12Aに示されている。コンピューティング環境100の実施形態は、ネットワーク1214、例えば、インターネットへ接続される、数千個または数百万個のクライアント1212を有し得る。ユーザ(図示せず)は、ネットワーク1214を通じてサーバ1210とその関連付けられた通信機器およびソフトウェア(図示せず)を介してメッセージを送ることと、メッセージを受信することの両方のために、クライアント1212のうちの1つでソフトウェア1216を動作させ得る。
図12Bは、サーバ1210またはクライアント1212を実装するのに適したコンピ
ュータ・システム1211のブロック図を図示する。コンピュータ・システム1211は、中央処理装置1215、システム・メモリ1217(典型的には、RAMであるが、システム・メモリはROM、フラッシュRAMなども含み得る)、入出力コントローラ1218、オーディオ出力インタフェース1222を介したスピーカ・システム1220などの外部オーディオ・デバイス、ディスプレイ・アダプタ1226を介したディスプレイ画面1224などの外部デバイス、シリアル・ポート1228および1230、(キーボード・コントローラ1233を用いてインタフェースされる)キーボード1232、ストレージ・インタフェース1234、フロッピー(登録商標)・ディスク1238を受け入れるように動作するディスク・ドライブ1237、ファイバ・チャネル・ネットワーク1290へ接続するように動作するホスト・バス・アダプタ(HBA)インタフェース・カード1235A、SCSIバス1239へ接続するように動作するホスト・バス・アダプタ(HBA)インタフェース・カード1235B、および光ディスク1242を受け入れるように動作する光ディスク・ドライブ1240などの、コンピュータ・システム1211の主要なサブシステムを相互接続するバス1213を含む。マウス1246(または、シリアル・ポート1228を介してバス1219へ結合される他のポイント・アンド・クリック・デバイス)、モデム1247(シリアル・ポート1230を介してバス1212へ結合される)、およびネットワーク・インタフェース1248(バス1213へ直接的に結合される)も含まれる。
バス1213は、中央処理装置1214とシステム・メモリ1217との間のデータ通信を可能とする。システム・メモリ1217は、前述されたように、読み出し専用メモリ(ROM)またはフラッシュ・メモリ(どちらも図示せず)と、ランダム・アクセス・メモリ(RAM)(図示せず)とを含み得る。RAMは、一般には、オペレーティング・システムおよびアプリケーション・プログラムがロードされるメイン・メモリである。ROMまたはフラッシュ・メモリは、ソフトウェア・コードの中でも特に、基本入出力システム(BIOS)を含み得る。BIOSは、周辺コンポーネントとの相互作用などの基本ハードウェア動作を制御する。コンピュータ・システム1211に存在するアプリケーションは、一般には、ハード・ディスク・ドライブ(例えば、固定ディスク1244)、光学式ドライブ(例えば、光学式ドライブ1240)、フロッピー(登録商標)・ディスク・ユニット1237、または他の記憶媒体などのコンピュータ読取可能な媒体上に記憶され、コンピュータ読取可能な媒体を介してアクセスされる。また、アプリケーションは、ネットワーク・モデム1247またはインタフェース1248または他の電気通信機器(図示せず)を介してアクセスされる際に、アプリケーションおよびデータ通信技術に応じて変調される電気信号の形式であり得る。
ストレージ・インタフェース1234は、コンピュータ・システム1210の他のストレージ・インタフェースと同様に、固定ディスク・ドライブ1244などの、情報の記憶および/または取出のための標準的なコンピュータ読取可能な媒体へ接続され得る。固定ディスク・ドライブ1244は、コンピュータ・システム1211の一部であってもよく、または、別個のものであって、他のインタフェース・システムを通じてアクセスされてもよい。モデム1247は、インターネット・サービス・プロバイダ(ISP)(図示せず)を介して、電話線またはインターネットを介して遠隔サーバへの直接的に接続を提供し得る。ネットワーク・インタフェース1248は、POP(point of presence)を介したインターネットへの直接的なネットワーク・リンクを介して遠隔サーバへの直接的な接続を提供し得る。ネットワーク・インタフェース1248は、このような接続を、デジタル・セルラ電話接続、セルラ・デジタル・パケット・データ(CDPD)接続、デジタル衛星データ接続などを含む無線技法を使用して提供し得る。
多くの他のデバイスまたはサブシステム(図示せず)は、同様の手法で接続され得る(例えば、文書スキャナ、デジタル・カメラなど)。反対に、図12Bに示されるデバイス
の全てが、本開示を実施するために存在する必要はない。デバイスおよびサブシステムは、図12Bに示される手法とは異なるように相互接続されてもよい。図12Bに示されるコンピュータ・システムなどのコンピュータ・システムの動作は、本技術分野において容易に知られており、本出願においては詳細に議論されない。本開示を実装するためのソフトウェア・ソースおよび/またはオブジェクト・コードは、システム・メモリ1217、固定ディスク1244、光ディスク1242、またはフロッピー(登録商標)・ディスク1238のうちの1つまたは複数などの、コンピュータ読取可能な記憶媒体に記憶され得る。コンピュータ・システム1211上で提供されるオペレーティング・システムは、MS−DOS(登録商標)(MS−DOSは、ワシントン州レドモンドのマイクロソフト・コーポレーションの登録商標である)、WINDOWS(登録商標)(WINDOWS(登録商標)は、ワシントン州レドモンドのマイクロソフト・コーポレーションの登録商標である)、OS/2(登録商標)(OS/2は、ニューヨーク州アーモンク(Armonk)のインターナショナル・ビジネス・マシーンズ・コーポレーション(International Business Machines Corporation)の登録商標である)、UNIX(登録商標)(UNIX(登録商標)は、英国レディングのエックス/オープン・カンパニー・リミテッド(X/Open Company Limited)の登録商標である)、Linux(登録商標)(LINUX(登録商標)は、オレゴン州ポートランドのライナス・トーバルズ(Linus Torvalds)の登録商標である)、または他の既知もしくは開発済みのオペレーティング・システムのいずれかの一種または一バージョンであり得る。
さらに、本明細書において説明される信号に関して、当業者は、信号が第1のブロックから第2のブロックへ直接的に送信され得ること、または信号がブロック間で変更され(例えば、増幅され、減衰され、遅延され、ラッチされ、バッファリングされ、反転され、フィルタリングされ、または、さもなければ変更され)得ることを認識する。上述された実施形態の信号は、1つのブロックから次のブロックへ送信されるものとして特徴付けられるが、本開示の他の実施形態は、信号の情報および/または機能面がブロック間で送信される限り、そのような直接的に送信される信号に代えて変更された信号を含んでもよい。ある程度は、第2のブロックにおける第2の入力は、関与する回路の物理的制限に起因して(例えば、いくらかの減衰および遅延が必然的に存在する)、第1のブロックから出力される第1の信号から導かれる第2の信号として概念化され得る。そのため、本明細書において、第1の信号から導かれる第2の信号は、第1の信号を含み、または、回路制限に起因するものであれ、もしくは第1の信号の情報および/もしくは最終的な機能面を変化させない他の回路要素の通過に起因するものであれ、第1の信号に対する任意の変更を含む。
本明細書における特徴および説明のうちの多くは、「ユニット・モデル」と称される情報モデルを参照する。ユニット・モデルの設計および構造は、それ自体が本開示の一部であり、その特徴は、本明細書において開示される本発明の複数の実施形態の他の特徴および説明のうちの多くの基礎である。
本明細書における説明は、大まかに3つの態様に分けられ得る。第1に、ユニット・モデルは、要素、方法、および関係の抽象的なセットである。第2に、ユニット・モデルのインスタンス化またはインスタンスは、ドメイン、観察のセット、実際の知識、データなどに対応して収集されるモデル要素の特定の集合およびアセンブリを指す。モデル・インスタンスはドメインのモデルであると言うことができる。第3に、ユニット・モデルの実装は、例えば、デジタル・コンピュータにおけるプログラムおよびデータとしての、モデルまたはモデルのインスタンスの機械実装を指す。これらの3つの態様を使用する参照は互換的に使用され得ることが認識されるべきである。例えば、モデルへの参照は、コンピュータ上でのモデルおよびその方法の実装も参照し得る。別の例として、モデルのインス
タンスへの参照は、コンピュータのメモリ内でのインスタンスの表現への参照として見なされ得る。
ユニット・モデル(本明細書においては、「モデル」または「情報ユニット・モデル」または「知識ユニット・モデル」とも称される)は、知的情報処理に対応する構造およびプロセスの抽象化から成るモデルである。モデルは、「情報ユニット」または「知識ユニット」と称される単一のアトムに基づく。情報の全ての領域は、情報ユニットのアレイおよびそれらの間の関係によって説明され得る。本発明のいくつかの実施形態は、このような知識ユニットの異なる構成を含む。
情報ユニットは表現である。情報ユニットは、いかなるものも表現し得る。情報ユニットは、自動車などの実際のオブジェクトを表現してもよく、または、情報ユニットは、アイデアなどの抽象的思考を表現してもよい。情報ユニットは、情報ユニットのシーケンスも表現し得る。
図2A〜図2Cは、情報ユニットの構造およびその構成要素を図示する樹形図である。図2Aを参照すると、情報ユニット202が示されている。ユニット202は、一意なID204、名前206、要素リスト208およびパスのリスト210を含む、いくつかの関連付けられた属性を有する。
あらゆるユニットは、典型的には、一意な識別子を有する。同一の識別子を有することは可能であるが、これは、二次キー、またはユニットの誤った呼び出しの可能性を暗示し得る。
あらゆるユニットは、ユニットの意味を識別する助けとするために使用されるテキスト文字列である、1つの名前またはいくつかの名前を有し得る。例えば、ユニットは、123xyzというIDを有する青い自動車を表現し得るが、その名前は、「青い自動車」であってもよい。ユニットは、債券の価格を表現する数学的変数を表現し得る。IDは、567mnoであり得る。このユニットは、2つの名前を有してもよく、第1の名前は「債権価格」であり、第2の名前は「BP」から始まり、これは等式における表示により適している。ユニットの名前は、必ずしも一意であるとは限らず、そのユニットが何を表現するのかを人間のユーザが識別するのに役立つように使用されるに過ぎない。
要素リスト208は、要素のシーケンスを表現する。図2Bは、要素の構造を図示する。要素230は、別の情報ユニットを識別する構造である。要素情報ユニットが識別され得るいくつかの手法が存在する。その手法は、1)そのid232によって直接的に参照されること、2)情報ユニットの演算子ターゲット234として間接的に参照されること、3)情報ユニットのソース・ターゲット236として間接的に参照されることであり得る。さらに、要素によって参照される情報ユニットは、情報ユニットによって参照される要素であり得る。要素は、マッピング動作における使用のための記号要素または記号シーケンスとして識別され得る。さらに、要素は、例えば、クラスの属性を指し示し得るパスを付加された、上記の方法のうちのいずれかによって、ユニットを参照し得る。
パス・リスト210は、ユニットが他の情報ユニットと共に有するパスのリストである。パス構造は、図2Cに図示される。パス250は、ソース・ユニット252と、関係ユニット256と、宛先ユニット254と、抵抗258とから成る。
真理値212は、ユニットが現実またはユニットの演算子の成功を表現する条件または程度を示す、例えば、バイナリまたは実数値といった値である。
望ましさ因子214は、ユニットがユニット・モデル・インスタンス化の実施形態に対
して望ましいまたは望ましくない何かを表現する程度を示す実数値である。
演算子216は、十分な大きさの衝撃を受け取った際に行われるアクションを示す。演算子によって取られるアクションは、情報ユニットを作成し、変更し、または削除し得、パスを作成し、変更し、または削除し得、モデル実施形態に特有である、例えば、入力デバイスまたは出力デバイスを操作する、実際の演算子を呼び出し得る。演算子は、より一般には、ユニットのシーケンスに対して作用し得る任意のアクションであってもよく、すなわち、ユニットを並べ替え、ユニットの別のシーケンス内の特定のユニットまたはユニットのセットの存在をマッピングし、チェックする。
多くの演算子が、本発明の実施形態において作成され得る。リストされる演算子は、本発明のいくつかの実施形態においてユニット、アトム値、および他のオブジェクトに対して取り得る演算子の例として提供される。このような演算子は、下記を含むが、これらに限定されない。
Createunit − 新たなユニットを作成する。新たなユニットは、ユニットのターゲットである。
Copy − ユニット、ユニットのセットおよびそれらの関係(例えば、クラス)をコピーする
Copyonto − ソース・ユニットの関係をコピーし、それらを宛先ユニットに対して適用する
Deleteunit − ユニットを削除する
Shock − 衝撃をユニットへ送る
Fact − 何も行わない演算子である。要素は、シーケンスを表現する役割のみを果たし、そのため、factと称される
Intersect? − あるリストが、別のリストと共通の要素を有するか
Intersect−ex? − あるリストの全ての要素が、別のリストの要素であるか
Loop(list,element) − リストの各要素に対するサイクルであり、[element]のうちの第1の要素を現在の要素に対して設定する。ループが次に衝撃を受け取った際、ループは、[element]をリストの要素リストにおける次の要素に対して設定する。
Reset(loop) − ループが次に衝撃を加えられた際に、その要素変数をリストの第1の要素に設定するように、ループ・ユニットを再設定する。
Mapelements − ターゲット・ユニットの要素に対してマップを適用し、成功した場合には、ターゲット要素のうちの1つまたは複数に対して仮想ユニットを設定する。成功した場合には、真理値を真に設定し、そうでない場合には、偽に設定する。
Mappaths − ターゲット・ユニットのパスに対してマップを提供し、成功した場合には、ターゲット・パス要素のうちの1つまたは複数に対して仮想ユニットを設定する。成功した場合には、真理値を真に設定し、そうでない場合には、偽に設定する。
Addpaths:[Unit][Source][Relation][Destination] − ユニットに対してパスを追加する
Deletepath − ユニットからパスを削除する
Clear − ユニットのリストから全ての要素を除去し、仮想ユニットをクリアする。
Same Unit?:[Unit1][Unit2] − ユニット1とユニット
2とは同じか
Similar Unit?:[Unit1][Unit2] − ユニット1とユニット2とは同様のユニットを有するか
Set[Unit1][Unit2][Unit3]*[Unit4] − [Unit1]から[Unit2][Unit3]の要素および[Unit4]の要素を設定する
Real:[Operator][Parameter 1..n] − [Operator]によって特定される実際の演算子を呼び出す演算子。実際の演算子は、ユニット・モデルの外部の任意のもの、例えば、ディスプレイ、ストレージ・デバイス、または入力デバイスと相互作用するものである。
ユニットに対する演算子に加えて、実数、入力関数、プロセス、および他の環境面を表現するアトムが、下記の実際の演算子のうちの1つまたは複数によって動作させられ得る。
a=b+c、a=b−c、a=b*c、a=b/c − 単純な算術演算
Cos、Sin、Tan、ArcCos、ArcSin、ArcTan、Cosh、Sinh、Tanh − 三角演算
Ln、Log、Power − 対数
IsNumber? − ユニットの要素は、数を表現するか
>、<、<=、>=、!=、=? − 単純な算術比較演算子
Div − 商および剰余演算子
InputText − ユーザからテキストを得る
Message − メッセージのテキストがディスプレイへ示されるように設定する
MessageYesNo − YesボタンまたはNoボタンをクリックするようにユーザに要求するメッセージ・ボックスを示す
GetSelected − アプリケーション・ユーザ・インタフェースからユニットを選択するようにユーザに求める
ApplicationMenu − アプリケーション・メイン・メニューに対して、特定のプロセスにアクセスすることができるアイテムを追加する
UnitMenu − ユニットの右クリック・メニューに対して、特定のプロセスにアクセスすることができるアイテムを知的に追加する
GetComment − ユニットのコメントを得る
ShowUnit − ユニットをディスプレイへ示す
Form − ユニットのセットを表現するコントロールを有する相互作用フォームを示す。このセットは、通常、クラス、クラス・インスタンスまたはリストである。
Import − 区切られたテキスト・ファイルをインポートする
CountElements − ユニットの要素の数を数える
FindParentProcess − 工程がメンバーであるプロセスを発見する
SetWorkingKB − システムのWorkingKB変数を設定する。WorkingKBは、複数の目的のために使用され、特に、作成される新たなユニットのドメインを設定するために使用される
SetUnitKB − 特定のユニットのドメインを設定する
SetTruthValue − ユニットの真理値を設定する
Sleep − 特定された数ミリ秒間、一時停止させるための衝撃フローを引き起こす演算子
IsEmpty? − ユニットはいずれかの要素を有するか?ユニットが要素を有する場合、演算子は、そのユニットの真理値を偽に設定する
LoadKB − ストレージ・デバイスから知識ドメインをロードする。
ユニットは、このユニットの動作の対象となる演算子ターゲット・ユニット215を有し得る。ユニット202は、ユニット202を活性化するユニットを識別するソース・ターゲット・ユニット213も有し得る。
ユニット・モデルは、構成要素の小さいセットを有しており、作業がしやすい。ユニット・モデルの例示的な表現は、図2A〜図2Cにおいて提供されている。モデルは、非常に一般的でもある。モデルは、単一の一般的な構造(情報ユニット)から成り、ソースが生成するイベントの任意のセットをモデル化するのに十分である。モデルは、直面される非常に多様な経験を正確に表現するためのその能力においても一般的である。無制限の数のイベントの組み合わせが、モデルを用いて表され得る。
ユニット・モデルは、ソースの観察者として採用されてもよく、ソースが一連の「イベント」を作成する。観察されるイベントの各々は、その結果として、モデルにおいて情報ユニットとしてインスタンス化される。イベントは、典型的には、モデル命名法において2文字のシーケンス「Ev」によって表現される。イベントは、モデルにおける情報ユニットである。
複数のイベントが観察され、複数の対応する情報ユニットがモデルにおいてインスタンス化された場合、ユニット間の「関係(Relation)」もインスタンス化され得る。こうした関係の例は、イベント間のタイミングに対処することができ、ここで、関係は、「前」、「後」、または「同時」であり得る。ユニット間の関係の別の例は、イベントが同一ではないことを表す「異なる」である。関係は、典型的には、モデル命名法において小文字の「r」によって表現される。情報ユニットも、モデルにおけるユニット間の関係を表現するために使用され得る。
2つのユニットは、それら2つのユニット間の関係と併せて、「パス」として定義される。パスは、モデルにおける情報ユニットによっても表現され得る。
「状態」は、インスタンス化されたイベントの集合である。したがって、観察される各イベントは、モデルにおける新たな状態を作成する。状態は、典型的には、モデル命名法において小文字の「s」によって表現される。状態は、モデルにおける情報ユニットでもある。
「状況」は、連続的な状態のセットとして定義される。具体的には、状況は、関係する情報ユニットの状態のシーケンスである。状況は、典型的には、モデル命名法において大文字の「S」によって表現される。状況は、モデルにおける情報ユニットでもある。
ある特定の状態の後に、別の特定の状態が常に続く場合、この2つの状態は「条件関係」を有すると言われる。条件関係は、典型的には、モデル命名法において2つの文字列「−>」によって表現される。条件関係は、モデルにおける情報ユニットでもある。
「記号ユニット」は、任意の他のユニットの値を呈し得るユニットである。記号ユニットは、1つよりも多くのイベントが、あるケースと一致する場合の一般化のために有益である。記号ユニットは、典型的には、モデル命名法において、その後に整数が続く下線(「_」)を備える文字列によって表現され、マッピングに関与する動作において使用される。記号ユニットは、単一のユニットを表現するように制約されてもよく、またはユニットのシーケンスを表現してもよい。
各条件関係は、その条件関係が依存するユニット(先行する条件)と、この先行する条件が満足された結果である他のユニットとを有することに留意されたい。したがって、結
果として生じるユニットは、ユニットのシーケンスだけを表現するのはなく、次の状態がその前の状態とどのように異なるかも示す。したがって、結果は、変化の主体でもある。
いくつかの実施形態において、結果は、新たなユニットの作成を含む。他の実施形態において、結果は、その代わりに、既存のユニットを変更する。したがって、条件関係の満足は、情報ユニット(ターゲット・ユニット)を、その演算子によって定義されるように、作成し、変更し、または除去し得る。
各情報ユニットは、1以上の他の情報ユニットに対して関係を有し得、これは、おそらくはパスとして記憶されるシーケンスを含み得る。情報ユニットと別の情報ユニットまたはターゲット・シーケンスとの間の関係は、等価、マッピングまたは抽象化であり得る。
情報ユニットが複数のユニットを含む場合、要素シーケンスは、様々な実施形態において、様々な基準に従って順序付けられてもよく、または、このシーケンスは、特定の順序を有しなくてもよい。例えば、シーケンスは、作成日時または同様の時間的基準に従って順序付けられ、またはソートされてもよい。したがって、あらゆる経験を情報ユニットのセットとして表現することができる。
「ライブラリ」は、ドメインの集合である。
「共通フロー」は、自由で抑制されないフローである。「バイポーラ・フロー」は、2つの変位された情報ユニットからのフローである。
カプセル化は、複数のユニットが単一のユニットとして参照されるプロセスである。カプセル化の例は、リスト、プロセス、およびドメインである。
持続的なイベント、または持続的な関連するイベントのセットは、「オブジェクト」と称される。オブジェクトは、リスト、クラス・インスタンスであってもよく、実際の物理的なものに対応し得る。「リスト」は、要素のシーケンスから構成されるオブジェクトとして定義される。
「プロセス」は、互いに条件関係(通常は線形)を有するユニットのセットのカプセル化である。プロセスは、1以上の衝撃をユニットのシーケンスに向ける。
「ドメイン」は、知識の領域である。ドメインの同義語は「ユニバース」である。ドメインは、オブジェクト、クラス、情報ユニット、および他のユニット・モデル要素を含み得る。
全てが関係の同様のセットを有するオブジェクトのセットを「クラス」と称する。クラスは、表現される情報ユニットの全てが同様の特徴を有する、情報ユニットのセットを表現する、ユニットの仮想セットである。クラスにおける情報ユニットの数に対しては制限がない。同様に、このコンテキストにおいては、関係のセットまたは特徴のセットは、抽象化の何らかのレベルにおいて同じであることを意味する。
クラスのメンバーを、クラスの「インスタンス」と称する。同様の関係を属性関係と称し、関係を形成するイベントをクラスの「属性」と称する。
全てのクラスは、クラス属性間に存在し得る全ての条件関係をカプセル化する、プロセスのセットを有し得る。こうしたプロセスは、クラスの「原理」と称される。一般に、クラスは、任意の数の属性および原理を有し得る。
属性は、テキスト文字列、オプションのリストによって制約されるテキスト文字列、クラス自体またはリストであり得る。例えば、名前属性は、テキスト文字列タイプである。人物(クラス)の性別(属性)は、「男性」または「女性」のリストによって制約される
テキスト文字列属性の例である。従業員(リスト属性)は、各リスト・アイテムがクラス従業員であるリスト属性の例であり、従業員は、会社の属性である。
オブジェクト、クラス、リストおよびプロセスを説明してきた。しかしながら、情報ユニットは、はるかに多くの種類の構成において配置され得る。他の情報ユニットのランダム・シーケンスである情報ユニットが作成されてもよい。観察される状態との相関が理由で、作成されるユニットのうちの一部が、将来の状態の予測因子と見なされ得る条件関係を表すことがあり得る。しかしながら、過去の実績は必ずしも将来の結果を示すとは限らないため、条件関係を表すユニットは、真の真理値または望ましい真理値に関連することもあれば、関連しないこともある。
したがって、各ユニットは、観察に対するそのユニットの関連を示す二進値の特性を有し、この特性をその「真理値」または「TV」と称する。真理値は、「真」もしくは「偽」であり、または、代替的な実施形態においては、実数量であり得る。真理値は、いくつかの例において、ユニットの演算子の成功または値も表現し得る。ユニットの真理値は、同じユニットの演算子または異なるユニットの演算子のアクションによって変更され得る。他の実施形態において、真理値は、ユニットのこの特性のファジー理論評価を表現する、非二値の実数値であり得る。このようなファジーな値は、実数、例えば、0から1の範囲、所定の最小値と所定の最大値との間の範囲の整数値、または取り得る値の他のセットであってもよい。
各ユニットは、他のユニットに対するそのユニットの望ましさに対応する整数または実数値の特性であり得る望ましさ因子も有する。
説明されたように、情報ユニットは、観察の結果、構築され、ユニバースに対して追加され得る。情報ユニットの追加的な特性は、「演算子」と呼ばれる。演算子は、後述されるように衝撃を印加すること、情報ユニットに対して論理演算または集合演算を行うこと、このような情報ユニットを順序付し、シーケンス化し、および他の処理機能を行うことを含めて、ユニット自体の情報ユニットのセットを作成し、変更するための能力をユニットに与える。したがって、ユニットは、情報ユニットの個々の部分を追加し、除去し、コピーし、または変えることを含めて、ユニット自体の情報ユニットのセットに追加を行い、除去し、コピーし、編集し得る。演算子は、観察された変化の主体を反映する。
3つの追加的な変更演算子、すなわち、衝撃演算子、パス抵抗設定、閾値設定が、情報ユニットに対して適用される。衝撃演算子は、ユニットに対して「衝撃」を与え、したがって、フローの選択的な開始を可能とする。パス抵抗演算子は、パスの「抵抗」特性を設定する。1つの実施形態において、抵抗は正の実数量である。1つの実施形態において、抵抗特性は、抵抗がエネルギーの流れに抵抗し、エネルギーを浪費させるという点において、流体抵抗、機械抵抗または電気抵抗と類似する。したがって、抵抗特性は、エネルギーが流れるパスを開閉することによって、フローの選択的な制御を可能とする。1つの実施形態において、パスの抵抗特性は、時間と共に変化する。例えば、ユニットの抵抗は、エネルギーがパスを流れるたびに減少し得る。したがって、パスは、経験されたフローの履歴のメモリを含み得る。パスを流れたフローの過去の履歴は、現在のフローに対する抵抗に影響を与え得る。他の実施形態において、抵抗は、特定のユニットの一定の特性として定義され得る。
各ユニットは、その「閾値」として知られる特性を有する。閾値は、ユニットの演算子を活性化するために必要とされる衝撃の数および/または量を量化する。いくつかの実施形態において、単一の「衝撃」は、ユニットを活性化し、ユニットは、その結果として、おそらくは無制限の数の「宛先ユニット」に衝撃を与える。他の実施形態において、演算子を活性化し、その条件パスの全てに沿った衝撃を開始するために、複数の衝撃が必要と
される。1つの実施形態において、複数の衝撃は、設定された期間内に到達しなければならない。別の実施形態において、複数の衝撃は、衝撃の累積量がユニット活性化閾値に到達するか、または超過するまで累積される。
ユニット・モデルを使用するシステムの1つの例示的な実施形態は、図1においてシステム100として示される。データ・バス102は、プロセッサ108と、入力デバイス102と、出力デバイス104と、通信インタフェース106と、メモリ110とを相互接続する。メモリ110は、本明細書において説明される方法を実装するためにプロセッサ108によって使用される様々なアイテムを記憶し、オペレーティング・システム112と、ユニット・モデル・モジュール114と、モデル視覚化モジュール116と、モデル・エディタ・モジュール118と、モデル観察モジュール120と、動作モジュール122と、ダイナミクス・モジュール124とを含み、これら全てはユニット・モデル・ストレージ126へのアクセスを有する。
多くの相互接続された情報ユニットを備えるネットワークにおいて、活性化され得る取り得る演算子の数は無制限である。これが生じるとすれば、多くの新たなユニットが総セットに対して追加される。本発明の様々な実施形態のうちのいくつかに従って、有限のエネルギーおよび抵抗の概念を適用することは、取り得る活性化の数を制限する。
ユニット・モデルの別の重要な側面は、フローと名付けられる。モデルのこの側面をダイナミクスと称する。「フロー」は、活性化されたユニットの軌跡として、および、これらのユニットを接続するパスとして定義される。フロー・パスに含まれるユニットは、フローの外部のユニットと異なる。なぜなら、含まれる各ユニットは、そのユニットを通過する何らかの動的な特性のフローを経験しているためである。この動的な特性を「エネルギー」と呼ぶ。そのため、十分なエネルギーを用いて衝撃を与えられるユニットは、その演算子を活性化するものとする。いかなるユニットも、条件関係の先行条件となり得る。エネルギーを印加する動力(dynamic)は、どのように結果が活性化されるかを説明する。条件関係は、条件から結果へエネルギーを伝達するためのパスとして動作する。
様々な実施形態において、ユニットは、衝撃を受け取った後に、衝撃からのエネルギーを使用することによって動作して、ユニット演算子を実行する。ユニットが、1以上の宛先ユニットへのパスを有する場合、残りのエネルギーは、1以上の宛先ユニットに対し向けられる。宛先ユニットが、それら自体の宛先ユニットへのパスを有し、演算子によるエネルギーの消費およびパス上での抵抗損失を乗り越えた後に残っているエネルギーを有する限り、エネルギーのこの伝達は継続する。ユニット・モデルの任意の特定のインスタンス化において、多くの取り得るエネルギー・フロー経路が存在する。特定のドメインまたはユニバースは、エネルギー・フローが抵抗に直面するにつれてエネルギーが浪費される異なる方法を有し得る。
図6を参照すると、フロー・チャートは、本発明の一実施形態に係る、単一のユニット内での衝撃の処理を説明する。図6は、本発明の1つの実施形態に係る、単一のユニットにおけるフローの処理を説明する。ただし、特定のドメインまたはユニバースは、フローを別様に処理し得る。実際的なモデルは、複数の接続されたユニットを備えるため、全てのユニットを通じて同様のプロセスを反復することが必要である。処理は、601において開始し、決定602へ進む。決定602は、考慮中のユニットが他のユニットから衝撃または何らかのエネルギーを受け取ったかを決定する。602が偽(いいえ)である場合、ユニットの処理は611において終了する。602が真(はい)である場合、処理は決定603へ続く。
いくつかの実施形態において、衝撃エネルギーの量は、ユニットを活性化するための閾
値を超えなければならない。決定603は、衝撃エネルギーがユニットを活性化するのに十分であるかを決定する。決定603が偽(いいえ)である場合、ユニットの処理は611において終了する。603が真(はい)である場合、処理は604へ続く。
604において、ユニット演算子が活性化される。次いで、605において、残りのエネルギーを決定するために、消費エネルギー損失が適用される。いくつかの実施形態において、ユニットの活性化は、入力からのエネルギーを使用し、または浪費する。他の実施形態において、演算子の活性化が原因でエネルギーが損失されることはなく、全ての入力エネルギーが、アタッチされたユニットへの伝搬のために残る。さらに他の実施形態において、エネルギーは、ユニットが活性化された場合に追加される。
606において、抵抗調整が適用される。いくつかの実施形態において、ユニットの活性化は、その抵抗を減少させ、または、その閾値を減少させ、したがって、そのユニットが後続のフローに含まれる可能性を高める。他の実施形態において、ユニットの活性化は、その閾値または抵抗を増加させ、そのユニットが将来のフローに含まれる可能性を低くする。
604および605において処理が完了すると、ユニットは、接続された他のユニットへ渡すためのエネルギーを有し得る。606において、他のユニットが接続されているかが決定される。ユニットが接続されていない場合、処理は611において終了する。少なくとも1つの他のユニットが接続されている場合、決定606は真(はい)であり、処理は607へ続く。
607において、到来するフローの残りのエネルギーは、出力接続間で分配される。1つの実施形態において、エネルギーは、出力接続間で等しく分けられる。別の実施形態においては、複数の出力接続が存在する場合、分配アルゴリズムが、どのようにエネルギーが分けられるかを決定する。分配アルゴリズムは、特定の基準を満たす関係を有するパスへのフローも制約し得る。処理は611において終了する。
ユニット・モデルは、モデルにおいて使用される情報ユニットに変化を引き起こすために活性化され得る、いくつかのデバイスを有する。様々な実施形態において、方法は、こうしたデバイスを使用して、望ましい結果を追求し、または望ましくない結果を回避する。特定のドメインまたはユニバースは、多様な条件に基づいて、ドメインまたはユニバース自体の望ましい結果の評価基準を有し得る。
前述のセクション[098]から[0103]は、ユニットが衝撃を受け取った後のアクティビティを説明した。原理上は、無限の数のユニットが、同時に衝撃を受け取り得る。理論上、これは完全に容認可能である。しかしながら、実際には、利用可能なハードウェアが、これらの衝撃をシステムがどのように管理するかを指図する。これが達成され得る数多くの手段が存在する。直列型システムの場合、このシステムの1つの実施形態は、エンジンによって系統的に上から下へ辿られる衝撃スタックのセットを採用する。別のユニットへ衝撃を与える演算子を持つユニットは、スタックのこのセット内のスタックのうちの1つに対して衝撃を内部的に追加し得る。スタックは、衝撃のリストである構造である。衝撃は、衝撃のエネルギーに関連する特性とパス特性とを有する構造である。パスは、衝撃源、宛先、および、2つを接続し、エネルギーが流れる関係を定義する。スタック、衝撃およびパスは、エンジンまたはユニット・モデルによって実装され得る。衝撃は、エネルギーが流れるパスによって定義される。
衝撃は、現在のスタックの終わりに追加されてもよく、または、衝撃が追加される新たなスタックが作成されてもよく、新たなスタックは、現在のスタックに設定される。その
ため、ターゲット・ユニットへのフローは、先行するスタックがその処理を再開する前に完了する。複数のフローが並行して、ただし、直列的に時間管理されるように、動作し得ることが留意されるべきである。ユニットを有する接続へエネルギーが分配される手法は、スタックによって実装され得るプロセスである。
>および!>によって接続されるユニットのセットを考慮されたい。ユニットの真理値が真である場合、フローは、>パスを進み、偽である場合、!>パスを進む。>および!>関係以外の全てのパスについての抵抗は、無限に設定される。そのため、フローは、それらのパスのうちの1つを進むことが保証され得る。同様のパスおよび抵抗設定を有する多くのユニットをまとめて設置することによって、フローは、ユニットの所定のセットを通過するように方向付けられる。こうしたユニットは、マッピング、条件決定、ユニット作成/削除、ユニット変更、実インタフェース操作、および動的なパス抵抗設定などの機能を実行する演算子を有する。ユニットのこのセットは、プロセスと称される。
図8の一般問題解決法(General Problem Solver)は、等式によってその値が決定される未知の量を決定するために使用されるアルゴリズムを具現化する例示的なプロセスである。GPS801は、既知の量から未知の量を計算するために、802および803においてドメインの基本的な原理を適用し、必要な計算の全てを採用する。GPS801は、特定のモデルを基準として用いずに設計されてもよく、そのため、ユニット・モデルによって説明される任意のドメインに対して適用され得る。GPS801は、前述されたように全ての原理についてループし、そのプロセスに衝撃を与えることによって原理を適用する。適用すべき原理がそれ以上存在しない場合、ループ動作は、偽の真理値を有し、ボックス805において開始する「解の変数(Solve Variable)」ユニットへのパスに従う。ボックス805は、各等式がユニットであり、その要素が特定のシーケンスにおける数、変数および他の算術記号を表現する、等式のリストについてループする。等式は、その演算子が作成演算子であるユニットに衝撃を与えることによって作成され得る。等式要素は、その時に設定されても、または後で設定されてもよい。等式リストは、その要素が等式のリストとなるユニットである。等式は、工程807において、Solve Variableが等式(Eq)要素のメンバーであるかを確認するために交差演算を行うことによって、解の変数を含むかを確認するためにチェックされる。Solve Variableが、等式要素のメンバーである場合、フローは、工程808において、変数についての等式を解くプロセスに衝撃を与える次のユニットへ進む。次に、等式は、工程809において評価され、工程8010において出力に成功する。Solve Variableが存在しない場合、プロセスは、工程806において失敗に終わる。
目標指向のフローは、所望の結果を達成し、または目標基準を満足するフローである。1つの実施形態において、目標基準は、開始ユニットのセットおよび終了ユニットのセットとして表される。他の実施形態において、目標の開始ユニットおよび終了ユニットは、状況または状態として表され得る。モデルの特定のインスタンス化内で終了ユニットを開始ユニットへ接続する経路およびユニットを見つけるために、様々な方法が使用され得る。
ユニット・モデルの重大な特徴は、目標指向のフロー、および、モデルのインスタンス化において目標を満足するフローを構成するユニットおよび接続の識別である。関連する概念は、「方向付けられたフロー」である。方向付けられたフローは、目標と、フローが開始するドメインと、結果として得られるフローとを備える。目標指向のフローの例示的な適用例は、発見、一般問題解決、および仮説のテストを含む。「仮説」は、既知の知識ユニットから、知識ユニットの新たなクラスを展開するプロセスである。
様々な実施形態において、ユニット・モデルのインスタンス化は、フィードバック、規制および観察を呈する。例として、S1およびS2と表される2つの状況を考慮されたい。一定の情報ユニットは、S1およびS2の両方のメンバーである。S2は、S1におけるユニットのうちのいくつかを含む。いくつかのS1ユニットは、S2における1以上のユニットの演算子のターゲットである。したがって、S2は、S1をモニタし、所定の基準に応じてS1のコンテンツを変更し得る。この機能は、自己観察と、フィードバックを通じた自己規制とについての基礎を提供する。この概念は、S1−>S2−>S3−>S1などの、2つよりも多くの状況に関与する、より複雑な規制シナリオへ拡張され得る。
先行する議論は、相関が一般にはおそらく因果関係を示すという仮定の下で、演繹法の一般的な原理に基づいて、望ましいものを予測し、説明し、追及するためのモデルの使用を説明する。しかしながら、ユニット・モデルは、さらなる有益な利点を有する。モデルは、知識を発見し、経験を反映し、一般化を行うために使用され得る。
モデルは、その経験の情報の中から新たな知識を見つける際、または目標に到達する際の効率も最大化し得る。効率の最大化は、ダイナミクスの観点から述べられ得る。説明されたように、各フローはエネルギーに依存する。取り得るフロー・パスは、フローを生成するために利用可能なエネルギーを超過し得る。したがって、目標を達成するために必要とされるエネルギーを低減することが望ましい。
ユニット・モデルのインスタンスを作成し、または拡張するための多くの手法が存在する。議論されたように、観察は、ユニット・モデル・インスタンスを追加するために使用され得る。いくつかの実施形態においては、観察からよりもむしろ、別の形式の情報から、ユニット・モデルのインスタンスを作成し、または拡張することが望ましい。1つの実施形態において、このような変換は、システムのダイナミクスにおける一般モデル化プロセス(GMP:General Modeling Process)の適用によって達成される。GMPは、知識を共通の形式からユニット・モデル形式へ動的に変換するための方法のセットである。GMPは、特定のドメインを展開するための一般化された手法である。
図7を参照すると、図7は、GMP変換の工程の一実施形態を説明するフロー・チャートを示す。図7に示される工程は、一般的であり、特定の実施形態のニーズ、ドメイン、または必要とされるデータ変換に対して適合され得る。工程は、異なる順序で実行されてもよく、または、いくつかの工程が、必要に応じて省略されてもよい。
図7では、工程701において、ドメインが識別され、現実の世界または物理的な世界から関連データを収集し、作成されるモデル・インスタンスの範囲を決定する。工程702においては、工程701において識別されたドメインについての目標が識別される。目標は、望ましい情報ユニットの観点から、または、1つもしくは複数のプロセスの観点から識別され得る。工程703において、工程701において識別されたドメインに適当なクラスおよび属性のタイプの識別を含む、必要とされるオブジェクトが識別される。704において、工程703において識別されなかった、ドメイン内の一意なアイテムが識別され、キャプチャされる。
工程705において、制約を含めて、リストおよびカプセル化が識別される。工程706において、同様のオブジェクトは、工程703において識別されたクラス・タイプに対して関連付けられる特定のクラスを識別するためにグループ化される。同様に、工程707において、各クラスの定義のために必要とされる特定の属性が識別される。
工程708において、原理および条件関係は、識別され、定義されたドメイン・クラス
に従って識別される。工程709において、必要とされるプロセスが識別される。典型的には、こうしたプロセスは、ドメインについて定義された目標、オブジェクト、およびクラスから導かれるが、クラス属性に対して関連付けられてもよい。
実際にユニット・モデルを実装するための多くの手法が存在する。1つの実施形態において、ユニット・モデルは、例えば、紙および描画装置を使用して、手動で実施される。少数のユニットまたは関係を超過するモデルの任意のインスタンスにおいては、本明細書における特徴および説明に係るモデルのユニットを記憶し、処理するためにデジタル・コンピュータを使用することが実際的である。したがって、1つの実施形態において、ユニット・モデルは、デジタル・コンピュータがモデルを記憶し、実行することを可能とする、データ構造のセット、アルゴリズムのセット、およびプログラムされた機能のセットとして提供される。別の実施形態においては、アナログ・コンピュータが使用される。別の実施形態において、アナログ・コンポーネントとデジタル・コンポーネントとの両方を組み込んだハイブリッド・コンピュータが使用される。1つの実施形態において、ユニット・モデルのために特に設計されたハードウェア・コンポーネントが、モデルを記憶し、または実行するために構築される。
1つの実施形態において、コンピュータ実装は、視覚化アプリケーションを含む。本明細書において説明されるように、ユニット・モデルは、データを視覚的に表示し、組織化するために使用され得る。視覚化アプリケーションは、コンピュータ・ディスプレイまたはプリンタ上でデータを見る機能を提供する。1つの実施形態において、コンピュータ実装はエディタを含む。ユニット・モデル・エディタは、ユーザがモデルの要素を取り出し、検査し、変更し、追加し、記憶し、文書化することを可能とする。エディタは、視覚化アプリケーションと同様であるが、モデルに対して変更を加えるための機能を追加する。したがって、エディタは、知識ドメインの一部または全体を作成し、変更し、維持し、または削除するために使用され得る。エディタは、テキスト記述またはグラフィック表示を使用して、モデルの要素を編集するように設計され得る。
別の実施形態において、コンピュータ実装は、観察モジュールを含む。観察モジュールは、ユニット・モデルにおけるユニットを形成するためにイベントを自動的に処理し、結果として得られるモデルを記憶する。イベントは、任意のソースから、例えば、データ・ファイル、データ・ネットワーク接続、シミュレータ、リアル・タイム・モニタから、または、外部の計装および測定装置から取得され得る。
1つの実施形態において、コンピュータ実装は、モデルにおける情報ユニットに対して作用するための演算子モジュールを含む。演算子モジュールは、条件付き関連付け(conditional association)、因果関係の識別、値の割り当て、編集、自己観察、衝撃開始、衝撃抵抗、閾値決定、および一般化を含む動作を実行し得る。演算子モジュールは、データの要素間の関係を発見し、一般化するためのメカニズムを含み得る。
1つの実施形態において、コンピュータ実装は、他のモジュールの相互作用を調整し、モデルの要素のフローを制御するための動的エンジン・モジュールを含む。1つの実施形態において、コンピュータ実装は、永続ストレージ内で、例えば、磁気テープ、回転ディスクまたは光学式ストレージ上で、モデルを記憶し、取り出すための回路を含む。1つの実施形態において、本実装は、データベース内にモデルを記憶し、このデータベースからモデルを取り出すためのインタフェースを含む。信頼性、冗長性、および大量のデータを収容するための能力などの利点を提供する、多くのデータベース・プログラムが利用可能である。1つの実施形態において、複数のアプリケーションは、情報モデラー・ツールセットまたはワークベンチ内にインテグレートされる。インテグレートされたツールセット
は、ユーザがモデルの機能を制御し、操作し、選択的に実行することを可能とするためのユーザ・インタフェースを含む。
本明細書における特徴および説明に従って実装され得る、多くのコンピュータ・アプリケーションおよびツールが存在する。本明細書における例示的な実施形態は、あくまでも例に過ぎず、包括的または限定的なものとしてみなされるべきではない。本明細書における特徴および説明の1つの実施形態において、ユニット・モデルのコンピュータ実装は、特徴が外部のコンピュータ・プログラムによって呼び出され得る、コンピュータ機能のセット、オブジェクトのセット、サブルーチンのセット、またはモジュールのセットとして提供される。これは、ユーザが、ユニット・モデル・アクセス、操作および実行を実装するために必要とされる機能の全てをコーディングせずに、ユニット・モデル実装を別のコンピュータ・プログラム内へ組み込むことを可能とする。
本明細書における特徴および説明は、多種多様なドメインをモデル化する際に有益である。本明細書における特徴および説明の適用例のいくつかの例示的な実施形態およびインスタンス化は、図および関連付けられた説明において例示される。ユニット・モデルの特徴の全てが、特定のドメインのモデル化において採用される必要があるわけではないことが理解されるべきである。その代わりに、モデルは、必要に応じて採用され得る、特徴およびオプションの豊富なセットを提供する。同様に、モデル機能のいくつかの側面は、モデル自体に対する変更なしに、特定のドメインに一致するように適合され得る。
例えば、抵抗、ダイナミクス、およびフローの側面において、各ドメイン・モデルは、異なる特徴を必要とし得る。いくつかの実施形態において、フローのエネルギーは、エネルギー出力と浪費されたエネルギーとの合計が、システムへ投入されたエネルギーと等しくなるように保存される。他の実施形態において、いくつかのユニットは、伝搬中にエネルギーを再生し、または増幅する。特定のドメインまたはユニバースは、抵抗、ダイナミクスおよびフローに対して適用される規則を決定する。
ここで、図3Aを参照すると、閉鎖システムにおけるポイント・オブジェクトの運動学のドメインに対して適用される本発明の一実施形態が図示される。これは、物理的なシステムの特徴をキャプチャするためのユニット・モデル機能を例示する。302において、最上位のシステム・クラスが示されている。クラス302は、様々な属性を有する。全ての属性が必ずしも図に示されるとは限らない。クラス302の例示的な属性は、名前属性303、object_list属性304、および調整システム属性305として示される。クラス302は、プロセス・リスト306とも関連付けられる。
いくつかの実施形態において、カプセル化である属性は、タイプ・ユニット、クラス・ユニット、および制約リスト(「CList」)・ユニットに対して関連付けられる。したがって、図3Aをさらに参照すると、object_list属性304は、object_listタイプ・アトム307、object_listクラス・アトム308、およびobject_list CListアトム309に対して関連付けられる。クラス・アトム308は、1以上のクラス・インスタンスに対して関連付けられ得る。ポイント・オブジェクト・クラス310は、クラス308に対して関連付けられる、1つのそのようなインスタンスである。
ここで、図3Bを参照すると、図3Aからの例が続いている。図3Aからのポイント・オブジェクト・クラス310は、例示的な関連付けられた属性と共に示されている。属性は、名前320、変位機能321、速度機能322、加速機能323、インスタンス324、および遷移328を含む。ポイント・オブジェクト・クラス310は、プロセス・リスト332に対しても関連付けられる。これらの属性およびプロセスの各々は、ポイント
・オブジェクト・クラス310によって定義されるポイント・オブジェクト・モデルに対して特性または機能を追加する。
インスタンス属性324は、この例示的な実施形態におけるモデル内のポイント・オブジェクトのインスタンスのカプセル化である。インスタンス属性324は、インスタンス・タイプ325、インスタンス・クラス326、およびインスタンスCList327に対して関連付けられる。同様に、遷移属性328は、遷移タイプ329、遷移クラス330、および遷移CList331に対して関連付けられる。
ポイント・オブジェクト・クラス310は、プロセス・リスト332を通じて、様々なプロセスに対して関連付けられる。2つの例示的なプロセスが示される。プロセス333は、変位の時間導関数としての速度の計算のためのプロセスを定義し、プロセス334は、速度の時間導関数としての加速度の計算のためのプロセスを定義する。
ポイント・オブジェクト運動学の例示的な実施形態は、図3Cへ続く。(図3Bからの)遷移クラス330は、インスタンス化されたポイント・オブジェクト遷移クラス340と共に示される。クラス340のいくつかの関連付けられた属性が示される。属性は、初期インスタンス341、最終インスタンス342、変位変化343、時間変化344、速度変化349、および加速度変化350を含む。クラス340は、プロセス・リスト345に対して関連付けられる。プロセス・リスト345は、3つのプロセスに対して関連付けられる。プロセス346は、変位変化の計算のためのプロセスを定義する。プロセス347は、速度変化の計算を定義する。プロセス348は、加速度変化の計算を定義する。
ポイント・オブジェクト運動学の例は、図3Dへ続く。図3Dにおいて、図3Bからのインスタンス・クラス326は、モデルの観点から、さらに説明される。クラス326のインスタンスは、ポイント・オブジェクト・インスタンスとして示される。インスタンス360のいくつかの属性は、ラベル361、時間362、速度363、加速度364、および変位365を含めて示される。インスタンス360は、プロセス・リスト369も含む。変位属性365は、関連付けられたアトム変位タイプ366、アトム変位クラス367およびアトム変位制約リスト368を有するカプセル化である。
ポイント・オブジェクト運動学の例示的な実施形態は、図3Eにおいて続く。図3Dからの変位クラス・アトム367は、モデルの観点から、さらに説明される。ベクトル・クラス370は、変位クラス367の一要素である。ベクトル・クラス370は、属性調整システム371、属性デカルト372、属性極373、および属性球面373に対して関連付けられる。ベクトル・クラス370は、そのプロセス・リスト375に対しても関連付けられる。
例示的なポイント・オブジェクト運動学の実施形態のさらなる詳細は、図3Fに示される。図3Fは、デカルト属性372のコンポーネントおよび関連付けを示し、図3Gは、極属性373のコンポーネントおよび関連付けを示す、これら両方は図3Eからのものである。図3Fにおいて、デカルト属性372は、デカルト・ベクトル・クラス381に対して関連付けられるデカルト・クラス380に対して関連付けられる。デカルト・ベクトル・クラス381は、プロセス・リスト385、ならびに、X属性382、Y属性383およびZ属性384に対して関連付けられる。図3Gにおいて、極属性373は、極ベクトル・クラス391に対して関連付けられる極クラス・アトム390に対して関連付けられる。極ベクトル・クラス391は、R属性392、シータ属性393、およびZ属性394に対して関連付けられる。
ここで、発見を行うための1つのアプローチが説明される。図4A−1は、会社につい
てのクラス構造を説明する。この構造は、購入、契約および売上などの、会社の様々な側面についてのデータを追跡する。我々は、データの1つのセットと、データの別のセットとの間に相関が存在するかを知りたいと望む。こうした相関は、一般的には、関連付け規則と称され、知識発見およびデータ・マイニングにおける標準的な構造である。
ここで、図4A−1および図4A−2を参照すると、本発明の一実施形態は、ビジネスの動作のドメインに対して適用されたものとして図示されている。これは、人物または会社などのエンティティを表現するためのユニット・モデルの能力を例示する。これは、雇用主/従業員および契約などのエンティティ間の抽象的な関係の表現も例示する。2つの最上位のクラス、すなわち、図4A−1におけるクラス会社400と、図4A−2におけるクラス会社売上450とが示される。クラス会社400は、例示的なドメインをモデル化する際に有益な属性を有する。属性名401、属性購入402、属性契約403、属性従業員404、属性レンタル405は全て、クラス会社400の側面である。会社クラス400は、プロセス・リスト406に対しても関連付けられ、プロセス・リスト406は、例示的なプロセス経費スケジュール作成407を含む。プロセル407は、図4Fにおいてさらに詳述される。
図4A−2をさらに参照すると、会社売上クラス450は、属性名451および属性予測売上452に対して関連付けられる。クラス450は、プロセス・リスト453に対しても関連付けられる。図4B、図4C、図4D、および図4Eは、図4A−1および図4A−2において紹介された選択された要素の定義を拡張することを通じて、ビジネス動作例のさらなる詳細を提供する。
図4Bは、図4A−1において定義される購入属性402の詳細を提供する。購入属性402は、購入タイプ410、購入クラス411、および購入CList412に対して関連付けられる。購入クラス411は、説明414および支払415の属性を有する購入クラス413に対して関連付けられる。
図4Cは、図4A−1において定義される契約属性403の詳細を提供する。契約属性403は、契約クラス・アトム420に対して関連付けられる。契約クラス・アトム420は、サービス契約クラス421に対して関連付けられ、サービス契約クラス421は、説明422、開始日423、月額424、および支払425の属性を有する。クラスサービス契約421は、プロセス・リスト426に対しても関連付けられる。
図4Dは、図4A−1において定義された従業員属性404の詳細を提供する。従業員属性404は、従業員クラス・アトム430に対しても関連付けられる。従業員クラス・アトム430は、従業員クラス431に対して関連付けられ、従業員クラス431は、名前432、開始日433、給与434、および支払435の属性を有する。クラス従業員431は、プロセス・リスト436に対しても関連付けられる。
図4Eは、図4A−2において定義された予測売上属性452の詳細を提供する。予測売上属性452は、予測売上クラス・アトム460に対して関連付けられる。予測売上クラス・アトム460は、予測売上クラス461に対して関連付けられ、予測売上クラス461は、説明462、単位数463、開始日464、終了日465、単価466、正味額467、および支払468の属性を有する。クラス予測売上461は、プロセス・リスト469に対しても関連付けられる。
ここで、図4Fを参照すると、図4A−1からの経費スケジュール作成プロセス407の詳細が提供されている。プロセス407は、工程または動作のシーケンスから構成され、プロセスの各工程は、それ自体が動作のシーケンスであり得る。したがって、ユニット
・モデルを使用して、複雑なプロセス、階層化されたプロセス、および多層的なプロセスを説明することができる。図4Fを参照すると、プロセス407は、5つの工程470、471、472、473、および474を備える。次に、プロセス470は、3つの工程475、476、および477を備える。プロセス471は、2つの工程478および479を備える。プロセスは、詳細な動作、ループ、または条件付き決定も含み得る。プロセス475は、ループ480を含む。プロセス476は、ループ481を含む。プロセス477は、ループ482を含む。
図11は、図4Fのプロセス477を定義する。プロセスは、工程1101において4つのパラメータを有する。変数[CurrentDate]は、工程1102において定義され、工程1103において[BeginDate]パラメータに設定される。[CurrentDate]が、工程1104において[EndDate]未満である場合、工程1105において、支払クラスのインスタンスを作成する。新たなクラス・インスタンスは、コピー・ユニットのターゲットである。工程1106において、ターゲットは、{New Payment}として識別される。中括弧は、要素が別のユニットのターゲットを参照していることを示す。支払インスタンスの属性は、工程1107において設定され、[CurrentDate]は、工程1108において30日間だけインクリメントされ、支払インスタンスは、工程1109において[Payment]に対して追加される。
図5A〜図5Eは、白黒画素のアレイにおけるオブジェクトの識別のドメインに対して適用される本発明の一実施形態を例示する。これは、データにおけるパターンおよび関係を発見するためのモデルの機能を例示する。図5Aにおいて、デカルト画素アレイ・クラス501は、最上位に存在し、ピクチャ・エレメントまたは画素の2次元アレイを備える。アレイ501は、画素属性502、行属性503、row_count属性504、列属性505、column_count属性506、ブロブ属性507、形状属性508、およびオブジェクト属性509を含む、いくつかの関連付けられた属性を有する。プロセス・リスト510も、クラス501に対して関連付けられる。
図5B−1は、図5Aにおいて既に定義された画素属性502のさらなる詳細を提供する。画素属性502は、画素クラス・アトム520に対して関連付けられる。画素クラス・アトム520は、画素クラス521に対して関連付けられ、画素クラス521は、行522、列523、および値524の属性を有する。
図5B−2は、図5Aにおいて既に定義された行属性503のさらなる詳細を提供する。行属性503は、行クラス・アトム525に対して関連付けられる。行クラス・アトム525は、行クラス526に対して関連付けられ、行クラス526は、画素527、および位置528の属性を有する。モデルのインスタンス化における任意のクラスは、図示されない多くの属性およびサブクラスを有し得る。同様に、属性は、モデルのインスタンスを調整し、拡張し、または維持することの一部として、または、モデル化されているドメインにおける変化に応じて、追加され、もしくは変更され得る。例えば、行属性503の詳細が示されているが、列属性505は同様の属性を有する。したがって、例示的な実施形態の詳細は、包括的であることよりもむしろ、モデル機能の例示となることを意図される。
図5Cは、図5Aにおいて既に定義されたブロブ属性507のさらなる詳細を提供する。ブロブ属性507は、ブロブ・クラス・アトム530に対して関連付けられる。ブロブ・クラス・アトム530は、ブロブ・クラス531に対して関連付けられ、ブロブ・クラス531は、絶対画素532、差分画素533、シーケンス534、線535、タイプ536、および形状537の属性を有する。ブロブ・クラス531は、関連付けられるプロ
セス・リスト538も有する。
図5Dは、クラス501によって使用されるプロセスを例示する。図5Aにおいて、クラス501は、プロセス・リスト510に対して関連付けられるように示された。図5Dにおいては、プロセス・リスト510の要素である、いくつかのプロセスが示される。プロセス540は、画素アレイを作る。プロセス541は、画素アレイをボタン・アレイとして示す。プロセス542は、選択されたボタンを得る。プロセス543は、ブロブを作成する。プロセス544は、基本形状をマッピングする。プロセス545は、複雑な形状をマッピングする。
図5Eは、ブロブ・クラス531によって使用されるプロセスを例示する。図5Cにおいて、クラス531は、プロセス・リスト538に対して関連付けられるものとして示された。図5Eにおいては、プロセス・リスト531の要素である、いくつかのプロセスが示される。プロセス550、551、552、553、および554は、クラス531によって必要とされるプロセスを実行する。
モデルは、一般には、多数の実際の状況/観察された状況を説明するように設計され得る。モデルにおいて実際に説明される、全ての実際の状況の複合和は、データ・ドメインと称される。関係は、データの一定のセットと、データの他のセットとの間に存在し得、おそらく、データのこうしたセットは全て、何らかの数値範囲における値を有する。ユニットまたはユニットのセットは、ソースおよびターゲット・ドメインとして識別され得る。ソースをターゲット・ユニットへリンクする全ての理論上取り得るマップ工程のセットを見つけることは、当業者にとっては簡単なプロセスである。そのため、本発明のシステムの実施形態は、新たな知識を自律的に発見し得る。そのため、こうした原理、および原理が適用されるクラスおよび属性までも発見することが、ユニット・モデルに対して要求され得る。このプロセスは、発見と称される。知識発見およびデータ・マイニングを含む、他の共通の名前が、このプロセスについて存在する。
図9のフロー・チャート図は、発見プロセスの取り得る実装を説明する。発見プロセスは、プロセス発見に衝撃を与えることによって開始される(工程901)。工程902において、ドメインを説明するパスの全てを表現するユニットのリストを作成するプロセスは衝撃を与えられる。各ユニットの要素は、[source]関係[destination]となる。次いで、プロセスは、工程903において衝撃を与えられて、マップのセット(マップ:_1、_2、_3)を作成する。プロセスは、例えば、_1 関係1 _2、[source]_1 _2等、潜在的な可能性ごとにマップを作成し得る。マップ作成903は、概念リスト内のあらゆる概念に_1 関係 _2という形式のマップを作成するためのプロセスを定義する。「_1 _2 _3」マップは、各概念に対して適用され、次いで、新たなユニットが作成され、その要素は、!_1 _2 !_3に設定される。この!は、要素が、_1のコンテンツを使用することに対して、_1として定義されることを示す。マッピング・プロセスの実装は、工程1005において既存のマップに対して付加される新たなマップとして、工程1003における各概念を、工程1004において各概念への新たな参照という結果にして、工程1002において概念のリストについてループすることによって、マップを作成する工程1001を示す図10に示される。図9に戻ると、工程904において、マップの組み合わせの全て、またはマップの組み合わせの全てのうちのサブセットを、先例と結果との関連付けへとまとめるプロセスが衝撃を与えられる。先例、結果およびメトリックの属性を有する規則クラスは、コピーされる。工程905において、プロセスは、規則をテストするために衝撃を与えられる。テスト・プロセスは、規則についてのメトリックの任意のセットの追跡を行い、その結果を規則クラス・インスタンスのメトリック属性の属性内に記憶し得る。
説明されたプロセスのバリエーションがそれらをどのようにより一般的で複雑なものにするかは、簡単に考え出される。例えば、規則の先例の数は、1よりもはるかに大きくなり得、マップにおける仮想ユニットの組み合わせは、より多数で、一般的となり得る。
特定のドメインまたはユニバースに加えて、本発明のシステムは、特定のドメインに対する制約なしに実装され得ることも予期される。したがって、1つの実施形態において、経験される全ての状況のカプセル化と、全ての喜び値および痛み値のカプセル化とを備えるオブジェクトがインスタンス化される。このオブジェクトは、「self」と称される。
1つの実施形態において、Selfオブジェクトを観察し、Selfオブジェクトを目標へ向けて規制するS_selfと呼ばれる状況がインスタンス化される。1つの実施形態において、目標は、喜びを探し求め、痛みを回避することである。この目標は意識ある生物の一次的動因を反映すると観察され得る。刺激および場合により他の目標の追加を含むさらなる改善により、より複雑な振る舞いが生成され得る。したがって、この実施形態により、人工知能の本質および動作をさらに研究することが可能となる。
本発明の一定の実施形態が上述されてきたが、説明された実施形態は、あくまでも例に過ぎないことが理解されるであろう。したがって、本発明は、説明された実施形態に基づいて限定されるべきではない。むしろ、本明細書において説明された発明の範囲は、上記の説明および添付の図面と併せて検討される際に、下記に続く特許請求の範囲に照らしてのみ限定されるべきである。