Hello Lachlan,<br><br><div><span class="gmail_quote">On 7/5/06, <b class="gmail_sendername">Lachlan Hunt</b> <<a href="mailto:lachlan.hunt@lachy.id.au">lachlan.hunt@lachy.id.au</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Charles Iliya Krempeaux wrote:<br>> What happened to the "rev" attribute?<br><br>The problem with the rev attribute is that it's difficult for authors to<br>understand the concept of a reverse link relationship; and compared with
<br>rel, it's hardly ever used.<br><br>There's only one use of rev that I'm aware of which is listed on<br><a href="http://microformats.org">microformats.org</a>.  It's for vote-links, but I don't think those<br>relationships should be used anyway.
</blockquote><div><br><br>It would be a shame to get rid of it now, now that web developers are starting to become "semantically minded".<br><br>Sure no one is using it that much right now.  But developers seemed to only recently awaken to the idea of adding semantics into HTML.  (And it seems to be catching on more and more.)
<br><br>As developers start building semantics into web technologies, their going find that they need the "rev" attribute.  (Not sure if that would be enough "justification" here to keep it.  But since we already have it, it would be nice to keep it.)
<br><br><br>For example, I'm interested in trust metrics and reputation, so I consider a "rel" and "rev" to work hand-in-hand to establish this.<br><br>For a real life example, consider these "community marks" people have been talking about.  People want to essentially say someone is a member of a group.  Let's use the 
<a href="http://Microformats.org">Microformats.org</a> group for example.  Well, if I wanted to claim that I'm a member of that group, then I could put a Microformats badge on my blog, and link it to the <a href="http://Microformats.org">
Microformats.org</a> website.<br><br>But, being semantically minded, I'd link it like this:<br><br><div style="margin-left: 40px;"><span style="font-family: courier new,monospace;"><a rev="member" href="
<a href="http://microformats.org/">http://microformats.org/</a>"><br>    <img src="<a href="http://microformats.org/image/badge.png">http://microformats.org/image/badge.png</a>" alt="<a href="http://Microformats.org">
Microformats.org</a>" /><br></a></span><br></div><br>(Note the rev-member.)<br><br>Now that's great and all, but anyone can put a badge like that on their site.  How do you know you can trust that?<br><br>Well, what if the 
<a href="http://Microformats.org">Microformats.org</a> website had a members page, and linked to all their members, including my blog with the following:<br><br>
<div style="margin-left: 40px;"><span style="font-family: courier new,monospace;"><a rel="member" href="<a href="http://changelog.ca/">http://changelog.ca/</a>"><br>
    Charles Iliya Krempeaux<br>
