- From: Ross Horne <ross.horne@gmail.com>
 - Date: Tue, 4 Dec 2018 10:43:48 +0100
 - To: Pat Hayes <phayes@ihmc.us>
 - Cc: Semantic Web <semantic-web@w3.org>
 - Message-ID: <CAHBrK_hJRYuzav42RzpYxo+WyYTFjZp9G_Rq+mBR2K=rfmYcMg@mail.gmail.com>
 
Dear Pat,
Open question: why can the scope of quantification not be the edge of the
RDF Graph
> Where is that edge? The RDF specs say that an RDF graph is a /set/ of
triples. What
> determines the ‘edge’ of a set? If you mean the document describing the
graph, then yes,
> that is a natural default assumption, I agree, but as soon as you start
taking bits of RDF from
> many sources and combining them, those boundaries get lost. And that was
the intended
> purpose of RDF, to allow information from many sources to be combined and
used together.
, what is the use case / requirement for blank nodes to be shared between
graphs?
> The issue is not so much a use case for sharing, as how to even know when
bnodes are NOT
> being shared.  For one example, many users expect to be able to use
bnodeIDs in the result
> of a query ‘outside’ the graph being queried, e.g., in subsequent
queries.
This is a convincing argument, thank you for explaining.
Since you mention queries, may I ask whether scoping should be explicit in
SPARQL as well as RDF? Let me elaborate.
I believe query
  ask { _:b :p :c  }
is not satisfied by data
  _:b :p :c
  _:b :q :d
This is due to implicit scoping at the edge of the dataset and query. Blank
node _:b is different in the data and query.
In contrast, if we permit *mobility* of scoping, (i.e., when you consume a
blank node it comes into your scope, allowing you to directly refer to it),
then we can refer to _:b in the data from a query.
To see this, suppose a program chains queries together (in this
pseudo-code, assume ?x from the first query binds ?x in the second):
select ?x where { ?x :q :d } ;
ask { ?x :p :c }
In the above, it is reasonable to assume, after the first query executes,
the second query should be satisfied. An explanation is the scope of _:b in
the data expands, encompassing the second query.
Would it be worth considering a holistic view, of blank node scoping,
taking into account the implications for SPARQL? Note the above examples
can be given a very precise semantics.
Kind regards,
Ross
Received on Tuesday, 4 December 2018 09:44:21 UTC