(defklass node () name description priority ; how much to stres on achieving this one ;givens ; distributions ;goals ; distributions computeds; distributions ;costs; distributions whose y-axis is the cost lockedp ; locked or free cost ; (of controlling) tags ; (from classes) ) (defklass scenaro () graph view lockeds goals givens costs ) (defklass views () user likes dislikes ) (defklass graph () name nodes ) (defmethod leafp ((n nodes)) (not (nodes-kids n))) (defklass distribution buckets ; ordered list of value.height pairs min max ) (defklass nodes node kids) (defklass andv nodes) (defklass orv nodes) (defklass notv nodes ) (defklass nullv nodes ) (defmethod ? ((n null)) (error "null lookup")) (defmethod ? ((n symbol)) (? (at n))) (defmethod ? ((n node)) (or (node-got n) (sample n))) (defmethod ! ((n null)) (error "null setting")) (defmethod ! ((n symbol)) (! (at n))) (defmethod ! ((n node)) (setf (node-got n) (? n))) (defmethod combine ((a andv)) #'least) (defmethod combine ((a orv)) #'most)