W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2009

Re: [ACTION-33] Trying to sort the SPARQL/Update issues.

From: Steve Harris <steve.harris@garlik.com>
Date: Wed, 27 May 2009 10:40:45 +0100
Message-Id: <21A71802-8CA0-47A4-8A58-14723D51B8AA@garlik.com>
To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On 26 May 2009, at 20:41, Axel Polleres wrote:

> Hi all,
> I am trying hard to get my head around the various update issues.
> First of all, the conclusions we seem to have reached today
> (objections please now, if any!):
> 1) it seems that all agreed that we need more than PUT/DELETE alone  
> is needed.
> 2) it seems further that several people think that fixing a PUT/ 
> DELETE semantics  for inserting/deleting data still would be  
> desirable.

I'm not sure what the value of "several" is, but I'm one of those.

There are lots of usecases around having the RDF data locally, and  
wanting to send it to the RDF store without parsing it into a big  
INSERT statement. It also makes RDF stores behave in a more obviously  
RESTful way.

When the stores PUT endpoint matches the start of the graph URI this  
is trivial, eg for the endpoint http://store.example.com/graph/ you  
can write to http://store.example.com/graph/data.rdf, trivially with
PUT http://store.example.com/graph/data.rdf HTTP/1.1
Content-type: ...
[send data]

You can use curl -T to do this from the command line.

But there is also a sub-usecase (2b), where the graph URI does not  
start with the URI of the endpoint, where it gets a bit tricky. This  
is useful if you want to restore a RDF store from backups of it's RDF  
graphs, which is something we do in Garlik, then you want to be able  
to control the graph URI that the RDF data is restored to.

Currently we use:
   PUT http://store.example.com/graph/http://source.com/data.rdf
for example to restore to http://source.com/data.rdf. But this is  
fairly ugly, and probably a little strange.

Another option would be something like
   PUT http://store.example.com/graph/?graph=http%3A%2F%2Fsource.com%2Fdata.rdf

[ This could also be reused to POST in data to be appended, as POST  
has no obvious destination in its description. ]

Logically you would also expect
   GET http://store.example.com/graph/?graph=http%3A%2F%2Fsource.com%2Fdata.rdf
to do something equivalent to
   CONSTRUCT { ?s ?p ?o }
   WHERE {
    GRAPH <http://source.com/data.rdf> {
     ?s ?p ?o

So, how many people want something like (2) above, and how many also  
want something like (2b)?

- 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  
Received on Wednesday, 27 May 2009 09:41:18 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:00:56 UTC