问题标签 [swi-prolog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1905 浏览

javascript - 如何通过 Javascript 查询 Prolog?

我正在使用 SWI-Prolog 查询 WordNet 数据库。我现在需要构建一个 HTML 界面,该界面将接受来自用户的单词并针对 db 查询它。

我如何编写一个 JS 代码,将单词发送到 Prolog 包装在查询中,以及如何检索有意义的变量中的结果,我可以在网页中显示回来?

0 投票
1 回答
1005 浏览

c# - 使用 SWI-Prolog C# 从 C# 中的 Prolog 查询中获取结果

我正在使用 C# 使用 SWI-Prolog 为 prolog 文件编写 GUI,但是我不知道如何从查询中获取解决方案到某些字符串中。

pl 中的查询 direct_evening_flight(london,edinburgh) 返回一周中的某些日子,例如星期一、星期二、星期四。

如果我在 C# 中执行查询

它会自动将结果打印到控制台中。但是,我想将结果一一接收到字符串变量中。我怎样才能做到这一点?

0 投票
2 回答
70 浏览

swi-prolog - Prolog 用户识别

我正在使用 prolog 创建一个用于 web 的 API。用户将使用他们的姓名登录,我希望 API 在整个会话期间记住用户,直到用户注销或关闭 API。对于每个唯一用户,这当然必须有所不同。我的问题是我将如何在 prolog 中将其写为 assert/2,或者......?

0 投票
0 回答
90 浏览

unit-testing - 在测试运行中忽略静默标志

我目前正在尝试使用PlUnit测试套件,但在测试期间遇到了关闭谓词输出的问题。

文档说我应该对类似的东西没问题set_test_options([silent(true)]).,但这似乎对我的测试运行没有任何影响。

我也尝试将这些选项放入我的load_test_files/1通话中,但它并没有改变任何东西。

如果有人可以提供有关此库的帮助,将不胜感激,因为我似乎误解了文档,并且在尝试查看此处失败的内容时无处可去。

0 投票
1 回答
2476 浏览

prolog - 在 SWI-Prolog 中创建保存状态

我正在尝试从 Windows 的顶层创建已保存的状态,但我不断收到此错误:

我认为这应该这样做。为什么它甚至试图调用'mark_executable'?我想要的只是一个可以从嵌入式 C/C++ 应用程序加载的资源文件。

任何人都可以帮忙吗?

0 投票
1 回答
968 浏览

random - Swi-Prolog:未定义的程序:random_permutation/2

为什么这个谓词random_permutation不起作用?

http://www.swi-prolog.org/pldoc/doc_for?object=random_permutation/2

我怎样才能让它工作?

0 投票
1 回答
153 浏览

forms - SWI-Prolog cgi_get_form(Arguments) 保存和处理参数 web 表单

我正在寻找一种保存方法,并在提交表单时在 SWI-Prolog 中处理 Web 表单的参数后调用同一个程序来生成另一个表单,依此类推。总是从一种形式调用相同的 prolog 程序到下一种形式。
CGI SWI-Prolog 库将这些参数保存为名称(值)术语列表,即[Name(Value)].


如果我在表单内传递参数(如隐藏参数)(TotalArguments 是一个列表):

format('"<"input type="hidden" id="nameofform1" name="nameofform1" value="~w" />~n', TotalArguments),

当我附加它时,我需要删除在 TotalArguments 上的结果列表中连接的 id 或名称。知道如何做到这一点,以便最终列表看起来像[nameofform1(value1), nameofform2(value2),...]吗?


我也可以编写这个参数列表并将其附加到一个文件中,并在每次再次调用程序时查阅它,但这将始终加载它们,我只需要加载特定步骤中所需的参数和处理的表单片刻。因为否则此文件在某些​​执行后可能包含不需要的信息。关于如何做到这一点的任何想法?
对于此类问题还有其他建议吗?


使用隐藏表单编辑我的解决方案
我通过创建解决了它:

然后做:

extract_value(参数,值),

并提交表单的隐藏值,例如:

format('<"input type="hidden" id="nameofform1" name="nameofform1" value="~w"/>~n', [值]),

并将其附加到下一个表单中,以便它看起来像我想要的那样:

[nameofform2(value2),nameofform1(value1)]

0 投票
1 回答
233 浏览

xml - 处理基于 XML 的 DSL

SWI-Prolog 作为一个通用的 XML 处理器提供了很多东西。

library(sgml)用于读/写 XML 结构化格式,library(xpath)用于导航等等...但是如果我尝试读取 SVG,它是有效的 XML,我会收到以下消息:

错误的。

有人对此有提示吗?我还想重写最终修改的文件内容,当然保留独特的 DTD。

0 投票
1 回答
525 浏览

prolog - 如何关闭 SWI-Prolog 标志?

我不确定标志是否是合适的术语,但无论如何配置一个 swi-prolog 程序在查询完成时不输出真或假,而是简单地打印出程序中确定的另一条语句?

0 投票
4 回答
2354 浏览

prolog - 将 prolog 集成到其他环境中

我正在使用 Prolog 进行学术项目。我想知道 Prolog 是否有办法与其他编程语言进行交互。我想要的是 Prolog 问题和答案的简单输入/输出重定向。

我知道 Prolog 可以在某些 Prolog 实现中调用 C 函数。即 SWI 序言。

我需要的是 Prolog 问题和用户提供的答案的简单输入/输出重定向。

任何帮助将非常感激。