Re: Ontologies and theories

Tom Gruber <>
Message-id: <2923687208-3110331@KSL-Mac-69>
Date: Mon, 24 Aug 92  16:20:08 PDT
From: Tom Gruber <>
Subject: Re: Ontologies and theories
In-reply-to: Msg of Fri, 21 Aug 92 21:57:24 EDT from
John Sowa is arguing that I (and presumably the SRKB group) should
stop using the word "ontology" and start using the word "theory", so
as to not "offend [his] linguistic sensibilities".  I feel compelled
to justify my word choice, which has been used consistently in papers
and public presentations describing the DARPA knowledge sharing effort
for the past two years.  Please excuse the length of this message, and
the obsession with terminology over content, but I want to head off a
potential diversion into meta issues and get us back on track.
I promise no more flaming from me on this thread.

In Philosophy, ontology does speak of what exists.  We are doing AI
and computer science, but we are not inconsistent with philosophical
usage.  For AI programs, what exists is the same as what can be
represented.  In other words, what exists is what is in the universe
of discourse of the knowledge base attributed to an agent.  In a
declarative language, what can be represented is determined by the
semantics and built-in primitives of the core language (e.g., KIF's
"and", "+", "setof"), PLUS the vocabulary of defined relations,
functions, and objects (in an ontology).  The KIF document (p.13)
makes explicit that certain things are in the universe of discourse:
symbols, numbers, lists, sets, relations, functions, and the undefined
thing.  People may define other things in the universe of discourse of
their programs, and each program's universe of discourse may be
different from every other (this is called "conceptual promiscuity" in
the KIF spec).  The whole point of focusing on ontology is not to
usurp a "fancy word", but to operationalize a vague notion into
something objective -- ontology as a set of definitions.  An ontology
defines a shared universe of discourse among a set of agents.  We can
get our computer scientist hands on the set of definitions.

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

We are talking ontology, yes in the full sense of what exists, but for
PROGRAMS, not humankind.  Maybe that's the source of confusion and
discomfort.  This group is NOT, MOST DEFINITELY NOT, in the business
of seeking consensus on metaphysics -- on the nature of existence out
there in the world of human experience and imagination.  That would be
a waste of our time (or at least a different sandbox).  What SRKB is
chartered to do is to study mechanisms by which we can build programs
that share and reuse knowledge, or share assumptions about a domain of
discourse of a set of agents.  If you must have a metaphysical
assumption, it is this:

  Anything that satisfies a definition for a term in a knowledge base
  attributed to an agent "exists" for that agent.

This follows from the model-theoretic semantics of KIF and is due to
Pat Hayes (personal communication).

As John McCarthy writes:
> 3.  The dictionary and philosophical usage use "ontology" to refer to
> what exists.  In the old days there were arguments about the
> existence of various things.  Quine made the term technical, saying
> that the ontology of a theory is the correspondence between variables
> in the theory and the domains in which they take their values.  Roughly
> then, the ontology of a theory is given by the kinds of things assumed
> to exist over which the variables can range.  This usage is also more
> appropriate for computer science than the fuzziness of current
> computer science usage.

Exactly.  The universe of discourse is precisely that set of things
over which universally quantified variables can range.

>>  > 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".

It is confusing to you because you ASSUME the concept should be called
"theory", and that because your definition is essentially the same as
mine, that I should use your terminology.  It doesn't follow.

>>  > 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).

Documentation strings are essential to the formal definition of
ontology because, as Sowa and others repeatedly point out, the meaning
of most terms can not be completely formalized.  Just because we can't
formalize what the string denotes doesn't mean we can't insist that an
ontology includes a set of strings, by definition.

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

The terms "defining axiom" and "conservative definition" are technical
terms, carefully defined in the KIF 3.0 document.  Defining axioms ARE
"broken down" as suggested.  In fact, definitions can be analytic or
substitutional, partial or complete, conservative or nonconservative.
See chapter 11.  Besides, this is an ongoing debate in the interlingua
group.  SRKB should be concentrating on content, remember?

Why not call a set of shared definitions a "theory", as John requests?
First, it should be obvious that "theory" is a fairly abused word in
computer science.  It means a lot of things, but until today I never
heard it used as the name for a set of definitions.  I reserve the
technical term "theory" for the folks who are working out the
important and subtle distinctions needed to handle contexts
(microtheories, etc).  Second, whether there is a distinction between
a set of definitions and an arbitrary set of axioms (which is one of
the formal definitions of "theory") is a longstanding, interesting,
and currently popular RESEARCH QUESTION in the knowledge
representation community.  I would rather ask "P = NP?" than define P
to be NP.

>>  > 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.  
> 1. The syntax of the language should not force any ontological
>    commitments.

That is MY point.  I was claiming (in a message to the interlingua
group) that the nice thing about using KIF and the frame ontology as
an interlingua among these KL-ONEish languages is that the frame
ontology does NOT introduce new syntax, just new vocabulary.  (The
KL-ONE languages DO have special syntax for classes, slot constraints,
etc., to help restrict the expressive power of the language in
exchange for performance guarantees.)

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

It certaintly isn't THE ontology.  And the frame ontology isn't a type
mechanism, either, it's an ontology of second-order concepts common to
object-centered knowledge bases (classes, instancehood, slot
cardinality constraints, etc.).  And if you think that classes are
just syntax, making no commitments, read the definitions.  In order to
axiomatize classes in a way that is consistent with usage in both
predicate and object-centered styles, we had to make choices about how
to carve up the world.  For example, classes are defined as unary
relations; they could have been simple sets.  Slots are equated with
binary relations; they could have been functions whose values are
sets.  The point is that these are ontological commitments: when two
agents use the word class they both acknowledge that classes exist,
and more importantly, that the word C-L-A-S-S means unary relation
(and not the difference between McFerrin and Madonna).

These definitions don't exclude other definitions.  Note that the
words "type", "sort", "attribute", and "property" are NOT defined in
the frame ontology.  An ontology for these concepts could be defined
without changing the syntax of KIF, or inventing a new language.  As
for opinions and preferences, I agree there is a case to be made for
adding special syntax for sorts in the KIF language (which Sowa has
repeatedly proposed).  That debate belongs on the interlingua list.
In the mean time, those of us who want to share ontologies can
describe hierarchies of classes and relations on them.  If sorts get
put into KIF, then we can mechanically translate into the new syntax
without loss of information.

But the frame ontology is not typical of ontologies for knowledge
sharing, because it describes a mathematical domain.  The interesting
challenges come from trying to define ontologies in messier fields
(e.g., engineering models, AI software, medicine, enterprises) and the
broad, comprehensive frameworks we need for natural language and
database integration.

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

and the next day...
> But my main contention was
> that we have two very nice words in English that are more widely
> known and more accurately used by most people than the word
> "ontology": namely, "vocabulary" and "theory".  I suggest that we use
> the word "vocabulary" for the collection of terms and definitions, and
> "theory" for the triple (Language, Vocabulary, Axioms).

First "theory", then "set of definitions", now "vocabulary".  Or some
combination?  Read carefully:

  1. A set of definitions defines a vocabulary.
  2. A set of definitions includes axioms.
  3. A set of definitions is written in a language.

If you want to use "set of definitions" with these three properties,
I'll know exactly what you mean.  I'll call it an ontology.