Re: Q: ISSUE-41 bNode semantics

On 18 May 2011, at 16:05, Enrico Franconi wrote:
> If this is the attitude of the majority of the group, I will then request that the mapping explicitly does not deal with RDBs having NULL values, and that will produce results incompatible with the RDB semantics for NULL values otherwise. If you do not say this explicitly, then this group will produce a standard that will not be backward compatible whenever in the future you will have to deal with NULL values.
> My opinion is that we have to consider NULL values, since I barely know real world RDBs without NULL values.

I propose to resolve the issue by adding text like this to the direct mapping, close to the point where the behaviour of null-valued columns is specified.:

“Note: Null values in relational databases can be used to express different notions, including the absence of a value, or the notion that a value exists but is unknown. The semantics of RDF offers no construct that adequately covers this. Therefore, the direct mapping does not assert a triple for a null value. This comes close in intuition, but not the same exact semantics.”

> I don't understand on which grounds you claim that this can not be done - at least in a simplified context.

A NULL in the MANAGER column can mean that the person has no manager (she's the CEO). You cannot express the fact that a person has no manager in RDF because RDF semantics does not have negation. But the NULL could also mean that the person's manager is unknown (it's a CRM database and the salesperson didn't ask her.) RDF can express that -- use a blank node. But the direct mapping doesn't know which NULL semantics is intended in a given database. Therefore, it's impossible to accurately express SQL's NULL in RDF; you either need additional out-of-band information (like an R2RML mapping specified by someone who knows the NULL semantics used in the given schema); or you need to change the semantics of RDF and SPARQL.

> I strongly disagree on your statement on CWA and 3-valued logic; indeed relational algebra does deal with SQL NULLs by introducing the is-not-null predicate.

I'll respond when you've made a concrete proposal.

Cheers,
Richard

Received on Wednesday, 18 May 2011 18:33:37 UTC