Paving Cowpaths

This article appeared as my column for Connect Magazine in September 2005.

Many of the roads we travel on day-to-day weren't planned with today's traffic and desitnations in mind, they are simply the cowpaths and footpaths of yesterday made wider and smoother. And so it is with many of the things we do in business. The IT practices that we do day-in and day-out are often automated versions of yesteday's paper-based procedures.

This can have negative consequences when we miss the real opportunities for change that IT might offer, but often it's the only practical way to make progress. Take standards for instance.

There's no denying that XML has been a hugely popular and successful idea. I'd go so far as to call it one of the most important changes in computer science over the last decade. So, I was surprised when Tantek Celik of Technorati said to me that XML's only real successes on the Internet were RSS and XHTML (an XML-compliant version of HTML). As I thought about it, I realized Tantek had a point. XML is widely successful and useful behind the firewall, but it's not lived up to its promised as a medium of exchange between organizations.

There are, of course, lots of examples of XML being used and available on the Internet, but it hasn't replaced earlier non-XML-complaint data transfer standards in a wholesale way. For example, vCard is a standard for transfering business card-like information electronically. Your mail program, no doubt, can attach vCard information to email that you send. vCard isn't based on XML, but an older tagged-data format. There have been proposals for XML-based vCard replacements, but they haven't caught on. Why change something that works?

Well, the problem is, of course, that it doesn't work for some things. It's difficult, for example, to put vCard data on the Web in a format that's people friendly. An XML-based format could be made people friendly by post-processing it with XSLT in an automatic way. Doing so, however, requires that people change how they're doing things--a propostion that is shaky at best.

Some folks have started to press for a third way called "microformats." According to the Web site, "microformats are a set of simple, open data formats built upon existing and widely adopted standards. Instead of throwing away what works today, microformats intend to solve simpler problems first by adapting to current behaviors and usage patterns (e.g. XHTML, blogging)."

Put another way, microformats, don't reinvent existing standards. Instead, they stipulate how a standard can be expressed in XHTML so that it's human and machine readable. Thus, my vCard can be translated into an hCard representation and then translated back without loss of information. What's more, the hCard form is perfectly accetable for viewing on the Web. (For an example, see my hCard.)

Microformats take advantage of the momentum that has already built up around HTML and the things people already do with it. Take hCard, for example: people already put their contact information on the Web. Almost every blog, most company Web pages, and countless other places contain contact information. With the addition of a few tags, this same, simple HTML becomes machine readable in addition to being human readable. Machine readable data can be used by programs for new and interesting applications. My hCard page shows a simple example: the link that displays the vCard information is dynamically processing the page itself and not just regurgitating a static file.

In addition to hCard, there are microformats for calendaring and events; opinions, ratings, and reviews; social networks; licenses, tags, keywords, and categories; and lists and outlines. More are sure to follow.

Microformat design has some lessons for all of us. The microformats Web site lists some important principles:

  • solve a specific problem
  • start as simple as possible
  • design for humans first, machines second
  • reuse building blocks from widely adopted standards
  • make formats modular and embeddable
  • enable and encourage decentralized and distributed development, content, and services

These same principles are good advice for anyone designing for the Web. Simple, reusable building blocks can form the basis for thousands of interesting applications. In fact, you could call that the underlying principle of the Web itself.

Microformats are a good example of creating new formats for existing applications--paving the cowpaths. By following the trails that people are already creating as they solve their problems, you're much more likely to get your standard, service, or product adopted.

Phil Windley teaches Computer Science at Brigham Young University. Windley writes a blog on enterprise computing at and is the author of a forthcoming book on digital identity published by O'Reilly Media. Contact him at

Last Modified: Tuesday, 12-Jul-2005 04:56:02 UTC