- From: Michael Hausenblas <michael.hausenblas@deri.org>
- Date: Tue, 14 Jun 2011 12:17:01 +0100
- To: Enrico Franconi <franconi@inf.unibz.it>
- Cc: Eric Prud'hommeaux <eric@w3.org>, "ashok.malhotra@oracle.com" <ashok.malhotra@oracle.com>, "public-rdb2rdf-wg@w3.org" <public-rdb2rdf-wg@w3.org>
> In the wiki I came up explicitly with 3 alternative concrete
> wordings; please look at them.
Looked at them. I need one (1) not three (3).
> What I can not do is to solve the open technical problem for the
> representation with missing NULLs, since it is hard and complex.
That's also my understanding. Hence we can't normatively spec
something where even the scientific part is not solved.
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 14 Jun 2011, at 12:15, Enrico Franconi wrote:
> In the wiki I came up explicitly with 3 alternative concrete
> wordings; please look at them.
> What I can not do is to solve the open technical problem for the
> representation with missing NULLs, since it is hard and complex. The
> proposers of this representation should come up with an answer to
> this question, so to support their argument. Otherwise only my
> proposals can stand.
>
> On 14 Jun 2011, at 13:07, Michael Hausenblas <michael.hausenblas@deri.org
> > wrote:
>
>>
>>> It is ages I'm asking to this WG how to rebuild the correct
>>> answers with explicit NULLs from your representation
>>
>> This is, IMO, the core of the problem. You're asking rather than
>> coming up with a concrete wording for the proposal.
>>
>> Please, for the sake of getting this issue closed and meeting the
>> September deadline for LC: Enrico, can you draft a concrete wording
>> such as:
>>
>>
>> [[
>> PROPOSAL: To resolve ISSUE-42, ...
>> ]]
>>
>>
>> that we can discuss and hopefully resolve today?
>>
>> If we fail to get this done today I'm inclined to change the
>> overall timeline because we have a lot of more issues to resolve
>> and simply can not afford it to discuss one single issue (no matter
>> how important it is) till the cows come home.
>>
>> This is not a scientific beauty context. We're writing a spec, for
>> heavens sake.
>>
>> 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 14 Jun 2011, at 11:44, Enrico Franconi wrote:
>>
>>> On 13 Jun 2011, at 23:16, Eric Prud'hommeaux wrote:
>>>
>>>> There is a fundamental difference between SPARQL and SQL users in
>>>> that SQL users either prohibit a query from answering with NULLs:
>>>> SELECT name, company
>>>> ┌────────────────┐
>>>> FROM Conctacts │ name │ company │
>>>> WHERE name="Sue"
>>>> ├──────┼─────────┤
>>>> AND company IS NOT NULL
>>>> └──────┴─────────┘
>>>> or they write in some application code to skip over the NULLs,
>>>> or, pretty commonly, the UI paints an empty string and the
>>>> interface user has to guess whether it's was a NULL or a company
>>>> named "". The intent of the query in this example was clearly to
>>>> get the names of the companies which Sue represents, for wich
>>>> neither NULL nor r2rml:NULL nor "" are acceptable answers.
>>>
>>> I claim that you can filter out NULLs, exactly like you would do
>>> in SQL. On which ground do you claim that applications built on
>>> top of RDF data are different from applications built on top a RDB
>>> wrt the usage of NULLs? I don't see any evidence that there is
>>> such a radical difference to justify your non-standard way in
>>> dealing with standard NULLs.
>>>
>>>> At any rate, I was just arguing that given a tension between
>>>> putting burden on the query author to incorporate <code>FILTER (?
>>>> company != r2rml:NULL)</code> into the above query, vs. requiring
>>>> the person who wants to see the NULL to know the schema:
>>>>
>>>> ┌────────────────┐
>>>> SELECT * │ who │
>>>> company │
>>>> WHERE { ?who <Conctacts#name> "Sue"
>>>> ├──────┼─────────┤
>>>> OPTIONAL { ?who <Conctacts#company> ?company } } │ Sue │
>>>> UNBOUND │
>>>>
>>>> └──────┴─────────┘
>>>> , I *think* the rest of the WG is in favor of the the latter
>>>> (hence the claim of rough concensus).
>>>
>>> No, this doesn't work, since you would confuse the answer with a
>>> NULL value with the answer with a non existing value. So, the
>>> above query doesn't do the job you are declaring. It is ages I'm
>>> asking to this WG how to rebuild the correct answers with explicit
>>> NULLs from your representation (even with the schema). To no avail.
>>> So, please tell me explicitly how do you get the right answer in
>>> the above case, with all the details (how the schema is used, how
>>> do you distinguish the missing value with the NULL value, how this
>>> can be applied mechanically to general queries, etc).
>>>
>>>>> That's why I am saying "This mapping for NULL values is
>>>>> arbitrary since the WG has left unexplored its relationship with
>>>>> the original meaning and behaviour of NULL values in the source
>>>>> RDB."
>>>
>>> I can repeat that :-)
>>>
>>>>> What I am asking you since ages is to go through my three
>>>>> examples and see how your proposal would actually encode the
>>>>> answers, and show how this would lead to a generic recipe.
>>>
>>> This request still stands.
>>>
>>>>> My argument is that this will most likely be possible, but that
>>>>> it will be overly complex since it will necessarily require the
>>>>> ability to recognise whether a missing value is a NULL or not
>>>>> (also in the answer set!).
>>>
>>> Let's see your answer to my question in bold above.
>>>
>>>>> Clearly, by having explicit NULL values this problem is avoided.
>>>>> Moreover, you can easily switch the the absent-NULL
>>>>> representation by just filtering all the tuples with NULL values
>>>>> in one simple shot.
>>>>
>>>> In <http://www.w3.org/2001/sw/rdb2rdf/wiki/RDBNullValues#Comments_and_Proposal_by_Enrico
>>>> >, you asked how to discriminate between the direct graphs of
>>>> ┌┤R├────────┐ and ┌┤R'├┐
>>>> │ ID │ A │ │ ID │
>>>> ├────┼──────┤ ├────┤
>>>> │ 1 │ NULL │ │ 1 │
>>>> └────┴──────┘ └────┘
>>>> , but we do that by knowing the schema so the question doesn't
>>>> help us learn what is a reasonable mapping.
>>>
>>> This is too vague: "we do that by knowing the schema". As I said
>>> above, please tell how do you proceed explicitly.
>>>
>>>> I instead propose that you ask questions of the ┤Conctacts├
>>>> database above and show how, even knowing the schema, the direct
>>>> graph doesn't give you reallistic access to information.
>>>> Remember, this isn't a database interchance language, but instead
>>>> a way to give RDF users an useful view of relational data.
>>>
>>> I don't understand this point :-(
>>>
>>> cheers
>>> --e.
>>>
>>
Received on Tuesday, 14 June 2011 11:17:30 UTC