Verlag: Kluwer Academic Publisher, Boston
The subject of the book is the Knowledge Acquisition and Representation Language KARL which is a formal and operational specification language for knowledge-based systems. It provides language primitives to represent knowledge according to the layers of a KADS-oriented model of expertise. The main features of KARL are: It provides epistemologically adequate modelling primitives allowing knowledge specifications at the so-called knowledge level. It is a formal knowledge specification language. That is, it has a declarative semantics. It is an operational knowledge specification language which allows prototyping. Chapter one introduces the basic idea of KARL. The main object of KARL is to fill or to narrow the gap between the implementation and the conceptual description of a knowledge-based system by defining a formal and operational specification language. It is related to the symbol level because it is a language with a formal and operational semantics. It is related to the knowledge level because it abstracts from all implementational details which are concerned with the realization by an efficient implementation. Chapter two, three, and four introduce the language KARL itself. KARL consists of the two languages L-KARL and P-KARL. Chapter two introduces the language L-KARL which is used to model static knowledge. P-KARL which is used to model procedural knowledge (i.e., knowledge about the control flow of a problem-solving method) is described in chapter three. Finally, chapter four shows how these languages and their interaction are used to model the domain layer, the inference layer, and the task layer of a model of expertise. Then, the mathematical semantics of KARL is defined in chapter five. A model-theoretic semantics is defined which allows a precise and unique specification of knowledge-based systems. Besides KARL, some other languages have been developed during the last few years which aim to formalize or operationalize KADS models of expertise. Besides all technical details, the main difference between KARL and the other languages is the fact that KARL aims to be a formal and operational knowledge specification language. The object here is not only operationalization in principle, i.e., the possibility of using a kind of theorem-proving, but also an efficient evaluation to allow prototyping. In the conclusion, we compare KARL with one these languages which where developed as part of the KADS project. We also characterize some shortcomings of KARL and outline aspects of future work with it.