next up previous
Next: Microtheories Up: Modularity Previous: Modularity

Epistemological level / heuristic level distinction

The importance of this concept was first pointed out twenty years earlier by McCarthy and Hayes [McCarthy and Hayes, 1969]. There are two properties that knowledge based systems must satisfy. Epistemological adequacy means that we should be able to state whatever we want to state in the domain using the language of the system. Heuristic adequacy means that the system should be able to infer common conclusions in an efficient fashion. Typically there is a trade-off between the representational power and the inference efficiency. There is no a priori reason for using the same language for both requirements. Thus one can build a system on two levels. The epistemological level supports an expressive language. The heuristic level consists of a lot of special purpose inference engines that gain efficiency on a subclass of problems by using appropriate representations and algorithms.

The state of Cyc in the book, split between a frame language and a predicate calculus representation, is in fact a result of not appreciating this distinction from the first day of design. The frame language was adopted for its efficiency, while the predicate calculus was needed for its expressive power to represent constraints. As Cyc matured, the EL/HL difference was integrated into the system, and the need for different languages disappeared. In fact the current Cyc provides a uniform language for the users to make assertions and queries. Knowledge is represented redundantly at two levels. The epistemological level keeps a copy of the facts in the uniform user language. The heuristic level keeps its own copy in a number of different languages and data structures to make certain inferences efficient. A user query is automatically translated between these levels to make use of the most efficient algorithm to carry it out. The heuristic level contains dozens of specialized inference engines.

These inference engines, however, are based purely on the syntactic structure of the axioms. Typical examples include engines for inheritance, automatic classification, maintenance of inverse links and dependencies etc. The representations they manipulate are still symbolic representations, albeit expressed in a more convenient data structure. The inference they support is still deductive inference.



next up previous
Next: Microtheories Up: Modularity Previous: Modularity



Deniz Yuret
Tue Apr 1 21:26:01 EST 1997