Microformats and Web 2.0
Micah Dubinko's new column, XML Annoyances, begins this week with a look at the role of microformats, particularly with regard to Web 2.0 applications and services, as the core XML-specification era comes to a close.--Editor
We are all creatures of habit. We get set in our ways and comfortable with our working set of assumptions about the world around us. Yet sometimes those assumptions are misplaced, a sure-fire cause of annoyance. This goes for the XML community as much as any other group. For XML pros and occasional users alike, it's worth critically examining some of the "common sense" we've come to rely upon.
One of my habits--practically down to the muscle-memory level--is to check Wikipedia about any topic I encounter. As of the publication date, the first sentence under the XML topic reads:
The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages.
This has been the party line for the seven years since XML 1.0 first became a W3C recommendation. The follow-on specification of Namespaces in XML further reinforced the notion of preparing for a thousand applications of XML to bloom--enough so that a complex three-part naming system using difficult-to-remember (and troublesome) URI strings came into play.
Times change. As the final installment of the XML-Deviant column mentioned, "the classic era of core XML specifications is ending." In the early days, creating fresh XML-based languages was important and necessary; in fact it was the whole point of XML. Today, many still think that way. However, the point of diminishing returns for whole-cloth language invention lies behind us. In short, we've got enough markup languages for now, thank you. What's left is figuring out how to better use what we've got.
An informal movement called microformats embraces reusing existing XML vocabularies, most notably XHTML, in favor of developing either freshly-minted vocabularies or proprietary formats. A wealth of information is available on microformats.org, as well as here on xml.com, but to get a better feeling for what's happening in the microformats space, I tracked down a few leading practitioners: Tantek Çelik of Technorati and Casey West of Socialtext.
"Those Who Ignore Standards Are Doomed to Reinvent Them"
To start off, an example: Çelik, originator of the quotation above, points to Outline Processor Markup Language (OPML) as an area where microformats could have provided a simpler, browser-friendly, lower-barrier solution to a common problem. It's true that many software packages, including nearly all feed readers, have some level of support for OPML, but wouldn't it have been better for an outline format to have been browser friendly? What purpose is served by introducing a bunch of one-off elements, with names like
dateModified, or (shudder)
windowLeft instead of using existing, well-known XHTML elements?
That sort of question has been asked before. And the answer is XOXO, Extensible Open XHTML Outlines.
Microformats are human readable, but still machine readable. They're simple, targeted an normal people, not just XML experts. A more detailed list of what exactly microformats are and aren't remains basically unchanged since XML.com's earlier discussion. What has changed is the focus on an open research and development community, focused around the microformats.org wiki and website.
Microformats can be thought of in two general classes, "elemental" and "compound." Elemental microformats consist of a minimal solution to a single problem, often in as little as a single attribute. Common examples include rel="tag", used for folksonomy tagging, rel="nofollow", used to link to a page without endorsing it, and rel="license", for attaching a specific license to a web page. Additionally, larger formats like XOXO are still considered elemental.
Closely related to microformats are "profiles," or subsets of a larger markup language. Examples include XHTML mobile profile (PDF link), SVG tiny, or UBL Small Business Subset. The primary difference between a profile and a microformat is that a profile is more directly created in the image of its larger ancestor. It's reduced in size, but still more-or-less serving the same purpose. Microformats are more focused.
Pages: 1, 2