WebCokace: A CommonKADS Expertise Model Web Server

Olivier Corby & Rose Dieng

2004 route des lucioles, BP 93
06902 Sophia Antipolis Cedex

Abstract: This paper describes a CommonKADS Expertise Model Web Server. It enables the distribution of CommonKADS Expertise Models (EM) on the Internet by means of a Web server. The software offers several functions such as:

The system can be viewed as a CommonKADS (generic) library server on the Web. The system is built on top of Cokace which is an environment for CommonKADS CML expertise model development.


The main purpose of WebCokace is to provide the user with access to a CommonKADS expertise model repository, by means of a Web server. The user connects to the Web server with his preferred browser and has access to expertise in the standard hypertextual Web fashion. In such a way, expertise models are accessible to a community of users on the Internet. WebCokace can be used by knowledge engineers to browse a generic modeling library, by experts to check the expertise model of a knowledge based system or by members of an enterprise to consult a knowledge-based corporate memory. WebCokace offers hypertextual navigation, a query language and search functions, annotation with documents and graphic generation.


The CommonKADS Expertise Model (Breuker et al. 1994, Schreiber et al. 1994) aims at modeling a problem solving behaviour from a Knowledge Level perspective. It is structured in three layers: the domain level and the task and inference levels.

The domain level provides ontology modeling, e.g. conceptualizing and formalizing a domain by means of concepts, expressions and relations. According to the ontologies, the domain level also describes knowledge chunks called domain models. A domain model describes knowledge on part of the domain, from a specific point of view. For example, one can describe a causal model of a system, a behavioural model, a structural decomposition, etc.

The task and inference levels aim at modeling reasoning and problem solving. These levels are supposed to be as much as possible independent of the domain: they should be described in a task specific way. For example, if one models electrical diagnosis, the task and inference levels should talk mainly about diagnosis and not (much) about electrical matter. Tasks and inferences use a task oriented ontology, the terms of which are called roles. For example diagnosis talks about symptoms, fault, hypothesis, candidate, solution, measure, etc.

Tasks describe the goals of the problem solving agent and the actions that can lead to reach the goals, including goals and tasks decomposition. Basic tasks are implemented by means of inferences. An inference is close to the notion of inference rule in logic. It specifies the basic reasoning steps that are feasible at the domain level. It describes the type of knowledge that it is possible to deduce given inputs and domain models. Inferences also describe the mapping between task oriented roles and domain level entity types.


3.1 Hypertextual Navigation

WebCokace interface proposes to the user to browse generic libraries and target applications by means of access to source documents, index, hypertextual and graphic views on CommonKADS expertise models (EM) and advanced search features. The Expertise Models are managed by a Cokace server which is connected to a Web server by means of a CGI interface.

The Cokace environment (Corby and Dieng, 1996) enables to develop and validate CommonKADS expertise models in CML. It provides a structured editor and a type-checker. EM are internally manipulated by means of an object oriented abstract representation (so-called abstract syntax tree). This representation enables high level and abstract operations on expertise models, such as search by pattern matching and pretty-printing. We wrote several pretty-printers allowing to display an expertise model through different formats (CML source, HTML, text only, graphics, etc.). Figure1 shows WebCokace user interface home page, available at the URL: http://www.inria.fr/acacia/Cokace.


FIGURE 1. WebCokace User Interface Home Page

Cokace is itself built on top of the Centaur programming environment generator. Centaur has been developed at the Inria in the Croap team (Borras et. al. 1988). Given the specifications of a language, Centaur generates an integrated set of tools such as parsers, structured editors, pretty-printers, type-checkers and interpreters. Cokace was generated by specifying the CML language in Centaur. This architecture is generic and can be reused to build servers for other languages since Centaur is a programming language environment generator. We have extended Cokace so that it behaves like an expertise model server accessible by a client. The client emits a request and Cokace delivers information in response to the request. In our case, the client is a Web server as shown in Figure2.

FIGURE 2. WebCokace Architecture

The CGI interface routes queries from the Web server to Cokace and routes answers back from Cokace to the Web server. On request, Cokace extracts data from expertise model abstract representations. Then, Cokace transforms abstract data into textual or graphic format by means of pretty-printers. Furthermore, textual representation is dynamically annotated by Cokace with HTML hypertext links to symbolize relations between KADS entities. Once present in the Web browser of the knowledge server user, the hypertext links are activated and the system simulates hypertextual navigation in CommonKADS entities. When the user clicks on a hypertext link, he activates a CGI script which sends a request to the Cokace server. The answer to the user's request is another HTML page with new hypertext links to related CommonKADS entities, and so on. The user can navigate from one entity to another: concept to super concepts, task to subtasks, inference role to domain reference, etc. Here is an example where the ``sub-type-of'' field is represented in the system by means of an URL to the related concept:

