意味的内容に基づくクエリー

ルールの振る舞いに基づいた、ルールの意味的内容でフィルター処理をして、クエリーを調整できます。

このタイプのクエリーは、メンバーを参照する語彙から成る語句を使用します。 また、特定の条件が真である場合、あるいは真になる可能性がある場合に適用できるルールを検索します。 これは、ルールを実行して予期するような振る舞いを確認する条件をテストするときに有用です。

以下のプロジェクト・エレメントに対してこのタイプのクエリーを実行できます。
  • アクション・ルール: アクションを実行することが目的であるビジネス・ルールのタイプ。

  • ビジネス・ルール: ビジネス・アクション言語 (BAL) を使用して記述する任意のルール

  • 意思決定表: 各行が単一のルールに対応している表形式で記述されたビジネス・ルール

  • 意思決定ツリー: ツリー形式で記述されたビジネス・ルール

  • テクニカル・ルール: ILOG ® ルール言語 (IRL) を使用して作成されたルール

  • すべてのルール: 意思決定表や意思決定ツリーなど、任意のタイプのルール

現行プロジェクトのすべてのルール、または現行プロジェクトおよびその従属プロジェクトのすべてのルールでクエリーを実行できます。

注:
  • セマンティック・クエリーを作成する場合、日付およびストリングでは、「is」および「is not」コンストラクトのみが有効です。 コンストラクト「is before」、「is after」、「is between」、「contains」、「starts with」、および「ends with」は使用不可です。

  • セマンティック・クエリーは BAL ルールからで生成された IRL コードで実行されます。 BOM メンバーに値変換プログラムが付加されている場合、生成された IRL ではこの変換を使用します。 その結果、IRL コードに BOM メンバーが見当たらないため、セマンティック・クエリーは BOM メンバーを検出できません。

以下のクエリーの述語を使用できます。

may apply when

述語 may apply when <a condition> は、条件部分がクエリー条件に一致するすべてのルール、またはルール条件にクエリー条件と矛盾するものが何もないルールを返します。 その結果、このクエリーは、クエリー条件に特に該当しない条件のあるルールも返します。

規則 1:

If the score of the borrower is at least 10 then...

ルール 2:

If the age of the borrower is at least 21 then...

ルール 3:

If the score of the borrower is less than 10 and the age of the borrower is more than 35 then...

照会 1:

すべてのビジネス・ルールを 検索
    各ビジネス・ルール は、 [借り手のスコアが 20] の場合に適用されます。 

照会 2:

すべてのビジネス・ルールを 検索
   各ビジネス・ルールが 適用される可能性がある [借り手のスコアが 5]

照会 1 は、ルール 1 とルール 2 を返します。 借り手のスコアが少なくとも 10 個以上の場合は 20 になる可能性があるため、ルール 1 が返されます。 ルール 2 には、条件が保持できないことを明確に示すものがないため、ルール 2 が返されます。借り手のスコアは 20 になる可能性が十分にあります。 ルール 3 は返されません。理由は、ルールが適用されないことを明確に記述する条件 (スコアは 10 未満) が含まれているためです。

照会 2 は、ルール 2 とルール 3 を返します。 照会条件でスコアが 10 未満に設定されているため、ルール 1 は適用できません。 ルール 2では、スコアが 5 の場合にルールが適用されるように特に停止するものはありません。 ルール 3では、条件の少なくとも 1 つが適用され、そのスコアが 5 になる可能性があるという事実を否定する他の条件には何も含まれません。

may become applicable when

述語 may become applicable when <a condition> は、条件部分がクエリー条件に一致するルールのみを返す、さらに特定したクエリーです。 このクエリーは、クエリー条件に特に該当しない条件のあるルールは返しません。 このクエリーは、クエリー条件が真である場合に適用可能なルールを返します。 例えば、ルール条件のエレメントで変更が発生すると、変更されたルール条件とクエリー条件の突き合わせが行われます。

ルール 3:

If the category of the customer is Platinum then...

ルール 4:

If the category of the customer is not Platinum then...

ルール 6:

If the age of the customer is at most 65 and the category of the customer is not Platinum...

照会 1:

すべてのビジネス・ルールを 検索
   : 各ビジネス・ルール は、 [以下のカテゴリーの場合に適用される可能性があります。
'a customer' is Gold] 

この照会は、ルール 4 およびルール 6を返します。 顧客のカテゴリーがプラチナではない場合、ゴールドである可能性があるため、ルール 4 が返されます。 ルール 6 も同じ理由で返されます。 顧客の年齢に関する追加条件は、カテゴリーがゴールドであるという条件に反しません。

ルール 3 は、顧客カテゴリーがプラチナであるというルールは該当しますが、ゴールド・カテゴリーには該当しないため、クエリーから返されません。 クエリーは顧客カテゴリーがゴールドのときに適用可能となるルールを検索するので、顧客の年齢はこのクエリーには該当せず、ルール 5 も返されません。 言い換えると、ルール条件は顧客カテゴリーがゴールドであることに影響を受けません。

照会 2:

すべてのビジネス・ルールを 検索
   : 各ビジネス・ルール が適用される可能性があるのは、
   'a customer' is at least 21] 

このクエリーは、顧客の年齢が 21 を超えた場合に適用可能に「変わる」ルールを検索しているので、ルール 5 を返しません。 ルール 5 は、顧客の年齢が 21 未満の場合でも適用可能です。 そのため、ルール 5 は適用可能に「変わる」ことはありませんが、顧客の年齢が 21 未満から 21 以上に変わっても適用可能「のまま」となります。

may lead to a state where

述部 may lead to a state where <a condition> は、実行されると、照会条件を満たす結果を示す可能性があるルールを返します。 このクエリーは、ルールの条件部分とアクション部分の両方を考慮します。 ルールの及ぼす影響を基に、ルールにフィルターを適用します。 そのため、クエリー条件に影響を及ぼさないルールは返されません。

ルール 7:

If the age of the borrower is at least 25 then set the credit score of the borrower to 60

ルール 8:

If the age of the borrower is more than 18 and less than 25 then set the credit score of the borrower to 20

照会:

すべてのビジネス・ルールを 検索
   は、 各ビジネス・ルール  [次のクレジット・スコア:
the borrower is more than 50]

このクエリーは、ルール 7 は返しますが、ルール 8 は返しません。これは、借り手の年齢がチェックされてクレジット・スコアが設定されると、ルール 7 のみが 50 を越す結果を示します。

注: uses the phrase 述部を使用して、ルールのアクション部分に対して照会を実行することもできます。 で句を使用する方法を参照してください。