Non-PK tables, blank nodes, and leanness

All,

I wanted to highlight one issue that Juan raised during the call.

Example table:

          IOU
   BORROWER | AMOUNT
   ---------+-------
   Alice    |     10
   Alice    |     10

RDF graph according to current DM semantics (ignoring the type triples which are not relevant to this discussion):

   _:1 <IOU#BORROWER> "Alice".
   _:1 <IOU#AMOUNT> 10.
   _:2 <IOU#BORROWER> "Alice".
   _:2 <IOU#AMOUNT> 10.

As Juan observed during the call, this graph is non-lean. RDF Semantics tells us: “Non-lean graphs have internal redundancy and express the same content as their lean subgraphs.” [1] In other words, the graph above is semantically equivalent to this one:

   _:1 <IOU#BORROWER> "Alice".
   _:1 <IOU#AMOUNT> 10.

Let's revisit the original intent of generating distinct blank nodes for the two rows. The fact that there are two rows is semantically relevant: Alice owes 20, not 10. And we want to maintain this information when mapping to RDF. But to maintain it, the row node would have to be an IRI rather than a blank node, as a blank node merely indicates that some IOU exists, but doesn't give the identity of the IOU.

The lean and non-lean forms are semantically equivalent. This weakens the case for only allowing the non-lean (redundant and harder to implement) form, and strengthens the case for allowing both, IMO.

Best,
Richard


[1] http://www.w3.org/TR/rdf-mt/#graphdefs

Received on Tuesday, 24 April 2012 18:45:20 UTC