concept Patient_prognostic_factor ;
<a href="/cgi-bin/select.pl?request=ck-select&from=concept&name=Prognostic_factor">
end concept Patient_prognostic_factor;

When the user clicks on the ``sub-type-of'' link, it leads to the following concept:

concept Prognostic_factor ;
end concept Prognostic_factor;

Cokace generates hyperlinks for concept references (super concept, differentiation-of, slot access in expressions and in domain model, etc.), domain reference in relations and in inference sorts, in subtasks, etc. Furthermore, Cokace automatically generates hypertext links for subconcepts, task super-task and inference super-tasks (the tasks which call an inference). This dynamic creation of hyperlinks by Cokace is an important feature: it allows a dynamic generation of adequate HTML documents during consultation time, in answer to the user's requests.

Static link During expertise model development in Cokace, the CML entities (concept, task, inference, etc.) may explicitly be annotated by the knowledge engineer with URL references to other CML entities. In that case, at consultation time, the URL become active when the annotated entities are loaded in the Web browser of the knowledge server user. For example, a task may reference a problem solving method in a comment:

task SolveConflict
/* <a href="/cgi-bin/select.pl?request=ck-select&from=psm&name=CBR">Alternative PSM</a> */

Presentation Formats WebCokace can generate indexes for coarse grain entities (domain, ontology, task, inference). The knowledge server user can then have a summary of the content of given expertise models. WebCokace can also supply CML source versions of CommonKADS expertise models, thus enabling a user to get and reuse modeling components from a library. The CML source version does not contain generated hypertext links. As the Cokace environment manages an abstract representation of expertise models and provides a formalism and an engine to develop pretty-printers, it is easy to design new presentation formats or to extend existing pretty-printers.

3.2 Advanced search

In addition to hypertext navigation, WebCokace provides advanced search functions in order to examine expertise models in more details. In order to perform search, CML entities are considered as objects with slots. For example inferences have input-roles and output-roles slots, concepts have name and super slots, etc. Search requests rely on underlying select/from/where patterns. But, as an ergonomic evaluation of the user interface showed that knowledge engineers had difficulties in understanding such statements in the context of CML, they have been embedded in specialized search panels as showed in Figure3.

FIGURE 3. Advanced search interface

We adopted the following syntax to state search requests:
search concept in <model> with
name = <name>
super = <supertype>
and show <property>

We have implemented a prototype of such a query language, without variables, and plan to extend it to match a subset of OQL. We have also implemented the engine which searches the expertise models in order to answer the queries. The results of a search are CommonKADS entities that match the query. The entities are pretty-printed in the HTML format, with possible HTML links towards related CommonKADS entities. Hypertext navigation can then follow a search by means of the query language.

3.3 Graphical Representation

The default presentation format is text, but WebCokace can also generates graphic representations for CML entities. It generates graphic representations for concept hierarchies and for task sub-task hierarchies. When the knowledge server user clicks on a hierarchy node, he activates an URL that leads to the corresponding CML entity definition. The user can thus have another, more concise, point of view on the expertise model by means of graphical representations dynamically generated during consultation time. Figure4 below shows an example of such a graphical concept hierarchy.

FIGURE 4. Graphic Display of a Concept Hierarchy

WebCokace also generate graphic representations of task dataflow as shown in Figure5. Nodes are active and when clicking on a subtask, its dataflow is generated. It is possible to browse graphically task dataflows following the task decomposition into subtasks.

FIGURE 5. Dataflow of the Modeling Task

3.4 Annotation with Documents

Documents can play an important role: technical documentation, reports, transcription of experts' interviews, etc. If such documents are put in an electronic format, a knowledge server can access them. CommonKADS expertise models are usually built on the basis of documents such as expert interviews, articles, technical reports, etc. During the construction of the knowledge server, the expertise model definition can be annotated by the knowledge engineer with references to such documents by means of URL.

During navigation through the knowledge server, when loaded into the user's browser, the hypertext link may be activated by the user in order to have an access to the referenced documents. A document may be a document in the HTML format, a Web server, a Wais server or anything accessible by an URL. Conversely, the knowledge engineer can annotate an HTML source document with references to CommonKADS entities by means of URL, in fact appropriate references to CGI scripts. When browsing the documents, these URL become active: the user can click on them and thus have a transparent access to related CommonKADS entities. The user has at his disposal active source documents with direct access to expertise models.

