- From: Enrico Franconi <franconi@inf.unibz.it>
- Date: Tue, 14 Jun 2011 16:58:10 +0200
- To: Eric Prud'hommeaux <eric@w3.org>
- Cc: "ashok.malhotra@oracle.com" <ashok.malhotra@oracle.com>, "public-rdb2rdf-wg@w3.org" <public-rdb2rdf-wg@w3.org>
On 14 Jun 2011, at 15:19, Eric Prud'hommeaux <eric@w3.org> wrote:
> Not making assertions *is* the standard RDF way of dealing with missing information. There is no rdf:NULL.
I guess we all know that.
> We don't know or care about the difference between NULL and a non-existent value
You don't care, but in SQL there is a huge difference. As a matter of fact in SQL you can model both and they would behave in different ways. And the data we are talking about does come from SQL RDBs.
> (nor does SQL, for that matter).
FALSE. I already argued that SQL can represent both absence of information (in the same way as your DM: new pseudo-binary property plus a foreign key as the rsf:type) and NULL values with their peculiar distinct semantics and behaviour.
>
> Given a relation R with a attributes, compose a query:
> "SELECT " + ("?" + a₁) … + ("?" + aₐ)
> + "WHERE { _:s a <" + R + ">"
> + " ; <" + R + "#" + a₁ + "> ?" + a₁
> + " ; <" + R + "#" + aₐ + "> ?" + aₐ
> + " }"
>
> Conctacts Example:
> Table: SPARQL Query: Result:
> ┌┤Contacts├──────┐ SELECT ?name ?company ┌────────────────┐
> │ name │ company │ WHERE { _:s a <Contacts> │ who │ company │
> ├──────┼─────────┤ ; <Contacts#name> ?name ├──────┼─────────┤
> │ Bob │ BobCo │ ; <Contacts#company ?company │ Bob │ BobCo │
> │ Sue │ NULL │ } │ Sue │ UNBOUND │
> └──────┴─────────┘ └──────┴─────────┘
>
> No information is lost. NULL is no longer spelled "NULL", but instead as a lack of a binding. Applications using SPARQL interpret this lack of a binding the same way applications using SQL interpret NULL.
As I said several times, this confuses the presence of a NULL value with the absence of any value. So this can not be a general solution.
--e.
Received on Tuesday, 14 June 2011 14:58:55 UTC