Re: Q: ISSUE-41 bNode semantics


We're doing SPARQL 1.0 here in RDB2RDF land, so all the worries re  
aggregation and updates are moot. Does this change your proposal?

Dr. Michael Hausenblas, Research Fellow
LiDRC - Linked Data Research Centre
DERI - Digital Enterprise Research Institute
NUIG - National University of Ireland, Galway
Ireland, Europe
Tel. +353 91 495730

On 18 May 2011, at 14:20, Enrico Franconi wrote:

> On 18 May 2011, at 13:28, Richard Cyganiak wrote:
>> So unless someone (Ted? Enrico?) can propose a better alternative,  
>> I'm still in favour of simply not producing triples for NULLs.
> Please let me note first that my arguments are not about "what a  
> NULL value possibly does mean among various possibilities", but they  
> are about "what a NULL value normatively means in the SQL standard".
> From a meaningful translation of a RDB in RDF, we should be able  
> also to understand the translation of operations (e.g., SQL queries  
> or updates) over the original data in, say, SPARQL over the  
> translated data. I am not interested in the reverse mapping, but of  
> course I'm interested in how to use correctly the data.
> If the original RDB data does not contain nulls, and the direct  
> mapping is employed, then it is sort of obvious how to translate the  
> SQL operations into SPARQL operations: basically it goes through  
> reification of the relational signature into an object model.
> However, when NULL values are present, then operations over data  
> (queries, updates) became less obvious.
> Examples:
> (a) projection over attributes containing NULL values should return  
> the NULL values, different from not returning anything;
> (b) a (self-)join fails for tuples with a NULL value in the join  
> attribute;
> (c) aggregation, updates, etc.
> By not translating NULL values, you fail (a).
> By translating NULL values, you fail (b).
> (c) is even more complex.
> How does SQL solve the matter? By considering a NULL value as a  
> constant, and then tweaking the query answering mechanism letting  
> the join fail whenever this constant is found (see the "three valued  
> semantics").
> To mimic this in RDF2RDF, my suggestion would be to translate a NULL  
> value as a special constant from a special datatype, and then we  
> should provide precise directives on how a query language should  
> deal with this. This is how SQL normatively defines the NULL values.  
> Note that this may not be a trivial exercise, due to the complexity  
> of the new SPARQL language, which I understand contains  
> aggregations :-(
> cheers
> --e.

Received on Wednesday, 18 May 2011 13:23:47 UTC