Lenat, D. B.


Building Large Knowledge-Based Systems: Representation and Inference in the CYC Project

Classics

The book under review here, Building Large Knowledge-Based Systems: Representation and Inference in the Cyc Project, describes progress so far in an attempt to build a system that is intended to exhibit general common-sense reasoning ability. This review first discusses aspects of the Cyc system, with a focus on important decisions made in designing its knowledge representation language, and on how claims about the performance of the system might be validated.‡ The review then turns to the book itself, discussing both its merits and its faults.



Why AM and EURISKO appear to work

Classics

The am program was constructed by Lenat in 1975 as an early experiment in getting machines to learn by discovery. In the preceding article in this issue of the AI Journal, Ritchie and Hanna focus on that work as they raise several fundamental questions about the methodology of artificial intelligence research. Their considerations, and our post-am work on machines that learn, have clarified why am succeeded in the first place, and why it was so difficult to use the same paradigm to discover new heuristics. Some criticism of the paradigm of this work arises due to the ad hoc nature of many pieces of the work; at the end of this article we examine how this very adhocracy may be a potential source of power in itself.


Less than general production system architectures

Classics

Many of the recent expert rule-based systems [Dendral, Mycin, AM, Pecos] have architectures that differ significantly from the simple domainindependent architectures of "pure" production systems. The most significant benefits arise from three sources: (i) the grain size of a typical rule can be increased until it captures a unit of advice which is meaningful in that system's task domain, (ii) the interpreter can become accessible to the rules and thus become dynamically modifiable, and (iii) meaningful permanent Knowledge can be stored in data memories, not just within productions. The architecture that he proposed and that has since been emulated by several researchers has the following familiar components: (i) a single production memory containing an indefinitely large number of productions (condition/action rules) in which all of the system's permanent knowledge is encoded; (ii) a single data memory (called working memory) containing assertions that are in the process of being assimilated or modified by the system; and (iii) an interpreter that repeatedly matches the conditions in each production against the assertions in data memory, selects from the set of satisfied productions one production to fire, and then executes the actions specified in that production. Most of these systems are closely related to production systems: they divide the world into data and condition/action rules, and make use of an interpreter that repeatedly matches rules against data and then executes the actions of one or more of the rules whose conditions are satisfied.