Re: CG: Re: Top level ontology

John F. Sowa (
Sun, 7 Dec 1997 16:44:43 -0500

Some comments on the notes from Sergei and Mike.

>. You know, "salt" in chemistry subsumes "soap" though
>this is a violation of a commonsense view, right? And "salts" in chemistry
>have no privileged sense connected with either smelling or baths.

Yes, most words in both science and everyday use are polysemous. We must
deal with polysemy. But there is no essential difference between polysemy
in supermarkets, in chemistry textbooks, or in math textbooks. They are
all similar in how they use polysemy.

>I have always defended the position that there is no one-to-one or even
>near-one-to-one correspondence between NL lexical units and ontological

Yes, I agree.

> ... Computers are, to put it mildly, inadequate disambiguation devices,
> so they need much finer grain-sized description units, each of which is,
> with luck, not ambiguous at all.

Yes, I agree. My major point was that the difficulty of disambiguating
scientific texts is just as hard as disambiguating texts on any other
subject. Perhaps a well-written science text might be a bit easier to
deal with than a book of children's stories, but not significantly so.


>First, a knowledge base may or may not have an explicit ontology in it or
>associated with it. You can say every KB *has* one, but often it is only
>implicit, and thus more usually referred to as a conceptualisation, not an
>ontology. So I do not think it is a good idea to define a Knowledge Base in
>terms of an ontology. A very simple and hopefully non-controversial
>definition: of a Knowledge Base is:

>KNOWLEDGE BASE: a set of sentences in some knowledge representation language.

I agree that most people leave the ontologies in their programs, databases,
knowledge bases, dictionaries, etc., implicit. That is why I keep emphasizing
Quine's criterion for making the implicit explicit. That is why I hesitate
to define the term _knowledge base_ formally. I explicitly said that it is
an _informal term_. I would rather delete it from my list than try to define
it more formally (or alternatively make it a very formal term that is limited
to some explicit KR language that we adopt for the purpose of making things
explict). I wouldn't like to define a KB as a set of sentences, because
then we run into all the questions about synonymy, whether two different
sets define the same KB or different KB's, whether two different languages,
such as KIF and CGs or any other pair you choose define the same or different,
whether a KB can be defined by a set of sentences in a natural language,
whether a NL can be considered a KR language, etc., etc.

>Very important, is to consider the *purpose* of an ontology -- this seems to
>give rise to different relationships between the ontology and the knowledge
>base. Purposes vary widely.

Yes. Purpose is central to EVERY representation in EVERY language.
And there are very serious questions that must be addressed about how
purpose affects the choice of ontology, whether it it possible to have
an ontology that can be defined independent of purpose. etc.

>KNOWLEDGE BASE, if both are specified in the same language. Furthermore, {\em
>it does not matter!} The difference may be merely one of what part of the
>knowledge base is shared and agreed on, and what part is more specific.
>Furthermore, this may change over time.

In order to be precise, I assume an uninterpreted first-order logic as my
default language. That makes every predicate and type part of the onology.
For any other language L, the method of answering the question is simple:

1. Translate any sentence of L to FOL.

2. Everything other than the Boolean connectives and quantifiers is
part of the ontology.

For procedural languages, the only way to do the translation is to assume
time or some time-like sequencing as part of the underlying language.
Therefore, time would be implicit in the language and would only become
explicit when it is translated to FOL. When you translate a musical score
to FOL, a lot more becomes explicit: time, sequencing, pitch, loudness, etc.

A lot of people resist using logic because it is "too hard". That is exactly
why I insist on using it. What makes logic hard is that you cannot cheat.
In order to translate anything else into logic, you must be explicit about
every implicit detail.