The problem of linking to living documents
See also: Annotation, Multiuser considerations .
A problem arises when one user wants to refer to a portion of
another document to which he does not have write access. The
reference to a part of the document must remain as valid as
possible when the document is updated.
The solution set is as follows: take your pick.
The document is frozen.
This in fact applies nicely to mail messages and news
articles which, once published, are unretractable. You can
refer to a part of these messages by character range (line and
character etc).
Versions are kept.
If the document itself is not frozen, one can still refer
to a particular version of it if a record of versions is kept.
This requires that the server provdie an additional protocol
funtion, which is to tell a client exactly which part (if any)
of the current version of a document is the part corresponds to
a particular part of an older version. This translation can be
generated automatically by the "diff" engine
used by most source code control systems. These systems do not
always work: a smart editor would be able to keep better track.
This is an interesting option, because the operations needed
to do it are the same as those needed for putting links onto
plain text documents and keeping track of versions, both of
which are important aspects of collaborative software design.
(See also: versioning
)
The document is writable by the annotater.
In this case, when the person refering to the document has
write access to it, he can insert marks. This is the way the
current (1992) NeXTStep editor works: it embeds anchors in the
destination document. If the document is later edited, the
anchors are moved around with the text, though in some cases
(drastic rewriting) they can disappear.
Everything is numbered
This solution requires the author (or rather, the author's
editing program) to give unique identifiers to every part of a
document which can be the destination of a link. This is not in
fact a ridiculous overhead if handled efficiently. There must
be a certain granularity (paragrpah, for example) which
prevents people linking to precise words, and this is a
drawback.
Linking by context
In this case, the annotater refers to a part of the
document by the context: for example, he quotes the first and
last pieces. See for, example, the section "In this case...".
This method is clearly heuristic and prone to failures just as
is the automatic generation of
differences above..
Comment by: Kevin Altis