- From: Polleres, Axel <axel.polleres@siemens.com>
- Date: Tue, 25 Sep 2012 11:02:56 +0200
- To: "andy.seaborne@epimorphics.com" <andy.seaborne@epimorphics.com>, "public-rdf-dawg@w3.org" <public-rdf-dawg@w3.org>
Hi Andy, Working on my part... Some remarks: 1) Think I spotted a small typo (missing "refer") in http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#grammarBNodeLabels and have some more clarifying suggestions there s/ Blank node labels are scoped to the SPARQL Request String in which they occur. Use of the same blank node label in a request to the same blank node. Fresh blank nodes are generated for each request; blank nodes can not be referenced by label across requests. / Blank node labels are scoped to the SPARQL *query or update operation string* in which they occur. *Different* use*s* of the same blank node label in a query or update operation *refer* to the same blank node. Fresh blank nodes are generated for each request; blank nodes can not be referenced by label across requests. / The reason for not speaking about a *request* but rather an *update operation* is that Given the semantics of updates http://www.w3.org/TR/sparql11-update/#def_datasetQuadPattern The skolemization, i.e. blank node creation is "per operation", not "per request", thus, the same blank node used across different operations within a single request is not necessarily the same. That is: INSERT DATA {GRAPH <g1> {_:b1 :p :o } GRAPH <g2> {_:b1 :p :o } } (which inserts the same bnode in two graphs) is IMO *not* the same as INSERT DATA {GRAPH <g1> {_:b1 :p :o } } ; INSERT DATA {GRAPH <g2> {_:b1 :p :o } } (which inserts two different bnodes into the two graphs) Axel > -----Original Message----- > From: Andy Seaborne [mailto:andy.seaborne@epimorphics.com] > Sent: Freitag, 21. September 2012 12:00 > To: public-rdf-dawg@w3.org > Subject: Re: FW: Further comment on SPARQL 1.1 Test Cases > > Parts relating to editing of rq25 done. > > Andy > > On 20/09/12 09:27, Andy Seaborne wrote: > > > >> Summarizing, unless anybody disagrees, I suggest the following: > >> > >> * adapt editorial suggestion 1) as above in Update > > (not done - in the update doc) > > >> * amend remark 10 in > >> http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#sparqlGrammar > >> as suggested above in 2) > > > > Yes > > Done > > (longer form used that mentions query and update) > > > > >> * Reply to Rob that shared blank nodes across > QuadPatterns within > >> the same insert are allowed and > >> behave as per test case basic-update/manifest#insert-05a > > > > Yes > > (This needs to be done.) > > > > >> * Optionally, we could add a variant of > >> basic-update/manifest#insert-05a to the test > >> suite that explicitly covers Rob's example. > > > > OK. > > But we than need to let everyone that has submitted test > results about > > the change. > > > > > > > > I think adding a brief note on id scoping is in order as > well: Expand > > 19.6 with > > > > """ > > Blank node labels are scoped to the request in which they occur. > > Use of the the same label referrers to the same blank node. Blank > > nodes and fresh blank nodes are generatedA blank label can > be used for > > each request; blank nodes can not be referenced by label across > > documents (requests) > > > > Additionally, the same blank node can not be used in two different > > basic graph patterns in a SPARQL Query or a SPARQL Update > pattern (the > > WHERE clause). > > > > The same blank node can occur in different QuadData and QuadPattern > > clauses. > > """ > > Done - with link as suggested by Axel. > > > > > Andy > > > >> > >> Best, > >> Axel > >> > >> > >> 1. > >> > http://lists.w3.org/Archives/Public/public-rdf-dawg/2012AprJun/0163.h > >> tml > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> ________________________________ > >> > >> From: Rob Vesse [mailto:rvesse@dotnetrdf.org] > >> Sent: Mittwoch, 19. September 2012 20:03 > >> To: Polleres, Axel > >> Cc: public-rdf-dawg-comments@w3.org > >> Subject: Re: Further comment on SPARQL 1.1 Test Cases > >> > >> > >> Yes of course you can forward to the list, I will CC this > to the list > >> myself > >> > >> Rob > >> > >> From: "Polleres, Axel" <axel.polleres@siemens.com> > >> Date: Wednesday, September 19, 2012 4:39 AM > >> To: Rob Vesse <rvesse@dotnetrdf.org> > >> Subject: RE: Further comment on SPARQL 1.1 Test Cases > >> > >> > >> > >> Hi Rob, > >> > >> I realiszed that I sent this to you only offlist. > Hope it is > >> ok for you if I fwd your suggestions with the WG list? > >> > >> thanks, > >> Axel > >> > >> > >> ________________________________ > >> > >> From: Rob Vesse [mailto:rvesse@dotnetrdf.org] > >> Sent: Dienstag, 18. September 2012 18:05 > >> To: Polleres, Axel > >> Subject: Re: Further comment on SPARQL 1.1 Test > >> Cases > >> > >> > >> Hi Axel > >> > >> Perhaps if the group were to amending the > following > >> text from 3.1.1 INSERT DATA > >> > >> Variables in QuadDatas are disallowed in > INSERT DATA > >> requests (see Notes 8 in the grammar > >> <http://www.w3.org/TR/sparql11-query/#sparqlGrammar> ). > That is, the > >> INSERT DATA statement only allows to insert ground triples. Blank > >> nodes in QuadDatas are assumed to be disjoint from the > blank nodes in > >> the Graph Store, i.e., will be inserted with "fresh" blank nodes. > >> > >> > >> And add additional text something like > the following: > >> > >> > >> Per Note 10 in the grammar blank node identifiers > >> may be reused across graph blocks in QuadData but users > should note > >> that distinct fresh blank nodes will be generated for each > usage in > >> each block. > >> > >> > >> That's a little clunky but I'm sure the > WG can come > >> up with something a little more flowing that gets the > clarification > >> across, it's primarily just a case of referring back to > that note in > >> the main query document. > >> > >> > >> Thanks, > >> > >> Rob > >> > >> From: "Polleres, Axel" > >> <axel.polleres@siemens.com> > >> Date: Tuesday, September 18, 2012 7:48 AM > >> To: Rob Vesse <rvesse@dotnetrdf.org> > >> Subject: RE: Further comment on SPARQL 1.1 Test > >> Cases > >> > >> > >> > >> Hi Rob, > >> > >> Would you have a specific editorial > >> suggestion for a respective explaining text which we could > add to the > >> Update document? > >> > >> Thanks, > >> Axel > >> > >> > >> > >> ________________________________ > >> > >> From: Rob Vesse > >> [mailto:rvesse@dotnetrdf.org] > >> Sent: Freitag, 14. > September 2012 17:46 > >> To: Polleres, Axel; > >> public-rdf-dawg-comments@w3.org > >> Subject: Re: Further comment on > >> SPARQL 1.1 Test Cases > >> > >> > >> Hi Axel > >> > >> Yes this answers my specific > >> question but I still think it may be worth the group adding some > >> clarifying text to the specification to make the distinction clear > >> > >> Rob > >> > >> > From: > >> "Polleres, Axel" <axel.polleres@siemens.com> > >> Date: Thursday, September 13, 2012 > >> 11:01 PM > >> To: Rob Vesse > >> <rvesse@dotnetrdf.org>, "public-rdf-dawg-comments@w3.org" > <public-rdf-dawg-comments@w3.org> > >> Subject: RE: Further comment on > >> SPARQL 1.1 Test Cases > >> > >> > >> > >> Hi Rob, > >> > >> (note that this is not a > >> formal reply, but just quickly:) > >> > >> > 2 - The > restriction does > >> not apply to updates > >> > >> holds. > >> > >> SPARQL1.0 forbade (and > >> SPARQL1.1 still forbids this blank nodes to be shared > across BGPs, cf. > >> > >> http://www.w3.org/TR/sparql11-query/#grammarBNodeLabels > >> > >> The group didn't see a > >> reason to put this restriction on QuadPatterns in the head of > >> DELETE/INSERT statements in Update (which are different > from BGPs in the WHERE clause). > >> > >> Hope this > clarifies matters, > >> pleases let us know if this answers your request or > whether you still > >> expect a formal group reply, > >> > >> Axel > >> > >> > >> > >> > >> > >> ________________________________ > >> > >> From: Rob Vesse > >> [mailto:rvesse@dotnetrdf.org] > >> Sent: Freitag, > 14. September > >> 2012 01:39 > >> To: > >> public-rdf-dawg-comments@w3.org > >> Subject: Further > comment on > >> SPARQL 1.1 Test Cases > >> > >> > >> I am working > towards getting > >> dotNetRDF back to as close to 100% compliance with the > current state > >> of the SPARQL 1.1 Query and Update specifications as possible and > >> have run into one test case which is confusing to me > because it seems > >> as odd with SPARQL 1.0 behavior. > >> > >> This is > syntax-update-53.ru: > >> > >> > >> PREFIX : > >> <http://www.example.org/> > >> INSERT DATA { > >> GRAPH<g1> { > >> _:b1 :p :o } > >> GRAPH<g2> { > >> _:b1 :p :o } > >> } > >> Currently my > implementation > >> rejects this on the grounds that the same blank node is reused in > >> different graph patterns. It was my understanding that the 1.0 > >> specification forbade this and there are in fact a > selection of 1.0 > >> tests that specifically check that a parser rejects such queries. > >> So I assume one of three > >> things must be true: > >> 1 - This restriction has > >> been removed in SPARQL 1.1 (if so where does the spec state this?) > >> 2 - The > restriction does not > >> apply to updates > >> 3 - The test case > is incorrect > >> I would appreciate some > >> feedback on this specific test case but also that the > working group > >> would please make sure the test suite is all up to date > and accurate > >> (sorry to complain yet about this yet again but it really makes it > >> hard to check an implementation if you have to check for > each failing > >> test whether the test case is actually correct) > >> Rob > >> > >> > >> > > > >
Received on Tuesday, 25 September 2012 09:05:48 UTC