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?