W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2012

Re: Inline data

From: Steve Harris <steve.harris@garlik.com>
Date: Tue, 1 May 2012 14:12:05 +0100
Cc: public-rdf-dawg@w3.org
Message-Id: <62D529C5-A58E-4B15-BFE9-A5F8B154DB62@garlik.com>
To: Andy Seaborne <andy.seaborne@epimorphics.com>
On 2012-05-01, at 09:10, Andy Seaborne wrote:
> 
> 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)
> |}

Dear god no :)

Incidentally, are we going to use VALUES everywhere (assuming no-one hates it), or stick with BINDINGS when it's tacked on the end? I'm not sure if that's been made clear.

- 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, Nottingham, Notts, NG80 1ZZ
Received on Tuesday, 1 May 2012 13:12:48 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:48 GMT