Knowledge Compilation: Bridging the Gap between Specification and Implementation

The fundamental goal of artiicial intelligence is to develop methodologies for constructing eeective, intelligent systems. At the most abstract level, there are three basic subproblems to be solved: (a) specifying the desired behavior of the target system, (b) constructing a (run-time) problem-solving architecture that can support eeective performance, and (c) bridging the gap (assuming one exists) between the speciications and the run-time architecture. Researchers in \knowledge compilation" claim that the gap between speciications and run-time architectures is substantial, and they seek automatic methods for transforming speciications into implementations. Let us examine this claim. The great majority of expert systems make no separation between speciications and run-time implementations. Indeed, one of the major selling points of early expert systems work was that the \speciications" could be gathered incrementally, expressed transparently as rules, and executed interpretively to yield eeective problem solving and useful explanations of system reasoning. Clearly such systems contain no gap and require no knowledge compilation. As we move to more ambitious AI applications, however, the gap begins to appear. Three forces act to open the gap. First, in some domains it is easiest to specify the desired performance of the system in a form that is too ineecient to execute interpretively. Second, there are domains where it is impossible to interpretively execute the speciications, because they are expressed in terms of unobservable quantities. Third, speciications may contain contradictions or connicting criteria that must be detected and resolved prior to execution. As an example of ineecient speciications, consider tasks in engineering design. In design domains, the knowledge taught in textbooks and easily incorporated into computer systems is analysis knowledge|knowledge that is suucient to determine whether a proposed design will satisfy its requirements. Virtually all computer-aided engineering in mechanical design, for example, involves nite-element analysis of structures, heat ow, uid ow, and so on. A common criticism of modern engineering education is that the only methods taught to students are analysis methods, and consequently newly graduated engineers have diiculty designing successful products.