繁体   English   中英

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

[英]What's the difference between Prolog rules and queries?

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

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

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

规则是诸如的定义

foo(X) :- bar(X), baz(X).

因为它出现在Prolog程序中。

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

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

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

head(...) :- body.

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM