|33 earlier messages|
|Patrick Durusau||Nov 4, 2010 11:08 am|
|Ian Davis||Nov 4, 2010 11:18 am|
|Ian Davis||Nov 4, 2010 11:24 am|
|Robert Fuller||Nov 4, 2010 11:38 am|
|Nathan||Nov 4, 2010 11:38 am|
|Kingsley Idehen||Nov 4, 2010 11:41 am|
|Jörn Hees||Nov 4, 2010 11:45 am|
|Nathan||Nov 4, 2010 11:46 am|
|Robert Fuller||Nov 4, 2010 11:48 am|
|Ian Davis||Nov 4, 2010 11:58 am|
|Kingsley Idehen||Nov 4, 2010 12:00 pm|
|Harry Halpin||Nov 4, 2010 12:03 pm|
|Kingsley Idehen||Nov 4, 2010 12:07 pm|
|Jörn Hees||Nov 4, 2010 12:10 pm|
|Kingsley Idehen||Nov 4, 2010 12:12 pm|
|Kingsley Idehen||Nov 4, 2010 12:12 pm|
|Kingsley Idehen||Nov 4, 2010 12:14 pm|
|Nathan||Nov 4, 2010 12:26 pm|
|Kingsley Idehen||Nov 4, 2010 12:36 pm|
|David Wood||Nov 4, 2010 12:56 pm|
|Hugh Glaser||Nov 4, 2010 12:59 pm|
|David Wood||Nov 4, 2010 1:14 pm|
|Nathan||Nov 4, 2010 1:22 pm|
|Bradley Allen||Nov 4, 2010 1:40 pm|
|Mischa Tuffield||Nov 4, 2010 2:09 pm|
|David Booth||Nov 4, 2010 3:09 pm|
|David Booth||Nov 4, 2010 3:11 pm|
|Kingsley Idehen||Nov 4, 2010 3:24 pm|
|mike amundsen||Nov 4, 2010 3:26 pm|
|Melvin Carvalho||Nov 4, 2010 3:48 pm|
|Kingsley Idehen||Nov 4, 2010 4:31 pm|
|Kingsley Idehen||Nov 4, 2010 4:42 pm|
|David Booth||Nov 4, 2010 5:41 pm|
|mike amundsen||Nov 4, 2010 7:28 pm|
|Leigh Dodds||Nov 5, 2010 2:28 am|
|Michael Hausenblas||Nov 5, 2010 2:29 am|
|Leigh Dodds||Nov 5, 2010 2:34 am|
|Leigh Dodds||Nov 5, 2010 2:36 am|
|Leigh Dodds||Nov 5, 2010 2:41 am|
|William Waites||Nov 5, 2010 2:53 am|
|Ian Davis||Nov 5, 2010 2:57 am|
|Nathan||Nov 5, 2010 3:05 am|
|Nathan||Nov 5, 2010 3:12 am|
|Ian Davis||Nov 5, 2010 3:16 am|
|Ian Davis||Nov 5, 2010 3:24 am|
|Nathan||Nov 5, 2010 3:33 am|
|Ian Davis||Nov 5, 2010 3:40 am|
|Nathan||Nov 5, 2010 3:56 am|
|Ian Davis||Nov 5, 2010 3:59 am|
|Ian Davis||Nov 5, 2010 4:01 am|
|68 later messages|
|Subject:||Re: Is 303 really necessary?|
|From:||Mischa Tuffield (mmt...@ecs.soton.ac.uk)|
|Date:||Nov 4, 2010 2:09:10 pm|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 4 Nov 2010, at 20:23, Nathan wrote:
David Wood wrote:
On Nov 4, 2010, at 15:04, Harry Halpin wrote:
On Thu, Nov 4, 2010 at 7:18 PM, Ian Davis <me...@iandavis.com> wrote:
On Thursday, November 4, 2010, Nathan <nat...@webr3.org> wrote:
303 is a PITA, and it has detrimental affects across the board from network load
through to server admin. Likewise #frag URIs have there own set of PITA features
(although they are nicer on the network and servers).
However, and very critically (if you can get more critical than critical!), both
of these patterns / constraints are here to ensure that different things have
different names, and without that distinction our data is junk.
I agree with this and I address it in my blog post where I say we should link the thing to its description using a triple rather than a network response code.
This is key. The issue with 303 is that it uses a "network response code" to make a semantic distinction that can (and likely should) be done in the data-format itself, i.e. distinguishing a name for the data for the name identified by the thing itself. To be precise, you can state (ex:thing isDescribedBy ex:document, ex:thing rdf:type irw:nonInformationResource) in ex:document that is full of statements about ex:thing, and a half-way intelligent RDF parser should be able to sort that out.
Yes, I agree this is the key point. You might note that an HTTP request to a
resource that returns an RDF document (of whatever RDF serialization syntax)
will already give you a 200 in many cases and that is "correct" in that an RDF
document is an information resource. However, what it describes may not be. In
the case where you are describing a non-information resource, using a 303
provides a benefit in that the clue to the type of resource is accessible before
parsing the document. It seems that Ian has made an efficiency argument. Which is cheaper? Getting a
clue from a network response code or parsing a representation?
There is another argument, of which efficiency is a part. Given:
</thing> -> 303 -> </doc>
(1) Many automated clients that make assertions about URIs treat HTTP as a
blackbox, thus are still saying </thing> a :Document . (original problem not
(2) Many Humans are clicking on </thing> getting the </doc> URI in their address
bar then using that instead, saying that </doc> a :Thing . (new problem)
(3) Network effect of 303 (2 requests) vs 200 (single request), as well as
Completely leaving frag ids out of the equation, it appears (to me at least)
that new insight is that 303 isn't addressing the problem (1) and rather
introducing more (2) and (3).
I fear that by adding all this in to the mix, the main message, "use different
names for different things" has been lost.
I too feel that the "use different names for different things" is one of the
URI syntax doesn't matter to RDF - scheme, slash or hash, all that's important
is the one name one thing relation, the link between name and thing named. If we
can ensure this happens the majority of the time using 200 OK, then why not?
+1 to helping along the majority with this.
Disclaimer: I'd never use a slash URI myself for anything other than a doc, but
realise some/many do, and that a lot of deployed data already does use it. Fact
is if you use any /slash URI over HTTP then somebody/something somewhere will be
saying it's a Document, even if that's just your apache log files RDF'ized.
I never use a / URI to denote anything but a document too, and use # URIs for
things I wish to describe in a said document. I understand that one may not want
to have a document with a large number of fragments, but if anything it helps
organise documents into smaller ones (which is a good thing right?). In defence
of 303's, they give you the option, if you are that way inclined, to use / URIs
to identify all the things you wish to talk about, but be warned this requires
apache .htaccess mangling, and and an extra http request (which doesn't sound
that bad to me).
I do like the idea that documents make statements about things, and must defend
the distinction. Documents have provenance, naively :
<> foo:digitallySignedAt "`nowInDateTime()`^^xsd:dateTime . <#me> a foaf:Person . <#me> foaf:name "Fozzle" .
makes a lot more sense than:
<> foo:digitallySignedAt "`nowInDateTime()`^^xsd:dateTime . <> a foaf:Person . <> foaf:name "Fozzle" .
Drawing an analogy, this email is signed, I am not signed, the email has a uri
identifying the person which sent, and they are quite different.
Mischa *2 [cents|pence] worth
-----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.12 (Darwin)
iQIcBAEBAgAGBQJM0yETAAoJEJ7QsE5R8vfvsQoQALCxpsT7wfjSHLIiYsHCuf/8 KSXHqMMUBiHNJyc8asFyfA9+CGMOM3r3b/kmF5KNPmg49RB9bon5Jlb5fiCvBr5J TXYk+5s7iFpLENzhWhDJhCpIX8ZC/HBXDJ/Vpkjijesa3W+5dL/G+4RHYXCpUTi1 Rwc6FA57pZTb1NnKgmEdK6jCO4sZBhdkyCKaWwlvK1zig07XdP1/CVmblGWpaSuc oXJZ9cUf0gKnwI4NDO7B/PjgvfMH7/8pWVPx56f68rk/fnXaOB0aWbxCwuIuDeL/ obzLU1i7oxjnKD4TMdH+bULJAnZvndyLWPRJBorhfJQqfnvV9xAJGTWAWxf4G5Xh r5iHA5FsLIw1GFBuMhWHVsFXtuDhCXrXzWxOTlSPGx43/bIZtXeQbTXcbUvI5zGU RAU6etCOFuCEo46H+i0T5yJfUz0OhwjYNBSIqIZq/FDpt9rkCKNavXIhRmazKCoI l7Lh5zouk9UH+wuKfE4Z0yAbXDTgobmbqcZzKzBXgzx9B8haYuCEKXcbmBbWIt2h +p2OkAEBfngZZMtz2Wi5WQWE/dgv0cPjX19y9sHcXpaop6i9kFArQeCuYb/p+6fr G1FnjZYTOKWex9eQd88oxzlisFafyU8cgTX2VxEdiH6Ko7yD1wdhyAw8KYegEnL+ 4O+cZmx+6w0HQNwM2T5D =Q5HZ -----END PGP SIGNATURE-----