Re: Proposal for “per-row blank node maps” in R2RML

On May 11, 2012, at 24:33 , ashok malhotra wrote:

> I have seen no mail about this so let me ask if we can all agree to
> Richard's proposal below (I have cut and pasted from two of his notes and fixed some
> of the wording.  Please check.).
> Further, will this completely resolve the issue?   Our last and final issue?

Yes and no. Yes, in the sense of having the specification done and the two documents in line (I let the experts decide whether the proposal of Richard is the good one). But we should, at least informally, have a Candidate Rec run against this feature, ie, have at least two, preferably more, R2RML implementations that really implement this (and we should certainly actively contact all implementers, some of them may not be on the WG). If the implementations turn out to be tricky or impossible then, well... we have to decide whether this is the direction we want to go and we may be back to last Tuesday's deadlock.

My hope is that the implementation is not a major load. If so, we can go out for a 2nd LC asap, with a review period of, say, 3 weeks, and plan to go to PR right after that. That would place us for PR somewhere after SemTech, with a Rec in July. 

Ivan

> 
> Proposal:
> 
>    rr:subjectMap [
>        rr:termType rr:RowBlankNode;
>    ];
> 
> • If the term type is rr:BlankNode, then you have to specify how to generate the blank node identifier using rr:column/rr:template/rr:constant. (That's the status quo.)
> 
> • If the term type is rr:RowBlankNode, then you don't specify rr:column/rr:template/rr:constant, and you get a fresh blank node for each row. (That's the new part.)
> 
> 
> ADD a new Section 7.4 within Section 7, “Creating RDF Terms with Term Maps”:
> 
> [[
> 7.4 Blank Nodes for Each Row of a Logical Table
> 
> A per-row blank node map is a term map that generates a fresh blank node for each row of the logical table. In the case of logical tables that contain duplicate rows, this allows generating distinct subjects for the duplicate rows. A per-row blank node map is represented by a resource that has an rr:termType property with value rr:RowBlankNode.
> 
> Per-row blank node maps are only allowed as subject maps or object maps.
> 
> The referenced columns of a per-row blank node map is the empty set.
> 
> Conforming R2RML processors MAY treat R2RML mappings that use per-row blank node maps over R2RML views as an error.
> 
> It is possible to define multiple per-row blank node maps over a single logical table. In this case, each of the maps produce distinct blank nodes. In the following example, two unique blank nodes are generated for each logical table row, one as the subject and one of the object of the generated ex:p triples.
> 
>    <#map1>  a rr:TriplesMap;
>        rr:logicalTable<#someLogicalTable>;
>        rr:subjectMap [ rr:termType rr:RowBlankNode; ];
>        rr:predicateObjectMap [
>            rr:property ex:p;
>            rr:objectMap [ rr:termType rr:RowBlankNode; ];
>        ];
>        .
> 
> But in the following example, each generated triple will have the same blank node as subject and object, because the same per-row blank node map is reference as the subject map and object map.
> 
>    <#map1>  a rr:TriplesMap;
>        rr:logicalTable<#someLogicalTable>;
>        rr:subjectMap<#blankNodes>;
>        rr:predicateObjectMap [
>            rr:property ex:p;
>            rr:objectMap<#blankNodes>;
>        ];
>        .
>    <#blankNodes>  rr:termType rr:RowBlankNode.
> ]]
> 
> 
> ADD one line to the definition of “term map”:
> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#dfn-term-map
> 
> [[
> A term map must be exactly one of the following:
> 
> 	• a constant-valued term map,
> 	• a column-valued term map,
> 	• a template-valued term map.
> 	• a per-row blank node map.<<<  ADD THIS
> ]]
> 
> 
> ADD a new clause to the definition of “generated RDF term”:
> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#dfn-generated-rdf-term
> 
> [[
> 	• If the term map is a per-row blank node map, then the generated RDF term is a blank node that is unique to the logical table row and to the term map.
> ]]
> 
> -- 
> All the best, Ashok
> 


----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
FOAF: http://www.ivan-herman.net/foaf.rdf

Received on Friday, 11 May 2012 06:47:19 UTC