- From: Steve Harris <steve.harris@garlik.com>
- Date: Mon, 30 Apr 2012 18:02:37 +0100
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: Eric Prud'hommeaux <eric@w3.org>, SPARQL Working Group <public-rdf-dawg@w3.org>
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.
- Steve
--
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 Monday, 30 April 2012 17:03:14 UTC