2012-03-15 82 views
3

我想了解序言如何代表一階邏輯。我怎麼能代表,例如,在一個動物類型列表:一階邏輯&序言

狗(現貨)。

cat(nyny)。

fly(哈里)

所有的動物都是哺乳動物或昆蟲?

回答

4

我想你指的就是以下幾點:

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

也就是說,哺乳動物或者是東西是狗或貓。您必須明確指定屬於該哺乳動物類別的類別。昆蟲也一樣。

與一階邏輯問題連接這一點,mammal第一項內容如下:爲每一個X,其中X是狗,X也爲哺乳動物(同爲貓),依此類推。

4

我已經延長@迭戈塞維利亞的答案,包括什麼是動物的原始問題,並添加了執行。

% 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.