My latest creation using Lisa on ABL (armed-bear Lisp):
.... imagine evaluating rules like this one:
(defrule climb-to-hold ()
(goal-is-to (action hold) (argument-1 ?obj)) (thing (name ?obj) (location ?place (not ceiling)) (on-top-of ?on) (weight light)) (monkey (location ?place) (on-top-of (not ?on))) (not (goal-is-to (action on) (argument-1 ?on))) => (assert ((make-instance 'goal-is-to :action 'on :argument-1 ?on))))on Java objects, while having all the power of CommonLisp available.