Brought to you by EarthWeb
IT Library Logo

Click Here!
Click Here!

Search the site:
 
EXPERT SEARCH -----
Programming Languages
Databases
Security
Web Services
Network Services
Middleware
Components
Operating Systems
User Interfaces
Groupware & Collaboration
Content Management
Productivity Applications
Hardware
Fun & Games

EarthWeb Direct EarthWeb Direct Fatbrain Auctions Support Source Answers

EarthWeb sites
Crossnodes
Datamation
Developer.com
DICE
EarthWeb.com
EarthWeb Direct
ERP Hub
Gamelan
GoCertify.com
HTMLGoodies
Intranet Journal
IT Knowledge
IT Library
JavaGoodies
JARS
JavaScripts.com
open source IT
RoadCoders
Y2K Info

Previous Table of Contents Next


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:

Knowledge Base
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.

  1. 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.
  2. 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.
  3. 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.


Previous Table of Contents Next

footer nav
Use of this site is subject certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details.