|
|
3. WHAT IS AN ONTOLOGY?
The word ontology has been taken from Philosophy, where it is a systematic explanation of Existence. Note that in the real world, anything known has a name, for example, a book, a car, a city, etc. In Artificial Intelligence, an intelligent system only knows what can be represented formally in a target language. So, it makes sense to use this word in our domain to mean: what the system knows. As a person does not only know what (s)he already has in her mind, but (s)he can consult other sources (experts, books, etc.) in order to solve a problem, the same can be said for an intelligent system. Ontologies play the role of unifying the vocabulary of different systems, enabling communication between them.
First, Neches and colleagues (Neches et al., 1991) defined an ontology as follows: "An ontology defines the basic terms and relations comprising the vocabulary of a topic area as well as the rules for combining terms and relations to define extensions to the vocabulary." We can say that this definition tells us how to proceed to build an ontology, giving us vague guidelines: identify basic terms, identify relations between terms, identify rules to combine them, provide definitions of such terms and relations. Note that according to this definition, an ontology includes not only the terms that are explicitly defined in it, but terms that can be inferred using rules. Later, in 1993, Gruber's definition (Gruber, 1993a) became famous, and is the most referenced in the literature: "An ontology is an explicit specification of a conceptualization." Since then, many declarative and procedural definitions of what an ontology is have been proposed in the literature. Guarino and Giaretta (Guarino and Giaretta, 1995) collect seven definitions and provide syntactic and semantic interpretations of them.
The question is not whether or not definitions are correct or wrong, but that definitions provide different and complementary points of view of the same reality. It is similar to the definition of continuity in Mathematics. There are many definitions; some are general, others specific, depending on different approaches, but all of them fit perfectly and none contradict the others.
4. ONTOLOGIES AND KNOWLEDGE BASES
Sometimes people from the Knowledge Engineering community use the word ontology to refer to the KB or a part of the KB of their systems. But an ontology is not a KB. Of course, they do have in common that they both contain knowledge, but there are several differences between them. The most representative are:
PART-OF (cylinder, engine) PART-OF (battery, engine) |
(a) Definitions in a knowledge base |
|
Physical Devices |
|
Mechanical Devices |
Concept: Component
Relation: Part of Number of arguments: 2 Type of Argument #1: Component Type of Argument #2: Component |
|
Concept: Cylinder Subclass of: Component Part of: Engine Concept: Engine Concept: Battery Subclass of: Component Subclass of: Component Part of: Engine |
(b) Definitions in ontologies |
|
FIGURE 1 Nature of definitions in KBs and ontologies.
- Features of the language used to codify the knowledge. Ontologies should be written in an expressive, declarative, portable, domain-independent, and semantically well-defined, machine-readable language, which should be independent of any particular choice of target machine-readable language of the application that reuses and shares its definitions. Actually, many languages are used to implement ontologies: LOOM (MacGregor, 1991), CycL (Lenat and Guha, 1990), and Ontolingua (Gruber, 1993a). You cannot guarantee these properties when you codify a KB.
- Goal of the knowledge codification. Ontologies are designed for knowledge sharing and reuse purposes and KBs are not. As a result, their definitions should be conceptualized with enough abstraction and generality. These two features guarantee that ontology definitions are independent of their final uses. The example given in Figure 1 shows knowledge in a KB that cannot be reused/shared and what type of knowledge should be in the ontology in order to be reused/shared. Note that the terms: "cylinder", "battery" and "engine" will be part of an ontology in a domain of "mechanical devices", while the concept "component" and the relation "part-of" will be in a meta-ontology to build any kind of physical devices.
- Requirements specification. One of the main problems that KEs have when building KBSs is the difficulty of getting a set of requirements for the system. Requirements specify what is expected from the system. Since experts are not usually able to describe how they behave in the application domain in a concrete and complete manner, it is hard for KEs to specify the future behavior of KBSs. So, KBSs are usually built incrementally using evolving prototypes in which the deficiencies of the final product of each cycle can be used to get the specification of the next prototype. This is not the case with ontologies. Ontologies are built to be reused or shared anytime, anywhere, and independently of the behavior and domain of the application that uses them. So, ontologists are able to specify, at least partially, what is expected from the ontology, that is, most of the vocabulary to be covered by the ontology for a given domain. This is the main difference between ontologies development process and KBSs development processes.
However, ontologies and KBs have a common foundational problem. They are incomplete, as it is impossible to capture everything known about the real world in a finite structure. As with KBs, one of the most important problems is to guarantee complete, consistent, and concise knowledge from the beginning, during each stage, and between stages of its development process.
|