datalog和prolog的语义是什么?

datalog和prolog的语义是什么?,prolog,datalog,Prolog,Datalog,数据日志在集合或多集合上运行吗?这同样适用于prolog吗?我找不到这方面的任何文档。数据日志的语义是在有限集上定义的 然而,Prolog为您提供了答案替换序列,对于带有约束的Prolog,则提供了答案替换序列。答案替换可以表示简单的解决方案,如X=1,但也可以表示无限多的解决方案,如X=[\u A,\u B,\u C]。答案替换的顺序可以看作是一个多集,但它甚至更一般,因为精确的顺序很重要。如X=1;X=2;X=1 带有约束的一般答案将概念进一步扩展。答案X in 2..sup,X mod 2

数据日志在集合或多集合上运行吗?这同样适用于prolog吗?我找不到这方面的任何文档。

数据日志的语义是在有限集上定义的

然而,Prolog为您提供了答案替换序列,对于带有约束的Prolog,则提供了答案替换序列。答案替换可以表示简单的解决方案,如
X=1
,但也可以表示无限多的解决方案,如
X=[\u A,\u B,\u C]
。答案替换的顺序可以看作是一个多集,但它甚至更一般,因为精确的顺序很重要。如
X=1;X=2;X=1


带有约束的一般答案将概念进一步扩展。答案
X in 2..sup,X mod 2#=0
包含无限多个解,它也可能包含有限多个
X in 1..3
,或者甚至没有
X in 2..sup,X mod 2#=0,X mod 2#=1
,如果这是您要问的(通过谷歌搜索“Prolog multiset”确定),Prolog有处理多集的谓词.谢谢@ScottHunter。这是否意味着prolog默认对集合进行操作?prolog中的主要数据结构是列表,它通常像集合一样使用,但两者都允许重复并尊重顺序。@ScottHunter:我认为OP询问了谓词的语义,比如
p(1)。p(2)。p(1)。
这里的目标
p(X)
产生一系列答案替换,如
X=1;X=2;X=3。
@ScottHunter列表不是Prolog中的主要数据结构。这只是一种经常被误用和滥用的复合术语,特别是新手程序员。Wiki提到有限集上的数据记录保证会终止,但它没有说明有限集是否是默认值?@JRR:许多系统通过(比如)允许描述无限集的算术来扩展核心。