Python 与 SWI-Prolog 接口

问题描述 投票:0回答:2

我想使用 Python 脚本作为使用 SWI-PL 引擎的 Prolog 程序的前端。

因此,设置的组成部分是:

我一直在寻找 SWI-PL 和 Python 之间的接口。 我发现的是:

PySwip,但从我从这里的旧问题中看到的来看,它似乎缺乏,而且似乎不受支持。

PyLog,看起来较新,但也有一些活动。虽然我不知道它有多好。

使用Python与SWI-prolog通信的推荐方式是什么? 也许还有其他方法可以实现这一目标吗? 也许使用另一个 prolog 引擎?

我坚持使用 Prolog 语言和 Python,因为我最了解它们,所以这是必要的(例如,我知道也有用于 Java 的工具)。

python prolog swi-prolog
2个回答
14
投票

我个人已经成功使用PySWIP。 这里有一个链接,指向我在大学的人工智能课程中使用 PySWIP 所做的项目。

我认为区别在于 PySWIP 是一个桥梁(只需将查询发送到 Prolog 数据库并获取响应),而 PyLog 似乎是 Python 中 Prolog(或内置 Prolog 引擎)的实现,使用 Prolog 代码进行抽象物体。

我没有什么特别推荐给你。选择您认为最适合您的项目的选项。如果您需要担心代码的许可证,请考虑发布这些库所依据的许可证。


0
投票

在 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"

有关如何使用该包的信息,请参阅文档了解详细信息。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.