(おそらく古い)Droolsまたは他のルールエンジンのマニュアルを見ると、その付加価値の例の1つは、Miss Mannersパズル(Droolsのマニュアル)などのパズルを解くことです。現在、このようなパズルはPrologまたは最新のConstraint Programming言語を使用して自然に定式化および解決されており、なぜこの目的にDroolsを使用するのか疑問に思われます。この場合、PrologとCPLが提供する付加価値は、パズルを論理的な述語のセットとして自然に定式化し、ソリューションのスペースを自動的に検索できることです(この点でCPLの方が効率的です)。しかし、Droolsなどの製品の付加価値は何ですか(たとえば、Excelファイルを取得して、それを一連のルールに変換するという付加機能を意味します)。
より具体的には、Prologはバックトラック検索を実装し、CLPは制約伝播を使用したバックトラック検索を実装します。したがって、いわば、個々の変数の空間のデカルト積全体を検索する代わりに、この製品空間の大部分を取り除きます。これがそれらを効果的かつ有用にするものです。PrologとCLPの両方が文献で十分に議論されています。
一方、Reteアルゴリズムがいくつかのデータ構造の形式でルールセットをキャッシュすることは明らかであるため、(私の理解では)入力の一部が変更された場合に出力を評価する方が効果的です。このデータ構造を段階的に変更するために効果的に更新する手段を与えると、基本的な考え方を理解することは難しくなります(私にとっては)、さらにその有効性(何に比べて?残念ながら、この広いコンテキストでReteアルゴリズムを表示する適切な参照を見つけることは困難です。
Droolsのドキュメントは、残念ながらこの点に関してあまり有益ではありません。最も見つけられたのは、「Reteアルゴリズム、Leapsアルゴリズム、およびDrools 'Reteoo(およびLeaps)などの子孫は、ルールオブジェクトをドメインオブジェクトデータに一致させる非常に効率的な方法を提供します。これらは、 (ルールエンジンは過去の一致を記憶できるため)完全に変更することはできません。これらのアルゴリズムは戦闘で実証済みです。」非常に効率的-何と比較して?バトルで実証済み-現実世界のアプリケーションを指すことができますか?
このテーマにもう少し光を当てるか、有効な参考文献を提供していただければ幸いです。