- 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