Knowledge Engineering Environment
# Knowledge Engineering Environment

Knowledge Engineering Environment (KEE) is a frame-based development tool for expert systems. It was developed and sold by IntelliCorp, and was first released in 1983. It ran on Lisp machines, and was later ported to Lucid Common Lisp with the CLX library, an X Window System (X11) interface for Common Lisp. This version was available on several different UNIX workstations.

On KEE, several extensions were offered:

* Simkit, a frame-based simulation library
* KEEconnection, database connection between the frame system and relational databases

In KEE, frames are called units. Units are used for both individual instances and classes. Frames have slots and slots have facets. Facets can describe, for example, a slot's expected values, its working value, or its inheritance rule. Slots can have multiple values. Behavior can be implemented using a message passing model.

KEE provides an extensive graphical user interface (GUI) to create, browse, and manipulate frames.

KEE also includes a frame-based rule system. In the KEE knowledge base, rules are frames. Both forward chaining and backward chaining inference are available.

KEE supports non-monotonic reasoning through the concepts of worlds. Worlds allow providing alternative slot-values of frames. Through an assumption-based truth or reason maintenance system, inconsistencies can be detected and analyzed.

ActiveImages allows graphical displays to be attached to slots of Units. Typical examples are buttons, dials, graphs, and histograms. The graphics are also implemented as Units via KEEPictures, a frame-based graphics library.

