2

数据记录是在集合还是多集合上运行?这同样适用于 prolog 吗?我无法找到任何相关文件。

4

1 回答 1

3

Datalog 的语义是在有限集上定义的。

然而,Prolog 为您提供了答案替换序列,并且在 Prolog 的情况下具有约束答案。答案替换可能代表简单的解决方案,例如 in X = 1,但它们也可能代表无限多个解决方案,例如 in X = [_A,_B,_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

于 2015-02-03T18:25:45.987 回答