首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Datalog来说,单边统一是否足够?

对Datalog来说,单边统一是否足够?
EN

Stack Overflow用户
提问于 2021-02-22 20:07:21
回答 1查看 63关注 0票数 1

使用Prolog的子集很容易识别Datalog,它不使用函数符号,而只使用常量和变量。但是,不使用否定的纯Datalog还有一个进一步的约束(*):

  1. 每一个事实都是有根据的。
  2. 规则头中的每个变量,也发生在规则的主体中。--

我们是否可以得出这样的结论:单边统一足以回答分层的Datalog查询?或者,在single 8.3.19中是否有一些例子,其中(=>)/2用于单面

取消,那是纯粹的数据,但不运行与单边统一?

(*)

您一直想知道的关于Datalog的信息

塞里等人阿尔。-1989年

https://www.researchgate.net/publication/3296132

EN

回答 1

Stack Overflow用户

发布于 2021-02-23 08:59:01

答案是否定的。对于最简单的Datalog事实和查询,直接翻译到simgle边非化已经不起作用:

代码语言:javascript
复制
p(a).

?- p(X).
X = a

如果我们将Prolog事实P作为P :- true,则通过(=>)/2将该事实重写为P => true。这个东西不再起作用了,用SWI 8.3.19演示:

代码语言:javascript
复制
p(a) => true.

?- p(X).
ERROR: No rule matches p(_2556)

甚至皮卡特也被这个问题所困扰,一开始就对事实进行了特殊处理。最近发布的Picat v3甚至重新引入了霍恩条款。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66322680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档