The current generation of expert systems is fueled by special-purpose, task-specific associational rules developed with the aid of domain experts. In many cases, the expert has distilled or compiled these so-called 'shallow rules from 'deeper' models of the application domain in order to optimize task performance.
With the traditional knowledge engineering approach, only the shallow, special-purpose rules are elicited from the expert - not the underlying domain models upon which they are based. This results in two significant problems.
First, expert systems cannot share knowledge bases because they contain only special-purpose rules and lack the underlying general domain knowledge that applies across tasks. Second, because the underlying models are missing, shallow rules are unsupported and brittle.
This chapter describes a proposed second generation expert system architecture that addresses these problems by linking special-purpose rules to underlying domain models using a process called rule compilation. Rule compilation starts with a detailed domain model, and gradually incorporates various simplifying assumptions and approximations into the model, thereby producing a series of successively less general - but more task-efficient - models of the domain.
The end product of the rule compilation process is an associational rule model specialized for the task at hand.The process of rule compilation is illustrated with two simple implemented examples.
In the first, a structure/behavior model of a simple engineered device is compiled into a set of plans for redesign. In the second, the same underlying device model is compiled into a set of fault localization rules for troubleshooting.