Jeni Tennison wrote:
Nathan,
Yes, that's correct. With no constraining Accept headers, it could alternatively return HTML
with embedded RDFa with a <link rel="describedby"> element, for example.
Is that universally true?
Suppose /uri identified a PDF formatted ebook, or a digital image of a
monkey in JPEG format, or even an RDF document.
Question A:
Currently we have:
<http://example.org/uri> - a JPEG image of a monkey.
When you issue a GET on that URI the server currently responds
200 OK
Content-Type: image/jpeg
Link: <http://example.org/uri-documentation>; rel="describedby"
So under this new proposal, the server can return the contents of
/uri-documentation with a status of 200 OK for a GET on /uri?
If yes, this seems like massively unexpected functionality, like a
proposal to treat "Accept: some/meta-data" like a DESCRIBE verb, and
seems to exaggerate the URI substitution problem (as in /uri would be
taking as naming the representation of /uri-documentation).
If no, where's the language which precludes this? (and how would that
language go, given that it's exactly the same protocol flow and nothing
has changed - other than the reader presuming that /uri now identifies
something that does have a representation that can be transferred over
HTTP vs identifying something that doesn't have a representation that
can be transferred over HTTP).
Question B:
How would conneg work, and what would the presence of a Content-Location
response header mean? Would HTTPBis need to be updated?
Question C:
Currently 303 "indicates that the requested resource does not have a
representation of its own that can be transferred by the server over
HTTP", and the Link header makes it clear that you are dealing with two
different things (/uri and /uri-documentation), but where does this
proposal make it clear at transfer protocol level that the
representation included in the http response is a representation of
another resource which describes the requested resource (rather than it
being as the spec defines "a representation of the target resource")?
Either way, there is no implication that what you've got from
http://example.org/uri is the content of http://example.org/uri (or that
http://example.org/uri identifies an information resource), but there is an
implication that what you get from http://example.org/uri-documentation is the
content of http://example.org/uri-documentation (and that
http://example.org/uri-documentation is an information resource).
Sorry I don't follow, how is there an implication from a 200 OK for
<uri-a> that it's not an IR and for <uri-b> that it is an IR?
If there was a Set of all Things (Set-A), then that set would have two
sets, "the set of all things which can be transferred via a transfer
protocol like HTTP" (Set-B), and then everything else (Set-C) which
comprises Set-A minus Set-B. As far as I can tell, the one thing that
determines whether something is a member of the Set-B or Set-C, for
HTTP, is that 200 OK in response to a GET, hence why we need the 303.
This proposal appears to try and override that "rule" (fact) by saying
let the content of a representation define what is a member of Set-B or
Set-C, however the act of dereferencing itself is what determines
whether an identified thing is a member of Set-B, as Set-B is the set of
all things that can be dereferenced. Hence my confusion at this proposal.
Hope that makes sense, and that I've not totally misunderstood.
Best,
Jeni
On 28 Mar 2012, at 14:46, Nathan wrote:
Nathan wrote:
Jeni Tennison wrote:
# Details
In section 4.1, in place of the second paragraph and following list, substitute:
There are three ways to locate a URI documentation link in an HTTP response:
* using the Location: response header of a 303 See Other response
[httpbis-2], e.g.
303 See Other
Location: http://example.com/uri-documentation>
* using a Link: response header with link relation 'describedby' ([rfc5988],
[powder]), e.g.
200 OK
Link: <http://example.com/uri-documentation>; rel="describedby"
* using a ‘describedby’ ([powder]) relationship within the RDF graph created
by interpreting the content of a 200 response, eg:
200 OK
Content-Type: text/turtle
PREFIX :<http://www.iana.org/assignments/relation/>
<http://example.com> :describedby
<http://example.com/uri-documentation> ;
.
Seeking clarification,
Given some arbitrary thing and a description of that thing, let's say:
<http://example.org/uri> is described by <http://example.org/uri-documentation>
Previously we could GET /uri and either:
a) follow the value of the Location header in a 303 response to get to
/uri-documentation
b) follow the value of the Link header to get to /uri-documentation
With this proposal though we'd be able to say issue a GET to /uri with an
Accept header value of text/turtle, and the server could return back the
contents of /uri-documentation, with a status of 200 OK, and where the
text/turtle response contained:
PREFIX :<http://www.iana.org/assignments/relation/>
<http://example.com> :describedby <http://example.com/uri-documentation>
PREFIX :<http://www.iana.org/assignments/relation/>
<http://example.org/uri> :describedby <http://example.org/uri-documentation>
c+p error, apologies.
Is this correct?
TIA