Portable ontologies and theories

Message-id: <199208201650.AA10691@venera.isi.edu>
Date: Thu, 20 Aug 92 12:47:31 EDT
From: sowa@watson.ibm.com
Subject: Portable ontologies and theories
Following are my comments on some comments concerning portable
ontologies that were sent to the SRKB list by Tom Gruber (marked by >>)
and Charles Petrie (marked by >).

>>  What Ontolingua "understands" are the concepts common to
>>  object-centered representation systems, such as subclass,
>>  instance, and slot constraints.

This statement bothers me, since it seems to focus on a particular
family of systems.  Logic is the only fundamental system for
representing knowledge.  Any particular KR system or family of
systems is an approximation to some subset of logic that is optimized
for some specific purpose.  But the ontologies should be stated in
a way that can be translated with identical semantics to any
logic-based KR system.

>>  The hypothesis underlying the KSE's strategy is that it is
>>  possible to share and reuse knowledge written in declarative
>>  form.  This hypothesis can be false; it could be that the only
>>  way to share knowledge bases or provide interoperation among
>>  knowledge-based programs is to share programs.  If that turns
>>  out to be the case, then we should all start writing our
>>  programs in the same language on the same giant ontology.

> This is the central point.  I want to clarify (come to agreement on
> what we mean by) the difference between "declarative form" and
> "program".

I agree with Charles P. that this issue is critical.  I also endorse
his following statement wholeheartedly:

> I'm in the camp that believes that an ontology is meaningless without
> an associated theory. (By "theory", I mean the set of valid inferences
> in the traditional computer science sense, not Guha's "contexts".)

I agree, but I also want to add that the context mechanism is
essential for packaging theories.  It is important to distinguish
the package (i.e. the context) from the content (i.e. the theory).

> The meaning of words in a natural language lies in their *use* - not
> static descriptions; similarly with objects. The question here is how
> to represent object use in a formal "declarative form".

This comparison with natural language is important.  I frequently
make the point that the reason why dictionaries list so many different
meanings for NL words is that they are organized alphabetically instead
of by subject matter.  I would like to see a dictionary (or rather a
knowledge base) organized by theories.  In each theory, each word
(or its corresponding predicate, concept, or whatever) would have
have one and only one meaning.  You could still have an alphabetical
word list, but instead of giving definitions, the list would simply
be an index to all the theories in which the word is used.  The theories
themselves would have to be organized in a hierarchy (most likely a
lattice).  A general theory of buying and selling, for example, would
have subtheories for buying cars, buying houses, or buying ice cream.

This last paragraph, by the way, is approximately the abstract of
a couple of talks that I am committed to presenting at workshops
next March and August.

>>  This hypothesis can be false; it could be that the only
>>  way to share knowledge bases or provide interoperation among
>>  knowledge-based programs is to share programs.  If that turns
>>  out to be the case, then we should all start writing our
>>  programs in the same language on the same giant ontology.

> I think I'm not disagreeing with this, but I want to clarify it to be
> sure.  I am claiming that one does have to "share programs" only to
> the extent that one has to define the inferences associated with the
> ontology.  This can be done declaratively, even if in KIF.  Ontolingua
> provides (and should provide) some inferencing semantics.  To that,
> limited, extent, if we use Ontolinqua to share ontologies, we are
> "writing programs in the same language".

I do believe that Ontolingua must include the axioms for each of
the terms in each theory, but the inferencing mechanisms should be
part of the logic system.  There are three distinct things that
should not be confused:  the abstract system of logic, which should
be notation independent; the particular language or languages, such
as KIF, conceptual graphs, or whatever, in which that logic is
expressed; and the families of theories for all the subjects that
are being defined.

> But I am distorting your language: what I think you mean by "writing
> programs in the same language" is "coding".  We will all never use the
> same implementation language; just the same language for semantic
> definition.  We can implement BIB with LISP or SMALLTALK as long as
> the program semantics conform to the Ontolingua definition.

Yes.  If you have well-defined axioms and a disciplined coding style,
it should be possible to write programs that conform to those axioms
in any programming language you find convenient.

> Of course, now I want to say that the Ontolingua language needs to be
> augmented, say, by general KIF constructs that allow one to more
> completely define a theory.

Absolutely.  The Knowledge Sharing Effort must have three components:

 1. An abstract system of logic that is independent of any notation.
    Every theory, of course, must be expressed in some notation, but
    by developing it in two or more notations simultaneously, the
    syntactic quirks that are peculiar to the notation can be exposed
    and smoothed out.  In all my writings on knowledge representation,
    I make sure that every semantic construct can be expressed in
    four different ways:  informal English, predicate calculus,
    conceptual graphs in the graphic notation, and CGs in the linear
    notation.  That exercise helps to weed out any notation-dependent

 2. One or more concrete languages that express the semantics in
    exactly equivalent ways.  The AI field has been subdivided into
    too many competing camps based on irrelevant notational differences.
    The areas of agreement are very large when you translate everything
    into the same notation, but everybody wants a different notation.
    Therefore, we should work towards a common core, and let people
    develop any notation they please as long as it maps to and from
    the common core.

 3. An open-ended family of theories, organized in a hierarchy (most
    likely a lattice).  Each theory would have its own "ontology",
    but I would be happier to avoid that term altogether.  I would
    prefer to say that a theory must have the following components:

    a) An uninterpreted formal language L.

    b) A set S of constants (call them predicates, relations, concept
       types, or whatever).

    c) A set A of axioms (or laws, or constraints, or whatever).

    d) A model theory that provides a consistency check and a basis
       for verifying the soundness of any proposed inference schemes.

    In addition to points a, b, c, and d, I would like S to have a
    sort or type structure that can be tested by simple polynomial-time
    checks, instead of the NP-complete proofs that any realistic axiom
    scheme invariably runs into.

In this formulation, what people have been calling "ontology"
roughly corresponds to the set S of constants and the type hierarchy
defined over S together perhaps with some of the simpler axioms in A.
In the conceptual graph project, we use the term CCAT (for conceptual
catalog) as a somewhat broader term.  It also has the advantage of
avoiding the term "ontology", which many AI people tend to use as
more or less synonymous with "taxonomy".

Another point that must be considered in order to make any theory usable
are the conventions or criteria for mapping the formal symbols to the
real world.  Tarski called his original model theory a "theory of truth",
but his title said explicity "in formal languages".   For any subject
that talks about the real world, the criteria for truth must also
specify the conventions and measuring instruments for mapping the models
to and from tangible objects and systems.  Every mapping from a model
to the world is an approximation, and the degree of approximation may
be very different for different purposes -- gardeners, auto mechanics,
and VLSI chip designers all make spatial measurements, but their
techniques and criteria of precision are vastly different.

> Ontolingua, as I understand its current state, needs at least a place
> holder for a formal theory that is more than object definitions. I
> could be wrong about the current state of Ontolingua, but I would like
> to come to agreement on the general subject of whether an ontology
> needs an associated theory to be useful.

I doubt that anyone really disagrees that knowledge sharing must include
the sharing of complete theories.  But there may be disagreement over the
scope of the various subprojects in KSE.  Perhaps it would be better to
drop the term "shared ontologies" and talk about hierarchies of shared
(or sharable) theories.

John Sowa