- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 20 Feb 2007 15:32:40 +0000
- To: SOURIPRIYA.DAS@ORACLE.COM
- CC: public-rdf-dawg@w3.org
(text version - not everyone can easily work with doc files) SOURIPRIYA.DAS@ORACLE.COM wrote: > I have attached a few review comments on rq25. Thanks. -- Souri. I looked at the syntax of GroupGraphPattern (<Ggp>, for short) and its use in the examples in the “Revision 1.13” (Date 2007/02/16, 18:06:24 hrs) version of “SPARQL Query Language for RDF” document. Here are my comments: Summary: • Based on the current grammar, <Ggp> probably can be expressed as a regular expression: <Ggp> := `{` <Bgp>? (<NonTriplesgp> ‘.’? <Bgp>?)* ‘}’ or equivalently (using some self-explanatory notations and with grammar rule [32] for GroupOrUniongp broken up for using Ggp and UNIONgp) <Ggp> := `{` <Bgp>? ( (<constraint> | <OPTIONALgp> | <UNIONgp> | <GRAPHgp> | <Ggp>) ‘.’? <Bgp>? )* ‘}’ • Separator vs. Terminator: Based on the current grammar, rules for use (or non-use) of ‘.’ are the following: o [R1] Mandatory use as a separator between triples in a <Bgp> o [R2] Must not be used as a terminator for the last triple in a <Bgp> (or as a separator between the last triple of a <Bgp> and an immediately following <NonTriplesgp>). o [R3] Optional use as a terminator for <NonTriplesgp>. • One way to fix the instances of illegal use (enumerated below) probably would be to allow use of ‘.’ optionally as a terminator for (the last triple of) a <Bgp>. o I am okay with that workaround. However, for simplicity, my preferred solution would be to require use of ‘.’ as a (mandatory) terminator for each triple (thus requiring a ‘.’ at the end of each <Bgp> as well unlike the R1 rule above used currently) and maybe also for each <NonTriplesgp> (thus requiring, unlike the optional nature of rule R3 above, a ‘.’ at the end of each <constraint>, <OPTIONALgp>, etc.). Instances of illegal use of ‘.’ in GroupGraphPatterns used in examples [NOTE: All of these instances are violations of rule R2 above]: • The example in Sec 2.1 (on page 7) uses ‘.’ as a terminator. • The example in Sec 3.2 (on page 11) uses ‘.’ as a separator between a triple and a non-triple (FILTER, in this case). • The example in Sec 3.2 (on page 11) uses ‘.’ as a terminator (for the last triple). • Both the examples in Sec 5.2 (on page 18) use ‘.’ as terminator (for the respective last triples). • The three examples in Sec 5.4 (on page 19) use ‘.’ as terminator and/or as separator between a triple and an immediately following non-triple. • Same problem with the examples in Sec 5.5 (on page 19). • Same problem with the query in Sec 6.1 (on page 21). • Same problem with the example in Sec 6.2 (on page 21). The problem exists inside the <OPTIONALgp> as well. • Same problem with the example in Sec 6.3 (on page 22). • Same problem with the example in Sec 6.4 (on page 22). • Same problem with the example in Sec 8.2.3 (on page 28). • The example in Sec 8.3.3 (on page 30) uses ‘.’ as terminator for the last triple in the first <GRAPHgp>. • The example in Sec 8.3.4 (on page 31) uses ‘.’ as separator between <Bgp> and <GRAPHgp>. • The example in Sec 10.1 (on page 35) uses ‘.’ as separator between <Bgp> and <OPTIONALgp>. • The example in Sec 10.2.3 (on page 38) uses ‘.’ as terminator for the last triple in the <Bgp>. • The example in Sec 11 (on page 41, before Sec 11.1) uses ‘.’ as a separator between <Bgp> and <constraint>. • Same problem with the examples in Sec 11.4 and Sec 11.6.
Received on Tuesday, 20 February 2007 15:32:55 UTC