First Order Logic & Prolog



我正在努力理解prolog如何表示一阶逻辑。例如,我如何在动物类型列表中表示:

狗(斑点)。

猫(nyny)。

飞行

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

我扩展了@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.

我认为您所指的只是以下内容:

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

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

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

相关内容

  • 没有找到相关文章

最新更新