More About Ontologies
In the world of philosophy, ontology is the branch of metaphysics (meta alert!) that focuses on the study of being or existence. If you’ve ever asked the question "What is reality?" you’re dabbling in the realm of ontology. While this can be heady stuff, proponents of the semantic web take an end run around the really tricky questions and simply begin from the premise that the reality of interest for the semantic web is "stuff on the Web" that can be referenced by using URIs. This takes us from the abstractions of philosophy to the down-to-earth world of the computationally tractable.
Thus, while RDF defines the XML vocabulary for making statements about web things, RDF Schema provides a way to place those things into categories with properties. Ontologies take us to the next step up the semantic stack by defining data models for domains with capabilities to use these models to reason about the objects in that domain and the relationships between them.
Tom Gruber, one of the gurus of the philosophical web, has come up with an oft-quoted definition of ontology as specification of a conceptualization. What this means is that an ontology describes the reality of some domain through concepts and relationships that can be processed by an agent or a community of agents. (The term agent here refers to computer programs, of course, not to secret agents like James Bond, or Patrick McGoohan as Number Six in The Prisoner).
In practice, ontologies describe the following:
- Individual. The basic, or "ground level" object.
- Class. A set, collection, or type of object.
- Attributes. Properties, features, characteristics, or parameters that objects can have and share.
- Relation. The way in which objects are related to one another.
While all this philosophical talk about ontologies and reality is nice, we need a down-to-earth ontology language that lets us define and reason about the reality of our domains. Let’s look at two of the ontology languages that are putting these semantic web ideas into practice.