Extensible Hyper Linkage (XHL)

W3C Working Draft February-13-97

This version:
1.02: Partial revision
Previous versions:
Latest version:
Tim Bray (Textuality) <tbray@textuality.com>
Steve DeRose (EBT/Inso) <sjd@ebt.com>
Henry S. Thompson (v1.01 only) (HCRC Language Technology Group, University of Edinburgh) <ht@cogsci.ed.ac.uk>

Status of this memo

This is a fragment of a proposed revision of version 1.0 of this spec
This work is part of the W3C SGML Activity (for current status, see http://www.w3.org/pub/WWW/MarkUp/SGML/Activity).


Extensible Hyper Linkage (XHL) is a simple set of constructs that may be inserted into SGML documents to describe links between objects. XHL is designed to use the power of SGML to create a structure that can describe both the simple unidirectional links of today's HTML, as well as more sophisticated multi-ended, typed, self-describing links. The SGML constructs used in XHL are simple enough to be available in the Extensible Markup Language (XML) subset of SGML. XHL is completely described in this document.

Extensible Hyper Linkage Version 1.01 PARTIAL DRAFT

Extensible Hyper Linkage

Version 1.01 PARTIAL DRAFT

11 February 1997
This draft is intended for public discussion.
It is subject to approval by the W3C SGML Editorial Review Board

Table of Contents

1. Introduction
    1.1 Origin and Goals
    1.2 Relationship to Existing Standards
    1.3 Notation
    1.4 Terminology
    1.5 Types of links
2. Link Recognition
    2.1 Link Description Recognition by Attribute

1. Introduction

Extensible Hyper Linkage (XHL) describes a set of constructs which may be inserted in SGML documents to describe links between objects (the objects may or may not be (in) SGML documents). A link, as the term is used here, is a relationship between two or more data objects or portions of data objects, called its endpoints. Not all relationships are links: the relationship of a chapter to its paragraphs, of one word to the next, or any non-explicit relationship, are not considered links here. The relationship expressed using SGML's id and idref attributes is a link, subsumed within the framework presented here.

Links in XHL are described by elements contained in SGML documents. Such an element is called a link description, or linkd. The link description element itself may, but need not, be one of the endpoints of the link it describes. A link description can be understood as a mapping from document instances and their contexts to links.

Just as SGML Applications consist of a DTD and a specification of the meaning or significance of the structures defined therein, so an XHL Application must include a specification of the meaning or significance of the link types and endpoint types it employs.

This document not only defines the SGML constructs XHL provides to describe links, it also specifies what information a conforming XML processor provides to applications when these constructs occur in XML documents.

1.1 Origin and Goals

XHL is part of the overall XML effort, on which see .... It aims to provide an effective yet compact means for describing links that can have multiple typed endpoints, indirection, and flexible yet precise means for locating endpoints in all kinds of data. It also aims to represent the abstract structure and significance of links, leaving rendering and other issues of link-engendered behaviour to stylesheets or other mechanisms as far as practical.

1.2 Relationship to Existing Standards

Three standards have been especially influential on XHL:

  1. HTML: Defines several SGML element types that describe links, as well as popularizing a locator type, the URL, mainly focused on locating entire data objects, though with some provision for linking to elements with IDs, regions in graphics, and so on.
  2. HyTime: Defines locator types applicable to all kinds of data, as well as in-line and out-of-line link descriptions and some semantic features including traversal control and placement of objects into a display or other space.
  3. Text Encoding Initiative: Provides a formal syntax for locators for structured data, graphics, and other data, and elements incorporating these for describing links and collections of links.

Many other relevant linking systems have also informed this design, including Dexter, MicroCosm, InterMedia, and others.

1.3 Notation

1.4 Terminology

The following basic terms for parts of links and link descriptions apply in this document. They also appear on the following structural diagram of a simple link.

figure of link derivation

  1. link: An n-place relation, n>=2, between data objects. A link has a link type and typed endpoints. It is up to XHL Applications to define link meaning in terms of link types and endpoint types.
  2. endpoint: One part of a link. In principle, every piece of data may be an endpoint. In practice most endpoints will be elements or text in SGML or XML documents. Endpoints have endpoint types, which need not be unique.
  3. link description: The specification of a link, expressed in XML documents using XML elements and attributes, which provide means to specify the link type and endpoint types and to locate the endpoints themselves.
  4. locator: The part of a link description that specifies one of the data objects that serve as the link's endpoints. This may be as simple as a URL, ID, or query, or may be a complex chain of relative locators that eventually lead to a collection of discontinuous data portions that together make up the entire endpoint.
  5. gloss: A textual tag for an endpoint, suitable for showing users as a means of explaining its significance. If there are many links of the same type, the gloss might or might not be the same for all the endpoints with the same type therein.
  6. in-line link description: A link description which constitutes one of the endpoints (the implicit endpoint) of the link it describes. HTML <A>, HyTime clink, and TEI <XREF> are all examples of in-line links.
  7. out-of-line link description: A link description which does not constitute one of the endpoints of the link it describes (except perhaps by chance). Out-of-line links are useful for post-hoc annotation, and necessary for creating links with endpoints inside read-only data objects.

1.5 Types of links

Many papers have been written on how to categorize links. The XHL effort distinguishes several major axes for categorization. XHL only provides a standard vocabulary for the first kind of categorization, namely link types. The vocabulary of XHL link types can be extended by creating hierarchies of sub-types.

  1. link types: Links express various kinds of relationships between the things they connect, in terms of their role in an XML Application. Some links may be criticisms, others add support or background, while others have a very different meaning such as providing access to demographic information about a data object (its author's name, version number, etc), or to navigational tools such as index, glossary, and summary. A link's link type and its endpoint types provide simple hierarchically structured starting points for specifying link semantics.
  2. link topology: Links with different numbers of endpoints differ along this dimension.
  3. locator language: Link descriptions may differ in what formal language their locators use to specify endpoints. Different locators in the same link description may use different languages.
  4. endpoint formatting: Since link descriptions are just XML elements, formatting for the implicit endpoint of links is specified in the same was as for all elements. This matter is addressed in the forthcoming third part of the XML spec.
  5. link behavior: A matter for applications, not this standard.

I don't believe links have directionality -- ht

2. Link Recognition

Each link description is an element contained in an SGML document. The fact that an element is functioning as a link description must be reliably recognizable if its special status is to be exploited. Link descriptions may be recognized by their use of specially reserved attributes (as in the example above), or of specially reserved element types, or through other means not described in this specification.

2.1 Link Description Recognition by Attribute

A link description element may be recognized based on the value of a reserved attribute named XHL appearing as part of its start tag, either directly in the element itself, or indirectly in the definition of the element type in (the external subset of) the DTD for the document. Possible values are MLINK, TLINK, ELEMENT, XLG, and XLD, signalling in each case that the element may be treated as a link description of the indicated link description type, as described in this specification.

An example of such an element using an explicit attribute:

<A XHL="TLINK" HREF="http://www.w3.org/">The W3C</A>

The link description type of this link description is TLINK, its (explict) locator is "http://www.w3.org/", which uses the URL locator language. Its link type is A, and we can't tell what its two pointer types are.

See the figure above for an example of the approach where the attribute is specified in the DTD.