- From: Steve Harris <steve.harris@garlik.com>
- Date: Fri, 24 Aug 2012 14:00:36 +0100
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: SPARQL Working Group <public-rdf-dawg@w3.org>
OK, but what was the strange behaviour of the LC1-2 design which caused us to change it in the first place? Sorry if I missed some discussion, but I imagine it wasn't done on a whim… - Steve On 24 Aug 2012, at 11:47, Andy Seaborne wrote: > This completes ACTION-673. > > The design has been reverted to that of 1LC and 2LC > > 1/ Informative text changed. > 2/ Variable Scope section has a paragraph specifically on BIND > 3/ Algebra translation translation reverts to previous text (and special on BIND removed) > > No execution tests are invalidated. > > Reverting the scope rules affects syntax tests: > syntax-BINDscope7.rq > syntax-BINDscope8.rq > which are now bad syntax. > > > A few notes about the BIND fix: > > This is illegal under both designs: > > SELECT * > { > ?s ?p ?o > BIND("foo" AS ?o) > } > > This is illegal on the reverted design: > > SELECT * { > ?s ?p ?o > OPTIONAL{?s ?p2 ?o2} > BIND(5 AS ?o2) > } > > > And note adding {} (which are not a subquery with project) does not make any difference: > > SELECT * > { > { ?s ?p ?o } > BIND("foo" AS ?o) # Bad > } > > because it is still a previous element of a group so the accumulated scope of that element shows up in the group BIND is in - i.e. it includes all of { ?s ?p ?o } > > which makes sense because we want BIND to apply a previous element like: > > SELECT * { > { ?s ?p ?o } UNION {?s ?p2 ?o2} > BIND(5 AS ?o) # Bad > } > > > Legal: masked > > SELECT * > { > { SELECT ?s { ?s ?p ?o } } > BIND("foo" AS ?o) # GOOD > } > > Legal: scope rules do not extend outwards of {} in which BIND is used. > > SELECT * > { > { ?s ?p ?o } > UNION > { BIND("foo" AS ?o) } # GOOD > } > -- Steve Harris, CTO Garlik, a part of Experian 1-3 Halford Road, Richmond, TW10 6AW, UK +44 20 8439 8203 http://www.garlik.com/ Registered in England and Wales 653331 VAT # 887 1335 93 Registered office: Landmark House, Experian Way, NG2 Business Park, Nottingham, Nottinghamshire, England NG80 1ZZ
Received on Friday, 24 August 2012 13:01:13 UTC