First, my web annotation implementation has a new name: Marginalia. This may drop my Google rank down somewhat for searches on “web annotation”, on the other hand it will give links to the project something to call it. “Web annotation” just wasn’t cutting it anymore.

Second, I should mention a recent sticky-note annotation tutorial at IBM developerWorks provides an easy way to make Marginalia work with generic (or nearly generic) web pages. The tutorial suggests using a bookmarklet1 to allow a user to enable annotation on any page. The bookmarklet inserts the annotation Javascript code, adding the feature2.

This is easy in the case of IBMs demo, in which sticky note-style annotations are associated with an entire Web page. In my case it’s trickier, because I have highlighting of passages of text and notes in a margin. The solution, I believe, is to leverage microformats. Any page supporting a standard microformat can indicate where annotatable content is. The Javascript can then figure out where to create its margins. I planned long ago to support a blog post microformat for precisely this reason, and adopted some experimental mark-up. Now there’s a draft for hAtom. This should be adopted in a future version of Marginalia.


1 A bookmarklet is a browser bookmark (“favorite” in Microsoft-speak) that executes a short piece of Javascript. I have bookmarklets for posting to and searching Technorati set up in my browser.

2 The trick is that this avoids triggering Javascript security restrictions. Javascript cannot use XMLHttpRequest to load files from a domain other than that from which the Javascript comes. This makes it tricky to use a common annotation store for annotating pages from multiple sites. By using a bookmarklet, the Javascript always comes from the same site (the site hosting the annotation back-end), thereby avoiding the problem.