Linking HTML Translations

Version 2.0, 3rd April 1996 © Martin Bryan, The SGML Centre

This paper suggests how the HTML could be extended to allow better management of the relationships between a source document and its translations. It also suggests how topic maps could be defined in HTML headers to provide indexes of topics covered in a document or document set.

This proposal takes into account the extensions to RFC 1866 currently being proposed by the HTML Working Group at the IETF. In particular it will refer to the proposal to allow an ID attribute to be associated with any element. Text showing the current definitions of the link and anchor elements, and proposed extensions to their use, are shown in Annex A.

Using Existing Constructs to Link Translations

The existing <LINK> and <A> elements allow a start to be made to controlling translation referencing. Firstly the problem of identifying translations of a retrieved document. If the document starts with link statements of the following form it will be possible to identify the translations that are available for the currently displayed document:

<BASE "http://www.myco.org/pub/subject/en/myfile.htm">
<LINK name=author  href="mailto:author@myco.com" title="Author" rev=made>
<LINK name=spanish href="../sp/myfile.htm" title="Español" rel=translation>
<LINK name=french  href="../fr/myfile.htm" title="Français" rel=translation>
<LINK name=german  href="../de/myfile.htm" title="Deutsch" rel=translation>

Unfortunately current browsers do not display link elements, so these elements will not be selectable by users.

Until browsers offer mechanisms for listing links in menus that user can use to interconnect files the only alternative is to turn the links into anchors within the body of the document, using defintions such as:

<A name=spanish href="../sp/myfile.htm" title="Espanol" rel=translation>
[Español]</a>
<A name=french  href="../fr/myfile.htm" title="Francais" rel=translation>
[Français]</a>
<A name=german  href="../de/myfile.htm" title="Deutsch" rel=translation>
[Deutsch]</a>

Note that there is a different model for links (which are declared using the EMPTY keyword and therefore have no content or end-tag) and anchors (which must have content or, at very least, an end-tag).

When the new set of common attributes becomes available it will be possible to extend the above descriptions as follows:

<A name=spanish href="../sp/myfile.htm" title="Espanol" rel=translation lang=sp class=automatic>
[Español]</a>
<A name=french  href="../fr/myfile.htm" title="Francais" rel=translation lang=fr class=manual>
[Français]</a>
<A name=german  href="../de/myfile.htm" title="Deutsch" rel=translation lang=de class=semi-automatic>
[Deutsch]</a>

In this case I have used class to indicate whether conversion was done automatically by a program, manually by a skilled translator or semi-automatically, using human correction to an automatic translation.

Now let us look at how we can name points within a document. At present the only valid mechanism that will work across all browsers is through use of the <A name=xyz> mechanism as the HTML 2.0 spec does not allow IDs to be associated with elements. If you want to attach a name to a paragraph you have to do something along the lines of:

<p><a name=SGML></a>The uses of SGML are legion ...

Note that I have named the paragraph here, not identified a piece of text as an anchor. The anchor in this case has no content. Whilst it would be possible to place the end-tag for the anchor at the end of the paragraph this would serve no real purpose and introduces the risk that the limited model of HTML could be broken by elements within the paragraph.

If I translate this file into French in the translated file I would have something like:

<p><a name=SGML></a>Les usages de SGML sont legion ...

[Excuse my lousy French!]

I don't need to rename the object as anchor names are local to the file they are in.

Note: HTML "fragment identifiers" can only identify the text within the anchor element they point to: the cannot not be used to identify element sets. HTML anchors can at most identify a set of characters within a single element. Alternatively, as shown here, they can identify a spot in the document.

Links such as <a href="#SGML"> will take you to the point in the current document that has the name SGML assigned to an anchor. All you need to do to move from one translation to another is to switch from the BASE definition of the document you are working in to that of the translation listed in the LINK statements that is appropriate to your request. A mechanism for doing this would be very easy to define in an extension to the HTML 2.0 specification.

Where document structure changes during translation the translator must determine which is the most appropriate place in the translation to place the anchor. (There is a distinct advantage in the use of empty anchors in this context as they are much easier to reposition than anchors that are placed around text, as the latter may need to be mingled with other text when translated, as anyone who has struggled with maintaining links in English/German translations will tell you! In fact this makes a very good argument for using anchors rather than IDs to identify points in the document that are linked within translations.)

The HyTime Location Model

Within an SGML document the basic method of addressing an element is by assigning it a unique identifier (ID) to an element and then making a reference to this identifier using an attribute whose declared value is either an id reference value (IDREF) or an id reference list (IDREFS). Each unique identifier must be a valid SGML name, beginning with a letter, or one of the alternative name start characters defined in the SGML declaration, optionally followed by one or more letters, digits, or characters declared in the SGML declaration to be valid name characters.

Note: URLs are not valid SGML names, and neither are fragment identifiers by default as # is not a valid name character in the HTML. The name used in an SGML IDREF is identical to that used in the ID being pointed to. All IDREFs are presumed to be local so there is no need to add a # to distinguish local name references as HTML currently requires.

