- From: Alexandre Bertails <bertails@w3.org>
- Date: Wed, 18 May 2011 16:09:03 +0200
- To: Enrico Franconi <franconi@inf.unibz.it>
- Cc: Michael Hausenblas <michael.hausenblas@deri.org>, Richard Cyganiak <richard@cyganiak.de>, Ivan Herman <ivan@w3.org>, Pat Hayes <phayes@ihmc.us>, W3C RDB2RDF <public-rdb2rdf-wg@w3.org>
On Wed, 2011-05-18 at 15:56 +0200, Enrico Franconi wrote: > I'll try to be there. > But as a member of the group I'll raise a formal objection, then :-) Please provide a use-case and a proposal as well in that case. I still don't see the problem. Alexandre. > I'd like not to repeat the mistake of RDF to postpone basic issues by taking decisions that - when changed in the future - will NOT be backward compatible, generating chaos among the practitioners. > --e. > > On 18 May 2011, at 15:50, Michael Hausenblas wrote: > > > > > Enrico, > > > >> What I am saying is that having a RDF2RDF mapping without telling why and how to use it sounds to me bizarre and useless. > > > > As it seems that you have a strong opinion on this matter I invite you to join us next week at the telecon. My gut feeling is that some 90% of the active WG members seem to agree to go for the option to not produce a triple at all. > > > > Would you be available next Tuesday? > > > > Cheers, > > Michael > > -- > > 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 > > http://linkeddata.deri.ie/ > > http://sw-app.org/about.html > > > > On 18 May 2011, at 14:41, Enrico Franconi wrote: > > > >> On 18 May 2011, at 15:31, Alexandre Bertails wrote: > >> > >>> Very quickly: RDB is not SQL, it's the subset of SQL called DDL, > >>> concerning the data. > >>> > >>> We don't deal with SQL queries at all. > >> > >> I don't get it. What can you do with the data you have translated into RDF? Does it live in solitude, or should you give at least a hint to the users on how to use it? > >> If you choose to deal with NULL values, then you have to take a stance on this. Otherwise just say that you don't deal with NULL values. > >> > >>> The reverse mapping is about rewriting SPARQL to SQL so that you target > >>> the Direct Graph resulting from the Direct Mapping. > >> > >> Uh? Why is this a "reverse mapping"? > >> > >> What I am saying is that having a RDF2RDF mapping without telling why and how to use it sounds to me bizarre and useless. > >> > >> cheers > >> --e. > >> > >>> > >>> Alexandre. > >>> > >>> On Wed, 2011-05-18 at 15:20 +0200, 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 14:10:48 UTC