Show Table of Contents
第1章 はじめに
1.1. ルールエンジンとは
1.1.1. 説明と背景
JBoss Rules は、チューリングが完全な Rete アルゴリズム を使用して プロダクションルール を作成および解釈する高度な人工知能システムです。本書では、このシステムを使用して時間と共に進化するビジネスルールとプロシージャを記述および変更する方法について説明します。ルールが記述されたら、ソフトウェアを使用してルールを管理、デプロイ、および分析します。
最初の項を読んで、ソフトウェアの仕組みを理解しましょう。この概要では、基本的な用語や理論を紹介し、システムの主な機能について説明します。
ルールシステムの「頭脳」は大量のプロダクションルールとファクトをスケールできる 推論エンジン です。
- 推論エンジン
- 推論エンジンはファクトとデータをルールに対して一致し、アクションになる結果を推論します。
- プロダクションルール
- プロダクションルールはナレッジを表すために 1階論理を使用する 2 つ部分で構成される構造です。
when <conditions> then <actions>
- パターンマッチング
- パターンマッチングは、ファクトをルールに対して一致するプロセスです。Linear、Rete、Treat および Leaps アルゴリズムを使用して推論エンジンによって実行されます。
- ReteOO
- 使用される Rate 実装は
ReteOOと呼ばれます。これは、オブジェクト指向システム向けに向上され最適化された Rate アルゴリズムの実装です。 - 競合解決ストラテジー
- システムに大量のルールがある場合、ファクトのアサーションによっては複数のルールが true になることがあります。このような場合、これらのルールは競合状態にあると言えます。
agendaは、競合解決ストラテジーを使用してルールが実行される順番を指示し、このような状態を管理します。
ルールはプロダクションメモリーに格納され、ファクトはワーキングメモリーへ アサート されます。ファクトがワーキングメモリーに格納されると、ファクトの変更または取り消しが可能になります。

図1.1 Rules エンジンの概要
プロダクションルールシステムの推論エンジンは ステートフル で、真理維持 を行います。
- 真理維持
- 真理を強制する推論エンジンの機能。
アクションを使用して 論理関係 を宣言します。
- 論理関係
- 論理関係は、アクションの状態が true である推論に依存する場合に存在します。推論が true でなくなると、それに依存するアクションは元に戻されます。
プロダクションルールシステムには、前向き連鎖、後向き連鎖、この 2 つを組み合わせた ハイブリッド の 3 種類があります。
- 前向き連鎖
- 前向き連鎖はデータ駆動型で、提供されたデータに反応します。ファクトはワーキングメモリーに挿入され、1 つまたは複数のルールが true になります。そして、アジェンダによって実行されるようスケジュールに置かれます。

図1.2 前向き連鎖
重要
JBoss Rules は前向き連鎖のエンジンです。 - 後向き連鎖
- 後向き連鎖はゴール駆動型で、システムはエンジンが満たそうとする 結論 より開始します。結論を満たすことができない場合、現在のゴールの一部を満たせるようにする サブゴール と呼ばれる結論を探します。最初の結論が満たされるか、満たされないサブゴールがなくなるまでこの処理が継続されます。Prolog は後向き連鎖エンジンの一例になります。
重要
JBoss Rules の次回のメジャーリリースに、後向き連鎖のサポートが追加されます。
図1.3 後向き連鎖
重要
システムの違いや、システムの最適化に最も適した方法を理解するには、これらの動作モードを理解することが重要となります。
1.2. 強結合と疎結合
柔軟性が非常に高いため、一般的には 疎結合 を示す設計が好まれます。ルールがすべて強結合されている場合、ルールの柔軟性がなくなる可能性が高くなります。さらに重要な点として、このような状況でルールエンジンをデプロイするのは過剰であると言えます。
- 疎結合
- あるルールの実行によって他のルールが実行されることがない設計。
- 強結合
- ルールが強結合である場合、あるルールが実行されると直接的に他のルールが実行されます。言い換えると、論理の明確なチェーンが存在することになります。
明確なチェーン は
decision tree を使用してハードコードまたは実装することができます。
注記
強結合は本質的に悪いわけではありませんが、強結合の難点を念頭に置いてルールがキャプチャーされる方法を設計するようにしてください。
疎結合のシステムは柔軟性がより高く、影響を出さずにルールを追加、変更および削除できます。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.