- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Fri, 9 Oct 2009 15:46:09 +0000
- To: Steve Harris <steve.harris@garlik.com>, "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
> -----Original Message-----
> From: public-rdf-dawg-request@w3.org [mailto:public-rdf-dawg-request@w3.org]
> On Behalf Of Steve Harris
> Sent: 08 October 2009 13:17
> To: public-rdf-dawg@w3.org Group
> Subject: INSERT/DELETE Update syntax
>
> 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 ... }
> }
The reason is that it's a CONSTRUCT template + operation parameters. It's not a strong reason.
> 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
> }
We still need a DATA keyword to help distinguish bulk update and pattern update. The alternative is that the pattern must (if there is a pattern) come before the template.
INSERT DATA {
GRAPH <uri> { ... some triples ... }
}
And we will have to be clear that the <uri> is a URI not a variable in that case.
What about
INSERT {
GRAPH ?g { ... template ... }
}
WHERE { ... pattern ... }
This has complexity : does it create the graph? (pros and cons about automatically creating graphs - some systems might prefer an enforced fixed set of named graphs and now it can't be determined syntactically). What is ?g is a literal?
> INSERT {
> GRAPH <uri1> { <x> <y> ?a }
> GRAPH <uri2> { <a> <b> ?b }
> }
> WHERE {
> ?a <foo> ?b
> }
If ?a is a bnode, what happens? :-)
I suggest that both renaming bnode labels, and choosing not to, are legal.
Andy
Received on Friday, 9 October 2009 15:46:56 UTC