HTTP Update and HTTP verbs

Section 4.1 says that HTTP PUT is equivalent to

CREATE [ SILENT ] GRAPH <uri>
INSERT DATA INTO <uri_of_networked_knowledges> { .. RDF payload .. }

However, RFC 2616 says "The PUT method requests that the enclosed  
entity be stored under the supplied Request-URI. If the Request-URI  
refers to an already existing resource, the enclosed entity SHOULD be  
considered as a modified version of the one residing on the origin  
server."

Which to me implies that the operation should be equivalent to

DROP SILENT GRAPH <uri>
CREATE SILENT GRAPH <uri>
INSERT DATA [ INTO <uri> ] { .. RDF payload .. }

Section 5.1 says that a POST is equivalent to:

INSERT [ INTO <uri_of_knowledge> ] { .. RDF payload .. }

This implies that a POST to a graph that has not already been PUT to  
will fail, which seems like it would be both surprising and  
inconvenient. As a user I would expect something more like:

CREATE SILENT GRAPH <uri>
INSERT [ INTO <uri> ] { .. RDF payload .. }

Nothing that I can see in RFC 2616 implies that it should be an error  
to POST to a currently non-existent resource.

Also, I find the term "URI of knowledge" a bit opaque. It's not a  
phrase that appears often enough on Google for e.g. to be in common  
usage, so I'd have though something like "graph URI" would be more  
easily understood? If that's what it means.

- Steve

Received on Tuesday, 6 October 2009 16:42:14 UTC