如何使用Java中的Prolog?

在Java / Eclipse应用程序的上下文中,我想将Prolog用于特定任务。 有哪些可用的解决方案和工具,以及相关的利弊?

我可以启动外部Prolog解释器生成文件中的结果? 我可以使用完整的Prolog Java Library(用java实现的Prolog解释器)? 我可以使用专用于与外部Prolog解释器通信的java库吗?

在此先感谢您的帮助,

马努

我会试试GNU Prolog for Java 。 来自网站:

GNU Prolog for Java是ISO Prolog作为Java库的实现

我在Android上使用tuProlog 官方网站 , Code Repository 。 他们在1 Jar文件的表单中有一个很棒的嵌入式Prolog。 他们也很敏感!

在查看multithreadingProlog系统时,有不同的额外注意事项。 一个需求就是在线程和逻辑引擎之间进行分离。 这在以下表达: http : //www.cs.nmsu.edu/ALP/2011/03/concurrent-programming-constructs-and-first-class-logic-engines/

有一些Prolog系统可以实现这种分离。 Jekejeke Prolog也属于这些系统。 有一份报告(*)显示了如何使用这种分离。 在各种场景中,我们看到“线程”由逻辑引擎外部的系统提供:

  • 终端部署:Thread是Java主线程。
  • 独立部署:Thread是AWT / Swing线程。
  • Applet部署:Thread是一些浏览器线程。
  • Servlet部署:线程来自Web服务器池。
  • 客户端部署:Thread是AWT / Swing线程。

最好的祝福

http://www.jekejeke.ch/idatab/doclet/prod/en/docs/05_run/15_stdy/08_deploy/package.html

快速谷歌返回一个选项列表 (唉,未在5年内更新)。

至于利弊 – 正如我所看到的那样
当涉及到分发和集成时, 具有绑定的机引擎将是更糟糕的选择,但可能比本机Java引擎更快(但我首先需要certificate)。
带有API的Java引擎会导致集成点出现一些尴尬,但应该很容易分发。
Prolog到字节码编译器应该很好地处理两种语言之间的集成,并且意味着你没有使用二进制文件发送prolog脚本(可能是一个缺点)。 这方面的一大缺点 – 似乎没有一个是现场的。
类似于Prolog的语言到字节码编译器 ,与上面相同,但有些似乎仍在浮动,也需要一种新语言的知识。
Java规则引擎 – 我认为这是最好的解决方案。 而不是使用两种语言以Java-y方式对规则进行编码,但这取决于规则以这种方式表达的复杂程度。

需要考虑的第二件事是 – 项目是否仍在更新中。 从我的快速谷歌,很少。 Prova和Mandarax是后两种选择的两个例外。