W3C home > Mailing lists > Public > public-html@w3.org > December 2009

Re: ISSUE-27: rel-ownership - Chairs Solicit Proposals

From: Mark Nottingham <mnot@mnot.net>
Date: Wed, 30 Dec 2009 10:08:23 +1100
Cc: Toby Inkster <tai@g5n.co.uk>, Paul Cotton <Paul.Cotton@microsoft.com>, "public-html@w3.org" <public-html@w3.org>
Message-Id: <16785160-832B-4656-9D31-8DB5074CFEC1@mnot.net>
To: Leif Halvard Silli <xn--mlform-iua@xn--mlform-iua.no>
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. 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.

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.

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 Tuesday, 29 December 2009 23:16:14 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 29 October 2015 10:15:55 UTC