For a long while, typical knowledge engineering methodologies tried to conciliate in a single, consistent framework the diverse views, abstraction and granularity levels, conceptualizations and terminologies that can be found even in "restricted" or specialized knowledge domains. This approach led to the construction of many "omniscient" (in their over-simplified world), knowledge- based systems able in some cases to interact with a perceivable environment, and almost always with human users heavily trained to understand the system's idiosyncratic communication and representation mechanisms. Of course, such a "monadic" or Single-Agent System (SAS) perspective makes little or no sense in the absence of both types of interaction ability (with the environment and with humans). But the loss in richness and complexity with respect to realistic situations of experts consultation, in addition to the high costs of producing formalized knowledge bases, soon determined the rising of modular, "pluralistic" techniques based on the elicitation of knowledge from multiple specialists, on its codification through multiple problem solvers and on the sharing/reuse of existing formalized knowledge chunks. To take a main example, the KADS methodology [Wielinga et al., 1992; de Greef and Breuker, 1992] addresses all the issues related to the specification and integration of the different kinds of knowledge needed by a KBS, with special attention paid to the roles of domain experts and to system interactions with end-users. But these essentially conflict-avoiding design and implementation strategies do not bear comparison with the normal problem solving practice found in work organizations, where a group or team of diversely specialized experts collaborate or negotiate collaboration. To take into account contributions from multiple human experts, that will likely disagree on the application conceptual model [Shaw and Gaines, 1988] and on the requirements to be imposed on the system under construction, strategies were proposed acknowledging suggestions and results coming from literature on organizational psychology and social sciences, namely conflict resolution strategies based on computer-supported negotiation among group members [Easterbrook, 1991]. More recently, the positive by-products resulting from the inherently conflictual involvement of several experts in KBS development were also recognized and such interrelationships rendered as interactions among cognitive agents, for which a model comprising both individual (e.g. the domain model) and social (e.g. the external world model) features is provided. Likewise, cooperation between the final KBS and end-users is seen as the result of their integration into a composite organization based on a MAS architecture (that is, made up of human and software/hardware agents) [Dieng et al., 1995].
Besides, traditional methodologies scarcely take into account the actual scatter of data, concerning the same entity, across multiple, big-sized, heterogeneous and geographically distributed repositories. For example the very same person may hold records as a worker in a corporate database, as a citizen in a national administrative database and as a patient in a clinical database. In order to face data scattering across legacy software systems, redundancy-avoiding architectural restructurings based on some kind of mediation mechanism are widely advocated [Wiederhold, 1992; Wiederhold et al., 1992]. To resolve interoperation problems arising from the semantic mismatches specifically due to the different domains covered by large-scale data repositories special-purpose conceptual schemes more and more often called ontologies [Wiederhold, 1994a; Wiederhold, 1994b] are being proposed as a basic instrument. Explicit ontologies as a mechanism enabling the sharing and reusing of existing data and knowledge bases among diversely specialized computer-based systems have been standing in the breach for quite a while [Gruber, 1993; Gruber and Olsen, 1994], but the most recent research developments and trends involving ontological engineering appear focused on issues regarding the design of multi-component systems based on (semi-)autonomous knowledgeable units competent for different tasks and, in the general case, skilled in different domains, like e.g. in [Takeda et al., 1994; Lanzola et al., 1996].
Thus, we can say that the knowledge engineering field seems to be clearly evolving towards a new paradigm in which cognitive agents of heterogeneous nature, that possess diverse (but of course, at least partially compatible or inter-translatable) conceptual views, or ontologies, modelling both their own expertise and the external environment, make somehow available their information resources or problem solving abilities for cooperative processes addressing the construction of a new agent or the achievement of some common goal through correlated execution of tasks. The reliance on network facilities for providing such agents with the necessary communication abilities is also becoming an almost unavoidable choice especially in the case of knowledge-based MASs used in real-world organizations. Furthermore, the need of guaranteeing sharability of data and data-based services is widely recognized. Recent projects and applications in the distributed healthcare area, meeting at least some of the mentioned design principles and requirements, can be found described in [Reddy et al., 1993; Engelmann et al., 1994; Szolovits et al., 1994; Huang et al., 1995; Lanzola et al., 1996].