Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Contexts (was Classes vs. Instances)



Folks,

This discussion about the problems of adding context information
and other features to OWL illustrates some fundamental principles:

  1. A notation that is deliberately restricted in order to
     facilitate one kind of algorithm is not likely to be
     particularly good for purposes other than the one that
     the notation was specifically designed to handle.

  2. OWL and other DLs are optimized for one kind of inference
     engine.  Prolog, SQL queries, and some rule-based systems
     are optimized for backward-chaining inference engines.
     CLIPS, SQL triggers, and other kinds of rule-based systems
     are optimized for forward-chaining inference engines. Still
     other notations are optimized for other kinds of inference
     engines, statistical methods, learning methods, etc.

  3. Although I have often been critical of some of the design
     choices underlying Cyc, I do support their idea of letting
     the knowledge engineers focus on representing knowledge in
     the most natural way for the application domain, and not
     forcing them to suboptimize their representation for some
     particular algorithm.

  4. The differences between different versions of logic, such
     as propositional logic, Aristotle's syllogisms, binary
     relations vs. n-ary relations, description logics, Horn-clause
     logic, first-order logic, higher-order logic, modal logics,
     metalevel logics, context logics, etc., can be recognized
     very quickly and efficiently by a simple syntactic analyzer.

  5. There's no need to force users who don't know logic very well
     to anticipate what inference engine should be used for their
     problems and to shoe-horn their thinking into some predefined
     pigeon holes.  Instead, let them use the form of expression
     that is the most natural for them.  Then let the computer
     analyze those expressions and select whatever subset of logic
     and whatever inference engine is suitable for the problem at
     hand.  In fact, it's possible to have a dialog in which the
     users and the system negotiate and modify the representation
     through a cooperative design collaboration.

  6. That is roughly what Cyc does:  provide a very general notation
     that is supported by a variety of different inference engines.
     Given any particular problem, they let the system determine
     which subset of logic to use and what inference engine(s) to
     apply.  My criticisms of Cyc are not that they should restrict
     their notation, but rather that they should be even more general
     and more flexible in the options they support.  Among other
     things, I would put more emphasis on induction, abduction,
     and analogy.  (I wouldn't discard deduction, but I'd treat
     it as just one of many methods of reasoning.)

  7. And by the way, Cyc does support a version of contexts and the
     option of having multiple contexts with different subsets of
     the knowledge base available in each.  It also supports metalevel
     reasoning about the contexts and what knowledge is available
     or should be added to any of them.

Although I have been critical of Cyc, I am even more critical of
the Semantic Web because that has gone in the *opposite* direction.
Instead of learning from Cyc and doing something better, they have
gone back to the pre-1984 technology that was the starting point
when the Cyc project was begun.

Cyc isn't the only thing that the SemWebbers ignored.  They also
ignored the lessons of SQL and UML -- two widely used technologies
that are not as good as they should have been.  Those two systems
have not been improved, partly because the available tools have
been constrained by the requirement for backwards compatibility.
But the SemWeb broke compatibility without making any advances.

The SemWebbers try to excuse themselves by saying that they are
trying to do something less ambitious than Cyc in expressive power,
but more ambitious than Cyc in the amount of data they process.
But that sounds like Bush trying to explain the Iraq War.

In fact, no design study for the SemWeb or Iraq examined all
the options in order to determine what should be done or how
to coexist with and interoperate with other systems.  The *only*
design document that was used for the SemWeb was Tim B-L's layer
cake, which proposed Unicode, URIs, and XML at the bottom and
expressed the hope that magic would somehow occur at the top.
Unfortunately, there's no magic in either Iraq or the SemWeb.

There's a lot more that could be said, and following are some
pointers to related reading.

John Sowa
__________________________________________________________________

The following slides discuss the continuum between informal and
formal knowledge representations and some of the issues of mapping
one to the other:

    http://www.jfsowa.com/talks/cmapping.pdf

An analysis of the problems of knowledge representation in general
and some of the limitations of current approaches:

    http://www.jfsowa.com/pubs/challenge.pdf

A paper on contexts, metalevel reasoning, and modal logic:

    http://www.jfsowa.com/pubs/laws.htm