- From: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
- Date: Wed, 30 Dec 2009 01:00:36 +0100
- To: Mark Nottingham <mnot@mnot.net>
- Cc: Toby Inkster <tai@g5n.co.uk>, Paul Cotton <Paul.Cotton@microsoft.com>, "public-html@w3.org" <public-html@w3.org>
Mark Nottingham, Wed, 30 Dec 2009 10:08:23 +1100:
> Leif,
>
> There is a much longer history to @rev, it's not as clear-cut as you
> imply. See discussion in my previous message to Toby.
I am very happy that you think it is clear cut. I indeed wanted to
provide a clear and concise message about what HTML 4 says. But it took
a decent amount of close reading (documented below!) to arrive arrive
that conclusion - it was not based on a pre-made idea. What I said
turned out to - I think - disagree with Toby's conclusions, but I hope
we wil find common language in the end.
My text below in fact shows that HTML 4 says exactly what Roy blames
HTML 4 for not saying. Roy has ignored what HTML 4 says for the wrong
reasons. HTML 4 uses confusing language which is prone to be
misinterpretated, but is still congruent with the preceding much longer
history.
> Based on the
> extensive discussions we've already had over the more than three
> years that this draft has been around (never mind earlier
> discussions), I very much doubt we're going to find consensus on what
> 'rev' means.
I will try to document what the positions.
> The currently thinking in the link draft is to get out of the
> business of saying what 'rev' is. If you have (or anyone else has) a
> text proposal to do that, I'm all ears; I'm also amenable to taking
> out all mention of 'rev', if there's no way to avoid confusion when
> mentioning it.
I hope I can come come up with something - at best together with some
of the others ...
Cheers,
Leif Halvard Silli
> Cheers,
>
>
> On 17/12/2009, at 4:08 AM, Leif Halvard Silli wrote:
>
>> Toby Inkster, Wed, 16 Dec 2009 12:23:17 +0000:
>>>> http://www.mnot.net/drafts/draft-nottingham-http-link-header-07.txt
>>>>
>>
http://www.mnot.net/drafts/draft-nottingham-http-link-header-07-from-6.diff.html
>>>
>>> Your new explanation on @rev in HTML4 states:
>>>
>>>> some hold that rev reverses
>>>> the direction of the link, while others that it reverses the
>>>> semantics of the relation itself
>>
>> Firstly: This description only creates more confusion. For example, the
>> readers will wonder (as I do): What's the difference between reversing
>> the link and reversing the semantics of the relation itself?
>>
>> Secondly: It misinforms. @rev doesn't "reverse" anymore than @rel
>> "relates". Neither @rev nor @rel affect the direction of the link. Both
>> @rel and @rev only _informs_. @rel informs about the relationship that
>> "the source resource" has to "the destination resource". While @rev
>> does the opposite: it inform about what kind of relationship "the
>> destination resource" has to "the source resource".
>>
>> In HTML 4.01, source, destination and direction is the first thing that
>> is explained about links in general: [1]
>>
>> ]]
>> A link has two ends -- called anchors -- and a direction. The link
>> starts at the "source" anchor and points to the "destination" anchor,
>> which may be any Web resource (e.g., an image, a video clip, a sound
>> bite, a program, an HTML document, an element within an HTML document,
>> etc.).
>> [[
>>
>> And about the anchor element it is said: [2]
>>
>> ]]
>> 2. The name attribute names the anchor so that it may be the
>> destination of zero or more links (see also anchors with id).
>> 3. The href attribute makes this anchor the source anchor of exactly
>> one link.
>> [[
>>
>> The HTML 5 draft shows very little interest in anything related to
>> direction w.r.t. links. E.g. it fails to say that an anchor with a
>> @name or @id can be the destination anchor of link. And also, it
>> doesn't include @rev.
>>
>> Thus, the literal meaning of @rev - reverse - plays on the important
>> concept in HTML 4, that each link as a source anchor and a destination
>> anchor.
>>
>> Now, if we apply @rev to anchor tag, such as in the following example,
>>
>> <a href="albumpage" rev="image" name="image-1" id="image-1">
>> <img src="image" alt="description" />
>> </a>
>>
>> then this does not change the fact that it is the anchor's @name/@id
>> which represents the "destination anchor" or that it is the anchor's
>> @href which creates a "source anchor".
>>
>> What @rev does is that it informs about what kind of relationship the
>> destination resource of the a@href has to the source resource of the
>> a@name.
>>
>>> The HTML 4.01 Recommendation defines @rel as:
>>>
>>> "the relationship from the current document to
>>> the anchor specified by the href attribute"
>>> <http://www.w3.org/TR/html4/struct/links.html#adef-rel>
>>>
>>> And @rev as:
>>>
>>> "a reverse link from the anchor specified by the
>>> href attribute to the current document"
>>> <http://www.w3.org/TR/html4/struct/links.html#adef-rev>
>>
>> Note the use of the word "relationship" about @rel, and "reverse link"
>> about @rev. In isolation this could make it seem as if @rel defines
>> semantics ("relationship") while @rev defines "a reverse link", which
>> supposedly is something other than a relationship.
>>
>> However, HTML 4 also says: [3]
>>
>> ]]
>> The rel and rev attributes play complementary roles -- the rel
>> attribute specifies a forward link and the rev attribute specifies a
>> reverse link.
>> [[
>>
>> Since @rel and @rev can be used simultaneously in the same <link> or
>> <a>, then "specifies" should of course not be interpreted to mean
>> "relate" or "reverse" or "create" or any other thing that could make
>> anyone think that @rev affects the link in any way.
>>
>> I think the above could have been reworded to say that "the rel
>> attribute specifies the link relationship forwards, while the rev
>> attribute specifies the link relationship in the reverse direction".
>>
>> The point is: @rel and @rev does the same thing, except in opposite
>> direction. They do not change anything, however. They only add
>> information.
>>
>>> Further it illustrates this with an example [ I replaced with a
>>> full quote:]
>>
>> ]]
>> Document A: <LINK href="docB" rel="foo">
>> Has exactly the same meaning as:
>> Document B: <LINK href="docA" rev="foo">
>> [[
>>
>> Again, the text speaks about "meaning". It is simplest to see with a
>> real example, such as "next":
>>
>> Document A: <LINK href="docB" rel="next">
>> Has exactly the same meaning as:
>> Document B: <LINK href="docA" rev="next">
>>
>> When it is said that they both have "the same meaning", then it is
>> meant that they both speak about the same oneway relationship between
>> Document A and Document B - more correctly: from A to B. None of them
>> informs about whether Document B has a reciprocal relationship to
>> Document A. Document B could in theory appear in another web site -
>> another context - than Document A. It could be without any link to
>> Document A, except for the link that Document A itself "feels" that i
>> has to Document B.
>>
>>> The earlier 4.0 Recommendation has word-for-word identical definitions
>>> and examples. 3.2 is similar <http://www.w3.org/TR/REC-html32#link>.
>>>
>>> I don't doubt that some people are confused by @rev. (If you look hard
>>> enough, you can find people confused about almost anything.) But given
>>> that all the relevant recommendations are quite clear in stating that
>>> @rev reverses the *direction* of the link, it seems disingenuous to
>>> present them as two equally valid interpretations of the definition of
>>> @rev.
>>
>> I, again, take exception to the claims that whether @rel or @rev
>> changes whether the direction or the semantics. What they both do is
>> that they _inform_ about the semantics of the link. It is just a fact
>> of life that a link has a direction, and that semantic information is
>> applied to either the source-to-destination relationship (@rel). Or to
>> the destination-to-source relationship. The use of @rev or @rel informs
>> about the direction the semantics is applied.
>>
>>> I'd suggest changing the wording to something like:
>>>
>>> while rev is defined to reverse the direction of
>>> the link, some have implemented it as if it reversed
>>> the semantics of the link type
>>
>> I don't know who has implemented this. I would like to see it so I can
>> understand what is meant.
>>
>> A more relevant rewording could be:
>>
>> While rev is defined to inform about the reverse relationship of the
>> link".
>>
>> However, I think much more info need to be added, yes, indeed that the
>> @rev specification of HTML 4 should be included and, eventually,
>> clarified. Who needs to know that some are confused?
>>
>>> Though, that having been said, although I've seen a handful of examples
>>> where people have mistakenly used @rev instead of @rel, either through
>>> ignorance or the slip of a finger, I can't remember seeing any which
>>> *rely* on the mistaken interpretation of it reversing the semantics of
>>> the link type. For example, I've never seen a page which used, say,
>>> rel="author" to link to the author and rev="author" to link to people
>>> who did not contribute to the document.
>>
>> +1
>>
>> [1] http://www.w3.org/TR/html4/struct/links.html#h-12.1
>> [2] http://www.w3.org/TR/html4/struct/links.html#h-12.2
>> [3] http://www.w3.org/TR/html4/struct/links.html#h-12.3.1
>> --
>> leif halvard silli
>
>
> --
> Mark Nottingham http://www.mnot.net/
>
>
Received on Wednesday, 30 December 2009 00:01:11 UTC