(57)【要約】外部化可能推論コンポーネントを管理する技術が提供される。この技術は、分離したコンポーネントからの推論の動的構造化、及び、動的に構造化可能な推論を制御するためのデータの外部化を可能にする。実現される１つの重要な利点は、種々の外部化された推論コンポーネントを混合し、マッチングして、新しい推論を形成できること、又は、言い換えれば、種々のコンポーネントを新しい手法で組み合わせる（再使用する）及び実行することによって新しい知識を推論できることである。多くの特殊な手法で結合して異なるアプリケーションの必要性に適合させることができるプラグ可能な推論コンポーネントが提供されることになる。このことは、推論コンポーネントが独立して開発されること、及び、高い移植性をもつことを可能にする。
2006511866.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読コードをコンピュータ・システムに組み込むことを含む、コンピュータのインフラストラクチャを構築する方法であって、
前記コードが前記コンピュータ・システムと組み合わされて、
プログラムの推論側面を識別し、
前記識別された推論側面を、外部化可能な推論コンポーネントとして与える、
ことが可能である、
ことを特徴とする前記方法。
【請求項２】
前記与えるステップが、外部化されたアルゴリズム及びデータを前記推論コンポーネントの各々と関連付けることを含む、請求項１に記載の方法。
【請求項３】
前記データが永続性メモリに格納される、請求項２に記載の方法。
【請求項４】
前記識別された推論側面が、トリガポイント、短期ファクト、推論ルール、推論エンジン、静的変数マッピング、センサ、エフェクタ、長期ファクト及び結論の少なくとも１つを含む、請求項１に記載の方法。
【請求項５】
前記推論コンポーネントが、トリガポイントコンポーネント、短期ファクトコンポーネント、推論ルールセットコンポーネント、推論エンジンコンポーネント、静的マッピングコンポーネント、センサコンポーネント、エフェクタコンポーネント、長期ファクトコンポーネント及び結論コンポーネントの少なくとも１つを含む、請求項１に記載の方法。
【請求項６】
前記推論コンポーネントの各々が、推論コンポーネントによって提供されるデータの利用側、推論コンポーネントによって提供されるデータの供給側、及びこれらの組み合わせの１つである、請求項２に記載の方法。
【請求項７】
少なくとも１つのトリガポイント推論コンポーネントを少なくとも１つのアプリケーションと関連付けるステップをさらに含む、請求項１に記載の方法。
【請求項８】
トリガポイントが同期的に又は非同期的に動作する、請求項４に記載の方法。
【請求項９】
少なくとも１つの推論コンポーネントが、少なくとも１つの他の推論コンポーネントを利用するマスター推論コンポーネントである、請求項１に記載の方法。
【請求項１０】
少なくとも１つの推論コンポーネントが推論エンジンを用いる、請求項１に記載の方法。
【請求項１１】
少なくとも１つの推論コンポーネントが少なくとも１つの推論サブコンポーネントに編成される、請求項１に記載の方法。
【請求項１２】
前記編成が、アレイ、コレクション、ハッシュテーブル、イテレータ、リスト、パーティション、セット、スタック、ツリー、ベクトル、及びこれらの組み合わせの１つである、請求項１１に記載の方法。
【請求項１３】
少なくとも１つの推論コンポーネントは、少なくとも１つの推論サブコンポーネントから構成される、請求項１に記載の方法。
【請求項１４】
前記構成が、アレイ、コレクション、ハッシュテーブル、イテレータ、リスト、パーティション、セット、スタック、ツリー、ベクトル、及びこれらの組み合わせの１つである、請求項１３に記載の方法。
【請求項１５】
前記推論コンポーネントの各々が、固有の識別子、意図、名前、位置、フォルダ、開始時刻、終了時刻、優先順位、分類、参照、記述、ファイアリング位置、ファイアリングパラメータ、初期化パラメータ、インプリメンタ、レディフラグ、及びフリーフォームデータの少なくとも１つを有する、請求項２に記載の方法。
【請求項１６】
少なくとも１つの推論コンポーネントが、参照により少なくとも１つの他の推論コンポーネントと共有される、請求項１に記載の方法。
【請求項１７】
前記アルゴリズムの少なくとも１つが、推論コンポーネントの作成、推論コンポーネントの検索、推論コンポーネントの更新、及び推論コンポーネントの削除の少なくとも１つを実行する、請求項２に記載の方法。
【請求項１８】
前記アルゴリズムの少なくとも１つが、複数の推論コンポーネントによって共有される、請求項２に記載の方法。
【請求項１９】
前記アルゴリズムの各々が、トリガポイント実行アルゴリズム、データ戻しアルゴリズム、データ結合アルゴリズム、データ・フィルター・アルゴリズム、データ変換アルゴリズム、分類選択アルゴリズム、任意選択アルゴリズム、ラウンドロビン選択アルゴリズム、推論エンジン前置プロセッサ、推論エンジン後置プロセッサ、推論エンジンランチャー、データ受信アルゴリズム、データ送信アルゴリズム、データ格納アルゴリズム、及びデータ取り出しアルゴリズムの１つである、請求項２に記載の方法。
【請求項２０】
前記与えるステップは、推論コンポーネント管理機能を用いて推論コンポーネントを管理するものであり、前記管理は、作成、検索、更新及び削除動作を含む、請求項１に記載の方法。
【請求項２１】
前記推論コンポーネントの少なくとも１つは、複数の推論サブコンポーネントから構成される、請求項１に記載の方法。
【請求項２２】
前記構成は、静的に、動的に及びこれらの組み合わせの１つの状態において生じる、請求項２１に記載の方法。
【請求項２３】
前記構成は、推論コンポーネント管理機能を用いることにより生じる、請求項２１に記載の方法。
【請求項２４】
外部化されたビジネス・ロジックを与えるシステムであって、
アプリケーション・プログラム内の少なくとも１つの可変ポイントを識別するように構成された識別コンポーネントと、
前記外部化されたビジネス・ロジックにより識別された少なくとも１つの可変ポイントを与えるための外部化コンポーネントと、
を含み、
前記外部化されたビジネス・ロジックが推論コンポーネントを含む、
ことを特徴とする前記システム。
【請求項２５】
前記推論コンポーネントが、外部化されたアルゴリズム及びデータを含む、請求項２４に記載のシステム。
【請求項２６】
前記データを永続的に格納するように構成された永続性メモリコンポーネントをさらに含む、請求項２５に記載のシステム。
【請求項２７】
少なくとも１つの仮想マシンを用いて外部化されたアルゴリズムを実行するための実行コンポーネントをさらに含む、請求項２４に記載のシステム。
【請求項２８】
前記推論コンポーネントが複数の推論サブコンポーネントから構成される、請求項２４に記載のシステム。
【請求項２９】
前記構成が動的に生じる、請求項２８に記載のシステム。
【請求項３０】
前記構成が静的に生じる、請求項２８に記載のシステム。
【請求項３１】
前記構成が、一部は動的に、残りは静的に生じる、請求項２８に記載のシステム。
【請求項３２】
前記識別された少なくとも１つの可変ポイントは、トリガポイント、短期ファクト、推論ルール、推論エンジン、静的変数マッピング、センサ、エフェクタ、長期ファクト、及び結論の少なくとも１つを含む、請求項２４に記載のシステム。
【請求項３３】
マシン可読であり、マシン上で実行可能な命令プログラムを具体化して、複数の推論コンポーネントを管理する方法ステップを実行するプログラム・ストレージ・デバイスであって、前記方法ステップが、
プログラムの推論側面を識別し、
前記識別された推論側面を外部化可能な推論コンポーネントとして与える、
ことを特徴とする前記プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ソフトウェア・エンジニアリングに関し、より具体的には、外部化可能推論コンポーネントを指定、適用及び管理することを含む、外部化可能推論コンポーネントを用いるための技術に関する。
【背景技術】
【０００２】
推論データを外部化するための種々の体系が開発されてきた。「Ｓｙｓｔｅｍ  ｆｏｒ  Ａｕｔｏｍａｔｉｃａｌｌｙ  ａｎｄ  Ｔｒａｎｓｐａｒｅｎｔｌｙ  Ｍａｐｐｉｎｇ  Ｒｕｌｅｓ  ａｎｄ  Ｏｂｊｅｃｔｓ  ｆｒｏｍ  ａ  Ｓｔａｂｌｅ  Ｓｔｏｒａｇｅ  Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ  Ｗｉｔｈｉｎ  ａ  Ｆｏｒｗａｒｄ  Ｃｈａｉｎｉｎｇ  ｏｒ  Ｂａｃｋｗａｒｄ  Ｃｈａｉｎｉｎｇ  Ｉｎｆｅｒｅｎｃｅ  Ｃｙｃｌｅ」という名称のＬａｎｄｅｒｓによる特許文献１は、データベース内に永続的に格納されるオブジェクト及びルールデータを説明する。また、「Ｅｖｅｎｔ  Ｄｒｉｖｅｎ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍ  Ｗｉｔｈ  Ｒｕｌｅ−Ｂａｓｅｄ  Ａｐｐｌｉｃａｔｉｏｎｓ  Ｓｔｒｕｃｔｕｒｅ  Ｓｔｏｒｅｄ  ｉｎ  ａ  Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ」という名称のＭｏｏｒｅ他による特許文献２においても、推論情報が永続的に格納される。しかしながら、外部化可能推論コンポーネントの使用を開示している従来技術はない。
【０００３】
【特許文献１】米国特許第５，１３６，５２３号明細書
【特許文献２】米国特許第５，４４６，８８５号明細書
【特許文献３】米国特許出願第０９／９５６，６４４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これまで、複数の外部化可能推論コンポーネントを管理する方法が提供されていない。また、ビジネス・ロジックを与えるシステムが提供されていない。
【課題を解決するための手段】
【０００５】
本発明の一態様によると、複数の外部化可能推論コンポーネントを管理する方法が提供される。その方法は、プログラムの推論側面を識別すること、そして識別された推論側面を推論コンポーネントとして与えることを含む。外部化されたアルゴリズム及びデータ（これらは永続的に格納することができる）を、推論コンポーネントと関連付けることができる。
【０００６】
識別される推論側面は、トリガポイント、短期ファクト、推論ルール、推論エンジン、静的変数マッピング、センサ、エフェクタ、長期ファクト及び結論を含むことができる。推論コンポーネントは、トリガポイントコンポーネント、短期ファクトコンポーネント、推論ルールセットコンポーネント、推論エンジンコンポーネント、静的マッピングコンポーネント、センサコンポーネント、エフェクタコンポーネント、長期ファクトコンポーネント、及び結論コンポーネントを含むことができる。
【０００７】
推論コンポーネントは、推論コンポーネントによって提供されるデータの利用側、推論コンポーネントによって提供されるデータの供給側、又はその両方になることができる。
【０００８】
この方法はさらに、少なくとも１つのトリガポイント推論コンポーネントを少なくとも１つのアプリケーションと関連付けることを含むことができる。トリガポイントは、同期的に又は非同期的に動作することができる。
【０００９】
推論コンポーネントは、少なくとも１つの他の推論コンポーネントを利用するマスター推論コンポーネントとすることができる。推論コンポーネントは推論エンジンを用いることができる。さらに、推論コンポーネントは少なくとも１つの推論サブコンポーネントに編成することができる。推論コンポーネントはまた、少なくとも１つの他の推論コンポーネントを参照することによって共用されることも可能である。
【００１０】
推論コンポーネントの編成／構成は、アレイ、コレクション、ハッシュテーブル、イテレータ、リスト、パーティション、セット、スタック、ツリー、ベクトル、及びこれらの組み合わせとすることができる。
【００１１】
推論コンポーネントは、固有の識別子、意図、名前、位置、フォルダ、開始時刻、終了時刻、優先順位、分類、参照、記述、ファイアリング位置、ファイアリングパラメータ、初期化パラメータ、インプリメンタ、レディフラグ、フリーフォームデータ、及びこれらの組み合わせを含むことができる。
【００１２】
アルゴリズムは、推論コンポーネントの作成、推論コンポーネントの検索、推論コンポーネントの更新、及び推論コンポーネントの削除を実行することができる。さらに、アルゴリズムは、少なくとも２つの推論コンポーネントにより共用することが可能である。
【００１３】
アルゴリズムは、トリガポイント実行アルゴリズム、データ戻しアルゴリズム、データ結合アルゴリズム、データ・フィルター・アルゴリズム、データ変換アルゴリズム、分類選択アルゴリズム、任意選択アルゴリズム、ラウンドロビン選択アルゴリズム、推論エンジン前置プロセッサ、推論エンジン後置プロセッサ、推論エンジンランチャー、データ受信アルゴリズム、データ送信アルゴリズム、データ格納アルゴリズム、データ取り出しアルゴリズム、及びこれらの組み合わせとすることができる。
【００１４】
推論コンポーネントは、新しい推論エンティティを形成する少なくとも２つの推論サブコンポーネントから構成することができる。その構成は、静的又は動的（もしくはそれの組み合わせ）のいずれかで生じる。
【００１５】
推論コンポーネントを作成し、検索し、更新し及び削除するのを容易にするために、推論コンポーネント管理機能を利用することができる。
【００１６】
本発明の別の態様によると、ビジネス・ロジックを与えるシステムが提供される。システムは、識別コンポーネント及び外部化コンポーネントを含む。識別コンポーネントは、アプリケーション・プログラム内の少なくとも１つの可変ポイントを識別するように構成され、外部化コンポーネントは、外部化されたビジネス・ロジックにより識別される少なくとも１つの可変ポイントを与えるように構成される。外部化されたビジネス・ロジックは推論コンポーネントを含む。推論コンポーネントは外部化されたアルゴリズム及びデータを含むことができる。
【００１７】
システムはまた、少なくとも１つの仮想マシン（例えば、ＪＡＶＡ（商標）仮想マシン（ＪＶＭ））を用いて外部化されたアルゴリズムを実行するための実行コンポーネントを含むことができる。
【００１８】
本発明のこれらの及び他の態様、特徴及び利点は、添付の図面と関連して理解されることになる好ましい実施形態の以下の詳細な説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【００１９】
ビジネスルールの外部化及びトリガポイントの外部化は、アプリケーション挙動を調整するための公知の技術である。例えば、その全体を引用により組み入れる、２００１年９月２０日出願の、Ｄｅｇｅｎａｒｏ他による「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｅｍｐｌｏｙｉｎｇ  Ｅｘｔｅｒｎａｌｉｚｅｄ，Ｄｙｎａｍｉｃａｌｌｙ  Ｃｏｎｆｉｇｕｒａｂｌｅ，Ｃａｃｈｅａｂｌｅ  Ｔｒｉｇｇｅｒ  Ｐｏｉｎｔｓ」と題する特許文献３は、ロジックフローにおいてトリガポイントを用いる技術を説明する。一般的な考え方は、通常はアプリケーション内に組み込まれるロジックをトリガポイントに置き換えて、該トリガポイントが、所望の処理を実行するように外部権限に訴えるものとすることである。その場合には、そのように設計されたアプリケーションの可変性は、ルール主導型アプリケーションそれ自体を変更することなく、容易に及び動的に取り扱うことができるものとなる。アプリケーションの種々の層にトリガポイントを配置することにより、対応するレベルでのルールの抽象化が可能になる。外部化可能ロジック及びデータを集中化することにより、理解の容易性、整合性、再使用、及び管理の容易性が高まるとともに、トリガポイント及びルールを用いる種々のアプリケーションの、企業にわたる維持費が減少する。
【００２０】
外部化に関しての「ルール」とは、人工知能の世界に通常関連するものではなく、むしろ日常の「ビジネス」の意思決定に用いられるものである。使用される技術は、宣言型よりも構造化指向であり、使用されるルールは直接的であることが多い。一般に、新しい知識は求められないが、その代わりに、時間及び状況の可変性が容易に管理される。
【００２１】
例えば、航空会社のアプリケーションは、頻繁に利用する乗客が、１年間で彼らが飛んだマイル数に基づいて、ブロンズ、シルバー、又はゴールドになるように考えることができる。時間の経過に伴ってより多くのマイルが貯まると、ある人のステータスが、ブロンズからシルバーに、又はシルバーからゴールドに変更されることになる。さらに、ブロンズ、シルバー、又はゴールドとして分類されるのに必要なマイル数は、時間が経てば、１００００、２００００、３００００からそれぞれ１５０００、２５０００、５００００に変更されることがある。又は、暦年において少なくとも７５０００マイル旅行する人に対して、プラチナの新しい分類が追加されることがある。
【００２２】
外部化技術に先立って、顧客をカテゴリーに分類することを、インラインでコード化することができる。しかし、外部化可能トリガポイント及びルールを用いるに際し、分類を実行するためのロジック及びデータは、アプリケーション本体に対して外部にある。このような判断をするアルゴリズムと、それらをパラメータ化するデータとの両方を外部化することによって、動作可変性の管理のしやすさの増進を達成することができる。
【００２３】
代替的に、推論システムは、順方向チェーニング及び逆方向チェーニングといった推論技術、及び、新しい知識を導出するためのＲｅｔｅネットワークを用いることが多い。このようなシステムは、通常は、３つの主要な要素、すなわち、通常はｉｆ／ｔｈｅｎルール及びファクトの形態をとる知識、導出されたファクトからなる作業メモリ、及び、該知識及び作業メモリを処理する推論エンジンから構成される。
【００２４】
順方向チェーニングの間、推論エンジンは、推論ルール及びファクトを検査して、どの推論ルールがファイアされる適格性をもっているかを判断する。競合する解決技術を用いることによって選択された１つの推論ルールがファイアされる。これにより、実行が起こるか又は新しいファクトが生成される。適格性をもった推論ルールがそれ以上存在しなくなるまで、推論ルールの選択及びファイアの繰り返しが続く。完了したときには、ゼロ又はそれ以上の結論に到達する。
【００２５】
逆方向チェーニングの間、推論エンジンは、ファクト及びデータを検査して、ゴールに到達しているかどうかを判断する。オリジナルのゴールの真又は偽が証明される時まで、中間ゴールが追加され、除去される。各ゴールは、関連するデータで評価されたときに、真であると証明され又は偽であると証明される推論ルールであるか、あるいは、最初から真又は偽であると証明される１つ又はそれ以上の他の推論ルールである。
【００２６】
Ｒｅｔｅアルゴリズムは、最適化された推論方法である。ノードのネットワークは、新しいファクトのみがあらゆる推論ルールに対してテストされることを保証するために用いられる。
【００２７】
典型的には、推論又は知識ベースのシステムを用いて、新しいファクトを学習することができる。例えば、中国人がカメラを購入するときには、彼らは携帯用ケースも購入することが多く、一方、フランス人はカメラに加えて電池を購入することが学習されることがある。
【００２８】
これら２つの異なるルールは、各々がそれらの長所及び短所を有する、プログラミングモデル、外部化及び推論を指向させる。各々は、同じ問題セットに適用されることができ、１つは通常、状況に応じて、重要な態様において他を上回る利点を有する。例えば、用いられるルールが頻繁に変化するとき、どのようにして結果が得られたかを正確に判断することが重要でないとき、ランタイム中に競合するルールがあてられるとき、関係のあるルールの数が非常に多いとき、又は高性能が要求されないときに、推論がより好適となる。ルールセットサイズが小さいか、ルール変更がまれであるか、高性能が重要であるとき等といった逆の状況においては、外部化がより有利となる。
【００２９】
１つの重要な問題は、いかに有益に外部化と推論との両方を共に用いて、それらすべての組み合わさった利点を享受しつつ各々の欠点を避けるかである。ある場所では外部化技術のみで要件が満たされ、別の場所では推論技術のみで十分であり、さらにまた別のポイントでは、異なっているが相補的である２つの手法のいくつかの組み合わせが最適な適合を与える。
【００３０】
別の重要な問題は、推論システム及びそれらに関連するデータを、どのようにして編成するかである。アプリケーションによっては、わずかに異なるバージョンの推論が望まれることが想像される。例えば、推論ルールセットは本質的には汎用であるかもしれないが、その変数のいくつか又はすべてが、アプリケーションにおける場所又はある時点に関連するコンテキストに従ってマップされることになる場合がある。あるいは、異なる２つのアプリケーションは、それらの所望の推論ルールセットの共通の部分を有するかもしれない。あるいは、２つ又はそれ以上の異なる推論の結論は、さらに１つ又はそれ以上の他の推論への入力として組み合わせられる必要があるかもしれない。
【００３１】
本発明が、種々の形態のハードウェア、ソフトウェア、ファームウェア、特殊目的プロセッサ、又はそれの組み合わせとして実施できることを理解すべきである。本発明は、、プログラム・ストレージ装置に明白に組み込まれたアプリケーション・プログラムであるソフトウェアに実装されることが好ましい。アプリケーション・プログラムは、適切なアーキテクチャのいずれかを備えるマシンにアップロードされ、該マシンによって実行されるようにすることができる。マシンは、１つ又はそれ以上の中央演算処理装置（ＣＰＵ）、ランダムアクセスメモリ（ＲＡＭ）、及び入力／出力（Ｉ／Ｏ）インターフェースといったハードウェアを有するコンピュータプラットフォームに実装されることが好ましい。コンピュータプラットフォームはまた、オペレーティングシステム及びマイクロ命令コードを含む。ここで説明される種々の処理及び機能は、マイクロ命令コードの一部か、あるいは、オペレーティングシステムを介して実行されるアプリケーション・プログラム（又はそれの組み合わせ）の一部のいずれかとすることができる。さらに、種々の他の周辺装置を、付加的なデータストレージ装置といったコンピュータプラットフォームに接続することができる。
【００３２】
添付の図面に示されるいくつかのシステム構成コンポーネントをソフトウェアに実装することができるので、システムコンポーネント間の実際の接続は、本発明がプログラムされる方法に応じて異なることをさらに理解すべきである。ここでの教示に基づけば、当業者は、本発明のこれらの及び類似する実施又は構成に想到することができるであろう。
【００３３】
図１は、本発明の例示的な実施形態に係る、本発明を適用可能なコンピュータ処理システム１００のブロック図である。コンピュータ処理システム１００は、システムバス１１０を介して他のコンポーネントに作動関係で結合される少なくとも１つのプロセッサ（ＣＰＵ）１２０を含む。読み取り専用メモリ（ＲＯＭ）１３０、ランダムアクセスメモリ（ＲＡＭ）１４０、Ｉ／Ｏアダプタ１５０、ユーザインターフェースアダプタ１６０、ディスプレイアダプタ１７０、及びネットワークアダプタ１８０が、システムバス１１０に作動関係で結合される。
【００３４】
ディスクストレージ装置（例えば、磁気又は光ディスクストレージ装置）１５１が、Ｉ／Ｏアダプタ１５０によってシステムバス１１０に作動関係で結合される。
【００３５】
マウス１６１及びキーボード１６２が、ユーザインターフェースアダプタ１６０によってシステムバス１１０に作動関係で結合される。マウス１６１及びキーボード１６２は、コンピュータ処理システム１００に／から情報を入力／出力するために用いることができる。
【００３６】
ディスプレイ装置１７１は、ディスプレイアダプタ１７０によってシステムバス１１０に作動関係で結合される。ネットワーク１８１は、ネットワークインターフェースアダプタ１８０によってシステムバス１１０に作動関係で結合される。
【００３７】
コンピュータ処理システム１００は、ここでは上記の要素に関連して説明されているが、それらに関して、要素の追加、削除、及び置換がなされ得ることを理解すべきである。すなわち、ここで提供される本発明の教示に基づき、当業者は、本発明の精神及び範囲を維持しながら、コンピュータ処理システム１００の要素についてのこのような及び種々の他の構成を思い付くであろう。
【００３８】
本発明は、データ処理アプリケーションにおいて、外部化可能推論コンポーネントを指定し、適用し、かつ、管理するための方法及びシステムを提供する。特に、本発明は、いかに有益に外部化と推論との両方を共に用いて、それらすべての組み合わされた利点を享受しつつ各々の欠点を避けるか、ならびに、推論システム及びそれらの関連するデータをどのようにして編成するかという重要な問題に対処するものである。
【００３９】
本発明は、外部化可能推論コンポーネント（ＥＩＣ）を利用するアプリケーション内にトリガポイントを配置できるようにする。典型的には、アプリケーションは、コンテキスト及びパラメータ情報をトリガポイントに受け渡し、該トリガポイントが動的に識別し、ＥＩＣを利用することになる。典型的には、ＥＩＣは、入力を考慮し、それにより推論関連のタスクを実行し、結果をトリガポイントに戻す。代替的に、トリガポイントが非同期的に動作して、アプリケーションがトリガポイントを呼び出してコンテキスト及びパラメータ入力を与え、それと引き換えに、後のある時点で結果をチェックするのに使用可能なキーを受け取るようにするか、あるいは、アプリケーションが、非同期的推論処理が完了したときにどんな結果の制御をも受け取るためのスレッドに関するキーを、トリガポイントに追加的に与えるようにしてもよい。
【００４０】
すべての外部化可能データ及びアルゴリズムは、単一のＥＩＣ内に格納することができるが、ＥＩＣは、それに関連する１つ又はそれ以上の他のＥＩＣを有するメインコンポーネントからなることが多い。典型的には、メインコンポーネントは所望の推論を調整する。それは、ファクト及びルールを集めて事前処理し、変数をマップし、推論エンジンをトリガし、事後処理してあらゆる結果を分散する。サブコンポーネントは、推論エンジンによって利用されるルールセットのプロビジョン、静的な値に対する変数又は可変関数のマッピング、アプリケーションに戻される結論のフィルタリングなどといった特殊なタスクを処理する。
【００４１】
図２は、例としてのアプリケーション２１０がトリガポイント２２０を収容し、該トリガポイントが外部化可能推論コンポーネント２３０を利用するようになった本発明の好ましい実施形態に係るシステムコンポーネントを示す概略図である。ランタイムの間、アプリケーション２１０が、コンテキスト及びパラメータ情報をトリガポイント２２０に供給し、次に該トリガポイントがＥＩＣ２３０を利用する。ＥＩＣ２３０は、いくつかの推論計算を実行し、結果をトリガポイント２２０に戻して、該トリガポイントが結果をアプリケーション２１０に伝える。例えば、アプリケーション２１０が、「割引計算」コンテキスト及び「ショッピングカート」パラメータをトリガポイント２２０に供給し、次いで、該トリガポイントが適切なＥＩＣ２３０を利用して所与のショッピングカート情報を用いて割引推論計算を行い、その計算結果がアプリケーション２１０による考慮のためにトリガポイント２２０に戻されるようにしてもよい。
【００４２】
当業者は、トリガポイント２２０とＥＩＣ２３０の多数の組み合わせを考えることができる。例えば、単一のアプリケーション２１０がいくつかのトリガポイント２２０を利用できるようにするか、単一のトリガポイント２２０がいくつかのＥＩＣ２３０を利用できるようにするか、多数のアプリケーション２１０が１つ又はそれ以上のトリガポイント２２０の利用を共用できるようにするか、多数のトリガポイント２２０が１つ又はそれ以上のＥＩＣ２３０の利用を共用できるように構成することができる。
【００４３】
図３は、本発明の好ましい実施形態に係る、外部化可能推論コンポーネントアーキテクチャ例を示す概略図である。ＥＩＣ３１０は、単独で（図示せず）、又は分離できるタスクを実行する他のＥＩＣと共に作動するようにすることができる。後者の場合には、マスターＥＩＣは通常、トリガポイントによって利用されて、１つ又はそれ以上のサーバントＥＩＣの活動を整合させる。この態様は、以下の図４について説明される。各ＥＩＣ３１０はアルゴリズム３２０及びデータ３３０を備える。データ３３０はストレージ装置３５０に永続的に維持される。アルゴリズムは仮想マシン３４０によって実行される。仮想マシン３４０は永続的ストレージ３５０からアルゴリズム３２０をロードすることができる。
【００４４】
例えば、ＥＩＣアルゴリズム３２０は、Ｊａｖａ（商標）仮想マシン（ＪＶＭ）によって処理されるＲｅｔｅ推論エンジンとすることができ、データ３３０は、「割引計算」推論を実行するためにトリガポイントによって受け渡しされたパラメータの存在下でＲｅｔｅ推論エンジンによって解釈される一組のルールとすることができる。アルゴリズム３２０及びデータ３３０を外部化することは、特に、融通性、理解の容易性、及び管理の容易性の利点を与える。重要な利点は、データ３３０又はアルゴリズム３２０への変更が、推論サービスを所望するアプリケーションに対して外部にあることであり、それゆえ、このような変更からアプリケーションをバッファリングすることである。上記の実施例に続いて、アルゴリズム３２０によって解釈されるデータ３３０を含む１組のルールに新しいルールを追加することができ、さらに（又は代わりに）、アルゴリズム３２０としてＲｅｔｅ推論エンジンを順方向チェーニング推論エンジンに置換することができる。多種多様の環境の下で、関連するアプリケーションの変更が不必要となり、それによりアプリケーションの安定性が促進される。
【００４５】
マスターＥＩＣ３１０は、他のＥＩＣ３１０を利用して、データ集約、データ伝搬、データ変換、並列ロジック計算などといった特定のタスクを実行することができる。重要な外部化可能推論コンポーネントが以下でより詳細に説明される。ランタイムの間、データ及び／又は制御はＥＩＣの間を双方向に流れることができる。ＥＩＣはゼロ又はより多い他のＥＩＣを利用することができる。
【００４６】
ＥＩＣは、再使用可能なアルゴリズムを用いて、トリガポイントを実行し、データを戻し、データを結合し、データをフィルタにかけ、データを変換し、分類によって選択し、ランダムに選択し、ラウンドロビンを選択し、日付によって選択し、エンジン前置プロセッサを推論し、エンジン後置プロセッサを推論し、エンジンランチャーを推論し、データを受信し、データを送信し、データを格納し、データを取り出すことなどが可能である。
【００４７】
ＥＩＣは、固有識別子、意図、名前、位置、フォルダ、開始時刻、終了時刻、スケジュール、期間、所要時間、優先順位、分類、参照、記述、ファイアリング位置、ファイアリングパラメータ、初期化パラメータ、インプリメンタ、レディフラグ、フリーフォームデータなどを含む外部化されたデータを用いることができる。例えば、インプリメンタは順方向チェーニング推論エンジンとすることができ、初期化パラメータは解釈される一組のルールとすることができる。
【００４８】
図４は、本発明の好ましい実施形態に係る、外部化可能推論コンポーネント例を示す概略図である。外部化可能推論コンポーネントエンジン４１０は、特定のタスクを実行するために他の外部化可能推論コンポーネントを利用するマスターコンポーネントとすることができる。または、マスターコンポーネントは、他のＥＩＣ（図示せず）によって支援されないすべてのタスクを実行することができる。ＥＩＣエンジン４１０によって頻繁に利用される重要なサーバントＥＩＣは、短期ファクト４２０、ルールセット４３０、静的マップ４４０、長期ファクト４５０、結論４６０、センサ４７０、及びエフェクタ４８０である。これらの各々は、図５−図１１に関して以下でより詳細に説明される。サーバントＥＩＣは、支援なしで動作することができるか、あるいは、それ自体を、サーバントＥＩＣを利用するマスターコンポーネントとすることができる。マスターコンポーネントは、ゼロ又はそれ以上のタイプのサーバントＥＩＣを利用することができ、ゼロ又はそれ以上の各種のＥＩＣを利用することができる。
【００４９】
ＥＩＣは、種々の方法で編成され又は構成されることができる。例えば、マスターＥＩＣは、アレイ、コレクション、ハッシュテーブル、イテレータ、パーティション、セット、スタック、ツリー、ベクトルなどとして、又は表されたもののいくつかの組み合わせとして、１つ又はそれ以上のサーバントＥＩＣから構成されることができる。編成は、アルゴリズム及び関連するデータの組み合わせの設計による。
【００５０】
より具体的には、マスターＥＩＣは、短期ファクトコンポーネントのアレイ、ルールセットコンポーネントのツリー、及び結論コンポーネントと共に長期ファクトコンポーネントのベクトルから構成されることができる。
【００５１】
ＥＩＣエンジン４１０の主要なタスクは、ファクト及びルールに対して推論を実行して新しいファクトを導出することである。ＥＩＣパラダイムの重要な利点は、ファクト及びルールが、再使用及び共用を非常に容易にする規則化された方法で外部化され、コンポーネント化されることである。例えば、入力データからルールセット変数へのマッピングは、場合によっては異なることがあるが、「割引計算」に用いられるルールセットは、多数のＥＩＣエンジン４１０によって用いられることができる。あるいは、多数のＥＩＣエンジン４１０が同一のルールセットを利用するが、異なる結論を生成するようにすることができる。あるいは、多数のＥＩＣエンジン４１０が異なるルールセットを利用するが、入力データからルールセット変数へのマッピングは同一であるようにすることができる。当業者は、他のＥＩＣ４００を共用するＥＩＣエンジン４１０を構成するための無数の可能性を予想することができる。
【００５２】
すべてのＥＩＣと同様に、ＥＩＣエンジン４１０は、図３に関して上述したようにデータ及びアルゴリズム構成部分からなる。アルゴリズムは、推論前アクティビティを実行し、推論エンジンを呼び出し、次に、推論後アクティビティを実行する。推論前及び推論後アクティビティは関連する外部化データ及びアルゴリズムによる。サーバントＥＩＣをもたない単独のＥＩＣエンジン４１０の場合には、推論エンジンによって必要とされるデータは、推論前フェーズによって、供給された入力、又は関連するＥＩＣエンジンデータ、或いはそれのいくつかの導出物のいずれかから収集され、推論エンジンによって生成されたデータは、新たに導出されたファクトを記録すること、他の処理をエフェクトすること等といった種々の目的のために推論後フェーズの対象となる可能性がある。
【００５３】
典型的には、ＥＩＣエンジンは、特定のタスクを実行するために他のＥＩＣを利用することになる。例えば、推論前フェーズの一部として、ＥＩＣエンジン４１０は、該推論エンジンによって利用されることになる供給された入力データを検査し、フィルタするためにＥＩＣ短期ファクト４２０を用いることができ、該推論エンジンによって利用されるべきルールを獲得するためにＥＩＣルールセット４３０を用いることができ、推論エンジンで利用されるルール変数にファクトをマップするためにＥＩＣ静的マップ４４０を用いることができ、推論エンジンで利用されるルール変数にファクト・ゲッター及びセッターをマップするためにＥＩＣセンサ４７０及びエフェクタ４８０を用いることができ、予め導出されたファクトを収集して推論エンジンで利用するためにＥＩＣ長期ファクト４５０を用いること等が可能である。推論後フェーズの一部として、ＥＩＣエンジン４１０は、該推論エンジンによって新しく生成されるファクトを記録するためにＥＩＣ長期ファクト４５０を用いることができ、要求アプリケーションに戻されることになる推論エンジン生成ファクトをフィルターし、再配列し、又は装飾（ｅｍｂｅｌｌｉｓｈ）するためにＥＩＣ結論４６０を用いること等が可能である。
【００５４】
推論コンポーネント４００の興味深い側面は、それらを互いに検査し、更新し、作成し、削除できることである。例えば、特定のＥＩＣエンジン４１０の目的は、データ（推論ルール）を追加、削除、又は変更することによってＥＩＣルールセット４３０を更新し、それにより、修正されたＥＩＣルールセット４３０を用いるＥＩＣエンジン４１０の動作に影響を与えることである。当業者は、推論コンポーネントの関係の多数の組み合わせを想像することができる。
【００５５】
図５は、本発明の好ましい実施形態に係る、外部化可能ルールセット推論コンポーネント例を示す概略図である。ルールセットコンポーネント（ＲＳＣ）５１０は、２つの推論ルール、「ルール：１」及び「ルール：２」を有し、その各々は、それぞれ単一の変数「ａ」及び「ｂ」で動作する。ＲＳＣ５１０のアルゴリズムは「リターン」である。要求されたときには、ＲＳＣ５１０が応答してその２つの推論ルールを与える。ＲＳＣ５１０、５２０及び５３０のすべては同一のアルゴリズムを用い、それらのすべては（同時に）２つの推論ルールをデータとして有する。この例においては、ＲＳＣ５２０は、ＲＳＣ５１０と共通する１つの推論ルール「ルール：２」と、ＲＳＣ５３０と共通する１つの推論ルール「ルール：３」を有することに注目されたい。
【００５６】
ＲＳＣ５４０は「結合」アルゴリズムを有する。そのデータは、示される４つの推論ルールではなく、ＲＳＣ５１０及び５２０を参照する。呼び出されたときには、ＲＳＣ５４０のアルゴリズムは、ＲＳＣ５１０及びＲＳＣ５２０から推論ルールを要求して、それ独自の推論ルールセットを作り上げる。結合アルゴリズムは、ＲＳＣによって与えられるデータを単に蓄積し、内容と関係なく参照する。この実施例においては、結果としてＲＳＣ５４０は、その推論ルールセットにおいて各々１回現れる「ルール：１」及び「ルール：３」、２回現れる「ルール：２」を有する。
【００５７】
ＲＳＣ５５０は「重複しない」アルゴリズムを有する。そのデータは、示される４つの推論ルールではなく、ＲＳＣ５３０及び５４０を参照する。呼び出されたときには、ＲＳＣ５４０のアルゴリズムは、ＲＳＣ５３０及び５４０から推論ルールを要求して、それ独自の推論ルールセットを作り上げる。重複しないアルゴリズムは、ＲＳＣによって与えられたデータを単に蓄積し、参照して重複を除去する。この実施例においては、結果としてＲＳＣ５５０は、「ルール：１」、「ルール：２」、「ルール：３」、及び「ルール：４」の各々１つを有する。「ルール：２」は、ＲＳＣ５４０によって２回与えられたが、ＲＳＣ５５０の推論ルールセットにおいては１回のみ現れることに注目されたい。同様に、「ルール：３」は、ＲＳＣ５３０及びＲＳＣ５４０の各々から１回ずつ２回、ＲＳＣ５５０に対して与えられたが、結果として得られる推論ルールセットにおいては１回のみ現れる。
【００５８】
ルールセット・コンポーネントのパラダイムは、大きいルールセットを、より小さく、管理が容易で、再使用可能な断片にパーティション化できるようにすることによって、大きいルールセットを管理するのに重要である。当業者は、データとしての推論ルールセットの多数の有用な組み合わせ、及び、直接又は参照によって推論ルールセットデータに作用し、最終的には推論エンジンによって利用される、関連するアルゴリズムを想像することができる。
【００５９】
推論ルールは、典型的には、「条件が「条件ｘ」ならば、結果は「結果ｘ」である」という形式のステートメントであることに注目されたい。「ルール：１（ａ）」は、「条件が「条件ａ」ならば、結果は「結果ａ」である」ことを表す。同様に、「ルール：２（ｂ）」は、「条件が「条件ｂ」ならば、結果は「結果ｂ」である」ことを表す。
【００６０】
図６は、本発明の好ましい実施形態に係る、外部化可能静的マッピング推論コンポーネント例を示す概略図である。静的マッピングコンポーネント（ＳＭＣ）６１０及び６４０の各々は、データとして、それぞれが「ａ−＞ａ１」及び「ａ−＞ａ２」である１つのマッピングを有する。ＳＭＣ６２０は、データとして２つのマッピング、すなわち「ｂ−＞ｂ１」及び「ｃ−＞ｃ１」を有する。ＳＭＣ６３０は、データとして２つのマッピング、すなわち「ｃ−＞ｃ１」及び「ｄ−＞ｄ１」を有する。ＳＭＣ６１０、６２０、６３０、及び６４０はすべて、同じアルゴリズム、すなわち「リターン」を共用する。各々が呼び出されるとき、ＳＭＣ６１０−６４０は、格納されたマッピングデータを単に戻すことになる。
【００６１】
ＳＭＣ６５０は「結合」アルゴリズムを有する。そのデータは、示される５つの静的マッピングではなく、ＳＭＣ６１０、６２０、及び６３０を参照する。呼び出されたときには、ＳＭＣ６５０のアルゴリズムは、ＳＭＣ６１０、６２０、及び６３０を参照して、該ＳＭＣから静的マッピングを要求し、それ独自の静的マッピングのセットを作り上げる。この実施例においては、結果としてＳＭＣ６５０は、その静的マッピングにおいて各々１回現れる「ａ−＞ａ１」、「ｂ−＞ｂ１」及び「ｄ−＞ｄ１」、並びに２回現れる「ｃ−＞ｃ１」を有することになる。
【００６２】
ＳＭＣ６６０は「重複しない」アルゴリズムを有する。そのデータは、示される４つの静的マッピングではなく、ＳＭＣ６２０、６３０及び６４０を参照する。呼び出されたときには、ＳＭＣ６６０のアルゴリズムは、ＳＭＣ６２０−６４０から静的マッピングを要求して、それ独自の静的マッピングのセットを作り上げる。この実施例においては、結果として、ＳＭＣ６６０は、「ａ−＞ａ２」、「ｂ−＞ｂ１」、「ｃ−＞ｃ１」、及び「ｄ−＞ｄ１」の各々１つを有する。「ｃ−＞ｃ１」は、ＳＭＣ６２０及びＳＭＣ６３０の各々から１回ずつ、ＳＭＣ６６０に２回与えられたが、結果として得られるＳＭＣ６６０の静的マッピングセットにおいては１回のみ現れることに注目されたい。
【００６３】
ルールセットのコンポーネントが利用するアルゴリズムは、静的マッピングコンポーネント及び／又はあらゆる他のコンポーネントと共用されることができ、逆の場合も同様である。コード及びデータの再使用は本発明の重要な利点である。このように、図５及び６に表される実施例においては、アルゴリズム「リターン」は、「結合」及び「重複しない」アルゴリズムのようにＲＳＣとＳＭＣの両方に共通である。
【００６４】
静的マッピングコンポーネントのパラダイムは、大きいマッピングセットを、より小さく、管理が容易で、再使用可能な断片に区分できるようにすることにより、大きいマッピングセットを管理するのに、重要である。当業者は、データとしての静的マッピングの多数の有用な組み合わせ、及び、直接又は参照によって静的マッピングデータに作動し、最終的には推論エンジンによって利用される、関連するアルゴリズムを想像することができる。
【００６５】
推論静的マッピングは、典型的には、「「変数」を「値」で置換する」という形式のステートメントであることに注目されたい。マッピング「ａ−＞ａ１」は、「「変数ａ」を「値ａ１」で置換する」ことを表す。同様に、マッピング「ａ−＞ａ２」は、「「変数ａ」を「値ａ２」で置換する」ことを表す。
【００６６】
図７は、本発明の好ましい実施形態に係る、外部化可能ルールセット及び静的マッピング推論コンポーネント例を示す概略図である。２つの異なるタイプのサプライヤＥＩＣ、すなわちＲＳＣ７１０及びＳＭＣ７２０、７３０が示される。２つの構成されたＥＩＣ７４０、７５０は、サプライヤＲＳＣ及びＳＭＣの組み合わせからなる。この実施例は、推論エンジンによって使用可能な新しいエンティティを構成するためにコンポーネントが共に利用されるという本発明の重要な利点を示す。ＥＩＣ７４０は、ルールセット及び静的マッピングの組み合わせである。ＥＩＣ７５０は異なる静的マッピングをもつ同じルールセットの組み合わせである。各々は本発明の別の重要な利点であるコンポーネントの再使用を示す。この実施例においては、サプライヤコンポーネントに関連するアルゴリズムは単に「リターン」であり、構成されたコンポーネントに関連するアルゴリズムは単に「結合」である。
【００６７】
マスターＥＩＣエンジン（例えば、図４の４１０）は、要求に応じてそれぞれａ１−ｄ１として置換される変数ａ−ｄを有するルール１−４を生成する参照として、ＥＩＣ７５０のようなサーバントＥＩＣを利用することができる。推定ＥＩＣ７１０は、変数「ａ」及び「ｃ」を有する新しいルール５を含むように変更される。この変更により、マスターＥＩＣエンジンは、ＥＩＣ７５０を用いるときにａ１−ｄ１として置換される変数ａ−ｄをもつルール１−５を受け取ることになる。本発明のこの実施例によって示されるコンポーネント構成の重要な利点に注目されたい。ＥＩＣ７４０及び７５０の両方は、ＥＩＣ７１０の利用側であるので、追加されたルール５を含むことになる。ＥＩＣ７３０は変更されないままであるが、依然として結局ＥＩＣ７５０に寄与することになる。
【００６８】
ＥＩＣ７４０のような構成は、静的に（ランタイムに先立って）又は動的に（ランタイムに）生じることができる。「ルール：３（ｃ０）」は、「条件が「条件ｃ０ならば結果は「結果ｃ０」である」ことを表す。同様に、「ルール：４（ｄ１）」は「条件が「条件ｄ１ならば結果は「結果ｄ１」である」ことを表す。
【００６９】
より具体的には、「ルール：３（ｃ）」は、「顧客の状態が「ｃ」ならば顧客に割引「ｃ」を与える」ことを表すことができ、「「ｃ−＞ｃ０」は「条件：ブロンズ、結果：１０パーセント」を「ｃ」で置換する」ことを表すことができ、その組み合わせは、顧客が状態「ブロンズ」を有するならば顧客に割引「１０パーセント」を与えるという結果をもたらす。
【００７０】
図８は、本発明の好ましい実施形態に係る、外部化可能ルールセット及び動的（センサ及びエフェクタ）マッピング推論コンポーネント（ＤＭＣ）例を示す概略図である。２つの異なるタイプのサプライヤＥＩＣ、すなわちＲＳＣ８１０及びＤＭＣ８２０、８３０が示される。２つの構成されたＥＩＣ８４０、８５０は、サプライヤＲＳＣ及びＤＭＣの組み合わせからなる。この実施例は、コンポーネントが推論エンジンによって使用可能な新しいエンティティを構成するために共に利用される本発明の重要な利点を示す。ＥＩＣ８４０は、ルールセット及び動的マッピングの組み合わせである。ＥＩＣ８５０は、異なる動的マッピングをもつ同じルールセットの組み合わせである。各々は、本発明の別の重要な利点であるコンポーネントの再使用を示す。この実施例においては、サプライヤコンポーネントに関連するアルゴリズムは単に「リターン」であり、構成されたコンポーネントに関連するアルゴリズムは単に「結合」である。
【００７１】
マスターＥＩＣエンジン（例えば、図４の４１０）は、要求に応じてそれぞれ関数ｐ（ｘ０）、ｑ（ｘ０）、ｒ（ｙ０）、及びｓ（ｙ０）として置換される変数ａ−ｄを有するルール１−４を生成する参照として、ＥＩＣ８４０のようなサーバントＥＩＣを利用することができる。推定ＥＩＣ８２０は、「ｄ」の動的マッピングを「ｔ（ｙ３）」に変更するように変化される。この変更により、マスターＥＩＣエンジンは、ＥＩＣ８４０を用いるときに関数ｐ（ｘ０）、ｑ（ｘ０）、ｒ（ｙ０）、及びｔ（ｙ３）として置換される変数ａ−ｄをもつルール１−４を受け取ることになる。本発明のこの実施例によって示されるコンポーネント構成の重要な利点に注目されたい。ＥＩＣ８４０のみがＥＩＣ８２０の利用側であるので、ＥＩＣ８４０は、変更されたルール４を含むことになる。ＥＩＣ８１０は変更されないままであるが、依然として結局ＥＩＣ８４０に寄与することになる。
【００７２】
ＥＩＣ８４０のような構成は、静的に（ランタイムに先立って）又は動的に（ランタイム中に）生じるようにすることができる。「ルール：１（ｐ（ｘ０））」は、「条件が「条件関数ｐ（ｘ０）」であるならば結果は「結果ｘ０」である」ことを表す。同様に、「ルール：２（ｑ（ｘ０））」は、「条件が「条件関数ｑ（ｘ０）」であるならば結果は「結果ｘ０」である」ことを表す。
【００７３】
より具体的には、「ルール：３（ｃ）」は「顧客の状態が「ｃ」であるならば顧客に割引「ｃ」を与える」ことを表すことができ、「ｃ−＞ｒ（ｙ０）」は「「条件：ブロンズ、結果：ルックアップパーセンテージ（ブロンズ）」を「ｃ」で置換する」ことを表すことができ、その組み合わせは、顧客が状態「ブロンズ」を有するならば顧客に割引「ブロンズのルックアップパーセンテージを与える」という結果をもたらす。
【００７４】
図９は、本発明の好ましい実施形態に係る、外部化可能長期ファクト推論コンポーネント（ＬＦＣ）例を示す概略図である。２つの異なるタイプのＥＩＣ、すなわちＥＩＣエンジン９１０及びＬＦＣ９２０、９２１、及び９２２が示される。ＬＦＣは２つのモード、受信／格納及び取り出し／送信で動作するアルゴリズムを用いる。例えば、ＬＦＣ９２１は、ＥＩＣエンジン９１０からデータを受信してそれをレディセット１．０として永続的に格納し、ＬＦＣ９２１はまた、永続的ストレージからレディセット１．０を取り出して、データをＥＩＣエンジンに供給する。ＬＦＣデータの受信及び送信は、プッシュ又はプル方式で動作可能である（すべてのＥＩＣができるように）。この実施例は、コンポーネントを用いて、データを推論エンジンが使用できる維持可能な断片にパーティション化するという本発明の重要な利点を示す。
【００７５】
多数のＬＦＣが、単一のＥＩＣに供給することができる。多数のＥＩＣが単一のＬＦＣに供給することができる（図示せず）。ＬＦＣは、特に（又はあらゆるＥＩＣは一般に）、１つ又は多数のＥＩＣから受信することのみ、送信することのみ、又は送信及び受信の両方が可能である。当業者は、永続的データを受信／格納及び取り出し／送信することに関するＬＦＣ及びＥＩＣの多数の組み合わせを想像することができる。
【００７６】
事例的には、レディセット１．０、２．０、及び３．０は、それぞれゴールド、シルバー、及びブロンズ状態の顧客についての長期ファクトとすることができる。
【００７７】
図１０は、本発明の好ましい実施形態に係る、外部化可能短期ファクト推論コンポーネント（ＳＦＣ）の例を示す概略図である。トリガポイント１０１０及び２つの他の異なるタイプのＥＩＣ、すなわちＥＩＣエンジン１０２０及びＳＦＣ１０３０が示される。典型的には、トリガポイント１０１０は、ランタイム中にデータをＥＩＣエンジン１０２０に供給する。典型的には、ＥＩＣエンジン１０２０は、推論エンジンによる利用のために、１つ又はそれ以上のＳＦＣ１０３０を用いて、トリガポイントによって供給されたデータを短期ファクトに変換する。他のＥＩＣと同様に、ＳＦＣは、外部化されたデータによってパラメータ化された外部化されたアルゴリズムを用いる。通常、ＳＦＣの場合には、アルゴリズムの目的は、トリガポイントの供給されたデータを利用して、推論エンジンの利用可能なデータに変換することである。典型的には、ＬＦＣとは対照的に、ＳＦＣは、それ自体では短期ファクトを永続的に保持しない。変換アルゴリズムと同様に変換データは、ＳＦＣの間で共通とすることもできるし、又は異なるものとすることもできる。
【００７８】
事例的には、準備１．０及び２．０は、アプリケーション内のトリガポイントによって供給され、ＳＦＣ１０３０によって推論エンジンが利用可能な「購入リスト」のような短期ファクトに変換された、「ショッピングカート」のようなデータセットとすることができる。
【００７９】
図１１は、本発明の好ましい実施形態に係る、外部化可能な結論推論コンポーネントの例（ＣＣ）を示す概略図である。トリガポイント１１１０及び２つの他の異なるタイプのＥＩＣ、すなわちＥＩＣエンジン１１２０及びＣＣ１１３０が示される。典型的には、トリガポイント１１１０は、ランタイムにＥＩＣエンジン１１２０からの結果を利用する。典型的には、ＥＩＣエンジン１１２０は、トリガポイントによる利用のために、１つ又はそれ以上のＣＣ１１３０を用いて、推論エンジンによって求められた結果をデータに変換する。他のＥＩＣと同様に、ＣＣは、外部化されたデータによってパラメータ化された外部化されたアルゴリズムを用いる。通常、ＳＦＣの場合には、アルゴリズムの目的は、トリガポイントの供給されたデータを利用し、推論エンジンの利用可能なデータに変換することである。典型的には、ＬＦＣとは対照的に、ＣＣは、それ自体では結論を永続的に保持しない。変換アルゴリズムと同様に、変換データは、ＣＣの間で共通とすることもできるし、又は異なるものとすることもできる。
【００８０】
事例的には、配置１．０及び２．０は、アプリケーション内のトリガポイントによって利用され、短期ファクト、ルール、長期ファクト、及び推論エンジンによって処理される他のＥＩＣの利用可能なリソースからＣＣ１１３０によって変換される「割引結果」のようなデータセットとすることができる。
【００８１】
図１２は、本発明の好ましい実施形態に係る推論コンポーネント管理機能（ＩＣＭＦ）の対話の例を示す概略図である。ＩＣＭＦ１２１０及び３つのＥＩＣ１２２０が示される。ＩＣＭＦは、アプリケーション・プログラム・インターフェース（ＡＰＩ）を介してＥＩＣを作成し、検索し、更新し、且つ削除するのに用いられる。例えば、ＡＰＩを用いて、新しいＥＩＣエンジンコンポーネントを作成することができ、あるいは既存ＬＦＣコンポーネントを削除することができ、あるいは既存ＲＳＣコンポーネントを、その内容を発見するために検索することができ、あるいは既存ＲＳＣを、より多くのルールを格納するように変更することなどが可能である。
【００８２】
例示的な実施形態が添付の図面を参照してここで説明されたが、本発明のシステム及び方法は、これらの厳密な実施形態に限定されるものではなく、当業者によって、本発明の範囲又は精神から離れることなく、種々の他の変更及び修正を本発明に加え得ることを理解すべきである。このような全ての変更及び修正が、添付の特許請求の範囲によって定義される本発明の範囲内に含まれるように意図されている。
【図面の簡単な説明】
【００８３】
【図１】本発明の例示的な実施形態に係る、本発明を適用可能なコンピュータ処理システム１００のブロック図である。
【図２】本発明の好ましい実施形態に係る、推論コンポーネントを利用するトリガポイントをもつアプリケーション例を示すブロック図である。
【図３】本発明の好ましい実施形態に係る、推論コンポーネントアーキテクチャを示すブロック図である。
【図４】本発明の好ましい実施形態に係る、推論コンポーネントの対話例を示すブロック図である。
【図５】本発明の好ましい実施形態に係る、推論ルールセットコンポーネントの対話例を示すブロック図である。
【図６】本発明の好ましい実施形態に係る、推論静的マッピングコンポーネントの対話例を示すブロック図である。
【図７】本発明の好ましい実施形態に係る、推論ルールセットコンポーネント及び静的マッピングコンポーネントの組み合わせ例を示すブロック図である。
【図８】本発明の好ましい実施形態に係る、推論ルールセットコンポーネント及び動的マッピングコンポーネント（センサ及びエフェクタ）の組み合わせ例を示すブロック図である。
【図９】本発明の好ましい実施形態に係る、推論長期ファクトコンポーネントの対話例を示すブロック図である。
【図１０】本発明の好ましい実施形態に係る、推論短期ファクトコンポーネントの対話例を示すブロック図である。
【図１１】本発明の好ましい実施形態に係る、推論結論コンポーネントの対話例を示すブロック図である。
【図１２】本発明の好ましい実施形態に係る、推論コンポーネント管理機能の対話例を示すブロック図である。
【図１】
2006511866.tif 000003
【図２】
2006511866.tif 000004
【図３】
2006511866.tif 000005
【図４】
2006511866.tif 000006
【図５】
2006511866.tif 000007
【図６】
2006511866.tif 000008
【図７】
2006511866.tif 000009
【図８】
2006511866.tif 000010
【図９】
2006511866.tif 000011
【図１０】
2006511866.tif 000012
【図１１】
2006511866.tif 000013
【図１２】
2006511866.tif 000014
【国際調査報告】
2006511866.tif 000015
2006511866.tif 000016