- 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