- From: Paul Gearon <pgearon@revelytix.com>
- Date: Tue, 29 Mar 2011 11:08:29 -0400
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: SPARQL Working Group <public-rdf-dawg@w3.org>
Sorry everyone. With my change of affiliation, my email address was changed. Consequently, all my SPARQL emails ended up in a bucket that I didn't see until now (5 days after this thread). A lot of things came up, and so I don't miss them I want to address them in individual emails.... On Wed, Mar 23, 2011 at 5:29 PM, 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). Well, it's not, in that the first adds to an existing graph (the default graph) and the second creates a graph. Also, I'm not entirely clear on the rules with blank nodes being inserted in the INSERT. I believe that it requires new blank nodes to be created since they're coming from one graph and going to another, but I don't think that's properly explained in the doc. (It will also be a pain in a quad store). But that doesn't appear to be the issue here. > 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). Why not? If FROM is allowed to read from the web, then USING is. The only reason for the word "USING" is because "FROM" caused ambiguity problems when deleting. > """ > 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"? "This instance" refers to DELETE operations. I can try to The problem was for an operation like: DELETE { delete_pattern } FROM graph WHERE { query_pattern } We wanted query_pattern to be resolved wrt the "graph" in the FROM clause. However, the syntax here looks like you want to delete the statements "from" the graph, which is wrong. The way around it was for update operations to adopt the word USING instead. No other differences were mentioned. If I'm wrong (there *is* supposed to be a difference between USING in an update and FROM in a query) then I need to be pointed to the resolution regarding it. I will then raise it as an issue to be addressed. Again, I'm sorry that I didn't respond to this earlier. Paul
Received on Tuesday, 29 March 2011 15:09:03 UTC