[httpRange-14] Conneg and Acceptable HTTP Variants

Tim gave us a rule of thumb about what kind of HTTP variants it's
acceptable to conneg between which caused some controversy:

"When people conneg between HTML and RDF, the HTML is
generated from the RDF. Else it is a bug." - TimBL, in [1]

Dan Brickley was the first to cry wolf about this, asking how an
acceptable level of degradation is defined. Kjetil Kjernsmo asked
about a specific use case, of an RDF FOAF file generated from RDFa or
GRDDL.

What most of you may not have seen is that TimBL later gave Kjetil a
very useful answer [2], which I repeat here:

<timbl> kjetilkWork, re http://www.ski-o.com/user/kjetil you could
offer both. Which would you want a person to see who is using
FFox+Tabulator extension?
<timbl> They won't get a chance to choose [...]
<timbl> The user (a) is not going to know that two options exist if
you use conneg and (b) is not going to be tweaking the q values of
different file types as they click around the web.
<timbl> Now I have the tab'r extension installed, occasionally I go to
what I expected to be a useful web page but I get some RDF subset of
it which doesn't work for me. As someone has thought conneg would be
cute.

I can testify that this is indeed annoying! The W3C site, for example,
doesn't follow Tim's advice. Here's what I get when I try to request
the W3C List Archives search interface:

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:email="http://www.w3.org/2000/10/swap/pim/email#"
    xmlns:log="http://www.w3.org/2000/10/swap/log#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:search="http://www.w3.org/Team/2001/09/search/search.pl#"
    xmlns:session="http://dev.w3.org/cvsweb/perl/modules/W3C/Util/W3CDebugCGI.pm">

    <rdf:Description rdf:about="" session:id="1197732779.352810"/>

</rdf:RDF>

- http://www.w3.org/Search/Mail/Public/search?type-index=www-tag&index-type=t

That's not a satisfactory representation of the W3C List Archives'
search interface. That is broken conneg. Conneg where, as Tim put it,
someone thought conneg would be cute. The same thing applies to the
FOAF specification: when I access that, I see the FOAF specification,
which has *much* less information than the HTML specification.

So the answer to the question of what is an acceptable level of A to
A' degradation, i.e. the acceptable level of degradation between HTTP
variants under conneg, is quite simple: if your users write you flames
such as the paragraph above, you have gone too far!

Tim's explanation to Kjetil compels me because not only is it easy to
understand, but it's also grounded solely in use cases.

(He turns out to be wrong, incidentally, that the HTML must be
generated from the RDF, because you can devise an RDFa or GRDDL
document where 99% or 100% of the content is contained in the RDF
graph you get from it. But the intent is clear to me now.)

[1] http://lists.w3.org/Archives/Public/www-tag/2007Dec/0035
[2] http://chatlogs.planetrdf.com/swig/2007-12-05.html#T16-01-08

-- 
Sean B. Palmer, http://inamidst.com/sbp/

Received on Saturday, 15 December 2007 17:56:16 UTC