Generating Knowledge-Based System Generators: A Software Engineering Approach

Generating Knowledge-Based System Generators: A Software Engineering Approach

Sabine Moisan
DOI: 10.4018/978-1-4666-0158-1.ch001
(Individual Chapters)
No Current Special Offers


This paper investigates software engineering techniques for designing and reengineering knowledge-based system generators, focusing on inference engines and domain specific languages. Indeed, software development of knowledge-based systems is a difficult task. We choose a software engineering approach to favor code reuse, evolution, and maintenance. We propose a software platform named Lama to design the different elements necessary to produce a knowledge-based system. This platform offers software toolkits (mainly component frameworks) to build interfaces, inference engines, and expert languages. We have used the platform to build several KBS generators for various tasks (planning, classification, model calibration) in different domains. The approach appears well fitted to knowledge-based system generators; it allows developers a significant gain in time, as well as it improves software readability and safeness.
Chapter Preview

A Meta Generator Approach

Knowledge-based systems were first developed using ad hoc customized approaches. Then, based on similarities among activities and across application domains, the notion of KBS generators emerged in the late 80s. KBS generators take advantage of the cross-domain similarities by abstracting the common artificial intelligence concepts and by pooling representation techniques in the same environment. Such development environments provide a panel of reasoning mechanisms and knowledge representations that can be shared and adapted to different domains. They usually propose knowledge acquisition, learning, and verification tools, various editors, and an inference engine. Some of these elements are used only during the KBS elaboration (such as knowledge verification tools), whereas other can be active even during operational use of the final system (engine or learning tools). However, all of them are necessary to conveniently design KBSs. Except for general rule-based shells (such as Jess; Friedman-Hill, 2002), most generators are more or less dedicated to a given range of applications or to a given task (e.g., classification) through their inference mechanisms. They are yet domain-independent, hence their KBS instances may apply to various domains (e.g., classification of cardiologic diseases, of astronomic objects, of biological organisms). Such specialized generators are closer to expert ways of reasoning and often lead to more efficient KBSs.

Complete Chapter List

Search this Book: