Re: Update comment

On 3/23/2011 6:14 PM, Andy Seaborne wrote:
> On 23/03/11 21:53, Lee Feigenbaum wrote:
>> The SPARQL query spec only specifies an indirect relationship between
>> graph name and contents for FROM and FROM NAMED, right?. USING should
>> be the same thing -- I don't think I understand the problem?
>>
>> Lee
>
> It's not the indirect relationship involved FROM NAMED (query sec
> 13.2.2). Let's just talk about FROM.

OK. I still think there's either a misunderstanding somewhere or just a 
different worldview, because I still have trouble coming to the same 
conclusion you are coming to.

My understanding is that the SPARQL query spec (particularly 
http://www.w3.org/TR/rdf-sparql-query/#unnamedGraph) is silent about the 
proper way to get at the contents of the graph specified in a FROM 
clause. The text says:

"the graphs obtained from representations of the resources identified by 
the given IRIs"

I've always assumed that this is purposefully underspecified, and that 
it is implementation-defined as to how a SPARQL processor decides what 
graph is meant by g in a "FROM g" clause. (This is why, for instance, 
it's fine in some systems to do "FROM <tag:foo>".)

> The problem is that FROM typically cause a graph to be read form the web
> (yes - not in Anzo or Mulgara, but that's unusual).

I don't really think it matters what is usual or unusual, just that 
according to the spec it's implementation-defined as to where the graph 
comes from.

> The update spec says USING is identical to FROM (it uses the word
> "identical").

Right -- as in, it's identical as far as the spec concerned, which means 
it too is implementation-defined. The spec doesn't say (nor would it 
really have license to say) that a processor must use the same algorithm 
for figuring out the triples in g via USING as it does via FROM, does it?

> So a reasonable expectation of an engine that reads from the web is that
> USING does as well. We added USING so the graph can be picked from the
> graph store so its not identical in such a system.

I thought we just added USING to have a way to assemble a specific RDF 
dataset. I assumed that some stores that pick graphs off the Web would 
continue to do so for USING/USING NAMED. Why wouldn't they?

> And the text goes onto indirectly imply this as well by talking about
> WITH which does mean a graph in the store.
>
> Earlier:
> "The WITH uri defines the graph"...
> would be better as
> "The WITH uri defines the graph in the graph store "...

Agree.

All that said, I'm not exactly sure where my our understandings are 
diverging, but do you have suggested alternate text that would address 
your concerns?

Lee


> Andy
>
>
>>
>>
>> On 3/23/11, Andy Seaborne<andy.seaborne@epimorphics.com> wrote:
>>> A Fuseki user found the text below and assumed
>>>
>>> INSERT
>>> {<http://rdf.freebase.com/ns/en.miles_davis> ?p ?o }
>>> USING<http://rdf.freebase.com/ns/en.miles_davis>
>>> WHERE
>>> {<http://rdf.freebase.com/ns/en.miles_davis> ?p ?o }
>>>
>>> was like
>>>
>>>
>>> CONSTRUCT
>>> {<http://rdf.freebase.com/ns/en.miles_davis> ?p ?o }
>>> FROM<http://rdf.freebase.com/ns/en.miles_davis>
>>> WHERE
>>> {<http://rdf.freebase.com/ns/en.miles_davis> ?p ?o }
>>>
>>> which it isn't (I hope).
>>>
>>>
>>> 3.1.3 DELETE/INSERT
>>> """
>>> The USING<uri> and USING NAMED<uri> clauses affect the graphs and
>>> named graphs used in the WHERE clause. This is identical manner to how
>>> FROM<uri> and FROM NAMED<uri> clauses affect the graphs and named
>>> graphs in a SPARQL SELECT query.
>>> """
>>>
>>> In most systems (not all) FROM reads a graph from the web and makes it
>>> part of the default graph. It's LOAD.
>>>
>>> (Yes, *a few* systems pick their FROM out of the dataset)
>>>
>>> Doesn't USING select one or more graphs out of the graph store and use
>>> that for default graph. Reading from the web is not allowed (I hope).
>>>
>>> """
>>> The use of USING in this instance is to avoid possible ambiguity of
>>> where statements being DELETEd from. If a USING clause appears, then
>>> this will override any effect that WITH may have on the WHERE clause,
>>> and only the WHERE clause.
>>> """
>>>
>>> What's "this instance"?
>>>
>>> Andy
>>>
>>>
>

Received on Wednesday, 23 March 2011 23:31:26 UTC