(57)【特許請求の範囲】
【請求項１】
１つ以上の要件に基づいて１つ以上の論理ルールを生成する論理モデルユニットと、
データソースから収集されたデータにおける１つ以上の生値の各々を該生値の２進表示にそれぞれ変換することで１つ以上の二値事実を生成するデータアダプタであって、該１つ以上の二値事実は、真または偽の回答のみを有する質問によって表現可能なステートメントを備えている、データアダプタと、
前記論理モデルユニットによって生成され、前記データアダプタによって生成された前記１つ以上の二値事実に関連する、前記１つ以上の論理ルールの部分集合を選択し、該１つ以上の論理ルールの該部分集合を前記１つ以上の二値事実に適用することにより、１つ以上の事象の発生を識別するルールエンジンと
を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記ルールエンジンは、前記１つ以上の事象の発生を識別する１つ以上の信号を出力するように構成され、
前記システムは、
さらに、前記ルールエンジンから出力される前記１つ以上の信号に基づいて前記１つ以上の事象の発生回数を追跡するワークフローシステムを備えるシステム。
【請求項３】
請求項１に記載のシステムであって、
前記ルールエンジンは、前記１つ以上の事象の発生を識別する１つ以上の信号を出力するように構成され、
前記システムは、
さらに、前記ルールエンジンから出力される前記１つ以上の信号に基づいて、警告を生成する警告決定システムにデータを送信するワークフローシステムを備えるシステム。
【請求項４】
請求項１に記載のシステムであって、
前記ルールエンジンは、前記１つ以上の事象の発生を識別する１つ以上の信号を出力するように構成され、
前記システムは、
さらに、前記ルールエンジンから出力される前記１つ以上の信号に基づいて、該１つ以上の信号の１つ以上の再発生パターンを追跡するワークフローシステムを備えるシステム。
【請求項５】
請求項４に記載のシステムであって、
さらに、前記ワークフローシステムから前記１つ以上の再発生パターンを供給され、供給された該１つ以上の再発生パターンに基づいて前記１つ以上の論理ルールを変更し、変更した前記１つ以上の論理ルールを前記論理モデルユニットに記憶させるルール調整エンジンを備えるシステム。
【請求項６】
請求項１に記載のシステムであって、
前記ルールエンジンは、前記１つ以上の事象の発生を識別する１つ以上の信号を出力するように構成され、
前記システムは、
さらに、前記ルールエンジンから出力される前記１つ以上の信号に基づいて、監査報告を生成するために使用される情報を生成する監査アダプタに信号を出力するワークフローシステムを備えるシステム。
【請求項７】
請求項１に記載のシステムであって、
前記１つ以上の要件は、ビジネス要件及び規制上の要件に基づいているシステム。
【請求項８】
請求項１に記載のシステムであって、
前記収集されたデータは、市場データ、取引システムデータ、履歴データ、及び参照データのうちの少なくとも１つを備えているシステム。
【請求項９】
請求項１に記載のシステムであって、
さらに、前記１つ以上の二値事実を記憶するキャッシュメモリを備えるシステム。
【請求項１０】
請求項１〜９のうちのいずれか１項に記載のシステムであって、
前記論理ルールは、ルールカテゴリによって分類されているシステム。
【請求項１１】
請求項１〜１０のうちのいずれか１項に記載のシステムであって、
前記二値事実は、事実カテゴリによって分類されているシステム。
【請求項１２】
請求項１０に従属したときの請求項１１に記載のシステムであって、
前記ルールエンジンは、前記１つ以上の二値事実に適用するために論理ルールの１つの部分集合のみを前記事実カテゴリに依存して選択するシステム。
【請求項１３】
請求項１１または請求項１２に記載のシステムであって、
複数の論理ルールが同一の事実カテゴリから得られる二値事実で構成される場合、前記ルールエンジンは、該複数の論理ルールを、同一の処理工程の一部として評価するシステム。
【請求項１４】
請求項１０に従属したときの請求項１１、または請求項１２、または請求項１０に間接的に従属したときの請求項１３に記載のシステムであって、
さらに、少なくとも所定の頻度で処理される、１つ以上の頻繁に処理される二値事実を、該１つ以上の頻繁に処理される二値事実の各々の前記事実カテゴリに適合するルールカテゴリを有する論理ルールとともに記憶する自己最適化キャッシュを備えるシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［関連出願］
本願は、２００８年１２月１９日に出願された米国仮特許出願第６１／１３９，３５３号に対する優先権を主張するものであり、この米国仮特許出願第６１／１３９，３５３号の内容は、参照により、その全体が本明細書に援用される。
［発明の背景］
生産システム、ビジネスルールエンジン、エキスパートシステム、事象駆動型アーキテクチャ、及び決定行列を含む、ビジネス情報を処理するための、さまざまな既知のルールベースシステムが存在している。これらのシステムでは、データを特定のルールに照らして処理するために、順序アルゴリズムや推論アルゴリズムを用いることが多い。これらのアルゴリズムは、一定の利点を有するものの、このようなルールの処理を非効率的で、難しく、煩雑にしてしまうさまざまな問題ももたらす。
【０００２】
例えば、順序アルゴリズムは、通常、各ルールを指定された順序で適用することによってデータを処理する。その結果、順序アルゴリズムは、データを迅速に処理でき、また、単純な反復決定を行うことができる。しかしながら、順序アルゴリズムは、互いに依存する多くのルールを含む複雑な論理を使用する場合には、実行することが困難なことが多い。さらに、順序アルゴリズムは、推論方式の問題を解決しようとする場合には、ルールを通じて繰り返しループを複数回行う必要があることが多い。結果として、順序アルゴリズムは、時間がかかり得り、また、煩雑となり得る。
【０００３】
推論アルゴリズムは、通常、Ｒｅｔｅ方式（Ｒｅｔｅ−ｓｔｙｌｅ）の前向き連鎖アルゴリズムもしくは後向き連鎖アルゴリズムを含む。このため、順序アルゴリズムとは違い、ルールが実行される順序は、このアルゴリズムが各ルールを処理する際に、このアルゴリズムによって動的に決定される。このように、各ルールの相互関係を、各ルールの設計時に理解する必要はない。しかしながら、推論アルゴリズムは、時間がかかり、かつ非効率的な手法でルールやデータを処理することが多い。このため、推論アルゴリズムを用いるときには、全てのルールは、通常、データベースに保存された全てのデータに照らして評価される。推論アルゴリズムは、既に評価されたデータとルールとを区別しないので、決定がなされる前に、同じルールが同じデータに照らして何度も評価されることが多い。この非効率さに加え、推論アルゴリズムで用いられる論理は、理解や視覚化が難しいので、予期しない多くのバグを有しやすい。各ルールは実行時に予期しない方法で相互に作用し得るので、これらのバグをデバッグすることは非常に難しくなり得る。さらに、アルゴリズムは各ルールを毎回同じ順序で評価することが保証されていないので、バグを再現することは困難である。
【０００４】
データを時間の面で効率的に処理できるシステム及び方法、ならびに、分析されているデータの状況変化に対してさらに動的に調整を行うプロセッサ資源が、長い間切実に必要とされている。
［発明の概要］
本発明は、概して、識別された事象の発生を分析するとともに、このような識別の効率及び精度を監査するように、高速かつプロセッサにとって効率的な方法でルールの生成、最適化、及び使用を行う、コンピュータシステム、及びコンピュータが実行する方法に関する。
【０００５】
本発明の例示的な実施形態に係るコンピュータによる方法は、１つ以上の要件を電子的に識別する工程と、論理モデルユニットを用いて１つ以上の論理ルールを１つ以上の要件に基づいて展開する工程と、データアダプタを用いて１つ以上の二値事実（ｂｉｎａｒｙ  ｆａｃｔｓ）を収集されたデータに基づいて生成する工程と、ルールエンジンを用いて、１つ以上の論理ルールを１つ以上の二値事実に適用することによって１つ以上の事象の発生を識別する工程とを備える。
【０００６】
少なくとも１つの実施形態において、本方法は、さらに、１つ以上の事象の発生回数を追跡することを備える。
少なくとも１つの実施形態において、本方法は、さらに、１つ以上の事象の発生に対して警告を発生すべきかを判定することを備える。
【０００７】
少なくとも１つの実施形態において、本方法は、さらに、１つ以上の事象において１つ以上の再発生パターンを追跡することを備える。
少なくとも１つの実施形態において、本方法は、さらに、ルール調整エンジンを用いて１つ以上の論理ルールを１つ以上の再発生パターンに基づいて変更する工程を備える。
【０００８】
少なくとも１つの実施形態において、本方法は、さらに、監査報告を生成することを備える。
少なくとも１つの実施形態において、１つ以上の要件は、証券取引委員会の規則に基づいている。
【０００９】
少なくとも１つの実施形態において、収集されたデータは、市場データ、取引システムデータ、履歴データ、及び参照データのうちの少なくとも１つを備える。
少なくとも１つの実施形態において、生成する工程は、１つ以上の二値事実をキャッシュメモリに記憶することを備える。
【００１０】
本発明の例示的な実施形態に係るシステムは、１つ以上の論理ルールを１つ以上の要件に基づいて展開する論理モデルユニットと、１つ以上の二値事実を、収集されたデータに基づいて生成するデータアダプタと、１つ以上の論理ルールを１つ以上の二値事実に適用することによって１つ以上の事象の発生を識別するルールエンジンとを備える。
【００１１】
本発明のこれらの特徴及び他の特徴は、以下に続く本発明の様々な例示的な実施形態の詳細な説明において説明されているか、あるいは、この説明から明らかである。
【図面の簡単な説明】
【００１２】
本発明の特徴及び効果は、以下に続く本発明の具体的な実施形態の詳細な説明を添付図面とともに参照した場合に、より完全に理解されるであろう。
【図１】本発明のシステム及び方法の実施形態のブロック図である。
【図２】本発明のシステム及び方法の実施形態のブロック図である。
【図３】図１のシステムにおける特定の構成要素のブロック図である。
【図４】本発明の実施形態の実施例である。
【図５】本発明の実施形態の他の実施例である。
【発明を実施するための形態】
【００１３】
［本発明の実施形態の詳細な説明］
本発明は、概して、複数のルールを事実及び事象に照らして評価し、対象の事象を高速かつ効率的な方法で検出し、対象の事象を識別し、対象の事象に対して反応し、そして、対象の事象について報告するとともに、さらには処理されている情報に適応可能であるルール処理システムを生成し、最適化し、及び使用するコンピュータシステム及び方法に関する。対象の事象は、あらゆる対象物に関連してもよく、一実施形態では有価証券（例えば株式や債券等）取引に関する。本発明のシステム及び方法はまた、動的に変化するルールを用いて、多数のデータセットにおけるパターンを識別し、結果としてルールの処理及び使用をより効率的にする。
【００１４】
本発明によれば、以下にさらに詳細に述べるように、評価される対象となる特定の種類の情報が識別される。例えば、一実施形態において、対象の情報は、取引データの分析であって、このような取引を管理するルールが違反されている可能性があるかを判定するための分析であってもよい。この情報に基づいて、対象の情報を評価するのに必要な論理モデル及びルールが構築される。一例として、モデル及びルールは、ある組織の取引データを分析し、制限のある株式もしくは有価証券における取引が非公開の重要情報に基づいてなされているかを判定するものであってもよい。そうするためには、事実に基づくデータが１つ以上の（内部及び外部の）データソースから収集及び／または抽出される。この例では、事実に基づくデータは、組織の取引情報、市場の取引情報、及び履歴取引情報を含んでもよい。事実に基づくデータは、特にそのデータが複数の異なるソースからもたらされたときに、処理されるように標準化されなければならない可能性がある。次に、（必要であれば標準化後の）この事実に基づくデータは、本発明のソフトウェアによって処理され、二値「事実（Ｆａｃｔｓ）」（後述を参照）に変換される。
【００１５】
ルール条件が満たされていたかを識別するために使用されることになる二値情報に加えて、事実に基づくデータはまた、分析されている特定の事象に二値事実をリンクさせるのに使用可能な識別情報を含んでいてもよい。例えば、識別情報は、この例では、取引数であってもよい。取引数は、問題になっている事実が追跡された事象と一致するとシステムによって識別された場合に使用され、追跡された事象についての追加情報を含む報告を提供することが可能である。分析されるデータを二値事実に変換して、これら二値事実に基づいたルールを用いてデータを分析することにより、例えば取引システムにおける監視データなどのデータの処理が、より高速で、より効率的に、より短い処理時間で行われる。
【００１６】
別途、ある条件を満たすことができるかを判定するために二値事実を分析可能なルールが生成される。本発明のアルゴリズムは、ルールと二値事実とを処理し、特定の対象の事象を識別する１つ以上の信号を出力する。例えば、ある上場株式がある特定の期間に取り引きされたかに関する二値事実に対してルールがＹｅｓの応答を要求していて、ある特定の取引に関する事実情報がこの二値事実に対してＹｅｓまたは「１」と応答した場合には、この対象となる事象を識別するために信号が生成されることになる。このアルゴリズムは、順序アルゴリズムの特定の原理と推論アルゴリズムの特定の原理とを組み合わせることによって、ルール及び二値事実の処理をより効率的なものにする。出力信号（または複数の出力信号）はその後、システムによってさらに処理される。
＜本発明によって生成及び使用される情報及びルール＞
本発明のシステムにおける具体的な構成要素及び本発明の方法の動作を説明する前に、本システム及び本方法によって生成され、処理され、そして使用される、様々な種類のデータ、情報、及びルールを説明する。
【００１７】
より詳細には、「事実」は、本発明の文脈においては、１つ以上の利用可能なデータソースからのデータを用いて生成されて、本発明のルールを使用することによって、ある事象の発生を識別する。事実は、「Ｙｅｓ」（つまり真）または「Ｎｏ」（つまり偽）の回答のみを有する質問によって表現可能なステートメントを備えている。この情報は、「１」あるいは「０」のどちらかを用いてデジタル表現可能である。例えば、「あの動物は猫であるか？」という（事実ではない）質問は、（例えば「あの動物は猫である」という）事実として表現可能である。事実は二値形式で表現可能であり、例えば「１」を用いて「はい、あの動物は猫である」を表現し、または「０」を用いて「いいえ、あの動物は猫ではない」を表現することができる。あるいは、「Ｙｅｓ」の回答を表すのに「０」を用い、「Ｎｏ」の回答を表すのに「１」を用いることも可能である。単純な「Ｙｅｓ」や「Ｎｏ」の応答を用いて答えることができない質問は、本発明の文脈では事実ではない。例えば、「あれはどんな種類の動物であるか？」という質問は、本発明の目的にとっては事実としては表現できない。一実施形態では、事実は、可能、条件付きで可能、もしくは必須であるモデル状況を有し得る。事実はまた、この例では、例えば「虎猫」などといった１つ以上の識別情報とリンクされてもよい。
【００１８】
「事象」は、所定の時点におけるシステムのある特定の状態について分かっている情報を表すデータ要素の集まりを備える。「データ要素」は、事象から抽出され、その事象についての情報の一単位を表す生データを備える。事実はデータ要素からの情報を用いて生成される。
【００１９】
「アサートされた事実」は、事実であって、特定のデータ要素と既に関連付けられ、ある状況内において真理値が既に割り当てられた事実を備える。例えば、「あの動物は猫である」という事実は、「私が飼っているペット」という状況において、「虎猫」というデータ要素に関して「真」の値（例えば「１」）が割り当てられてもよい。
【００２０】
「状況」は、アサートされた事実が有効な範囲／領域を備える。状況は条件付きで可能な事実の様式をもたらすことができる。この点において、全く同じ事実及びデータ要素は、事実がアサートされた状況によって異なる真理値を割り当てられ得る。例えば、「あの動物は猫である」という事実は、「私が飼っているペット」という状況において、「虎猫」というデータ要素に関して「真」の値が割り当てられる。しかしながら、「私が知っている友人」という状況においては、「あの動物は猫である」という同じ事実は、「虎猫」という同じデータ要素に関して「偽」の値が割り当てられる。一実施形態において、事実は１つの状況においてのみ存在し得るが、アサートされると、アサートされた事実は、その状況のあらゆる事例において存在し得る。このためには、アサートされた事実は、その状況が存在するあらゆる多元宇宙内で同じ、もしくは異なる真理値を有するはずである。しかしながら、ある事実の状況のあらゆる一事例内においても、対応するアサートされた事実は、１つの真理値のみを有するはずであり、論理的に整合していなければならない。
【００２１】
一実施形態では、ルールは、対象の事象の発生を識別するために生成可能である。ルールは事実の連結を備え、対象の事象に対する識別基準を定義する、これらの事実に対する予め特定された真理値を伴っている。この実施形態では、１つのルール内では選言は認められていない。しかしながら、論理和は、連言の論理に関する分配法則に基づき、それぞれが事実の連言である複数の選言ルールの生成によって表さられ得る。事実の定義領域内に存在するが、ある特定のルールには含まれない事実はいずれも、様式的には実行可能であるとみなされ、そのルールの評価の際に、対応するアサートされた事実の真理値をそのルールが無視するようにする。
【００２２】
一実施形態において、各ルールの評価は、「マッチングルール」を検索及び使用することによってより一層効率的に行われる。マッチングルールは、全ての事実と、ルールを構成しているこれらの事実に対する予め特定された真理値とが、事象、または事象の組み合わせから得られるアサートされた事実の集合の完全部分集合であるためのルールを備える。この点において、このルールからの全ての事実は、事象からアサートされた事実の集合内に含まれており、ルールから得られる各事実の予め特定された真理値は、事象から得られる対応するアサートされた事実の真理値と同じである。アサートされた事実の集合は、ルールでは定義されていない別の実行可能な事実を含んでよいが、その基礎となる事実がルールに確実に現れているアサートされた事実はいずれも、ルール内において予め特定されているものと同じ真理値（条件付きで可能または必須の真理値）を有していなければならない。
【００２３】
本発明において、ルールと事実との双方は、カテゴリによって分類されて、事実及びルールをアルゴリズムによって効率的に処理することが可能になってもよい。事実カテゴリは、集合を備え、この集合に対して、ある事実は、他の要素事実とともに、これら事実の中における任意の同質の特徴に基づいて、要素である。事実は、１つの事実カテゴリのみの要素となるはずである。ルールカテゴリは、空集合を除く、ルールを構成する事実が属する全ての事実カテゴリの和集合のべき集合の任意の要素である。例えば、一実施形態において、事実［ｆ１］の事実カテゴリとルール［ｒ１］のルールカテゴリの共通集合は、事実［ｆ１］の事実カテゴリから得られる少なくとも１つの事実を用いてルール［ｒ１］を構成した場合には非空集合を返すことになるが、ルール［ｒ１］を構成する際に事実［ｆ１］を使用したということを必ずしも意味するものではない。すなわち、事実［ｆ１］と同じ事実カテゴリを有する別の事実を用いてルール［ｒ１］を構成した場合には、事実［ｆ１］の事実カテゴリとルール［ｒ１］のルールカテゴリとの間には非空の共通集合が存在することになる。
【００２４】
本発明のアルゴリズムはまた、ルール群を検索及び使用して、ルールの選定及び評価処理を合理化することができる。ルール群は、特定のルールカテゴリの要素である全てのルールの集合を備える。ルールは、当該ルールを構成する事実の個別の事実カテゴリが存在している数と同数の個別のルール群に属することができる。
【００２５】
以下に説明するように、アルゴリズムは、潜在的マッチングルールを検索及び使用して、ルールの選定及び評価処理をさらに合理化してもよい。この際、ルールが属するルール群のいかなるルールカテゴリの場合であっても、当該ルールにおけるルールカテゴリと同じ事実カテゴリを有する全ての事実の否定真理値が、ルールカテゴリと同じ事実カテゴリを有する全てのアサートされた事実から成る事象の完全部分集合には存在しないのであれば、当該ルールは、このルールカテゴリに関して、当該事象の潜在的マッチングルールである。よって、一実施形態では、ルールが要素であるいずれのルールカテゴリにとっても、ルールを構成する事実のうち、ルールカテゴリと同じ事実カテゴリを有していない全ての事実をルールから除去した場合（あるいは様式的に可能にした場合）、そのルールが変更後にマッチングルールであれば、あるいはありさえすれば、そのルールは潜在的マッチングルールである。
＜ルールエンジン＞
上述の背景に照らして、本発明の一実施形態に基づくルールエンジン（コンピュータシステムによって適用されるアルゴリズム方式である）を説明する。具体的には、この実施形態において、事実は、他のソースから収集／抽出され、必要な範囲で標準化されたデータ要素から生成されてもよい。生成された事実は１つ以上の二値事実の形式となることになり、適切な識別情報が付加されている。ルールは互いに独立して設計されているが、その後、ルールを構成する事実の事実カテゴリに基づいて、ルールエンジンによって自動的に統合されてもよい。
【００２６】
ルールエンジンによってルールが実行される順序は、例えば以下に述べる自動ルール調整エンジンなどによって、ルールを後述のように設計、または変更する時点で、制御（例えば特定）されてもよい。この点において、ルール設計者は、ルール群の種々のカテゴリを評価する所定の順序を定めることができる。この所定の順序は、本発明の一実施形態では、後述の自動ルール調整エンジンによって変更されてもよい。さらに、ルールカテゴリは、基礎となる事実の事実カテゴリと同時に、ルール群に割り当てられる。さらにまた、本発明の一実施形態において、自動ルール調整エンジンは、システムの動作中に１つ以上のルールカテゴリを１つ以上のルール群に再び割り当ててもよい。結果として、ルールの順序付けによって、ルールエンジンによってルールが実行されるべき順序だけではなく、データ要素が事象データから抽出され、ルールに照らして評価されるべき順序も決定してもよい。
【００２７】
ルールが異なる事実カテゴリから得られる事実で構成されている場合、そのルールは複数のルール群に配置されてもよい。１つのルール群の中にある全てのルールは、同じ処理工程の一部として評価されるべきである。効率を上げるためには、ルールエンジンは、あるルール群の中のルールを、ルール群のルールカテゴリと同じ事実カテゴリを有する事象のアサートされた事実に照らして、評価のみすべきである。したがって、この実施形態では、ルール群から得られた、事象データからの（ルール群と同じカテゴリを有する）事実と「一致」するルールはいずれも、潜在的マッチングルールであって、事象全体とは必ずしも「一致」しない。よって、この実施形態において、１つのルール群から得られるあらゆるマッチングルールも、単に、事象全体と潜在的に一致し得るルールの集合である。
【００２８】
ルールエンジンがルールの属する全てのルールカテゴリを評価した後、ルールエンジンは、ルールがマッチングルールであり、実際に事象全体と「一致している」のか否かを判定してもよい。当該ルールが要素であるルール群を処理した後において潜在的マッチングルールではないルールはいずれも、マッチングルールになることはない。したがって、当該ルールが要素であるルール群の処理後に潜在的マッチングルールになれなかったルールはいずれも、当該ルールも属している、他のまだ処理されていないルール群からの評価から除外される。
【００２９】
上記の処理を行った結果、評価されるルールの数は、各ルール群を処理するにしたがって減少し得る。最後のルール群を処理した後に残る潜在的マッチングルールはいずれも、事象全体と一致するマッチングルールの全体集合である。上記の処理を行った結果、対象の事象の発生を識別する１つ以上の信号が出力される。
＜ルールエンジンの効果＞
本発明の一実施形態のルールエンジンは、順序アルゴリズムや推論アルゴリズムよりも速く各ルールを評価及び処理してもよい。このためには、ルールエンジンは、限られた量のデータだけを、最小限であり、継続的に減少するルールの集合のほんの一部分に照らして評価してもよい。さらに、ルールエンジンのこの実施形態を用いると、ルールに対するモデル論理の理解及び視覚化がより容易となるけれども、ルールを設計する時点でルールの相互依存性を識別する必要はない。
【００３０】
その上、本発明の一実施形態では、ルールを構成する事実及び事実カテゴリを再検討することによって、設計時間において、ルールの関係やルールの重複をより簡単に判定できる。さらに、実行時にルールを評価する順序を、そのルールの事実が属している事実カテゴリの順序付けに基づいて決定できるので、デバッグ及びバグの再現が比較的簡単な状態を保っている。したがって、ルールの順序付けが特定されていなくても、ルール群を同じ順序で処理するときはいつでも、そのルールは、実行時に実行される同一工程後には一貫して事象と一致する、もしくは一致しないことになる。
【００３１】
本発明の一実施形態におけるルールエンジンはまた、処理されている事実に関連する評価に対するルールのみを選択してもよい。さらにルールエンジンは、潜在的マッチングデータだけに照らしてルールを評価してもよい。潜在的マッチングデータだけに照らしてルールを評価することにより、データ量、事象数、及び評価する必要のあるルール数を減らすことによって、多量のルールセットや多量のデータセットの処理をより効率的に行うことが可能になる。
【００３２】
本発明の一実施形態は、関連する事実を事実カテゴリにグループ化してもよく、グループ化することにより、プロセッサ時間の観点からより時間がかかって非効率的となり得る複数の工程のかわりに、１つの処理工程でアサート及び評価される同一の事実カテゴリにある複数の事実を提供できる。さらに、同じ事実カテゴリからの複数の事実で構成されるルールは、他の事実カテゴリに属するルールから得られる他の事実を検索またはアサートする前に、予め評価し、場合によっては破棄することが可能である。
【００３３】
本発明の一実施形態において、ルールエンジンは、入力されるデータ要素が関連付けられている事実カテゴリに基づいて、評価用のルールを動的に選択してもよい。このように評価用のルールを動的に選択することにより、実行する必要があるルール評価数を減らすことによって、多量のルールセットや多量のデータセットに対してより高性能化できるので、コンピュータプロセッサ用途において時間がかからず、より効率的になる。
【００３４】
本発明の一実施形態において、同じ事実カテゴリから得られた事実を含む全てのルールを、同一処理工程の一部として評価してもよい。このように同一処理工程の一部として評価することにより、実行する必要があるルール評価数を減らすことによって、多量のルールセットや多量のデータセットに対してより高性能化できる。
【００３５】
本発明の一実施形態において、事実カテゴリを評価する順序は、モデルごとに独立して予め設定しておくことができる。このように設定しておくことにより、ルールセット及びデータセット内において特定の事実の分配、関連性、及び発生に関する情報が予め分かっている場合に、ルール評価の順序を、最大数の潜在的マッチングルールを最小数の事実を処理した後に破棄するように設定できるようにすることによって、ルールセットやデータセットに対してより高性能化できる。
【００３６】
（当該ルールを構成する他の全ての事実が他のいずれの事象とも同様に一致する可能性を有するという前提で、これらのルールが当該事実を含むあらゆる事象とも潜在的に一致し得るので）本発明の一実施形態はまた、自己最適化キャッシュを利用して、頻繁に処理される事実を、当該事実の事実カテゴリと同じルールカテゴリを有するルール群から得られる潜在的マッチングルールと共に記憶してもよい。このように頻繁に処理される事実を記憶することにより、事象内に同じデータ要素が頻繁に現れる場合に、ルール評価を省略させることによって、多量のルールセットや多量のデータセットに対してより高性能化できる。さらにキャッシュは、あまり頻繁には使用されない事実よりも、頻繁に使用される事実をより速くキャッシュから読み出すことができるように、実行中に、自動的に自己最適化を行う。キャッシュが自動的に自己最適化を行うことにより、内部システムメモリ管理を、通常の最適化方法の場合のように理論上で最悪の場合での実行を単純に減らすのではなく、現実世界において最高の状態で実行できるように常に最適化することが可能になる。
【００３７】
さらに、本発明の一実施形態では、ルールエンジンは、複数の状況において事実を処理してもよい。例えば、上述のように、同じ事実が、その事実がアサートされた状況に基づいて、同時に真にも偽にもなり得る。この明らかな矛盾は、各状況において個々に、そして他の全状況にわたって、ルールを、これらの事実及びルールを構成する他の全ての事実に照らして評価することにより対処できるので、あるルールがある事象に、これらの状況のうちの任意の状況／全ての状況において一致することができるか、もしくはどの状況においても一致できないことになる。
【００３８】
一実施形態において、ルールの設計、監査、及び解釈は、表、スプレッドシート、決定行列、フローチャート、またはルール及び事実の他の表現形式を用いて、本来の使用者及び第三者（例えば非技術系の使用者）の双方によって可能であってもよい。
【００３９】
一実施形態において、事実を再利用して、ルール設計者がその事実が示している概念以外の事実についてのあらゆる詳細な情報を知る必要なく、新たなルールを設計してもよい。例えば、ルール設計者は、既存の事実を用いてルールを生成するために、ある事象内におけるデータ要素及びこれらの要素の値についてのいずれの情報も知る必要がない。
【００４０】
一実施形態において、自動ルール調整エンジンは、ルールエンジンとともに使用されて、ルールエンジンの出力に基づいて適用されているルールの効率を分析してもよく、ルール、ルール群、アサートされた事実等を変更して、効率を改善し、処理時間を減少させる。
＜二値事実の効果＞
以下に説明するように、二値事実を生成及び使用して事象を分析することにはいくつかの効果がある。生データ要素の値は、ルール・オーサリング時に使用されるべきではない。むしろ、ルールに使用するためには、全ての生値を二値事実に変換すべきである。結果として、事実が一旦アサートされた後は、その事実は、生データ値ではなく一般的な「概念」を表しているので、複数のルールにおいて再利用され得る。さらに、ルールの評価は固定費（二項）演算になるので、ルール実行の性能は（特に同じルールを繰り返し実行する際に）著しく向上する。その上、基礎となる生データ値が新たなデータソース、閾値の変化、方針転換等のために変化したとしても、ルールは変更を要しないことがある。さらに、ルールは、ビジネス要件のソースに近い個人によって、基礎となるデータ、もしくは他の低レベルの細部の知識を有する必要もなく書き込むことができる。例えば、ある組織により取引監視システムを導入する状況において、ルールを書き込む者がクライアントの口座のコードを知っている必要はない。むしろ、ルールを書き込む者は、「クライアントの口座が存在する」という事実を知っている必要があるだけである。
＜本発明のさらなる例示的な実施形態＞
本発明の一実施形態の例を図１に図示する。ブロック１０は、本システム及び方法がどのように展開及び実行されることになるかについての基本的概念のガイドラインを表している。ブロック１３は、この実施形態が実施を求めているビジネス要件及び規制上の要件を示している。このようなビジネス要件及び規制上の要件の一例は、株式または有価証券に関する非公開の情報について重要な知識を有する個人がこのような株式または有価証券を取引することを制限することにより、インサイダー取引の防止に努める証券取引委員会（「ＳＥＣ」）の規則である。
【００４１】
次に、ブロック１３のビジネス要件及び規制上の要件をモデル及びルール１１に展開して、ブロック１３のビジネス要件及び規制上の要件に関連する特定の事象の発生を識別してもよい。例えば、上記にて参照したＳＥＣの規則の場合、制限リスト（例えば、証券会社が特定の期間にビジネスの取引を行っている可能性のある株式及び会社のリスト）に載っている有価証券の取引にフラグを立てるように、ルール及びモデル論理１１が生成される。ブロック１０はまた、監査や他の評価の間に後に使用可能なルールから生成された情報を備える監査記録及び評価システム１５を含んでいる。
【００４２】
いったんモデル及びルール展開１１が決定されると、実行すべき監視及び／またはセキュリティシステム及び手順が、モデルユニット１７とルールエンジン１９とを含むコンピュータシステム１２にプログラムされてもよい。このコンピュータシステムは、データベース情報とルールエンジンを含むソフトウェアとを記憶可能な１つ以上のコンピュータで読み取り可能な媒体、ルールエンジンを動作させてデータを分析することが可能な１つ以上のプロセッサ、及び、必要に応じて他のコンピュータシステムと通信する１つ以上の通信装置を含んでもよい。モデルユニット１７は、コンピュータ言語形式で、評価される特定のルールを定義する。例えば、上述のＳＥＣの規則に対してモデルユニット１７を実行する際に、制限のある有価証券が取り引きされた取引に対してフラグを立てるルールが生成されてもよい。
【００４３】
これらのルールを展開するために、ルールに関する（上述のような）事実が識別及び生成され、この事実がモデルユニット１７によって示されるルールを満たしているかについての判定がなされる。この点において、モデルユニット１７は、ルールエンジン１９がフラグを立てようとしている、もしくは識別しようとしている行動（または複数の行動）の捕捉に努める特定のモデルルールを示している。具体的には、データは、ビジネス要件及び規制上の要件１３と、モデル及びルールの展開１１とに関する１つ以上のデータソースから収集されてもよい。制限のある有価証券の取引の捕捉に努める上述のＳＥＣ規則の例では、様々な内部及び／または外部データソースから、以下の種類のデータが収集されてもよい。例えば、ある所定の日における特定の株式の全取引に関するデータが市場データ２１の公開ソース（例えばブルームバーグニュース）から収集されてもよい。さらに、対象の有価証券の特定の取引に関するデータは、組織内の（つまり非公開の）証券取引システム２３から収集されてもよい。有価証券の事前取引に関する履歴及び参照データ２７も、非公開データソース及び公開データソースから収集されてもよい。履歴または参照データ２７の例は、ある期間にわたってある特定の株式に対して行われた通常取引や事前取引を含み得る。
【００４４】
取引システム２３及び／または市場データ２１から得られたデータは、新データモジュール２５に入力されてもよい。データアダプタ２６は、市場データ２１、取引システム２３、新データ２５、及び／または履歴及び参照データ２７の各モジュールからデータを読み出す。データアダプタ２６に入力されるデータにおけるこれらの様々なソースに基づいて、このようなデータは、（上述のように）二値事実のうちの１つ以上を含むように変更される。ルールエンジン１９は次に、二値事実（例えばＹｅｓかＮｏ（あるいは１か０）の値）を処理及び評価し、対象の事象（例えば制限リスト上の有価証券の取引）の発生を識別する１つ以上の信号を出力する。ルールエンジン１９は、アサートされた事実、つまり、特定の状況内で真または偽の値を割り当てられた事実のみを処理する。そして、その出力は、ワークフローシステム２９に送信されてもよく、次に、ワークフローシステム２９は、さらなる分析のための適切なモジュールに出力信号（及びその関連データ）を向ける。
【００４５】
例えば、ワークフローシステム２９は、出力信号をデータアダプタ２６に返信してもよく、さらには、一個人が制限リスト上の有価証券を取引したとして識別される回数を記録して計数することが可能である。ワークフローシステム２９はまた、例えば手動警告決定システム３３や自動警告決定システム３５などといった対応する警告決定システムにデータを送信してもよく、対応する警告決定システムで警告が（手動または自動でそれぞれ）生成されることによって、対象の事象の発生（例えば制限リスト上の有価証券の不正取引）を知らせる。
【００４６】
ワークフローシステム２６はまた、ルールエンジン１９によって生成される出力信号における再発生パターンを記録してもよい。再発生パターンは、例えば、特定のタイミングで生じる有価証券の取引、特定の個人による特定の有価証券の取引等を含み得る。一度識別されると、この再発生パターンは、次に、自動ルール調整エンジン３１に供給されてもよく、今度は、自動ルール調整エンジン３１がオンザフライでルールを変更してもよい。その結果、再発生パターンが今後も繰り返される場合に、ルールエンジン１９によってこのようなパターンをより効率的に処理できる。これらの変更されたルールはモデルユニット１７に記憶される。あるいは、再発生パターンは、自動ルール調整エンジン３１によって追跡及び識別されてもよい。
【００４７】
ワークフローシステム２６はまた、当該ワークフローシステム２６の出力信号を、警告決定システム３３，３５から受信された出力とともに、この情報を処理する監査アダプタ３７に直接送信してもよい。その後、監査アダプタ３７によって処理された情報は、監査記録及び評価ユニット１５に提供される適切な監査報告を用意及び生成するために使用される。監査報告は、フラグが出力され、ルールがこのようなフラグを作動させるために使用されたことを示してもよい。このため、例えば、手動警告決定システム３３のための信号が監査アダプタ３７に送信されると、この信号が生成されたときに使用されているモデルユニット１７の対応する信号が、コンピュータシステム１２から監査アダプタに送信されてもよい。この信号は、例えば、警告と同時に送信されてもよいし、後の参照のために記録されてもよいし、あるいはルールが変更されたときにのみ送信されてもよい。このようにして、監査アダプタ３７は、監査管理及び評価モジュール１５に対象の事象を識別させるとともに、システム及び方法の全体の効率や精度を評価させることになる報告を用意できる。
【００４８】
取引システム用の監視システムとともに使用可能な本発明の例示的な実施をさらに説明する。この例では、真か偽（あるいは１か０）として定義可能な以下の値を含む事実Ａ−Ｆが定義されている。事実Ａ＝商品が警戒リストに載っている；事実Ｂ＝取引が「買い」であった；事実Ｃ＝口座が会社名義である；事実Ｄ＝純利益が＄３，０００より大きい；事実Ｅ＝商品が普通株である；事実Ｆ＝取引戦略が強気である。適用されるルールは以下のように定義される。ルール１＝ＡとＢとＣとが全て真であれば、警告を発生させる；ルール２＝ＣとＤとＥとが全て真であれば、警告を発生させる；ルール３＝ＡとＤとＦとが全て真であれば、警告を発生させる；ルール４＝ＢとＥとがどちらも真であれば、Ｆが真であるとアサートする。この例では、ルール４を用いる推論エンジンを使用して、事実Ｆを推論できる。
【００４９】
図２は、図１に関して概説されている、本発明のシステム及び方法のある特定の例示的な実施の一例を図示している。この実施形態では、このシステムによって生成及び実行されるルールの種類を識別するモデル論理部６５が設けられている。さらに、事実は、例えば、取引履歴データ５１、管理商品情報５３、及び取引データ５９を含む様々なソースから収集されたデータから生成される。このデータは続いて、必要に応じて、ルールエンジンが分析可能な形式（例えば、適切な識別情報を有する二値事実）に標準化される。その際、参照データ標準化モジュール５５によって、管理商品データ５３をルールエンジン６３による使用及び評価のために処理されることになる形式にマッピングしてもよい。取引プレフィルタ６１は、モジュール５５からの取引データ５９及びマッピングされたデータを抽出して、ルールエンジン６３によって使用可能な形式（例えば、適切な識別情報を有する二値事実）に変換し、事象が発生したかを評価する。
【００５０】
さらに、管理されている商品データ５３は、モジュール５５によって標準化されたままで、取引履歴データ５１とともに分析されてもよい。このために、取引履歴ルックバックモジュール５７は、モジュール５５からマッピングされたデータ、及び取引履歴データ５１を受信し、ルールエンジン６３に送信される出力信号を生成する。ルールエンジン６３は、モデル論理部６５とともに、取引履歴ルックバックモジュール５７からの出力信号と取引プレフィルタ６１からの事実とを処理する。その結果、ルールエンジン６３は、ワークフローエンジン６７に送信される１つ以上の信号を出力する。この実施形態において、ワークフローエンジン６７は、適切な報告システム６９，７１，７３に報告を出力する。
【００５１】
図３は、例示的な実施形態の状況における、図１のシステムの様々な構成要素の動作を図示している。図１を参照して説明したように、モデル及びルールの展開１１は、ブロック９１でビジネス論理を識別し、ブロック９３でルールを生成することによって実行されてもよい。その結果、ブロック９５でルールが供給され、識別される。さらに、ブロック１１５，１１７で二値事実（例えば図１のブロック２１，２３，２５，２７を参照）が生成及び識別され、識別情報と関連付けられる。事実は、事実アサート部１０５から提供されるが、事実アサート部１０５は、入力データモジュール９７からデータ（例えば取引情報）を受信する、かつ／または事実キャッシュ１０９から事実を受信する。
【００５２】
頻繁に処理される事実１１７は、事実の事実カテゴリと同じルールカテゴリを有するルール群から得られる潜在的マッチングルールとともに、事実キャッシュ１０９に記憶されてもよく、事実キャッシュ１０９において、これら事実１１７及び潜在的マッチングルールは、事実アサート部１０５によって使用される機会を待つ。これら事実１１７及び潜在的マッチングルールを事実キャッシュ１０９に記憶させることにより、事象内に同じデータ要素が頻繁に現れる場合に、ルール評価を省略させることによって、多量のルールセットや多量のデータセットに対してより高性能化できる。さらに、キャッシュは、実行中、あまり頻繁には使用されない事実よりも、頻繁に使用される事実をより速くキャッシュから読み出すことができるように、自動的に自己最適化を行う。この自己最適化により、内部システムメモリ管理を、通常の最適化方法の場合のように理論上で最悪の場合での実行を単純に減らすのではなく、現実世界での処理の実行をよりよく最適化することが可能になる。事実キャッシュ１０９はキャッシュ管理部１１１によって管理され、キャッシュ管理部１１１はデータベース検索部１１３にアクセスして事実キャッシュ１０９の優先度を評価できる。
【００５３】
ルール選択部９９は、上述の方法に従ってルールを選択し、選択したルールに事実を適用する。分析のために２つ以上のルールの集合が入手可能であってもよいので、ルール選択部９９は、もしあれば、どのルールが選択された事実を分析するのに適切かを識別する。その際、ルール選択部９９は事実とデータとを事実アサート部１０５から受信し、事実アサート部１０５は入力データ（例えば取引情報）をモジュール９７から受信し、事実１１７を事実キャッシュ１０９から受信する。その結果生じる事実１１７、事実アサート部１０５から得られるデータ９７、及びルール選択部９９から得られるルール９５はその後、ルール実行部１０１によって処理及び評価される。ルール実行部１０１は、事象が発生したのかを示す１つ以上の信号を出力する。その後、ルール実行部からの出力は、マッチングルールのリスト１０３に供給される。また、次回事実選択部１０７は、この出力を使用して、上記の方法に従って処理するためにより多くの事実を選択することになる。
＜本発明のルール及び事実を実行する例示的な実施形態＞
以下は、本発明のルール及び事実を生成、使用、及び評価することが可能な方法の例示的な説明である。図４は、本発明におけるこの例示的な実施形態を図示している。この実施形態では、以下の工程を実行してもよい。
【００５４】
（１）事実をアサートすることが可能な状況を予め定義し、存続させる（例えば、Ｃ＝状況）。
（２）事実が属することが可能な事実カテゴリを予め定義し、存続させる（例えば、Ｔ＝事実カテゴリ）。
【００５５】
（３）対象の事象を識別するためのルールを設計するのに意味があるであろう概念を表す事実を予め定義し、存続させる（例えば、Ｆ＜Ｃ，Ｔ＞＝状況Ｃにおいてアサート可能な事実カテゴリＴの事実Ｆ）。
【００５６】
（４）ある事象において互いに同時に発生した場合に、その事象がルール設計者の関心の対象となっていることを示す複数の事実で構成されるルールを予め定義し、存続させる。例えば、
Ｒ｛Ｆ＜Ｃ，Ｔ＞［０｜１］，Ｆ＜Ｃ，Ｔ＞［０｜１］，Ｆ＜Ｃ，Ｔ＞［０｜１］…｝＝ルールＲ
ここで、Ｆ＜Ｃ，Ｔ＞は事実であり、Ｆ＜Ｃ，Ｔ＞［０｜１］は、一致するために、ルールによって当該事実がアサートされることが要求されている真理値である。真＝１であり、偽＝０である。Ｒ内における各Ｆ＜Ｃ，Ｔ＞［０｜１］は、ルールが事象と一致するために、事象のアサートされた事実の集合において、ルール内にある他の全ての事実とともに存在しなければならない別個の事実である。
【００５７】
（５）データ要素を引数として渡すと、データ要素について分かっていることに基づいてアサート可能なアサートされた事実またはアサートされた事実の集合を返す１つまたは一連の関数（事実アサート部）を実行する。例えば、
Ｓ（Ｄ）＝｛Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］），Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］），Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］），…｝
ここでＳは事実をアサートする関数、Ｄはデータ要素、Ｄ＜Ｉ＞はＤが得られた状況事例、そして、Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］）は、事実Ｆ＜Ｃ，Ｔ＞がＤ＜Ｉ＞の状況事例内でＦ＜Ｃ，Ｔ＞［０｜１］にアサートされている。Ｓ（Ｄ）の結果集合内における各Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］）は、同じＤに基づいてアサートされた、異なるアサートされた事実である。Ｄに対して同じ事実Ｆ＜Ｃ，Ｔ＞が複数回アサートされた場合には、状況事例Ｄ＜Ｉ＞は、これらのアサートされた事実の各々に対して異なっていなければならない。
【００５８】
（６）事象の一部であると分かっている、もしくは事象の一部であると思われるデータ要素に関する全ての事実を（予め）アサートする。全てのＤに対してＳ（Ｄ）をＰ｛｝に加える。その後、Ｐ｛｝は、全ての既知であるＤに対して全てのＡ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］）で構成されることになる。
【００５９】
（７）全ての事実Ｆ＜Ｃ，Ｔ＞をコンピュータ実行時間に取り込み、各Ｆに２の倍数（２＾ｎ）である固有の識別番号を割り当てる。
（８）全てのルールＲ｛Ｆ＜Ｃ，Ｔ＞［０｜１］，Ｆ＜Ｃ，Ｔ＞［０｜１］，Ｆ＜Ｃ，Ｔ＞［０｜１］…｝をコンピュータ実行時間に取り込み、各Ｒに２の倍数（２＾ｎ）である固有の識別番号を割り当てる。同時に、Ｒ内にある各Ｆ＜Ｃ，Ｔ＞［０｜１］に対して、Ｒに対する基準値を、ＲがＦに真か偽のどちらかであるように要求していることを示している、対応するＦに加える。各識別番号に対して二項「ＯＲ」演算を実行することによって、Ｒに対する基準値は全て、あらゆる既存のルール基準値とともに加えられるはずである。
【００６０】
（９）Ｐ｛｝からの全てのＡ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］）をコンピュータ実行時間に取り込む。同時に、Ｆにアクセスして、Ｆ＜Ｃ，Ｔ＞［０｜１］がＲ内と同じ値を有するように要求する全てのＲを識別する。Ｄが記憶装置内にまだ存在していない場合はいつでも、Ａ（Ｄ＜Ｉ＞Ｆ＜Ｃ，Ｔ＞［０｜１］）から各Ｄを、Ｄに関連しているか否かにかかわらず全てのＲに対する基準値とともに記憶する。Ｄが既に存在している場合には、Ｄに関連しているＲと、Ｄが既に関連付けられているＲとで「ＡＮＤ」演算をする。さらに、Ｄ＜Ｉ＞が記憶装置内に存在していない場合には、Ｄ＜Ｉ＞をＤに関連付ける。Ｄ＜Ｉ＞が既に記憶装置内でＤに関連付けられている場合には、関連するＲと、既にＤ＜Ｉ＞に関連付けられているＲとで「ＯＲ」演算を行う。Ｒに対する全ての基準値は、各識別番号に対して二項「ＡＮＤ」演算または二項「ＯＲ」演算を行うことによって、ＤまたはＤ＜Ｉ＞におけるあらゆる既存のルール基準値に加えられるはずである。
【００６１】
（１０）各事象Ｅをコンピュータ実行時間に取り込む。同時に、その事象における各Ｄに対して、記憶装置から関連するＲを検索するが、１回につき１つのＤに対して検索を行う。各検索が、検索を行ったばかりの関連するＲの集合に対して二項「ＡＮＤ」演算を行った後、関連するＲの集合は既に検索された状態で、ここまでは一緒に「ＡＮＤ」演算を行う。「ＡＮＤ」演算が空集合を返すか、または全てのＤが検索されるまで、この処理を各Ｄに対して継続する。空集合は、マッチングルールが存在していないのでこの事象は対象となるものではないことを示している一方で、非空の結果集合は、マッチングルールが見つかったのでこの事象は対象となるものであることを示している。空集合は物理的な数値が０であることになる一方、非空集合は物理的な数値がゼロ以外であることになる。
【００６２】
（１１）各Ｒの識別番号と工程１０から得られた非空の結果集合との間で二項「ＡＮＤ」演算を行う。結果の集合と、同じ識別番号を返すＲの識別番号との間のあらゆる「ＡＮＤ」演算は、そのＲが当該事象に対するマッチングルールであることを示している。
【００６３】
図５は、本明細書等にある、本発明の一実施形態の例示的なアプリケーションフローをさらに図示している。この実施形態において、ビジネスユーザ２００は、図１にてビジネス要件及び規制上の要件１３に示されるようなビジネス要件２０２を定義する。これらのビジネス要件２０２は専門のビジネスアナリスト２１０によって使用されて、上述のように事実２２０を識別し、ルール２３０を定義する。ビジネス論理のメタデータ２４０を用いて、事実２２２及びルール２２４を識別する。識別された事実２２２は専門のビジネスアナリストによって用いられて、ルール２２４を形成するために使用されるルールを定義する。
【００６４】
様々なデータベースから得られるデータを用いて、適用される事実を収集する。例えば、取引情報データベース２５０を用いて、データを入力データモジュール２５２に供給する。同様に、この例では、１つ以上のデータベースに記憶された履歴データ２６０を入力データモジュール２５２に供給して、事実を生成する。上記の工程（６）にて説明したように、様々な形式のデータが事実事前アサーションモジュール２５３に供給される。事実事前アサーションモジュール２５３の出力は、アサートされた事実キャッシュ２７２、事実アサート部２７４、及びルール選択部２７６に供給されてもよく、アサートされた事実キャッシュ２７２、事実アサート部２７４、及びルール選択部２７６は、一貫して上記で説明したように動作する。ルール選択部２７６は、供給されたルール情報及び事実情報を使用して、事実に対してどのルールを単独で、もしくは複数で適用すべきかを識別することになる。選択されたルール及び分析される事実をルール実行部２７８に供給し、ルール実行部２７８は、識別された事実に対して選択されたルールを実行する。事実の集合をルールに一致するように識別した場合、出力をマッチングルールモジュールのリスト２９０に供給して、ワークフローにおける以降の工程２９２に送信する。識別された事実に対して選択されたルールを適用した後、信号を次回事実選択部２７９に送信して、次の分析すべき事実の処理を開始する。
【００６５】
上述の本発明のシステム及び方法は、プロセッサ、オペレーティングシステム、メモリ、及び通信装置を有する１つ以上のコンピュータ上で実施できる。さらに、本発明のシステム及び方法は、例えば、インターネット、広域ネットワーク、ローカルエリアネットワーク、イントラネット等を含む、オープンネットワークまたはクローズドネットワーク上に導入されてもよい。本発明の各実施形態は、当業者にとって明らかであろうコンピュータ要素及びコンピュータで実行される工程を備えている。例えば、コンピュータで実行される工程は、コンピュータで実行可能な命令として、例えば、フロッピーディスク、ハードディスク、光ディスク、フラッシュＲＯＭ、不揮発性ＲＯＭ、及びＲＡＭ等が例に挙げられるコンピュータで読み取り可能な媒体上に記憶されてもよいことは、当業者には理解されよう。説明を簡単にするために、本明細書では、本発明の全ての工程や全ての要素がコンピュータシステムの一部として説明されているわけではないが、当業者は、各工程や各要素が対応するコンピュータシステム要素またはソフトウェア要素を有してもよいことを認識するであろう。よって、このようなコンピュータシステム要素及び／またはソフトウェア要素は、それぞれに対応する工程もしくは要素（すなわち機能性）を説明することによって可能になるとともに、このようなコンピュータシステム要素及び／またはソフトウェア要素は、本発明の範囲内にある。
【００６６】
これまで本発明の各実施形態を詳細に図示及び説明してきたが、各実施形態に対する種々の変更や改良は、当業者には容易に明らかになるであろう。したがって、本発明の精神及び範囲は広く解釈されるべきであり、上述の明細書によってではなく添付の特許請求の範囲によってのみ限定されるべきである。
【図１】
0005869345.tif 000002
【図２】
0005869345.tif 000003
【図３】
0005869345.tif 000004
【図４】
0005869345.tif 000005
【図５】
0005869345.tif 000006