- From: Steve Harris <steve.harris@garlik.com>
- Date: Fri, 9 Oct 2009 09:26:10 +0100
- To: Ivan Mikhailov <imikhailov@openlinksw.com>
- Cc: "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
On 8 Oct 2009, at 22:09, Ivan Mikhailov wrote: > Steve, > > I like your idea, despite that we've implemented INSERT INTO <uri> > syntax already. > > My reasons are > 1) it makes construction templates more similar to patterns > 2) Why not permit CONSTRUCT { GRAPH <uri> ... } then to make NQuads/ > TriG > at the output ? :) That one's a little tricky, there's no syntax in the W3C standards track (that I know of) which can represent quads/graphs. It would be convenient though, doing: CONSTRUCT { GRAPH ?g { ?s ?p ?o } } WHERE { GRAPH ?g { ?s ?p ?o } } Would be a very handy dump of all the named graphs, which currently requires a loop over all the graphs in the application layer, so is quite inefficient. > 3) With federation, it may become INSERT { SERVICE <endpoint-uri> > { ... } } in a natural way > 4) I can write INSERT { GRAPH `expression-for-iri` { ... }} Those are very good points that I hadn't considered. > So I'd vote for support of both syntax variants. > > In addition, I'd like to keep INSERT DATA for statements without WHERE > clause and probably without any expressions, static data only. This > will > permit the use of very long INSERT DATA statements without the use of > the optimizing compiler (even without the complete parsing of the > whole > statement before first triple is inserted) Oh, sorry, I think I misused the INSERT syntax. But yes, that's a good idea. - Steve > On Thu, 2009-10-08 at 13:17 +0100, Steve Harris wrote: >> Reflecting on the update syntax I'm just wondering why the syntax >> looks like: >> >> INSERT DATA INTO <uri> { >> ... some triples ... >> } >> >> rather than: >> >> INSERT { >> GRAPH <uri> { ... some triples ... } >> } >> >> which seems like a more obvious parallel to SPARQL 1.0, and allows >> inserts to multiple graphs in a single insert block, with GRAPH you >> would be able to write: >> >> INSERT { >> GRAPH <uri1> { <x> <y> ?a } >> GRAPH <uri2> { <a> <b> ?b } >> } >> WHERE { >> ?a <foo> ?b >> } >> >> which would be less verbose than using the draft syntax, and arguably >> easier to understand. c.f. >> >> INSERT DATA INTO <uri1> { >> <x> <y> ?a >> } >> WHERE { >> ?a <foo> ?b >> } >> INSERT DATA INTO <uri2> { >> <a> <b> ?b >> } >> WHERE { >> ?a <foo> ?b >> } >> >> - Steve >> > -- Steve Harris Garlik Limited, 2 Sheen Road, Richmond, TW9 1AE, UK +44(0)20 8973 2465 http://www.garlik.com/ Registered in England and Wales 535 7233 VAT # 849 0517 11 Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD
Received on Friday, 9 October 2009 08:26:43 UTC