 KEE had a complete rule engine with forward and backward chaining.It also had a complete frame based knowledge base with triggers, slots (data values), inheritance, and message passing.Although message passing originated in the object-oriented community rather than AI it was quickly embraced by AI researchers as well in environments such as KEE and in the operating systems for Lisp machines from Symbolics, Xerox, and Texas Instruments.