Re: Editorial comments on R2RML

On Nov 7, 2011, at 19:01 , Richard Cyganiak wrote:

> Hi Ivan,
> 
> Thanks for your comments! The WG discussed your comments. Our response is below, inline. Please let us know if this response addresses your comments.

I am o.k. accepting these answers, but I do have comments on the last issue (see below). Those comments are not on the LC document itself (ie, it is fine to move on to CR as far as I am concerned) but should nevertheless discussed by the WG in my view.

See some notes below.

Thanks!

Ivan 



> 
> On 4 Oct 2011, at 15:54, Ivan Herman wrote:
>> Section 7.3
>> 
>> The example refers to the IRI-safe template value using the following:
>> 
>> [] rr:subjectMap [ rr:template "http://data.example.com/site/{LOC}" ].
>> 
>> the IRI-safe version kicks in only if the term is declared to be an IRI. I know that this is defined, later, to be the default case for subject map using a template but it may be worth making this clear in the text (or simply add the extra rr:termType to the example.)
> 
> I'd prefer not to add a redundant rr:termType, because it can teach bad habits to authors.
> 
> Actually the example below this one is buggy in the LC draft, because it is supposed to create literals, but doesn't have an rr:termType declaration, so the default of rr:IRI would be used. This is fixed in the latest ED:
> 
> [[
> By default, rr:template generates IRIs. Since the intention here is to create a literal instead, the term type has to be set.
> 
>    [] rr:objectMap [
>        rr:template "\\{\\{\\{ \\\\o/ {TITLE} \\\\o/ \\}\\}\\}";
>        rr:termType rr:Literal;
>    ].
> ]]
> http://www.w3.org/2001/sw/rdb2rdf/r2rml/#from-template

Ah! Indeed, I did not catch this error either:-)

> 
> I think that this makes the role of rr:termType and the generation of IRIs versus literals clear enough in this section, so I hope it addresses your comment.

Yes. It appears now where it should be, which makes things clearer indeed.

[skip]
> 
>> Section 9.1 
>> (I am not sure the remark should go to this section, though)
>> 
>> I would expect that if I have:
>> 
>> [] rr:subjectMap [ rr:termType rr:BlankNode ] ;
>> 
>> in a triple map, what this means is that each row has a newly generated blank node as a subject. I wonder whether it is worth making this fact explicit in the document, it may not be entirely obvious.
> 
> The snippet above is not valid R2RML, in fact. Section 7 states:
> 
> [[
> 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.
> ]]
> 
> And each of these types require an explicit specification to say where the value comes from. So it needs either rr:constant, rr:column or rr:template. In the case of a term map that generates blank nodes, this value will be used to generate the blank node identifier.
> 
> Making it work like you suggest would be very hard. It would require automatic determination of a candidate key for the underlying logical table, that is, a set of logical columns that are guaranteed to have unique values in each row. This determination is hard or impossible for some kinds of logical tables (R2RML views, and base tables or views without declared primary key).

I get it. 

> 
>> Appendix:
>> 
>> The previous version of the document had a number of examples that were very helpful. It is a pity to throw them away. Either we should plan for a separate primer document (but I am not sure we will have the energy for that) or we should put those back into the spec document as an (obviously informal) appendix.
> 
> The examples have been moved into the test cases document:
> http://www.w3.org/2001/sw/rdb2rdf/test-cases/#D014-3tablesExample
> 
> This is noted in Section 2 of the R2RML spec:
> 
> [[
> Further R2RML examples can be found in the R2RML and Direct Mapping Test Cases [TC].
> ]]
> 
> I think that the examples in Section 2 are sufficient and I don't think that adding further general examples as an appendix would improve the spec. All the features that were shown in those extended examples are used and explained in Section 2. If you feel that specific R2RML features lack sufficient examples, then please let us know and we'll consider it. However, I'd prefer to add small and tailored specific examples to the section that explains the feature, or perhaps to Section 2.

Well... I am fine with the examples being elsewhere, in this sense, the R2RML document is fine. However, from the point of view of the collection of documents at large, I am not sure I am fully happy with the choice of moving those examples into the test cases and only there. If I look at the test case document, it is aimed at implementer who, well, want to test. It has a bunch of entries there on review status, purpose, etc, which are obscuring things when I want to look at the examples simply as a means of learning R2RML (and Direct Mapping), ie, as some sort of a primer. I mean, the links to the expected results go to a mercurial archive file, which is again fine for implementers, but is again confusing for people wanting to learn that stuff!

I guess what I am looking for here is some sort of a primer document then, if the decision is not to put it into the core spec. But something is missing.

Ivan






> 
> Thanks again for the comments!
> 
> Richard


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

Received on Tuesday, 8 November 2011 08:54:54 UTC