</a></span><br>
</div><br>(Note that we are using "rel" here, instead of "rev" like before.  Also note that the exact same label was using -- "member".)<br><br>Well then we'd know that we trust this relation, because we have the same relation being asserted both ways.  (Or at least can trust it more than if only one page was asserting the relation.)
<br><br>Without the "rev", we could still do this with "rel" however, the exact same label could NOT be used.  And then any kind of system to analyse this would have to understand what this labels actually meant and know what the "reverse relation" name was.
<br><br><br>That is essentially my personal reason for wanting "rev".  So that the exact same label can be used no matter what the direction of the relation.  (That way a generic parser and query engine can be written for this type of stuff, even if the system does NOT understand the meaning of the labels.)
<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Neither the <a> or <link> element seems to have it anymore...
<br><br>I think it should still be present, but it's semantics would need to be<br>clarified and explained.  We should probably also identify some real use<br>cases where it is actually useful for authors.</blockquote><div>
<br><br>I'm using it for trust metrics and reputation.  (But that's just me and the software I write  :-)  )<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> The "rev" attribute is important for allowing what I call "opaque<br>> semantics".<br><br>Can you more clearly define what you mean by "opaque semantics"?</blockquote><div><br>Think about XML (as compared to SGML-based HTML).  One of the design goals for it was to make it so that a generic parser could be written for it without knowing anything about the meaning of the elements/tags.
<br><br>This was accomplished by requiring lone elements -- elements without a closing tag -- to have a "trailing slash".  So, for example, you would NOT write "<br>" or "<hr>"; but you would write "<br />" and "<hr />".
<br><br>This meant that the semantics of the elements/tags could be opaque.  A generic XML parser didn't need to know that a "<br>" element did NOT have an ending tag.<br><br>In fact, anyone can create their own custom XML-based language, and any XML parser will be able to handle it properly.
<br><br>In the same way, I'd like to keep this kind of advantage with typed links.  (I.e., keep this kind of advantage with linked that use "rel" and "rev".)<br><br>Analysing all these typed links (spread out across the web), you can create a graph connecting URI's.  And the edges of the graph would have these labels and which side of the URI asserted the relation.
<br></div></div><br>With the "rev" attribute, the exact same label can be used.  The semantics of the label can be opaque, but the system for analysing all this will work anyways.<br clear="all"><br>So, for example,... if the page 
<a href="http://z.example.com/">http://z.example.com/</a> had links like the following:<br><br><div style="margin-left: 40px;"><span style="font-family: courier new,monospace;"><a rel="aaa" href="<a href="http://a.example.com/">
http://a.example.com/</a>">...</a><br></span><span style="font-family: courier new,monospace;"><a rel="bbb" href="<a href="http://b.example.com/">http://b.example.com/</a>">...</a>
<br></span><span style="font-family: courier new,monospace;"><a rel="ccc" href="<a href="http://c.example.com/">http://c.example.com/</a>">...</a></span><br><br></div>And the page <a href="http://a.example.com/">
http://a.example.com/</a> had links like the following:<br><br><div style="margin-left: 40px;"><span style="font-family: courier new,monospace;"><a rev="aaa" href="<a href="http://z.example.com/">http://z.example.com/
</a>">...</a><br></span><span style="font-family: courier new,monospace;"><a rel="ccc" href="<a href="http://c.example.com/">http://c.example.com/</a>">...</a></span><br></div>
<br>And none of the other pages had typed links, then we could form the following graph and not even care what any of those labels meant.  (Hope this looks OK in your e-mail program)<br><br><div style="margin-left: 40px;">
<span style="font-family: courier new,monospace;">           </span><span style="font-family: courier new,monospace;">          aaa (assert by both)<br></span><span style="font-family: courier new,monospace;">           </span>
<span style="font-family: courier new,monospace;">        +-----+<br></span><span style="font-family: courier new,monospace;">           </span><span style="font-family: courier new,monospace;">        |     |<br></span><span style="font-family: courier new,monospace;">
           </span><span style="font-family: courier new,monospace;">        V     |<br></span><span style="font-family: courier new,monospace;">           </span><span style="font-family: courier new,monospace;">        <span style="font-weight: bold;">
A</span>     <span style="font-weight: bold;">Z</span><br></span><span style="font-family: courier new,monospace;">           </span><span style="font-family: courier new,monospace;">        |    /|<br>               ccc |   / | bbb
<br>                   |  /  |<br>   (asserted by A) V /|  V (asserted by Z)<br></span><span style="font-family: courier new,monospace;">           </span><span style="font-family: courier new,monospace;">        <span style="font-weight: bold;">
C</span>  |  <span style="font-weight: bold;"><span style="font-weight: bold;">B</span></span><br>                      |<br></span><span style="font-family: courier new,monospace;">                      |<br></span><span style="font-family: courier new,monospace;">
                      |</span><br><span style="font-family: courier new,monospace;">                     ccc (asserted by Z)<br></span><br></div>(Note, I've used the sub-domain names only in the diagram below.)<br><br><br>
Does that all make sense?  Have I explained things well enough?<br><br><br>See ya<br><br><span style="font-family: courier new,monospace;">-- </span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
    Charles Iliya Krempeaux, B.Sc.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    charles @ <a href="http://reptile.ca">
reptile.ca</a></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    supercanadian @ <a href="http://gmail.com">gmail.com</a></span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    developer weblog: <a href="http://ChangeLog.ca/">http://ChangeLog.ca/</a></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">___________________________________________________________________________</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
 Make Television                                <a href="http://maketelevision.com/">http://maketelevision.com/</a>
</span>