Re: Blank Nodes Re: Toward easier RDF: a proposal

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