I've committed the new annotation support. The format has been hashed out about two years ago, and I've worked off and on on implementing it. The format is incompatible with the previous annotation format, so any annotations in the previous format will be lost (you can extract them from the metadoc if you want), but since annotation support was never official in a released version, and was buggy, I am not very much worried by this.

The annotations are stored in a PlkA-dbname database. One thing I still haven't implemented is what happens when a new document is sync'ed. I think what I'll do is ask whether to delete the old annotations. The user can keep them at her own risk, but they may be out of sync.

I need some help.
1. I'd like to have a toolbar icon for "annotate": after tapping it, one would tap on a word to annotate that word. The icon of course needs to match the current toolbar icons in style and size, and needs to be in several sizes. See http://cvs.plkr.org/index.cgi/viewer/ icons/ for the current icons. Moreover, ideally, the annotate icon comes in two states: an inactive state, and then an active state that comes on after you tap it, while you have a chance to tap on a word to annotate it. My suggestion is that the icon be a highlighter pen. In inactive mode, the pen can be either shown lifted or closed, and in active mode, it can be down or open.

2. Please bang on the new code. I'm sure there are bugs. The code should appear in the next snapshot build, or you can build it yourself from cvs. To add an annotation, go to the Lookup Preferences, set word-lookup to be always active, and set the action to annotation. Then, to make an annotation, tap on a word in the text, and then either press OK just to make that word be highlighted, or enter an annotation and press OK. Currently, annotations are all linked to words in the text, and can be accessed by tapping on the words. This is more or less sufficient for my needs. One could make annotations attach to phrases--the backend supports any text range-- but a drag-selection UI would need to be implemented. The annotation format is pretty much fixed now (though it is extendable, which is one of the nice things about it), but the code is probably not stable enough for production use. I.e., if you're a Shakespeare scholar, please don't use the new annotation support to store all of your precious commentary on Hamlet. (That said, the more likely thing to happen with a bug is that the annotations will no longer be displayable, but they could probably still be recovered.)


Additions in the near future:
I am going to (unless there are serious objections) make the bookmark code store all of the bookmarks as annotations with a bookmark flag. This means we can have one form to add a bookmark and annotation, and the bookmark viewer/editor form will be able to view/edit annotations (I will make that optional). I will add a bit of upgrade code that migrates old-style bookmarks to new ones automatically. This will also mean that the annotation backend (annotation.c) will no longer be optional, though the frontend will still be controllable at compile-time.


If anybody wants facilities for merging notes from different people, this can be done with a desktop utility--the database format is very straightforward (one annotation per record, with a simple header documented in annotation.h). One concern, however, is that the current UI will have trouble with overlapping annotations.

Alex

--
Alexander R Pruss
Associate Professor
Department of Philosophy
Georgetown University

www.georgetown.edu/faculty/ap85

_______________________________________________
plucker-dev mailing list
plucker-dev@rubberchicken.org
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to