W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > April 2002

Dark triples, motivating examples

From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
Date: Mon, 15 Apr 2002 17:01:22 +0100
To: <w3c-rdfcore-wg@w3.org>
Message-ID: <JAEBJCLMIFLKLOJGMELDMEKICDAA.jjc@hplb.hpl.hp.com>


ACTION 2002-04-12#7, jjc: post message to rdfcore with motivating example
(for dark triples?)

The basic problem can be expressed in DAML+OIL as:

<rdf:Description rdf:about="#John">
   <rdf:type>
    <daml:class>
      <daml:intersectionOf rdf:parseType="daml:collection">
         <daml:class rdf:ID="Student"/>
         <daml:class rdf:ID="Employee"/>
     <daml:intersectionOf>
    </daml:class>
   </rdf:type>
</rdf:Description>

entailing

<rdf:Description rdf:about="#John">
   <rdf:type>
    <daml:class>
      <daml:intersectionOf rdf:parseType="daml:collection">
         <daml:class rdf:ID="Employee"/>
         <daml:class rdf:ID="Student"/>
     <daml:intersectionOf>
    </daml:class>
   </rdf:type>
</rdf:Description>

====

In English, the premise reads John is in the intersection of Student and
Employee.
The conclusion reads John is in the intersection of Employee and Student.

WOWG believes that this entailment is appropriate (although that has not
been formally decided).
However, in RDF the structure of the first collection and the structure of
the second collection is fairly different and so it is difficult/impossible
to account for the relationship. (I think the exact level of difficulty is
disputed). One aspect of this difficulty is that the meaning of the triples
according to the RDF Model theory is order preserving.

WOWG considers that this issue can be addressed by using dark triples.
I have not understood the exact mechanism of the solution.

In the discussion WOWG appeared to like this entailment so much, that it was
worth paying the cost of having two separate RDF documents to express the
light and dark triples. This was the mechanism discussed at greatest length
in the webont f2f. (I took it that the motive for discussing that mechanism
is that this was the smallest possible change required of RDFCore: simply
permission to have an RDF/XML document that is interpreted as a "dark
document").

In terms of RDF collections, we could imagine trying to make the same
construct with a closed bag. We would then end up with the problem that

<rdf:Bag>
  <rdf:_1 rdf:resource="#Student"/>
  <rdf:_2 rdf:resource="#Employee"/>
</rdf:Bag>

and

<rdf:Bag>
  <rdf:_2 rdf:resource="#Student"/>
  <rdf:_1 rdf:resource="#Employee"/>
</rdf:Bag>

are fundamentally different.

This may be addressable using a fuller solution for containers (such as I
have suggested).

However that will probably not address the dark triples problem.
For example, another desirable (from WOWG's point of view) entailment is:


<rdf:Description rdf:about="#John">
   <rdf:type rdf:resource="#Student">
   <rdf:type rdf:resource="#Employee">
</rdf:Description>

entails

<rdf:Description rdf:about="#John">
   <rdf:type>
    <daml:class>
      <daml:intersectionOf rdf:parseType="daml:collection">
         <daml:class rdf:ID="Employee"/>
         <daml:class rdf:ID="Student"/>
     <daml:intersectionOf>
    </daml:class>
   </rdf:type>
</rdf:Description>

and we see that maybe the whole of the intersection class is "dark" and only
the type triple is "light".


My understanding of the two documents approach is that some believe that the
two documents would be roughly split along the containers being dark, and
everything else being light:

e.g.

Light (asserted)

<rdf:RDF>
 <rdf:Description rdf:about="#John">
   <rdf:type>
    <daml:class>
      <daml:intersectionOf rdf:resource="#List">
     <daml:intersectionOf>
    </daml:class>
   </rdf:type>
 </rdf:Description>
 <daml:class rdf:about="#Student"/>
 <daml:class rdf:about="#Employee"/>
</rdf:RDF>


Dark (unasserted)

<rdf:RDF xml:base="same as light document">
   <daml:List rdf:ID="List">
      <daml:first rdf:resource="#Student"/>
      <daml:rest>
          <daml:List>
            <daml:first rdf:resource="#Employee"/>
            <daml:rest rdf:resource="&daml;nil"/>
          </daml:List>
      </daml:rest>
   </daml:List>
</rdf:RDF>


[I note this is likely to be made less ugly by permitting the naming of
closed containers in the syntax].

An alternative is that all the ontology stuff is dark vis:


Light (asserted)

<rdf:RDF>
 <rdf:Description rdf:about="#John" rdf:type="#GenSym"/>
</rdf:RDF>


Dark (unasserted)

<rdf:RDF xml:base="same as light document">
    <daml:class rdf:ID="GenSym">
      <daml:intersectionOf rdf:parseType="daml:collection">
         <daml:class rdf:ID="Employee"/>
         <daml:class rdf:ID="Student"/>
     <daml:intersectionOf>
    </daml:class>
</rdf:RDF>

Jeremy
Received on Monday, 15 April 2002 12:02:24 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:47:28 EDT