将 Prolog 与 C# (Unity) 结合使用

Use Prolog with C# (Unity)

我想知道是否有从 C# 代码(在 Unity 上下文中)调用 Prolog(最好是 SWI-Prolog)代码的“简单”方法。

我已经尝试使用 SWI-Prolog - C# interface (source here) 但是它维护得不好,我无法使用最新版本的 SWI-Prolog 64 位 (8.2.4截至今天)。

我还看到可以使用 SWI-Prolog socket 和 C# 套接字(或 Unity 套接字)发送信息,但我无法使它工作,而且我不确定使用套接字是否合适最佳表演创意。

对我有用的唯一解决方案是使用另一个“自定义”prolog 引擎:CSharpProlog。这允许我将 Prolog 代码集成到 CSharp 文件中。但是,如果可能的话,我想使用 SWI-Prolog,有人知道我该怎么做吗?

从您提供的 link 来看,来源并不明显 here。 只需尝试编译它,以适应您的目标机器架构。

我正在尝试使用 MonoDevelop 在 Linux 上生成界面,但不是立即生成的,稍后会重试。同时,您可以尝试 Windows。可能会更简单...

编辑

现在我有时间尝试在 Windows 10 64 位中从源代码进行编译,到目前为止,它似乎 运行 相当不错。我正在使用 VisualStudio Community 2017,打开解决方案 (contrib-swiplcs\SwiPlCs_git.sln) 后,在 SwiPLcs 属性 - 编译中定义了 _PL_X64。

HTH

编辑

已上传 this repo,其中显示了 SWIPlC 的简化用法。 请注意,有一个目录 (swipl_cs),我只是在其中复制(未更改)来自 SwiPlCs 的必不可少的源文件。 有一个 Prolog 文件,计算 N-Queens 问题的解决方案(只是第一个,让事情尽可能简单)并显示 CLP(FD) 执行的步骤 - 感谢 Markus Triska 的原始实现。