RULES

(Z1 IF
    (?animal has hair)
    THEN (?animal is a mammal))
(Z2 IF
    (?animal gives milk)
    THEN (?animal is a mammal))
(Z3 IF
    (?animal has feathers)
    THEN (?animal is a bird))
(Z4 IF
    (?animal flies)
    (?animal lays eggs)
    THEN (?animal is a bird))
(Z5 IF
    (?animal is a mammal)
    (?animal eats meat)
    THEN (?animal is a carnivore))
(Z6 IF
    (?animal is a mammal)
    (?animal has pointed teeth)
    (?animal has claws)
    (?animal has forward-pointing eyes)
    THEN (?animal is a carnivore))
(Z7 IF
    (?animal is a mammal)
    (?animal has hoofs)
    THEN (?animal is a ungulate))
(Z8 IF
    (?animal is a mammal)
    (?animal chews cud)
    THEN (?animal is a ungulate))
(Z9 IF
    (?animal is a carnivore)
    (?animal has tawny color)
    (?animal has dark spots)
    THEN (?animal is a cheetah))
(Z10 IF
     (?animal is a carnivore)
     (?animal has tawny color)
     (?animal has black stripes)
     THEN (?animal is a tiger))
(Z11 IF
     (?animal is a ungulate)
     (?animal has long neck)
     (?animal has long legs)
     (?animal has dark spots)
     THEN (?animal is a giraffe))
(Z12 IF
     (?animal is a ungulate)
     (?animal has black stripes)
     THEN (?animal is a zebra))
(Z13 IF
     (?animal is a bird)
     (?animal has long legs)
     (?animal has long neck)
     (?animal is black and white)
     THEN (?animal is a ostrich))
(Z14 IF
     (?animal is a bird)
     (?animal swims)
     (?animal is black and white)
     THEN (?animal is a penguin))
(Z15 IF
     (?animal is a bird)
     (?animal flies well)
     THEN (?animal is a albatross))

CODE

(define (make-stretch)
  (clear-assertions)
  (remember-assertions
   '(Stretch has hair)
   '(Stretch chews cud)
   '(Stretch has long legs)
   '(Stretch has long neck)
   '(Stretch has tawny color)
   '(Stretch has dark spots))
  (display "Stretch's characteristics recorded:\n")
  (display-assertions))

(define (make-swifty)
  (clear-assertions)
  (remember-assertions
   '(Swifty has hair)
   '(Swifty has pointed teeth)
   '(Swifty has claws)
   '(Swifty has forward-pointing eyes)
   '(Swifty has tawny color)
   '(Swifty has dark spots))
  (display "Swifty's characteristics recorded:\n")
  (display-assertions))

(define (make-splashy)
  (clear-assertions)
  (remember-assertions
   '(Splashy has feathers)
   '(Splashy lays eggs)
   '(Splashy does not fly)
   '(Splashy is black and white)
   '(Splashy swims))
  (display "Splashy's characteristics recorded:\n")
  (display-assertions))

(define (make-sandy)
  (clear-assertions)
  (remember-assertions
   '(Sandy has long legs)
   '(Sandy has long neck)
   '(Sandy has feathers)
   '(Sandy lays eggs)
   '(Sandy does not fly)
   '(Sandy is black and white)
   '(Sandy swims))
  (display "Sandy's characteristics recorded:\n")
  (display-assertions))


(define (make-pumy)
  (clear-assertions)
  (remember-assertions
   '(Pumy has hair)
   '(Pumy has pointed teeth)
   '(Pumy has claws)
   '(Pumy has forward-pointing eyes)
   '(Pumy has tawny color))
  (display "Pumy's characteristics recorded:\n")
  (display-assertions))
