# Re: New blank node scope proposal

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Mon, 21 Jan 2013 17:03:04 +0100
Message-ID: <50FD66B8.4020401@emse.fr>
To: David Wood <david@3roundstones.com>
CC: RDF WG <public-rdf-wg@w3.org>
```

Le 21/01/2013 16:23, David Wood a écrit :
>
> On Jan 21, 2013, at 09:10, Antoine
> Zimmermann<antoine.zimmermann@emse.fr>  wrote:
>
>> You can find my proposal at:
>>
>> http://www.w3.org/2011/rdf-wg/wiki/User:Azimmerm/Blank-node-scope
>>
>> I thought about adding some things, making the definition of scope
>> more explicit, but that will do for now to start the discussion.
>> The idea is simply translating Pat's definition of a scope: it is a
>> region in which variables have a certain meaning. In RDF, a
>> "region" is a set of triples. That's what I do, I assign a set of
>> triples to scopes. It leads to definig the concept of concrete
>> graph, which is a set of triples "in a scope", formally a pair
>> (scope,graph) which indicates that, according to that scope, the
>> same blank node in any of the triples in the graph is assumed to
>> indicate the existence of the same thing. The same blank node in a
>> different scope would indicate the existence of a different thing.
>>
>> For instance, given a bnode b, consider the two triples:
>>
>> (b, owl:sameAs, 1) (b, owl:sameAs, 2)
>>
>> the concrete graph:
>>
>> (s1, {(b, owl:sameAs, 1)})
>>
>> indicates that there is something that is number one.
>>
>> (s2, {(b, owl:sameAs, 2)})
>>
>> indicates that there is something that is number two. These two
>> graphs are both tautologically true, in OWL semantics. However,
>>
>> (s3, {(b, owl:sameAs, 1),(b, owl:sameAs, 2)})
>>
>> indicates the existence of something that is 1 and 2 at the same
>> time, which is necessarily false.
>
>
> In OWL, yes.  It seems to be perfectly valid in RDF.
>
> It seems to me that a better example for our purposes would avoid
> making logical claims that are beyond the scope of RDF.

Ok, so consider the triples:

(<x>, <birthDay>, b)
(b, rdf:type, xsd:dateTime)
(<birthday>, rdfs:range, xsd:date)

Then:

(s1, {(<x>, <birthDay>, b),(b, rdf:type, xsd:dateTime)})

no problem, there exists a dateTime that is the birthday of <x>.

And:

(s2, {(<x>, <birthDay>, b),(<birthday>, rdfs:range, xsd:date)}

no problem, there exists a birthday, and it is a date.

And:

(s3, {(<x>, <birthDay>, b),(b, rdf:type, xsd:dateTime),(<birthday>,
rdfs:range, xsd:date)})

not good: there exists a birthday which is a date, but a birthday must
be a dateTime. Inconsistency.

Anyway, it is not necessary to talk about inconsistency in a section
that is about scope. I just made this example for the WG to show the
kind of things that could be said, given the proposal.

What needs to be retained is that it's the scope that tells the extent
of the existential quantification, not the bnode itself.

AZ

>
>
>
>>
>> I also indicate that the scope of concrete graphs must be
>> determined by the application that consumes the data, although
>> publishers have conventional ways of indicating the scope, e.g., by
>> putting the triples in the same file or in between the curly
>> brackets in TriG syntax. However, several files may have the same
>> scope, e.g., if a single graph is too large to be conveniently
>> published as one file. -- Antoine Zimmermann ISCOD / LSTI -
>> Institut Henri Fayol École Nationale Supérieure des Mines de
>> Saint-Étienne 158 cours Fauriel 42023 Saint-Étienne Cedex 2 France
>> Tél:+33(0)4 77 42 66 03 Fax:+33(0)4 77 42 66 66
>> http://zimmer.aprilfoolsreview.com/
>>
>

--
Antoine Zimmermann
ISCOD / LSTI - Institut Henri Fayol
École Nationale Supérieure des Mines de Saint-Étienne
158 cours Fauriel
42023 Saint-Étienne Cedex 2
France
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
http://zimmer.aprilfoolsreview.com/
```
Received on Monday, 21 January 2013 16:03:37 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 22:02:09 UTC