完全性分析
完全性の分析は、ルール・セットにルールの欠落があるかどうかチェックするメカニズムです。
可能性のあるいずれかのケースに少なくとも 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 オブジェクトに一致するが、異なる属性 (age、value、shopping 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 個を統合したら、再び完全性の分析を実行して、その他の欠落しているルールを識別します。