W3C home > Mailing lists > Public > www-rdf-logic@w3.org > June 2001

Re: Reification as nesting

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Thu, 7 Jun 2001 11:16:30 -0400 (EDT)
Message-Id: <200106071516.f57FGUh28616@pantheon-po04.its.yale.edu>
To: www-rdf-logic@w3.org

   [Tim Berner-Lee]
   Let's see... below you use a triple as an item in a triple.

   [a b [c d e]
   which one can assume is shorthand for

	 [a b _g]
   _g  [c d e]

   with anonymous _g.  So you have triples with addresses, or a restricted
   form of quad.

How about we indicate the 4th component of a tuple in one of two ways:

-- Write it after a slash 
      [a b c]/nest-id

This emphasizes that the role of the nest-id is for grouping what
would otherwise be triples.

-- Put a bunch of triples inside curly braces, in which case they all
have the same 4th component, exactly which is unimportant.  So

    [a b {[a1 b1 c1], [a2 b2 c2], [a3 b3 c3]}] 

would be short for 

    [a b b966]/top
    [a1 b1 c1]/b966
    [a2 b2 c2]/b966
    [a3 b3 c3]/b966

   This is more or less  what happens in N3,  except that a statement itself is
   not surfaced as an extra type in the language. The (ugh) nest is.   You can
   easily identify a statement by giving a nest with only one statement in it.
   It can be a subtype of nest, if you like.  This reduces the number of things
   in the language, which makes it simpler.

I believe asserting nests instead of triples does make sense, although
one could always coerce a triple to a singleton nest.

   [Pat Hayes]
   > 'etc' means a continuation of whatever structure it occurs in, in
   > this case a relational sentence with more than two arguments. Again,
   > it would be natural to allow things like [... a b c d] as an
   > abbreviation for [....a [etc b [etc c d]]].

   [Tim Berners-Lee]
   Yes, "etc" is a useful kludge.  Does it work?  i'm not sure, as
   I before I could say yes I would want to feel that the predicates and
   nestings had well-defines meanings.  For example, what is the object
   of Q?  The statement etc(a,b)?  Not really.

I find etc dubious, too.  The traditional way to introduce
multi-argument functions into RDF would be to write

   [statement33 rdf:type love_triangle]
   [statement33 winner melanie]
   [statement33 won ashley]
   [statement33 loser scarlett]

rather than

   [love_triangle scarlett [etc melanie ashley]]

It is indeed impossible (or highly artificial) to give [etc melanie
ashley] a coherent meaning.  We could take it literally to mean
"pair" or "cons", and make love_triangle a predicate on a person and a
pair of persons, but that would require interpreting some triples as
terms rather than statements.

                                             -- Drew McDermott
Received on Thursday, 7 June 2001 11:16:37 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:40 GMT