W3C home > Mailing lists > Public > ietf-http-wg@w3.org > October to December 2008

Re: Feedback for draft-nottingham-http-link-header-03

From: Roy T. Fielding <fielding@gbiv.com>
Date: Sun, 7 Dec 2008 23:52:16 -0800
Message-Id: <2BDD98C6-F223-47DC-AF4B-BCBF6E232813@gbiv.com>
Cc: "'HTTP Working Group'" <ietf-http-wg@w3.org>, "'Ian Hickson'" <ian@hixie.ch>
To: "Drummond Reed" <drummond.reed@cordance.net>

On Dec 7, 2008, at 8:59 PM, Drummond Reed wrote:

>> On Dec 5, 2008, at 9:53 PM, Drummond Reed wrote:
>>> Some recent feedback on Link Header highlights a serious issue with
>>> that
>>> workaround. Even if HTML5 drops "rev", it doesn't change the  
>>> semantics
>>> established in HTML4, RDFa, and other uses that "rel" and "rev"  
>>> assert
>>> outbound and inbound links, respectively.
>> On December 06, 2008 12:14 AM Roy T. Fielding wrote:
>> Umm, no, they don't assert inbound links.  The only deployed value
>> for rev (rev="Made") defines a link from this representation of a
>> resource to its maker.  The only thing directional about it is the
>> relation name itself, which implies an out relation, but it is the
>> relation that is reversed by rev=name, not the link.  In your words,
>> rev asserts an inbound relationship as an outbound link.
> Now I'm confused. Julian Reschke in his message quoted from the  
> HTML4 spec
> <http://www.w3.org/TR/html4/struct/links.html#h-12.3.1>:
> **********
> "12.3.1 Forward and reverse links
> 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."
> (Note the last sentence)
> ***********
> That matches my understanding of rel and rev - if resource A has a  
> link to
> resource B (a link being "an arc of some kind connecting the two  
> resource
> nodes"), a rel attribute on that link describes an arc from A to B,  
> and a
> rev attribute on that link describes an arc from B to A.
> Do I have that wrong?

Yes, that is wrong, though we can blame it entirely on the befuddled
HTML4.  I did not participate in HTML4 and largely ignore what it says
(especially in regards to HTTP and URI).  Contrast the above with the
definitions in RFC1866 (HTML2):

             The REL attribute gives the relationship(s) described by
             the hyperlink. The value is a whitespace separated list
             of relationship names. The semantics of link
             relationships are not specified in this document.

             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.

Relationships are reversible.  Links (and <a href>), OTOH, are not;
their purpose is to define an explicit link and there is no implication
that the target has a corresponding explicit link even if the reverse
semantics are true.  If you think about what hypertext means and what
a browser actually does with links, it should be clear that the HTML4
definition is nonsense.

Received on Monday, 8 December 2008 07:52:59 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 11:10:47 UTC