The right place for data in your feed
I've suddenly gotten very interested in microformats, especially since it struck me very soundly that they belong in this final chapter of my book about extending feeds.
I started off writing a bit about
mod_event and RVW with respect to extending feed formats with additional metadata, but then the microformat thing hit me: Why extend the feed format metadata when you can extend the feed content? This seems so obvious to me that it's either got to have been covered by someone else already, or it's so wrong that I just haven't seen it yet.
For one thing, extending the format limits your extension to that format, unless you craft it in such a way that makes it compatible with other feed formats. This is not impossible or even hard in some cases, but it's more of a problem of adoption and buy-in than a technical issue.
mod_event is an RSS 1.0 extension; how many RSS 2.0 or Atom 0.3 feeds have you seen using some adaptation of
mod_event? (Though, to be fair, how many RSS 1.0 feeds have you seen using
mod_event in the first place?)
Just what do calendar events have to do with syndication feeds, other than that feeds are a convenient carrier wave? Why should we try to shoehorn calendar data into the fabric of a feed itself?
All the feed formats I care about can carry (X)HTML content, and these microformats are just XHTML content constructed along a certain set of conventions. So, any feed supporting XHTML content can carry microformat-enriched content--without, necessarily, any feed format alterations, convincing of feed format authors, or buy-in from aggregator developers. (Of course, you might need those developers to actually do something with the microcontent when it arrives, but that's another story.)
Leave the feed to manage the business of facilitating push-via-poll with aggregators and decouple the markup and structure of rich microcontent items from feed formats altogether.
Furthermore, this helps address the question of "Is a feed the right place for your data?" My tentative answer to this is, "No, but it doesn't hurt if it's in there, too."
Think of the feed as just a mechanism to facilitate content delivery--and not as the embodiment of the content itself. Mind you, feed entries do make nice representations of content, covering many common attributes. But, keep feeds themselves constructed in terms of metadata about content. Although items of content might also be carried in full in feed entries, the "real" content should exist somewhere else as well.
mod_event should be used to provide hints to aggregators whose authors, for instance, might not care to bundle in and maintain a full-blown microformat parser.
Think of a MySQL table: You can define columns in a table, and then you can define zero or more indexes on those columns. The data's still there if you don't define any indexes, and queries are still possible--it's just that queries are more laborious. And, your indexes don't need to be matched up one-to-one with your columns--they can be concatenations of columns, or just about whatever else you want.
mod_event like an index for aggregators on hCalendar content--hCalendar defines the columns,
mod_event facilitates better routing/filtering. Although getting buy-in from feed format authors and feed aggregator developers helps get indexes created, you don't necessarily need that to get the content into the feed in the first place.
Okay... I think all that made sense. I had to get that spewed out of my head before I lost it. :)