I’ve been a big fan of RSS for a pretty long time now. Though its been relegated to news syndication (mostly), I’ve always been intrigued with its ability to push content towards the user. That capabiilty is, in my opinion, what is so profoundly powerful about RSS. A user need not go snooping around various websites to see if anything’s changed. Instead, the information meets them halfway (so to speak).
While this is great for keeping up with your favorite news sites and blogs, I think RSS can prove to be an immensely powerful platform for delivering data to richer applications. As it exists today, the typical feed is comprised of headlines, links and sometimes blurbs. It’s effectively one-dimensional (that one dimenson is the channel).
RSS Traits is an RSS 2.0 module that attempts to introduce a simple way to enrich RSS feed elements so that consuming clients can, in effect, present a richer view of the arriving data beyond just a list of headlines.
The inspiration for RSS Traits came from some of the more creative uses of RSS that I noticed trickling onto the Internet. Ben Hammersly has done some great work that shows how you can creatively use RSS to get different types of data into a news feed.
From a product design perspective, I was intrigued by the simplicity of RSS but noticed that there was still something lacking once the client received that feed. Sure, if it’s just a bunch of headlines, all a client has to do is display them. However, if the data coming in is more than just headlines and descriptions, it’s hard to really gather the differentiating characteristics of each feed by just staring at the headlines.
Here’s the Fark.com RSS Feed. Notice how each entry title has a category in brackets before the headline. Fark happens to have a handful of categories they use to categorize their headlines. Many of today’s blogs have categories associated with them. Unfortunately, this isn’t a very elegant way to tag each entry by category. More importantly, the client can’t do much of anything with it.
RSS Traits allows you to add a lightweight taxonomy – right inside the RSS payload – that allows you establish any number of characteristics that can then be assigned to the entries within that feed. Feed readers and aggregators can then adjust their interfaces accordingly to accomodate the additional characteristics you’ve added to your feed.
RSS Traits is primarily driven by the notion that data can be more easily digested if it contains metadata around it that can then be distilled into visual cues. The RSS Traits specificaiton provides for the ability to associate colors and icons to particular entries (though this is not required).
The examples section of the RSS Traits specification illustrates some potentially useful implemmentations.
One final point: the goals of RSS traits can be achieved by simply creating a namespace and enriching RSS feeds in that manner. Nevertheless, drafting namespaces for some of the more basic uses is overkill. RSS Traits is a simple, and easily-understood alternative. Furthermore, because the taxonomies are inside the payload, consuming clients can effectively “morph” themselves to accomodate the information being delivered.
I’d be very interested in any feedback regarding this module. Feel free to comment here or email me.