What is an Ontology?

Thomas Gruber's Definition:

What is an ontology?
.  An ontology is an explicit specification of a
conceptualization.
.  A conceptualization is an abstract,
simplified view of the world that we want to
represent.
.  If the specification medium is a formal
language, the ontology defines a representational foundation.


James Geller's Definition of Ontology.  (It's much longer).

Definition: Ontology:

1. When we say "Ontology" we mean "Computational 
Ontology." We don't mean philosophical ontology.  

2. An Ontology is a graph (the data structure).  
Every node of this graph stands for a "concept."  
A concept is a unit that one can think about.

3. Concepts correspond to words or short phrases.  
Typically, concepts correspond to nouns or noun phrases,
but they don't have to.  

Examples:  house, man, car, New York, World Trade Center

4. The nodes of the ontology are connected by 
different kinds of links.  The most important kind of 
link is called IS-A link.

5. The nodes and IS-A links together form a 
Rooted Directed Acyclic Graph (Rooted DAG).
Rooted means that there is one single "highest node"
called the Root.  All other nodes are connected by 
one IS-A link or a chain of several IS-A links to the Root.

6. You know what "directed" means.  In our definition,
IS-A links point upwards.  If an IS-A link points from
a concept X to a concept Y that means that every
real world thing that can be called an X also can
be called a Y.  In other words, every X IS-A Y.
(Some people have IS-A-like links but pointing
downwards.)

Examples:  A car IS-A vehicle.  A dog IS-A animal.

You will notice this is very similar to an Object-Oriented
Database.  There we had classes and subclass links.  Even the
diagrams are similar.

7. Acyclic means that if you start at one node and
move away from it following an IS-A link, you can never
return to this node, even if you follow many IS-A links.

8. Most nodes also have other information attached.
This information includes attributes, relationships 
and rules (or axioms).

9. An attribute is like a simple string or number
variable that contains additional information about
that concept.  This is very similar to a data member
in an Object-Oriented Database or programming language.

Examples: An animal can have the attribute "legs" which
can have values such as 0, 2, 4, 6, 8.
A car can have the attribute color, which can be red,
green, etc.

10. A relationship is a link (arrow) that points from one
concept to another concept.  It expresses how the two
concepts relate to each other.  Relationships MAY form
cycles.  The name of a relationship is normally written next 
to the relationship link.  This is very similar to 
a data member that is a pointer in an Object-Oriented Database or
programming language.

Example: The concept Car may have a relationship to 
the concept Person.  The name of that relationship could 
be "Owned."  

11. Commonly, IS-A links are also called "IS-A relationships."

12. Other links (relationships) are commonly called 
"Semantic Relationships."  This is to avoid confusion
with IS-A relationships.

13. A relationship that connects two concepts is called
a binary relationship.  Mathematicians allow higher order
relationships (ternary, etc.).  Most ontologies don't allow
higher order relationships.  Most approaches have relationships
that go in one direction (arrow), but there are double-headed
arrows in some models.

14. The IS-A relationship can be used to inherit 
attributes and semantic relationships down (against
the direction of the arrows) from higher nodes
to lower nodes in the DAG.  This is very similar to
inheritance in OODBs and PLs such as C++.

Example: If Vehicle has the attribute Price then
Car would inherit Price.  You don't have to specify
that Car has Price.

15. There is some disagreement whether only the
attributes are inherited or also the values of attributes.
But, IF values are inherited, they may be "overridden"
by attributes at lower nodes.

Example: I could assign the value "4" to the attribute 
Legs at the concept Animal in an ontology.
However, the child Bird of Animal could
specify the value "2" for "Legs" and this would be the
value that is used. 

16. Most researchers say that we inherit semantic relationships 
down.  Some ontologies have "blocking mechanisms" to stop
inheritance.

17. Higher nodes in the DAG represent general concepts.
Lower nodes in the DAG represent specific concepts.

Examples: Vehicle is more general than Car.  Car is
more general than Toyota.

Animal is more general than Dog.  Dog is more general
than Collie.

18. Axioms express universal truths about concepts and
are attached to concepts.  (We do not use rules or axioms. 
But many people do.)

Example: If X is the husband_of Y, then Y is the wife_of X.

19. It is widely assumed that ontologies represent
information in a form that is at least partially similar
to how human knowledge is represented.

20. Ontologies represent information in a form that 
can be used for some forms of reasoning that are
at least partially similar to human reasoning.
This includes inheritance reasoning, transitivity
reasoning and classification.  Inheritance was already 
mentioned before.  OODBs do not have transitivity 
reasoning and do not have classification.

21. Classification means that if we know the attributes
of a concept we can decide under which other concepts
it belongs in the ontology.

Example (simplified): If we know an animal has 4 legs,
black stripes, eats meat, runs very fast, and lives in
Africa, it must be a tiger.

22. A concept may inherit information from several other
concepts.  This is called multiple inheritance.
Multiple inheritance is important but may cause problems,
such as apparent contradictions.

Example: (Famous): President Nixon was a Quaker and
a Republican.  Quakers are considered "peaceful."
Republicans are considered "in favor of war."
If Nixon inherits from both Quaker and Republican,
then, Is he peaceful or in favor of war?  (This is
called the Nixon Diamond.  If you draw it, you see why.)

23. Transitivity reasoning corresponds to chaining
of IS-A links.  

Example: If we know that a Collie IS-A Dog and we also
know that a Dog IS-A Animal, then we can conclude
that a Collie IS-A Animal.

24. The Rooted DAG is called by some people "taxonomy."
It is called by some people hierarchy.  Some people
call it tangled hierarchy.  Some people call it
heterarchy.

25. Some people allow an "unrooted" DAG.  That means
there may be several roots.  Most people introduce
an artificial root, to make sure that there is a root.
Artificial Intelligence people often call this root 
"Thing."  Database people prefer "Entity."

26. Some people allow just a tree instead of a DAG.  
But trees are very limited in what they can represent.
Trees allow no multiple inheritance.  Many people say
that "hierarchy" may be used only for trees.

27.  People say that ontologies store "symbolic"
knowledge.  They don't mean symbols such as &$%#@.
They means "words."  That means, they mean symbolic as 
opposed to "numeric."  There are knowledge representations 
that rely on "magic numbers" such as neural networks.
Those are not ontologies.

28. Some people use other terms than IS-A.  AKO (A kind
of) and SUBCLASS are common.  Some people call 
concepts "categories" or "classes" and mean more or less
the same with those terms as "concepts."  

29. Some people allow Instance-Of links in ontologies.
Thus a specific building (Kupfrian) would then be connected
to "Building" by an Instance-Of link.  Other people don't
allow such links.  Many people allow them only at the leaf
level.

Example: In the example above, Nixon is certainly an 
Instance-Of Republican, not IS-A.

30. So what are the main differences between ontologies and
OODBs?  Ontologies allow some reasoning, OODBs allow only
inheritance.  Attached axioms are used for reasoning.  Also,
as above, reasoning by classfication and transitivity.  

31. Secondly, most ontologies do not support instances.  They only model 
classes.  Occasionally there are instances at the leaf level.  In OODBs
most classes have instances.  Although there can be virtual 
(abstract) classes at higher levels in C++.

32. OODBs tend to be better implemented than ontologies.