私がPrologで見たことから、アプリのルールエンジンを作成するのに理想的であるように思えます。それでも、Prologで記述されたルールエンジンを見たことはありません。Prologには、ルールエンジンの構築に使用できないような固有の制限(ガベージコレクションアルゴリズムなど)がありますか?
私がPrologで見たことから、アプリのルールエンジンを作成するのに理想的であるように思えます。それでも、Prologで記述されたルールエンジンを見たことはありません。Prologには、ルールエンジンの構築に使用できないような固有の制限(ガベージコレクションアルゴリズムなど)がありますか?
回答:
まだ初期のルールエンジンは、ほぼ排他的にPrologで記述されていました。これは論理的な言語でした。少数のルールに対して、彼らは素晴らしい働きをしました。ただし、拡張性があまりよくないことがわかりました。明確なリファレンスはありませんが、私の理解では、Prologがルールのチェーンを処理する方法は非効率的です-再帰モデルは、クロールをもたらす非常に大きなスタックを作成するために作成されました。
RETEアルゴリズムとその後続バージョンの開発により、大量のルールをより効率的に処理できるようになり、引き継がれました。
おそらく、現代のプロローグは、初期の作業の大部分が行われた80年代に遡るよりも効率的でしょう。
舌の答え:ルールエンジンの作成者がProlog(またはMercuryまたはPLANNERなど)を知っていれば、ルールエンジンを作成しないので、Prologを使用することになります。
一般に、ルールエンジンのポイントは、それが別のアプリケーションの一部であることです。Prologで記述されたアプリケーションを見るのはかなりまれであり、Prologを他の言語で記述されたアプリケーションに接続するための一般的に利用可能なインターフェースはありません。
ルールエンジン用のルールベースのツールの1つは、他のアプリケーションに追加されるように作成されており、CLIPSです。CLIPSはOPS5に基づいており、プルーニングルールにReteアルゴリズムを使用します。