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

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

From: Mark Nottingham <mnot@mnot.net>
Date: Tue, 9 Dec 2008 23:18:38 +1100
Cc: "Drummond Reed" <drummond.reed@cordance.net>, "'HTTP Working Group'" <ietf-http-wg@w3.org>, "'Ian Hickson'" <ian@hixie.ch>
Message-Id: <57D72681-CCAE-4B96-BB69-08BD6BFECB7C@mnot.net>
To: Roy T. Fielding <fielding@gbiv.com>

Hi Roy,

That's an extraordinarily subtle distinction (and I still haven't  
thought through its impact if we act upon it).

Is your preference still to keep rev out of the spec?

I only hear Julian making an argument to keep rev, and it doesn't seem  
like an urgent one.

On 08/12/2008, at 6:52 PM, Roy T. Fielding wrote:

> 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):
>    REL
>            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.
>    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.
> 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.
> ....Roy

Mark Nottingham     http://www.mnot.net/
Received on Tuesday, 9 December 2008 12:19:20 UTC

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