(57)【要約】【課題】条件−アクション・ルールを管理する方法、システム、およびコンピュータ・プログラム製品を提供する。【解決手段】本方法、システム、およびコンピュータ・プログラム製品は、いくつかのルールを適用可能にするケースの群を構築する処理対象ケース・モデラと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを探して群の中のケースのサブセットを反復的に構築およびテストする矛盾検出器とを含む。矛盾検出器はさらに、すべて矛盾しない決定を有するケースのサブセットを除去するようになっている。矛盾検出器はさらに、矛盾する決定と、関連のない決定とを区別するようになっており、誤った矛盾をレポートすることを回避する。【選択図】図４
2015502620.tif 000002
【特許請求の範囲】
【請求項１】
ルールセット内の条件−アクション・ルールを管理する方法であって、
前記ルールセット内のいくつかのルールを適用可能にするケースの群を構築するステップと、
矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを求めて、前記群の中のケースのサブセットを反復的に構築およびテストするステップと、
を含む方法。
【請求項２】
すべて矛盾しない決定を有するケースのサブセットを除去するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ケースの前記群およびサブセットは、制約ベースの技術を使用してモデル化される、請求項１または２に記載の方法。
【請求項４】
矛盾する決定と、関連のない決定とを区別して、誤った矛盾をレポートすることを回避するステップをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
矛盾する決定を伴う前記ケースのサブセットを定義するステップであって、その結果、新たなルールが前記定義を使用して前記矛盾を除去する、ステップをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
条件−アクション・ルールを管理する方法であって、
ルールセット内のルールに関して両立するアクションおよび両立しないアクションを判断するステップと、
前記ルールセット内の少なくとも１つのルールをテストするために、テスト・ケース群を構築するステップと、
前記群の中のケースの両立するサブセットであって、適用可能なルールを前記サブセットにおいて適用することが、両立するアクションのみをもたらすような、前記両立するサブセットを判断するステップと、
群の中で、前記両立するサブセット内にない前記ケースから、テスト・サブセットを判断するステップであって、それによって、前記テスト・サブセット内の前記ケースのうちの１つ以上は、前記ルールセット内の前記ルールと矛盾するアクションの可能性を有する、ステップと、
前記テスト・サブセット内のすべての前記ケースが矛盾するアクションを有する場合、前記テスト・サブセットは矛盾するサブセットであると判断し、その他の場合、前記テスト・サブセットを用いて新たなテスト群を定義して、新たなテスト・サブセットが矛盾すると判断されるまで、新たな両立するサブセットおよび新たなテスト・サブセットの反復的な判断を実行するステップと、
を含む方法。
【請求項７】
ケースの前記群およびサブセットは、前記ルールセット内の前記ルールの制約モデルを使用して構築される、請求項６に記載の方法。
【請求項８】
ケースの前記矛盾するサブセットおよび矛盾するアクションのレポートをまとめるステップをさらに含む、請求項６に記載の方法。
【請求項９】
各群およびサブセットは、前記ルールセットからの原子条件により特徴付けられる、請求項６〜８のいずれか１項に記載の方法。
【請求項１０】
前記矛盾するサブセット内の前記ケースに対する前記矛盾するアクションを解消するために、前記ルールセットに追加する、少なくとも１つの仲裁ルールを判断するステップをさらに含む、請求項６に記載の方法。
【請求項１１】
条件−アクション・ルールを管理するシステムであって、
いくつかのルールを適用可能にするケースの群を構築する処理対象ケース・モデラと、
矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを求めて、前記群の中のケースのサブセットを反復的に構築およびテストする矛盾検出器と、
を含むシステム。
【請求項１２】
前記矛盾検出器はさらに、すべて矛盾しない決定を有するケースのサブセットを除去するようになっている、請求項１１に記載のシステム。
【請求項１３】
前記矛盾検出器はさらに、矛盾する決定と、関連のない決定とを区別し、誤った矛盾をレポートすることを回避するようになっている、請求項１１〜１２のいずれか１項に記載のシステム。
【請求項１４】
矛盾するルールを伴うケースを検出するための、コンピュータ可読コードが記憶されたコンピュータ可読記録媒体を含む、コンピュータ・プログラム製品であって、前記コンピュータ可読コードは、コンピュータ・システム上にロードされて実行されると、いくつかのルールを適用可能にするケースの群を構築するステップと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを探して前記群の中のケースのサブセットを反復的に構築およびテストするステップとを実行する、コンピュータ・プログラム製品。
【請求項１５】
コンピュータ可読媒体に記憶されデジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されると請求項１〜４のいずれか１項に記載の方法を実行するための、ソフトウェア・コード部分を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的に、ルール管理システムに関し、特に、ルール管理システムにおいて矛盾するルールを伴うケースを計算する方法および装置に関する。
【背景技術】
【０００２】
ビジネス・ルール管理（ＢＲＭ）技術は、ローン承認、保険金請求処理、または顧客忠誠度プログラムなどのビジネス上の問題における意思決定の自動化の分野に関する。ビジネス・ルール管理システム（ＢＲＭＳ）は、ルール・プロジェクトと連携するよう実装される。ＢＲＭＳは、自然に近い制限言語でのルール編集を可能にし、ルール生成に関する具体的な知識がなくても容易に使用できる。ルールは、ルール・リポジトリ内に、種々のバージョンで保持できる。ＢＲＭＳはさらに、ルール・エンジンによるルールの実行を可能にし、ルール・エンジンはさらに、矛盾するルール、冗長なルール、および欠落したルールを検出するためにルール分析を実行する。もう１つの機能は、テストおよびシミュレーションによるルール検証である。
【０００３】
ビジネス・ルールは、所与のケースに応じて決定を下すための意思決定ポリシを表現する便利な方法である。通常、ケースは、複数の特徴の組み合わせからなり、決定は、単一的な選択の組み合わせとされ得る。ビジネス・ルールは、所与のケースにアクションを適用することにより決定を下す。ビジネス・ルールは、すべてのケースを処理できるわけではなく、条件を充足するもののみ処理できる。したがって、ビジネス・ルールは、通常はテストの組み合わせである条件と、単一的なステップのシーケンスからなるアクションとからなる。１つのビジネス・ルールは、特定のケースのみを処理するので、意思決定プロセス全体のうち一部のみを定義する。残りのケースに関して決定を下すには、さらなるビジネス・ルールが必要である。所与のビジネス・ルールが、関連したケースそれぞれに関して決定を下していれば、そのようなルールの集合は完全である。そうでない場合、ルールによりケースすべては処理されず、ルールを完全なものとするには、さらなるルールの追加が必要である。
【０００４】
保険金請求処理、ローン承認、またはショッピング・カートの割引計算などの問題に関する決定の自動化とは、膨大な数のケースに関して、一貫性があり予測可能な形で決定を下すことである。決定の自動化は、起こり得るケースそれぞれを単一の決定にマップする、ビジネス・ルールを含むビジネス・ポリシを通して達成される。ビジネス・ルールは、多様で複雑な形態の各ケースに関して決定を下す複雑なポリシを表現するための、便利な方法を提供する。各ルールは、ポリシの独立した部分を表現し、ケースのサブセットに関して決定を下す。ビジネス・ルールは、ルールにより処理されるケースを記述する条件と、ケースに関する決定を下すことからなるアクションとからなる。ケースは、複雑で、種々のオブジェクト（ショッピング・カートの中の種々のアイテムなど）からなることもあるので、ビジネス・ルールがケースの選択されたオブジェクトのみ処理する場合もあり、その場合、処理できるオブジェクトの種類を記述するスコープを有する。よって、複雑なポリシを、ビジネス・ルールのセットによって単純な形で表現することができる。
【０００５】
ルールを単位としてポリシを表現する方法は多数あるため、決定の自動化のための優れた表現を判断するには追加の基準が必要である。第１に、表現を、管理しやすく、かつできる限り小さく保持することが重要である。ルールの数は、ルールをできる限り一般的にし、冗長なルールを避けることにより削減することができる。第２に、ビジネス・ポリシの変化に起因するルールの変更を促進するために、異なるルールは相互に独立しているべきである。或るケースに対するビジネス・ポリシが変化する場合、ビジネス・ユーザは、このケースを処理するすべてのルールを新たなポリシに適合させる必要がある。ルールが重複していると、ポリシを変更するために、いくつかのルールの変更が必要とされ得る。ルールが可能な限り一般的であるという事実が重複の理由であれば、ルール編集におけるこのオーバーヘッドは許容できる。しかし、ルールセットの意思決定挙動を変化させずに削除できる冗長なルールがある場合は、許容できない。
【０００６】
決定ポリシは、どの決定がどのケースに対して下されることになるかを定義する。決定ポリシは、同じ特徴を有するケースすべてに対して同じ決定を下し、したがって、意思決定プロセスの基本的な形の一貫性を保証する。このことは、いずれも日常的に多数のケースの処理を伴う、保険金請求処理、ローン承認、または割引決定などの問題に関し重要である。これらのケースのうちのいくつかは、同じ特徴を有することもあり、それらのケースの決定を比較することは、原則として可能であると思われる。したがって、それらのケースの一貫性のある処理は、予測可能な挙動を達成するため、意思決定プロセスを自動化するため、および顧客基盤を満足させるために重要である。
【０００７】
通常、意思決定問題の各ケースは、複数の属性を有する複数のオブジェクトにより特徴付けられる。これは、決定ポリシが、多次元ケース空間から決定のセットへのマッピングであることを意味する。そのような複雑なポリシが、すべてではないがいくつかの属性のみに依存する種々の部分からなる場合、各部分は、プロダクション・ルール（または条件−アクション・ルール）により表現できる。プロダクション・ルールは、ルールにより処理されるケースを記述する条件と、ケースに関する決定を下すことからなるアクションとからなる。さらに、ルールは、ケースのどのオブジェクトがルールにより検査（または照合）されるかを定義するスコープを有する。ケースは、無限数のオブジェクト（ショッピング・カートの中の種々のアイテムなど）からなり得るが、ルールは、ケースの固定数のオブジェクトしか処理しない。
【０００８】
したがって、ルールのセットは、複雑なケースに関する決定ポリシを表現する便利な方法を提供する。各決定ポリシは、いくつかのルールセットにより表現できるが、すべてのルールセットが有効な決定ポリシを表現するとは限らない。具体的には、同じケースに関して異なる決定を下すルールがあることもあり、これらの決定が、矛盾することもある。例えば、ローンを容認するルールと、ローンを拒否するルールとは、両ルールにより処理される何らかのケースがある場合、矛盾する。同じローン依頼について、容認および拒否の両方を行うのは不可能であるため、それらのルールの決定は矛盾する。これは、両決定が有効となるような形の手配が、このケースに対してできないことを意味する。
【０００９】
ローン承認などの問題が、単一の決定を下すことからなるのに対し、保険金請求処理などの他の問題は、多重決定、すなわち保険金請求の容認または拒否、および損害額の判定を伴うこともある。保険金請求を容認するルールと、損害額を判定するルールとは、別々の決定を下しているが、これらの決定は矛盾しない。両決定が有効となるような形での手配が可能である。実際、両決定は、相互に独立しており、問題全体のうちの別々の側面に関係する。これは、或る保険金請求を容認するルールと、同じ保険金請求を拒否するルールとについては当てはまらない。それらのルールは矛盾する決定を有する。
【００１０】
この説明により示されるのは、ルールが多重決定を下す場合には、別々の決定が矛盾するか否かを判断するために、追加の知識が必要であるということである。矛盾する決定についての知識を提供する方法は種々ある。知識は、ルールセットの適切な構造化、またはルール・アクションの適切な表現により、黙示的形式で与えられてもよい。十分に構造化されたルールセットでは、１つのグループの各ルールが単一の決定に関係するように、ルールが別々のグループにまとめられる。したがって、１つのグループの各ルールは、同じ決定に関して択一の選択を行い、１つのグループの２つのルールは、それらが同じケースに関して異なる決定を下す場合、矛盾する。しかしながら、一般的には、そのような、十分に統制のとれた構造化は与えられない。ルール・アクションが、オブジェクトの属性に対する値の代入の形式で表現される場合、２つのルールは、それらが同じオブジェクトの同じ属性に対し異なる値を代入する場合、かつその場合のみ、矛盾する決定を有する。よって、このアクションの形式が、矛盾の検出を可能にする。或る引数に適用される或るメソッドだけで記述され得る、より一般的で抽象的な形式のアクションの場合、これはもはや不可能である。そうしたメソッドは、抽象的な挙動記述を構成するので、どのメソッドが矛盾する決定を下しているのかを明らかにするには、明確な知識が必要とされる。
【００１１】
したがって、ルールセットの一貫性を分析するための汎用システムは、アクションが具体的な代入により表現されているか、または抽象メソッド呼び出しにより表現されているかにかかわらず、任意の形式のアクションにより下される多重決定を下すルールを処理することができなければならない。そのようなシステムは、矛盾する決定を下しているルールと、異なるが関連のない決定を下しているルールとを区別しなければならない。このために、ルール・アナライザは、矛盾するアクションを考慮に入れる必要がある。さらに、ルール制作者は、必ずしもどのルールが矛盾しているのかを知る必要はないが、そうした矛盾が発生するケースを発見しなければならない。よって、一貫性アナライザは、矛盾するルールを伴うケースを特徴付け、レポートできなければならない。それらのケースの記述は、一貫性のある意思決定を保証するためにルール制作者がルールセットを変更できるようにする、必須の情報を提供する。例えば、ルール制作者は、仲裁役を果たして当該ケースに関し好適な決定を強制する、より優先度の高いルールを追加するとともに、既存ルールは変更されないままとしてもよい。
【００１２】
矛盾するルールを検出する既存のシステムおよび方法は、何らかの側面において制限されている。典型的な方法は、同じ種類の決定に関して択一の選択を行うルールのグループを表現するディシジョン・テーブルに、一貫性分析を限定する。例えば、特許文献１、特許文献２、特許文献３、および特許文献４に記載されている方法は、ルールが重複する条件を有するが、そのアクションにおいて異なる場合に、２つのルール間の矛盾をレポートする。ディシジョン・テーブルは、ルール・アクションを完全に記述するので、或るアクション列（またはテーブルの向きによってはアクション行）においてルールが異なるテーブル・エントリを有すると直ちに、２つのルールは矛盾するアクションを有するということになる。こうした方法では、上述の理由により、異なるテーブルに属するルール間の矛盾を発見できないということを理解することが重要である。さらに、当該の方法は、任意形式のルール間の矛盾を発見できない。
【００１３】
非特許文献１の論文に記載の方法は、適切な形式、すなわち、ルールにより照合されるオブジェクトに値を代入するという形式を有する、単一の決定を各ルールが下すと想定する。その結果、この方法は、ルールのスコープ、すなわち、照合されるオブジェクトのタイプと、ルールにより代入される属性とに従ってルールをグループ化する。この方法は、各グループに関して、グループのルールを表現するディシジョン・テーブルを構築し、続いて、重複する条件および異なるアクションを備える行を探す。この方法は、ルール・アクションがこの代入形式を有すると想定するので、抽象メソッド・コールの形式を有するルール・アクション間の矛盾を発見することはできない。
【００１４】
異なる値を同じ属性またはパラメータに代入するルール間の矛盾を検出する方法に関しても、同様の制限が当てはまる。例としては、特許文献５の矛盾チェッカ、およびＩＢＭ（登録商標）  ＷｅｂＳｐｈｅｒｅ（登録商標）Ｉｌｏｇ（登録商標）  ＪＲｕｌｅｓ  ＢＲＭＳ  ７．１の一貫性アナライザがある。それらの方法は、矛盾する代入を有する２つのルールの条件を充足するケースがあるかどうかをチェックする制約充足技術を使用する。そのようなアナライザは、任意の条件を有するルール間の矛盾を発見できるが、ルール・アクションがその代入形式を有すると想定する。アナライザは、矛盾するアクションについての知識を考慮に入れないので、或るローン・オブジェクトに関してメソッド‘ａｃｃｅｐｔ’を呼び出すことによりローンを容認するルールと、同じローン・オブジェクトに関してメソッド‘ｒｅｊｅｃｔ’を呼び出すことによりローンを拒否するルールとの間の矛盾を発見することはない。
【００１５】
特許文献６は単に、２つのルールが、重複する（または一致する）条件および異なるアクションを有する場合に、それらが矛盾していると述べる。当該の方法は、矛盾するルールと、関連がなく矛盾しない決定を下すルールとを区別できない。同様の批判は、項書き換え系について既知の、非合流性分析にも当てはまる。非合流性分析は、同じ初期状態から異なる最終状態につながる、異なるルールのシーケンスを発見するよう、プロダクション・ルールに適応し得る。しかしながら、上記で論じたように、２つの最終状態の違いは、２つのルール・シーケンスにより矛盾する決定が下されたことを必ずしも意味しない。多重決定問題では、各シーケンスにおいて、決定のすべては下されていないことがあり得る。よって、最終状態は、それらのうちの１つにおいていくつかの決定が欠落しているために異なるのかもしれない。したがって、非合流性は、矛盾する決定を伴うケース、または欠落した決定を伴う実行のいずれかがあることを示す。よって、非合流性分析のみでは、矛盾する決定を伴うケースを検出するには不十分である。
【００１６】
論理ルールおよびデフォルト・ルールに関する矛盾検出方法は、矛盾する結論についての知識を使用する（特許文献７の相互排除制約、および非特許文献２の論文のモダリティ矛盾など）。そのような制約の使用は、論理ルール・システムにおいては自然であるが、条件−アクション・ルールに関する矛盾分析に該制約を使用すると、こうした従前の研究によっては対処されないさらなる困難が引き起こされる。論理的枠組みにおいては、単一の状態に複数のルールの結論を蓄積して、それらに制約を課すのは容易である。条件−アクション・ルールに関して同様の機能を達成するには、ルール・アクションの適切な論理的表現を構成する必要がある。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】米国特許第５２５９０６６号
【特許文献２】米国特許第７０２０８６９（Ｂ２）号
【特許文献３】米国特許出願第１０６３９６７４号
【特許文献４】米国特許出願公開第２００３／００１８４８６（Ａ１）号
【特許文献５】米国特許出願公開第２００７／０１６２９６６（Ａ１）号
【特許文献６】米国特許出願第１２０７９０２１号
【特許文献７】米国特許出願公開第２００３／００２３５７３号
【非特許文献】
【００１８】
【非特許文献１】Ｍｏｔｏｉ  Ｓｕｗａ，Ａ．Ｃａｒｌｉｓｌｅ  ＳｃｏｔｔおよびＥｄｗａｒｄ  Ｈ．Ｓｈｏｒｔｌｉｆｆｅ著、‘Ａｎ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｖｅｒｉｆｙｉｎｇ  Ｃｏｍｐｌｅｔｅｎｅｓｓ  ａｎｄ  Ｃｏｎｓｉｓｔｅｎｃｙ  ｉｎ  ａ  Ｒｕｌｅ−Ｂａｓｅｄ  Ｅｘｐｅｒｔ  Ｓｙｓｔｅｍ’
【非特許文献２】Ｃｒａｖｅｎら著、‘Ｅｘｐｒｅｓｓｉｖｅ  ｐｏｌｉｃｙ  ａｎａｌｙｓｉｓ  ｗｉｔｈ  ｅｎｈａｎｃｅｄ  ｓｙｓｔｅｍ  ｄｙｎａｍｉｃｉｔｙ’
【発明の概要】
【発明が解決しようとする課題】
【００１９】
よって、既存の手法のこのような考察から、任意形式の条件およびアクションを有するルール間の矛盾を発見する方法およびシステムがないということは明らかである。さらに、矛盾するルールを検出する既存の方法は、矛盾する２つのルールの一方または両方を変更することにより矛盾が解消されると想定する。よって、それらの焦点は、ルール間の矛盾を検出することに関する問題にある。
【００２０】
問題の一例を記載する。Ｆａｉｒ  Ｃｒｅｄｉｔｓ  Ｉｎｃ．のアナリストであるアランが、ローン額が＄６００ｋ以下であり、かつ返済負担率が３５％以下であれば、ローンを容認するというルールを書く。Ｆａｉｒ  Ｃｒｅｄｉｔｓのレビューアであるライアンが、額が＄３００ｋより大きく、かつ返済負担率が３０％より大きければ、ローンを拒否するというルールを書く。顧客であるジムは、返済負担率３２％で、＄５００ｋの依頼を容認される。顧客であるジェーンは、返済負担率３２％で、＄５００ｋの依頼を拒否される。ジムおよびジェーンの友人でありジャーナリストであるメリーが、Ｆａｉｒ  Ｃｒｅｄｉｔｓでの不公平な顧客の取り扱いについての記事を公表する。Ｆａｉｒ  Ｃｒｅｄｉｔｓは株式市場で２０％の損失を被る。
【００２１】
Ｆａｉｒ  Ｃｒｅｄｉｔｓの経営陣が、ビジネス・ルール管理システム（ＢＲＭＳ）の管理者ボブに、矛盾する決定を伴うすべてのケースをレポートするよう求める。ボブは、ＢＲＭＳツールでレポーティング機能を見つけられず、矛盾ルール分析でさえも問題をレポートしない。ボブは、ＢＲＭＳには深刻な限界があるという結論を下す。
【００２２】
これらの引用文献のいずれも、矛盾する決定を伴うケース群の計算法を示さない。
【課題を解決するための手段】
【００２３】
本発明の第１の側面では、条件−アクション・ルールを管理する方法が提供され、本方法は、いくつかのルールを適用可能にするケースの群（ファミリー）を構築するステップと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを求めて、群の中のケースのサブセットを反復的に構築およびテストするステップとを含む。
【００２４】
タイプ１）すべてのケースが矛盾する決定のみを有するセット；およびタイプ２）すべてのケースが矛盾しない決定のみを有するセットの２タイプのみのケースのセットがあれば、ルール管理システムにとって容易であろう。しかし、実際にはほとんどのセットが、矛盾する決定を伴うケースおよび矛盾しない決定を伴うケースを有するタイプ３であり、それらを矛盾するもののみまたは矛盾しないもののみとして分類するには、さらに分解しなければならない。上記の解決策、および好適な実施形態の解決策は、タイプ３のセットそれぞれを、より小さなサブセットへと分解し、サブセットがタイプ１または２のいずれかになるまで、この分解を反復的に繰り返す。
【００２５】
本方法は、すべて矛盾しない決定を有するケースのサブセットを除去するステップをさらに含むと有利である。
【００２６】
本発明の上記の側面では、決定という用語が使用されるが、本発明の実施形態および他の側面では、適宜調整しながらアクションという用語を使用する。ルールの決定は、とられるアクションに直接リンクされ、例えば、金銭を融資する決定は、金銭を融資するアクションに直接リンクされる。
【００２７】
構築タスクが、論理充足可能性問題として定式化され、矛盾に関するテストが、論理充足不能性問題として定式化される。
【００２８】
より有利なことに、ケースの群およびサブセットが、制約ベースの技術を使用してモデル化される。本実施形態は、論理充足可能性技術および制約ベースの充足可能性技術を、任意形式の２つの条件が同時に充足可能かどうかをチェックするために使用する。
【００２９】
この方法は、多重決定を下すルールに対処できる。同じオブジェクトに関して異なる種類の決定が下される場合（保険金請求を容認または拒否し、保険金請求の損害額を判定するなど）、または複数のオブジェクトに関して同じ種類の決定が下される場合、多重決定が発生する。
【００３０】
好適には、本方法は、矛盾する決定と、関連のない決定とを区別して、誤った矛盾をレポートすることを回避するステップをさらに含む。本方法は、矛盾する決定についての知識を考慮に入れながら、ルール・アクションの十分な分析を実行することにより、この重要なフィルタリングを達成する。開示される方法は、各ルールが全部の決定を下している限り、任意形式の条件−アクション・ルールに関して、この分析を達成する。
【００３１】
より好適には、本方法は、矛盾する決定を伴うケースのサブセットを定義するステップであって、その結果、新たなルールが、その定義を使用して矛盾を除去する、ステップをさらに含む。矛盾する決定は、複数のルールにより異なる形で処理される当該ケースである。したがって、本方法は、ルールセットの意思決定挙動における基本的な形の一貫性欠如について、簡明なレポートを与える。このレポートは、ルールセットが、レポートに列挙されているケースに適用されると、明確な決定を下さないということを説明する。開示される方法は、矛盾する決定を伴うケースの簡潔な記述を、類似ケース群の形式で生じさせる。この記述は、仲裁役を果たすルールを追加することにより一貫性のある意思決定挙動を確立しようとする、ルール作成者のタスクを促進する。例えば、ルール作成者は、矛盾する決定を伴うケース群を処理して所望の決定を強制する、より優先度の高いルールを作成してもよい。このように、本方法は、ルール制作者が、既存のルールの面倒な手直しをせずに、一貫性のある意思決定挙動を確立できるようにする、重要情報の計算法を示す。
【００３２】
本方法は、矛盾する決定を伴うケースを発見するために、矛盾する決定を下しているルール・アクションについての知識を使用する。この知識は、異なる形式で与えることができる。最も明示的な形式は、特定のアクションが両立しないことを述べる公理の形式である。例えば、ローンを容認するアクションと、同じローンを拒否するアクションとは、両立しない。この知識は、決定のスコープ、すなわちその決定が適用されるオブジェクトのタイプを記述するとともに、この決定を下す択一的なアクション（ローンを容認するまたは拒否するなど）を列挙する、決定の定義の形式で提供することも可能である。この知識は、セッター・メソッドが、同じオブジェクトに、ただし異なる値を用いて適用されると、必ず異なる結果を生じさせるということを述べるプロパティなど、オブジェクト・モデルのメソッドのプロパティの形式で与えることも可能である。
【００３３】
なお、本方法は、これらのアクションが矛盾する決定を下しているかどうかを判断するために、ルール・アクションの詳細なモデル（ルール・アクションにおいて発生している‘ローンを容認する’などの抽象メソッド・コールを実装しているＪａｖａ（登録商標）コードのモデルなど）は必要としない。本方法は、両立しないアクションについての知識を与えられると、抽象レベルで一貫性分析を実行する。
【００３４】
両立しないアクションについての知識が不完全であるということが起こり得る。この状況でも、レポートされる問題は有効である。この知識が拡張（または精製）されれば、本方法は、矛盾する決定を伴うさらなるケースを判断し得るが、前にレポートされた問題は、この追加の知識のもとでもなお有効なままである。
【００３５】
本方法は、矛盾する少なくとも２つのルールを適用可能にするケース群を判断するために、制約プログラミングおよび定理証明において詳述されている充足可能性技術を活用する。本発明は、そのような、矛盾する決定を伴うケース群を判断するために、生成・テスト法を使用する。生成段階が、何らかのルールを適用可能にするケース群を作成する一方で、テスト段階は、この群の中の各ケースが矛盾する決定を有するかどうかをチェックする。これを達成するために、矛盾チェッカが、逆問題を解こうと試みる。矛盾チェッカは、ケースに適用可能な各ルールのアクションが、両立しないアクションについての公理に違反しないような、少なくとも１つの当該ケースを、群が含むかどうかを判断する。含めば、その群の中の特定のケースは、矛盾する決定を有さず、群の一部は破棄される必要があることを意味する。含まなければ、その所与の群の各ケースは、少なくとも２つのルールを適用可能にし、それらのルールのアクションは、ルール・アクションについての所与の知識によれば両立しない。したがって、そのような状況では、矛盾する決定を伴うケース群が検出されたことになる。生成タスクが、論理充足可能性問題として定式化されるのに対して、矛盾チェックは、論理充足不能性問題に相当する。
【００３６】
本発明の第２の側面は、条件−アクション・ルールを管理する方法を提供し、本方法は、ルールセット内のルールに関して両立するアクションおよび両立しないアクションを判断するステップと、ルールセット内の少なくとも１つのルールをテストするために、テスト・ケース群を構築するステップと、群の中のケースの両立するサブセットであって、適用可能なルールを該サブセットにおいて適用することが、両立するアクションのみをもたらすような、該両立するサブセットを判断するステップと、群の中で、該両立するサブセットの一部ではないケースから、テスト・サブセットを判断するステップであって、それによって、テスト・サブセット内のケースのうちの１つ以上は、ルールセット内のルールと矛盾するアクションの可能性を有する、ステップと、テスト・サブセット内のすべてのケースが矛盾するアクションを有する場合、テスト・サブセットは矛盾するサブセットであると判断し、その他の場合、そのテスト・サブセットを用いて新たなテスト群を定義して、新たなテスト・サブセットが矛盾すると判断されるまで、新たな両立するサブセットおよび新たなテスト・サブセットの反復的な判断を実行するステップとを含む。
【００３７】
開示された方法は、ルール管理システムに関して、決定の一貫性を達成する助け、すなわち同じケースが同じ決定を受けることを保証する助けとなるので、重要である。
【００３８】
この開示された方法により、ビジネス・ユーザは、決定管理プラットフォームを包括的に管理でき、システムへの全体的な信頼が向上する。
【００３９】
好適には、本方法は、ケースの矛盾するサブセットおよび矛盾するアクションのレポートをまとめるステップをさらに含む。この解決策は、人手で試行錯誤により分析して矛盾するルールを編集することに取って代わる。
【００４０】
より好適には、ケースの各群およびサブセットは、ルールセットからの原子条件により特徴付けられる。
【００４１】
本方法は、矛盾するサブセット内のケースに対する矛盾するアクションを解消するために、ルールセットに追加する、少なくとも１つの仲裁ルールを判断するステップをさらに含むと適切である。
【００４２】
矛盾する決定を伴うケース群の判断は、所望の決定を強制する、より優先度の高い仲裁ルールの追加を可能にする。
【００４３】
本発明の第３の側面によれば、条件−アクション・ルールを管理するシステムが提供され、このシステムは、いくつかのルールを適用可能にするケースの群を構築する処理対象ケース・モデラと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを探して群の中のケースのサブセットを反復的に構築およびテストする矛盾検出器とを含む。
【００４４】
本発明の第４の側面によれば、生成・テスト法を実装する矛盾検出器、および或るルールを適用可能にするすべてのケースを記述する処理対象ケース・モデラが提供される。どのアクションがどのケースに対して実行されることになるかを記述するルールセット結論モデラ、および両立しないルール・アクションについての知識を提供するアクション推論器が、矛盾検出器の機能性の一部を構成するが、これらは、実施形態に応じて、物理的にその一部であるか、別個である。
【００４５】
処理対象ケース・モデラは、或るルールがケース内のいくつかのオブジェクトを照合し、これらのオブジェクトがルールの条件を充足することを述べる、ルールセット適用性グラフを構築する。ルールセット適用性グラフは、個々のルールの適用性グラフの論理和を表現する。ルールの適用性グラフは、ルールにより処理されるケースを簡潔な論理形式で記述する。
【００４６】
ルールセット結論モデラは、適用可能なルールのアクションがルールセットによって実行されることを記述するルールセット・インプリケーション・グラフを構築することにより、ルールセットの意思決定挙動を、黙示の論理形式でモデル化する。実際は、ルールセット・インプリケーション・グラフは、個々のルールのインプリケーション・グラフの論理積を表現する。ルールのインプリケーション・グラフは、ケースが、ルールにより照合されるオブジェクトを含み、これらのオブジェクトが、ルールの条件を充足すれば、ルール・アクションが、ルールセットにより実行されるということを記述する。ケースを与えられると、続いて論理問題ソルバが、適用可能なルールを判断して、実行されるアクションを導き出すことができる。これらのアクションのうちのいくつかが両立しなければ、論理問題ソルバは、与えられたケースに対して、ルールセット・インプリケーション・グラフの解を発見できない。よって、このケースが矛盾する決定を有することが示される。
【００４７】
アクション推論器は、矛盾するアクションについての知識を管理する。アクション推論器は、この知識を使用して、ルールセット内で発生するルール・アクション間の非両立性制約を生成する。ルールが、アクションのシーケンスを実行することにより複数の決定を下していれば、アクション推論器は、代入を処理し、これらの代入に起因して変更される中間式の値を導き出す。さらに、アクション推論器は、十分な変換により（すなわち、異なるシーケンスのアクションを同じ順序にすることにより）、異なるアクション・シーケンスの比較を達成する。
【００４８】
矛盾検出器は、上述の生成・テスト法を実行することにより、矛盾する決定を下すケース群を探す。したがって、矛盾検出器は、ケース群生成器および矛盾チェッカからなる。ケース群生成器は、処理対象ケース、すなわち、少なくとも１つのルールを適用可能にするケースの空間中を探索する。ケース群生成器は、矛盾チェッカにより破棄された、または矛盾する決定を伴うケースについてのレポート中に既に含められた、前に生成された候補を除去するために、ＮＧ（ｎｏｇｏｏｄ）ストアを使用する。当初、このＮＧストアは空である。処理対象ケースの新たな群を発見するために、ケース群生成器は、ルールセット適用性グラフおよびＮＧを、処理対象ケース・ソルバに渡す。処理対象ケース・ソルバが、ルート・ノードを真でマークし、すべてのグラフ演算を考慮する、ルールセット適用性グラフおよびＮＧのラベル付けを発見しなければ、適用可能なルールはなく、分析全体が停止する。その他の場合、ケース群生成器は、グラフ中の命題ノードの真理値を検査することにより、グラフのラベル付けから、処理対象ケース群を抽出する。続いて、ケース群生成器は、このケース群を矛盾チェッカに送る。
【００４９】
矛盾チェッカは、処理対象ケース群、ルールセット・インプリケーション・グラフ、およびルールセット・インプリケーション・グラフ中で発生している両立しないアクションについての制約の論理積を表現する、非矛盾グラフを構築する。矛盾チェッカは、アクション推論器にこれらの制約を要求する。矛盾チェッカは、非矛盾グラフを非矛盾グラフ・ソルバに渡す。非矛盾グラフ・ソルバが、グラフを充足するラベル付けを発見すれば、候補ケース群は、矛盾する決定を有しない少なくとも１つのケースを含む。矛盾チェッカは、このケースならびに類似のケースの除去を試みる。したがって、矛盾チェッカは、非矛盾グラフ・ソルバが生じさせたラベル付けを検査することにより、精製されたケース群を構築する。精製された群の中のケースは、非矛盾グラフ内の命題ノードを、このノードが真とラベル付けされている場合、かつその場合のみ充足する。したがって、矛盾チェッカは、これらの命題ノードおよびそれらのラベルを使用して、精製された群の記述を生成する。続いて、矛盾チェッカは、この精製された群を、ケース群生成器に送り、ケース群生成器は、それをＮＧに変換し、よって、精製された群の各ケースを除去する。続いて、生成器は、処理対象ケースの新たな群を生じさせ、方法が反復される。しかし、非矛盾グラフ・ソルバが、非矛盾グラフを充足するラベル付けを発見しなければ、非矛盾グラフに解はなく、これは、与えられたケース群が矛盾する決定を有することを意味する。その結果、矛盾チェッカは、このケース群を最終レポートに含める。
【００５０】
特定の実施形態では、矛盾チェッカは、精製された群をケース群生成器に送る前に、精製された群を、一貫性に基づく解釈法を使用して一般化する。
【００５１】
本方法は、矛盾する決定を伴うさらなるケース群を発見するために反復される。このために、矛盾チェッカは、矛盾する決定を伴うケースをレポートに含めたことを、ケース群生成器に通知する。その結果、ケース群生成器は、そのＮＧストアに当該の群の再生成を防ぐＮＧを追加する。続いて、ケース群生成器は、新たな群を生成して、それを矛盾チェッカに渡そうと試みる。本方法は、ケース群生成器が群をそれ以上発見しなくなると停止する。
【００５２】
本発明の第５の側面によれば、矛盾するルールを伴うケースを検出するための、コンピュータ可読コードが記憶されたコンピュータ可読記録媒体を含む、コンピュータ・プログラム製品が提供され、前記コンピュータ可読コードは、コンピュータ・システム上にロードされて実行されると、いくつかのルールを適用可能にするケースの群を構築するステップと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを探して群の中のケースのサブセットを反復的に構築およびテストするステップとを実行する。
【００５３】
本発明の第６の側面によれば、コンピュータ可読媒体に記憶されデジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムが提供され、コンピュータ・プログラムは、前記プログラムがコンピュータ上で実行されると請求項１〜４のいずれかに記載の方法を実行する、ソフトウェア・コード部分を含む。
【００５４】
以下、添付の図面を参照しながら、例のみを用いて本発明の実施形態について記載する。
【図面の簡単な説明】
【００５５】
【図１】特定のケースに関して矛盾する決定を下すルールの例を提供する表である。
【図２】ローン額軸および返済負担率軸を用いた２次元ケース空間におけるルールを示す状態図である。
【図３】好適な実施形態のコンポーネント図である。
【図４】好適な実施形態のルール管理システムのコンポーネント図である。
【図５】ルールセットにより処理されるケースを簡潔な論理形式で記述する、ルールセット適用性グラフである。
【図６】適用可能なルールのアクションがルールセットにより実行されることを記述する、ルールセット・インプリケーション・グラフである。
【図７】コンポーネント間の相互作用を含む、矛盾検出器のコンポーネント図である。
【図８】図１に与えられたルールセットに関する、矛盾検出器の実行追跡ステップの概略フローチャートである。
【図９】図８の１つの追跡ステップをより詳細に示す。
【図１０】図８の１つの追跡ステップをより詳細に示す。
【図１１】図８の１つの追跡ステップをより詳細に示す。
【図１２】図８の１つの追跡ステップをより詳細に示す。
【図１３】図８の１つの追跡ステップをより詳細に示す。
【図１４】図８の１つの追跡ステップをより詳細に示す。
【図１５】処理対象ケース生成器のコンポーネント図である。
【図１６】量化子を含まないルール・インスタンス適用性グラフ１５４の例である。
【図１７】図１６の例の解決したルール・インスタンス適用性グラフ１５８である。
【図１８】相互作用フローを含む矛盾チェッカのコンポーネント図である。
【図１９】図１０の例の解決した非矛盾グラフである。
【図２０】図１２の例の非矛盾グラフである。
【図２１】図１４の例の非矛盾グラフである。
【発明を実施するための形態】
【００５６】
ルールは、ローン依頼の容認または拒否などの特定の決定が、単一のケースについてのみではなくケースのセット全体について下されることを表すための便利な方法である。特に、ルールによって意思決定者は、特定のケースについて下される決定を類似ケース群に拡張することにより、それらの決定を一般化できる。例えば、３５％の返済負担率に対して＄２００，０００のローン依頼を容認する決定は、最大＄６００，０００までのローン依頼および最大３５％までの返済負担率に一般化され得る。この一般化ステップの結果は、ローン依頼の額が＄６００，０００以下であり、かつその返済負担率が３５％以下であれば、そのローン依頼を容認するルールである。これとは独立して、４０％より大きい返済負担率に対する＄３００，０００のローンを拒否する決定は、＄３００，０００超を依頼する、３０％より大きい返済負担率のローンに対して一般化され得る。この第２の一般化ステップの結果は、ローン依頼の額が＄３００，０００より大きく、かつその返済負担率が３０％より大きければ、そのローン依頼を拒否するルールである。それらのルールを、＄５００，０００かつ３２％の返済負担率のローン依頼に適用すると、ローンには、拒否および容認の両方がなされる。したがって、或るローンが拒否され、かつ容認されるような形での手配はできないので、これらのルールの意思決定挙動には一貫性がない。これらの決定は矛盾しており、そのうち１つのみが選ばれるべきである。
【００５７】
矛盾する決定を伴うケースは、いくつかの理由で発生する可能性がある。第１に、それらは、既存のケースに関する決定を一般化するときにもたらされ得る。一般化ステップは、互いに独立して行われて、それらに特有の理由付けに従うこともある（既存のケースに関する決定を一般化する最も一般的な条件を備えるルールを発見するなど）。さらに、ルールの変更は他のルールとの重複をもたらし得るので、矛盾する決定を伴うケースは、既存のルールを変更するときにもたらされる可能性がある。一貫性欠如は、ルール間の予期せぬ相互作用が原因で得られ、共同ルール・オーサリングの文脈のみでなく、ルールが単独のルール作成者により定義される場合でも発生する。実際は、ルールの性質により、一貫性欠如はほぼ避けられない。ルールは、複雑な決定ポリシの簡潔かつ単純な表現を構成する。各ルールは、互いに独立して決定ポリシの種々の部分を表現する。より一般的なルールは、より短くより単純なルール条件の記述につながり、さらにルールの総数も削減するため、より具体的なルールよりも、より一般的なルールが好まれる。しかしながら、ルール条件の高度な一般性は、ルール条件間の重複、さらに、そうした重複するルールが矛盾する決定を下す場合には一貫性欠如につながりやすい。したがって、問題は、ケース空間のエリア全体が、単一のルールで処理可能な各ケースのブロックにより覆われなければならないということに由来する。
【００５８】
ルール間の矛盾を解消する典型的な手法は、条件が重複しなくなるように、一方または両方のルールの条件を変更することである。
【００５９】
この典型的な手法には、いくつかの欠点がある。第１に、この手法は、或るケースについて矛盾する決定を下す、すべてのルールを識別することを必要とする。実際は、３つ以上のルールが各ケースについて矛盾する決定を下すことがあり得る。第２に、ルールの重複がなくなるよう保証するには、ルールの変更が必要である。
【００６０】
単純な手法は、ルールのうちの１つを勝者であると宣言して、それに他のルールよりも高い優先度を与えることである。
【００６１】
さらなる手法は、任意の重複を回避するために、ルール条件を変更することである。この変更は、論理積および論理和の入れ子構成を含むルール条件のより複雑な記述につながることもある。
【００６２】
別の手法では、ルールは、より特化されたいくつかのルールへと分割可能である。これらの方法はすべて、既存のルールの面倒な調査を必要とする。
【００６３】
一方、実施形態により採用される手法は、矛盾する決定を有するケースに直接対処することである。ルール作成者は、既存のルールを手直しするのではなく、これらのケースについて正しい決定を下して仲裁役を果たす、より優先度の高いルールを追加できる。単一の仲裁ルールは、矛盾する決定を有する類似ケース群全体について決定を下してもよい。適切に定義された場合、仲裁ルールは、他のルールと同じ形式を有する。実施形態の手法は、ルールの単純さおよび一般性を保つ一方で、仲裁ルールのレイヤを追加することにより一貫性欠如を処理する。実施形態の手法は、矛盾するルールの識別をもはや必要としない。この手法は、単に、矛盾する決定を伴うケース群の検出を必要とする。
【００６４】
ルール・エンジンは矛盾するルールを何らかの順序で実行するので、ルール間の矛盾を解消する必要はないという主張があるかもしれない。実際、いくつかのルールが矛盾する場合、そのルールのうちの１つの決定のみが有効となり、例えば、ローンが容認され、かつ拒否される状況に遭遇することはあり得ない。このため、矛盾する決定は、ルール・エンジンがルールを単一のケースに適用した場合は顕在化しないと思われる。しかしながら、類似ケースに対して複数回、エンジンが呼び出されると、矛盾が明らかになることがある。矛盾するルールがある場合、最終的に下される決定は、エンジンがルールを実行する順序による。この順序は、等価なケースに対しても、エンジンの異なる呼び出しに対しても異なり得る、二次的基準によるかもしれない（オブジェクト名、内部メモリ・アドレスなど）。結果として、エンジンは、複数回呼び出されると、等価なケースに対して異なる決定を下し得る。したがって、このルール・ベースのシステムは、複数回呼び出されると、同じ入力に対して異なる出力を生じさせる。このように、矛盾するルールは、ルール・エンジンの不規則な挙動の原因となるのであり、この挙動は、エンジン実行のより大きなサンプリングの中では観測できるはずである。
【００６５】
ただし、矛盾するルールが、不規則な挙動の唯一の理由ではない。ルール・ベースのシステムは、複数のルールの順序が決定を下すのに重要である場合にも、同じ入力に対して異なる出力を生じさせ得る。例えば、保険金請求処理のためのルールセットは、損害額を判定することを含め、請求が容認されるか拒否されるかを、ルールのシーケンスを使用して決定しなければならない。ルール・エンジンは、等価な保険金請求に複数回適用されると、ルールを異なる順序で実行するかもしれない。それゆえ、この例では、ルール・エンジンは、同じ入力に対して異なる出力を生じさせることになる。
【００６６】
欠落した決定が、異なる出力が得られるもう１つの理由である。ルールセットは複数の決定を下すことができるので、矛盾する決定を伴うケースを探すときには、結果として生じる出力状態を比較するのでは不十分である。異なる出力状態は、１）矛盾する決定；または２）欠落した決定の問題に起因する。したがって、これら２つの問題を区別するためにより深い分析が必要である。
【００６７】
したがって、矛盾ルール・アナライザは、矛盾する決定を下すルール・アクション（同じ保険金請求を容認および拒否するなど）と、関連のない決定を下すルール・アクション（保険金請求を容認すること、およびその損害額を判定することなど）とを区別しなければならない。矛盾する決定と、関連のない決定とを区別するために、アナライザは、ルール・アクションについての追加の知識を必要とする。例えば、同じ保険金請求を容認するアクションおよび拒否するアクションは、それらが矛盾する決定を下すので両立しないということを、アナライザが知る必要がある。
【００６８】
図１は、特定のケースに関して矛盾する決定を下すルールの例を提供する表（表１：ルール・プロジェクト１）である。ルールは、ＩＢＭ（登録商標）  ＷｅｂＳｐｈｅｒｅ（登録商標）  Ｉｌｏｇ（登録商標）  ＪＲｕｌｅｓ  ＢＲＭＳ  ７．１のビジネス・アクション言語（ＢＡＬ）で書かれる。ルールは、ローン依頼の額およびその返済負担率に応じて、ローン依頼の容認または拒否について決定を下す。ルールはさらに、ローン依頼を、低リスクまたは高リスクなどのカテゴリに分類してもよい。例えば、ルールｄ１は、ローンの返済負担率が３５％以下であり、ローンの額が＄６００ｋ以下であれば、ローンを容認する。
ルールｄ１：
ローンをＬｏａｎ１とする；
仮定条件  Ｌｏａｎ１の返済負担率は３５％以下である  および
Ｌｏａｎ１の額は＄６００，０００以下である
その場合  Ｌｏａｎ１を容認する；
【００６９】
ルールｄ２は、ローン依頼の返済負担率が３０％より大きく、ローン依頼の額が＄３００ｋより大きければ、ローン依頼を拒否する。
ルールｄ２：
ローンをＬｏａｎ１とする；
仮定条件  Ｌｏａｎ１の返済負担率は３０％より大きい  および
Ｌｏａｎ１の額は＄３００，０００より大きい
その場合  Ｌｏａｎ１を拒否する；
【００７０】
これらのルールは、例えば、３５％の返済負担率および＄６００ｋの額を有するローン依頼を、容認し、かつ拒否する。よって、この矛盾するルールは、図２の網掛けで示されたエリアに示されるように、当該ケースに対して矛盾する決定を下す。
【００７１】
ルールｄ３およびｄ４は、ローンの額が＄１０００ｋより大きいか、またはローンの返済負担率が４０％より大きければ、ローンを拒否する。
ルールｄ３：
ローンをＬｏａｎ１とする；
仮定条件  Ｌｏａｎ１の返済負担率は４０％より大きい
その場合  Ｌｏａｎ１を拒否する；
ルールｄ４：
ローンをＬｏａｎ１とする；
仮定条件  Ｌｏａｎ１の額は＄１，０００，０００より大きい
その場合  Ｌｏａｎ１を拒否する；
【００７２】
最後に、ルールｃ１は、ローンの額が＄３００ｋを超過すると、ローンに高リスクを割り当てる。
ルールｃ１：
ローンをＬｏａｎ１とする；
仮定条件  Ｌｏａｎ１の額は＄３００，０００より大きい
その場合  Ｌｏａｎ１を高リスクに分類する；
【００７３】
＄２０００ｋのローン依頼および５０％の返済負担率は、いくつかのルール、すなわちｄ２、ｄ３、ｄ４およびｃ１を適用可能にすることになる。ルールｄ２、ｄ３、ｄ４はすべてこのローン依頼を拒否するので、矛盾していない。さらに、ルールｃ１は、ローンを容認するか拒否するかの決定とは独立して、このローンを高リスクに分類する。したがって、ローンを高リスクに分類することは、このローンを拒否することと両立する。よって、この特定のローン依頼は、異なるが矛盾しない複数の決定をもたらす。
【００７４】
図２は、ローン額軸および返済負担率軸を用いた２次元座標系としてケース空間を示す状態図である。図２は、単一のローンに対するルールセットの意思決定挙動を示す。ルールにより処理されるケースは、矩形ブロックに対応する。異なる形式の陰影は、ローンの容認または拒否を表現する。矛盾する決定を伴うケースは、異なる形式のルール（異なる陰影により示されている）が重複する空間において得られる。
【００７５】
ＩＢＭ（登録商標）  ＷｅｂＳｐｈｅｒｅ（登録商標）  Ｉｌｏｇ（登録商標）  ＪＲｕｌｅｓ  ＢＲＭＳ  ７．１のものなど、オブジェクト指向のルール言語では、ルール・アクションは、メソッド呼び出しの点において抽象形式で表現できる。例えば、ローンのクラス宣言は、ローン容認（ｖｏｉｄ  ａｃｃｅｐｔ（））、ローン拒否（ｖｏｉｄ  ｒｅｊｅｃｔ（））、およびローン分類（ｖｏｉｄ  ｃｌａｓｓｉｆｙ（…））の３つのアクションを表現する３つのメソッドを有し、‘ｖｏｉｄ’という語はメソッドを定義する。
ｃｌａｓｓ  Ｌｏａｎ  ｛
ｖｏｉｄ  ａｃｃｅｐｔ（）；
ｖｏｉｄ  ｒｅｊｅｃｔ（）；
ｖｏｉｄ  ｃｌａｓｓｉｆｙ（ＲｉｓｋＣａｔｅｇｏｒｙ  ｒｉｓｋ）；
｝
【００７６】
この例示のローン・クラス宣言は、メソッドの引数および戻り型を定義するが、それらが果たす役割については何らの情報も提示しない。クラス宣言は、メソッド呼び出しｘ．ａｃｃｅｐｔ（）およびｘ．ｒｅｊｅｃｔ（）が、ローンｘに対する承認決定のオプションを構成することを説明しない。さらに、クラス宣言は、種々のリスク・カテゴリｙに関するメソッド呼び出しｘ．ｃｌａｓｓｉｆｙ（ｙ）が、ローンｘに関する分類決定のオプションを構成することを説明しない。したがって、意思決定プロセスに関するクラス・メソッドの役割を理解するには、決定のさらなる定義が必要である。
【００７７】
本実施形態は、そのような決定の定義を、矛盾する決定を下すアクションを検出するために使用する。決定に関する種々のオプションは相互排他的であるので、アナライザは、アクション‘ｘを容認’および‘ｘを拒否’を表現するメソッド呼び出しｘ．ａｃｃｅｐｔ（）およびｘ．ｒｅｊｅｃｔ（）が両立しないということを導き出すことができる。さらに、アナライザは、リスクｙおよびｚが異なれば、メソッド呼び出しｘ．ｃｌａｓｓｉｆｙ（ｙ）およびｘ．ｃｌａｓｓｉｆｙ（ｚ）は両立しないという結論を下すことができる。
【００７８】
決定の明示的な定義は、決定サポート・システムにおいて普通であり、矛盾する決定についての知識を提供する便利な方法を構成する。決定のそのような定義は、ルール・ベースの意思決定の特徴、すなわち複数のオブジェクトに対して複数の種類の決定が下されるということを、考慮に入れる必要がある。したがって、ルールセットの決定の定義は、選択肢のリストに加えて、決定のスコープ、すなわち決定が下される対象のオブジェクトの数およびタイプを、考慮に入れなければならない。例えば、ローン承認決定は、ローン・オブジェクトに対して下される。したがって、この決定のスコープは、ローン・オブジェクトのスコープである。その結果、決定のオプションは、そのスコープのオブジェクトに適用されるアクションである。例えば、タイプローンのオブジェクトＬｏａｎ１に対するローン承認決定は、オブジェクトＬｏａｎ１を容認するオプション、またはこのオブジェクトを拒否するオプションを有する。この決定の定義について考えられるシンタックスは、キーワード‘決定’の後に続く決定の名称およびスコープの宣言ならびにオプションの記述からなる。スコープ宣言は、ルールのスコープの宣言と同じシンタックス、すなわち、‘ローンをＬｏａｎ１とする’などのオブジェクト宣言のリストを有してもよい。オプション記述は、句‘オプションは＜ａｃｔｉｏｎ１＞すること，＜ａｃｔｉｏｎ２＞すること，…，および＜ａｃｔｉｏｎ  ｎ＞することである’を使用する。アクションは、ルール・アクションと同じシンタックスを有する。したがって、ローン承認決定は、以下のように定義できる。
決定  ＬｏａｎＡｐｐｒｏｖａｌ
ローンをＬｏａｎ１とする；
オプションはＬｏａｎ１を容認することおよびＬｏａｎ１を拒否することである；
【００７９】
他の決定は、同じアクションの異なる適用の中から選択を行わなければならないかもしれない。この場合、アクションは、さらなる引数に適用され、オプションは、それらの引数の値において異なる。例えば、ローン分類決定は、ローン・オブジェクトを或るリスクに分類することであり、リスクは、低リスクまたは高リスクである。したがって、そのような決定のオプション記述は、これらの引数、そのタイプ、および場合によりそのドメインを宣言する。例えば、ローン分類決定は、以下のように定義できる。
決定  ＬｏａｎＣｌａｓｓｉｆｉｃａｔｉｏｎ
ローンをＬｏａｎ１とする；
オプションはＬｏａｎ１をＲｉｓｋ１に分類することである
ここでＲｉｓｋ１は｛低リスク，高リスク｝の中のリスク・カテゴリである；
【００８０】
決定の定義が利用可能であれば、矛盾ルール・アナライザはそれから、両立しないアクションについての知識を抽出できる。例えば、矛盾ルール・アナライザは、ローンを容認し、かつ拒否することが不可能であることを導き出してもよい。しかしながら、決定の定義が利用可能でなければ、それらの非両立性制約は明示的に規定される必要がある。この場合もやはり、非両立性制約は、制約の対象であるオブジェクトを記述するスコープを有する。さらに、非両立性制約は、すべて相互に両立しないアクションのセットを列挙する。そのような非両立性制約について考えられるシンタックスは、キーワード‘制約’から始まり、その後に、スコープの宣言および非両立性記述が続く。非両立性記述は、句‘＜ａｃｔｉｏｎ１＞すること，＜ａｃｔｉｏｎ２＞すること，…，および＜ａｃｔｉｏｎ  ｎ＞することは相互に両立しない’を使用する。例えば、同じローンを容認および拒否することの非両立性は、以下のように表すことができる。
制約：
ローンをＬｏａｎ１とする；
Ｌｏａｎ１を容認することおよびＬｏａｎ１を拒否することは相互に両立しない；
【００８１】
３つ以上のアクションが列挙される場合、これらのアクションは、すべて相互に両立しない。非両立性制約は、決定間の対の矛盾を表す。
【００８２】
非両立性は、同じアクションが異なる引数に適用される場合にも発生する可能性がある。それらの非両立性制約は、そのスコープの一部として当該の引数を宣言しなければならない。さらに、この非両立性制約は、引数が異なることを述べる条件部を含む。例えば、或るローンを異なる２つの形で分類することの非両立性は、以下のように述べることができる。
制約：
ローンをＬｏａｎ１とする；
リスク・カテゴリをＲｉｓｋ１とする；
リスク・カテゴリをＲｉｓｋ２とする；
仮定条件  Ｒｉｓｋ１がＲｉｓｋ２と等しくない
その場合  Ｌｏａｎ１をＲｉｓｋ１に分類することおよびＬｏａｎ１をＲｉｓｋ２に分類することは相互に両立しない；
【００８３】
図３を参照する。好適な実施形態のルール管理システムのためのコンピュータ・システム・ノード１０の配置図を示す。コンピュータ・システム・ノード１０は、他の多数の汎用または専用コンピューティング・システム環境もしくは構成とともに動作可能な、コンピュータ・システム／サーバ１２を含む。コンピュータ・システム／サーバ１２とともに使用するのに適していると考えられる周知のコンピューティング・システム、環境もしくは構成、またはそのいずれかの組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システムおよび上記のシステムもしくはデバイスのいずれかを含む分散型クラウド・コンピューティング環境、ならびに同様のものがあるが、これらに限定はされない。
【００８４】
コンピュータ・システム／サーバ１２については、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈において記載することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含み得る。コンピュータ・システム／サーバ１２は、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において具現化されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム・ストレージ媒体にあるとよい。
【００８５】
コンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態である。コンピュータ・システム／サーバ１２のコンポーネントは、１つ以上のプロセッサまたは処理ユニット１６、システム・メモリ２８、およびシステム・メモリ２８を含む様々なシステム・コンポーネントをプロセッサ１６に結合するバス１８を含み得るが、これらに限定はされない。
【００８６】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサもしくはローカル・バスを含む、いくつかのタイプのバス構造の任意のもの１つ以上を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスがある。
【００８７】
コンピュータ・システム／サーバ１２は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能な任意の利用可能な媒体としてよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方を含む。
【００８８】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０もしくはキャッシュ・メモリ３２またはその両方など、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２はさらに、このほか、リムーバブル／非リムーバブルおよび揮発性／不揮発性のコンピュータ・システム・ストレージ媒体を含み得る。単なる例として、非リムーバブルの不揮発性磁気媒体（図示はしておらず、典型的には「ハード・ドライブ」と呼ばれる）に対する読み取りおよび書き込みのために、ストレージ・システム３４が提供され得る。図示してはいないが、リムーバブル不揮発性磁気ディスク（例えば「フレキシブル・ディスク」）に対する読み取りおよび書き込みのための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などのリムーバブル不揮発性光ディスクに対する読み取りもしくは書き込みのための光ディスク・ドライブが提供され得る。そのような場合には、それぞれが、１つ以上のデータ媒体インターフェースによってバス１８に接続され得る。さらに図示および後述するように、メモリ２８は、本発明の実施形態の機能を実行するよう構成されたプログラム・モジュールのセット（例えば少なくとも１つ）を有する少なくとも１つのプログラム製品を含むとよい。
【００８９】
ルール管理システム４０は、メモリ２８に記憶される。
【００９０】
コンピュータ・システム／サーバ１２はさらに、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つ以上の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２と対話できるようにする１つ以上のデバイス、もしくはコンピュータ・システム／サーバ１２が１つ以上の他のコンピューティング・デバイスと通信できるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、またはそのいずれかの組み合わせと通信するとよい。そのような通信は、Ｉ／Ｏインターフェース２２を介して発生し得る。さらに、コンピュータ・システム／サーバ１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）もしくはパブリック・ネットワーク（例えばインターネット）、またはそのいずれかの組み合わせなどの１つ以上のネットワークと、ネットワーク・アダプタ２０を介して通信できる。図示されているように、ネットワーク・アダプタ２０は、コンピュータ・システム／サーバ１２の他のコンポーネントとバス１８を介して通信する。図示されてはいないが、当然のことながら、他のハードウェアもしくはソフトウェアまたはその両方のコンポーネントが、コンピュータ・システム／サーバ１２とともに使用され得るであろう。例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどがあるが、これに限定はされない。
【００９１】
図４は、好適な実施形態のルール管理システム４０のコンポーネント図である。ルール管理システム４０は、ルールセット５０と、決定の定義５２のセット（または非両立性制約のセット）とを入力として取り込み、矛盾する決定を伴う類似ケース群５４を計算する。ルール管理システム４０は、処理対象ケース・モデラ４２、ルールセット結論モデラ４４、アクション推論器４６、矛盾検出器４８、およびＮＧストア４９を含む。
【００９２】
図４で矩形のボックスに示されているコンポーネント４０〜４９は、図４で楕円形で示されている入力および出力５０〜５９と相互作用する。
【００９３】
処理対象ケース・モデラ４２は、ルールセット５０入力を、ルールセットの処理対象ケースを簡潔、論理的な制約ベースの形式で記述する、ルールセット適用性グラフ５６出力へと変換する。処理対象ケース・モデラ４２は、エッジにより接続されたルート・ノードおよび子ノードを有するデータ木構造として、ルールセットの処理対象ケースおよびアクションを黙示的形式で表現する、制約グラフを構築する。ケースおよびアクションは、論理式からなり、処理対象ケース・モデラ４２は、ルールセット内の各ルールの論理式を再帰的にトラバースし、訪問された論理式それぞれを、グラフ内のノードにマップする。処理対象ケース・モデラ４２は、一意の表現を保証する。すなわち、同じ式の２度の出現は、同じグラフ・ノードにマップされる。処理対象ケース・モデラ４２は、ルールにより照合される数、文字列リテラル、およびオブジェクトなどのプリミティブ式を葉ノードにマップし、算術演算、比較、オブジェクトの属性へのアクセスなどの複合式を内部ノードにマップし、内部ノードは、演算子によりラベル付けされ、それらの式を表現するノードへの外向きのエッジを有する。ルールにより照合されるオブジェクトを表現する葉ノードは、グラフのサイズを縮小するために、各ルールのタイプおよび数値により正規名を新たに命名される。例えば、ルールが、‘ローン’と呼ばれるオブジェクトを照合する場合、モデラは、それを‘Ｌｏａｎ１’と新たに命名する。処理対象ケース・モデラ４２は、このルールの各テストの論理積（‘ａｎｄ’論理演算）を表現し、かつこれらのテストを表現するノードへの外向きのエッジを有するグラフ・ノードを導入することにより、ルールセットのルールセット適用性グラフを構築する。最後に、処理対象ケース・モデラ４２は、ルールセット適用性グラフ５６のルート・ノードを導入し、ルート・ノードは、種々のルール適用性グラフの論理和を表現し、これらルール適用性グラフを表現するノードへの外向きのエッジを有する。‘処理対象ケース’は、他のグラフ・ノードの論理演算を考慮するグラフ・ノードの論理ラベル‘真’または‘偽’を有するグラフである。処理対象ケースは、ルート・ノードが‘真’によりラベル付けされたものである。処理対象ケース・モデラ４２は、ルールの条件のみを考慮に入れ、ルールのアクションは考慮に入れない。
【００９４】
ルールセット結論モデラ４４は、ルールセット５０入力を、ルールセット・インプリケーション・グラフ５８出力へと変換する。ルールセット・インプリケーション・グラフ５８は、ルールセットによりどのケースに対してどのアクションが実行されるかを記述する。
【００９５】
アクション推論器４６は、ルールセット・インプリケーション・グラフ５８入力および決定の定義５２入力を与えられると、このグラフにおける非両立性制約グラフ５９出力を導き出す。非両立性制約グラフ５９は、ルールセットにおいて発生するアクション間の非両立性および制約を記述する制約グラフである。
【００９６】
矛盾検出器４８は、ルールセット適用性グラフ５６、ルールセット・インプリケーション・グラフ５８、および非両立性制約グラフ５９を入力として使用して、矛盾する決定を伴うケース群５４出力を計算する。
【００９７】
ＮＧストア４９は、矛盾する決定を伴わないケース群を破棄するため、および既に記録済みである矛盾する決定を伴うケース群を破棄するために、保持される。２種類目のＮＧは、メソッド全体の反復、ひいては矛盾する決定を伴うケース群のいくつかまたはすべての計算を可能にする。
【００９８】
図５は、ルールセットにより処理されるケースを簡潔な論理形式で記述するために、処理対象ケース・モデラ４２により構築される、例示のルールセット適用性グラフ５６である。ルールセット適用性グラフは、個々のルールの適用性グラフ、すなわちルール適用性グラフの、論理和を表現する制約グラフである。ルールの適用性グラフは、ルールにより照合され、ルールの条件を充足するオブジェクトがケース内に存在することを述べる。したがって、ルール適用性グラフは、ルール条件の論理的定式化の存在量化を表現する。図５は、例示のルールｄ１、ｄ２、ｄ３、ｄ４、ｃ１のルールセット適用性グラフを示す。読みやすさのために、グラフは、変数‘？Ｌｏａｎ１’がタイプローンを有するという条件を省略することで、わずかに単純化されている。
【００９９】
図６は、適用可能なルールのアクションがルールセットにより実行されることを記述するために、ルールセット結論モデラ４４により構築される、例示のルールセット・インプリケーション・グラフ５８である。ルールセット・インプリケーション・グラフ５８は、個々のルール（ｄ１、ｄ２、ｄ３、ｄ４、ｃ１）のインプリケーション・グラフの論理積を表現する制約グラフである。ルールのインプリケーション・グラフは、ルールにより照合されるケース内のすべてのオブジェクトに対して、照合されたオブジェクトがルール条件を充足すればルール・アクションがルールセットにより実行されることを記述する。よって、インプリケーション・グラフは、各ルールに関してｉｍｐｌｙ（含意）ノードにより表現されるインプリケーションの全称量化を表現する。この論理的定式化は、アクションを論理項として表現し、１項述語‘ｉｓＤｏｎｅ’を使用して、アクションがルールセットにより実行されることを示す。例えば、ルールｄ１は、タイプローン（ｄ１グラフ・ノード‘ｆｏｒａｌｌ’からグラフ・ノード‘？ｌｏａｎ１’への接続を参照）のオブジェクトｘすべてについて（ノード‘ｆｏｒａｌｌ’参照）、ｘがローンであり、ｘの返済負担率が３５％以下であり、ｘの額が＄６００，０００以下であれば、アクション‘ｘを容認’が行われること（ｄ１グラフ・ノード‘ｉｓＤｏｎｅ’および‘容認’、ならびにグラフ・ノード‘？ｌｏａｎ１’への接続を参照）を述べるインプリケーション・グラフを有する。インプリケーションの残りの項は、ルール条件の論理的定式化を表現する（グラフ・ノード‘３５％’‘返済負担率’および‘＄６００ｋ’‘額’にそれぞれ接続された、ｄ１グラフ・ノード‘＞＝’を参照）。グラフは、変数‘？Ｌｏａｎ１’がタイプローンを有するという条件を省略することで、わずかに単純化されている。
【０１００】
ルールセット・インプリケーション・グラフ５８は、（アクションをモデル化しない本実施形態のルールセット適用性グラフと異なり）アクションをモデル化するルールセット適用グラフに類似しているが、微細な形で異なりもする。ルールセット適用グラフは、何らかのルールが適用可能であること、およびそのアクションが実行されたことを記述するが、ルールセット・インプリケーション・グラフは、適用可能なルールのアクションが実行されることになるということを記述する。ケースを所与として、ルールセット適用グラフは、何らかの適用可能なルールのアクションが実行されることを述べるが、ルールセット・インプリケーション・グラフは、適用可能なルールすべてのアクションが実行されることを述べる。前者のステートメントは、このエンジンが適用可能なルールを１つ実行するときの、ルール・エンジンの実際の意思決定挙動をモデル化する。そのような実際の意思決定挙動のモデルは、冗長性分析には重要である。しかしながら、矛盾分析には、適用可能なルールすべてを適用するものである、架空挙動のモデルが必要である。ルール・エンジンの実際の挙動では隠れたままとなる矛盾を明らかにするのは、この架空挙動である。
【０１０１】
非両立性制約グラフ５９（別名、アクションに対する制約グラフ）は、決定の定義５２（さらに任意選択で非両立性制約の詳述）を入力として取り込むアクション推論器４６により構築される。アクション推論器４６はさらに、必要に応じて、所与のアクションの両立性をチェックする要求を矛盾チェッカから受け取る。アクション推論器４６はさらに、ルールセット・インプリケーション・グラフを検査して、チェックすべき、関連のあるアクションを抽出するとよい。例えばアクション推論器４６は、３つのアクション、すなわち‘Ｌｏａｎ１を容認’‘Ｌｏａｎ１を拒否’および‘Ｌｏａｎ１を高リスクに分類’を受け取ってもよい。アクション推論器は、事前に与えられた両立性制約（または決定の定義）を調査し、アクション‘Ｌｏａｎ１を容認’と‘Ｌｏａｎ１を拒否’とは両立しないと判断する。その結果、アクション推論器は、これらのアクションのうちの１つは実行できないということを述べるために、述語‘ｉｓＤｏｎｅ’を使用する非両立性制約グラフを作成する。したがって、このグラフは、‘Ｌｏａｎ１’を‘容認’が‘行われ’ないか、または‘Ｌｏａｎ１’を‘拒否’が‘行われ’ないという制約を表現する。
【０１０２】
アクション推論器４６は、アクション・ステートメントについての情報を管理し、その情報を使用して、より単一的なアクションのシーケンスなどの複合アクションを比較するためのものでもある。これらのアクション・シーケンスが、計算の中間結果を記憶するために変数を使用する場合、アクション推論器４６は、それらの変数を、必要に応じて中間結果に置換する。アクション推論器４６は、‘Ｌｏａｎ１を容認する；Ｌｏａｎ１を高リスクに分類する；’および‘Ｌｏａｎ１を高リスクに分類する；Ｌｏａｎ１を拒否する；’などの２つの複合アクションの両立性をチェックしなければならない場合、これらのアクション・シーケンスを、比較を可能にする適切な形式へと変換しようと試みる。例えば、アクション推論器４６は、第１のシーケンスの単一的アクションがいずれも他のものに影響を及ぼさないため、その単一的アクションを、‘Ｌｏａｎ１を高リスクに分類する；Ｌｏａｎ１を容認する；’へと並べ替えてもよい。その結果、アクション推論器４６は、並べ替えたアクション・シーケンスと、第２のアクション・シーケンスとの最後の要素が両立しないため、それらが両立しないこと、およびそれらの最初の要素は同じであることを検出することができる。
【０１０３】
図７は、コンポーネント間の相互作用を含む、矛盾検出器４８のコンポーネント図である。矛盾検出器４８は、矛盾する決定を伴うケース群を判断するべく生成・テスト法を実行するためのものである。矛盾検出器４８は、処理対象ケース生成器４８２および矛盾チェッカ４８４を含む。
【０１０４】
処理対象ケース生成器４８２は、ルールセット適用性グラフ５６を使用して、処理対象ケース群７０、すなわち、ルールセット内の或るルールを適用可能にするケースのセットを生成する。この群は、極めて一般的なものとすることができ、例えば、ルールの一部により処理されるすべてのケースを含む。
【０１０５】
続いて、矛盾チェッカ４８４は、この群が、矛盾する決定を有するケースのみを含むかどうかを判断する。矛盾チェッカ４８４は、このためにルールセット・インプリケーション・グラフ５８を使用し、アクション推論器４６に、このグラフにおいて発生しているアクションに関する非両立性制約５９を要求する。矛盾チェッカ４８４が、所定の制限時間内で、処理対象ケース群７０、ルールセット・インプリケーション・グラフ５８、およびアクションに関する非両立性制約５９の論理積がいかなる解も有しないことを証明できれば、それにより処理対象ケース群７０内の各ケースが、矛盾する決定を有することが示されたことになる。したがって、矛盾検出器４８は、この処理対象ケース群７０を、その結果として、すなわち矛盾する決定を伴うケース５４として返す。一方、矛盾チェッカ４８４が、所定の制限時間内で解を見つけることができた場合、矛盾チェッカ４８４は、処理対象ケース群の中で、矛盾する決定を有しないケースを発見したことになる。矛盾検出器４８は、このケース、および矛盾する決定を有しない類似のケースすべての除去を試みる。このために、矛盾チェッカ４８４は、矛盾する決定を伴わないケースを、テスト（または制約）のセットにより記述される、矛盾する決定を伴わないケース群７２へと一般化し、それを処理対象ケース生成器４８２に伝達する。矛盾する決定を伴わないケース群７２は、必然的に、対応する処理対象ケース群７０のサブセットである。好適な実施形態では、矛盾チェッカ４８４は、処理対象ケース群を、或る限られた数のサブセットとみなし、発見された、矛盾する決定を伴わないケースを含むケースのサブセットを選び出す。このサブセットが、矛盾する決定を伴わないケース群７２となる。
【０１０６】
処理対象ケース生成器４８２は、矛盾する決定を伴わないケース群７２の中のケースを、当該のケースおよび対応する群をＮＧとマークすることにより除去する。ＮＧケース群は、禁止されたケース群である。ケースは、ＮＧ群を特徴付けるテストの中の少なくとも１つのテストに違反すれば、ＮＧ群に属さない。処理対象ケース生成器４８２は、ＮＧケース群を、当初は空であるＮＧストア４９に入れる。処理対象ケース生成器４８２は、新たな処理対象ケース群を計算するとき、生成された群の中のケースがＮＧストア４９にないこと、すなわち、新たに生成された群の中のケースがいずれも、ＮＧ群のいずれにも属さないことを保証する。処理対象ケース生成器４８２が、いかなる新たな処理対象ケース群も、当該の群がすべて破棄されていることが理由で発見しなければ、本方法は、停止して、矛盾する決定を伴うケース群がまったく発見されなかったことを通知する。
【０１０７】
これらのコンポーネントのうちの１つが制限時間に達すると、或る特定の状況が発生する。処理対象ケース生成器４８２が、いかなる処理対象ケース群も発見しなければ、矛盾する決定を伴ういかなるケース群もレポートせずに、方法全体が単に停止する。一方、矛盾チェッカが、矛盾する決定を伴わないケースを所与の群の中に発見せず、矛盾する決定を伴わないケースがないことの証明もできなければ、プロセスは、処理対象ケース群全体を破棄することにより継続され得る。
【０１０８】
図８は、図１に与えられたルールセットの矛盾検出器の実行追跡ステップの概観を示す。左の列は、処理対象ケース生成器４８２の演算の後の、処理対象ケース群７０の段階を示す。右の列は、矛盾チェッカ４８４の演算の後の、矛盾する決定を伴わないケース群７２の段階を示す。各演算は、特定の特徴を考慮するケース群を計算するものである。
【０１０９】
図９〜図１４は、図８の個々の演算をより詳細に示す。図８〜図１４では、角丸矩形により境界を示された演算が、矛盾チェッカ４８４または処理対象ケース生成器により定義されたケース空間の一部を示す。
【０１１０】
図９と、図８の左上のグラフとを参照する。ＮＧストア４９は、当初は空であり、これは、処理対象ケース生成器４８２が、任意の処理対象ケース群を生じさせてよいことを意味する。この例では、処理対象ケース生成器は、単一のローン・オブジェクトＬｏａｎ１からなる処理対象ケース群を判断する。この群は、このオブジェクトの額が＄６００ｋ以下であり、返済負担率が３５％以下であるすべてのケースを含む。この処理対象ケース群７０は、以下のテスト（または制約）により記述できる。
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の返済負担率は３５％以下である
【０１１１】
図１０と、図８の右上のグラフとを参照する。処理対象ケース生成器４８２は、この記述を矛盾チェッカ４８４に渡す。矛盾チェッカ４８４は、この群の中のケースのみを考慮してよいため、ケース空間内の他のエリアはすべて消されている。矛盾チェッカ４８４は、矛盾する決定を伴わないケースを発見し、それを、以下の矛盾する決定を伴わないケース群へと一般化する。
Ｌｏａｎ１の額は＄３００ｋ以下である
Ｌｏａｎ１の返済負担率は３５％以下である
【０１１２】
図１１と、図８の左中央のグラフとを参照する。処理対象ケース生成器４８２は、矛盾する決定を伴わないケース群を、この群のすべての要素を破棄するために、ＮＧケースへと変換する。破棄されたＮＧ群は、網掛けおよび以下の定義により示される。
Ｌｏａｎ１の額は＄３００ｋ以下である  および
Ｌｏａｎ１の返済負担率は３５％以下である
【０１１３】
次に、処理対象ケース生成器４８２は、ＮＧを充足し、したがって、破棄されたケースのいずれも含まない、新たな処理対象ケース群を生じさせる。
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の額は＄３００ｋより大きい
Ｌｏａｎ１の返済負担率は３５％以下である
【０１１４】
図１２と、図８の中央右のグラフとを参照する。矛盾チェッカ４８４に伝達されると、チェッカは、矛盾する決定を伴わない新たなケース群７２を発見する。この群の中のケースは、２つのルール、すなわちｄ１およびｃ１を適用可能にするかもしれないが、これらのルールのアクションは矛盾しないので、矛盾チェッカは解を発見できる。
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の額は＄３００ｋより大きい
Ｌｏａｎ１の返済負担率は３０％以下である
【０１１５】
図１３と、図８の左下のグラフとを参照する。この場合もやはり、矛盾チェッカ４８４は、この群を処理対象ケース生成器に送り、処理対象ケース生成器は、この群に関するＮＧを作成することによりこの群を破棄する。破棄された群は、消されて新たなＮＧ群としてラベル付けされる。処理対象ケース生成器４８２は、第３の新たな処理対象ケース群７０を発見する。
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の額は＄３００ｋより大きい
Ｌｏａｎ１の返済負担率は３５％以下である
Ｌｏａｎ１の返済負担率は３０％より大きい
【０１１６】
図１４と、図８の右下のグラフとを参照する。矛盾チェッカ４８４は、この群の中で、矛盾する決定を伴わないケースを発見できない。実際、この群の中の各ケースは、ルールｄ１およびｄ２を適用可能にし、これらのルールは、両立しないアクション‘Ｌｏａｎ１を容認’および‘Ｌｏａｎ１を拒否’を実行する。よって、システムは、矛盾する決定を伴うケース群５４を発見した。
【０１１７】
好適な実施形態は、条件−アクション・ルール、ならびにそれらルールのアクション間の非両立性制約の論理記述を提供するが、別の実施形態は、仮説形成エンジンを使用して、これらの非両立性制約を推論することができるであろう。
【０１１８】
そのような仮説形成による実施形態は、Ｒｏｂｅｒｔ  Ｃｒａｖｅｎらの論文‘Ｅｘｐｒｅｓｓｉｖｅ  ｐｏｌｉｃｙ  ａｎａｌｙｓｉｓ  ｗｉｔｈ  ｅｎｈａｎｃｅｄ  ｓｙｓｔｅｍ  ｄｙｎａｍｉｃｉｔｙ’に記載された仮説形成手法を使用することになるであろう。この研究は、アクションを許可または拒絶するアクセス制御ポリシを表すルール間の矛盾を発見する。この手法は、ルールを論理言語で表し、仮説形成エンジンを使用して、或るアクションの許可および拒絶の両方を行うケースを発見する。したがって、仮説形成エンジンは、何らかのアクションが許可され、かつ拒絶されるという目標を、証明の空間を処理することにより証明しようと試みる。
【０１１９】
仮説形成エンジンが証明の空間を処理するのに対して、矛盾検出器は、一連の充足可能性問題を解くことによりケースの空間を処理する。どちらも、問題の特徴に応じてそれぞれの利点を有し得る。なお、仮説形成エンジン、すなわち帰納導出の原理は、１９７２年に雑誌‘Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ’で発表されたＲ．ＲｅｉｔｅｒおよびＥ．Ｍｉｎｉｃｏｚｚｉの論文、‘Ａ  Ｎｏｔｅ  Ｏｎ  Ｌｉｎｅａｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｓｔｒａｔｅｇｉｅｓ  ｉｎ  Ｃｏｎｓｅｑｕｅｎｃｅ−Ｆｉｎｄｉｎｇ’に遡るが、それらの問題を精選された一連の充足可能性問題により解く方法は知られていなかった。後者の手法は、多数の非両立性制約があり、矛盾する決定を伴う多数のケースがある場合に、有利である。
【０１２０】
図１５は、処理対象ケース生成器４８２のコンポーネント図である。処理対象ケース生成器４８２は、処理対象ケース・プリソルバ４８５、オブジェクト生成器４８６、処理対象ケース・ソルバ４８７、およびケース群抽出器４８８を含む。ルールセット適用性グラフ５６、ＮＧストア４９、さらに矛盾する決定を伴わないケース群７２が供給される場合は該群が、処理対象ケース生成器４８２の入力である。矛盾する決定を伴わないケース群７２が供給されれば、ＮＧ生成器１５０は、ＮＧグラフ１５２を構築し、ＮＧグラフ１５２は、群の記述を構成する、テストの否定の論理和を表現する。処理対象ケース生成器４８２は、ＮＧグラフ１５２が処理対象ケース生成器４８２に供給される前に、ＮＧグラフ１５２をＮＧストア４９に追加する。
【０１２１】
処理対象ケース・プリソルバ４８５は、ルールセット適用性グラフ５６を所与として、ルール・インスタンス適用性グラフ１５４を構築するためのものである。この目的は、ルールセット適用性グラフ５６における存在量化を除去することであり、それによって、存在量化された制約が、量化子を含まない制約の論理和により置き換えられる。存在量化された制約は、ルールが、ルール条件を充足するケース内のいくつかのオブジェクトを照合することを表す。ケースがいくつかのオブジェクト、すなわちＬｏａｎ１およびＬｏａｎ２と命名されたいくつかのローン依頼からなる場合、ｄ１などのルールは２つのインスタンスを有することになる。第１のインスタンスは、Ｌｏａｎ１を照合し、第２のインスタンスは、Ｌｏａｎ２を照合する。その結果、ルールｄ１は、Ｌｏａｎ１に対するそのインスタンスが当該ケースを処理するか、またはＬｏａｎ２に対するそのインスタンスが当該ケースを処理する場合に、Ｌｏａｎ１およびＬｏａｎ２からなるケースを処理する。処理対象ケース・プリソルバ４８５は、ｄ１の或るインスタンスがケースを処理するというステートメントを、Ｌｏａｎ１に対するｄ１のインスタンスがケースを処理するというステートメント、またはＬｏａｎ２に対するｄ１のインスタンスがこのケースを処理するというステートメントに置き換える。
【０１２２】
オブジェクト生成器４８６は、ルール・スコープ、すなわち各ルールにより照合されるオブジェクトの数およびタイプを検査することにより、各タイプのオブジェクトを十分な数、作成する。オブジェクト生成器は、タイプローンの２つのオブジェクトを含む、ドメイン｛Ｌｏａｎ１，Ｌｏａｎ２｝などのオブジェクト・ドメイン１５６を返す。続いて、処理対象ケース・プリソルバ４８５は、存在量化された制約の各変数に対しこのドメインからオブジェクトを選び、変数の出現それぞれを選ばれた値に置換することにより、制約をインスタンス化する。処理対象ケース・プリソルバ４８５は、変数の置換に使用可能な値の各組み合わせについて、そのようなインスタンスを作成する。続いて、処理対象ケース・プリソルバ４８５は、これらのインスタンスすべての論理和を構築し、したがって、単一のルールに関するルール・インスタンス適用性グラフを得る。処理対象ケース・プリソルバ４８５は、すべてのルールに対してこのように進行し、個々のルールのルール・インスタンス適用性グラフの論理和を構築することにより、完全なルールセットの、包括的なルール・インスタンス適用性グラフ１５４を構築する。
【０１２３】
ケースは、無限数のオブジェクトを有し得るが、矛盾するルールの分析を実行するには、限られた数のオブジェクトしか必要ない。２つのルール間の矛盾を考慮すれば十分であるため、ケース内で発生しているすべてのオブジェクトを分析する必要はなく、２つのルールを照合するのに十分な数だけ分析すればよい。オブジェクト生成器４８６は、何らかのルールにより照合されるオブジェクトの各タイプを検査して、このタイプのオブジェクトがルールにより照合される最大数を判断する。すべてのルールがタイプローンの単一のオブジェクトを照合する場合、タイプローンの照合の最大数は１である。タイプローンの２つのオブジェクトを照合するルールがある場合、この数は２である。その結果、オブジェクト生成器４８６は、各ルールが結果として生じるこのオブジェクト・ドメイン内のオブジェクトを照合することを保証するために、この最大数により示されるのと同数の、各タイプのオブジェクトを生成する必要がある。２つのルールが異なるオブジェクトを照合することを保証するには、オブジェクト生成器４５６は、２倍の数のオブジェクト、すなわち、最大数の２倍を生成する必要がある。これは、本方法が完全であることを保証するが、制約のインスタンスの数を大幅に増加させるかもしれない。優れた戦略は、オブジェクトの小さなセットから開始して、この小さなセットに対して分析を実行することである。終了すると、ルールがこのタイプのオブジェクトを照合する最大数の２倍にオブジェクトの数が制限されることを既知として、本方法をより大きなセットに対して繰り返すことができる。
【０１２４】
ルールｄ１、ｄ２、ｄ３、ｄ４、ｃ１はすべて、単一のローン・オブジェクトを照合するので、第１段階では、Ｌｏａｎ１と呼ばれる単一のローン・オブジェクトを作成して、このオブジェクトに関して存在量化された適用性制約のインスタンスを作成すれば十分である。続いて、処理対象ケース・プリソルバ４８５は、このようにして存在量化された適用性制約をすべて置き換え、量化子を含まないルール・インスタンス適用性グラフを作成する。
【０１２５】
処理対象ケース・ソルバ４８７は、ルール・インスタンス適用性グラフ１５４にラベル付けするためのものであり、そのようなラベルは、グラフにおいて表される演算を考慮しつつ、ルート・ノードと一貫性を有する。処理対象ケース・ソルバ４８７は、制約プログラミングおよび命題定理証明において既知である探索・推論法を使用する。
【０１２６】
図１６は、量化子を含まないルール・インスタンス適用性グラフ１５４の例である。処理対象ケース生成器４８２は、ルール・インスタンス適用性グラフ１５４およびＮＧグラフ１５２を、処理対象ケース・ソルバ４８７に送る。処理対象ケース・ソルバ４８７が、所定の制限時間内に一貫性のあるラベル付けを発見しなければ、分析プロセス全体が停止し、矛盾検出器は、ＮＧストア４９内のＮＧを考慮し、矛盾する決定を伴うケース群を何ら発見しなかったことを通知する。処理対象ケース・ソルバ４８７は、一貫性のあるラベル付けを発見すれば、図１７に示されているように、解決したルール・インスタンス適用性グラフ１５８を返す。
【０１２７】
図１７は、図１６の例の解決したルール・インスタンス適用性グラフ１５８である。
【０１２８】
ケース群抽出器４８８は、解決したルール・インスタンス適用性グラフ１５８から類似ケース群を抽出するためのものである。抽出器は、ルート・ノードの子を検査し、真とラベル付けされた１つの子を選択する。ルート・ノードは論理和を表現するため、全体の論理和が真であることを確かめるには、真である論理和を１つ発見すれば十分である。続いて、抽出器は、この論理和を表現するノードの下位であるすべての単一的テストを検査する。解決したグラフにおいて、以下のテストがいずれも真とラベル付けされている。
Ｌｏａｎ１の返済負担率は３５％以下である
Ｌｏａｎ１の額は＄６００ｋ以下である
【０１２９】
したがって、これらのテストを充足する任意のケースは、この論理和、ひいては論理和全体が真とラベル付けされることを保証する。したがって、これらのテストを充足する任意のケースが、処理対象ケースである。結果として、テストのリストが処理対象ケース群７０を記述し、処理対象ケース生成器４８２は、その結果として該リストを返す。ＮＧが与えられると、それらも同じ形で処理される必要があり、したがって、群の記述にさらなるテストを追加する。関連したテストのうちの１つが偽とラベル付けされれば、その否定が、ケース群記述に追加される。処理対象ケース群を抽出するための他の戦略は、解決したグラフ内で発生している各テストを処理し、それを、またはその否定を、ケース群記述に含めるとよい。そのような戦略は、より特化した群を生じさせ、ひいては矛盾検出器の異なる性能挙動をもたらす。
【０１３０】
処理対象ケース生成器４８２は、新たな処理対象ケース群７０を計算すると、それを矛盾チェッカ４８４に送る。
【０１３１】
図１８は、矛盾チェッカ４８４およびその主要なコンポーネントの相互作用のコンポーネント図である。矛盾チェッカ４８４は、オブジェクト抽出器１８０２、矛盾プリソルバ１８０４、非矛盾グラフ・ビルダ１８０６、非矛盾グラフ・ソルバ１８０８、矛盾レポータ１８１０、ケース群抽出器および一般化器１８１２を含む。
【０１３２】
オブジェクト抽出器１８０２は、処理対象ケース群内で発生しているすべてのオブジェクトのオブジェクト・ドメイン１８１４を構築するためのものである。これは、処理対象ケース生成器４８２により構築されたオブジェクト・ドメインのサブセットである。
【０１３３】
矛盾プリソルバ１８０４は、オブジェクト・ドメイン１８１４を使用してルールセット・インプリケーション・グラフ５８における全称量化された制約をすべてインスタンス化するためのものである。矛盾プリソルバ１８０４は、オブジェクト・ドメイン１８１４から、量化された制約の各変数に対して値を選び、続いて、変数の出現すべてを選ばれた値に置換し、よって、ルール・インプリケーション・グラフの量化子を含まないインスタンスを生成する。矛盾プリソルバ１８０４は、量化された制約の変数と、オブジェクト・ドメインとの間の可能な値の代入それぞれのインスタンスを生成する。続いて、プリソルバは、単一のルールに対するルール・インスタンス・インプリケーション・グラフを生じるために、結果として生じるインスタンスの論理積を構築する。プリソルバは、このようにしてすべてのルールを処理し、続いて、各ルールのルール・インスタンス・インプリケーション・グラフの論理積を構築し、したがって、ルールセット全体のルール・インスタンス・インプリケーション・グラフ１８１６を生じさせる。
【０１３４】
非矛盾グラフ・ビルダ１８０６は、処理対象ケース７０、ルール・インスタンス・インプリケーション・グラフ１８１６、および非両立性制約グラフ５９の記述の論理積である非矛盾グラフ１８１８を構築するためのものである。アクション推論器４６に、非両立性制約の要求が行われる。その結果、非矛盾グラフ１８１８は、矛盾する決定を有しない、所与の処理対象ケース群内のすべてのケースを表現する。非矛盾グラフ１８１８は、非矛盾グラフ・ソルバ１８０８に渡される。
【０１３５】
非矛盾グラフ・ソルバ１８０８は、探索・推論法を使用して、真であり、かつグラフ・ノードの演算を考慮する、グラフ・ノードのラベル付けを発見する。非矛盾グラフ・ソルバ１８０８は、そのようなラベル付けを発見すれば、解決した非矛盾グラフを返す。
【０１３６】
図１９は、図１０における演算に関して発見された解に対応する例示の解決した非矛盾グラフを示す。読みやすさのために、処理対象ケース群を表現するノードは省略されている。ケース群記述のテストがグラフ内で発生し、これらのノードは、直接‘真’でラベル付けされている。このラベルは、ソルバにより変更できないため、マークされている。図１９は、太い点線でマークされた変更できない例示のラベルを示す、解決した非矛盾グラフである。
【０１３７】
ラベル付けが、矛盾する決定を伴わないケースがあるということを表すので、矛盾チェッカは、それと、類似ケースとの破棄を試みる。このために、矛盾チェッカは、単一的テストを表現し、述語‘ｉｓＤｏｎｅ’に関係しない、グラフ内のすべてのノードの真理値を検査する。矛盾チェッカは、‘真’とラベル付けされていればテストを含め、‘偽’とラベル付けされていればテストの否定を含めることにより、矛盾のないケース群の記述を生じさせる。図１９に関して、これは以下の記述を生じさせる。
Ｌｏａｎ１の返済負担率は３０％より大きい
Ｌｏａｎ１の返済負担率は３５％以下である
Ｌｏａｎ１の返済負担率は４０％以下である
Ｌｏａｎ１の額は＄３００ｋ以下である
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の額は＄１０００ｋ以下である
【０１３８】
この群は、任意選択で、一貫性に基づく解釈技術を使用して一般化できる。例えば、欠落したケース群を、群の記述において関連するテストのセットを検出して他のテストを除去することにより、一般化することなどによる。関連するテストは、ルールセット適用性グラフに関連して一貫性のないテストの最小セットを形成する。矛盾する決定を伴わないケースに関して類似の削減を達成するために、一般化器は、ルール・インスタンス・インプリケーション・グラフの否定を使用する。このステップにより、矛盾検出器は、２つの関連するテストを識別できる。すなわち：
Ｌｏａｎ１の額は＄３００ｋ以下である
Ｌｏａｎ１の返済負担率は３５％以下である
【０１３９】
続いて、矛盾チェッカは、矛盾する決定を伴わないこのケース群を処理対象ケース生成器に送り、その結果、処理対象ケース生成器はこれを破棄する。一般化が使用されない場合、処理対象ケース生成器は、より小さなケースのセットを破棄し、これは、矛盾する決定を伴うケース群を発見するためにより多くの反復が必要であることを意味するが、このことは、本方法の全体的な結果には影響を及ぼさない。
【０１４０】
図２０は、図１２に示されたプロセスの第２の反復に関する、解決した非矛盾グラフである。このグラフでは、‘ｉｓＤｏｎｅ’述語によりラベル付けされている２つのノード、すなわち、‘Ｌｏａｎ１の容認が行われる’を表現するノードおよびノード‘Ｌｏａｎ１を高リスクに分類が行われる’が、‘真’とラベル付けされている。しかしながら、これらのアクションは両立するので、矛盾は判定されない。
【０１４１】
図２１は、図１４に示された最後の反復に関する非矛盾グラフである。以下の処理対象ケース群が、このステップにおける入力として与えられる。
Ｌｏａｎ１の額は＄６００ｋ以下である
Ｌｏａｎ１の額は＄３００ｋより大きい
Ｌｏａｎ１の返済負担率は３５％以下である
Ｌｏａｎ１の返済負担率は３０％より大きい
【０１４２】
図２１は、‘真’とラベル付けされているテストを示すグラフであり、このラベル付けは、非矛盾グラフ・ソルバにより変更できないので、太い点線によりマークされている。グラフのルート・ノードを‘真’でラベル付けするために、グラフ内のノードは、示されている形でラベル付けされなければならない。しかしながら、このラベル付けは、‘Ｌｏａｎ１の容認が行われない’が‘真’とラベル付けされるか、または‘Ｌｏａｎ１の拒否が行われない’が‘真’とラベル付けされなければならないということを表す、非両立性制約に違反する。これらのノードは‘偽’でラベル付けされ、このラベル付けを導き出すために何の選択も行われなかったため、図２１の非矛盾グラフに解はない。したがって、所与の処理対象ケース群は、矛盾する決定を有するケースのみを含む。その結果、矛盾チェッカは、矛盾する決定を伴うケース群を発見したことになり、その記述をその結果として返す。
【０１４３】
続いて、ルール作成者は、この群に対して所望の処理を強制する、より優先度の高いルールを入力することができる。例えば、ルール作成者は、当該ケースに対して、ローン依頼を拒否することを決定してもよい。
ルール  ａｒｂｉｔｒａｔｏｒ１
定義
ローンをＬｏａｎ１とする，
仮定条件  Ｌｏａｎ１の額は＄６００ｋ以下である  および
Ｌｏａｎ１の額は＄３００ｋより大きい  および
Ｌｏａｎ１の返済負担率は３５％以下である  および
Ｌｏａｎ１の返済負担率は３０％より大きい
その場合  Ｌｏａｎ１を拒否する；
【０１４４】
ルール作成者は、矛盾するケース群を、ローンが容認されるサブセットと、ローンが拒否される別のサブセットとに分割することもできる。よって、矛盾する決定を伴うレポートされたケースは、矛盾を解消するために必須の情報を含む。したがって、ルール作成者は、より優先度の高い新たなルールを書くことにより矛盾を解消でき、既存ルールの面倒な調査および変更に取り組む必要はない。これは、矛盾解消プロセス全体を促進し、単純化する。ここでの矛盾解消は、重要なケースに関して特定の決定を下すこと（およびルールを作成すること）により達成され、矛盾するルール間の調整を行うことにはよらない。
【０１４５】
本方法全体を、矛盾する決定を伴うさらなるケース群を発見するために反復可能である。このために、システム全体が、矛盾する決定を伴う群を除去するＮＧを作成し、それをＮＧストアに追加する。その結果、矛盾検出器は、矛盾する決定を伴う新たな群を発見することができる。最後には、矛盾検出器は、そのような群を発見しなくなり、本方法は停止する。
【０１４６】
以下、本発明のさらなる実施形態を記載する。
【０１４７】
当業者であれば当然のことであるが、好適な実施形態の方法の全部または一部は、方法のステップを実行するよう配列された論理要素を含む追加の論理装置または追加の複数の論理装置において、適切かつ有用な形で具現化されてもよく、このような論理要素は、追加のハードウェア・コンポーネント、ファームウェア・コンポーネントまたはそれらの組み合わせを含んでもよい。
【０１４８】
同様に、当業者であれば当然のことであるが、好適な実施形態による機能コンポーネントの一部または全部は、等価な方法ステップを使用して等価な機能性を実行する論理要素を含む別の論理装置または複数の装置において、適切な形で具現化されてもよく、このような論理要素は、例えばプログラマブル論理アレイまたは特定用途向け集積回路において、論理ゲートなどのコンポーネントを含み得る。このような論理要素はさらに、例えば、固定キャリア媒体または送信可能キャリア媒体を使用して記憶および送信され得る仮想ハードウェア記述言語を使用して、このようなアレイまたは回路において論理構造を一時的または恒久的に確立することを可能にする構成要素において具現化されてもよい。
【０１４９】
当然のことながら、上述の方法および配列はさらに、１つ以上のプロセッサ（図示せず）上で実行されるソフトウェアにおいて、完全にまたは部分的に適切な形で実行されてもよく、このソフトウェアは、磁気ディスク、光ディスクまたは同様のものなど、任意の適切なデータ・キャリア（同じく図示せず）上で運ばれる１つ以上のコンピュータ・プログラム要素の形式で提供されてもよい。同じく、データ送信用のチャネルも、あらゆる種類のストレージ媒体、ならびに有線または無線の信号伝達媒体などの信号伝達媒体を含んでもよい。
【０１５０】
本方法は、さらに、コンピュータ・システムで使用するコンピュータ・プログラム製品として適切に具現化されることもできる。そのような実装に含まれ得るのは、例えばディスケット、ＣＤ−ＲＯＭ、ＲＯＭもしくはハード・ディスクなどのコンピュータ可読媒体のような有形媒体上に固定された一連のコンピュータ可読命令、または、モデムもしくはその他のインターフェース・デバイスを使用して、光通信回線もしくはアナログ通信回線を含むがこれらに限定されない有形媒体上で、またはマイクロ波、赤外線もしくはその他の送信技術を含むがこれらに限定されない無線技術を使用して無形の状態でコンピュータ・システムへ送信できる、一連のコンピュータ可読命令である。一連のコンピュータ可読命令は、本願明細書において前述した機能性のすべてまたは一部を具現化する。
【０１５１】
当業者には当然のことながら、そのようなコンピュータ可読命令は、多数のコンピュータ・アーキテクチャまたはオペレーティング・システム用にいくつかのプログラミング言語で書くことが可能である。さらに、そのような命令は、現在のものでも将来のものでも、半導体、磁気、もしくは光学を含むがこれらに限定されない任意のメモリ技術を使用して記憶されてもよいし、または、現在のものでも将来のものでも、光学、赤外線もしくはマイクロ波を含むがこれらに限定されない任意の通信技術を使用して送信されてもよい。そのようなコンピュータ・プログラム製品は、市販のソフトウェアなど、リムーバブル媒体として添付の印刷文書または電子文書と共に配布されても、例えばシステムＲＯＭ上もしくは固定ディスク上など、コンピュータ・システムにプレインストールされても、または、例えばインターネットもしくはワールド・ワイド・ウェブなどのネットワーク上でサーバもしくは電子掲示板から配布されてもよいと考えられる。
【０１５２】
別の手段として、本発明の好適な実施形態は、コンピュータ・インフラストラクチャに展開されそこで実行されると、コンピュータ・システムに方法の全ステップを実行させるよう動作可能なコンピュータ・プログラム・コードを展開するステップを含むサービスを展開する、コンピュータに実装された方法という形態で実現されてもよい。さらに別の手段として、本発明の好適な実施形態は、機能データを有するデータ・キャリアという形態で実現されてもよく、前記機能データは、機能コンピュータ・データ構造を含み、機能コンピュータ・データ構造は、コンピュータ・システムにロードされ、それによってコンピュータ・システム上で動作させると、前記コンピュータ・システムが、本方法のすべてのステップを実行できるようにする。
【０１５３】
当業者であれば当然のことであるが、本発明の範囲を逸脱することなく、前述の例示的実施形態に多数の改善および変更を加えられる。
【図１】
2015502620.tif 000003
【図２】
2015502620.tif 000004
【図３】
2015502620.tif 000005
【図４】
2015502620.tif 000006
【図５】
2015502620.tif 000007
【図６】
2015502620.tif 000008
【図７】
2015502620.tif 000009
【図８】
2015502620.tif 000010
【図９】
2015502620.tif 000011
【図１０】
2015502620.tif 000012
【図１１】
2015502620.tif 000013
【図１２】
2015502620.tif 000014
【図１３】
2015502620.tif 000015
【図１４】
2015502620.tif 000016
【図１５】
2015502620.tif 000017
【図１６】
2015502620.tif 000018
【図１７】
2015502620.tif 000019
【図１８】
2015502620.tif 000020
【図１９】
2015502620.tif 000021
【図２０】
2015502620.tif 000022
【図２１】
2015502620.tif 000023
【手続補正書】
【提出日】平成26年7月3日(2014.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ルールセット内の条件−アクション・ルールを管理する方法であって、
前記ルールセット内のいくつかのルールを適用可能にするケースの群を構築するステップと、
矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを求めて、前記群の中のケースのサブセットを反復的に構築およびテストするステップと、
を含む方法。
【請求項２】
すべて矛盾しない決定を有するケースのサブセットを除去するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ケースの前記群およびサブセットは、制約ベースの技術を使用してモデル化される、請求項１または２に記載の方法。
【請求項４】
矛盾する決定と、関連のない決定とを区別して、誤った矛盾をレポートすることを回避するステップをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
矛盾する決定を伴う前記ケースのサブセットを定義するステップであって、その結果、新たなルールが前記定義を使用して前記矛盾を除去する、ステップをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
条件−アクション・ルールを管理する方法であって、
ルールセット内のルールに関して両立するアクションおよび両立しないアクションを判断するステップと、
前記ルールセット内の少なくとも１つのルールをテストするために、テスト・ケース群を構築するステップと、
前記群の中のケースの両立するサブセットであって、適用可能なルールを前記サブセットにおいて適用することが、両立するアクションのみをもたらすような、前記両立するサブセットを判断するステップと、
群の中で、前記両立するサブセット内にない前記ケースから、テスト・サブセットを判断するステップであって、それによって、前記テスト・サブセット内の前記ケースのうちの１つ以上は、前記ルールセット内の前記ルールと矛盾するアクションの可能性を有する、ステップと、
前記テスト・サブセット内のすべての前記ケースが矛盾するアクションを有する場合、前記テスト・サブセットは矛盾するサブセットであると判断し、その他の場合、前記テスト・サブセットを用いて新たなテスト群を定義して、新たなテスト・サブセットが矛盾すると判断されるまで、新たな両立するサブセットおよび新たなテスト・サブセットの反復的な判断を実行するステップと、
を含む方法。
【請求項７】
ケースの前記群およびサブセットは、前記ルールセット内の前記ルールの制約モデルを使用して構築される、請求項６に記載の方法。
【請求項８】
ケースの前記矛盾するサブセットおよび矛盾するアクションのレポートをまとめるステップをさらに含む、請求項６に記載の方法。
【請求項９】
各群およびサブセットは、前記ルールセットからの原子条件により特徴付けられる、請求項６〜８のいずれか１項に記載の方法。
【請求項１０】
前記矛盾するサブセット内の前記ケースに対する前記矛盾するアクションを解消するために、前記ルールセットに追加する、少なくとも１つの仲裁ルールを判断するステップをさらに含む、請求項６に記載の方法。
【請求項１１】
条件−アクション・ルールを管理するシステムであって、
いくつかのルールを適用可能にするケースの群を構築する処理対象ケース・モデラと、
矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを求めて、前記群の中のケースのサブセットを反復的に構築およびテストする矛盾検出器と、
を含むシステム。
【請求項１２】
前記矛盾検出器はさらに、すべて矛盾しない決定を有するケースのサブセットを除去するようになっている、請求項１１に記載のシステム。
【請求項１３】
前記矛盾検出器はさらに、矛盾する決定と、関連のない決定とを区別し、誤った矛盾をレポートすることを回避するようになっている、請求項１１〜１２のいずれか１項に記載のシステム。
【請求項１４】
矛盾するルールを伴うケースを検出するための、コンピュータ可読コードが記憶されたコンピュータ可読記録媒体であって、前記コンピュータ可読コードは、コンピュータ・システム上にロードされて実行されると、いくつかのルールを適用可能にするケースの群を構築するステップと、矛盾する決定をすべてのケースが有する、ケースのサブセットを特定するために、矛盾する決定を伴うケースを探して前記群の中のケースのサブセットを反復的に構築およびテストするステップとを前記コンピュータ・システムに実行させる、コンピュータ可読記録媒体。
【請求項１５】
コンピュータ可読媒体に記憶されデジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、請求項１〜４のいずれか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【国際調査報告】
2015502620.tif 000024
2015502620.tif 000025