Saturday, December 16, 2006

Annotea investigations

So, back when I was working on the first edition of my book I spent a lot of time looking at PDF documents generated by the publisher, annotating them in various ways, and then sending them back. Usually what I'd do is use Adobe Acrobat to add little notes to the places in the document that needed to be fixed. If you've never used this feature of acrobat, notes show up as little squares in the document, and you can click on them to open them up, at which point they expand and show you their content, almost like little minimizing sticky notes.

Now, there were a lot of things to hate (and I mean really hate) about this workflow, but the ability to annotate documents like this was pretty slick, and if it was implemented correctly I could see it being really useful in other contexts (say, the web). So, every so often this idea gets stuck in my head, so I poke around trying to find out if someone has already implemented a magical sticky-note annotation system for Firefox.

The most promising stuff appears to be built around the w3c Annotea system, which oddly enough we appear to be using at work for some stuff. Annotea is a RDF vocabulary and HTTP protocol designed for annotating web pages and storing the results as RDF. Annotations can refer to each other in various ways, store bits of arbitrary metadata, and generally do all the things the Semantic Web people seem to be nuts about, and despite that association (which generally in my experience means "will never do anything useful") it actually seems to do a reasonable job of filling the requirements.

There are at least a few implementations of the server side of Annotea, which is nice, and there are at some Firefox plugins that make use of it, but none of them really seem to do what I want. I'm looking for something that just lets you create a note at some arbitrary point in a html page, expand that note to show its content, allow editing of that content, and then later on when you browse back to the page it should attempt to insert any existing notes into the appropriate places. The Firefox extension that comes closest to doing this kind of thing is Annozilla, but it seems to have a UI that's way more complex than it needs to be (why the hell is there a sidebar damn it, that's totally unnecessary, this should be a single context menu item, and maybe some dialogue for searching existing annotations, that's it!), and on top of that I can't seem to get it to actually work (the annotations show up in my local server, but Annozilla keeps saying there's an error).

So, am I missing something here? Has someone actually implemented my magical web-based sticky note system, either with or without Annotea? Would other people find this sort of thing useful? Do I really care enough to dive into attempting to learn enough about Firefox extensions to make it happen?


  1. W3C's annotea has quite a few fundamental problems. See for example and the posts it references.
    Would my mod_annot (as used at apachetutor) be of any interest to you?

  2. Or how about ?

  3. I haven't tried it, but how about this?
    I swear I have seen products that do what you ask well over a year ago, but cannot remember the names.
    Google Notebook can also apparently do some of this.

  4. Niq: No argument that those are problems with Annotea, but at least it's a starting point. I'd like to think that it would be possible to extend the system to deal with those kind of issues.
    mod_annot sounds interesting, but I'm really looking to annotate arbitrary things out there that I don't have control over, not stuff served up from my own servers.
    Mads: Yeah, that's actually the server I'm using ;-)
    Mark: Diigo sounds interesting, but I'm not sure I like the idea of some arbitrary company I've never heard of holding my annotations. Will have to look at Google notebook, although it's got similar issues.

  5. Sounds like AnnoCPAN,, which does everything you describe. As far as I know it's an implementation of Annotea-like ideas, rather than being built on Annotea.
    It doesn't require any browser plugins. My only problem with it is that, as a module author, it increases the number of places you have to go to find out issues that people may be having with your code. But that's a small price to pay for the benefit it appears to bring.

  6. As Annozilla author I'm happy to admit that the UI is more than a little clunky.
    You can however go into the Options and enable autoloading of annotations, and inserting of icons into the document, then you'll be able to see the annotations as you load each page.

  7. And if you're having problems getting it to work with your server, drop me an email and I'll see if I can help.

  8. Hey Garrett, take a look at the annotation system the Django guys are using at . Pretty sweet stuff, I think they wrote it themselves...

  9. Annotea can be extended. Annotea objects (annotations, bookmarks, topics) can be stored anywhere not just one server or one file.
    Many problems that are stated Annotea problems are actually problems of any application trying to do the same thing. For instance, we left the door open for better ways of detecting and handling changes to the annotated document.
    Annotea uses XPointer for annotating XML documents, such as XHTML, MathML, SVG etc. Annotea applications have sometimes loosen some of these restrictions, but that is not an Annotea problem.
    I have been lately concentrating on Annotea Ubimarks the Annotea bookmarking/tagging application and the needed schemas for that. Exploring with Xpointer in bookmarks has been in my mind a long time and it migth help with some needs.
    I'm always happy to get help in making Annotea or the Annotea applications better. Annotea Ubimarks is also open source.

  10. Web annotation has been around for a long time. The strongest contender for a universal system was Third Voice, which went belly-up a few years ago when it became a web grafitti system - but it did have quite a lot of users. These days there's Ziplite, Stickis, and lots more to be found at Wikipedia's web annotation article.