- From: Alberto Reggiori <alberto@asemantics.com>
 - Date: Fri, 27 Aug 2004 01:39:40 -0700 (PDT)
 - To: "Seaborne, Andy" <andy.seaborne@hp.com>
 - cc: public-rdf-dawg@w3.org
 
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