We are currently investigating the connection of WebCokace to index and search engine for full text information retrieval. We study how knowledge models and ontologies may help formulate search queries. The current implementation uses the WebGlimpse package from Univ. of Arizona (Manber et al, 1997). In a first stage, documents are indexed using glimpse indexing scheme. Then, WebCokace expertise model elements, such as concepts, tasks and roles, are used to help the user to generate search queries that are routed to the WebGlimpse package. WebGlimpse produces HTML documents as result of a query.


A Web server is interesting for distributing knowledge inside an enterprise having an Intranet: it enables information search by members of a team, of the same department or of several departments. In this context, we have developed a CommonKADS Expertise Model Web Server. It is built on top of the Cokace programming environment dedicated to CommonKADS CML. WebCokace provides the user with hypertextual navigation in expertise models and documents, a query language, a search engine and generation of graphic representations. It can be wondered whether a knowledge server user prefers the display of expertise models or of texts. This question is partly addressed thanks to the hypertext links offered by WebCokace between expertise models and documents. The user can thus access both to formal knowledge (i.e. expertise models) and to informal knowledge (i.e. documents), as emphasized in (Euzenat 1996) and he can navigate among both. Moreover, if the main interest of the knowledge server is navigation through documents, the expertise model base can be seen as an «intelligent indexing» of such documents.

WebCokace has been applied to design a concurrent engineering modeling library in the GENIE project (Matta et. al. 1998). This project aims at proposing a support for technical memory in the framework of a concurrent engineering task, in aeronautics. The application contains ten expertise models and 250 entities (concept, task, inference and PSM) which represents 2800 lines of verified CML code. WebCokace has also been applied to design an oncology expertise model server during a Galileo cooperation with DIST (University of Genoa) (Sacile et al. 1996). It represents 1000 lines of verified CML code. This application was used at INRIA and at DIST, but it remains to be tested by oncologists of a hospital or of a laboratory.

Let us notice that the architecture of WebCokace is generic. A similar work could be performed in the framework of another method than CommonKADS. If this method offers a modeling language, the specification of this language in Centaur generator could allow to generate an environment dedicated to this modeling language. It can also be applied to any programming language in such a way to provide a server for programs written in that language.


We thank Francis Montagnac for the invaluable help that he provided for the implementation of the Web Server from a system point of view. We also thank the Croap team members who helped us so much to understand Centaur. Thanks to the ACACIA team members: Christophe Cointe and Myriam Ribière who developed Java applets for Cokace, Nada Matta for beta testing Cokace, Christine Ros and Alain Giboin for evaluating WebCokace user interface.


Corby O., Dieng R. (1996) Cokace: a Centaur-based environment for CommonKADS Conceptual Modelling Language. In W. Wahlster ed, Proc. of the 12th European Conference on Artificial Intelligence (ECAI'96), pp. 418-422, John Wiley & Sons, Ltd. Budapest, Hungary, 1996.

Borras P., Clément D., Despeyroux T., Incerpi J., Kahn G., Lang B., and Pascual V.. (1988) Centaur: the system. In Proc. of the 3rd Symp. on Software Development Environment, ACM SIGSOFT'88, pp. 14-24, Boston, MA, November.

Breuker J., Van de Velde W., eds. (1994) CommonKADS Library for Expertise Modelling, Reusable Problem Solving Components. IOS Press, Amsterdam.

Euzenat J. (1996). Corporate memory through cooperative creation of knowledge bases and hyper-documents. In B. Gaines, M. Musen eds, Proc of KAW'96, Banff, Canada, November, pp. 36-1 36-18.

Manber U., Smith M. and Gopal B. (1997). WebGlimpse - Combining Browsing and Searching. Proceedings of Usenix Technical Conference, Anaheim, CA, Jan 6-10.

Matta N., Ros C., Corby O. (1998) A Generic Library to guide Decision Making in Concurrent Engineering. To appear in proceedings of TMCE'98 Tools and methods for Concurrent Engineering.

Sacile R., Ruggiero C., Dieng R. (1996) Using CommonKADS to create a conceptual model of a guideline for breast cancer prognosis. Medical Informatics 21(1):45-59.

Schreiber G. Wielinga B., de Hoog R., Akkermans H. and Van de Velde W. (1994). CommonKADS: a Comprehensive Methodology for KBS Development. IEEE Expert, 9(6):28-37, Dec.