The Google Wake-Up Call

February 23, 2005

Micah Dubinko

"Genius is one percent inspiration, ninety-nine percent perspiration." -- Thomas Alva Edison

This week I'll be looking at some broad developments in the XML world and on the web. Especially in the software realm, new and useful technologies have a way of quietly developing under the guidance of one or a few stewards, sometimes for years, without being widely noticed. Even with a small circle of direct influence, though, these technologies have the subtle effect of priming the minds of those who come across them.

Then one day, some large, visible company does something that takes full advantage of the new technology. Pow! Suddenly everyone's talking (or blogging) about it. All the pieces were already there, the company merely put them together in a clever and highly visible way.

One company that is making this a habit, not to mention fitting the description of "visible", is Google. Let's see what influence they've had on XML lately.

A Renaissance of rel

The rel attribute has been a part of HTML for a long time, though sadly neglected for much of its life. Added to a hyperlink, it specifies a relationship embodied in or by that link. One of the pioneers of increased rel usage was Tantek Çelik with his work on the XHTML Friends Network specification. Tantek, incidentally, now works for Technorati, a key player in the revitalization of rel.

Google entered the fray by not only helping to develop but also, more importantly, to evangelize a tiny specification that has come to be known as nofollow, based on the value that goes inside the rel attribute. In short, a link with nofollow will be ignored for the purposes of Google's PageRank™ algorithm, or similar systems, presumably to discourage spammers from plastering automated comments across unsuspecting weblogs. As we will see, it has more far-reaching effects.

Community reaction was swift and intense. Almost universally, the specific name nofollow was criticized, as commentators pointed out that the spec says nothing about whether or not a spiderer will follow the link, only whether to analyze it. Some alternate names: noendorse and unrelated. Others had deeper objections.

In any case, nofollow is here now and reasonably deployed. In some ways, it is akin to other folksonomy efforts, like voting or tags of various flavors. It differs in a key respect, though; while folksonomy efforts give power to authors at all levels, nofollow favors those with their own websites.

Here's how nofollow shifts the balance of power on the web. Imagine you create a weblog to talk about cameras, or your novel-in-progress, or whatever. Since you are ultimately responsible for all content on the site, your role is that of editor-in-chief. If you decide to allow comments, you add a lower level to the authorship food chain. Now Google's advice is to have a default of a nofollow badge on all such contributed content. Of course, as editor-in-chief, you can disregard Google's advice, or implement it selectively, perhaps such that only unauthenticated users get nofollow. This gives more web-shaping power to the editor-in-chiefs of the world, at the expense of ordinary users and spammers.

As a side effect, this encourages folks to start their own weblog. If you want your voice to be heard, become your own editor-in-chief. Conveniently, Google offers just such a service. The jury's still out on whether nofollow is actually reducing comment spam.

Web Application (for real this time)

Ever since March 2001, when the Mozilla project enabled XML Extras, it's been easier to build cross-browser web applications. A key component of this toolkit is XMLHttpRequest, a script-accessible API for reading and writing XML "behind the scenes", without the usual full-page reload associated with web applications. (See the article by Drew McLellan, "Very Dynamic Web Interfaces", for some ideas about using XMLHttpRequest.) Typically, though, this capability had been underutilized. Not any more.

GMail did wonders for demonstrating the power and responsiveness possible in a web application. Google Maps goes even further, though it retrieves its XML via a hidden iframe technique instead of XMLHttpRequest. The Google Maps jaw-dropper is the user interface; smooth panning, zooming, useful keyboard support, all things you'd expect to see in a conventional desktop app. Once again, there's nothing entirely new here, just an outstanding assembly of existing pieces. Expect to see some revived technical competition among mapping web sites, as well as nearly all other interactive web services (in the general sense, not SOAP and friends).

There is a minor downside: Under the hood, Google Maps transforms and renders incoming XML with client-side XSLT, which isn't currently working in Safari and Opera. This style of development makes frequent use of code branching based on functional detection, and yes, lots of testing.

Another useful data point is that Mac users (via Firefox in this case) embrace Google Maps. If the same application were written as a cross-platform executable, it's likely that Apple User Interface loyalists would have been up in arms, demanding something with the specific look and feel of other OS X applications. Applications that run in the browser are judged against different rules. This alone could be an advantage for development, beyond the usual reasons like zero-install and letting someone else worry about backups.

A question in the minds of many is whether it takes Google-like resources to write these kinds of web applications. Plenty of evidence says "no". Powerful web applications like Flickr, Mappr, and even Verity LiquidOffice have been developed by much smaller client-side teams. The primary challenge is working in large volume with ECMAScript, which has to be treated as a full programming language. Typically, increased interaction with a server will be part of the application as well. Smaller, focused teams will be able to accomplish great things.


Dale Carnegie's book How to Win Friends and Influence People recounts a story about how Charles Schwab, working with one of his steel mill managers, was able to overcome a lull in production. He simply chalked a "6" on the floor, representing the output of the day shift. The overnight shift became motivated enough to produce a "7". Seeing that, the day shift pitched in, ending up with a proud "10" chalked on the floor. The mill went from worst producer to best producer.

We're seeing something similar today in the web applications sphere. As a result of Google's showy displays, lots of developers are getting inspired to new heights, and lots of great technology is getting to the mainstream.

Births, Deaths, and Marriages

Announcements from the XML world since last XML-Deviant.

XML BeLux Schema Series

A series of XML Schema workshops with the industry experts, including Priscilla Walmsley, Eric van der Vlist, and Rick Jelliffe.

Semantic Technologies for Publishing Managers Workshop

This conference is coming up in New York on March 9.

Ten new XQuery family drafts

Jonathan Robie reminds us of ten new XQuery-family documents recently published, all available from the W3C Technical Reports page.

New and Updated Tools

Topologi Markup Editor 2.3 and five additional utilities.

Documents and Data

Also in XML-Deviant

The More Things Change

Agile XML


Apple Watch

Life After Ajax?

Various quotations and statistics from recent XML list activity.

Henry Thompson offers his personal insight into XML Schema design decisions.

"Not all databases are backward enough to store dates and numbers in binary format" - Rick Marshall

Back of the envelope for xml-dev (Feb 14-20): 150 posts by 51 posters; the top four posters sent more than one-third of all messages. 40798 words, 2335 sentences, overall readability grade level: 11.2.

Character Model for the World Wide Web 1.0: Fundamentals: This must-read document is now a W3C Recommendation.

Bloated monster sighting.