Annotations, sets, & servers


Annotation set naming:

The key thing about annotation sets is that there is more than one of
them.  Since there is more than one, that means that they have to be
named.  I lean towards naming annotation sets with some sort of UR*
syntax, preferably URL syntax.  Some possible annotation set names
in URL syntax are:

     1) annote://machine/aset1.aset  # New protocol & aset doc. format

     2) http://machine/aset1.aset    # Existing protocol & new doc. format

     3) http://machine/aset1.html    # Existing protocol & existing doc. fmt.

In my annotation proxy prototype, I used solution 3; either of the
other URL's would work as well.

Annotation set/server correspondence:

An annotation server is a machine that serves up annotation services
(what ever annotation services are.)  There is no particular reason
why the same machine can not also be configured to be running one
(or more) web servers.

The next issue is whether there is a 1-1 correspondence between
annotation sets and annotation servers.  Some discussion on this
mail alias made the case that server should be able to serve up
more than one annotation set; I agree whole-heartedly.  This means
that one server can server up many annotation sets.  This is
particularly easy if the syntax of an annotation set is layered
on top of existing Web documents types (i.e. HTML) and protocols
(i.e. HTTP.)

But what about the other way around?  Can one annotation set be
broken across multiple servers?  For really large annotation sets
(billions of entries), it might be desirable to split up the
load across many machines; indeed, I can envision some annotation
sets that are geographically dispersed around the world.  (It turns
out that the architecture of my prototype annotation proxy supported
cross machine annotation sets.)

For example, I might have 26 machines allocated such that they
served up annotations based on the first letter organziation name.
Thus, the annotations for objects on http://www.W3.org/... would
go to machine W (for W3) and the annotations for http://www.Sun.com/
would go to machine S (for Sun).


For me, an annotation is an ordered pair (i.e. relation) of
target documents and annotation documents.  In the simplest case,
there is a single target document and a single annotation document:

	({target_url}, {annotation_url})

Can there be more than one annotation for a target document within
the same annotation set?  Absolutely!  Each annotation may be authored
by a different individual and live on different machines.  Thus,

	({target_url}, {annotation_url1, ..., annotation_urlN})

is another valid entry in an annotation set.

The next interesting question is whether a single annotation can
be attached to more than on target URL?  At first, I was willing
to draw the line at this generalization until I started thinking
about rating systemes (e.g. PICS.)  Why shouldn't I be able to
attach the same annotation to numerious documents that are somehow
related to one another (e.g. come from the same machine.)  For
example, I might want to attach an annotation to all of the pages
from a cosmetics company that explains company's current animal
testing practices.  Thus,

	({target_url1, ..., target_urlM}, {annotation_url})

is another valid entry in an annotation set.

Annotation Super-Sets and Sub-Sets:

Another issue that has come up is the issue of annotation super-sets
and sub-sets.   While I have no problems with us as designers talking
in terms of sub-sets and super-sets, I hope that people are not
proposing that sub-sets and super sets be directly exposed to end-users.

That's about all I want to say on this set of subjects for now.