- From: Jeremy Carroll <jeremy@topquadrant.com>
- Date: Tue, 14 Aug 2012 11:19:33 -0700
- To: public-rdf-dawg-comments@w3.org
- CC: Holger Knublauch <holger@topquadrant.com>
- Message-ID: <502A96B5.2040005@topquadrant.com>
To assist with my previous comments, here are some suggested textual changes. These are not intended as a further formal comment, and if they are unhelpful, please ignore them. Current draft: "Use of |BIND| ends the preceding basic graph pattern" Earlier drafts: http://www.w3.org/TR/2012/WD-sparql11-query-20120105/#bind "Use of |BIND| is a separate element of a group graph pattern and it ends any basic graph pattern." I suggest that BIND should apply to the preceding part of the group graph pattern, making the whole paragraph: "The |BIND| form allows a value to be assigned to a variable from a group graph pattern. Use of |BIND| ends the preceding group graph pattern in which the variable introduced by the |BIND| clause must not have been used. " To clarify this I suggest the following changes to the syntax - these do not change the accepted sequences, simply the parse trees - to clarify the scope of BIND as above. OLD [53] GroupGraphPattern ::= '{' ( SubSelect | GroupGraphPatternSub ) '}' [54] GroupGraphPatternSub ::= TriplesBlock? ( GraphPatternNotTriples '.'? TriplesBlock? )* [56] GraphPatternNotTriples ::= GroupOrUnionGraphPattern | OptionalGraphPattern | MinusGraphPattern | GraphGraphPattern | ServiceGraphPattern | Filter | Bind | InlineData NEW GroupGraphPattern ::= '{' ( SubSelect | GroupGraphPatternSub ) '}' GroupGraphPatternSub ::= ( GroupGraphPatternSub Bind ) ? GroupGraphPatternSubNoBind GroupGraphPatternSubNoBind ::= TriplesBlock? ( GraphPatternNotTriples '.'? TriplesBlock? )* GraphPatternNotTriples ::= GroupOrUnionGraphPattern | OptionalGraphPattern | MinusGraphPattern | GraphGraphPattern | ServiceGraphPattern | Filter | InlineData The idea, which perhaps could be formalized in the semantics, is that each Bind element as a left-sibling in the parse tree being the GroupGraphPaternSub to which it applies. I believe with these changes that some consequential changes would then be needed in the semantics - also it may be clearer to introduce a new term (better than GroupGraphPatternSub) to clarify issues like moving FILTERs is legal within a GroupGraphPatternSubNoBind but not before or after a BIND (obviously if the FILTER does not refer to the variable introduced by the BIND this point is moot). Jeremy
Received on Tuesday, 14 August 2012 18:20:03 UTC