Hello Lachlan,<br><br><div><span class="gmail_quote">On 7/5/06, <b class="gmail_sendername">Lachlan Hunt</b> &lt;<a href="mailto:lachlan.hunt@lachy.id.au">lachlan.hunt@lachy.id.au</a>&gt; 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>&gt; What happened to the &quot;rev&quot; 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>.&nbsp;&nbsp;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 &quot;semantically minded&quot;.<br><br>Sure no one is using it that much right now.&nbsp; But developers seemed to only recently awaken to the idea of adding semantics into HTML.&nbsp; (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 &quot;rev&quot; attribute.&nbsp; (Not sure if that would be enough &quot;justification&quot; here to keep it.&nbsp; 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 &quot;rel&quot; and &quot;rev&quot; to work hand-in-hand to establish this.<br><br>For a real life example, consider these &quot;community marks&quot; people have been talking about.&nbsp; People want to essentially say someone is a member of a group.&nbsp; Let's use the 
<a href="http://Microformats.org">Microformats.org</a> group for example.&nbsp; 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;">&lt;a rev=&quot;member&quot; href=&quot;
<a href="http://microformats.org/">http://microformats.org/</a>&quot;&gt;<br>&nbsp;&nbsp;&nbsp; &lt;img src=&quot;<a href="http://microformats.org/image/badge.png">http://microformats.org/image/badge.png</a>&quot; alt=&quot;<a href="http://Microformats.org">
Microformats.org</a>&quot; /&gt;<br>&lt;/a&gt;</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.&nbsp; 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;">&lt;a rel=&quot;member&quot; href=&quot;<a href="http://changelog.ca/">http://changelog.ca/</a>&quot;&gt;<br>
&nbsp;&nbsp;&nbsp; Charles Iliya Krempeaux<br>
&lt;/a&gt;</span><br>
</div><br>(Note that we are using &quot;rel&quot; here, instead of &quot;rev&quot; like before.&nbsp; Also note that the exact same label was using -- &quot;member&quot;.)<br><br>Well then we'd know that we trust this relation, because we have the same relation being asserted both ways.&nbsp; (Or at least can trust it more than if only one page was asserting the relation.)
<br><br>Without the &quot;rev&quot;, we could still do this with &quot;rel&quot; however, the exact same label could NOT be used.&nbsp; And then any kind of system to analyse this would have to understand what this labels actually meant and know what the &quot;reverse relation&quot; name was.
<br><br><br>That is essentially my personal reason for wanting &quot;rev&quot;.&nbsp; So that the exact same label can be used no matter what the direction of the relation.&nbsp; (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;">&gt; Neither the &lt;a&gt; or &lt;link&gt; 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.&nbsp;&nbsp;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.&nbsp; (But that's just me and the software I write&nbsp; :-)&nbsp; )<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; The &quot;rev&quot; attribute is important for allowing what I call &quot;opaque<br>&gt; semantics&quot;.<br><br>Can you more clearly define what you mean by &quot;opaque semantics&quot;?</blockquote><div><br>Think about XML (as compared to SGML-based HTML).&nbsp; 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 &quot;trailing slash&quot;.&nbsp; So, for example, you would NOT write &quot;&lt;br&gt;&quot; or &quot;&lt;hr&gt;&quot;; but you would write &quot;&lt;br /&gt;&quot; and &quot;&lt;hr /&gt;&quot;.
<br><br>This meant that the semantics of the elements/tags could be opaque.&nbsp; A generic XML parser didn't need to know that a &quot;&lt;br&gt;&quot; 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.&nbsp; (I.e., keep this kind of advantage with linked that use &quot;rel&quot; and &quot;rev&quot;.)<br><br>Analysing all these typed links (spread out across the web), you can create a graph connecting URI's.&nbsp; 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 &quot;rev&quot; attribute, the exact same label can be used.&nbsp; 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;">&lt;a rel=&quot;aaa&quot; href=&quot;<a href="http://a.example.com/">
http://a.example.com/</a>&quot;&gt;...&lt;/a&gt;<br></span><span style="font-family: courier new,monospace;">&lt;a rel=&quot;bbb&quot; href=&quot;<a href="http://b.example.com/">http://b.example.com/</a>&quot;&gt;...&lt;/a&gt;
<br></span><span style="font-family: courier new,monospace;">&lt;a rel=&quot;ccc&quot; href=&quot;<a href="http://c.example.com/">http://c.example.com/</a>&quot;&gt;...&lt;/a&gt;</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;">&lt;a rev=&quot;aaa&quot; href=&quot;<a href="http://z.example.com/">http://z.example.com/
</a>&quot;&gt;...&lt;/a&gt;<br></span><span style="font-family: courier new,monospace;">&lt;a rel=&quot;ccc&quot; href=&quot;<a href="http://c.example.com/">http://c.example.com/</a>&quot;&gt;...&lt;/a&gt;</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.&nbsp; (Hope this looks OK in your e-mail program)<br><br><div style="margin-left: 40px;">
<span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; aaa (assert by both)<br></span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>
<span style="font-family: courier new,monospace;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; +-----+<br></span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |<br></span><span style="font-family: courier new,monospace;">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; V&nbsp;&nbsp;&nbsp;&nbsp; |<br></span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="font-weight: bold;">
A</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-weight: bold;">Z</span><br></span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; |&nbsp;&nbsp;&nbsp; /|<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; ccc |&nbsp;&nbsp; / | bbb
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; /&nbsp; |<br>&nbsp;&nbsp; (asserted by A) V /|&nbsp; V (asserted by Z)<br></span><span style="font-family: courier new,monospace;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="font-family: courier new,monospace;">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="font-weight: bold;">
C</span>&nbsp; |&nbsp; <span style="font-weight: bold;"><span style="font-weight: bold;">B</span></span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br></span><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br></span><span style="font-family: courier new,monospace;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span><br><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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?&nbsp; 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;">
&nbsp;&nbsp;&nbsp;&nbsp;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;">&nbsp;&nbsp;&nbsp;&nbsp;charles @ <a href="http://reptile.ca">
reptile.ca</a></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp;&nbsp;&nbsp;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;">&nbsp;&nbsp;&nbsp;&nbsp;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;">
&nbsp;Make Television&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://maketelevision.com/">http://maketelevision.com/</a>
</span>