Re: Types, sets, and relations

macgregor@ISI.EDU
Message-id: <199304262047.AA22988@quark.isi.edu>
Date: Mon, 26 Apr 1993 13:46:47 -0800
To: sowa <sowa@turing.pacss.binghamton.edu>, cg@cs.umn.edu,
        interlingua@ISI.EDU
From: macgregor@ISI.EDU
Subject: Re: Types, sets, and relations
John Sowa writes:
> ...
>But in order to preserve the option of developing a richer model
>theory in the future, I would like to distinguish them syntactically.
> ...
>Summary:  If T is a type, S is a set, and R is a monadic relation,
>I would prefer to use the following notation:
>
>   (forall (?x T) (...))
>
>   (forall (?x in S) (...))
>
>   (forall (?x) (=> (R ?x) (...))
>
>In the current model theory for KIF, all three of these constructions
>may have the same denotation, but a future model theory might treat
>them differently.

John seems to be suggesting that we encode distinctions between Type,
Set, and Relation in the syntax, while assigning each of the above
constructs the same denotation in KIF. I disagree for two reasons.

First, if a distinction is regarded as significant by a large body of
users (perhaps all of us except for Mike G.?), then there ought to be
an explicit means for encoding it in KIF. One possibility would be:

(and (Type T)
     (forall ((?x T)) (...)))

(and (Set S)
     (forall ((?x S)) (...)))

(and (Monadic-Relation R)
     (forall ((?x R)) (...)))

This last distinction works only if KIF assigns a standard meaning to
the relations Type, Set, and Monadic-Relation. Set and (unrestricted)
Relation are already defined, so I think this boils down to including a
monadic relation equivalent to "Type" in KIF. We and many of our users
find the distinction between Type and Monadic-Relation useful, but we
have not discovered a reliable semantic basis for this distinction, and
I would hazard a guess that we never will.

I would prefer to agree on a standard name (Type, Class, Concept, or
whatever) and add a partial definition to KIF 
   (defrelation Type (?t) :=
       (and (Relation ?t)
             (arity ?t 1)))

("arity" is probably not defined in KIF, but pretend that it is).

My second reason for disagreement is that John's suggestion places a
greater burden on the translation process, plus it requires that the
translator make seemingly arbitrary distinctions. For example, Loom
provides distinct means for introducing concepts (Types) and properties
(Monadic-Relations) into a knowledge base, but their use within queries
is identical. To conform to John's proposal, a Loom statement like

   (forall (?x) (implies (A ?x) ...))

would have a different translation into KIF depending on whether "A"
had been introduced as a concept or as a property.


- Bob

Robert M. MacGregor                                     macgregor@isi.edu
USC/ISI, 4676 Admiralty Way, Marina del Rey, CA 90292      (310) 822-1511