Some parts of this text, namely “Co-operative Building, Adaptation, and Evolution of Abstract Models of a KB” and most subsections in “Performing Reasoning in SOOKAT According to a KB”, have appeared in an article (DOI:10.1007/s10115-004-0181-6) published in the ‘Knowledge And Information Systems’ journal (Parpola, 2004). A knowledge base (KB) contains data and instructions for using it (e.g., as a rule base). A KB containing knowledge possessed by experts can be used in an expert system. It can solve problems requiring expert knowledge, explain its decisions and deal with uncertainty. An expert system can be used as a basis for a larger system, called a knowledge-based system (KBS). Knowledge acquisition (KA) that is the development and maintenance of KBs, (e.g. an expert system), can be divided into several phases, performed sequentially and iteratively. Some phases may be performed in parallel with other phases. The most commonly recognised phases are requirements definition, analysis, design, and implementation. Disintegration, or the gap between phases of development, especially between abstract and executable descriptions, was recognised during the early stages of KA (Marcus, 1988a; Motta, Rajan and Eisenstadt, 1988). It complicates the development of KBs and hinders traceability between parts of abstract and executable descriptions.
Seamless Structured Knowledge Acquisition (SeSKA) (Parpola, 1998; Parpola, 1999a; Parpola, 1999b; Parpola, 2000) is a methodology for as well the development and maintenance of KBs as performing reasoning in them. It is designed to enhance integration of the KA process.
During KB construction, a series of models, including the (combined) dependency graph, the domain model, the inference model, together with analysis, design and implementation descriptions, is created and possibly modified. The structure of the knowledge base is based on the logical structure of the domain which has been noticed to be more stable than the component structure (Jacobson et al., 1992).
Related work concerning the use of metaobjects and metalevels in KA includes the following:
Protégé-2000 (Fridman Noy, Ferguson and Musen, 2000) uses a metaobject protocol (Steele, 1990; Kiczales, des Riviers and Bobrow, 1991) to describe a model, for example, the CommonKADS model of expertise (Schreiber, Crubézy and Musen, 2000). This allows applications to be presented as instantiations of the model.
OIL (Ontology Inference Language) (Fensel, van Harmelen, Decker, Erdmann and Klein, 2000) is a proposal, based on OKBC (Open Knowledge Base Connectivity), XOL (Ontology Exchange Language), and RDF (Resource Description Framework), for a joint standard for specifying and exchanging ontologies over the Internet. Modelling ontologies in OIL distinguishes three separate layers, the object level the first metalevel, and the second metalevel. The structure consists of several components. Rule bases, classes and slots, and types, as well as slot constraints and inheritance, are used. OIL is a frame-based system, using, for example, rule bases.