Getting Started with Microformats
[Updated: Fixed typo, "microformats are created on a whim" should have been "microformats are not created on a whim" ]
Attended a really interesting talk about Microformats from Tantek Çelik of technorati.
I knew a little bit about microformats going in, so before I go into his presentation, let me fill my readers in. Microformats are a way of adding semantic information about data contained in an existing format (XHTML). XHTML already contains a mechanism for separating semantic information from presentation information, that is, CSS. The issue is that the inherent semantics in XHTML are all around document structure (i.e. this is a paragraph, this is a list, this is a table). However, the same mechanism used to create classes of tags that can be styled uniformly using CSS, can be used to attach a semantic meaning to a tag for data processing, a la, the "class" attribute. By using well defined HTML classes for tags that contain structured data, a page can contain data that is simultaneously human readable and machine readable. For a more thorough, and probably more accurate description of what microformats are check out the microformats.org wiki.
Here are a couple of interesting take aways from Tantek's presentations (the slides are available here):
- Microformats can't solve all your data format problems, but when data is already being represented in similar, human readable, semantically weak ways across the internet, microformats can be applied to make the data consistent, reusable, and searchable.
- "Microformats value the 80-20 solution. It is better to solve 80% of the problem with a simple solution that people can implement quickly, than to solve 100% of the problem with a complex solution." Paraphrased, check the video for the verbatim quote.
- The fact that the machine readable data is the human readable data ensures that the data gets human checked, so it is more likely to be accurate and up to date. For example, if I put vcard file on my blog, I might forget to update it when I change my profile, but if my profile is my vcard (using the hcard microformat) then it will be in sync by definition.
- Microformats are all about the community, the community collaborates and iterates on them. This ensures that microformats meet the community’s needs and no more. There isn't some standards body going off the tracks trying to create something monolithic.
- New microformats are not created on a whim, reuse is better, and when they are created, they are based closely on the specific problem space.
One of the microformats that interests me a lot right now is the hTodo format which is similar to the hCalendar format in that it is derived from the iCalendar spec, but it is for todo list items or tasks. This one is still in development, so it will be interesting to see where it goes, and possibly participate in the process.