[Mirrored from: http://www.sq.com/papers/Relationships.html]

Hypertext links in HTML

Murray Maloney(murray@sq.com)
SoftQuad Inc.
@(#)Relationships.html 1.16 95/07/19

This is a discussion paper: It was initiated through discussion on the HTML Working Group mailing list.

Hypertext link relationships, specified by using the REL and REV attributes of the LINK and A elements, were conceived of as an early feature of the HTML language. Amidst all of the various and sundry efforts that have been undertaken to advance HTML and the WorldWide Web, the definition of a small set of widely accepted hypertext relationships has yet to be agreed upon and deployed in user agents.

Hypertext link relationships, and the attendant REL and REV attributes of the LINK and A elements, are discussed in Dave Raggett's Internet Draft on HTML 3.0. In addition, The Santa Cruz Operation, Inc (SCO) has developed an HTML user agent, based on Mosaic, which incorporates the use of the REL attribute of the LINK element.

The first draft of this paper was based on Dave Raggett's paper and on the author's experience with a partial implementation at SCO. Others have contributed to the development of this paper through discussions on the html-wg mailing list and through private correspondence with the author. (See the Acknowledgements section.)


Introduction

The hypertext link mechanism is the connective tissue used to weave the World Wide Web. A hypertext link is an object which specifies a connection between any arbitrary addressable objects, locations, or resources.

A hypertext link typically consists of an anchor and a target, each of which may be further classified and between which relationships may be identified. In HTML, there are several language elements which are used to identify anchors and targets and thus support the hypertext link mechanism.

The anchor of a hypertext link is typically presented to the user, through an HTML user agent, as a highlighted object (a word, phrase, graphic image, etc.). Not all anchors of hypertext links must be represented as highlighted within the document or the application. An HTML user agent may, as appropriate, act upon a hypertext link by taking immediate action, such as presenting a concurrent window. A user agent may, in some cases, simply ignore an anchor and its hypertext link.

An HTML user agent is free to provide whatever mechanism it chooses to allow the user to traverse from anchor to target. Typically, graphical applications provide for user interaction via a pointing device such as a mouse. Typically, non-graphical text-based applications provide for user interaction via keyboard and arrow selection.

Different hypertext links may have different behavior associated with them. For example, a link to a Table of Contents may be presented as an icon, with an appropriate label, in a tool bar. Another application may present the same link as a simultaneous view of the document in an alternate window or a concurrent pane. A hypertext link may also initiate a software program, or present audio, graphics, video, print, speech synthesis or braille.

HTML provides a mechanism for specifying the relationship between an anchor and a target as seen from either end of the hypertext link. The LINK and the A elements each provide a REL and a REV attribute which may be set with values to identify these relationships. The IMG tag and the SRC attribute can also be used to form links.

This purpose of this document is to discuss and formalize hypertext anchors as currently implemented on the World Wide Web, and to propose REL/REV relationships that are useful and consistent with current usage. This paper is intended to describe hypertext links, anchors and targets, classes and relationships. It is also intended to provide suggestions or hints for authors and publishers, and for developers of HTML user agents to guide them in using the hypertext link mechanism effectively.

NOTE: This document does not address issues associated with non-practiced usages of hypertext anchors, in particular the inclusion/embedding of program applications (e.g. Java applets), within HTML documents. This issue will be the topic of another discussion paper.

Anchors and Targets

Anchors

An anchor is any object which acts as a hypertext link to a target. An anchor may be a highlighted phrase within an HTML document, an icon on an HTML user-agent tool-bar or menu item, an active graphic, or an image map. An anchor may also be an object which is included by reference, such a graphic image.

There are four ways to specify an anchor in HTML:

An anchor is typically specified using the A tag. This form of anchor is used to highlight an object (word, phrase, graphic image, etc.) which may be activated by a user to traverse the link by using the following form:

	<A HREF="target"> object to highlight </A>

An anchor may also be specified using the LINK tag. This form of anchor is used to establish a hypertext link between an entire HTML document and another addressable object or resource. A LINK element is considered document meta-information (it does not mark a link relationship specific to any part of the body), and is therefore restricted to lie within the document HEAD. Because the LINK tag is only allowed within the HEAD of an HTML document, and because it has no content, it is not usually represented within the body of an HTML document as seen through a user agent. Its purpose is solely to inform the user agent that a link exists. The user agent may process or ignore these links as it sees fit, but it may, for example, present an icon on a toolbar for the user to traverse the link. An example of LINK usage is:

	<LINK HREF="chapter1.html" REL=PREVIOUS>
	<LINK HREF="chapter3.html" REL=NEXT>

An anchor may also be specified using the IMG tag. This form of anchor is used to establish a hypertext link to include a graphic image. Its purpose it solely to inform the user agent that a graphic image may be placed at the current location if the user agent is capable of doing so, and if the user has enabled viewing of graphic images. An example of this form of IMG usage is:

	<IMG SRC="image.gif">

An anchor may also be specified by providing a value to the SRC attribute on any HTML element which supports that attribute. For example:

	<NOTE CLASS=WARNING SRC=WARNING.gif> ... </NOTE>

A specialized active hypertext link anchor known as an image map may be specified by using the IMG element in combination with the SRC and ISMAP attributes. An example of this form of IMG usage is:

	<A HREF="..."><IMG SRC="image.gif" ISMAP></A>

Targets

A target is any addressable object or resource which typically serves as the destination of a hypertext link. The destination may be another HTML document, a fragment within the same or another HTML document, or any other type of object or resource.

A target may also be an aggregate link which can be presented as a list of possible targets from which a user can select. A Table of Contents may be an example of an aggregate link. The result of a query is an other example.

Any addressable object may serve as the target of a hypertext link. Typically, a target is addressed by specifying a URL/URI as the value of an HREF or SRC attribute on HTML elements which support those attributes.

HTML also provides a number of language elements which may be used to identify a target within an HTML document and to specify the base location from which relative addresses should be formed.

There are four ways to specify a target within an HTML document:

The base location of a document may be recorded in the BASE element in the HEAD of the document. The base location is the address from which all relative URL addresses are to be formed. For example:

	<BASE HREF="http://server.domain/whatever" >

A target may be specified by using the A tag. An A tag may be used to encapsulate any object (word, phrase, graphic image, etc.) and the target is considered to be the beginning of the encapsulated object. For example:

	<A NAME=TARGET> target object </A>

A target may also be specified by providing a value for the ID attribute on any HTML element which supports that attribute. For example:

	<P ID=PARA-1.1>

A target may also be specified by using a LINK tag. A LINK tag may only be used within the head of an HTML document, and it has no content. For example:

	<HTML>
	<HEAD>
	<LINK NAME=THIS>
	<LINK NAME=THAT HREF=THAT.html>
	</HEAD>

The LINK and A Elements and Their Attributes

The LINK and A elements share a set of common attributes. Except where noted, the semantics of those attributes is the same.

LINK

The LINK element indicates a hypertext link relationship between the document in which it is found and some other object. Any number of LINK elements may be used within the head of an HTML document. The LINK element is empty (does not have a closing tag). The LINK element takes the same attributes as the A (anchor) element.

The hypertext link described by the LINK element is not typically represented within the text area of an HTML user agent. Instead, an HTML user agent is free to either ignore any LINK element and the hypertext link associated with it, or to represent the hypertext link in some other way.

Presenting hypertext links as active icons in a toolbar is one way to present them to the user. Another may be to present the target document in a concurrent window, such as with a table of contents.

A

The A element is used to indicate the start (anchor) or end (target) of a hypertext link within the body of an HTML document.

The hypertext link described by the A element is typically represented as a highlighted object (word, phrase, graphical image, etc.) within the text area of an HTML user agent.

Common Attributes

For the purposes of this discussion, the following is a list with descriptions of the most important common attributes. All of the attributes listed here are part of HTML 2.0 except for CLASS, ID and MD, which are discussed in Dave Raggett's Internet Draft on HTML 3.0.

CLASS
The CLASS attribute value is used to subclass the hypertext link. The CLASS attribute is most often used as a generalized identifier to which style information may be attached by a stylesheet mechanism.

The CLASS attribute may also be used to subclass LINK elements, thereby differentiating hypertext links with common REL or REV values. This may provide unambiguous syntax, for example, for multiple LINK elements with REL=NEXT within a document. Thus, alternate paths through a document can be coded within the document. For example:

	<LINK REL=NEXT CLASS=NOVICE  HREF=... >
	<LINK REL=NEXT CLASS=VETERAN HREF=... >
	<LINK REL=NEXT CLASS=EXPERT  HREF=... >
	<LINK REL=NEXT CLASS=GURU    HREF=... >

Multiple CLASS values may be specified. The potential list of CLASS attribute values is open-ended. However, practical application will likely require definition and specification of at least a small set of accepted keywords, and agreement on processing expectations for arbitrary keywords. The keywords used in the previous example are typical of the type of keywords which may be specified, but are not proposed.

HREF
The HREF attribute value specifies the location of a destination or resource, expressed in the Universal Resource Identifier (URI) notation. Only one HREF value may be specified. An HTML user agent may present the value of the HREF attribute in an information area when the user positions the mouse over the anchor or otherwise indicates interest in the anchor.

ID
The ID attribute specifies an SGML identifier used as the target of hypertext links or for naming particular elements in associated style sheets. Only one ID value may be specified. The attribute value must be unique within the document.

MD
The MD attribute specifies a message digest or cryptographic checksum for the target of the hypertext link. This attribute is used by a user agent to verify that the linked object is the same one that the author intended.

NAME
The NAME attribute specifies a named location within an HTML document and is used in forming addresses to target specific locations within an HTML document. Only one NAME value may be specified. The attribute value must be unique within the document.

REL
The REL attribute specifies the relationship of the target to the anchor. For example, REL=NEXT is used to indicate that the target is the next logical document in an author-specified sequence. The REL attribute can also be used to support search for links serving particular relationships.

Multiple REL values may be specified. Aggregate links can be formed by including multiple LINK elements with equivalent REL values. Activating the link, in that case, may lead to a virtual menu from which the user can make a selection.

The nature of a link relationship is not always obvious from the attribute value. "Meaning of REL and REV Attribute Values" describes commonly accepted values. Designers of HTML user agents can use these descriptions as a guide to implementation of browser or agent behavior.

REV
The REV attribute specifies the relationship of the anchor to the target. For example, REV=TOP is used to indicate that the anchor is the top of an author-specified hierarchical tree of which the target is a branch or node.

Multiple REV values may be specified. A Table of Contents may contain a series of anchors which specify REV=CONTENTS.

The nature of a link relationship is not always obvious from the attribute value. "Meaning of REL and REV Attribute Values" describes commonly accepted values. Designers of HTML user agents can use these descriptions as a guide to implementation of browser or agent behavior.

TITLE
The TITLE attribute is typically used to describe the linked object specified by the HREF attribute. The attribute value is a character string which may include spaces and punctuation. An HTML user agent may present the value of the TITLE attribute in an information area when the user positions the mouse over the anchor or otherwise indicates interest in the anchor. Authors/publishers can thereby provide greater context to the user to aid them in making decisions about whether to traverse a hypertext link.

An HTML user agent may also use the value of the TITLE attribute to set the value of an email subject field when the HREF value uses the mailto: scheme. In this way, the subject field may be preset with value that the author's mail agent can recognize and process.

Although the HREF and TITLE attributes have been singled out in the list above, any of these attribute values may be presented in an information area when the user positions the mouse over the anchor or otherwise indicates interest in the anchor. For example, an HTML user agent which is also an HTML editor may display the value of ID or NAME attributes.

The REL and REV Attribute Values

The potential list of valid values for REL and REV is open-ended, and this document is not intended to preclude the use or adoption of other or additional values. In fact, it is anticipated that hypertext applications which support specific knowledge domains will need to develop specialized sets of keywords. It is hoped that the development of extensions will not occur in isolation, and that coordination of extensions among various interested parties will prevent namespace contention or collision.

Further, HTML user agents should continue to be liberal in accepting new or alternate values, inasmuch as any name token is a legal value. The HTML specification declares that REL/REV values are SGML name tokens. That is, within the previously described syntactical constraints, a REL or REV relationship value may be any arbitrary, author-defined value that the author or publisher considers important. In some cases, the HTML user agent may choose to present relationships that it recognizes in a richer style, while continuing to present unfamiliar ones in the default style.

The REL and REV attributes are defined as NAMES in the SGML DTD for the HyperText Markup Language (HTML). As such, the legal values which may be assigned to the REL or REV attribute are zero or more name tokens. Name tokens are case-insensitive, must begin with an alpha character, may include digits (0-9), period or hyphen, and may be separated by spaces. The name tokens listed and described in this section are being recommended as commonly accepted relationships between and among objects in a hypertext collection.

When a single name token is specified as a REL or REV attribute, double quotes surrounding the attribute value are optional. When multiple name tokens are specified, double quotes are mandatory.

	<A REL="PARENT" HREF="..." > previous </A>
	<A REL="PARENT PREVIOUS" HREF="..." > previous </A>
	<A REL="SIBLING NEXT" HREF="..." > next </A>

Legacy

The following are REL values which are known to be used as values of the REL and REV attributes on the World Wide Web in May 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.
	<A REV=MADE HREF="mailto:murray@sq.com" > Author </A>

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

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 (using the WWW_HOME environment variable). 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.

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 CONTENTS relationship identifies a Table of Contents.

When REL=CONTENTS, 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=CONTENTS, the current document is a Table of Contents and the target document is a related document.

When REL=CONTENTS and REV=CONTENTS 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.

NAVIGATE
The NAVIGATE relationship identifies a navigational aid.

When REL=NAVIGATE, 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=NAVIGATE, 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.

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.

When REV=SIBLING, the current document is a child of a common parent, or a hierarchical peer of the target document.

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.

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.

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.

	<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>
	... 

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.

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 (i.e., using mailto: ).

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.

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.

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.

>From Dave Raggett's write up in the HTML 3.0 I-D: 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.

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 author proposes 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.

Compelling arguments have been made against the need for a REL/REV=STYLESHEET value. A more general STYLE element is widely seen as a more acceptable approach.

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 ???

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.

Hypertext Includes

There have been many discussions in various forums which clearly indicate that hypertext includes are a desired feature of the HTML language, and for which widespread user agent support is needed.

There are, apparently, three popular syntactic approaches to inclusion: specifying INCLUDE as REL value on the A and LINK elements, specifying a newly-defined and specially-purposed INCLUDE element (which would presumably also have REL and REV attributes), and using SGML entities. Each is described and discussed below, but no arguments are presented.

In either case, there is an expectation that processing of an INCLUDE link would result in the INCLUDE value being deleted from the REL list and inserted into the REV list. In other words, a REL=INCLUDE indicates that the inclusion has yet to happen, while a REV=INCLUDE indicates that the inclusion has already happened. It is helpful, for legal and copyright purposes, that included material be identifiable at all times.

INCLUDE as a REL or REV Value

INCLUDE relationship identifies a document for inclusion.

When REL=INCLUDE, the target document should be included at the anchor location. This value is typically, though not always, used with the A element. Using this value on a LINK element implies that the included document only contains information which is valid within the HEAD of an HTML document.

When REV=INCLUDE, the current document is identifying itself as an included document in the target document.

INCLUDE as an Element

An anchor may also be specified using a newly-defined INCLUDE tag.

	<INCLUDE REL=INCLUDE HREF="boilerplate.html"></INCLUDE>

In this scheme, when the hypertext link is traversed, and the content of the target document is included, the INCLUDE element would surround the included text. As a function of traversing the link, the REL attribute value would be transformed to a REV value, thus maintaining information about the link.

	<INCLUDE REV=INCLUDE HREF="boilerplate.html">
	This is the boilerplate text
	</INCLUDE>

SGML external entitities

SGML provides a mechanism for specifying external entities and including them, by reference, in an SGML document.

Hypertext Paths

NOTE: Recent discussions tend to indicate that the mechanisms and language uses needed to support paths have not been adequately articulated or specified. This section appears here for historical completeness. 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.

Paths are described briefly in Dave Raggett's Internet Draft on HTML 3.0, and reproduced below without further explanation. Further discussion, explanation and justification from Dave are clearly required before any further public discussion or decision can be made as to the future status of these keywords. The material below is reproduced for historic purposes and may be subject to future revision.


Values for use in defining Guided Tours with <A> element. These allow Guided Tours to be defined using HTML, for instance as part of tables of contents, e.g. <A REL=NODE REV=TOC HREF=Chap1.html>..

NODE
The NODE relationship implies PREVIOUS/NEXT LINKs for given URI.

PATH
The PATH relationship specifies that the given URI contains <A REL=NODE> links that should be inserted into the guided tour.

The browser treats the REL=NODE URIs as forming a sequence of nodes to follow and sets the <LINK REL=PREVIOUS>, NEXT as appropriate for each node as it is visited.

Proposed New Attributes for A and LINK Elements

Through the course of discussions, suggestions have been made to create new attributes for the LINK and/or A elements. These are preliminary discussions, with no sample implementations to demonstrate support.

ACTION or STYLE or PROCESS or PRESENT
Activiating a hypertext link in the HTML user agents of mid-1995 typically results in the linked object replacing the current object in the presentation window of the user agent. By convention, HTML user agents typically provide an alternate method which spawns another window and presents the linked object in it.

It has been suggested by Ian Graham and Roy Fielding, and agreed upon by many others, that the author should have some means to indicate a preference for the manner in which the user agent should present the linked object to the user. As you can see, the name of the attribute still needs to be settled.

From Ian Graham: It seems reasonable to allow the author to suggest browser behavior when links are activated. For example, when I click on a LINK button, should I clone a window for the link, or pop up a subwindow for a glossary entry? Perhaps this should be part of a CLASS attribute, but to my mind CLASS should be used to define the presentation/meaning of a document element in the document BODY as opposed to browser behavior.

And from Roy Fielding: Presentation semantics -- where should the results be "placed". A style="" attribute (defined as NAMES) would do nicely here.

Possible values and their meanings are:

CLONE
Present the linked object in a presentation window which is a clone of the current presentation window. That is popup another persistent window.
EMBED
Present the linked object at the current location. This provides a syntax for expressing "stretch text", but it also presents numerous problems. This will be subject to much debate.
REPLACE
The default behavior. Present the linked object in the current presentation window, replacing the current object completely.
POPUP
Present the linked object in a non-persistent presentation window. That is, show the linked object while the user is activating the link, and make it disappear when the user releases activation. In the case that the popup is entered without user activation, the user agent may provide a "Cancel" button or another mechanism to make the popup window disappear.
SPLITSCREEN or HORSPLIT
Present the linked object in one pane of a horizontally split window.
ALONGSIDE or VERSPLIT
Present the linked object in one pane of a vertically split window.

DINGBAT
The DINGBAT attribute, applied to the LINK element and the A element, would be used to specify the entity name of a graphic image (an icon) to associate with a hypertext link. The DINGBAT attribute values must be specified by the HTML DTD as an SGML name token group.

When used with LINK, the icon may be used on an HTML user agent toolbar. When used with A, the icon may be placed in close proximity to the anchor's highlighted text, as a footnote marker for example.

There are advantages to using an entity rather than an external graphic. Presumably, a user agent would pre-load the standard set of entities, thereby eliminating the need to fetch a graphic across the network. It is hoped that user agents will provide users with a means to specify the system location of personalized or customized versions of standard icons, thereby offering the user the opportunity to exercise greater control over the user interface and the graphical presentation.

The DINGBAT attribute has already been proposed for lists and list items in Dave Raggett's Internet Draft on HTML 3.0. User agent behavior, in the face of contention between DINGBAT and SRC, must be specified.

HILITE or HIGHLIGHT
Roy Fielding has pointed out that the author can indicate a preference for the style of anchor highlighting. So far, the list of candidate keywords are:

METHOD
From Ian Graham: It would often be convenient to access a link using a defined HTTP method other than GET. For example, suppose I have a LINK attribute defining a related, searchable glossary. One desirable behavior is as follows: the user highlights a word and clicks a mouse button (or presses a glossary button). The browser accesses the linked object, passing to it the highlighted text. The server then returns the glossary entry relevant to the highlighted word. This requires standardized methods and data encoding schemes. There is only one, namely the HTTP TEXTSEARCH method, which is how ISINDEX search data are sent to a server. I therefore propose that the METHOD attribute have two possible values, namely GET|TEXTSEARCH, to indicate how the client should access the linked resource.

SRC
The SRC attribute, applied to the LINK element and the A element, would be used to specify the location of a file containing a graphic image (an icon) to associate with a hypertext link. When used with LINK, the icon may be used on an HTML user agent toolbar. When used with A, the icon may be placed in close proximity to the anchor's highlighted text, as in the case of a footnote marker for example.

This extension of the applicability of the SRC attribute has already been proposed for lists, list items, and admonishments in Dave Raggett's Internet Draft on HTML 3.0. User agent behavior, in the face of contention between DINGBAT and SRC, must be specified.

WHEN
Roy Fielding and Ian Graham have pointed out that user agents currently exhibit different behavior between their processing of hypertext links specified with the SRC attribute and those specifiewd with HREF. Typically, user agents await user activation before traversing a hypertext link specified with an HREF attribute, while those specified with SRC are more often fetched immediately. This distinction is a natural consequence of a design which uses the SRC attribute to specify a hypertext link to an embedded graphical image.

The author can take advantage of an ability to specify when, or the type of event, which should initiate the hypertext link.

Roy Fielding has offered a small set of possible attribute values:

UserSelect
as is the case for anchors and FORMS
AutoEntry
as is the case for EMBED or IMG
AutoExit
an interesting derivative
Export
only used external to the user process

In response, Murray Maloney asks: Would the AutoExit derivative provide a means for me to do indirection? For example, in document A I have <A HREF=B#foo>, and in B I have <LINK NAME=foo STYLE=AutoExit HREF=C>. Would asserting the anchor in A lead me to C? If so, wonderful. If not, then why not and what then?

Please explain the meaning of "Export"? That is, if I use it what does it imply about "when should the action take place"?

Consider these examples:

	<LINK ACTION=POPUP WHEN=AutoEntry 
	      REL=COPYRIGHT HREF="copyright.html">

	<A ACTION=POPUP WHEN=AutoEntry 
	      REL=COPYRIGHT HREF="copyright.html">
	Copyright 1995 by Murray C. Maloney </A>
In either case, the user agent is expected to display the target document in a popup as soon as the current document is retrieved.


Acknowledgements

This paper is the synthesis and codification of ideas from a variety of sources. It is only fitting that those who have contributed to the discussion in various forums should be acknowledged for their part in the recent attempt to move this work forward.

A + before a name indicates that the individual has agreed to review a recent version of this draft. A ++ before a name indicates that the individual has commented and that the author has attempted to incorporate their comments, entering into a dialog to seek clarification as required.

++Terry Allen, O'Reilly and Associates, terry@ora.com
+ Brian Behlendorf, Indiana Univ., brian@organic.com
++Bert Bos, Rijksuniversiteit Groningen, bert@let.rug.nl
++Jon Bosak, Novell, Jon_Bosak@novell.com
+ Paul Burchard, burchard@geom.umn.edu
+ Steve DeRose, Electronic Book Technologies, steve@ebt.com
+ Joe English, joe@trystero.art.com
+ Roy T. Fielding, Univ. of California (Irvine), fielding@ics.uci.edu
++Peter Flynn, pflynn@curia.ucc.ie
++Ian Graham, Univ. of Toronto, igraham@utirc.utoronto.ca
+ Alex Hopmann, ResNova Software, Inc., hopmann@holonet.net
++Craig Hubley, Craig Hubley & Associates, craig@passport.ca
+ Albert Lunde, Albert-Lunde@nwu.edu
- Larry Masinter, Xerox, masinter@parc.xerox.com
+ David Morris, dwm@shell.portal.com
* Dave Raggett, MIT/W3C, dsr@w3.org
+ Liam Quinn, SoftQuad Inc., lee@sq.com

If I have misspelled your name, left off your affiliation, or got anything else wrong, please know that I meant no harm. If you'll get back to me, I'll correct it.

Reviewers

In addition to those listed above, the following people have been asked to comment on early drafts of the proposal.

+ Murray M. Altheim, NTTC, murray.altheim@nttc.edu
++Henry Budgett, SCO, henryb@sco.com
+ Dan Connolly, MIT/W3C, connolly@w3.org
++Dave Hollander, HP, dmh@hpsgml.fc.hp.com
+ Tom Magliery, NCSA, mag@ncsa.uiuc.edu
+ Eve Maler, ArborText, eve@doctools.com
+ Eric Miller, OCLC, emiller@oclc.org
  Lou Montulli, Netscape Communications, montulli@netscape.com
  Bob Stayton, SCO, bobs@sco.com
+ Stu Weibel, OCLC, weibel@oclc.org
++Faith Zack, SCO, faithz@sco.com