Re: Persistent blank node identifiers

Hi David,

On 15 May 2012, at 21:24, David McNeil wrote:
> On today's call we got into a discussion of whether R2RML blank node identifiers must be "persistent". That is if a client could expect the same blank node identifier to be generated for a given row across separate SPARQL queries.
> 
> While I expect in practice the blank node identifiers will be persistent. I think per the spec, the user cannot assume they are. I base this conclusion on this paragraph from section 11 of the R2RML draft:
> 
> "Conforming R2RML processors MAY rename blank nodes when providing access to the output dataset. This means that client applications may see actual blank node identifiers that differ from those produced by the R2RML mapping. Client applications SHOULD NOT rely on the specific text of the blank node identifier for any purpose."
> 
> To my reading, the last sentence precludes the user from assuming that blank node identifiers are persistent.

1. It says SHOULD NOT. This doesn't preclude the assumption. Cf. RFC2119.

2. I read this differently. In the case of the Jena API, the Jena API implementation is part of the R2RML processor. The Jena API here is just another way of accessing the output dataset, just like SPARQL endpoints or RDF dumps or whatever other methods you can dream up. The client application in this case is the application that accesses the Jena API. The client app indeed SHOULD NOT rely on the blank node label. But the Jena API implementation (the R2RML processor) internally needs “persistent” blank node identifiers to fulfil the contract of the API.

Do you think this is a reasonable reading? If so, any suggestions for rewording that make it clearer?

Best,
Richard

Received on Tuesday, 15 May 2012 20:47:21 UTC