I tried simulating the situation that I had mentioned in my previous blog entry on Gmail forwarding and service interoperability – an interesting observation.
I first opened a new account in Reader1 (I don't want to mention this) and then subscribed to my blog's RSS feed using it. Then using Reader2, I subscribed to Reader1's RSS feed. I also finally subscribed to Reader2's RSS using Reader1.
Nothing happened again. Reason?
RSS 2.0 specification says that there should be one 'channel' element within the root 'rss' element. 'channel' can contain any number of 'item' elements. 'title', 'link' and 'description' are mandatory elements in 'item'.
Usually, every RSS feed includes a 'pubDate' element although it is not mandatory. Also they include a 'guid', which is a Globally Unique Identifier. The latter makes it unique. The former can be used along with 'link' to give a hint of duplicate entry. So the readers usually identify duplicate entries and a loop will not occur.
However there is something that can still be experimented:
Since the mandatory elements are only: 'title', 'link' and 'description', and since you cannot uniquely identify any feed using one of these (atleast I could not see any mention of this in the spec), we can create an environment where we can show that the infinite loop can occur in principle.
2 things before I wind up:
One: There is some solution to stop the infinite loop problem in RSS although this is not obvious in first sight.
Second: This problem is something that we need to seriously consider now (this stage of web evolution) or else it could be a major design flaw that will require ugly patches later on (remember IPv4?). And this is where a formal approach (standards based) always helps.