Ontologies, defined

Modern computer science based ontologies will be most important when semantic web starts to appear. Ontologies were largely influenced by Object Oriented Programming.

From Wikipedia’s entry on computer science ontologies.

In computer science, an ontology is a data model that represents a domain and is used to reason about the objects in that domain and the relations between them.

Ontologies are used in artificial intelligence, the semantic web, software engineering and information architecture as a form of knowledge representation about the world or some part of it. Ontologies generally describe:

  • Individuals: the basic or “ground level” objects
  • Classes: sets, collections, or types of objects[1]
  • Attributes: properties, features, characteristics, or parameters that objects can have and share
  • Relations: ways that objects can be related to one another

Difference from philosophical ontology

The term ontology has its origin in philosophy, where it is the name of a fundamental branch of metaphysics concerned with existence. While it makes little sense to speak of an ontology in the context of philosophy, it makes sense in the context of computer science.

Elements of an ontology

Contemporary ontologies share many structural similarities, regardless of the language in which they are expressed. As mentioned above, most ontologies describe individuals (instances), classes (concepts), attributes, and relations. In this section each of these components is discussed in turn.

Individuals (Instances)

Individuals (instances) are the basic, “ground level” components of an ontology. The individuals in an ontology may include concrete objects such as people, animals, tables, automobiles, molecules, and planets, as well as abstract individuals such as numbers and words. Strictly speaking, an ontology need not include any individuals, but one of the general purposes of an ontology is to provide a means of classifying individuals, even if those individuals are not explicitly part of the ontology.

Classes (concepts)

Classes (Concepts) are abstract groups, sets, or collections of objects. They may contain individuals, other classes, or a combination of both. Some examples of classes:[2]

  • Person, the class of all people
  • Molecule, the class of all molecules
  • Number, the class of all numbers
  • Vehicle, the class of all vehicles
  • Car, the class of all cars
  • Individual, representing the class of all individuals
  • Class, representing the class of all classes
  • Thing, representing the class of all things

Ontologies vary on whether classes can contain other classes, whether a class can belong to itself, whether there is a universal class (that is, a class containing everything), etc. Sometimes restrictions along these lines are made in order to avoid certain well-known paradoxes.

The classes of an ontology may be extensional or intensional in nature. A class is extensional if and only if it is characterized solely by its membership. More precisely, a class C is extensional if and only if for any class C’, if C’ has exactly the same members as C, then C and C’ are identical. If a class does not satisfy this condition, then it is intensional. While extensional classes are more well-behaved and well-understood mathematically, as well as less problematic philosophically, they do not permit the fine grained distinctions that ontologies often need to make. For example, an ontology may want to distinguish between the class of all creatures with a kidney and the class of all creatures with a heart, even if these classes happen to have exactly the same members.

Importantly, a class can subsume or be subsumed by other classes. For example, Vehicle subsumes Car, since (necessarily) anything that is a member of the latter class is a member of the former. The subsumption relation is used to create a hierarchy of classes, typically with a maximally general class like Thing at the top, and very specific classes like 2002 Ford Explorer at the bottom.

A partition is a set of related classes and associated rules that allow objects to be placed into the appropriate class. For example, this partial diagram of an ontology has a partition of the Car class into the classes 2-Wheel Drive and 4-Wheel Drive:


The partition rule determines if a particular car is placed in the 2-Wheel Drive or the 4-Wheel Drive class.

If the partition rule(s) guarantee that a single Car object cannot be in both classes, then the partition is called a Disjoint Partition. If the partition rules ensure that every concrete object in the super-class is an instance of at least one of the partition classes, then the partition is called an Exhaustive Partition.


Objects in the ontology can be described by assigning attributes to them. Each attribute has at least a name and a value, and is used to store information that is specific to object it is attached to. For example the Ford Explorer object has attributes such as:

  • Name: Ford Explorer
  • Number-of-doors: 4
  • Engine: {4.0L, 4.6L}
  • Transmission: 6-speed

