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.



I just discovered another annotation project very similar to mine. HyLighter is a web highlighting and annotation research prototype for use in education. First developed in 2001, with annotation added in 2004, it shares the key features of my implementation: it allows users of IE and Firefox to highlight passages of text and associate text annotations.

There are, however, a number of differences:

  • HyLighter allows users to compare what they have highlighted with what others have highlighted, using colors to indicate who has highlighted what and shades to show how many users have highlighted a passage.
  • In my system, all of a users annotations are shown in a margin, each lined up with the associated highlighted passage of text. With HyLighter, the user must click on the highlighted passage to retrieve the annotation, and the notes are not lined up.
  • HyLighter allows users to see all the annotations (by all users) associated with a passage of text. My system only shows all the annotations by a single user at one time.
  • My system allows users to make their annotations public or private. In HyLighter I believe all annotations are public.
  • My annotation system is open source; HyLighter is not. Even the demo requires registration (I haven’t tried it).
  • HyLighter is a stand-alone application. My system, in contrast, is Web-aware and is designed to be easily integrated into other web applications. I have integrated it with Moodle and provided instructions for doing the same with other applications. Most of my code is in the Javascript front end, where it is independent of the web application; the back end can be extremely small (in the static demo it’s just an XML file). HyLighter, on the other hand, has a Java back end with administration features; I suspect it also has much more of its implementation code in the back end.
  • HyLighter associates annotations with documents. Mine associates them with URLs and document fragments – mine appears to be more web-ready (I could be wrong). I also export annotations as an Atom feed.
  • I have a smartcopy feature which adds context information to quotes created with copy and paste.

Their research agenda is also different: they focus on how students highlight, both to measure student learning and to improve students’ ability to select key passages of text. They also suggest using HyLighter as an alternative to threaded forums.

By contrast, I recommend against using annotation as a substitute for forum posts, and have endeavored to keep the system focused on annotation. Our research interest (that of the TextWeaver team) is in enabling students to construct (weave) richer dialogs, using annotation and smartcopy to reference other parts of a discussion (hence the focus on forums rather than documents).

Anyway, it’s all very interesting. I’m somewhat disappointed to discover I am not in fact unique, and surprised that all my searching the web for other systems didn’t turn this up before now. I only discovered HyLighter because it showed up in a search I subscribe to of all blogs mentioning web annotation. I suspect the reason for this can be traced to the fact that the HyLighter team has not open-sourced their software. Which is a shame, really.