SGML's basic object addressing method has a number of limitations. The principal limitation is that the identified object must form part of the document, or subdocument, from which it is referenced. In addition, unique identifiers must be assigned to a single element's start-tag. This prevents an identifier from selecting more than one point in a document, though references can be made to more than one unique identifier from a reference point using an id reference list. A further restriction is that, because unique identifiers are defined as attributes of elements, they cannot be assigned to entity references, or to significant data strings.

HyTime's location address module allows SGML unique identifiers to be assigned to parts of a document which do not otherwise have identifiers. HyTime allows unique identifiers to be assigned to:

There are three main types of HyTime location address:

Name space locations

Name space locations are used to point to objects that have been assigned a name. Such objects include:

Each named location address associates a unique identifier (id) with one or more objects that are identified by name in a constructed name list. This name list is constructed by concatenating the name lists supplied by the name list specifications (nmlist) and name list queries (nmquery) that form the contents of the named location address.

The names in a name list specification are not checked for validity as a unique identifier or entity name until the named location address is referenced in a manner that requires access to the addressed object.

To understand the role of named locations, consider the following examples, which are constructed using the following elements:

<!ELEMENT topic    - O (anchors+)                            >
<!ATTLIST topic    HyTime   NAME      #FIXED   nameloc
                   id       ID                 #REQUIRED 
                   set      (set|notset)       set           >
