[mod.ai] representation languages: richness and flexibility

hamscher@HT.AI.MIT.EDU.UUCP (02/09/87)

   Date: 5 Feb 87 03:37:30 GMT
   From: berleant@sally.utexas.edu  (Dan Berleant)

   Hmm. I just attended a lecture in which frame based representation
   schemes were touted on the basis of the fact that representation
   languages should be rich and flexible.

   Well, it sounds good, it even sounds simple, but I'm sure not sure what
   it means! In the context of representation languages, what is
   'rich', and what is 'flexible'?

Good question.

Flame on...

The term ``representation language'' is redundant.  What other kind of
language could there be?  Just think about languages, period, and the
terms make more sense.  Languages are symbol structures that have an
interpreter.  And since the terms are relative, it makes more sense to
ask ``what makes language A richer than language B'' and ``what makes
language X more flexible than language Y.''

Here's one way to characterize richness: A is richer than B if symbol
structures in A can finitely denote facts (i.e., the interpreter can
interpret as) that B can't.  E.g., 1st order predicate calculus is
richer than propositional calculus because it has quantification,
which allows you to express infinitely large propositional
conjunctions and disjunctions.  Frame languages, semantic nets, etc,
differ as to whether they correspond to first-, second-, or
omega-order logics, and that's probably the best way to characterize
its richness in a technical sense.  If you replace finiteness with
compactness, it becomes more a matter of taste: frame languages print
nicely because they supress some redundancies, but does the computer
really care about that?

Here's one way to characterize flexibility: X is more flexible than Y
if a local incremental change to the denotation of a symbol structure
in X can be done by changing fewer symbols and relations.  This
actually turns out to go along with richness sometimes.  For example,
a frame based language with inheritance and cancellation is more
flexible than 1st order predicate calculus because (to beat on a tired
example) you can say that birds fly and then later say that penguins,
which are birds, don't fly, without having to go back and change the
original statement about how birds fly.  You make a local addition and
you don't have to go around the whole symbol structure fixing a lot of
things up.  What this goes to show is that a frame language with these
features has second order properties; if you go to 2nd order predicate
calculus via circumscription, you get this locality property back.

Now you get to the real question: what are the properties of the
interpreter that come packaged with the language?  Does it give you
some kind of guarantee about completeness, about variant queries,
about constant time complexity for query answering, or what?  Does the
language come with a basic set of facts about the world that you can
build on (like a subroutine library in a programming language)?  Or
does it just stuff things into a database and let you figure out what
to do with them later?  The richness and flexibility of the language
itself are not very interesting properties, it's the interpreter that
matters.  What people usually mean when they say ``representation
language'' is ``belief language'', since they're talking about a
language whose purpose is to denote the beliefs of an agent.  But if
you expect the interpreter of your belief language to do a lot of
automatic inferences that solve a significant part of the software
engineering problem for you, then you're probably expecting too much
from it: that's the job of a programming language and environment.

Flame off...

Walter Hamscher