- From: Tom Adams <tom@tucanatech.com>
- Date: Tue, 30 Nov 2004 10:27:08 -0500
- To: DAWG list <public-rdf-dawg@w3.org>
From the comments list... Resent-From: public-rdf-dawg-comments@w3.org From: Tim Berners-Lee <timbl@w3.org> Date: 29 November 2004 3:36:36 PM To: public-rdf-dawg-comments@w3.org Subject: SPARQL: graph syntax should be N3 subset Reading the 2004/10/13 draft of SPARQL. The grammar for SPARQL frequently involves graph patterns. These should use the N3 grammar, specifically a subset at a level to the subset known as Turtle. There advantages to the languages overlapping. - Cuts the learning curve for people learning SPARQL and N3. - Allows code sharing for those implementing both languages - Allows data to be searched for to be pasted into a query. - Allows one to create some example data, view it as N3, and then paste it into the 'construct' clause, replacing a few values with variables. N3 is a very suitable syntax for this: - N3 has commonly used subsets Turtle and NTriples which are widely deployed - N3 is a syntax which meets exactly the same goals as SPARQL, in being concise and human-friendly representation of a graph with variables; - N3 has been used in the SPARQL document itself for readability for the data. - N3 has evolved in response to community needs in the RDF Interest Group and SW Interest Group. N3 has come a long way since it started as a triples language: - The comma and semicolon were added very early on a shortcuts making both reading and writing easier when subject [and predicate] are repeated. While it is true that SPARQL's current individual triples form is simpler, I strongly believe that the users would tired of it once they become familiar with it. (Similarly, the list construct for collections makes it possible to actually use lists in practice, where elaborations in terms of rdf:first and rdf:rest are impractically cumbersome.) - The grammar of the language is now defined in a context-free grammar in RDF itself. - Much of the actual nitty-gritty questions about the language involved details of tokenizing, sets of characters allowed for identifiers, and escaping. The hassle comes from coordinating the XML, and N3 at the NTriples, Turtle and N3 levels, and all the parsers involved. To have to add another randomly different language to this mix will make it more difficult. - The only significant change which has been proposed is to add syntax for unordered sets similar to that for ordered collections. This is a strong suggestion. I believe that the community will be best served in making this change, and doing so as soon as possible. It may be that at the same time we should plan for the standardization of N3 itself, with spcific view to keeping Ntriples Turtle SqarQL and N3 full in sync. Tim Berners-Lee ___________________________________________ PS: If this is done, the N3 syntax could be extended to include the keyword-style which the group seems to prefer for SPARQL. Assuming an N3 semantics for SPARQL exists, then the sparql keywords could be deemed to add extra syntactic shortcuts to the language. @keywords select, from, where, prefix, option. prefix soc: <whatever>. select ?x, ?y, ?z from <mydata.rdf> where ?x a soc:Person; phone:number "+1 781 555 1212"; fam:sister ?y. ?y phone:number ?z. Making SPARQL a subset of N3 would allow a SPARQL query to be quoted in an N3 document, which would allow it to be carried as a payload in more complex things, which might for example provide extra metadata about a query.
Received on Tuesday, 30 November 2004 15:27:49 UTC