<!ELEMENT anchors - O (#PCDATA) --lextype(NAMES)--           >
<!ATTLIST anchors HyTime   NAME      #FIXED   nmlist
                  nmspace  NAME               element 
                  obnames  (obnames|nobnames) nobnames       >

Using the default values for the non-compulsory attributes the following named location addresses could be specified:

<topic id=fleas><anchors>p-12 p-34 p-35</topic>
<topic id=dogs><anchors>p-3 p-24 p-35</topic>

Each of the names in the anchors name list specifications points to an anchor element defined in the currently active document. Each of the topic named location address elements identifies three paragraphs. Note that the paragraph called p-35 is included under both the dogs and fleas topics.

The following named location specification can be used to concatenate the two lists:

<topics id=allergies><anchors obnames>fleas dogs</topic>

In this example the name list specification is identified as pointing at the unique identifiers of one or more object names. The elements pointed to are the two named topic elements used in the preceding example. Because the default value assigned to the set attribute is set duplicated entries will be removed, so the constructed name list known as allergies will contain the following entries: p-3 p-12 p-24 p-34 p-35.

Coordinate locations

HyTime coordinate locations can be used to identify the following types of objects that can be addressed as HyTime "quanta":

Each coordinate location addresses a location with respect to some other location, known as a location source. The combination of a location source and a coordinate location is known as a location view. Different location views can use the same location source. The location source for a coordinate location can be another location address element. In such cases the combination of locations is said to form a location ladder.

Note: Location sources allow relative addressing.

Node locations

Structured documents such as SGML documents can be viewed as a hierarchically structured tree consisting of a number of nodes. For SGML document the following node types can be identified:

Trees can be viewed in either a width-first or a depth-first manner. The width-first approach looks at each level in the tree as a separate list of nodes from which members can be selected. The depth-first approach considers each path down the tree as a separate list of nodes.

Both of these approaches to the tree structure can be used to define a set of measurement domains whose addressable range is determined by the number of nodes in a given node list. Nodes in a node list do not need to be unique. For example, the same data entity could occur at two points at a given level. Hence node lists do not form 'sets' in the mathematical sense. Each node list is 'ordered'; the order in which the nodes are listed is always preserved during processing.

Each node in a node list can be considered as a tree of one or more nodes. This allows location ladders to be built that find one node in a tree and then locate other nodes with respect to the located node.

NOTE: This paper will not concern itself with the use of tree or path locators.

HyTime Links

HyTime provides two types of links::

The HTML <A> element can be seen as a less constrained version of the HyTime clink model, with the name attribute taking the part of HyTime;sid attribute and href taking the place of HyTime's linkend attribute. As both theHTML attributes are defined using the CDATA keyword they are less constrained than their HyTime equivalents, which must follow SGML's naming rules, which would not accommodate URLs without modification of the default name set (which is not a problem as HTML already redefines most of the other default SGML limitations).

HyTime independent links can point to two or more named location specifications via a linkends attribute. Each of these locations can be assigned a role by the anchor role (anchrole) attribute. Each role can have a method associated with it through the endterms attribute. Rules for traversing to each anchor can be controlled independently using intra and extra attributes, while an aggregate traversal (aggtrav) attribute determines whether the links are traversed in parallel, separately or under user control.

Using Inpendent Links within HTML

To see how HyTime independent links work consider the following example of what might be possible if HyTime locators and independent links were permitted in the header of an HTML document. For this example I will use a special element defined as follows:

<!ELEMENT extlink -- External link --
                - O      (#PCDATA) >
<!ATTLIST extlink HyTime    NAME     ilink
                  HyNames   CDATA    "anchrole language
                                      linkends locators
                                      endterms show-as"
                  id        ID       #IMPLIED  -- Default: none --
                  languages CDATA    #REQUIRED --one per language--
                  locators  IDREFS   #REQUIRED --one per language--
                  show-as   IDREFS   #REQUIRED --one per language--
                  extra     NAMES    "A"
                  intra     NAMES    "A"
                  aggtrav   NAMES    agg                               >

In this example three of the default names assigned to HyTime attributes have been renamed using the HyNames attribute. This allows us to use languages as the name of the anchrole attribute, locators as the replacement for linkends and show-as in place of endterms.

Each use of the element must have three attributes defining which languages are to available, which locators are used to identify the relevant point in each language, and what form should be used to identify the translations.

The following example will also make use of the topic and anchor elements that were defined earlier.

The external link (extlink), topic and anchors elements could be used as follows within an HTML header:

<html><header><title>Linked Translation Set</title>
<BASE "http://www.myco.org/pub/subject/en/myfile.htm">
<LINK name=author  href="mailto:author@myco.com" title="Author" rev=made>
<LINK name=spanish href="../sp/myfile.htm" title="Español" rel=translation>
<LINK name=french  href="../fr/myfile.htm" title="Français" rel=translation>
<LINK name=german  href="../de/myfile.htm" title="Deutsch" rel=translation>
<topic id=SGML-en>
<anchors>SGML HTML</topic>
<topic id=SGML-sp>
<anchors URL="../sp/myfile.htm">SGML HTML</topic>
<topic id=SGML-fr>
<anchors URL="../fr/myfile.htm">SGML HTML</topic>
<topic id=SGML-de>
<anchors URL="../de/myfile.htm">SGML HTML</topic>
<extlink id=connect-sgml languages="EN SP FR DE" locators="SGML-en SGML-sp SGML-fr SGML-de" show-as="hot-spot SP-flag FR-flag DE-flag">
...
</head>
<body>
<h1>Linking together the World Wide Web</h1>
<p><a name=HTML></a>
HTML is ....
<p><a name=SGML></a>
SGML is ...
</body></html>

Note that the anchors definition for the topic related to the local file (SGML-en) has no URL attribute. This is because the default value for this attribute is the local document or the document identified by the BASE element.

Using this form of coding it will possible to provide a facility whereby, when you select a point in the document, the system will look for the nearest named element and then look in the header to identify which topics refer to that locator. Users can then either chose to go to related points in the same document, or to the similarly named points in any of the translations that have been identified as being associated with the document.

Note: This document is incomplete. If the ideas are accepted more information on the role of topics and anchors will be provided by its authors.

Annex A: The Current Situation in HTML

The elements that can be used to link documents together in HTML are the <LINK> element used in the header to identify meta-data links and the <A> (anchor) element used in the text to identify actual links. The current definition for <A> given in RFC1866 is:

5.7.3. Anchor: A

The <A> element indicates a hyperlink anchor (see 7, "Hyperlinks").
At least one of the NAME and HREF attributes should be present.
Attributes of the <A> element:

HREF
gives the URI of the head anchor of a hyperlink.

NAME
gives the name of the anchor, and makes it available as
a head of a hyperlink.

TITLE
suggests a title for the destination resource --
advisory only. The TITLE attribute may be used:

* for display prior to accessing the destination
  resource, for example, as a margin note or on a
  small box while the mouse is over the anchor, or
  while the document is being loaded;

* for resources that do not include a title, such as
  graphics, plain text and Gopher menus, for use as a
  window title.

REL
The REL attribute gives the relationship(s) described by
the hyperlink. The value is a whitespace separated list
of relationship names. The semantics of link
relationships are not specified in this document.

REV
same as the REL attribute, but the semantics of the
relationship are in the reverse direction. A link from A
to B with REL="X" expresses the same relationship as a
link from B to A with REV="X". An anchor may have both
REL and REV attributes.

URN
specifies a preferred, more persistent identifier for
the head anchor of the hyperlink. The syntax and
semantics of the URN attribute are not yet specified.

METHODS
specifies methods to be used in accessing the
destination, as a whitespace-separated list of names.
The set of applicable names is a function of the scheme
of the URI in the HREF attribute. For similar reasons as
for the TITLE attribute, it may be useful to include the
information in advance in the link. For example, the
HTML user agent may chose a different rendering as a
function of the methods allowed; for example, something
that is searchable may get a different icon.

The definition for <LINK> is:

5.2.4. Link: LINK

The <LINK> element represents a hyperlink (see 7, "Hyperlinks"). Any
number of LINK elements may occur in the <HEAD> element of an HTML
document. It has the same attributes as the <A> element (see 5.7.3,
"Anchor: A").

The <LINK> element is typically used to indicate authorship, related
indexes and glossaries, older or more recent versions, document
hierarchy, associated resources such as style sheets, etc.

These definitions are further qualified by the following descriptions of HTML hyperlinks:

7. Hyperlinks

In addition to general purpose elements such as paragraphs and lists,
HTML documents can express hyperlinks. An HTML user agent allows the
user to navigate these hyperlinks.

A hyperlink is a relationship between two anchors, called the head
and the tail of the hyperlink[DEXTER]. Anchors are identified by an
anchor address: an absolute Uniform Resource Identifier (URI),
optionally followed by a '#' and a sequence of characters called a
fragment identifier. For example:

http://www.w3.org/hypertext/WWW/TheProject.html
http://www.w3.org/hypertext/WWW/TheProject.html#z31

In an anchor address, the URI refers to a resource; it may be used in
a variety of information retrieval protocols to obtain an entity that
represents the resource, such as an HTML document. The fragment
identifier, if present, refers to some view on, or portion of the
resource.

Each of the following markup constructs indicates the tail anchor of
a hyperlink or set of hyperlinks:

* <A> elements with HREF present.

* <LINK> elements.

* <IMG> elements.

* <INPUT> elements with the SRC attribute present.

* <ISINDEX> elements.

* <FORM> elements with `METHOD=GET'.

These markup constructs refer to head anchors by a URI, either
absolute or relative, or a fragment identifier, or both.

In the case of a relative URI, the absolute URI in the address of the
head anchor is the result of combining the relative URI with a base
absolute URI as in [RELURL]. The base document is taken from the
document's <BASE> element, if present; else, it is determined as in
[RELURL].

7.1. Accessing Resources

Once the address of the head anchor is determined, the user agent may
obtain a representation of the resource.

For example, if the base URI is `http://host/x/y.html' and the
document contains:

<img src="../icons/abc.gif">

then the user agent uses the URI `http://host/icons/abc.gif' to
access the resource, as in [URL]..

7.2. Activation of Hyperlinks

An HTML user agent allows the user to navigate the content of the
document and request activation of hyperlinks denoted by <A>
elements. HTML user agents should also allow activation of <LINK>
element hyperlinks.

To activate a link, the user agent obtains a representation of the
resource identified in the address of the head anchor. If the
representation is another HTML document, navigation may begin again
with this new document.

7.4. Fragment Identifiers

Any characters following a `#' character in a hypertext address
constitute a fragment identifier. In particular, an address of the
form `#fragment' refers to an anchor in the same document.

The meaning of fragment identifiers depends on the media type of the
representation of the anchor's resource. For `text/html'
representations, it refers to the <A> element with a NAME attribute
whose value is the same as the fragment identifier. The matching is
case sensitive. The document should have exactly one such element.
The user agent should indicate the anchor element, for example by
scrolling to and/or highlighting the phrase.

For example, if the base URI is `http://host/x/y.html' and the user
activated the link denoted by the following markup:

<p>See: <a href="app1.html#bananas">appendix 1</a>
for more detail on bananas.

Then the user agent accesses the resource identified by
`http://host/x/app1.html'. Assuming the resource is represented using
the `text/html' media type, the user agent must locate the <A>
element whose NAME attribute is `bananas' and begin navigation there.

Proposed Changes for HTML

In the 1st Feb 96 draft of HTML Tables proposes the following attributes be added toall elements, including links and anchors:

Common Attributes

   The following attributes occur in several of the elements and are
   defined here for brevity. In general, all attribute names and values
   in this specification are case insensitive, except where noted
   otherwise. The ID, CLASS and attributes are required for use with
   style sheets, while LANG and DIR are needed for
   internationalization. 

   <!ENTITY % attrs
          "id      ID       #IMPLIED  -- element identifier --
           class   NAMES    #IMPLIED  -- for subclassing elements --
           lang    NAME     #IMPLIED  -- as per RFC 1766 --
           dir   (ltr|rtl)  #IMPLIED  -- I18N text direction --">

   ID 
       Used to define a document-wide identifier. This can be used for
       naming positions within documents as the destination of a
       hypertext link. It may also be used by style sheets for
       rendering an element in a unique style. An ID attribute value is
       an SGML NAME token. NAME tokens are formed by an initial letter
       followed by letters, digits, "-" and "." characters. The letters
       are restricted to A-Z and a-z. 

   CLASS 
       A space separated list of SGML NAME tokens. CLASS names specify
       that the element belongs to the corresponding named classes. It
       allows authors to distinguish different roles played by the same
       tag. The classes may be used by style sheets to provide
       different renderings as appropriate to these roles. 

   LANG 
       A LANG attribute identifies the natural language used by the
       content of the associated element.The syntax and registry of
       language values are defined by RFC 1766. In summary the language
       is given as a primary tag followed by zero or more subtags,
       separated by "-". White space is not allowed and all tags are
       case insensitive. The name space of tags is administered by
       IANA. The two letter primary tag is an ISO 639 language
       abbreviation, while the initial subtag is a two letter ISO 3166
       country code. Example values for LANG include: 

             en, en-US, en-uk, i-cherokee, x-pig-latin.

   DIR 
       Human writing systems are grouped into scripts, which determine
       amongst other things, the direction the characters are written.
       Elements of the Latin script are nominally left to right, while
       those of the Arabic script are nominally right to left. These
       characters have what is called strong directionality. Other
       characters can be directionally neutral (spaces) or weak
       (punctuation). 

       The DIR attribute specifies an encapsulation boundary which
       governs the interpretation of neutral and weakly directional
       characters. It does not override the directionality of strongly
       directional characters. The DIR attribute value is one of LTR
       for left to right, or RTL for right to left, e.g. DIR=RTL. 

       When applied to TABLE, it indicates the geometric layout of rows
       (i.e. row 1 is on right if DIR=RTL, but on the left if DIR=LTR)
       and it indicates a default base directionality for any text in
       the table's content if no other DIR attribute applies to that
       text. 

It should be noted, however, that this definition say nothing about how IDs could be used to identify fragments within URLs.

In the December 1995 draft of Hypertext Links in HTML the following definitions were suggested for the use of the REL and REV attributes:

4a. Legacy
      The following are REL values which were known to be used as
      values of the REL and REV attributes on the World Wide Web in
      December 1995.

      MADE
    	 The REV=MADE relationship has been used to identify the author
	     or "maker" of an HTML document.  Typical HREF values include a
	     `mailto:' URI or the URL of the author's home page.  Example:
	        <A REV=MADE HREF="mailto:murray@sq.com">Author</A>

      NEXT/PREVIOUS/TOC/INDEX/NAVIGATOR
    	 These values are described below, are used by SCO in its online
	     documentation and context- sensitive help system.

      4b. Browser-defined Links

      Some keywords are reserved and should not be used as REL/REV
      values.

      HTML user agents typically provide a mechanism for navigating
      through the recent history of a user's access to documents;
      traditionally these operations are referred to as "back" and
      "forward". These mechanisms allow a user to step back through the
      documents which led to the current location and then forward
      again to retrace the path. Additionally, most user agents provide
      a mechanism to immediately return to a user-defined location,
      traditionally referred to as the home page, or "home". Since
      these browser actions are internally implemented by the browser,
      REL/REV keywords associated with these relationships are
      disallowed.

      HOME
    	 RESERVED.  Defined by the user (for example, using an
	     environment variable or preference, e.g. WWW_HOME).
	     This relationship may not be overridden; HTML user agents
      should ignore any author-supplied REL=HOME setting.

      BACK
      RESERVED.  Defined by the browser.  This relationship may not
      be overridden; HTML user agents should ignore any
      author-supplied REL=BACK setting.

      FORWARD
    	 RESERVED.  Defined by the browser. This relationship may not
	     be overridden; HTML user agents should ignore any
	     author-supplied REL=FORWARD setting.

      4c. Navigational Node Links
      Navigational nodes are commonly used document objects which are
      designed by authors to assist the user  in navigating through a
      closed or extended document set.  The most familiar and common
      form of navigational node is a table of contents, which is a well
      known publishing device used for enumerating and ordering the
      contents of a closed document set.

      CONTENTS or TOC
      The TOC relationship identifies a Table of Contents.

    	 When REL=TOC, the target document is the Table of Contents for
	     the current document, or for the collection of documents of
 	    which the current document is a member.

   	  When REV=TOC, the current document is a Table of Contents and
	     the target document is a related document.
     
      When REL=TOC and REV=TOC it indicates that the current
    	 document is a Table of Contents and the target document is
    	 also a Table of Contents.  Additional REL/REV values may be
    	 used to specify the relationship between the two, such as
    	 PARENT/CHILD.

    	 If the hypertext link is specified with REL in a LINK element,
    	 an HTML user agent may present an icon in a tool bar. Or, if
    	 capable, an HTML user agent may present the Table of Contents
    	 in a concurrent window or pane, highlighting the current
    	 document.

      INDEX
    	 The INDEX relationship identifies an index.

    	 When REL=INDEX, the target document is an index for the
    	 current document, or for the collection of documents of which
    	 the current document is a member.

    	 When REV=INDEX, the current document is an index. Additional
    	 REL/REV values may be used to further specify the relationship
    	 between the two ends of the link.

    	 If the hypertext link is specified with REL in a LINK element,
    	 an HTML user agent may present an icon in a tool bar.  An index
    	 may be presented as an HTML document which is organized and
    	 presented in a style reminiscent of a paper-based index.  An
    	 index may also be presented as a form-based query into a full-
    	 text search database.

      NAVIGATOR
    	 The NAVIGATOR relationship identifies a navigational aid.

    	 When REL=NAVIGATOR, the target document is a navigational aid.
    	 A navigational aid may consist of a whole or partial Table of
    	 Contents, a list of related documents, an indication of the
    	 current document's location within a document hierarchy, or
    	 any other information which may be useful to the user.

    	 When REV=NAVIGATOR, the current document is a navigational aid.

    	 If the hypertext link is specified with REL in a LINK element,
	     an HTML user agent may present an icon in a tool bar.

      4d. Hierarchy Links
      It is quite common for documents to be developed  or defined
      using a hierarchical model, or tree-like structure.  The keywords
      listed below may be used within HTML documents to identify the
      hierarchical relationship of closely related nodes, such as the
      immediate parent, siblings and children. In addition, the TOP
      keyword may be used to identify the logical top (or root,
      depending on your perspective) of a hierarchical or tree-like
      structure.

      The entire set of relationships may be used by a user agent to
      build a map of the hierarchical structure(s) of which the
      current document is a node.  Hypertext links to documents
      identified with PARENT and TOP values are more likely to be
      accessible through an icon or other mechanism than documents
      identified with CHILD or SIBLING.

      CHILD          
	 The CHILD relationship identifies a subordinate or
	 subdocument. Any document may have multiple CHILD documents
	 within the same hierarchy.

	 When REL=CHILD, the target document is a hierarchical child,
	 or subdocument, of the current document.

	 When REV=CHILD, the current document is the hierarchical
	 child, or subdocument, of the target.

      PARENT
	 The PARENT relationship identifies the superior or container
	 node.

	 When REL=PARENT, the target document is the hierarchical
	 parent, or container, of the current document.

	 When REV=PARENT, the current document is the hierarchical
	 parent, or container, of the target.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

      SIBLING
	 The SIBLING relationship identifies a sibling in the current
	 hierarchy. Any document may have multiple SIBLING documents
	 within the same hierarchy.

	 When REL=SIBLING, the target document is a child of a common
	 parent, or a hierarchical peer of the current document.  REL
	 and REV have equivalent meanings for the SIBLING
	 relationship.

      TOP or ORIGIN
	 The TOP relationship identifies the logical top of a
	 hierarchical tree of which the current document is a branch.
	 BEGIN is a functional equivalent to TOP, if only one  of these
	 values is specified.

	 When REL=TOP, the target document is the logical top node of
	 the tree.  When REV=TOP, the current document is the logical
	 top of the tree.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

	 NOTE: ORIGIN has been suggested as an alternative to TOP to
	 provide metaphorical consistency with PARENT/CHILD/SIBLING.
	 Comments are encouraged.

   4e. Sequence Links
      Given a set of documents, it is possible and often desirable to
      specify linear sequences to navigate through the set.  A book, for
      example, is often organized as a linear sequence.  With sequence
      links in each document, a user agent can step through or gather
      an entire book programmatically.

      BEGIN or FIRST
	 The BEGIN relationship identifies the author- defined start of
	 a sequence of documents of which the current document is a
	 node. TOP is a functional equivalent to BEGIN when only one of
	 these values is specified.

	 When REL=BEGIN, the target document is the beginning of the
	 sequence.  When REV=BEGIN, the current document is the
	 beginning of the sequence.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.
      END or LAST
	 The END relationship identifies the author defined end of a
	 sequence of documents of which the current document is a node.
	 TOP is a functional equivalent to END when only one is
	 specified.

	 When REL=END, the target document is the end of the sequence.
	 When REV=END, the current document is the end of the sequence.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

      NEXT
	 The NEXT relationship identifies the next document in an
	 author-defined sequence of documents, such as a linear book.

	 When REL=NEXT, the target document is next after the current
	 document.  When REV=NEXT, the current document is next after
	 the target.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

      PREVIOUS or PREV
	 The PREVIOUS relationship identifies the previous document in
	 an author-defined sequence of documents, such as a linear
	 book.

	 When REL=PREVIOUS, the target document is previous to the
	 current document.

	 When REV=PREVIOUS, the current document is previous to the
	 target.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

   4f. Related Documents
      BIBLIOENTRY
	 The BIBLIOENTRY relationship identifies a bibliographic entry.

	 BIBLIOENTRY would most typically be specified on an A element,
	 as it would specify a hypertext link between a citation and a
	 bibliographic entry describing the citation.  Example:
	     <A REL=BIBLIOENTRY HREF="biblio.html#V.Bush"><CITE>As We
	     May Think</CITE></A>

	 The resource identified by this link may take any form desired
	 by the author/publisher. A bibliographic entry may be presented
	 in the style of a paper-based bibliographic entry, or it may be
	 presented as the result of a database query.

      BIBLIOGRAPHY
	 The BIBLIOGRAPHY relationship identifies a bibliography.

	 The resource identified by this link may take any form desired
	 by the author/publisher. A bibliography may be presented as an
	 HTML document which is organized and presented in a style
	 reminiscent of a paper-based bibliography. A bibliography may
	 also be presented as a form-based query into a bibliographic
	 database.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present a labeled icon in a tool bar.

      CITATION
	 The CITATION relationship identifies a bibliographic citation.

	 When REL=CITATION, the target is a bibliographic citation. The
	 anchor, in this case, may be a bibliographic entry. The anchor
	 may also be a reference, thus allowing the reader a way to
	 locate the citation:
	     ... as described by Tim Berners-Lee
	     <A REL=CITATION HREF=#TBL>[1]</A>
	     ...

	 When REV=CITATION, the anchor is a citation.  Typically, the
	 anchor would also be enclosed within a CITE element as shown in
	 the example below. The example shown here also corresponds to
	 the previous example, serving as its target by use of the NAME
	 attribute.
	     ... is described in Tim Berners-Lee's
	     <CITE><A NAME=TBL REV=CITATION HREF=./biblio/TBL > The
	     HyperText Markup Language </A> </CITE>
	     ...

	 NOTE: an alternative (and preferred) approach would be to add a
	 URI-valued attribute (HREF?) to the HTML CITE element.

      DEFINITION
	 The DEFINITION relationship identifies a definition of a term.

	 Definitions may be, but are not necessarily, contained within a
	 glossary.  DEFINITION would most typically be specified on an A
	 element, as it would specify a hypertext link from a term to
	 its definition.
	     <A REL=DEFINITION HREF="glossary.html#HTTP">HTTP</A>

      FOOTNOTE
	 The FOOTNOTE relationship identifies a footnote.

	 When REL=FOOTNOTE is specified on an A element, the anchor is a
	 footnote marker and the target is a footnote. This can be used
	 to link from the footnote marker (or a highlighted word,
	 phrase, etc.) to an HTML document which contains the footnote
	 text, or to a portion of the same document (see REV=FOOTNOTE).

	 When REL=FOOTNOTE is specified on a LINK element, it can
	 specify a hypertext link to a set of footnotes which are
	 related to the current document, or to a set of end-notes.

	 When REV=FOOTNOTE is specified on an A element, the anchor is a
	 footnote; that is, the actual content of the footnote, as
	 opposed to a footnote marker. In this case, the target
	 specified by the HREF value, if any, is the footnote marker.

	 It has been suggested that the combination of REV=FOOTNOTE and
	 NAME=...  on an A element may be used to imply that the
	 enclosed content not be rendered until a link to it is
	 explicitly traversed, at which time it can be presented in a
	 popup window. This would allow for the inclusion of footnote
	 text within a document that would not be visible until the
	 reader wanted it to be presented. Developers of user agents are
	 free to experiment with  this proposed feature, but there is no
	 requirement that it be implemented.

      GLOSSARY
	 The GLOSSARY relationship identifies a glossary.

	 When REL=GLOSSARY, the target document is a glossary.  When
	 REV=GLOSSARY, the current document is a glossary.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

	 A glossary may be directly presented as an HTML document which
	 is organized and presented in a style reminiscent of a
	 paper-based glossary.

	 A glossary may also be accessed through an intermediary query
	 mechanism.  For example, the user highlights a word or phrase
	 and presses the glossary button, thereby accessing the linked
	 object and passing the highlighted text as an argument.  The
	 server returns the glossary entry relevant to the highlighted
	 word.

   4g. Meta Documents
      There are classes of information which are not intrinsic to a
      document, but for which a clear and unambiguous association is
      often useful or even necessary.  This section defines a small set
      of keywords which are related to ownership and legal notices.

      Any attempt to rigorously define a closed set of meta- data
      classes, types, and formats is doomed to failure, partly due to
      the  need for ongoing experimentation.  Hence, the META keyword
      may be used to identify meta documents which do not necesarily
      have a clear or unambiguous definition. The content of the target
      node may be as specific format as  a MARC record or an FGDC
      record, or it may be an author-defined format.

      For each of the relationship keywords listed in this section, if
      the relationship is specified with REL in a LINK element, an HTML
      user agent may present a labeled icon in a tool bar.

      AUTHOR
	 The AUTHOR relationship identifies a hypertext link to
	 an author.

	 The hypertext link may be to the author's home page, a
	 biography, an audio or video clip, or an agent which sends mail
	 to the author (e.g., using the `mailto:' scheme).

      COPYRIGHT
	 The COPYRIGHT relationship identifies a hypertext link to a
	 copyright notice.

	 While it is arguable whether a copyright notice is required in
	 every HTML file to assert copyright protection on it, there is
	 clearly a desire to express copyright notice among a sufficient
	 portion of the user community to justify support.

	 A basic copyright notice for this document may simply state:
	 "Copyright 1995 by Murray C.  Maloney".  It may be desirable,
	 in place of or in addition to such a notice, to have a
	 hypertext link between each HTML document in a set and a single
	 copyright notice, as in the following examples:
	     <LINK REL=COPYRIGHT HREF="copyright.html">
	     <A REL=COPYRIGHT HREF="copyright.html">
	     Copyright 1995 by Murray C. Maloney</A>

      DISCLAIMER
	 The DISCLAIMER relationship identifies a hypertext link to a
	 legal disclaimer.  Usage is expected to be similar to that  of
	 the COPYRIGHT hypertext link. As with the copyright notice,
	 there is no intention or expectation that such a link would be
	 the only way to express a disclaimer.

      EDITOR
	 The EDITOR relationship identifies a hypertext link to an
	 editor. Usage is expected to be similar to that of the AUTHOR
	 hypertext link.

      META
	 The META relationship identifies a hypertext link to a node
	 which contains meta-information related to the  current
	 document. This is intended to be a generalized meta-data
	 relationship descriptor.

      PUBLISHER
	 The PUBLISHER relationship identifies a hypertext link to a
	 publisher.  Usage is expected to be similar to that of the
	 AUTHOR hypertext link.

      TRADEMARK
	 The TRADEMARK relationship identifies a hypertext link to a
	 trademark notice.  Usage is expected to be similar to that of
	 the COPYRIGHT hypertext link.

   4f. Other REL and REV Values Under Discussion
      The POINTER keyword is an invention of the author.

      The BANNER, BOOKMARK, HOTLIST and STYLESHEET keywords are
      described in Dave Raggett's Internet Draft on HTML 3.0.  Recent
      discussions tend to indicate that these keywords may not be
      appropriate for use as REL/REV values.  Dave Raggett's further
      explanation and justification is needed before any further
      discussion or decision can be made as to the future status of
      these keywords.

      The LANG attribute is described in Dave Raggett's Internet Draft
      on HTML 3.0. It has been applied to various HTML elements, not
      including the LINK and A elements. The author suggests that LANG
      is a useful attribute to apply to the LINK and A elements.  See
      also the discussion of REL=TRANSLATION.

      BANNER
	 The BANNER relationship identifies a document banner.

	 When REL=BANNER, the target document is to be included  within
	 the current document as a banner. A banner is typically used
	 for corporate logos, custom toolbars, and other information
	 which  would not typically be scrolled with the body of a
	 document.

	 When REV=BANNER, the current document is a banner. This may be
	 used, in future, to provide error-checking or to prevent the
	 use of a document as a banner unless it has been explicitly
	 identified as a valid source. (Or not!  Sorry, I was reaching
	 for a useful meaning.)

	 Compelling arguments have been made against the need for  a
	 REL=BANNER value, which is simply a special case of the INCLUDE
	 mechanism.
      BOOKMARK
	 The BOOKMARK relationship identifies a bookmark.

	 Bookmarks are used to provide direct links to key entry points
	 into an extended document. The TITLE attribute may be used to
	 label the bookmark.  Several bookmarks may be defined in each
	 document, and provide a means for orienting users in extended
	 documents.

      HOTLIST
	 RESERVED: This keyword has been proposed by Dave Raggett. Its
	 meaning and purpose require further explanation.  A placeholder
	 is being maintained until such time as Dave has had an
	 opportunity to provide further explanation, examples,
	 discussion and justification.

	 If the hypertext link is specified with REL in a LINK element,
	 an HTML user agent may present an icon in a tool bar.

      LANG
	 The LANG attribute indicates the language of the target
	 document.

	 The LANG attribute is optional and has no default value. It may
	 be used for purely informational purposes by an HTML user
	 agent, or by a robot for language classification.

	 Used in combinatiuon with a proposed REL=TRANSLATION and a
	 user's language preference setting, an HTML user agent may
	 intelligently select from a collection of otherwise equivalent
	 hypertext links expressed with the LINK element.  If the user's
	 language preference is not available, the user agent may
	 present a virtual menu of language options.

	 See the Internet Draft on the Internatiolisation of HTML for
	 a definition of the values of this attribute.

      POINTER
	 The pointer relationship identifies a hypertext pointer. That
	 is, this is a way to do indirection in HTML.

	 When REV=POINTER, the anchor is a pointer to the target
	 document. When a hypertext link is traversed to a LINK or A
	 element with REV=POINTER, the target specified by the HREF
	 value should be traversed, and so on, until a target without
	 REV=POINTER is retrieved.
	     <LINK NAME=PSEUDO REV=POINTER HREF="real.html">

	 When REL=POINTER, the target is a pointer to the real target.
	 This value can be used by a user agent to perform a pre-fetch
	 of the specified target for evaluation until the real target is
	 reached.

	 NOTE: The authors propose that the NAME attribute be removed
	 from the LINK element, or that a practical use for it should be
	 defined. For example, hypertext indirection can be specified by
	 providing both a NAME and an HREF value on the LINK element, in
	 combination with a specific REL or REV value, such as POINTER.
	 Some support exists among members of the HTML Working Group to
	 provide for hypertext indirection with the LINK element.  There
	 is no other reason for an author to define a target by using
	 the NAME attribute on a LINK element, since the resulting
	 target address is functionally equivalent to the address of the
	 document in which such a target is defined.

      STYLESHEET
	 The STYLESHEET relationship identifies a stylesheet.

	 When REL=STYLESHEET, the target document is a stylesheet. When
	 associated with a LINK element, the author/publisher is
	 expressing an expectation that the target stylesheet  will be
	 applied by the HTML user agent. When associated with an A
	 element, an HTML user agent may simply retrieve the target
	 stylesheet for display, or it may launch a stylesheet editor
	 with the target stylesheet.

	 When REV=STYLESHEET, the current document is a stylesheet and
	 the target document may be a demonstration of its use. In
	 general, it is not anticipated that stylesheets will contain
	 LINK or A elements, as they are not projected  to be HTML
	 documents.

      TRANSLATION
	 The TRANSLATION relationship specifies a translation to
	 another language.

	 When REL=TRANSLATION, the target is a translation to another
	 language. This value will most typically be used with the LINK
	 element, in combination with specification of the target
	 document's language as a LANG attribute value.  Presumably,
	 REL=TRANSLATION can be used with the A element to specify a
	 translation of a document fragment, such as a  phrase in a
	 foreign language.

	 When REV=TRANSLATION, the current document, or document
	 fragment, is a translation of the target.

      URC
	 The URC relationship identifies a Uniform Resource Catalogue
	 for the current document.

	 This keyword has been proposed by Dave Raggett.  Its meaning
	 and purpose have not been explained to the author, but a
	 placeholder is being maintained until such time as Dave has had
	 an opportunity  provide explanation, examples,
	 discussion and justification.