- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 25 Sep 2012 11:39:49 +0100
- To: public-rdf-dawg@w3.org
On 25/09/12 10:02, Polleres, Axel wrote: > 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. > / > "SPARQL Request String" is a formally defined piece of terminology to cover update and query. "refer" edit done. > 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. We are talking about syntax not execution semantics as in 4.2.3 which is about template substitution. > 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) why? Document-scope is a clear and systematic policy. It is per parser run (the grammar defines requests, not operations). Andy > > 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 10:41:32 UTC