[This local archive copy is from the official and canonical URL, http://www.groveware.com/~lee/papers/markup98conference/links.html, December 15, 1998; please refer to the canonical source document if possible. Note that this is a 'preprint' version as of this date.]
Liam Quin graduated in 1984 from the University of Warwick in England with a BSc. (Hons) in Computer Science; he has worked with Unix and text processing since 1981, with SGML since 1987, and with XML since its inception. He plays the piano badly, goes barefooted often, and shares a house with his partner and two cats. |
This paper was published in the proceedings of the Markup 98 conference held in Chicago, November 1998. |
GroveWare Inc.
67 Yonge Street
Toronto, ONT
CANADA, M8E 1J8
+1 416 955.9845
Fax +1 416 955.9940
http://www.groveware.com/~lee/
Abstract
The XML language has support within it for HyperText links, and uses links itself to associate disparate components of compound documents. A number of associated standards and recommendations have grown up around XML, and many of these introduce their own forms of linking. Furthermore, there are linking conventions in both computer-based information display systems and in paper-based typographical layout.
This paper provides a summary of many of these linking systems, and also attempts to delineate the underpinnings of a unifying abstract model based on the concept of Linking Functions sufficient to describe the links. A single and minimal terminology set is used.
Indications are also made of linking forms that are in common use but that XML does not at the time of writing directly support.
Before discussing links, we must say what we mean by a link. A more formal mathematical approach is taken in this paper than that of George Landow in Hypertext 2.0 [Landow1997pp. 11ff.], in order to try to describe a general model that can be applied widely.
No attempt is made to derive a formal link grammar, but only to define a sufficiently formal basis for the discussion in the rest of the paper. There is scope for future work in the area of rigorous mathematical definitions and theory covering markup and linking.
This section describes some of the formal mathematical and computer science properties of functions as applied to Linking Functions.
The result of a link function may depend not only on the participating resources, but also on the environment E in which the function is evaluated (e.g. the system formed by the interaction between browser, server and network). Examples include World Wide Web links that behave differently depending on the browser version or on the previously visited page (using the UserAgent and Referrer HTTP headers). It may also depend on time, on location of the viewer, or on almost anything else imaginable. For this reason, there is no need to mention explicitly that a linking function depends on the environment, as all such functions do so.
It is perfectly acceptable for a linking function to return a different result each time it is called, such as a list of users who have tried to follow the link. In this sense, a linking function may be impure, that is, may have side effects. As a result, a complete link function grammar cannot easily be referentially transparent, unless perhaps one considers a linking function to generate a constant but possibly unpredictable sequence of results.
There is no requirement that S1 and S2 be disjoint: an identity function IR: S1 --> S1 is certainly possible*.
One might argue that the HTTP response 204 (do nothing) is the result of an Identity function, and that if a remote HTTP server happens to send a byte-for-byte identical response twice in a row, that has nothing to do with I. We are not concerned here with this level of implementation detail.
The linking function is not in general an injection{1}, because we impose no constraint on the cardinality of the result set: the function for a given relationship may be many-to-one, one-to-many, one-to-one or many-to-many, and there need be no connection between the resperctive cardinalities of S1 and S2.
In some specific applications (such as with some uses of HyTime or XLink), f may be a surjection*, with a bounded domain set, but on the World Wide Web this is not generally meaningful.
A function f is a surjection if every element of the result set (the codomain) is reachable from some element in the source set (the domain). On the World Wide Web there are many web pages to which there are no explicit links, although one may reach them by entering a URL directly into a browser. See [StewartTall1977] (for example) for a formal definition of surjection.
There is no requirement that a linking function be deterministic; the function could return a different result each time it is called, in which case one might consider it as depending in some way on time, f(R, t).
A function that returned an entirely random resource is possible: such things exist on the World Wide Web, where they are sometimes known as Roulette Links.
XXX why is this here? XXX As an example, consider the following HTML fragment:
<A HREF="gloss901.html" REL="Defines"> Boy Bishop </A>Here we assert that there is a relationship between the linked text Boy Bishop and the resource known as gloss901.html; the relationship R is asserted to be Defines so that one might reasonably suppose that gloss901.html contains a definition for the term Boy Bishop.
That a link exists in one direction does not imply the existence of a link in the reverse direction, an inverse of the linking function. It may at first appear that this is not so, and indeed, in theory, one might say that the inverse always exists. In practice, however, it is not always computable. Consider the question, What is the set of all World Wide Web documents pointing to a particular page? Or, for a web search query, the question, What query would have produced this set of results? This cannot be answered, not least because there may be links to this page from a page that is not publicly reachable.
This section describes the main linking models in use in XML and in HTML, both as Linking Functions and in practical terms with examples. The purpose is to show how a wide variety of syntaxes for links can be considered in a uniform manner, and to show where differing forms are in fact equivalent.
In each case, the following information is of interest:
The set of resources that form the source of the link: this, together with any environmental or time-specific items, constitutes the domain S1 of the link;
The set of resources that results from traversing the link: this is the codomain S2 of the link function;
The purpose of the link: that is, any additional semantics such as "Author", "Points to a table of contents in which this document is listed";
The expected action that software should take when traversing the link, such as replacing the contents of one window with another, animated visual effects, sounds or other actions; this is the application linking behaviour;
Whether the link should be traversed automatically as soon as it is encountered, as for example with an included image, or whether the application should, if being operated by a human user, wait for a specific instruction before following the link, as with a normal HTML link;
The syntactic link form itself: that is, the markup that is used.
Since XML is derived from SGML, all of the linking forms in this section are in fact common to both SGML and XML. A final note in this section briefly discusses link forms that are found in SGML but are not directly available in XML.
It may help in this discussion to recall that XML, like SGML, uses the term entity to mean a file, document, or other resource; XML has other meanings for the word entity in other contexts, which can be confusing.
An external parameter entity is declared like this:
<!Entity % defs SYSTEM "mydefs.xmd">An optional PUBLIC identifier may be given, but XML does not assign this a meaning:
<!Entity % defs PUBLIC "marvin was here" "mydefs.xmd">An external parameter entity can be referenced only in the DTD: that is, only in the document type subset at the start of a document, or in an external file (entity) referenced from it:
%defs;will cause the contents of the resource "mydefs.xmd" to be interpolated and parsed at the point of reference.
The link here is between the XML entity that contains the definition, the set of entities that contain references to that entity (%defs;), and the entity named in the SYSTEM identifier. The link relationship is Includes.
An XML document may start with a DOCTYPE declaration, which may name an external entity, like this:
<!DOCTYPE elbows SYSTEM "bodyparts.dtd">As with other external entities, there is an optional PUBLIC identifier.
The anonymous external entity is referenced implicitly at the end of the document type definition subset, where it is included automatically. It is equivalent to an external parameter entity, except that no new name is introduced:
<!DOCTYPE elbows [ <!Entity % anonymous SYSTEM "bodyparts.dtd"> . . .other stuff . . . %anonymous; ]>This is therefore a restricted form of the external parameter entity reference already discussed.
In SGML (rather than in the subset of SGML called XML) the DOCTYPE declaration is thought of as associating a name for a document type (a system and/or public identifier) with the document itself. XML, however, does not use this feature of SGML.
In computer science and compiler theory, a parser performs syntax analysis on the stream of tokens produced by the lexical analyser, and constructs a directed tree representing the semantics of that stream [DragonBook1986]
An XML or SGML parser performs a different rôle: it scans the input at the character level, performs tokenisation and also validation of the input against both the rules of XML (or SGML) and also against the document type definition for the document concerned, if one has been supplied.
Despite this terminological difference, there is an implicit link relationship between the XML parsing software and the document. It is mentioned here for completeness.
An ID-valued attribute gives a document-wide unique name to an SGML or XML element. This name can then be referred to in IDREF-valued attributes.
An element can have only a single ID-valued attribute; see [DeRose1997] for an interesting discussion of this limitation (e.g. page 81, item 4.5).
Some SGML and XML applications interpret an IDREF-valued attribute as a hypertext link to the element bearing the corresponding ID value. Neither SGML nor XML mandates this behaviour, but neither forbids it, and it is certainly a plausible interpretation in keeping with the language design.
Some applications (e.g. see [SoftQuad1995] and [ViewPort]) also compute the reverse linking function that maps a single ID-valued attribute onto a set of elements bearing the same value in IDREF-valued attributes.
The followed by or fby relationship is familiar to any programmer who has ever implemented or used a linked list. In SGML, fby can be prescribed by a DTD using the sequence operator (comma, ",") or can occur in in a document instance by one element following another, that is, with the end tag of the first element immediately followed by the start tag of the next*
strictly speaking, in element context there may be whitespace between the two tags that matches the production S and is ignored; an XML parser will return such whitespace to the application, however, which may or may not consider it significant. Some commercial SGML parsers also make this space available to the application in order to facilitate the creation of software that can read an SGML file and save it again with such whitespace preserved. The minutiae of whitespace is not relevant to the concept of fby in this context, but is mentioned for the sake of implementors.
In the fby relationship, the participating resources are the elements before and after the link point in question. Any number of elements may be said precede or follow - consider all the paragraphs before this one in this section, for example. Normally, however, one means directly followed by, in which case the linking function domain and codomain each have cardinality of one.
It is not fashionable to consider containment as a form of link, but it is particularly useful to do so when one also discusses transclusion, as this paper will do in a later section.
Consider the following example:
<county> <village> Haynes Church End </village> </county>Here, the relationship between county and village is that of containment: the village is within the county. We have S1 consisting of county, and S2 of village, where R is contains. Note that since the village is a part of the county, S1 contains a resource (the county) which contains the village, but since the linking function is not transitive, we cannot say that S1 itself contains the village.
It is sometimes useful to include the link relationship in an attribute: for example, one might use a value of GeograhicallyWithin in the example above. This is explored more in [Quin1996].
The containment link is sometimes problematic if one needs to represent overlapping hierarchies, and in this case one may well resort to representing one or both hierarchy by means of external links [Renear1993].
In addition to containment, XML supports containment of attribute values. In the form:
<Ship list="5 degrees to starboard">we may say that the Ship has a list to starboard; in the form:
<Ship type="luxury yacht">we may say that the Ship is a yacht.
In the first (has a) case, an attribute is really no more than syntactic sugar for a sub-element, except that XML supports more fine-grained validation of attribute values, including defaults, and does not allow element markup in them. This is therefore a special case of Containment described in Section
The second case (is a) may by some application convention link the element bearing the given attribute to some external definition. An example is that the HTML style mechanism, CSS, uses a CLASS attribute in an attempt to allow one to say, this italic element really contains a Latin phrase. An attribute value may also indicate a link relationship, as we see with the REL and REV examples below.
An Architectural Form uses an SGML #FIXED attribute to associate every instance of a given element type with an abstract data type specified elsewhere; an application may use this to control its behaviour. An (fictional) example might be that a particular piece of software understands that an element with the SMELL attribute set to OIL contains a specification of an odour which attached perfume mixing hardware can recreate.
Architectural Forms are thus used to link behaviour, presentation or other external semantics to instances of a particular element type in a document. One could think of them as a cross between a very limited and under-specified style sheet mechanism and a behaviour sheet mechanism without a scripting language; in practice, Architectural Forms can be very useful despite their limitations, because they travel along with the document type definition and yet are ignored by software that isn't concerned with them. Architectural Forms do not have fixed link semantics, since they are interpreted by applications in ways that are not standardised or uniform.
The XML NOTATION construct is used to associate an external identifier (a URL and an optional but formally meaningless PUBLIC identifier) with an internal name, as in the following example:
<!NOTATION sock SYSTEM "black-socks.xdd">Once this association has ben made ‐ itself a link ‐ the internal name (sock here) may be used as a PITarget, an Entity type or a value in a Notation-valued attribute.
The first of these types, a Processing Instruction Target (PITarget) is unique to XML, and defines a per-document naming convention for process-specific significant comments known as processing instructions. This is merely a syntactic form, and not a link.
When a NOTATION name such as sock is used in an external entity declaration, there is an indirect association between the name internal to the document that is introduced by the entity definition, the external entity referred to in that entity definition and the external identifier associated with the notation declaration. An application may use this information to determine, for example that a particular external entity is stored in some specific format such as as a PNG image file or an MP3 sound file, although for World Wide Web use, the MIME object typing method is strongly preferred.
For a long time both the SGML and HyTime community and the hypertext research community ignored the World Wide Web, perhaps because it is neither rigorously validated nor reliable.
In fact, it is that willingness to accept unreliability in order to gain simplicity that has led the Web to success. But despite its simplicity, the power and generality of the Web architecture should not be underestimated.
Tim Berners-Lee wrote an architecture document in 1989/90 [BernersLee1990] which describes some link types such as is part of, Next, Previous, Annotation and Author. Murray Maloney, in conjunction with the present author, published an experimental IETF RFC in 1996 [MaloneyQuin1996] which expands on these named relationships.
These relationships are associated with HTML links using either a REL attribute or by specifying the reverse relationship with a REV attribute:
<A HREF="../index.html" REL="PARENT">
In this way, an HTML link can specify the link's domain and (indirectly, via a URL) codomain, and also the purpose of the link.
The World Wide Web architecture admits of the possibility that the link function f is computed on a remote server (for example, using the CGI protocol [McCool1995]), but the resulting set S2 must be of cardinality zero or one: there is no way to say that the result set is of unspecified size, or that multiple (but unordered) resources are to be returned.
One of the most important aspect of links on the World Wide Web for our purpose is that a single source link always results in a single resource: the domain S1 and the codomain S2 each have a cardinality of one. The resulting resource, however, may itself contain markup that causes other links to be traversed automatically (e.g. IMG elements or JavaScript code). It is thus useful to consider HTML links as being one-to-many.
Note that even an error on a remote server is returned as an HTML document, although the HTTP header also indicates the error status.
The underlying HTTP protocol has been extended to support multiple transactions with a single connection, and also to allow multiple documents to be returned for a single request; in the latter case, however, each successive document replaces the first rather than augmenting it in some way. One can therefore consider this to be a one-to-one link where the result happens to be a textual animation!
At the time of writing (August 1998), there is an early draft available for the format for specifying links with XML, known as XLink.
XLink is specified at the time of writing in a World Wide Web Consortium Draft [MalerDeRose1998]. It defines a number of what are, in effect, architectural forms. For example, any element that bears the attribute name-value pair (xml:link, simple) may have an href attribute containing a URL that works exactly like an HTML HREF attribute on an A element (except that href must be in lower case in XML/XLink).
In addition to the URL, XLink also supports a more powerful addressing scheme based on the TEI Guidelines [TEI.P3], called XPointer [XPointer]. XPointers (Extended Pointers) do not affect the formal characteristics of links, but they allow more succinct representation, and also permit linking to text that is not explicitly marked up as a target within a document or other resource.
XLink distinguishes inline and out-of-line links by whether the link form appears in the markup of one of the resources in the domain of the link itself.
Links in XLink may have result sets (codomains) with cardinality greater than one, but do not appear to support multiple starting points (domains with cardinality greater than one). A concrete example would be that, using XLink, following a link in one window would not itself cause other windows to be updated.
Transclusion is a term coined by Ted Nelson for Project Xanadu; it refers to the embedding of part or all of a remote resource in another resource in such a way that the original source is made clear. A C or C++ programmer is familiar with Inclusion in terms of #include.
The XML specification allows both transclusion and inclusion with an external parsed entity, but (for a non-validating XML processor) does not specify which, if either, is to occur. XLink takes this one step further and allows a form of link that a user may choose to expand in place.
There is no difference between inclusion and a simple link: it is purely a matter of presentation. Transclusion preserves the context of the original quoted material, and is thus an augmented link in which there is a link type of Transclude and in which the result set (codomain) includes information such as the cost of viewing, the identity of the author, and possibly other rights information, as well as an indirect link to the actual content.
At the time of writing, (August 1998), the July draft of the XML Style Language (XSL) had not been made available. However, the following general principles certainly apply.
The purpose of a style language is to associate typographic formatting with markup. There must therefore be links between the markup and the style definitions, which are contained in a resource known as a style sheet. In order to be able to use a single style sheet for many documents, the links must be generic: all titles are bold, all footnotes are tiny, all animations are slow. These are then links from the style sheet into the document, but that are computed based on the document instance.
A typical style sheet rule might say that the first paragraph within a numbered list does not have a leading indent, but runs right on from the list item number. This rule is a link between the presentational behaviour and every paragraph that is the first element contained within a list item inside a numbered list element.
Style sheet rules therefore have a domain of one (the style information) and a codomain of indeterminate size (the matching elements).
The XML Namespace draft associates a prefix used on names within a document with an external schema or definition. The link relationship is defines, the source domain set is the set of all names in the document that have the given prefix, and the target codomain is the external schema that may (when its format is specified) define behaviour, semantics and/or validation rules for those names, perhaps along with documentation.
RDF [RDF]grew out of work at the World Wide Web Consortium on web collections, digital signatures and other metadata. The purpose of a Resource Description is to be able to link a group of resources together and specify their relationships. The relationships supported include those listed by the Dublin Core workshops [DublinCore] as well as others needed by the digital signatures and web collections and other groups.
An RDF document contains a hierarchy of links to external resources, together with explicit indication of the link relationship. In each case, the links are one-to-one, so that the RDF linking function is a mapping from a set of links with the resource description to a set of resources. Since the link targets need not be distinct, however, the codomain may be smaller than the domain, and the RDF linking function is not in general an injection.
A Web search engine is an interesting case of a linking function where the link is from a user's query (e.g. find all documents mentioning feet but not inches) to a list of documents that the search engine has found to satisfy the query with some given confidence level.
The domain set is usually a singleton, just the query, although some search engines allow the user to combine several queries to make a single complex compound query, in which case the source domain has a larger membership than one. The result codomain is a single document with links to each of the matches, together with summaries, titles, ranking information, advertisements for socks and other useful information.
Since the result document is not itself of interest, it is usual to think of a search query to have a codomain consisting of the set of all documents matching the user's query.
Metaspy [metaspy] is one of several World Wide Web facilities that allow one to watch the queries that are submitted to a search engine, in this case to Metacrawler [metacrawler]. The interface shows the most recent dozen or so queries that people have made, and is updated automatically every few seconds. Each query shown is itself a link that, if followed, runs the given query. One is therefore privy to a continuous stream of hypertext links, following any one of which may lead to a page of links generated on the fly.
Here, a link to Metaspy (domain of one) produces a stream of queries (codomain unbounded). Each of the resulting queries can be run in turn, of course. It is not clear what would be an appropriate link relationship in this case.
There are [...] compositions which bring the reader to a halt and emphasize the connection between elements within a page, a process which begins when the reader realizes that the composition includes too many finite parts to be adequately comprehended at one glance and begins to follow a trail of foci to the understanding of the visual syntax.
Frances Butler, Dance & lay in Visual Design: Visual Manifestations of Physical Experience (in [heller1994], p. 174)
When a piece of text is presented, whether as a web page or on paper, it is read in context. Two pieces of text juxtaposed side by side are compared and contrasted one with another; they are not read in isolation. In effect, they are linked together.
Mnemonic systems such as those of the ancient Greeks used juxtaposition and association to link items to be remembered; Storkerson and Wong have suggested that such aides memoires as the Art of Memory correspond to hypertext links in a very direct manner [StorkersonWong1997].
If online marked-up text is a primary source and printed or on-screen matter is output, links as a result of page layout ore generally considered presentational, and are often dismissed as unimportant. If the paper text is primary and the mrked-up text a transcription, the page layout becomes of importance.
There is no syntax in XML, no formalism, no pattern for constraining or describing such relationships other than the established language of graphic design.
The foundation for graphic design is formal structure. Functional structuralists have enumerated and described the conventions and codes for arranging the "graphic elements" ‐ typography, line art, and continuous-tone art ‐ on the page in order to move the reader's eye through a layout. The fact that these graphic elements are meaningful aspects of communication usually is not emphasized by functional structuralists; form, rather than content, is the central focus of analysis and discussion.
Robert Craig, Ideological Aspects of Publication Design, in [bib.craig].
A footnote is an expository annotation which in printed material is generally placed at the bottom, or foot, of the page. When such notes are placed in the margin, usually horizontally aligned with the item they annotate, they are known as marginalia.
There is a strong convention that there be a visible marker in the text, such as an asterisk or dagger or obelisk, indicating the presence of the footnote; this is duplicated before the start of the text of the footnote itself, so that the reader may easily connect the one with the other.
In complex printed work, there may also be sets of references or other notes collected at the end of each chapter, or at the end of the book, which are termed end notes. The convention is that these are numbered sequentially with raised Arabic numerals, so that the reader can distinguish a footnote (with an asterisk or dagger) from a numbered end note. References to a bibliography are marked with a short and usually mnemonic tag, such as [Quin1986b] or (Quin, 1996b), the letter b indicating that the reference is to the second publication by Quin listed in the bibliography for 1996.
Computer typesetting systems such as TeX, Scribe and troff [Osanna1976] have for many years supplied tools to assist authors in managing bibliographies (see, for example, [Lesk1976]).
Online systems (such as World Wide Web sites) have difficulty with notes. It may seem desirable to make them pop up in transient windows, or to have them hover in the manner of Microsoft's tool tips online fly-by help, but that makes it difficult for the reader to print or search or save the notes.
A table of contents in a printed book or journal can be thought of as a small document containing a set of annotated links into the body of the publication.
The links are usually sorted numerically, by page order: there is thus an implicit link from each item to the next.
A table of contents is often generated automatically from the body of the main document itself, using feedback from the text formatting process to fill in the page numbers as necessary.
For an online publication, a table of contents might be generated from an RDF description of a web site, for example, or it might be a static document.
The principal characteristic of a table of contents is that it provides a summary of content in the order in which that content is presented.
An index is an ordered list of keywords or concepts, sorted alphabetically with rules such as ignoring definite articles (the); each entry is a set of links into the main text to the points at which those keywords or concepts are discussed, defined, illustrated or mentioned. Many indexes*
the plural of index is indexes; indices are mathematical objects and are unrelated to book design. See, for example, the Oxford English Dictionary, sv. index.
Supporting an index in an online system generally requires that the text be marked up with explicit index entry targets, either inline in the text or externally. Utilities exist to assist in the creation of an index, but do not produce results as good as a professional (human) indexer [bonura].
An index entry may be hierarchical: ankle, anatomy of 301, 302; as art 180; diameter 190-211.
A hierarchical index entry may be viewed as a simple compound link (domain having cardinality greater than one) or as a nested structure containing multiple individual links. Subitems are usually sorted alphabetically (ignoring articles and folding case according to whatever natural language conventions that apply)
A sidebar is a short essay, often an amplification of a text or a related topic; it appears alongside an article to which is is subordinated. Sidebars are frequently used in magazines.
Although there may be no specific reference in the article to the sidebar, there is clearly a linking relationship between the subject matter of the article and the sidebar. This relationship is harder to quantify than an explicit link, but it is certainly there.
The relationship may best be represented as a bidirectional associative link between the entire article and the sidebar
Early books number signatures (groups of pages that were printed on a single sheet and then folded), primarily so that the book would be assembled in the right order. Later, books numbered each leaf, and later still the two sides of each leaf were given their own number, as today. Arabic numerals were commonly used for page numbers in printed books by the end of the sixteenth century, as well as for verse numbers in printed Bibles [Williams1997], showing that the printers had the expectation that people would refer back, using cross-references, concordances and other page references.
A page number is associated, by virtue of its position on the printed page, with the entire text of that page, and, through this intermediary, the text of the page may be used as a destination for a link..
It is unusual to create a link in an electronic online publication that is to an approximate span of text, such as a page reference in a printed book. The page number is not the target of a link to page 37 (say), but merely participates in the link. It is the visible label of the target of the link.
An image, a picture, a table or graph, usually has an accompanying caption, and may also have associated copyright information. Very often there is no direct link from the surrounding text to the figure: the only link is by the physical juxtaposition of the text and the image. For example, an encyclopaedia article often has associated illustrations, but because the publisher may have very limited rights to using those illustrations, the text does not mention them specifically. That way, if the publisher should lose rights to use an image in the next edition, or should obtain an alternative, perhaps more suitable image, the text of the entry does not have to be changed,
Clearly the image, the copyright information and the caption, and, if present, the figure title, are all linked together as a compound object in some sense.
There may not be a clear link between the figure and the text, but someone online viewing the text would expect also to see the figures. The reference in that case may be from the entire article to the pictures, or between figure and the paragraphs of text closest to it in the printed publication.
This situation may still occur in a publication created electronically, and for the same reasons, whether of style or of logistics and finance.
If a newspaper were to publish an article about empty housing in a city, and were to place on the same page an article about the number of homeless people in that city, the reader would be very likely to infer an editorial statement. The two articles would be linked by their placement as surely as if the article on empty housing had ended with a note, See also our article on homelessness!
Sometimes it is the intent of the author or graphic designer to suggest multiple possible interpretations of text through juxtaposition and deconstruction.
Here [in Jacque Derrida's Tympan, in Margins of Philosopy] a simple and unspectacular typographical device - the division of the page into two columns - unfolds two textual worlds in parallel, extending and making tangible the strategies of the texts. By this simple typographic device, Derrida extends the reading process beyond a mere (unilinear) decoding of the message, towards a multilinear weaving of paths (an interpretation of `différance') across the two texts. `If there are margins - notes Derrida - is there still a philosophy, the philosophy? A third text block, at the bottom of the page, provides space for author and translator's notes. At this point one may usefully ponder over the recent categorization of print as linear, and multimedia as non-linear, media.
(Gérard Mermoz [Mermoz1998], "Deconstruction and the typography of books"
This sort of linking by association is hard to capture in a general and abstract manner. None the less, it should certainly not be overlooked.
Current World Wide Web browsers do not handle parallel columns of text well: one must either use large and unwieldy tables, or give up altogether the idea of simultaneous parallel scrolling and use Frames. Until this is remedied, parallel text, whether for Deconstructionist purposes or whether as part of a critical text, or a multilingual text with translations, will always be somewhat ill at ease on the Web. It is not currently even possible to add a button to synchronise the scrolling of one frame to the current position of another. None the less, when such facilities do become available, text in which parallel but implicit linking has been captured will be easy to update for the new display technology.
Items positioned in the same place on successive pages, or that are given similar treatments as each other, may perceived as being related. Robin Williams gives a number of examples in her Non-Designer's Design Book [Williams1994]. Such links may be artifacts of graphic design and presentation, or they may be intrinsic to the text and merely made manifest by the presentation. In the latter case, it may be highly desirable that the links be explicit.
These links are very similar to those described in the section Juxtaoposition above in abstract terms.
There are several forms of link that are found in natural language text and that are not generally marked up explicitly (although they certainly can be, and sometimes are so marked). These links are sometimes discovered algorithmically and marked up as part of document conversion, for example in CD-ROM or online reference publishing.
As noted in the section on Anaphoristic References; see above; in the next section: all of these are examples of links within a resource. Cross references are often marked up explicitly in XML documents. One advantage of marking up cross references is that typesetting software can generate phrases such as opposite or on the next page automatically. A disadvantage for some authors is the additional cognitive overhead of the additional indirection imposed: it is sometimes just plain simpler to type, See Section Five! If a section is inserted, the cross references suddenly are all incorrect.
A cross reference may be a one-to-one or a one-to-many (see chapters...) link; the relationship is generally Compare or Explains.
A pronoun, or a noun phrase such as the system in a document describing the Tunbridge Wells Blancmange Distribution Pipeline, is a link to the subject of the discussion. This is rather like a cross reference.
Anaphoristic references cause difficulties for text retrieval systems: the document about the Tunbridge Wells Blancmange Distribution Pipeline might use that phrase only once, and The System elsewhere. It would therefore rank lower on a results scale than a newspaper article that mentioned that phrase twice.
Anaphoristic references are one-to-one links with a relationship of Is the same as.
In the context of Information Retrieval or NLP, one might consider two paragraphs of text to be related if they use similar words and phrases, or if they use phrases that are often found together. See, for example, [Knaus1996] and other papers in [TREC4].
The distinction between an explicit link, a text retrieval query and an automatically inserted cross-reference is imprecise.
All of the links discussed so far have been textual. Other kinds of resource may be involved.
An image is really the same as transcluded text, except that it has an associated file format or NOTATION.
A link to embed an image typically is one-to-one, although a document may include many images using multiple links.
Links to sound may have the property that the sound plays automatically whilst the user examines some other resource such as an animation, a text file or an image.
A link may be to an entire resource or to some fragment of it, such as a single paragraph, the first twelve bars of a symphony, or the third over of a cricket match in a video recording.
The fragment may be considered a resource in its own right, and the linking function is then unaffected. One should note, however, that many users will expect to be able to hear the entire symphony, to read beyond the linked paragraph, or to drink a cup of tea while the cricket match continues.
Many of the links discussed here, especially the manifest links, are fairly straight forward to render visible on a screen or page. Some are less clear, and sometimes there are unexpected ways to visualise even the simplest of links.
Even though computer markup of digital texts is a relativly new phenomonon, many of the issues raised here have been addressed by scribes and prnters for hundreds or even thousands of years. See, for example, Margaret Smith's article [Smith1996]on the typography and layout of critical editions of texts, and how it was affected by the introduction of single-colour printing in the late 15th Century.
Some hypertext systems (most notably HyperCard, but also some World Wide Web browsers) allow a document author to specify a visual and/or audio effect to occur when a link is followed, and another when the result is displayed. Typical effects include fading to grey, panning from one resoure to the next, scrolling upwards, animating a curtain closing accompanied by the sound of five unicorns braying, and so forth.
Neither XLink nor the draft XSL support this sort of feature, but one can certainly expect it soon.
If the result of a link is a sound or smell, some indication may be needed that the link has been traversed successfully, perhaps alerting the user to pick up the headphones. It should also be noted that an invisible object has "nothing to click on", so that some browser functions may not be available unless they are duplicated in menus, toolbars or speech recognition commands.
We have seen examples of a number of different kinds of link:
links to markup (DOCTYPE and parameter entities)
links to text (general and text entities, element inclusion, explicit links with XLink)
presentational links, that are artifacts of page layout and design, and may or may not be represented in the markup;
dynamic links, that may exist only over a short time, or whose codomains (result sets) are computed when the link is traversed and may be different each time the link is followed.
It is to be hoped that these deficiencies can be addressed in the future.
A terminology based on a functional decomposition of linking has been presented, in the hope that it clarifies some of the underlying concepts. Perhaps this could be extended to a formal grammar or algebra of linking specific to XML.
Finally, it is hoped that this document may serve as an introductory survey of the main linking forms suitable for use by an implementor or designer.
Recall that a function f: S1 --> S2 is an injection, or a one-to-one function, if and only if ∀ x, y ∈ S1, f(x) = f(y) ⇒ x = y. For this and other mathematical terms, see any introductory undergraduate mathematical text such as The Foundations of Mathematics [StewartTall1977]