W3C home > Mailing lists > Public > www-rdf-interest@w3.org > December 1999

Re: N-ary relations, Claims vs Facts, and RDF's odd frame model

From: Pierre-Antoine CHAMPIN <champin@cpe.fr>
Date: Tue, 28 Dec 1999 09:37:41 +0100
Message-ID: <386876D5.CC9C79A9@cpe.fr>
To: Sean Luke <seanl@cs.umd.edu>
CC: Stefan Decker <stefan@DB.Stanford.EDU>, www-rdf-interest@w3.org
Hi Sean,

some of my views on your remarks,

Sean Luke wrote:
> Let's say that the Library of Congress's super-popular schema defined
> husbandOf(hus,wife) but not wifeOf(wife,hus).  Now, in RDF Bill Clinton
> can say that he is Madonna's husband:
>         <rdf:description about="Bill" s:husbandOf="Madonna" />
> ...but, amazingly, Madonna cannot say that Bill is her husband.
>         <rdf:description about="Madonna" ....  oops!

there is no real problem with that !
Even Madonna can write a statement like
  <rdf:Descritpion about="Bill" s:husbandOf="Madonna"/>
The syntactic "subject" of a description is not bound to be the "stater" !

> SHOE's <instance> tag is roughly the equivalent of RDF's <description>
> tag.

No it isn't.
If I undesrtand your example, SHOE's instance tag refers to the "stater"of subseqent statements, not necessarily to the subject of those statements.
rdf:Description is only the subject of a statement.

> That is, every statement in SHOE is automatically considered only
> "claimed" by a clearly-defined claimant, where as everything in RDF
> appears to be automatically considered a "fact" (even if it's a reified
> statement!).

Again, no :)
Though the issue of the confidence in statements is not explicitely addressed in RDF specifications, there are two natural ways of handling it :
* for a signle statement, by reifying it
* for a complete RDF document, by expressing confidence-related meta-data about it,
  using (guess what) RDF itself :)

> Not what I had meant.  You don't need 1000 arguments in a relational table
> to do ordered collection classes.  You only need an integer data type.
> As in Contains(x,y,1), Contains(x,foo,2), etc.  And of course, you need
> n-ary relations. :-)  I still think container classes are one of those
> things that RDF needed to smooth out deficiencies due to the insistance on
> a binary-relation, typeless model.

On that point I do agree with you.
Container classes are too high-level in my opinion,
an _n properties are problematic :
I encountered some problem, with a statement like
  <Description aboutEachPrefix="http:" type="webPage"/>
which, in very special conditions, enumerated infinitely rdf:_n properties :(

Further more, the only Container class really used by RDF syntax is the bag,
so it might be healthily replaced by simple canonical 'rdf:contains' property.

> However, all reified binary relations can be so referenced.
> Under RDF's scheme, the pseudo-n-ary relations are not first-class
> citizens of the model.  It's a hack.  (The traditional hack for binary
> models.  But a hack).

I would rather say that n-ary relations look more like reifications !
See a binary relation

  <rdf:Description about="Bill" s:husbandOf="Madonna"/>

reified in

  <rdf:Description type="Statement
                   subject="Bill"
                   object="Madonna"
                   predicate="husbadOf"/>

Now see a n-ary relation

  <rdf:Description type="rendez-vous"
                   rv:him="Bill"
                   rv:her="Madonna"
                   rv:place="Madonna's house"
                   rv:date="12/25/99 21:00" />

You can refer them as resources by adding an rdf:ID attribute to the descriptions,
but the real problem is, IMO, that you can only state OR reify a n-ary relation
- depends on what semantic you give to the statement just above,
and consiedering it as a fact rather than a reification is not quite consistent
with binary relation syntax...

 Pierre-Antoine
Received on Tuesday, 28 December 1999 04:07:59 GMT

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