- 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