3

我试图了解序言如何表示一阶逻辑。例如,我如何在动物类型列表中表示:

狗(现货)。

猫(nyny)。

飞(哈利)

所有的动物都是哺乳动物还是昆虫?

4

2 回答 2

5

我已经扩展了@ Diego Sevilla 的答案以包括动物是什么的原始问题,并添加了执行。

% Your original facts
dog(spot).
cat(nyny).
fly(harry).

% @ Diego Sevilla's predicates
mammal(X) :- dog(X).
mammal(X) :- cat(X).
insect(X) :- fly(X).

% Defining what an animal is - either insect or (;) mammal
animal(X) :- insect(X) ; mammal(X). 

% Running it, to get the names of all animals
?- animal(X).
X = harry ;
X = spot ;
X = nyny.
于 2012-03-16T00:09:35.343 回答
4

我认为您所指的内容如下:

mammal(X) :- dog(X).
mammal(X) :- cat(X).
insect(X) :- fly(X).

也就是说,哺乳动物要么是狗,要么是猫。您必须明确指定属于该哺乳动物类别的类别。昆虫也一样。

将此与您的一阶逻辑问题联系起来,第一个条目mammal将显示为:对于每个 X,其中 X 是狗,X 也是哺乳动物(猫也是如此),依此类推。

于 2012-03-15T23:39:01.863 回答