Результаты не сравниваются с данными фактами
Используя пролог, создайте код для получения некоторых сравниваемых выходных данных, но некоторые выходные данные не работают должным образом кажется, это не сравнивать с фактами. здесь код
fact(Fact) :- Fact,!.
fact(Fact):-Fact = ..[Rel, Arg1, Arg2],isa(Arg1, SuperArg).
SuperFact =..[Rel,SuperArg,Arg2].
covers(animal,skin).
isa(fish,animal).
isa(bird,animal).
isa(mammal,animal).
isa(shark,fish).
isa(salmon,fish).
isa(parrot,bird).
isa(penguin,bird).
speacial_organ(fish,gills).
travel(fish,swim).
birth(bird,lay_eggs).
special_organ(bird,wings).
travel(bird,fly).
birth(fish,lay_eggs).
birth(mammal,not_lay_eggs).
birth(shark,not_lay_eggs).
nature(shark,dangerous).
food(salmon,delicacy).
colour(parrot,green).
travel(penguin,walk).
это вопросы, которые я хочу найти ответы из этой программы
• Может ли попугай летать?
• Какого цвета попугай?
• Есть ли у попугаев шкура?
• Акулы опасны?
1 ответ
Решение
Шаг первый: определить рефлексивное транзитивное замыкание isa/2
(названный is_a/2
В следующих).
иша (рыба, животные). иша (птицы, животные). иша (млекопитающее, животное). иша (акула, рыба). иша (лосось, рыба). иша (попугай, птица). иша (пингвин, птица). is_a(X, Y):- закрытие0(isa, X, Y).
Шаг второй: укажите остальные факты (сгруппированные по показателю предиката).
Крышки (животные, кожа). special_organ (рыба, жабры). special_organ (птица, крылья). путешествия (рыба, плавание). путешествия (птица, муха). путешествия (пингвин, прогулка). рождение (птицы, lay_eggs). рождение (рыба, lay_eggs). рождение (млекопитающее, not_lay_eggs). рождение (акулы, not_lay_eggs). природа (акулы, опасно). еда (лосось, слабость). цвет (попугай, зеленый).
Шаг третий: давайте зададим несколько вопросов!
Могут ли летать попугаи?
? - is_a (попугай, X), путешествие (X, полет). X = птица; ложный.
Какого цвета попугаи?
? - is_a (попугай, X), цвет (X, цвет). Цвет = зеленый, X = попугай; ложный.
У попугаев есть кожа?
? - is_a (попугай, X), обложки (X, кожа). X = животное; ложный.
Акулы опасны?
? - is_a (акула, X), природа (X, опасно). X = акула; ложный.