- From: Richard Cyganiak <richard@cyganiak.de>
- Date: Wed, 10 Feb 2010 16:20:16 +0000
- To: nathan@webr3.org
- Cc: public-lod@w3.org
Hi Nathan, On 10 Feb 2010, at 13:57, Nathan wrote: >> I'd recommend: >> >> <foo27#bar1> rdfs:seeAlso <slashland/foo27/bar1> . >> >> and then perform standard (non-redirect) content negotiation at >> <slashland/foo27/bar1>, with variants at <bar1.rdf>, <bar1.html> etc. >> > > Just wondering about the note on "non-redirect" content negotiation; > it > was my understanding that you'd have to server the following HTTP > status > codes under each scenario: > > 300 (Multiple Choices) if no Accept header is given. > 303 (See Other) if an Accept header is given and a match is found. > 406 (Not Acceptable) if an Accept header is not matched successfully. Not quite. See here for details on “normal” content negotiation: http://www.w3.org/TR/cooluris/#conneg About 300 and 406: A server *may* respond with 300 or 406 under the circumstances you describe above, but it *may* also just send a default representation back to the client. That's because the Accept header is just a statement of preference by the client, and it's up to the server wether it wants to consider those preferences. About 303: You are conflating two things. Content negotiation is about serving *multiple* representations of a resource from a single URI. 303 redirects are about resolvable URIs for things that have *no* representations because they exist outside of the Web. The 303 redirect guides the client to a related document that describes the non-Web thing. In Linked Data setups, those related documents at the destination of the 303 redirect often have multiple representations, and hence content negotiation enters the picture. This is described in Section 4.2 of the document above. And actually, 303 and content negotiation are sometimes combined in just a single step, see Section 4.3 of that document. This is the setup that you see for example on DBpedia. To see normal content negotiation in action, try requesting http://httpd.apache.org/docs/2.1/logs.html with different values for the "Accept-Language" header, e.g. "en" -- you get English "ja" -- you get Japanese "de" -- you get English because it doesn't have German "en,ja" -- you get English because the server decides so no header -- you get English because the server decides so Hope that clarifies things. Best, Richard > > what approach would you take under the "non-redirect" method? (details > please) > > Many Regards, > > Nathan
Received on Wednesday, 10 February 2010 16:20:51 UTC