# Re: New blank node scope proposal

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Wed, 23 Jan 2013 17:16:52 +0100
Message-ID: <51000CF4.2050704@emse.fr>

```

Le 23/01/2013 16:23, Pat Hayes a écrit :
>
> On Jan 23, 2013, at 1:30 AM, Antoine Zimmermann wrote:
>
>> "This effectively treats all blank nodes as having the same meaning
>> as existentially quantified variables in the RDF graph in which
>> they occur, and which have the scope of the entire graph."
>
> Yes, I know it says that, and I wish I had never put that bloody
> sentence in there, as it was supposed to be a helpful intuitive hint,
> and it has done more damage than almost anything else. Because the
> actual scope is the whole unicverse, not that graph, if you follow
> what the equations say. This 'graph-scope' idea is what we WANTED the
> spec to mean, but it fails subtly to do that.

You're confusing people who haven't looked these things in details but
you won't be able to fool me.

The sentence is there because it translates into plain words what the
equation says:

"If E is an RDF graph then I(E) = true if [I+A'](E) = true for some
mapping A' from blank(E) to IR, otherwise I(E)= false."

The existential quantification is over the blank nodes of the graph in
consideration, namely E in the equation. You change the graph, the
quantification of the existential changes.

The very reason why we talk about introducing "scope" in concept is
because bnodes *are* scoped.

An RDF graph is the same as a FOL formula with existential variables
scoped to the conjunction of ternary predicates that the triples represent:

{(b, <p>, <o>)}

is meaning:

∃x[triple(x, <p>, <o>)]

while {(b, <p>, <o>),(b, <q>, <o>)} means:

∃x[triple(x, <p>, <o>) Λ triple(x, <p>, <o>)]

In FOL syntax, there are delimiters that indicate the scope of
variables, so it's clear up to where the existential holds. It's not
clear in RDF.

I propose to introduce "concrete graphs" to make the difference between
an arbitrary set of triples that don't necessarily have a connection
with each others, and a set of triples that one application is willing
to consider as a unity.

AZ

>>
>> and
>>
>> "Merging two graphs treats the blank nodes in each graph as being
>> existentially quantified in that graph, so that no blank node from
>> one graph is allowed to stray into the scope of the other graph's
>> surrounding quantifier. This is appropriate when the graphs come
>> from different sources and there is no justification for assuming
>> that a blank node in one refers to the same entity as any blank
>> node in the other."
>
> THis refers to MERGING, which is an artificial trick (using
> 'standardizing apart' the bnodes) invented solely to overcome the
> problem that this global-bnode issue produced. What we always had in
> mind for the graph-as-set-of-triples notion was that putting two
> graphs together would just be taking their set union. But that didn't
> work, so... and now, with Richard's trick, it will work.
>
> Pat
>
>>
>>
>> [RDF Semantics. Section 1.5.]
>>
>>
>> Le 22/01/2013 06:47, Pat Hayes a écrit :
>>>
>>> On Jan 21, 2013, at 8:10 AM, Antoine Zimmermann wrote:
>>>
>>>> You can find my proposal at:
>>>>
>>>> http://www.w3.org/2011/rdf-wg/wiki/User:Azimmerm/Blank-node-scope
>>>
>>>
>>>>
OK, let me pick up on this. Your second sentence is wrong, if it is
>>> supposed to be talking about current RDF as defined by the 2004
>>> specs:
>>>
>>> "The same blank node can appear in an infinity of RDF graphs and
>>> depending on which graph is considered, the blank node may
>>> indicate the existence of different things."
>>>
>>> In current (2004) RDF, this is not correct. Each blank node is
>>> essentially an existential variable with a *global* scope. It is
>>> not limited to the particular graph in which it occurs. That is
>>> precisely the problem, in fact.
>>>
>>> Perhaps you know this, and your wording is intended to be a
>>> re-formulation which is aimed at solving this problem, by making
>>> blank nodes back into "local" variables. If so, I would argue
>>> strongly against this proposal, as it would introduce a
>>> two-level notion of scoping. We would have 'surface' scopes for
>>> blank node identifiers, and also 'graphical' scopes for blank
>>> nodes, and they might not coincide. This is baroque, unmotivated
>>> and almost certain to lead to widespread confusion. It is also
>>> unnecessary. We (now) have a simple, clear and workable
>>> definition which assigns scopes to bnode *identifiers* (which is
>>> exactly what should happen, since identifiers are the kind of
>>> lexical items for which the notion of scope was originally
>>> invented) and which guarantees that graphs described by two
>>> different bnodeID scopes cannot share a bnode (which is exactly
>>> what is required, and what the original 2004 design was supposed
>>> to achieve, but failed to do so), and which retains the
>>> essentials of the 2004 notion of blank nodes as being simply an
>>> 'empty' category of items which participate in the set-theoretic
>>> abstract graph syntax model. This requires no change (a slight
>>> extension, but no actual change) to the 2004 syntax model, and
>>> works perfectly, so I submit that it solves all the remaining
>>> issues convetrning blank nodes, and the discussion is closed.
>>>
>>>> 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
>>>
>>> Are you here using 'b' as a bnode identifier in RDF syntax, or
>>> are you intending to indicate an actual bnode, using a
>>> meta-syntactic convention which goes beyond RDF syntax? (Do you
>>> see how awkward this gets, when we have two levels to discuss?)
>>>
>>>> , 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
>>>
>>> But you have put one bnode into two distinct graphs. This ought
>>> to be impossible, IMO. Unless you intended 'b' to be a bnode
>>> identifier, in which case the two occurrences might identify
>>> different bnodes, making your point moot. It all depends on what
>>> level you are talking at, and what scope rules you are assuming.
>>>
>>> Pat
>>>
>>>
>>>> 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.
>>>>
>>>> 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/
>>>>
>>>>
>>>
>>> ------------------------------------------------------------
>>> IHMC (850)434 8903 or (650)494 3973 40 South Alcaniz St. (850)202
>>> 4416   office Pensacola                            (850)202 4440
>>> fax FL 32502                              (850)291 0667 mobile
>>> phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>> -- 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/
>>
>
> ------------------------------------------------------------ IHMC
> (850)434 8903 or (650)494 3973 40 South Alcaniz St.
> (850)202 4416   office Pensacola                            (850)202
> 4440   fax FL 32502                              (850)291 0667
> mobile phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
>
>
>
>
>
>
>

--
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 Wednesday, 23 January 2013 16:17:31 UTC

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