- 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