如何在序言中实现以下规则。

我将“没有蜘蛛是哺乳动物”一词写成存在的和普遍的:

¬∃x(mammals(X) ∧ spider(X) ) //It is not the case that mammals are spider

∀X(mammals(X) ⇒ ¬spider(X)) //All mammals are non-spider.

最佳答案

假设您有一个具有以下事实的数据库:

mammals(cat).
mammals(dog).
 ...

spider(blackwidow).
 ...

现在,您可以非常简单地将句子改写为序言查询:

¬x(mammals(X)∧spider(X))//哺乳动物不是蜘蛛
?- \+((mammals(X), spider(X))).
true.



∀X(哺乳动物(X)⇒¬蜘蛛(X))//所有哺乳动物都不是蜘蛛。
?- forall(mammals(X), \+spider(X)).
true.

关于prolog - 序言中的通用量词和存在量词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28219898/

10-13 02:22