Re: Inline data

On Tue, 2012-05-01 at 09:10 +0100, 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.

+1

> 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.

Just brainstorming: another angle is to think more in terms of a verb,
saying what is being done with the bindings/data/values, like
"INCLUDE" (or "INCLUDING") or "EXTEND" or "USE" or something like that.

    -- Sandro

Received on Tuesday, 1 May 2012 12:46:00 UTC