- 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