- From: Simon K Johnston <skjohn@us.ibm.com>
- Date: Tue, 14 Jul 2009 13:24:35 -0400
- To: "Kjetil Kjernsmo" <Kjetil.Kjernsmo@computas.com>
- Cc: public-rdf-dawg@w3.org
- Message-ID: <OF50C55927.530659A0-ON852575F3.0046071C-852575F3.005FA25E@us.ibm.com>
Kjetil, thanks for the review, as I had to do some changes in layout and
formatting I think a few cut and paste errors such as the {graph-store}
crept in; you are correct in GET, PUT, PATCH, DELETE the {graph-uri}
should be used and not {graph-store}.
On the first issue:
Our general feeling was that the URI generated by the server is an
identify for the storage form of the graph, and will often be related to,
but not the same as the URI for the graph itself. So, we would expect that
the server base URI would often be different from the base URI of the
graphs being posted. Thus, the Graph: header is expected to be a URI that
corresponds to original, and the server can then create URIs of the form:
http://graphs.example.com/graph/http://example.org/data/graph1.rdf
or
http://graphs.example.com/graph?uri=http://example.org/data/graph1.rdf
where the values are suitable URL encoded.
On the second:
The PATCH verb was include in the original 1.0 HTTP specification and
removed from the 1.1 update with the wording:
"The PATCH, LINK, UNLINK methods were defined but not commonly
implemented in previous versions of this specification"
There is plenty of lively debate on PATCH in various communities, I am
happy to remove this (it is optional), but it would give us no
reasonable/easy way to specify the update rather than wholesale
replacement of a graph.
As for the proposed Graph header, it doesn't seem unreasonable for an
"application-level protocol" (the term used in RFC5023, the Atom
Publishing Protocol) to add new headers and in fact APP adds the Slug:
header, which effectively our Graph: header replaces. The alternative is
to only allow POST to generate identifiers itself and not allow the client
any control over the generated URI which I think is problematic.
Thanks,
Simon K. Johnston (skjohn@us.ibm.com) - STSM, Jazz Foundation Services
Mobile: +1 (919) 200-9973
Office: +1 (919) 595-0786 (tie-line: 268-6838)
Blog: http://www.ibm.com/developerworks/blogs/page/johnston
From:
"Kjetil Kjernsmo" <Kjetil.Kjernsmo@computas.com>
To:
Simon K Johnston/Redmond/IBM@IBMUS, <public-rdf-dawg@w3.org>
Date:
07/14/2009 08:09 AM
Subject:
Re: IBM Graph Update Protocol document
Hi Simon, All,
I think this is a very interesting proposal. I have a few comments.
First, in both replace graph and delete graph, the text says that the
request should be made against the {graph-store} URI. Is this correct?
Shouldn't it be the {graph-uri}? It seems to be the latter in the list
earlier in the document and the following examples, and it seems to be the
right thing.
I see two main issues with respect to the proposals that have been
circulating around here.
The largest issue is whether it should be possible to manipulate graphs
that has a graph-URI which is not dereferenceable on the host of the
SPARQL endpoint, i.e. if the endpoint is http://example.org/sparql should
it be possible to manipulate a graph with the URI
http://graphs.example.com/graph/dahut ?
As far as I can see from your proposal, it would be possible to insert
such a graph by using the Graph header, but no further manipulation would
be possible. Is that correct?
This issue seems to be where Simon Schenk and I went in diametrically
different directions; I feel that manipulating those graphs should be
time-permitting only, whereas Simon felt we should do only that and that
the case where the graph-uri can be manipulated directly is not very
interesting. I suppose he is on vacation and cannot correct me if I
misrepresent his opinions, if I do it is unintentional.
The other issue you bring to the table, which is new I believe, is the
PATCH HTTP verb. This never made it into HTTP, did it? I think the ideas
that have circulated around here is that PUT will insert a graph if it
doesn't exist and replace if it does. POST will insert if the graph
doesn't exist, and update if it does.
I think the ideas expressed in your document is well aligned with what the
group has been discussing previously, except for this, so I'd like to
bring that to the surface: Do people want to standardise a Graph header
and a PATCH verb as extensions to HTTP?
I hope that we can reach a consensus very soon on whether we should only
manipulate graph URIs that can be dereferenced. The other details can be
dealt with later, but I think it is an interesting topic.
Best,
Kjetil
Received on Tuesday, 14 July 2009 17:25:30 UTC