anchor.diff:  (defrule satisfy-hunger :forward :context mab
     (goal-is-to ?goal action eat argument-1 ?name)
     (monkey ?monkey holding ?name)
  -  (think ?thing name ?name)
  -  =>
  +  (thing ?thing name ?name)
  +  -->
     ((format t "Monkey eats the ~A.~%" ?name))
     (assert (monkey ?monkey holding blank))
     (erase ?goal)
  
positive.code: ;;; Description: The "Monkey And Bananas" sample implementation, a common AI
  ;;; planning problem. The monkey's objective is to find and eat some bananas.
  
  ;;; $Id: mab-kw.lisp,v 1.2 2001/03/23 00:06:05 youngde Exp $
  
  (require "kw")
  
  
negative.code: (defrule move-to-chest-with-key :forward :context mab
    (goal-is-to ? action unlock argument-1 ?chest)
    (thing ? name ?chest location ?cplace on-top-of floor)
    (monkey ? location ?loc holding ?key)
    (test (not (eql ?loc ?cplace)))
    (chest ? name ?chest unlocked-by ?key)
    (not (goal-is-to ? action walk-to argument-1 ?cplace))
  