{"id":53,"date":"2005-01-20T02:11:37","date_gmt":"2005-01-20T02:11:37","guid":{"rendered":"http:\/\/lachy.id.au\/log\/2005\/01\/link-relationships-revisited-part-1"},"modified":"2016-09-30T07:55:11","modified_gmt":"2016-09-30T07:55:11","slug":"link-relationships-revisited-part-1","status":"publish","type":"post","link":"https:\/\/lachy.id.au\/log\/2005\/01\/link-relationships-revisited-part-1","title":{"rendered":"Link Relationships Revisited, Part 1"},"content":{"rendered":"<p>A while ago, I wrote an entry entitled <a href=\"http:\/\/lachy.id.au\/blogs\/log\/2004\/08\/link-relationships\">Link\r\n\t\tRelationships<\/a> that detailed my\r\n\tideas for additions to the values for the <code class=\"markup attribute\">rev<\/code> and <code class=\"markup attribute\">rel<\/code> attributes. It went a\r\n\tlong way into describing many relationships for several categories including\r\n        <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#userfeedback\">user\r\nfeedback<\/a>, <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#quality\">quality<\/a>, <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#accuracy\">accuracy<\/a>, <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#accessibility\">accessibility<\/a>, <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#rating\">rating<\/a> and <a href=\"http:\/\/www.lachy.id.au\/blogs\/log\/2004\/08\/link-relationships#endorsement\">endorsement<\/a>.<\/p>\r\n<p>Having received some feedback from many sources regarding the value of all\r\n\tthese relationships, the fact that Tantek had implemented an <a href=\"http:\/\/www.technorati.com\/live\/votes.html\">alpha\r\n\tsystem for Vote Links<\/a> in Technorati and now that <a href=\"http:\/\/www.google.com\/\">Google<\/a>, <a href=\"http:\/\/www.msnsearch.com\/\">MSN\r\n\tSearch<\/a> and\r\n\t<a href=\"http:\/\/www.yahoo.com\/\">Yahoo<\/a> have <a href=\"http:\/\/www.google.com\/googleblog\/2005\/01\/preventing-comment-spam.html\">implemented <code class=\"markup attribute\">rel=\"nofollow\"<\/code><\/a>;\r\n\tI intend to revisit the idea and explain exactly why I don\u2019t think Technorati\u2019s <code class=\"markup attribute-value\">vote-for<\/code>, <code class=\"markup attribute-value\">vote-against<\/code> and\r\n\t<code class=\"markup attribute-value\">vote-abstain<\/code>; and Google\u2019s <code class=\"markup attribute-value\">nofollow<\/code> relationships\r\n\tare suitable. Following this, in part 2, I will discuss the major modifications\r\n\tto my original ideas that will both simplify and reduce the number of relationships,\r\n\tyet provide increased semantics in a way that implements the desired functionality\r\n\tof vote links (including <code class=\"markup attribute-value\">nofollow<\/code>)\r\n\twith many more advantages that are applicable to a wider variety of user\r\n\tagents.<\/p>\r\n\r\n<h5 id=\"relationship-semantics\">Relationship Semantics<\/h5>\r\n\r\n<p>Firstly, I would like to explain a little about the semantics and purpose\r\n\tbehind link relationships to indicate the link role. Each relationship should\r\n\tmeet one or more of these criteria to indicate:<\/p>\r\n<ul>\r\n\t<li>The semantic relationship from one resource to another (eg. <code class=\"markup attribute-value\">Next<\/code> or <code class=\"markup attribute-value\">Prev<\/code>\t\tin sequence),<\/li>\r\n\t<li>What the resource is (eg. <code class=\"markup attribute-value\">Contents<\/code>, <code class=\"markup attribute-value\">Stylesheet<\/code>, etc.), and\/or<\/li>\r\n\t<li>The purpose of the link (eg. To provide <code class=\"markup attribute-value\">Help<\/code> for the user).<\/li>\r\n<\/ul>\r\n<p>Additionally the name of the relationship should accurately represent its\r\n\tsemantics, and all relationships should make some sense in the context of\r\n\tany number of user agents and for any user \u2014 the relationship should be\r\n\tnamed and designed independent of any particular type of <abbr title=\"User Agent\">UA<\/abbr>. However, this\r\n\tdoes not mean that every <abbr title=\"User Agent\">UA<\/abbr> should be able to do something sensible\r\n\twith the link; nor that every <abbr title=\"User Agent\">UA<\/abbr> that does, should do the same thing\r\n\twith it.<\/p>\r\n<p>All of the above is true for all <a href=\"http:\/\/www.w3.org\/TR\/html401\/types.html#h-6.12\" title=\"HTML 4.01: Basic HTML data types\"><abbr title=\"Hypertext Markup Language\">HTML<\/abbr>\r\n\t\t4 link\r\n\t\ttypes<\/a>,\r\n\tsomewhat true for <a href=\"http:\/\/gmpg.org\/xfn\/\"><abbr title=\"XHTML Friends Network\">XFN<\/abbr><\/a>,\r\n\tand for most of the relationships I suggested previously. However, the same\r\n\tis not entirely the case for either the vote-links or <code class=\"markup attribute-value\">nofollow<\/code> relationships.<\/p>\r\n<h5 id=\"vote-links\">Vote Links<\/h5>\r\n<p>In fairness, vote links (unlike <code class=\"markup attribute-value\">nofollow<\/code>) do express some semantics. ie. A\r\n\t<code class=\"markup attribute-value\">vote-for<\/code> relationship expresses that the author of document A approves of document\r\n\tB. In this way, a search engine, for example, may make use of the relationship\r\n\tduring page-rank calculations and another <abbr title=\"User Agent\">UA<\/abbr> may simply gather and list all\r\n\tsuch links for the user to select from easily. However, the relationships do\r\n\tnot indicate any semantic relationship, what the resource is, or the purpose\r\n\tof the link.<\/p>\r\n<p>In the <a href=\"http:\/\/developers.technorati.com\/wiki\/VoteLinks\">Technorati\r\n\t\tVote Links Wiki<\/a>, the reasons given for using the yes\/no\/abstain\r\n\tmodel are given. However, although they do raise some good points that I\r\n\t\twill be incorporating into my link relationship suggestions later on, they\r\n\t\tfail to make a solid case for using them specifically. The general reasoning\r\n\t\tgiven is that this model has served well for politics, committees and user\r\n\t\trating systems, such as that used on <a href=\"http:\/\/www.ebay.com\/\">eBay<\/a>, and will thus, due to the democratic\r\n\t\tnature of the web, serve well for page rank calculations; and that they were\r\n\t\tdesigned to be easy-to-remember to manually type in a hand-coding environment,\r\n\tand easy for authoring tools to implement.<\/p>\r\n<p>Given that, however, the main reason for why vote-links are unsuitable is\r\n\tnot just for lack of useful semantics, it is that they provide too much potential\r\n\tfor abuse. <a href=\"http:\/\/diveintomark.org\/\" title=\"Dive Into Mark\"><cite>Mark Pilgrim<\/cite><\/a> has given\r\n\t<a href=\"http:\/\/philringnalda.com\/blog\/2004\/08\/time_for_an_untrusted_content_element.php#008865\"\r\n\ttitle=\"Mark Pilgrim on the Problems with Vote-Links\">his\r\n\treasons<\/a> for why <code class=\"markup attribute-value\">vote-for<\/code> is useless and\r\n\twhy <code class=\"markup attribute-value\">vote-against<\/code> is harmful.<\/p>\r\n\r\n<blockquote cite=\"http:\/\/www.intertwingly.net\/blog\/2003\/11\/17\/Comment-Throttle#c1069204247\">\r\n<ul>\r\n\t<li>rel=&#8221;vote-for&#8221; &#8211;&gt; increase PageRank (the default, this is\r\n\t\twhat all links do now)<\/li>\r\n\t<li>rel=&#8221;vote-abstain&#8221; &#8211;&gt; ignore for PageRank (like a Javascript\r\n\t\tlink that Google can&#8217;t follow, or a hypothetical link-level NOFOLLOW\r\n\t\tmeta tag)<\/li>\r\n\t<li>rel=&#8221;vote-against&#8221; &#8211;&gt; decrease PageRank<\/li>\r\n<\/ul>\r\n<\/blockquote>\r\n\r\n<p>He also states that <code class=\"markup attribute-value\">vote-abstain<\/code> is\r\n\tthe only useful value and compares it with the idea for a <code class=\"markup attribute-value\">nofollow<\/code> value\r\n\twhich he approves of, and which Google was soon to implement.<\/p>\r\n<p>Because <code class=\"markup attribute-value\">vote-abstain<\/code> is essentially\r\n\tequivalent to <code class=\"markup attribute-value\">nofollow<\/code> in that it\r\n\tstates that the link should not be counted for page-rank calculations, it\r\n\tis harmful for the same reasons given below for <code class=\"markup attribute-value\">nofollow<\/code>,\r\n\tthough it is better because\r\n\tits name more accurately represents its meaning.<\/p>\r\n<h5 id=\"nofollow\">The <code class=\"markup attribute-value\">nofollow<\/code> Relationship<\/h5>\r\n<p>The <code class=\"markup attribute-value\">nofollow<\/code> relationship has\r\n\tno semantics relating to the documents in any way whatsoever \u2013 its name simply\r\n\tstates, in no uncertain terms, that a user agent should not follow the link;\r\n\thowever, its intended meaning is that the link should not be counted towards\r\n\tpage-rank (ie. This link is abstaining from voting). Compare this with the\r\n\tsimilarly named, yet semantically different <code class=\"markup attribute-value\">nofollow<\/code>\r\n\tvalue for the <a href=\"http:\/\/www.robotstxt.org\/meta.html\">Robot&#8217;s\r\n\tMeta Tag<\/a>. For the robot&#8217;s meta tag, this value means that no links within\r\n\tthe document should be followed or indexed in any way; whereas the nofollow\r\n\trelationship, according to <a href=\"http:\/\/www.google.com\/googleblog\/2005\/01\/preventing-comment-spam.html\"\r\n\ttitle=\"Googleblog: Preventing Comment Spam\">google&#8217;s\r\n\tannouncement<\/a>, may be followed, and\r\n\tindexed but shall not recieve any additional credit.<\/p>\r\n\t\r\n<blockquote cite=\"http:\/\/www.google.com\/googleblog\/2005\/01\/preventing-comment-spam.html\">\r\n\t<p>From now on, when Google sees the attribute (<code class=\"markup attribute\">rel=\"nofollow\"<\/code>) on hyperlinks,\r\n\t\t those links won&#8217;t get any credit when we rank websites in our search results.<\/p>\r\n<\/blockquote>\r\n\r\n<p> Thus, as stated earlier, <code class=\"markup attribute-value\">vote-abstain<\/code> is\r\n\t\ta better name; though both are considered harmful for the following reasons.<\/p>\r\n<p> <code class=\"markup attribute-value\">nofollow<\/code> makes no sense at all\r\n\tin any user agent, other than a search engine that uses the page-rank (or\r\n\tequivalent) algorithm; and is, in fact, a case where the relationship is\r\n\tnot named or designed to be independent of a particular type of <abbr title=\"User Agent\">UA<\/abbr>.<\/p>\r\n<p>Additionally, this relationship opens up the potential for abuse. Much like\r\n\tan <a href=\"http:\/\/philringnalda.com\/blog\/2004\/08\/time_for_an_untrusted_content_element.php\"\r\n\ttitle=\"Phil Ringnalda: Time for an untrusted content element?\">untrusted\r\n\tcontent element<\/a> (and other similar suggestions) would be abused\r\n\tby marking the entire content of every page; and due to the complete lack\r\n\tof semantics, uneducated authors (who make up a large proportion of the web\r\n\tcommunity) may begin to include the relationship within all external links\r\n\tso as not to help increase the page rank for any external site they link\r\n\tto, and may even do so as a result of company policy. Of course its appearance\r\n\tin company policies may seem like a wild assumption, but just consider other\r\n\tsuch <a href=\"http:\/\/www.dontlink.com\/\">linking\r\n\tpolicies<\/a>\tthat some companies have introduced. Therefore I am stating it\r\n\tas a possibility, not a certainty.<\/p>\r\n<p><a href=\"http:\/\/www.actsofvolition.com\/\" title=\"Acts of Volition\"><cite>Steven Garrity<\/cite><\/a> has raised another interesting point in his <a href=\"http:\/\/www.actsofvolition.com\/archives\/2005\/january\/thoughtson\"><cite>Thoughts\r\n\ton Weblog Comment Spam Prevention<\/cite><\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/www.actsofvolition.com\/archives\/2005\/january\/thoughtson\">\r\n\t<p>Tagging all links in comments left by weblog readers means that none of these\r\n\tlinks will contribute to the great hive mind that is Google <a href=\"http:\/\/www.google.com\/technology\/\">PageRank<\/a>.\r\nThere are loads of great and valuable links in weblog comments.<\/p>\r\n<\/blockquote>\r\n<p>He then continues to say that it is likely that some software may not use\r\n\tthe value for links added by registered users; but most\r\n\tcomments left on blogs are not from registered users at all. Thus, this\r\n\twill, in fact, inadvertently harm legitimate users, and indeed search results,\r\n\tby losing the benefit of mass communication.<\/p>\r\n\r\n<p>The real question, however, which everyone will be asking is: <em>will this\r\n\t\tstop comment spam?<\/em> On the surface, it seems like a brilliant idea. It attacks\r\n\tthe very reason behind a lot of comment spam which is designed to increase\r\n\tpage rank for spammer\u2019s web sites. However, to answer this question, one\r\n\treally needs to look at the current methods used to fulfil the same function.\r\n\tNot all spam prevention methods need to be looked at, just those that prevent\r\n\ta search engine from indexing the link and counting it towards page rank.\r\n\tThese methods include:<\/p>\r\n<ul>\r\n\t<li>A link redirector, such as that used by <a href=\"http:\/\/www.blogger.com\/\">Blogger<\/a>.<\/li>\r\n\t<li>Plain text-links.<\/li>\r\n\t<li>Moderation and deleting spammer comments.<\/li>\r\n<\/ul>\r\n<p>I\u2019ve have only listed these techniques, and avoided others like spam filters,\r\n\tblack lists, etc. because, while those are designed to stop spam before they\r\n\teven get published, these are designed (like <code class=\"markup attribute-value\">nofollow<\/code>) to reduce the benefit\r\n\tof the link for the spammer in the event that the comment is published.<\/p>\r\n<p>It\u2019s not hard to see that while each of these methods have been and will\r\n\tcontinue to be used in many blogs, none of them have succeeded in stopping\r\n\tthe flood of spam. Again, <cite>Mark Pilgrim<\/cite> has <a href=\"http:\/\/www.intertwingly.net\/blog\/2003\/11\/17\/Comment-Throttle#c1069204247\">explained\r\n\tthis phenomenon<\/a>\r\n\tin regard to the use of plain text links by saying that spammers don\u2019t\r\n\tcare.<\/p>\r\n<blockquote cite=\"http:\/\/www.intertwingly.net\/blog\/2003\/11\/17\/Comment-Throttle#c1069204247\"><p>Spammers have it in their heads now that weblog\r\n\tcomments are a vector to exploit.&nbsp; They don&#8217;t look at individual results\r\n\tand tweak their software to stop bothering individuals.&nbsp; They write generic\r\n\tsoftware that works with millions of sites and goes after them en masse.&nbsp; So\r\n\tyou would end up with just as much spam, it would just be displayed with unlinked\r\n\tURLs.<\/p><\/blockquote>\r\n<p>That point does not only apply to plain text links, but to any method with\r\n\tthe same effect. Spammers don\u2019t read blogs, they don\u2019t know who implements what\r\n\tfeatures and who doesn\u2019t; and they don\u2019t know which spam attempts will be successful,\r\n\tyet they continue to automate and spam anyone and everyone they can, in the\r\n\thope that some small percentage will get through.<\/p>\r\n<p>For this method to be successful, it would require that every single web site,\r\n\tthat provides user feedback mechanisms, to implement it. If only some\r\n\tdo, spammers won\u2019t care. If most do, but some don\u2019t, spammers will just try\r\n\tharder to hit those that don\u2019t, by striking more blogs harder, and faster,\r\n\tthan ever. However, I guarantee that no method will be completely fool proof\r\n\tand ever succeed in being used by 100% of web sites; and as a result, spam\r\n\twill continue. Of course, there\u2019s no need to be <a href=\"http:\/\/diveintomark.org\/archives\/2003\/11\/15\/more-spam\"\r\n\ttitle=\"Dive Into Mark: Weblog Spam\">completely\r\n\tpessimistic<\/a> about\r\n\tall this, it is another tool in a spam-fighter\u2019s toolbox that may have some\r\n\timpact; it just won\u2019t stop it entirely.<\/p>\r\n<p>So, in summary, <code class=\"markup attribute-value\">nofollow<\/code> is harmful\r\n\tbecause it:<\/p>\r\n\r\n<ins datetime=\"2005-01-20T12:24Z\"><p><strong>Update:<\/strong>\r\nchanged the following list to an ordered list for easier referencing.<\/p><\/ins>\r\n\r\n<ol>\r\n\t<li>Fails to indicate any semantic relationship between resources.<\/li>\r\n\t<li>Does not indicate what the resource is.<\/li>\r\n\t<li>Does not state the purpose of the link.<\/li>\r\n\t<li>Makes no sense for  any user agent or user, other than a search engine using\r\n\t\tthe page-rank (or equivalent) algorithm.<\/li>\r\n\t<li>May be abused to prevent any external links, regardless of their context,\r\n\t\t\tfrom a web site being counted towards page-rank, perhaps due to company\r\n\t\tpolicy.<\/li>\r\n\t<li>Has the potential to harm the benefits of mass communication among weblogs\r\n\t\tand their comments.<\/li>\r\n\t<li>Its name does not accurately represent its semantics.<\/li>\r\n\t<li>It will fail to stop comment spam completely.<\/li>\r\n<\/ol>\r\n\r\n<p>Because of all this, I will not be endorsing nor using this relationship\r\n\tfor any links on my site (assuming blogger gives me a choice in the matter),\r\n\tand I encourage all authors, <a href=\"http:\/\/www.sixapart.com\/log\/2005\/01\/support_for_nof.shtml\" title=\"Six Apart: Support for nofollow\">weblog <abbr title=\"Content Management Systems\">CMS<\/abbr> vendors<\/a>\r\n\tand search engines to seriously consider whether the small possibility of a\r\n\tslight reduction in comment spam is really worth causing so much devistation\r\n\tto the web community as a whole. Next, in part 2, I plan to discuss major revisions\r\n\tto my earlier link relationships proposal by incorporating all of the feedback\r\n\tI recieved and the ideas I have presented here to meet the criteria for well\r\n\tdesigned and useful relationships.<\/p>","protected":false},"excerpt":{"rendered":"A while ago, I wrote an entry entitled Link Relationships that detailed my ideas for additions to the values for the rev and rel attributes. It went a long way into describing many relationships for several categories including user feedback, quality, accuracy, accessibility, rating and endorsement. Having received some feedback from many sources regarding the &hellip; <a href=\"https:\/\/lachy.id.au\/log\/2005\/01\/link-relationships-revisited-part-1\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Link Relationships Revisited, Part 1<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[9,10,2],"tags":[],"_links":{"self":[{"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/posts\/53"}],"collection":[{"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":1,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/posts\/53\/revisions"}],"predecessor-version":[{"id":259,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/posts\/53\/revisions\/259"}],"wp:attachment":[{"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/media?parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/categories?post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lachy.id.au\/log\/wp-json\/wp\/v2\/tags?post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}