- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Tue, 01 May 2012 09:10:52 +0100
- To: public-rdf-dawg@w3.org
On 30/04/12 18:02, Steve Harris wrote: > On 30 Apr 2012, at 13:27, Andy Seaborne wrote: > >> >> >> On 30/04/12 13:12, Eric Prud'hommeaux wrote: >> >>> This seems like a balance between consistency and convenience. It's >>> grammatically distinguishable in LL/LALR(1) with this patch: >>> >>> -[29] DataBlock ::= Var* '{' ( '(' DataBlockValue* ')' | NIL )* '}' >>> +[29] DataBlock ::= '(' Var* ')' '{' ( '(' DataBlockValue* ')' | NIL )* '}' >>> | Var '{' DataBlockValue* '}' >>> >>> IMO, it actually adds some consistency by sticking parens around the >>> var list. >> >> >> Rest assured that the worked example is also a working example! I added the feature as an extension to ARQ and it parses OK (including for the GraphPatternNotTriples which is the more senstive-to-change area). >> >> (Speculative thoughts from here) >> >>> One problem with "DATA" is that SPARQL's data is RDF triples, not >>> variable bindings. Practically, we may some day want to add premises >>> like: >> >> Using the FROM clause would seem good here: >> >>> DATA { :Fido a :Dog } >>> SELECT ?mammal { ?mammal a :Mammal } >> >> SELECT ?mammal { ?mammal a :Mammal } >> FROM DATA { :Fido a :Dog } >> >> or >> >> SELECT ?mammal { ?mammal a :Mammal } >> FROM { :Fido a :Dog } > > I agree with Eric, I think DATA is a bad choice of word here. > > I prefer BINDINGS to DATA - BINDINGS is more similar to BIND () than it is to DATA { … }, which should help people trying to learn. > > If we want to avoid strings starting lexically with BIND, then maybe VALUES? À la SQL. VALUES works for me. Just for completeness, we could use syntax and splash out [*] on new delimiter tokens e.g. "{|" "|}" {| ?x <a> <b> <c> |} {| (?x ?y) (<a> 123) (<b> 456) (<c> 789) |} Andy [*] Sorry about that - to say it's raining here at the moment is understatement. > > - Steve >
Received on Tuesday, 1 May 2012 08:11:21 UTC