The previous section discusses the related work for my public annotation system design paper.

Public Annotation Authoring

This section discusses how to make annotation authoring as easy as possible. In order to be as specific as possible, I focus on annotation authoring using Mosaic. I discuss private annotation authoring first, followed by public annotation authoring.

Private Annotations in Mosaic

Once the user has found a document to which they wish to attach a public annotation, the act of authoring the new annotation should be made as easy as possible. Easy annotation authoring requires some support from the user's Web browser. For this design I will focus on supporting public annotations from the popular Mosaic browser and leave the task supporting public annotations in other Web browsers to other interested parties.

In Mosaic, private annotation authoring is done by:

  1. navigating Mosaic so that it is displaying the document to be annotated,
  2. clicking on the [Annotate]=>[Annotate...] menu item accessible via the menu bar to cause the annotate window to pop up, Annotation Pop-up
  3. typing the annotation title and contents into the annotate window, and
  4. clicking on the [Commit] button in the annotate window

Once a user has authored a annotation, they should be able to just as easily edit or delete the the annotation. In Mosaic this accomplished by following the link to the private annotation and using the either [Annotation]=>[Edit This Annotation] menu item or the [Annotation]=>[Delete This Annotation] menu item.

For private annotations, the relevant information is stored in user's ~/.mosaic-personal-annotations directory. Each annotation is stored in an uniquely named file of the form `PAN-number.html' where `number' is replaced by a decimal number that identifies the personal annotation. In addition, the file labeled `LOG' in the same directory contains a number of lines, where each line has the format of `{URL} {Number_list}'; {URL} is the URL being annotated and {Number_list} is the numbers of the personal annotations associated with {URL}.

Extending Mosaic for Public Annotations

Since Mosaic was designed from the start to support public annotations, the desired modifications to enable public annotations are quite simple. There is a selection item in the annotate window that can have one of three values [Private Annotation] [Workgroup Annotation] and [Public Annotation]. At the moment, both the [Workgroup Annotation] and the [Public Annotation] are both greyed out. (It is possible to enable [Workgroup Annotation], but that is not germane to this discussion.) By enabling the [Public Annotation] selection in Mosaic, the user will be able to specify either private or public annotations.

For public annotations, the same basic directory format will be used as private annotations. They will be installed in the user's ~/public_html directory, in a sub-directory called `public_annotations'. By putting them the public annotations in that location, other remote users are able to access them via a URL of the form `http://machine/~username/public_annotations/PAN_#.html'. The Mosaic code modifications required to move the public annotations over to another sub-directory should be quite modest.

When the user clicks on the [Commit] button for a public annotation, a program will be forked off to actually install the public annotation on the remote machine. The reason for forking off another program is to keep the modifications to Mosaic to a workable minimum. The name of the program to fork off will be specified via a Motif resource variable.

One of the limitations with the current Mosaic annotation authoring window, is that it only allows the user to type in raw text. It turns out that further HTML can be entered, if the first line in the annotation is `</Pre>'.

A more desirable situation would be to allow users to enter their annotations using the HTML authoring tool of their choice. It should not be too difficult to modify Mosaic to have an [Invoke HTML Editor] button that would invoke an HTML editor specified by the user's resource file. The HTML editor could be as simple as a vi text editor, EMACS text editor, or a full SGML editor.

Additional modifications to the Mosaic annotate window are necessary to support in-line annotations. The desired modifications are discused in the section on in-line annotations.

Work-arounds Until Mosaic Extensions are Deployed

Until such time as support for public annotations is implemented and widely deployed in Mosaic, it is useful to have some alternative ways of entering public annotations. One of the simplest work-arounds is to provide a program that is accessible from the command line that will convert a private annotation into a public one; I have implemented this command, it is called `post_public', and it does the following:
  1. It scans the user's ~/.mosaic-personal-annotations directory looking for the annotation that has changed most recently.
  2. The annotation contents are moved from the user's ~/.mosaic-personal-annotations directory to the user's ~/public_html/public_annotations directory. A symbolic link is installed from the old private annotation file name to the new public annotation file name.
  3. The ~/mosaic-personal-annotations/LOG file is scanned to determine the URL of the document being annotated.
  4. Using the HTML forms protocol, the server that has the document being annotated is told to add a reference to the new public annotation in the user's ~/public_html/public_annotations directory.
  5. The resulting response message from the server is displayed on the user's current version of Mosaic.
In addition, if the user adds a -e option to the `post_public' command, the user's EDITOR environment variable is used to invoke the user's preferred editor on the annotation rather than the primitive text editing facility provided by Motif.

With the `post_public' command I have reduced the public annotation authoring process down to:

  1. Navigate Mosaic to show the document to be annotated,
  2. Use the Annotate Window to author a private annotation,
  3. Type `post_public' in a shell window to cause the private annotation to be a public annotation. The -e option allows the user to use their preferred editor to author the annotation.
Thus, the barriers to producing public annotations have been reduced to a tolerable minimum. The `post_public' step can be eliminated by modifying Mosaic to directly support public annotations to further reduce the effort required to publish a public annotation.

Summary

(Don't use past tense!)

This chapter discussed the support fro private annotations that is already present in Mosaic and how to extend Mosaic to fully support public annotations. In addition, some work-arounds are presented that allow people to use the existing private annotation system in Mosaic to author public annotations.

The next section discusses the publishing aspects of remote annotations.


This file, version 1.5 of authoring.html, was last updated at 21:24:47 on 95/09/15.

Copyright (c) 1994,1995 -- Wayne C. Gramlich. All rights reserved.