我想使用 Python 脚本作为使用 SWI-PL 引擎的 Prolog 程序的前端。
因此,设置的组成部分是:
我一直在寻找 SWI-PL 和 Python 之间的接口。 我发现的是:
PySwip,但从我从这里的旧问题中看到的来看,它似乎缺乏,而且似乎不受支持。
PyLog,看起来较新,但也有一些活动。虽然我不知道它有多好。
使用Python与SWI-prolog通信的推荐方式是什么? 也许还有其他方法可以实现这一目标吗? 也许使用另一个 prolog 引擎?
我坚持使用 Prolog 语言和 Python,因为我最了解它们,所以这是必要的(例如,我知道也有用于 Java 的工具)。
我个人已经成功使用PySWIP。 这里有一个链接,指向我在大学的人工智能课程中使用 PySWIP 所做的项目。
我认为区别在于 PySWIP 是一个桥梁(只需将查询发送到 Prolog 数据库并获取响应),而 PyLog 似乎是 Python 中 Prolog(或内置 Prolog 引擎)的实现,使用 Prolog 代码进行抽象物体。
我没有什么特别推荐给你。选择您认为最适合您的项目的选项。如果您需要担心代码的许可证,请考虑发布这些库所依据的许可证。
在 python 中使用 prolog 的推荐方法是使用
janus-swi
包。以下是如何设置。
首先安装软件包
pip install janus-swi
如果您在下载时遇到问题并且提示未找到 C++ 构建工具,您只需从此处安装 Microsoft C++ 构建工具即可。基本上,您下载 Visual Studio 并确保在安装过程中选择 C/C++ 构建工具。
接下来也是最后一点,重要的是让环境变量
SWI_HOME_DIR
指向 swipl 安装目录。使用相应的命令:
Windows
setx SWI_HOME_DIR "C:\Program Files\swipl"
Linux
set SWI_HOME_DIR="~/swipl"
有关如何使用该包的信息,请参阅文档了解详细信息。