The value of an attribute can be a complex data type; in this example, the value of the attribute called Engine is a list of values, not just a single value.

If you did not define attributes for the concepts you would have either a taxonomy (if concept relationships are described) or a Controlled Vocabulary. These are useful, but are not considered true ontologies.


An important use of attributes is to describe the relationships (also known as relations) between objects in the ontology. Typically a relation is an attribute whose value is another object in the ontology. For example in the ontology that contains the Ford Explorer and the Ford Bronco, the Ford Bronco object might have the following attribute:

  • Successor: Ford Explorer

This tells us that the Explorer is the model that replaced the Bronco. Much of the power of ontologies comes from the ability to describe these relations. Together, the set of relations describes the semantics of the domain.

The most important type of relation is the subsumption relation (written as is-a, is-subtype-of or is-subclass-of). This defines which objects are members of classes of objects. For example we have already seen that the Ford Explorer is-a 4-wheel drive, which in turn is-a Car:


The addition of the is-a relationships has created a hierarchical taxonomy; a tree-like structure that clearly depicts how objects relate to one another. In such a structure, each object is the ‘child’ of a ‘parent class’ (Some languages restrict the is-a relationship to one parent for all nodes, but many do not).

Another common type of relations is the Meronymy relation (written as part-of) that represents how objects combine together to form composite objects. For example, if we extended our example ontology to include objects like Steering Wheel, we would say that “Steering Wheel is-part-of Ford Explorer” since a steering wheel is one of the components of a Ford Explorer.

If we introduce part-of relationships to our ontology, we find that this simple and elegant tree structure quickly becomes complex and significantly more difficult to interpret manually. It is not difficult to understand why; an entity that is described as ‘part of’ another entity might also be ‘part of’ a third entity. Consequently, entities may have more than one parent. The structure that emerges is known as a Directed Acyclic Graph (DAG).

As well as the standard is-a and part-of relations, ontologies often include additional types of relation that further refine the semantics they model. These relations are often domain-specific and are used to answer particular types of question.

For example in the domain of automobiles, we might define a made-in relationship which tells us where each car is built. So the Ford Explorer is made-in Louisville. The ontology may also know that Louisville is-in Kentucky and Kentucky is-a state of the USA. Software using this ontology could now answer a question like “which cars are made in America?”

Domain ontologies and upper ontologies

A domain ontology (or domain-specific ontology) models a specific domain, or part of the world. It represents the particular meanings of terms as they apply to that domain. For example the word card has many different meanings. An ontology about the domain of poker would model the “playing card” meaning of the word, while an ontology about the domain of computer hardware would model the “punch card” and “video card” meanings.

An upper ontology (or foundation ontology) is a model of the common objects that are generally applicable across a wide range of domain ontologies. It contains a core glossary in whose terms objects in a set of domains can be described. There are several standardized upper ontologies available for use, including Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO, WordNet, and DOLCE.

Since domain ontologies represent concepts in very specific and often eclectic ways, they are often incompatible. As systems that rely on domain ontologies expand, they often need to merge domain ontologies into a more general representation. This presents a challenge to the ontology engineer. Different ontologies in the same domain can also arise due to different perceptions of the domain based on cultural background, education, ideology, or because a different representation language was chosen.

At present, merging ontologies is a largely manual process and therefore time-consuming and expensive. Using a foundation ontology to provide a common definition of core terms can make this process manageable. There are studies on generalized techniques for merging ontologies, but this area of research is still largely theoretical.

Ontology languages

An ontology language is a formal language used to encode the ontology. There are a number of such languages for ontologies, both proprietary and standards-based:

See also: list of ontology languages

Examples of ontologies

0 Responses to “Ontologies, defined”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


RSS rss viral marketing

  • An error has occurred; the feed is probably down. Try again later.

RSS rss semantic web

  • An error has occurred; the feed is probably down. Try again later.

%d bloggers like this: