Wir haben für die Kommunikation mit unseren Servern ein simples Protokoll entwickelt: Anfragen und Ergebnisse werden als einzeilige Strings (newline terminiert) verschickt. Die einzelnen Attribute einer Annotation werden als ,,key/value`` Paare repräsentiert und sind voneinander durch Semikola getrennt. Probleme könnte es dadurch aber mit einigen Firewalls geben, die nur HTTP-Verbindungen zulassen.
Annotationen werden dem Server mit folgender Anweisung übergeben, wobei die Reihenfolge der Attribute beliebig ist:
SPMquot
ANNOTATE to: <URL>; Author: <Autor>; Date: <Datum>;SPMquot
Pos: <Textstelle>; Annotation: <Text>;SPMquot
refersTo: <Bezug ID>;endquoteDer eindeutige Bezeichner wird vom Annotations-Server bestimmt und die gesamte Annotation gespeichert. Bisher wird als Bezeichner die Anzahl der Sekunden seit dem 1.1.1970 genommen. Falls einmal nicht nur ein Server für die Annotationen zuständig sein sollte, müßte diese Zahl z.B. noch um die Rechner IP erweitert werden.
SPMquot
RETRIEVE for: <URL>;endquoteliefert, so vorhanden, alle Annotationen in der Form
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
RETRIEVE for: <URL>;endquoteliefert, so vorhanden, alle Annotationen in der Form
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
ANNOTATE to: <URL>; Author: <Autor>; Date: <Datum>;
SPMquot
Pos: <Textstelle>; Annotation: <Text>;
SPMquot
refersTo: <Bezug ID>;endquote
Der eindeutige Bezeichner wird vom Annotations-Server bestimmt und die gesamte Annotation gespeichert. Bisher wird als Bezeichner die Anzahl der Sekunden seit dem 1.1.1970 genommen. Falls einmal nicht nur ein Server für die Annotationen zuständig sein sollte, müßte diese Zahl z.B. noch um die Rechner IP erweitert werden.
SPMquot
RETRIEVE for: <URL>;endquoteliefert, so vorhanden, alle Annotationen in der Form
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
RETRIEVE for: <URL>;endquote
liefert, so vorhanden, alle Annotationen in der Form
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;SPMquot
Annotation: <Text>; Name: <Annotations ID>;SPMquot
refersTo: <Bezug ID>;endquote
SPMquot
ANNO Author: <Autor>; Date: <Datum>; Pos: <Textstelle>;
SPMquot
Annotation: <Text>; Name: <Annotations ID>;
SPMquot
refersTo: <Bezug ID>;endquote