/* ANIMALS.LOGIC */ /* Used in supplement 4. */ is_a(A,mammal) :- /* is_a(A,animal), */ has(A,hair). is_a(A,mammal) :- /* is_a(A,animal), */ gives_milk(A). is_a(A,bird) :- /* is_a(A,animal), */ has(A,feathers). is_a(A,bird) :- /* is_a(A,animal), */ flies(A), lays_eggs(A). is_a(A,carnivore) :- is_a(A,mammal), eats(A,meat). is_a(A,carnivore) :- is_a(A,mammal), has(A,pointed_teeth), has(A,claws), eye_direction(A,forward). is_a(A,ungulate) :- is_a(A,mammal), has(A,hoofs). is_a(A,ungulate) :- is_a(A,mammal), eats(A,grass), chews_cud(A). is_a(A,cheetah) :- is_a(A,carnivore), colour(A,tawny), spots(A,black). is_a(A,tiger) :- is_a(A,carnivore), colour(A,tawny), stripes(A,black). is_a(A,zebra) :- is_a(A,ungulate), colour(A,black), stripes(A,white). is_a(A,giraffe) :- is_a(A,ungulate), long_legs(A), long_neck(A), colour(A,tawny). is_a(A,zebra) :- is_a(A,ungulate), colour(A,black), stripes(A,white). is_a(A,ostrich) :- is_a(A,bird), not( flies(A) ), long_legs(A), long_neck(A), colour(A,black_and_white). is_a(A,penguin) :- is_a(A,bird), not( flies(A) ), swims(A), colour(A,black_and_white). is_a(A,albatross) :- is_a(A,bird), flies(A).