Re: Moving the Debate on Definitions Forward

Peter Norvig <>
Message-id: <2857242106-5537126@spaulding>
Sender: norvig@spaulding
Date: Tue, 17 Jul 90  15:21:46 PDT
From: Peter Norvig <>
Subject: Re: Moving the Debate on Definitions Forward 
Three points about definitions:

(1) McAllester has pointed out an important difficulty:
recursive definitions.  While these have not been addressed in
KIF, Bernard Nebel's thesis has a very thorough coverage of
"terminological cycles", as he calls them.  I think his
solutions can be adopted.

(2) Part of our confusion is that there are really two kinds of
definitions one might want to provide: definition-k (KIF-style
definition) is an object within the language itself, while
definition-t (Terminological language-style definition) is part
of the metalanguage.  For example, given

   (defrelation bachelor (?x)
      (and (male ?x) (not (married ?x))))

the KIF document says that we can then query (defines 'bachelor ?d)
and get back an answer for ?d.  Similarly, given

   (bel john '(defrelation bachelor (?x) (not (married ?x))))

KIF would allow a query about what John thinks the definition of
bachelor is.  It is my understanding that the terminological
languages would not allow such statements.

As I see it, definition-t is subsumed by definition-k, so the
only reason to make a distinction is if there is a more
efficient way of compiling definition-ts.  From my own work as a
RL implementor, I know that certain optimizations can be made
when one assumes that the terminological component is frozen (in
other words, closed world assumption over definitions).  But I
think we need testimony from more expert implementors: Bob, what
techniques are necessary to make LOOM run fast?  Mike, can these
be incorporated into EpiKit?

(3) Bob wants to require explicit ANDs everywhere.  As a
matter of personal taste, I agree entirely; I was just trying to
point out a need for consistency with the rest of the KIF

- Peter