Drawing the line on HTTP "Case 2b"

All,

Some time ago we discussed a HTTP based update scenario which Steve dubbed case 2b:
http://lists.w3.org/Archives/Public/public-rdf-dawg/2009AprJun/0306.html

I'm trying to figure out where to draw the line on where this is actually needed. 
Consider the case where your SPARQL endpoint is at http://example.org/sparql and you want to insert a few triples into a graph named http://graphs.example.org/graph/dahut. 

With the language, you can do this by POSTing 

INSERT DATA INTO <http://graphs.example.org/graph/dahut> {
  <some> ex:triples <here> . 
}

to endpoint. Now, the question is whether this should be possible to do with the protocol as well. 

I believe that it isn't quite as Steve says in the message above, the line can't be drawn at "where the graph URI does not  
start with the URI of the endpoint", since it is trivial to implement a server so that a 
PUT http://graphs.example.org/graph/dahut
with the triples inserts those triples to the http://example.org/sparql endpoint if it has privileges to do so.

What remains is thus the cases where it doesn't have the privileges, an obvious example is if you want to insert triples into e.g. a local copy of DBpedia and you want to retain its graph name http://dbpedia.org
It could also be that the server cannot know the credentials to interact with the endpoint or they cannot be forwarded from the original client. I suppose the latter is hard to achieve with digest authentication? 

In conclusion, I think we can say that the the feature is about manipulating the content of graphs when the client is not privileged to PUT, POST or DELETE the graph URI.

Kjetil  

Received on Tuesday, 14 July 2009 14:01:10 UTC