根据我对Prolog的了解,它似乎是为应用程序构建规则引擎的理想选择。然而,我相信我从未见过用Prolog编写的规则引擎。Prolog中是否存在一些固有的限制(例如,糟糕的垃圾收集算法),从而阻止它用于构建规则引擎?
发布于 2013-07-17 15:50:22
规则引擎在婴儿期几乎完全是用Prolog编写的--这是逻辑语言。对于一小部分规则,他们发挥了巨大的作用。然而,事实证明,他们的规模不是很好。我没有明确的参考,但我的理解是,Prolog处理规则链接的方式效率低下--为创建非常大的堆栈而建立的递归模型将其带到爬行中。
RETE算法及其后继算法的发展为处理大量规则提供了一种更有效的方法,从而接管了该算法。
也许现代的prolog比80年代的S更有效率,当时大多数早期的工作都已经完成了。
发布于 2013-07-16 22:17:32
开玩笑的回答:因为如果规则引擎的创建者知道Prolog (或者水星、规划师或…)他们不会写规则引擎,他们会使用Prolog。
发布于 2013-07-16 22:10:12
一般来说,规则引擎的要点是它是另一个应用程序的一部分。用Prolog编写应用程序是相当罕见的,也没有一个通用的接口将Prolog连接到用其他语言编写的应用程序。
一个用于规则引擎的基于规则的工具是夹子,它被写入到其他应用程序中。CLIPS基于OPS5,并使用Rete算法进行剪枝规则。
https://softwareengineering.stackexchange.com/questions/205077
复制相似问题