Im Abschnitt zum Browser wurde bereits das Zusammenspiel von WWW-Server und Browser beim Starten einer externen Applikation beschrieben. Normalerweise werden vom Server sowohl ein MIME type als auch die Daten (ein Film, eine Postscript-Grafik etc.) geschickt. Die Daten werden daraufhin als Datei lokal gespeichert und angezeigt. Handelt es sich um ein Programm, wird es (ungeprüft) ausgeführt.
Sowohl aus Gründen der Performanz als auch der Sicherheit werden die Programme in unserer Implementation nicht erst bei Bedarf übers Netz geladen und gestartet. Sie befinden sich vielmehr bereits auf dem eigenen Rechner, von einem vertrauenswürdigen (FTP-)Server im Quelltext geladen und in das gewünschte Verzeichnis kopiert. Der Browser startet sie dann lokal mit der URL als Argument.
Im Gegensatz zum üblichen Ablauf schickt unser Proxy deshalb nur den MIME type, ohne Daten.
Das erklärt, warum als eine Implementationssprache für den Annotationsgraphen Java genommen wurde. Um den Quellcode überall übersetzen und ausführen zu können, muß die Sprache plattformübergreifend verfügbar sein. Die anderen sinnvollen Eigenschaften (objektoriert, guter Abstraktionsgrad) und eine eventuelle spätere Kopplung mit CORBA oder die Integration in ebenfalls in Java implementierte Browser wiegen einen Nachteil wieder auf: Die Bibliotheken sind im Vergleich zu anderen Sprachen noch mangelhaft.
Um nun aber auf den im Browser selektierten Text zugreifen zu können, muß die Sprache auch das System-Clipboard unterstützen. Java soll dies laut Dokumentation mit der Version 1.1.1 leisten; wir konnten aber nur auf die Selektion innerhalb von z.B. Java-Textwidgets zugreifen, nicht auf die anderer Applikationen. Tcl/Tk unterstützt das Clipboard dagegen ohne Probleme und ist ebenfalls auf allen üblichen Plattformen vorhanden. Deshalb wurde der Editor in Tcl/Tk geschrieben. Es mangelt der Sprache aber u.a. wegen des stringorientierten Konzeptes an vernünftigen Abstraktionsmöglichkeiten.
Zu bemerken ist eigentlich nur noch, daß aufgrund der Protokollform (einzeilige Strings) die Zeilenumbrüche in der mehrzeiligen Selektion und dem mehrzeiligen Kommentar noch vom Annotations-Editor ersetzt und vom Java-Tool zurückkonvertiert werden müssen.
Noch zwei Anmerkungen zur Annotationsstruktur. Bisher kann sich eine Annotation nur auf eine Annotation beziehen, hat also graphentheoretisch einen Innengrad von maximal Eins, und die gesamte Annotationsstruktur zu einer Textstelle entspricht einer Menge von Bäumen.
Außerdem haben wir es vorerst nur zugelassen, daß eine Annotation zu einer anderen Annotation sich nur auf den ganzen Kommentar beziehen kann; eine erneute Selektion einer Textstelle ist nicht möglich.