Reading:
Guarino, N., 1995, Formal ontology, conceptual analysis and knowledge representation, International Journal of Human-computer Studies, 42: 625-640. Communications of the ACM, Special Issue on Ontologies, February, 2002, 45(2), (available on-line from within UWE here). |
Rob Stephens
Room 2P27
Tel: 3136
Ontologies were first developed in the early 1990s to facilitate knowledge sharing and reuse. They have become a popular research topic in several AI communities - including knowledge engineering, natural language processing, and knowledge representation. More recently, the notion of an ontology is becoming widespread in fields such as intelligent information integration, cooperative information systems, information retrieval, electronic commerce, and knowledge management. Moroever, ontologies are becoming popular largely because of what they promise: a shared and common understanding that reaches across both people and application systems. Currently, ontologies are being applied to the World Wide Web in the shape of XML schema to create the Semantic Web.
"Ontologies are agreements about shared conceptualizations. Shared conceptualizations include conceptual frameworks for modeling domain knowledge; content-specific protocols for communication among inter-operating agents; and agreements about the representation of particular domain theories. In the knowledge-sharing context, ontologies are specified in the form of definitions of representational vocabulary. A very simple case would be a type hierarchy, specifying classes and their subsumption relationships. Relational database schemata also serve as ontologies by specifying the relations that can exist in some shared database and the integrity constraints that must hold for them." (Shared Re-usable Knowledge Bases, SRKB)
A knowledge base can acquire value to the extent that it is transparent, in the sense that its commitments to the world beyond the knowledge base itself are made explicit, and the knowledge content can actually be mapped onto the structure of such and external world. This is the reason why the study of ontology, originally intended as a branch of philosophy which deals with the a priori nature of reality, can be of benefit.
Standardizing representations among tools. Eg:
It needs to be noted that there is no agreed meaning of the term ontology due to the fact that the central ideas and issues have been addressed in a number of contexts and fields, often using different terminology. Eg, there is a strong similarity between a conceptual schema for a data base, and an ontology. Other areas concerned with these issues include knowledge representation and acquisition, natural language understanding, domain modeling in software engineering, and enterprise integration.
Figure 1 shows 3 kinds of ontologies in Natural Language Processing. Type 1 states that there is no theoretical difference between conceptual knowledge (ie non- linguistic information) and linguistic information; linguistic information simply constitutes some subset of the conceptual information. The ontology in this case is then the more general organization of this combined level of information. Types 2 and 3 in contrast draw a distinction between linguistic and non- linguistic information, either assuming the non- linguistic information to be "conceptual", and thus related to psychology, or "contextual", and thus related to sociology. Ontologies, as the most general categories of informational organization, can either be pitched at the former, linguistic level (type 2) or the non-linguistic level (type 3). A given system may include ontologies of both kinds.
This is typical of the ontology construction found in NLP systems and conforms to Figure 2: essentially, there is physical reality, a "conception" or mental model, of that reality constructed (somehow) from our experiences and interactions with others, and a linguistic encoding of some subset of that conception by which we can externalize it.
Rather than seeing language as a coding system for necessarily deeper, and often problematic "conceptualizations" as in Figure 2, another way of considering the nature of language is described in Figure 3, where both layers, the linguistic and the conceptual, are now coextensive. Instead of placing language as the output device for some subset of concepts, we can consider both as alternative modes of description built up together and in unison. Figure 4 shows a "stratified ontology" consistent with this, by which distinct modes of description are accepted as co-defining the nature of the real.
People, organizations and software systems must communicate between and among themselves. Due to different needs and background contexts, there can be widely varying viewpoints and assumptions regarding what is essentially the same subject matter. Lack of shared understanding leads to:
In the context of building and IT system, this lack of a shared understanding leads to:
Disparate modeling methods, paradigms, languages and software tools severely limit:
In turn this leads to
Ontologies propose to reduce or eliminate conceptual and terminological confusion and arrive at a shared understanding, functioning as a unifying framework for the different viewpoints and serve as the basis for:
Re-usability: the shared understanding is the basis for a formal encoding of the important entities, attributes, processes and their inter-relationships in the domain of interest. This formal representation may be a re-usable and/or shared component of a software system.
Reliability: A formal representation also makes possible the automation of consistency checking resulting in more reliable software.
Specification: the shared understanding can assist the process of identifying requirements and defining a specification for and IT system. This is especially true when the requirements involve different groups using different terminology in the same domain, or multiple domains.
Ontologies are intended to facilitate re-use and to integrate models of different domains into a coherent framework (eg in business process re-engineering, in distributed multi-agent architectures, and in concurrent engineering and design).
Normative models By using an ontology a normative model of the system can be constructed. This creates a semantics for the system and an extendible model that can later be refined, and which allows semantic transformations between different contexts.
Networks of relationships Ontologies serve to make all of the assumptions and different perspectives people have explicit by identifying the logical connections between elements across models of the system.
Consistency and lack of ambiguity The ontology plays and important role in communication by providing unambiguous definitions for terms used in a software system.
Integrating different user perspective In a system with multiple communicating agents, integration through shared understanding is vital. People in different positions will have different perspective on what an organization does, the goals it achieves, etc., and local and global views may be inconsistent. By using and ontology to provide a normative model of the system, integration can be achieved by assisting participants in communicating and arriving at agreement. Adopting a shared ontology can also help the development of standards.
Ontologies as inter-lingua Ontologies can be used to support translation between different languages and representations. Business process re-engineering or multiagent systems need integrated enterprise models spanning activities, resources, organization, goals, products and services, that can serve as a common repository accessible by multiple tool sets.
Specification A shared understanding of the problem and the task at hand can assist in the specification of software systems. (Eg CommonKads). Ontologies will also assist in the process of identifying the requirements of the system and understanding the relationships among the components of the system.
Reliability Informal ontologies can improve the reliability of software systems by serving as a basis for manual checking of the design against the specification. Formal ontologies can be used to make explicit the various assumptions made by different components of a software system, facilitating their integration.
Reusablity To be effective, ontologies must also support reusability, so that modules can be imported and exported among different software systems. The problem is that when software tools are applied to new domains, they may not perform as expected, since they relied on assumptions that were satisfied in the original applications but not in the new ones. By characterizing classes of domains and tasks within these domains, ontologies provide a framework for determining which aspects of an ontology are reusable between different domains and tasks.