I’ve been thinking a little bit about the syndication formats for microblogs lately, and I’m wondering if we might all agree upon some very simple conventions to integrate the various providers. Nothing profound here, just some simple ideas about how to get an easy win with existing technologies.
Taking FriendFeed as the best current example of an aggregation site, I notice that the FriendFeed team has hand-coded various content providers, but they don’t have the same richness enabled for generic feeds.
For example, take Dave Winer’s stream on FriendFeed. His FriendFeed page looks pretty darn good, doesn’t it? (I pick Dave because he does more to syndicate various content sources than just about anyone.)
But then notice that his native FriendFeed bookmarks, his Amazon wishlist, and his Flickr photos all have rich content syndicated and look stunning, but his basic blog feed — itself a very rich content source — is comparably lacking in how it is represented in the aggregated stream.
It’s the difference between this:

And this:

Why is this? Dave’s blog, syndicated over RSS, has plenty of great data to display. Only the blog post title is displayed — missing are the images, an icon, a summary, and more. Couldn’t those be captured as well?
As a strawman proposal, what if content aggregation sites agree to display the following standard elements from RSS feeds:
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Scripting News</title>
<link>http://www.scripting.com/</link>
<description>
Dave Winer's weblog, started in April 1997,
bootstrapped the blogging revolution.
</description>
<language>en-us</language>
<copyright>Copyright 1997-2008 Dave Winer</copyright>
<pubDate>Fri, 15 Aug 2008 07:00:00 GMT</pubDate>
<lastBuildDate>Fri, 15 Aug 2008 20:35:00 GMT</lastBuildDate>
<docs>http://cyber.law.harvard.edu/rss/rss.html</docs>
<generator>OPML Editor v0.73</generator>
<managingEditor>scriptingnewsmail@gmail.com</managingEditor>
<webMaster>scriptingnewsmail@gmail.com</webMaster>
<item>
<title>Perfect timing!</title>
<link>
http://www.scripting.com/stories/2008/08/15/perfectTiming.html
</link>
<guid>
http://www.scripting.com/stories/2008/08/15/perfectTiming.html
</guid>
<comments>
http://www.scripting.com/stories/2008/08/15/perfectTiming.html#disqus_thread
</comments>
<description>
I just read this [...]
</description>
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3"
length="12216320" type="audio/mpeg" />
<pubDate>Fri, 15 Aug 2008 18:23:10 GMT</pubDate>
</item>
</channel>
</rss>
From this feed we’d want to consider the following RSS elements:
rss/channel/title- the name of the blogrss/channel/link- the link to the blogrss/channel/item/title- the name of the entryrss/channel/item/link- the link to the entryrss/channel/item/description- extract the first 512 characters as the first commentrss/channel/item/enclosure- inlined media types (images, mp3, video)
And for the Atom case the corresponding elements would be:
feed/title- the name of the blogfeed/link- the link to the blogfeed/author/name- the name of the authorfeed/entry/title- the name of the entryfeed/entry/link@rel="alternate"- the link to the the entryfeed/entry/link@rel="enclosure"- inlined media types (images, mp3, video)feed/entry/summary- extract the first 512 characters as the first commentfeed/entry/content- use this if the summary doesn’t exist
For bonus points in both cases, parse the HTML content of the rss/channel/item/description or feed/entry/summary elements for <img/> elements, extract them, and display them as images along with the post.
And for a custom icon, use the host’s /favicon.ico.
Put all that together and we’d have the following, all without any manual intervention on the aggregator’s side:

This is just the beginning — I feel I’m only scratching the surface of what can be extracted from existing syndication formats. For example, comment stream aggregation (via the comments element or RFC 4685 autodiscovery) is a great next step after this. And I only call out FriendFeed because they’re the best at aggregating multiple content sources, but these concepts apply to any content aggregator, and finding a way to reuse existing formats like RSS and Atom to create rich presentations automatically will enable us to do more with less manual work between aggregators and publishers.
Also note that this isn’t intended to replace a standard format for activity streams. Those are something slightly different, and I know efforts are underway to define conventions there. Rather, this is simply an effort to get more out of the syndication formats we already publish, and in doing so, allow for aggregators like FriendFeed to present a richer experience to their users without requiring as much manual tuning per content source.
Thoughts?
Update:
Bret notes:
We do pull out images and videos for entries that use Media RSS, but those tend to be video and photo sites (the spirit of the Media RSS format is that the post *is* a photo, as opposed to the use case highlighted here, where the picture is simply a thumbnail or accompanying a larger post).
Good point, and sounds like a great thing to do.

August 16th, 2008 at 1:53 pm
[...] a related topic DeWitt Clinton talks about the way FriendFeed handles general RSS sources. View the forum [...]
August 16th, 2008 at 10:07 pm
Consistency would be wonderful, but we should consider that microblogging is about more than just the individual syndication feeds. Unlike traditional blogging, the microblogging world appears to have recognized that XMPP distribution of content is the mechanism that should be used to provide for federation between microblogging sites and the common practice is to embed Atom Entries in the XMPP feeds using variants of the “Atom over XMPP” specification. Given that Atom is the syntax for use over XMPP and will be used for federation, it would make sense to root syntactical discussions first within the context of the Atom Entry syntax and only later specify mappings to RSS2 for those services that want to provide both RSS and Atom feed documents.
bob wyman
August 17th, 2008 at 7:04 am
Brilliant. Glad to see others thinking along these lines. :)
btw: you could also add :
rss/channel/item/author- the author of the entry
..to the list above for RSS.
A while ago, I as looking at the feeds I create (which contain all the relevant/standard data to provide the richness which some (hand-supported) feeds have in FreindFeed. I was a bit disappointed when I found out that they wouldn’t show the thumbnail or players for entires from my rss feeds.
Looking foward to more movement, support and discussion about all this.
K
August 18th, 2008 at 9:34 am
FriendFeed already does some stuff with enclosures but I’ve only experimented with adding MP3s, not pictures or video.
I like your point about using the favicon and I hope that FriendFeed do pick that up.
I think that quite a lot could be acheived with the tag of the RSS feed too, some kind of standardised comment API with auto-discovery could allow for closer integration between aggregators and sources.
August 27th, 2008 at 1:08 pm
[...] a related topic DeWitt Clinton talks about the way FriendFeed handles general RSS [...]