Ontologies and theories

Message-id: <9208220159.AA16056@SMI.Stanford.EDU>
Date: Fri, 21 Aug 92 21:57:24 EDT
From: sowa@watson.ibm.com
Subject: Ontologies and theories

There were some issues that came up in your last two notes to the SRKB
and Interlingua lists.  One statement I very much agree with is,

> So I think we have a case of agreement on semantics, and a difference
> on terminology.  Sound familiar?

And the term that seems to be causing the greatest difficulty for me,
and I believe also for Charles Petrie and others is "ontology".  At the
end of your note to Interlingua, you said something that pinpoints the

> The vision "family of theories" is exactly what the SRKB group
> is now looking into: collecting, comparing, and analyzing families of
> ontologies in those areas where we think it is useful and feasible to
> share formally-represented knowledge.

That term "family of theories" is what I was using, in a way that I
believe is similar to Charles P's usage.  But in the next line, you
immediately switched to "families of ontologies."   That switch is
very confusing, especially if you mean that your "ontologies" are
"exactly" what Charles and I were calling "theories".  But in your
later note to SRKB, you said,

> Formally, an ontology is:
>   a set of terms (relation, function, and object constants)
>   a set of documentation strings for these terms
>   a set of of defining axioms for these terms

First of all, I would delete the "documentation strings" from the
"formal" definition, since they are comments that are not intelligible to
the formal system (no matter how important they may be for the humans).

I'm willing to accept the set of terms as essential, but I am bothered
by the phrase "defining axioms".  I would much rather see that broken
down into two components:  purely conservative definitions that say
"Whenever you see X, you can substitute the expression Y"; and a
separate collection of axioms or assumptions about the way X's or Y's
behave.  When you say "defining" axiom, it suggests that you are mixing
the two.  It also raises the question of whether there are any other
kinds of axioms besides defining ones.

I believe that there are.  For example, F=ma relates force F, to mass m,
and acceleration a.  Since it relates all three of them, it must be in
a theory of mechanics, but it is inappropriate to include it in the
"definition" of any one of the three -- F, m, or a.  Furthermore, the
equation, F=ma, should definitely be included in a knowledge base
about mechanics, but I would be reluctant to say that it is part of
the "ontology".  That is one reason why I prefer the term "theory".

Furthermore, the term "ontology", strictly speaking, implies a theory
of existence.  Just saying that it is equivalent to terms plus their
definitions doesn't distinguish it from a dictionary.  In order to make
an ontology something more than a dictionary, there must be a set of
metaphysical assumptions about the nature of existence.  But that is
inconsistent with the use in the following few paragraphs:

> I thought the Interlingua committee should be aware that there is an
> ontology which defines the terminology for extending KIF to accommodate
> these kinds of requests.  It is called the frame ontology....

This use of the word "ontology" is inappropriate.  A much better
term would just be "set of definitions."  Why is it necessary to
decorate the discussion with a fancy word like "ontology"?

> I claim that a lot of ontological commitments made in the _syntax_ of
> existing representation and programming languages can be specified as
> a set of definitions of relations, functions, and object constants in
> KIF.  In the frame ontology, I define a set of concepts sufficient to
> translate between KIF and languages such as LOOM, CLASSIC, and KRSS.

This is totally misleading.  Syntax should not make any ontological
commitments whatever.  To avoid getting bogged down in issues about
KIF, KRSS, Ontolingua, etc., let me just state the issues in terms of
plain vanilla predicate calculus and a sorted predicate calculus.
Consider the sentence "Every cat is on a mat" in PVPC:

   (Ax)(Ey)(cat(x) -> (mat(y) & on(x,y)).

This formula becomes much simpler with sorted or typed variables in SPC:

   (Ax:cat)(Ey:mat) on(x,y).

Yet both PVPC and SPC have identical ontological commitments.  Those
commitments do not come from the syntax of the language, but from the
predicates cat(x) and mat(y) in PVPC and from the typed variables
x:cat and y:mat in SPC.  This gets to my major points:

 1. The syntax of the language should not force any ontological

 2. However, if you do make some ontological commitments, a sorted or
    typed language exhibits them very clearly by marking each variable
    with a type label.  In PVPC, some predicates specify the ontological
    commitments and others specify accidental properties, and the
    syntax doesn't distinguish which is which.

Summary:  Syntax shouldn't make any ontological commitments, but it
should highlight the commitments that the knowledge engineer has made.

> I am not arguing that KIF should never include types as a built in
> ontology.  I am claiming that they could be introduced as extensions
> associated with ontologies, rather than as part of the core semantics.

That first sentence bothers me.  The type mechanism is used to express
an ontology -- it is not in itself the ontology.

The common mathematical logic doesn't use types, because mathematicians
often talk about just one type of individuals, such as natural numbers.
But as soon as you apply your logic to systems in the real world, you run
into hundreds or thousands of distinct types.   And then it is a real
help to have the syntax keep your types straight.  Just look at the two
formulas for cats on mats.  The untyped version is far more complex, and
as you get richer domains the difference in complexity keeps increasing.

> So, consider whether it would be adequate and appropriate to treat
> some proposed extensions to the language as proposed ontologies,
> albeit very general ones, that simply introduce new terms and define
> them axiomatically.  I include the frame ontology as an example.

Please do not use the word "ontology" in that way.  If you replace it
with the phrase "set of definitions", I might disagree with you, but
at least the sentence wouldn't offend my linguistic sensibilities.