логика и пролог первого порядка - PullRequest
3 голосов
/ 16 марта 2012

Я пытаюсь понять, как пролог представляет логику первого порядка.как я могу представить, например, в списке типов животных:

собака (спот).

кошка (nyny).

муха (гарри)

что все животные млекопитающие или насекомые?

Ответы [ 2 ]

4 голосов
/ 16 марта 2012

Я расширил ответ @ Диего Севильи, включив в него оригинальный вопрос о том, что такое животное, и добавил казнь.

% 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.
4 голосов
/ 16 марта 2012

Я думаю, что вы имеете в виду следующее:

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

То есть млекопитающее - это либо собака, либо кошка. Вы должны явно указать категории, которые попадают в эту категорию млекопитающих. То же самое для насекомых.

Связывая это с вашим логическим вопросом первого порядка, первые записи в mammal будут читать: для каждого X, где X собака, X также млекопитающее (то же самое для кошки) и т. Д.

...