This paper describes the knowledge representation and reasoning components of Proteus, a hybrid expert system tool, written in Common Lisp, at the Microelectronics and Computer Technology Corporation. Proteus is frame-based, but allows knowledge to be expressed in terms of arbitrary predicates. It also integrates goal-directed and data-directed inference, allowing the knowledge engineer the freedom to decide whether each logical implication is more suitably represented as a backward rule or a forward rule. A central feature of Proteus is a nonmonotonic truth maintenance system, which records logical inferences and dependencies among data and allows efficient revision of a set of beliefs to accommodate new information, the retraction of a premise, or the discovery of a contradiction. It also facilitates the generation of coherent explanations.
Full paper: ps, pdf (appeared in Object-Oriented Concepts, Applications, and Databases, edited by W. Kim and F. Lochovsky, Addison-Wesley, 1989)