Re: Syntax modifications

see some short comments below...

On Mon, 9 Aug 2004, Seaborne, Andy wrote:
>
> Proposal (this is a loose description for comment, not a formal definition):
>
> 1/ Graph "patterns" are grouped by {}

ok clear - we need grouping now - any reason why we could not use () to
group triple/graph patterns as well?

> 2/ A pattern is a list (set) of elements, interpretted as a
> conjunction of elements.
>
> 3/ Elements are:
>    + patterns
>    + triples, no parenthesises, with trailing dot to terminate/separate
>      (Not allowing N3 style ; and , for the moment).

I would not be a big fun of this N3 like syntax...can you explain why we
need a trailing dot to close the triple-patterns instead of using simpler
nested () again ?

I expect the parser could always be able to distinguish whether or not is
a triple-pattern, graph-patterns or a combination of the two - or not?

>
+ Constraints, relaxing the
separation between >      triple pattern and constrinats but retaining
>      the familiar mathematical syntax.
>      Leaves open whether

yes - it makes sense

>    + optional sub patterns
>
> 4/ Graph patterns can be combined with OR (and AND)
>
> Other:
>
> 5/ Prefixes don't have to be defined last, but can occur before use.
>     The only reason for making them first is because it is nice to have
>     SELECT/CONSTRUCT/DESCRIBE/ASK first

again - I would not be a big fun of this N3 like syntax (also FOR keyword
has been dropped it seems) - the USING clause in RDQL/BRQL as it is today
is pretty clear already I think...

>
> Examples:
>
> SELECT * WHERE { ?x ?y ?z }
> SELECT * WHERE { ?x ?y ?z . }
>    Trailing . is optional
>    WHERE is actually unnecessary for a grammar.
>
> SELECT ?name ?mbox
> PREFIX foaf: <http://xmlns.com/foaf/0.1/>
> WHERE  { ?x  foaf:name  ?name .
>          ?x  foaf:mbox  ?mbox }

or

SELECT ?name ?mbox
WHERE
	( ( ?x foaf:name ?name) ( ?x foaf:mbox ?mbox) )
USING foaf FOR <http://xmlns.com/foaf/0.1/>

>
> Could use [] for optional:
> SELECT ?name ?mbox ?shoe
> PREFIX foaf: <http://xmlns.com/foaf/0.1/>
> WHERE  { ?x foaf:name  ?name .
>          [ ?x  foaf:mbox  ?mbox .
>            ?x  foaf:shoeSize  ?shoe ]
>        }

or

SELECT ?name ?mbox ?shoe
WHERE  ( (?x foaf:name  ?name )
         [ (?x  foaf:mbox  ?mbox )
           (?x  foaf:shoeSize  ?shoe) ]
       )
USING foaf FOR <http://xmlns.com/foaf/0.1/>

in general - very good work - but I am wondering if this new syntax might
be confusing, especially to programmers familiar with SQL syntax rather
than N3/Turtle...

cheers

Alberto

Received on Friday, 27 August 2004 08:51:29 UTC