KADS is the name of a structured methodology for the development of knowledge based systems that is now in practical use in many places in Europe and elsewhere. The history of KADS is a long and complicated one. As early as 1982 Annie Brooking of the Polytechnic of the Southbank (United Kingdom) saw the need for a more structured development process for knowledge based systems than the rapid prototyping approaches that where prevailing at the time. Together with a team of the University of Amsterdam (The Netherlands) she submitted a proposal for the very first round of the ESPRIT programme. A pilot project (Project 12) was launched in mid 1983. The goals were ambitious: a comprehensive methodology was to be developed, based on sound engineering techniques and supported by tools and techniques.
The major outcomes of the one-year project were limited, but set the scene for further developments. P12 resulted in a systematic analysis of knowledge elicitation techniques (Breuker & Wielinga, 1983, 1984), a first attempt towards modelling expertise at the knowledge level (Wielinga & Breuker, 1984), a number of case studies, and a computerised system that supported the analysis and documentation of knowledge (hence the name KADS ``Knowledge Analysis and Documentation System''. Later on, other interpretations have been given to this acronym, such as ``Knowledge Analysis and Design Support''). Each one of these results was far from being suitable for use in a commercial context. Even less was there anything that could go under the name of methodology.
The results of P12 were further explored in a short project (P314) where a number of commercial partners joint the two universities. The potential of the ideas developed in P12 was recognised and a new and far larger project (P1098) was proposed and granted in 1985. This five-year project encompassed some 80 person years of effort and involved six partners. The goals were essentially the same as those for P12, but much better explicated. The work was divided into three streams: theory development, tools development and experimental testing of the emerging methodology through practical case studies. The emphasis on knowledge acquisition that was predominant in the earlier projects was replaced by a broader view in which issues such as life-cycle models, system-user interaction and system design and implementation had their appropriate place. In the course of the P1098 project, a partial methodology for knowledge based system development emerged. Although the emerging methodology was a moving target in the sense that ideas, terminology and tools were constantly changing, some of the more stable results of the KADS-I project (as it is now commonly referred to) found their way to an audience outside the KADS consortium. The methods for modelling expertise were the basis of a commercially developed Structured Knowledge Engineering method (SKE) and served as starting point for many investigations along similar lines.
In spite of its success in many respects, the KADS-I project had not fully reached its original goals. The KADS methodology anno 1989 lacked a degree of formality that hampered its understanding and that stood in the way of further development, such as automated support for the knowledge engineering process. In a small collaborative project between the University of Amsterdam and the Netherlands Energy Research Foundation (ECN) a framework for the formal specification of knowledge-level models of expertise was developed (Akkermans, van Harmelen, Schreiber & Wielinga, 1993). This framework now forms the basis of several efforts concerned with formalisation of reasoning at the knowledge level.
Not only were many of the concepts in KADS-I underspecified, the methodology did also not cover the full life cycle of knowledge based system development. In addition, the world of software engineering had not stood still: better insights in the role of prototyping, the role of incremental and risk driven software development and the importance of socio-organisational aspect of information system development had become clear.
This resulted in the formation of a new consortium that submitted the KADS-II project to the CEC. In fall 1990 the KADS-II (P 5248) started for a period of three and a half years planning to spend a total of 80 person years. The goals of the KADS-II project are (still) to develop a comprehensive methodology for development of knowledge based systems, but qualified to become the commercial standard at least in Europe.
This issue contains five articles on various topics in KADS. The articles describe KADS more or less as it was perceived at the start of the KADS-II project (i.e. end of 1990), The article by van Harmelen and Balder also presents work carried out in the KADS-II project.
The article by Wielinga, Schreiber and Breuker is meant to serve as an overview article of the main ideas behind KADS. The KADS approach is presented through a number of principles that together form the backbone of the methodology. The most well-known ingredient of KADS is the the so-called ``four-layer model'': a conceptual framework for describing the problem solving expertise in a particular domain using several layers of abstraction. These layers allow the knowledge engineer to describe the problem solving process in a domain-independent fashion. A major assumption of KADS is that generic (e.g. domain-independent) parts of such a model of expertise can potentially be reused as templates in similar domains (the so-called ``interpretation models''). This reusability principle is a central aspect of KADS.
Unlike most other approaches using explicit models of problem solving, KADS distinguishes between (i) a conceptual model of expertise independent of a particular implementation, and (ii) a design model specifying how a model of expertise is operationalised with particular computational and representational techniques. This gives on the one hand the knowledge engineer considerable flexibility in specifying the required problem solving expertise, but on the other hand creates the additional task of ``making it run'': building a system that correctly and efficiently executes this specification.
The article by Linster and Musen describes an application of KADS, namely the re-engineering of the ONCOCIN system. This application was chosen because it describes a well-known and documented task-domain. The authors discuss both the final product (the model of expertise and, briefly, its transformation into design and implementation) as well as the process that led to this product. Woodward (1991) gives a very detailed account of the knowledge engineering process underlying the paper of Linster and Musen. His analysis is based on interviews and discussions with Linster. The article by Linster and Musen can be seen as a first step towards cross-validation of approaches to KBS development by applying them to other data-sets.
The article by de Greef and Breuker addresses the relationship between knowledge-based systems and their prospective users. It is argued that issues concerning user-system interaction often pose problems that are at least as difficult as those that arise during modelling domain expertise. The authors discuss the process of initial task analysis, the assignment of tasks to agents, and the identification of tasks requiring a cooperative effort between system and user. A framework for describing such cooperative tasks is presented. Also, techniques for analysing user-system cooperation such as the Wizard of Oz technique are discussed.
The article by Anjewierden, Wielemaker and Toussaint describes the Shelley workbench. This workbench was developed in KADS-I project to support the knowledge engineer in applying the KADS methodology. It contains a common information repository and various so-called ``activity support tools'' that allow the knowledge engineer to edit particular chunks of this information repository. The tools support a range of functionalities such as the annotation of think-aloud protocols and the selection of generic models from a built-in library. The Shelley workbench acts as a database that represents the status of development for an application at a particular point in time. The output of the workbench is not a running system. Instead, it supports the definition of transformation procedures for document and code generation.
The last article by van Harmelen and Balder can be seen as a further investigation of the ideas in KADS on representing models of expertises. A formal language is presented for expressing these models. As discussed before, this work is aimed at getting a better insight into various issues related to knowledge-level modelling. The formal framework allows the knowledge engineer to come with a much more precise specification of the expertise required in a KBS. Also, formal specifications provide a much better basis for comparing the various approaches to modelling problem solving in knowledge-based systems. The authors discuss how parts of these formal models can be mechanised and thus be used for (partial) simulations of the problem-solving behaviour of the prospective system. In the future, we expect that the formal language will support the definition of a well-founded taxonomy of primitive inference types. Of course, the price paid for a higher degree of precision is a lesser degree of conceptual clarity. In the KADS-II project the use of both formal and informal representations is a major research topic.
In our opinion, it is necessary and essential for the field to start working on comparing and unifying the various approaches. Some first efforts in this direction have been undertaken. At the 1990 European Knowledge Acquisition Workshop the Sisyphus project was initiated, aiming (amongst other things) at a comparison of approaches to the formulation of problem solving methods by applying them to a standard data-set. Similar activities are also planned for the 1992 Banff Knowledge Acquisition Workshop. In the KADS-II project the University of Amsterdam and the Free University of Brussels are investigating a unification of KADS as presented in this issue and the Components of Expertise framework (Steels, 1990) developed in Brussels, while incorporating also ideas from other approaches.
In the short term, cross-validation studies could help in defining a common vocabulary for describing models of problem solving for knowledge-based systems. This could pave the way for exchange of models between research groups and a standardisation of ingredients of such models. In the longer term, we envisage a research effort aimed at defining a comprehensive set of commonly shared problem solving methods and generic domain structures. In our view, this is an important (if not the only) route towards improving the state of the art in KBS development.
Akkermans, H., van Harmelen, F., Schreiber, G., Wielinga, B. (1993). A formalisation of knowledge-level models for knowledge acquistion. International Journal of Intelligent Systems.
Breuker, J. Wielinga, B. (1983). Analysis techniques for knowledge-based systems. ESPRIT Project P12 Report 1.2, University of Amsterdam.
Breuker, J. Wielinga, B. (1984). Techniques for knowledge elicitation and analysis. ESPRIT Project P12 Report 1.5, University of Amsterdam.
Steels, L. (1990). Components of expertise. AI Magazine.
Wielinga, B. Breuker, J. (1984). Interpretation of verbal data for knowledge acquisition. In OShea, T., editor, Advances in Artificial Intelligence, pages 41-50, Amsterdam. ECAI, Elsevier Science publishers.
Woodward, J. (1991). Developing K-ONCOCIN: A case study in the cognitive process of knowledge engineers. In Gaines, B. Boose, J., editors, Proceedings KAW'91, Banff, Canada, pages 39-1 -- 39-21. SRDG Publications, University of Calgary.