我正在开发一个Java应用程序,它需要做一些复杂的逻辑规则推理作为其function的一部分。 我想在Prolog或其他一些逻辑/约束编程语言中编写我的逻辑推理,而不是Java,因为我相信所得到的代码会更简单,更易于维护。 我在Prolog上searchembedded式Java实现,发现它们的数量很less,每个文档都很less。 我(适度)的select标准是: 应该可以embedded到Java中(例如,可以与我的Java软件包捆绑在一起,而不需要在外部程序上进行本地安装) 从Java使用简单的接口(用于启动扣除,检查结果和添加规则) 至less有几个关于如何使用它的例子 不一定必须是Prolog,但是具有上述标准的其他逻辑/约束编程语言也适合我的需求。 我有什么select,他们的优点和缺点是什么?
当我想阅读逻辑编程时,我总是绊倒现在做的两种“主要”方式: miniKanren ,在The Reasoned Schemer中引入的一种微型语言 ,由于core.logic而受欢迎 。 Prolog ,第一个“大”的逻辑编程语言。 我现在感兴趣的是:两者之间的主要技术差异是什么? 它们在方法和实现方面非常相似,还是采取完全不同的逻辑编程方法? 他们来自哪些math分支,什么是理论基础?