Requirements for Storing Annotations to Database

We need a protocol for transmitting and fetching the annotations to a http server. That server is then using Eric's annotation database for storing annotation data. The user agent could be using several annotation servers either parallel or changing them at some point. The http server needs to know about that and change the annotation servers correspondingly.

Protocol

Attributes

DBModule

POST Annotation AnnotationService Annotation is RDF code containing

- a pointer containing: (sometimes an annotation can have several of these)

- URI to a document being annotated (= RelatedDocument)

- fragment ID (place in a document related to annotation, empty if the whole document)

- optional end fragment ID

- an author

- creation time

- annotation text

- type of annotation (deletion, addition, comment, question, warning, etc.)

- other RDF, such as links to related issues, discussion threads etc. (similar to links in ETA?)

Annotation example (creating a new annotation): (see also other details of the POST protocol)

 <?xml version="1.0"?>
          <rdf:RDF
            xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:a="http://www.w3.org/1999/07/31-annotations#"
            xmlns:t="http://www.w3.org/1999/09/15/times#">
           <rdf:Description about="SampleAnnotation">
             <a:pointsTo>
               <rdf:Description>
                 <a:relatedDoc rdf:resource="http://www.w3.org/WebArchitecture"/>
                 <a:location rdf:resource="http://www.w3.org/WebArchitecture#introduction"/>
                 <a:endLocation rdf:resource="http://www.w3.org/WebArchitecture#paragraph2"/>
               </rdf:Description>
             </a:pointsTo>
             <a:author rdf:resource="http://www.w3.org/Team/Marja"/>
             <t:time>1999-06-03T03:15Z<t:time>
             <a:text rdf:resource="http://www.w3.org/annotation1359"/>
               <!--  or <a:text rdf:parseType="literal">a <em>nice</em> thing.</a:text> -->
             <a:annotationType
               rdf:resource="http://www.w3.org/1999/07/31-annotations#comment"/>
               <!-- other types: deletion, addition, question, warning -->
             <a:related>
               <rdf:Bag>
                 <rdf:li resource="http://www.w3.org/ETA/issue113"/>
                 <rdf:li resource="http://www.w3.org/ETA/issue289"/>
                 <rdf:li resource="http://www.w3.org/w3t/msg1052"/>
               </rdf:Bag>
             </a:related>
           </rdf:Description>
          </rdf:RDF>

AnnotationService is a URI defining which service to use for storing annotations to.

e.g POST /Team HTTP/1.1 posts to an annotation service at http://annotation.w3.org/Team which is one of several annotation services supported by the annotation.w3.org, port 80 server.

Questions:

Should we allow the storing of several annotations at the same time?

In some cases annotation can have several related documents; how to show that?

StoreAnnotation Annotation RelatedDocument
GET Filter AnnotationService

Filter is a piece of RDF query filtering the annotations related to a given document and optionally also according to other attributes e.g.:

relatedDoc=http://www.w3.org/WebArchitecture (=URI to a document with attached annotations)

metadata=annotationMetadata

author=Ralph, Dan

time=after March 1999

AnnotationService is a URI defining which service to use for fetching annotations from.

GetAnnotations RelatedDocument Filter


$Date: 1999/10/14 19:32:24 $