Prolog规则和查询之间的区别是什么?

时间:2012-02-07 19:20:19

标签: prolog rules

我是逻辑编程的新手,发现很难理解规则和查询之间的区别,我觉得它们基本相同。任何帮助澄清这一点将不胜感激。

4 个答案:

答案 0 :(得分:3)

从句法上讲,它们基本相同; " p(1)."可以是规则或查询,具体取决于您放置它的位置。

从语义上讲,它们不是。
" p(1)."作为规则告诉Prolog" p(1)是真的"。" p(1)."作为查询询问 Prolog" p(1)是真的吗?"。

答案 1 :(得分:2)

规则是诸如

之类的定义
foo(X) :- bar(X), baz(X).

出现在Prolog程序中。

查询是上面定义的右侧,即(bar(X), baz(X))或您在Prolog解释器提示符下输入的内容,以使程序运行。

答案 2 :(得分:0)

查询是一个你要求证明的语句(在这样做的过程中可以实例化变量,可以作为“输出”服务器);规则构成用于开发该证据的“程序”。

答案 3 :(得分:0)

你的直觉是正确的:它们都是Horn条款的变体。 Horn子句的基本结构是:

head(...) :- body.

如果你的头部没有身体,你就有了事实。如果你有两者,你有一个谓词。如果您只有一个正文,那么您有一个查询。