Within knowledge engineering, intended as the "art & science" of KBS construction, a notion of "complexity" progressively emerged over the last few years. While initially concentrating on a single-system, usually built upon a single problem solver (the combination of a knowledge representation formalism with a suitable reasoning technique), and single knowledge engineer and domain expert (or few ones) approach, recently the KA discipline recognized the need of conveying, coordinating and exploiting multiple information sources and representation mechanisms. Firstly, the need of consulting multiple experts (and thus resolving or anyhow handling conflicts among the experts' views) for the knowledge elicitation, knowledge modeling, model operationalization and KBS validation phases has been taken into account [Easterbrook, 1991; Dieng et al., 1995]. Then, the added value originating from employing a plurality of problem solvers was acknowledged, leading to the creation and availability of libraries of reusable, off-the- shelf knowledge components.
Relevant research trends indicate that the next crucial step in this direction is represented by the assemblage of multiple, in general heterogeneous knowledge/data based systems into a community of at least semi-autonomous agents, thus forming what is called a Multi-Agent System (MAS) [Werner, 1992]. In our notion, the resulting MAS includes also the users referred to as human agents, in order to distinguish them from software/hardware ones. We could consider this change in perspective as the shift from hybrid (multi-problem-solvers) architectures to heterogeneous [Gaspari et al., 1995] multi-agent architectures. The main differences with respect to the first approach (and also to the intermediate paradigm called distributed problem solving or distributed knowledge, in which diverse networked "small-size" or "partial" problem solvers cooperate in solving a problem they can't tackle individually) lie in the encapsulation of software agents' capabilities, and in a minimal autonomy requirement, so that they can operate someway without user intervention and possess a module controlling their behavior [Woolridge and Jennings, 1995; Castelfranchi, 1995b].
In order to support these features, an Agent Communication Language (ACL) is needed that minimizes dependence on agents' implementation and can be uniformly interpreted by community members [Genesereth and Ketchpel, 1994; Labrou and Finin, 1994]. Correct interpretation of the exchanged messages must rely on a (partially) common view of the world, suitably specified in an explicit ontology [Genesereth, 1992; Gruber, 1993]. We claim that, to be effectively shared, ontologies should become a service offered by an encharged agent, thereby called ontology server, to a community of interoperating agents with which it results suitably integrated. More precisely, we restrict our analysis to the case of an organization of cognitive agents [Castelfranchi, 1995a; Conte and Castelfranchi, 1995], which we will illustrate with examples from a prototypical health care MAS, that is, a so-called Distributed Healthcare Information System (D-HIS) [Lanzola et al., 1995; Lanzola et al., 1996]. Such prototypical D-HIS is currently being developed through the agentification of a set of pre-existing standalone systems that address several aspects of knowledge representation and problem solving in medicine [Lanzola and Stefanelli, 1992; van Heijst et al., 1994].
This paper is organized as follows.Section 2 presents an overview of the course taken by knowledge engineering while passing from the single-agent to the multi-agent perspective.Section 3 focuses on the main collaboration modalities that can be found in agent-based organizations. Section 4 deals with the individual agent and MAS models we have adopted. In Section 5 the way is analyzed in which explicit ontologies can be collected into libraries and configured in order to be used as mediating mechanisms for collaboration. Section 6 addresses the encapsulation of ontological and also terminological services into dedicated agents, namely ontology and terminology servers.