- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Thu, 21 Jan 2010 14:31:55 +0100
- To: Apps Discuss <discuss@apps.ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
Hi, <http://tools.ietf.org/html/draft-nottingham-http-link-header-07#appendix-E> says: o Clarified status of 'rev'. and also o Made 'rev' text a bit less confusing. I think it's still confusing... So the grammar in <http://tools.ietf.org/html/draft-nottingham-http-link-header-07#section-5> lists it as regular link parameter: link-param = ( ( "rel" "=" relation-types ) | ( "anchor" "=" <"> URI-Reference <"> ) | ( "rev" "=" relation-types ) | ( "hreflang" "=" Language-Tag ) | ( "media" "=" ( MediaDesc | <"> MediaDesc <"> ) ) | ( "title" "=" quoted-string ) | ( "title*" "=" enc2231-string ) | ( "type" "=" type-name "/" subtype-name ) | ( link-extension ) ) On the other hand, <http://tools.ietf.org/html/draft-nottingham-http-link-header-07#section-5.3> states: The relation type of a link is conveyed in the "rel" parameter's value. Note that the "rev" parameter has also been used by some formats, and MAY be accommodated as a link-extension, but its use is neither encouraged nor defined by this specification. So the ABNF defines it as parameter, but the prose claims it's not specified, and could be specified later on as extension. Speaking of which, how do I define an extension? Standards Track RFC updating this one, as there is no registry? Later on, in the section about HTML4 we find (<http://tools.ietf.org/html/draft-nottingham-http-link-header-07#appendix-B>): HTML4 also has a "rev" parameter for links that allows a link's relation to be reversed. The Link header does not define a corresponding "rev" parameter to allow the expression of these links in HTTP headers, due to the confusion this mechanism causes as well as conflicting interpretations (briefly, some hold that rev reverses the direction of the link, while others that it reverses the semantics of the relation itself). I have to admit that I'm still not sure what *in practice* the difference between reversing the link direction and reversing the link semantics actually is. (Example?) RFC 2068 delegates the definition to RFC 1866 (HTML 2) which says (<http://tools.ietf.org/html/rfc1866#section-5.7.3>): REV same as the REL attribute, but the semantics of the relationship are in the reverse direction. A link from A to B with REL="X" expresses the same relationship as a link from B to A with REV="X". An anchor may have both REL and REV attributes. This does not seem to contradict the latest HTML spec, which has in <http://www.w3.org/TR/html4/struct/links.html#rev-link>: The rel and rev attributes play complementary roles -- the rel attribute specifies a forward link and the rev attribute specifies a reverse link. Consider two documents A and B. Document A: <LINK href="docB" rel="foo"> Has exactly the same meaning as: Document B: <LINK href="docA" rev="foo"> Both attributes may be specified simultaneously. So my preference would be to actually define the rev parameter consistently with this, and then to discourage it's use due to the other good reasons we heard about that (such as HTML authors typing "rev" instead of "rel"). Related to that: if processing the anchor attribute was mandatory then any use of "rev" (under the definition above) could be rewritten with rel and anchor. Given a context IRI of A: Link: <B>; rev=foo should be equivalent to Link: <A>; rel=foo; anchor=<B> right? Best regards, Julian
Received on Thursday, 21 January 2010 13:32:35 UTC