(setq *examples* 
'(((willwait . Yes) (alternate . Yes)  (bar . No)  (fri/sat . No)  
   (hungry . Yes)  (patrons . Some)  (price . DDD)  (raining . No)  
   (reservation . Yes)  (type . French)   (waitestimate . 0)   )
  ((willwait . No) (alternate . Yes)  (bar . No)  (fri/sat . No)  
   (hungry . Yes)  (patrons . Full)  (price . D)  (raining . No)  
   (reservation . No)  (type . Thai)   (waitestimate . 30)   )
  ((willwait . Yes) (alternate . No)  (bar . Yes)  (fri/sat . No)  
   (hungry . No)  (patrons . Some)  (price . D)  (raining . No)  
   (reservation . No)  (type . Burger)   (waitestimate . 0)   )
  ((willwait . Yes) (alternate . Yes)  (bar . No)  (fri/sat . Yes)  
   (hungry . Yes)  (patrons . Full)  (price . D)  (raining . No)  
   (reservation . No)  (type . Thai)   (waitestimate . 10)   )
  ((willwait . No) (alternate . Yes)  (bar . No)  (fri/sat . Yes)  
   (hungry . No)  (patrons . Full)  (price . DDD)  (raining . No)  
   (reservation . Yes)  (type . French)   (waitestimate . 60)   )
  ((willwait . Yes) (alternate . No)  (bar . Yes)  (fri/sat . No)  
   (hungry . Yes)  (patrons . Some)  (price . DD)  (raining . Yes)  
   (reservation . Yes)  (type . Italian)   (waitestimate . 0)   )
  ((willwait . No) (alternate . No)  (bar . Yes)  (fri/sat . No)  
   (hungry . No)  (patrons . None)  (price . D)  (raining . Yes)  
   (reservation . No)  (type . Burger)   (waitestimate . 0)   )
  ((willwait . Yes) (alternate . No)  (bar . No)  (fri/sat . No)  
   (hungry . Yes)  (patrons . Some)  (price . DD)  (raining . Yes)  
   (reservation . Yes)  (type . Thai)   (waitestimate . 0)   )
  ((willwait . No) (alternate . No)  (bar . Yes)  (fri/sat . Yes)  
   (hungry . No)  (patrons . Full)  (price . D)  (raining . Yes)  
   (reservation . No)  (type . Burger)   (waitestimate . 60)   )
  ((willwait . No) (alternate . Yes)  (bar . Yes)  (fri/sat . Yes)  
   (hungry . Yes)  (patrons . Full)  (price . DDD)  (raining . No)  
   (reservation . Yes)  (type . Italian)   (waitestimate . 10)   )
  ((willwait . No) (alternate . No)  (bar . No)  (fri/sat . No)  
   (hungry . No)  (patrons . None)  (price . D)  (raining . No)  
   (reservation . No)  (type . Thai)   (waitestimate . 0)   )
  ((willwait . Yes) (alternate . Yes)  (bar . Yes)  (fri/sat . Yes)  
   (hungry . Yes)  (patrons . Full)  (price . D)  (raining . No)  
   (reservation . No)  (type . Burger)   (waitestimate . 30)   )))

(setq *attributes*
'((alternate yes no)
  (bar yes no)
  (fri/sat yes no)
  (hungry yes no)
  (patrons None Some Full)
  (price D DD DDD)
  (raining yes no)
  (reservation yes no)
  (type French Italian Thai Burger)
  (waitestimate 0 10 30 60)))

(setq *goal* '(willwait yes no))

(defvar *target*)

(setq *target*
    '((patrons none some full)
      (none . no)
      (some . yes)
      (full 
       (waitestimate 60 30 10 0)
       (60 . no)
       (30
	(alternate yes no)
	(yes
	 (fri/sat yes no)
	 (no . no)
	 (yes . yes))
	(no
	 (reservation yes no)
	 (no 
	  (bar yes no)
	  (no . no)
	  (yes . yes))
	 (yes . yes)))
       (10
	(hungry yes no)
	(no . yes)
	(yes
	 (alternate yes no)
	 (no . yes)
	 (yes
	  (raining yes no)
	  (no . no)
	  (yes . yes))))
       (0 . yes))))

