As many (most) of you will know, feeds for weblogs (& stuff) can be published using RSS or the new kid on the block, Atom. Within these, there are different versions to think about. RSS comes (in practice) in 0.9, 0.91, 1.0, and 2.0 flavours. Atom comes (in practice) in 0.3 and 1.0 flavours. I currently use Typepad for this blog, so the feed is available in RSS 1.0/2.0 and Atom 0.3 flavours.
Tim Bray is one of the creators of Atom, and he makes a good case for why it is better than RSS, so in general I try to use Atom feeds rather than RSS feeds. I use the Opera browser as my feed reader, and for the most part it does a pretty good job. However, when I use the Atom 1.0 feed from Tim's "ongoing" blog, Opera doesn't show a link back to the Web page for each entry. This means I'm currently subscribing to Tim twice - once in Atom for reading, once in RSS to get links back to the Web page for each entry.
I understood from Tim that the problem was an Atom 0.3 versus Atom 1.0 issue, and that Opera needed to catch up. That I accepted, until James Tauber switched his blog feed to Atom 1.0. With James's posts, I do get a link back to the Web page for each entry.
At this stage I was confused. Two alleged Atom 1.0 feeds, and different behaviour in my feed reader. It was time to check out the Atom feeds from the two sites (these are XML, not HTML):
It didn't take long to find the answer. Atom contains a <link> element which points to the Web page for the post, but it doesn't have to be an absolute URL; in particular, it can be relative to any xml:base declarations in the Atom feed XML. The structure of James's feed (leaving out a lot of stuff) is
<feed xmlns="http://www.w3.org/2005/Atom">
<entry>
<link rel="alternate" type="text/html"
href="http://jtauber.com/blog/2006/01/30/this_entry_is_exponentially_longer_than_the_previous_one"/>
</entry>
</feed>
where there is a simple absolute URL pointing to the Web page for the post. The corresponding structure for Tim's feed is
<feed xmlns="http://www.w3.org/2005/Atom"
xml:base="http://www.tbray.org/ongoing/ongoing.atom">
<entry xml:base="When/200x/2006/01/31/Neo-Office">
<link href="Neo-Office"/>
</entry>
</feed>
Tim's feed uses relative URL paths and xml:base (twice). So Tim's feed is more of a test feed for Atom feed readers, whereas James's feed caters to a wider range of feed readers. Nobody's right or wrong here, but people have made choices, and those choices produce different results. I guess what we need now is a standard way of using the Atom standard ...