Namespaced Extensions in Feeds
Feeds can be used for more than just text; they can embed pictures, podcasts and video. There are even more esoteric bits of data that can be attached to feeds, like the geographic location that a post is about, the number of comments it has received and that (legal) license its contents are available under. To make all of this information easily parseable by computers, it is usually available as additional items and attributes in XML namespaces. For example, the Media RSS namespace is used to add more information about videos and pictures, like dimensions, duration and a thumbnail.
This usually isn't of direct interest to end users, it's just matter of which namespaced extensions a feed reader supports, and the more the merrier. However, since there are quite a few ones out there, developers must make trade-offs and decisions. One easy way to prioritize extension support is to see which ones are used more often.
I wrote a small MapReduce program to go over our BigTable and get the top 50 namespaces based on the number of feeds that use them. This means that we only looked at feeds that have at least one subscriber, i.e. the "feeds that matter." Note that the default namespaces for syndication feed formats (e.g. http://www.w3.org/2005/Atom for Atom 1.0) are excluded, since I was interested only in extensions to the elements that are already expected to be in a feed.
We thought this information might be of interest to others, the way our analysis of XML errors and web authoring statistics have been. If I have missed anything, or if you have any feedback, a message in our discussion group or a link to this blog post is the best way to reach us.
table#stats {
border-spacing: 0;
border-collapse: collapse;
font-family: sans-serif;
}
table#stats code {
color: #333;
font-weight: bold;
}
table#stats thead {
background: #eee;
}
table#stats th:first-child {
white-space: nowrap;
}
table#stats td,
table#stats th {
border: solid 1px #ddd;
vertical-align: top;
padding: 0.1em 0.3em 0.1em 0.3em;
}
table#stats td:first-child {
text-align: right;
}
Read the complete post at http://googlereader.blogspot.com/2006/08/namespaced-extensions-in-feeds.html