W3C home > Mailing lists > Public > www-rdf-logic@w3.org > December 2000

RE: A modest proposal for reforming RDF

From: McBride, Brian <bwm@hplb.hpl.hp.com>
Date: Fri, 15 Dec 2000 17:32:50 -0000
Message-ID: <5E13A1874524D411A876006008CD059F0183D150@0-mail-1.hpl.hp.com>
To: Drew McDermott <drew.mcdermott@yale.edu>
Cc: www-rdf-logic@w3.org
Drew,

Thanks for a very clear statement of the issue.

[snip]
> 
> a) It seems unnatural to analyze disjunction as being a relation among
> *descriptions* of statements rather than a relation among statements.
> Note that if I write something like p OR (q AND (m OR n)), I have to
> reify p and q, but I have to reify the reification (or quote the
> quotation) of m and n.  Blech.

Blech indeed!  Judging from DanC's message, this
area has been thoroughly explored elsewhere, so 
this is probably tilting at windmills.

Has the following been considered?

Represent p OR q as a statement - (OR, p, q).  So a simple
example to illustrate the style:

  <rdf:Statement>
    <rdf:subject>
      <rdf:Statement>
        <rdf:subject rdf:resource="#Ps"/>
        <rdf:predicate rdf:resource="#Pp"/>
        <rdf:object rdf:resource="#Po/>
      </rdf:Statement>
    </rdf:subject>
    </rdf:predicate rdf:resource="OR"/>
    <rdf:object>
      <rdf:Statement>
        <rdf:subject rdf:resource="#Qs"/>
        <rdf:predicate rdf:resource="#Qp"/>
        <rdf:object rdf:resource="#Qo/>
      </rdf:Statement>
    </rdf:object>
  </rdf:Statement>

And your example:

  <rdf:Statement>
    <rdf:subject>
      <rdf:Statement>
        <rdf:subject rdf:resource="#Ps"/>
        <rdf:predicate rdf:resource="#Pp"/>
        <rdf:object rdf:resource="#Po"/>
      </rdf:Statement>
    </rdf:subject>
    <rdf:predicate rdf:resource="OR"/>
    <rdf:object>
      <rdf:Statement>
        <rdf:subject>
          <rdf:Statement>
            <rdf:subject rdf:resource="#Qs"/>
            <rdf:predicate rdf:resource="#Qp"/>
            <rdf:object rdf:resource="#Qo"/>
          </rdf:Statement>
        </rdf:subject>
        <rdf:predicate rdf:resource="AND"/>
        <rdf:object>
          <rdf:Statement>
            <rdf:subject>
              <rdf:Statement>
                <rdf:subject rdf:resource="#Ms"/>
                <rdf:predicate rdf:resource="#Mp"/>
                <rdf:object rdf:resource="#Mo"/>
              </rdf:Statement>
            </rdf:subject>
            <rdf:predicate rdf:resource="OR"/>
            <rdf:object>
              <rdf:Statement>
                <rdf:subject rdf:resource="#Ns"/>
                <rdf:predicate rdf:resource="#Np"/>
                <rdf:object rdf:resource="#No"/>
              </rdf:Statement>
            </rdf:object>
          </rdf:Statement>
        </rdf:object>          
      </rdf:Statement>
    </rdf:object>
  </rdf:Statement>

where #Xs is the subject of statement X
      #Xp is the predicate ...
      #Xo is the object ....

No multiple reification is needed.

> 
> Do the examples above help?

A great deal.  Thank you.

Brian
Received on Friday, 15 December 2000 12:33:25 GMT

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