At 01:37 AM 3/18/2002 +0000, Nick Kew wrote:
>
> As soon as I had a working prototype, it became abundantly clear that
> there is a deep and fundamental flaw in Annotea: we construct long
> and detailed pseudo-xpointers, but these become totally useless as
> soon as a page is updated. And annotea has no mechanism for dealing
> with this, nor indeed even to detect that a page has changed.
This fundamental flaw was clear to me and the other members of the
Crit project group as soon as we read the early specifications for
XPointer. We responded by suggesting that XPointer adopt a simple
text-based pointer scheme, using whitespace-insensitive string matching,
but our request was ignored. Instead, XPointer grew more complex,
adding even more features that were perhaps academically interesting,
but few people would use (or even understand) -- while neglecting to
add the simplest, most basic, and most usable method for anchoring
annotations. I find this extremely unfortunate.
It is vital that annotations be anchored in a manner that the *user*
understands. It is not sufficient even to invent a fantastically
intelligent algorithm for re-anchoring when the document is modified.
The re-anchoring must be so simple and predictable that a typical
user can learn to figure out what is going to happen when the
document changes.
Given that all the user gets to see in a rendered document is the
textual content, it follows that the textual content must drive the
anchoring of annotations.
This is how Crit works. See http://crit.org/. Crit has worked this
way since 1997 when it was first introduced, and while it has some
other problems -- it is slow and its current implementation doesn't
scale very well at all, for example -- we have never had a problem
with anchoring annotations to changing documents.
When the string target is unchanged, the annotation sticks; when
the string target is no longer present, the annotation falls off.
This is easy for people to understand. Users can reattach annotations
themselves after they fall off, if they are still relevant. Until
we achieve Xanadu-style live editing of annotated, versioned documents,
i don't think it is really possible to do much better.
See http://crit.org/http://crit.org/draft-yee-url-textsearch-00.txt
for the specification of the anchor protocol that Crit uses.
-- ?!ng