完全性分析

完全性の分析メカニズムは、ルール・セットの各ルールの条件部分を分析し、ルールが適用されないケースがあるかどうか検出します。

完全性の分析は、ルール・セットにルールの欠落があるかどうかチェックするメカニズムです。

可能性のあるいずれかのケースに少なくとも 1 つのルールが適用されている場合、ルール・セットは完全であるとみなされます。

完全性の分析は以下の目的に実行できます。
  • ルール・セットが完全かどうかチェックする。
  • 欠落しているルールのレポートを取得する。
  • 欠落しているルールをルール・セットに追加する。

詳しくは、「 ルール・プロジェクトの分析」を参照してください。

完全性メカニズム

完全性メカニズムは、ルール・セットの各ルールの条件部分を分析し、ルールが適用されないケースがあるかどうか検出します。

ルール・セットが完全であるかをチェックするために、完全性メカニズムは次の手順に従って欠落しているケースを特定します。

  • ルール・プロジェクトにルール・フローが含まれる場合は、完全性メカニズムはルール・フローをタスクごとに分析して、各ルール・タスクが完全であるかどうかチェックします。

    例えば、複数のルール・タスク内でルールが欠落している場合、レポートはそのルールが欠落しているルール・タスクをリストします。

  • ルール・プロジェクトにルール・フローが含まれない場合は、完全性メカニズムはプロジェクト内のすべてのルールを考慮します。

    注:

    ルール・フローには少なくとも 1 つのルール・タスクが含まれている必要があります。

完全性分析の例

次の例では、ルール・セットは 5 つのルールで構成されています。 これらのルールは、the customer を定義し、the customer の カテゴリーを Silver、Platinum、または Gold に設定します。

ルール 1

if 
	お客様の  500 以上 およびお客様の  1000 未満
then
	set the category of the customer to "Silver";

ルール 2

if 
	お客様の 年齢 65 以上 およびお客様の  500 未満
then 
	set the category of the customer to "Platinum";

ルール 3

if 
	お客様の  1000 以上 およびお客様の価値 1500 未満
then
	set the category of the customer to "Gold";

ルール 4

if 
	顧客の 1500 以上 である
then
	set the category of the customer to "Platinum";

ルール 5

if 
	お客様の  500 未満 およびお客様の 年齢 50 未満
then
	set the category of the customer to "Platinum";

顧客の年齢が 50 から 65 の間で、値が 500 未満の場合、ルール・セットの完全性の分析は適用されるルールがないことを検出します。

この欠落しているケースは、欠落しているルールを作成するために使用できるルール・スケルトンとして以下のように表示されます。

definitions 
     set  'Customer1'  to  a customer  ; 
 if 
     Customer1 500 未満  
    および Customer1 65 未満年齢  
    および Customer1 50 以上年齢  
 then 

& lt; /アクション>

欠落しているルール

完全性の分析は、ルール・セットが完全でないことを示す場合、ルール・セットを完全にするために追加のルールを提示します。 新しいこれらのルールはスケルトン・ルールです。 欠落しているルールを編集して、実行されるアクションを定義する必要があります。

完全性メカニズムは、ルール・セットの各ルールの条件を分析し、提示されたルールの条件のセットを定義します。 ルールが Customer オブジェクトに一致するが、異なる属性 (agevalueshopping cart など) をテストする場合、提示されたルールの条件のセットは分析されるルールでテストが行われる属性を考慮します。 そのため、提示されたルールの条件部分は複雑になり、多数の条件ステートメントが含まれる場合があります。 この条件部分を単純化して、ルール条件の表現をさらに自然な方法で表すことができます。 この分析は、既存のルールで使用されていて、作業メモリーに一致するオブジェクトに基づいています。 詳細については、 Ruelsetデバッグツールを参照。

注: 欠落ルールの制限に達した後も分析を続行する場合は、レポートの[ ルール分析を続行 ]をクリックします。

以下の例では、提示されたルールは value 属性および age 属性をテストします。 いずれかの条件を削除して、ルールを単純化できます。

完全性の分析が以下のルールを提示した場合:

definitions 
     set  'Customer1'  to  a customer  ; 
 if 
     the value of  Customer1  is less than  500  
    and  the age of  Customer1  is less than  65  
    and  the age of  Customer1  is at least  50  
 then 

& lt; /アクション>

顧客の年齢に関する条件を削除して、値に関する条件のみを保持できます。

definitions 
     set  'Customer1'  to  a customer  ; 
 if 
     the value of  Customer1  is less than  500  
 then 

& lt; /アクション>

ルール・セットにアクション・ルールのみが含まれている場合、提示された欠落しているルールは言語化されます。 ただし、ルール・セットにテクニカル・ルールまたは意思決定表が含まれる場合、あるいは言語化に関する情報が非常に少ない場合、欠落しているルールは IRL で表されます。

注:

完全性メカニズムは重複しているルールを生成する場合があります。 これらのルールの条件を変更できます。

パフォーマンス

完全性の分析のパフォーマンスは複数の要因によって異なります。要因としては、ルール・セットのルールの数、ルール・タスクの数、欠落しているルールの数などがあります。欠落しているルールの数が最も重要です。

完全性の分析について、パフォーマンスを向上させ、実行時間を短縮するには、提示される欠落しているルールの数に制限を設定します。 例えば、分析結果について、欠落しているルールを 10 個に制限します。 欠落しているルールについて最初の 10 個を統合したら、再び完全性の分析を実行して、その他の欠落しているルールを識別します。