Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.

Next ClausePrevious Clause  

homeParent clauseNext major clausePrevious major clauseNext clause at this level


8 Hyperlinks module

8.1 Concepts and definitions

Subclauses:


A hyperlink is a typed relationship among two or more objects, each of which fulfills a unique role in the relationship.

NOTE 209 Not all relationships are hyperlinks. Hierarchies (containment), event schedules (coordinate relationships), and simple cross-references (ID/IDREF) are other kinds of relationships that lack some properties of hyperlinks and introduce other properties of their own.

NOTE 210 The term "hyperlink" is used in preference to the unqualified term "link" to avoid confusion with the SGML processing link feature. However, the term "link" can be used with more restrictive qualifying adjectives, as in "hypertext link", or with no qualifiers when the context is clear.

In interactive applications, hyperlinks typically allow a user to "traverse" the links in arbitrary ways to access information in more than one order. However, HyTime does not require that presentation applications necessarily enable interactive traversal among the anchors of hyperlinks.

NOTE 211 For example, a HyTime application may use hyperlinks merely to control processing of the anchors or may "pre-traverse" hyperlinks by statically presenting one anchor at the point of occurrence of another anchor.

NOTE 212 Although a degree of hyperlinking can be accomplished using the ID and IDREF attribute types, the hyperlinks module offers the following advantages:

  1. The hyperlinks module provides a set of architectural forms for the description of links and their traversal rules.

  2. The standardization of link traversal and resolution mechanisms makes it possible for a common hyperlinking engine to support multiple applications (although this is not a requirement for HyTime conformance).

  3. Not all IDREFS are intended for user interaction or other conditional access; some merely associate information needed for the interpretation or processing of the document (for example, the attribute "subdvl" in A.5.6 Default value list). When hyperlink architectural forms are available, they can be used to distinguish true hyperlinks from other uses of IDREF, and to specify traversal rules for interactive use.

In many cases, it will be possible to make existing SGML documents with cross-references conform to HyTime simply by adding fixed attributes to their attribute definition lists, without modifying the document instance. The refloc facility can be used to adapt hyperlinking element types that do not use ID references to address their anchors.

8.1.1 Link creation

As an abstract object, a hyperlink has three primary properties:

  1. The "link type"

  2. The objects addressed as the "anchors" of the hyperlink Anchors can, at designer discretion, be satisfied by lists of multiple objects or by the hyperlink itself.

  3. The semantic roles the anchors play in the relationship represented by the hyperlink (the "anchor roles").

NOTE 213 For example, the relationship type "employment" could be defined as having two anchor roles, "employee" and "employer". An instance of an employment link would address two anchors consisting of single objects: the person who satisfies the employee role and the company (or person) that satisfies the employer role. Relationships from a single person to multiple employers would be represented by allowing the employer anchor to be a list. Relationships from a single employer to multiple employees would be represented by allowing the employee anchor to be a list. Relationships among multiple people and their corresponding employers would be represented by making both the anchors correspondent lists.

A hyperlink is represented by an element whose element type is the link type. The anchor roles (anchrole) attribute defines the anchor role names. The objects for each anchor role are addressed by attributes whose names are the same as the anchor role names (or mapped to the anchor role names by a HyNames attribute). The element form hyperlink (hylink) provides the general form for hyperlinks. HyTime also defines specialized forms of hylink that reflect common practice or provide additional linking semantics.

The "link type" of a hyperlink associates a semantic role with the link. Link types are defined by applications, and by architectures to which an application might conform. They are represented by the element type (generic identifier) of each link element. As with all HyTime architectural forms, an application is free to define other attributes for the link type, including attributes that create subcategories of the basic type.

NOTE 214 The decision whether to have multiple element types or a single type with a "subtype" attribute occurs frequently in document type design. Although a "subtype" attribute has the benefit of reducing the number of GIs of which the user must be aware, it adds an equal number of attribute values. Other significant considerations are whether the choice of subtype places constraints on the values of other attributes, or on the content model. If subtypes tend to differ in these respects, the designer should consider creating separate element types, or possibly application-level architectural forms.

The definition of a link type also defines the number of anchors and associates semantic roles with them. Applications can also define semantics for the content of hyperlinks, whether or not they name themselves as an anchor.

NOTE 215 For example, an application can define the content of a particular link type to be an explanation of each instance of the link.

NOTE 216 The designation of anchor roles is not a constraint on the anchor element types. Application designers can enforce such a constraint, if desired, by use of the reftype attribute.

NOTE 217 Although the number of anchors of a hyperlink is constrained, the number of objects that can be linked is not, as any (or all) anchors may be lists (if allowed by the definition of the link type).

NOTE 218 As representations of typed relationships, hyperlinks are not distinguished by the form of location address used to address their anchors. In other words, whether the anchors of a link are addressed by ID, tree location, or query does not effect the relationship established among them. However, the form of address used may present practical constraints on some processors. For example, an Internet-based application may not support the use of queries for initiation anchors of hyperlinks because it is impractical to resolve the query before presenting the anchors. Applications can also change the form of address without affecting the meaning of a hyperlink. For example, documents authored with links that use queries to address the anchors could be prepared for optimized delivery by resolving the queries and replacing them with direct addresses to the objects returned by the query without affecting the hyperlinks themselves.

8.1.2 Link traversal

The addresses of hyperlink anchors will, on request of the application, be resolved by the HyTime engine in order to provide access to the anchors.

NOTE 219 For example, hyperlink elements could represent index entries, for which an application could request access automatically and all at once in order to format the index.

In some applications, particularly interactive ones, hyperlinks are used to represent decision points that affect access to parts of the hyperdocument, represented by the anchors of the hyperlink. Such applications require selective resolution of anchor addresses and access to the anchors. Selective access of an anchor of a hyperlink is called "traversal". An application can specify the traversal that is permitted with respect to each anchor by means of the link traversal rules (linktrav) attribute.

NOTE 220 In HyTime, traversal is defined by the hyperlinks module. However, the attendant resolution of location addresses that is required in order to locate the selected anchor is an aspect of object identification and is defined in the base and location address modules.

Traversal occurs only among anchors or between adjacent members of list anchors, never to or from the link element itself (unless the link is also an anchor of itself). An anchor that can be accessed from outside the link and from which traversal within the link is possible is called an "initiation anchor". The classical "bidirectional link" is one that has two anchors, both of which are initiation anchors.

NOTE 221 An application can provide methods of access to link elements and their anchors that are not "traversal" as defined in this International Standard.

When a link is not one of its own anchors or is not an initiation anchor, it is termed independent, as it is contextually independent of its anchors. In particular, the link element may be in a separate document from all of its anchors. From the point of view of their anchors, independent links are "invisible" except by their effect on the anchors themselves. However, HyTime applications may make the properties of hyperlinks, including any content of independent hyperlink elements, available on request.

NOTE 222 In addition, applications may choose to provide facilities for accessing the anchors of links when accessing the link element themselves, even if the links do not name themselves as anchors. In other words, an application may choose to consider that every link is always one of its own anchors for the purposes of enabling movement to the link element itself (but not for the purpose of describing relationships). However, such behavior is not required by HyTime.

When a hyperlink names itself as one of its own anchors and is also an initiation anchor it is said to be "contextual" because the link presumably can occur in some reader-accessible context from which it is expected to be used as an initiation anchor. The contextual link (clink) element form represents the typical use of contextual links to create simple cross references.

When an anchor is a list or correspondent list, it can have an associated list traversal rule that defines how or if traversal is to be be allowed from one member of the list to other members ("list traversal"). The list is treated as a linked list, possibly circular. List traversal can be directional, either left or right, or bidirectional. If the list is considered to be circular, traversal from the first node to the last, the last to the first, or both, is allowed (depending on the directionality of the list).

NOTE 223 For example, if a list anchor allows "adjacent list traversal", the presentation system could provide "previous" and "next" buttons to reflect the list traversal options, as well as providing a mechanism for traversing from a member of the list to a different anchor of the same hyperlink.

When two or more anchors of a hyperlink are correspondent list anchors, traversal from one such anchor to another is always from a node in one correspondent list to the corresponding node in another such anchor. Correspondent list anchors may also have list traversal rules.

NOTE 224 For example, a relationship such as "defensive match-up" between the members of one sports team and the corresponding players on another sports team could be represented by correspondent anchors, one for each team.

When the scheduling module is supported, it is possible to specify positions and sizes, in both time and space, for the rendition of accessed anchors and previews by using anchloc location addresses to address links or their anchors as the content of scheduled events (see 8.3.2 Hyperlink anchor location address).

8.1.3 Traversal Rules

The attribute form hyperlink traversal rules (traverse) provides attributes for controlling traversal among hyperlink anchors and among the members of list anchors.

The attribute link traversal rules (linktrav) specifies for each anchor whether or not it is an initiation anchor and what traversal is allowed following access of the anchor following traversal to it from another anchor of the same link ("internal traversal"). The basic traversal options are shown in the following list. Some options can be combined.

For the purposes of discussing anchor traversal, the terms "arrival", "departure", and "traversal" have the following specialized meanings:

traversal

The movement from one anchor of a hyperlink to another anchor of the same hyperlink. Traversal can be visualized as moving "through" the link to get from one of its anchors to another. Traversal is always with respect to a single link, regardless of whether or not other links may use the same objects as anchors.

arrival

The arrival at an anchor of a hyperlink by means other than traversal of the link under consideration. For example, in a typical online presentation, scrolling a document to the point where an anchor occurs would constitute arrival at the anchor. Arrival is always "external" to the link. In particular, traversal to an anchor that happens to also be the anchor of another link would constitute arrival at the anchor with respect to the second link.

departure

Moving from an anchor of a link to a place that is not an anchor of the same link. For example, having traversed to an anchor, scrolling somewhere else would constitute departure. Departure is always with respect to the link used to traverse to the anchor. In particular, if two links share the same object as an anchor, following traversal to that object via the first link, traversal of the second link would constitute departure with respect to the first link.

NOTE 225 In other words, given a link of two anchors, anchor A and anchor B, a reader would be saxid to "arrive at" anchor A, "traverse to" anchor B, then "depart from" anchor B.

The basic traversal options are:

  1. Traversal following (external) arrival ("E"). The anchor is an initiation anchor such that, having arrived at the anchor, traversal is possible to any of the other anchors of the link that do not otherwise prohibit traversal to them. The "E" option does not imply the ability to depart the anchor upon return or traversal to the anchor.

    NOTE 226 External arrival does not constitute having traversed to the anchor.

  2. Return ("R"). Can only return to the anchor from which traversal to this anchor occurred.

    NOTE 227 For example, when traversed to, a return anchor might be presented in a pop-up window that will not allow any other actions until the pop-up window is dismissed. In addition, the typical "back" function provided by many hypertext browsers is not "return" as defined here, as the invocation of such a facility does not usually relate to the anchor directly. In other words, a strict return must be invoked by directly interacting with the anchor traversed to.

  3. Internal ("I"). Having traversed to this anchor of the link, can traverse to any other anchor of the same link.

  4. Departure ("D"). Having traversed to this anchor, can depart the anchor and the hyperlink.

    NOTE 228 For example, when traversed to, the document view might simply be "scrolled" to the anchor, the reader left free to scroll or otherwise navigate to other locations outside the scope of the anchor.

  5. No further traversal ("N"). Having traversed to this anchor, no further traversal is possible.

    NOTE 229 For example, for hyperlinks that represent decision points in a simulation, "N" anchors could represent decisions that result in termination of the simulation.

  6. Traversal is prohibited ("P"). Traversal to the anchor is prohibited from any other anchor of the hyperlink.

If an anchor for which departure is not allowed is the anchor of another hyperlink or contains anchors of other hyperlinks, traversal of those links is not allowed when the anchor has been traversed to because to do so would constitute departure of the anchor. However, if the anchor is traversed to as an anchor that allows departure or is accessed by means other than hyperlinking, then the departure restriction is not in effect.

NOTE 230 In other words, a hyperlink can affect movement to or from an anchor only with respect to the interpretation of that hyperlink. By the same token, designers and authors can expect their traversal choices to be respected, to the degree that a processing system supports traversal rules at all. (However, the specification of particular traversal rules cannot guarantee access to or restriction of access to hyperlink anchors. In other words, the traversal rule specification represents author or designer intent but cannot guarantee implementation of that intent.)

NOTE 231 Applications may associate data access policies with data objects based on their status as anchors of hyperlinks irrespective of traversal status or activity. However, such policies are beyond the scope of HyTime's traversal rules (although the HyTime activity tracking policy facility may be used to define such policies and their associations with data objects and hyperlinks -- see 6.7.3 Activity policy association).

These basic traversal options can be combined in specific combinations, forming the keywords allowed for the linktrav attribute as follows:

I

traversal after traversal from an anchor of the same link

R

return after traversal

D

departure after traversal

A

any traversal or departure (equivalent to EID)

N

no traversal after traversal from an anchor of the same link

P

traversal to this anchor is prohibited

ID

traversal or departure

RD

Return or departure

EI

traversal after arrival, traversal after traversal from an anchor of the same link

ER

traversal after arrival, return after traversal from an anchor of the same link

ED

traversal after arrival, departure after traversal from an anchor of the same link

EN

traversal after arrival, no traversal after traversal from an anchor of the same link

EP

traversal after arrival, traversal to the anchor prohibited (that is, return prohibited)

ERD

traversal after arrival, return, or departure (The ERD option differs from the A option only when there are more than two anchors of the hyperlink).

The value of the linktrav attribute is either one keyword for each anchor or one keyword for all anchors.

NOTE 232 Traversal rules more complex than those expressible by the linktrav keywords can be implemented by normalizing all links to binary links or by defining application-specific traversal specification mechanisms.

The attribute list traversal (listtrav) applies to any list or correspondent list anchor and defines, for each anchor, the list traversal allowed. Nodes in a list anchor are listed in the order they are addressed. Except for the "N" (no traversal) option, the list is treated as a linked list. When "wrap" is allowed, the list is a circular linked list such that the first node is linked to the last node.

NOTE 233 For the purposes of link traversal, each member of a list anchor is treated as a separately-traversable object. Thus the typical behavior of a browser upon a request to traverse from one anchor of a link to the other anchors would be to present a list showing all of the anchors, including the individual members of any list anchors (perhaps grouped to indicate their membership in a single anchor). For correspondent list traversal, traversal from a member of a correspondent list is always to the corresponding member of a corresponding list anchor.

The possible list traversal options are:

N

No list traversal possible. Having traversed to a member of the list, the only possible option is to traverse to another anchor of the hyperlink (which indirectly allows traversal to another member of the same anchor).

NOTE 234 In other words, there is no next or previous behavior, but the other members of the anchor can be traversed to by selecting them from the list presented when link traversal is requested.

L

Left traversal. Traversal is from a node in the list to the preceding member of the list.

R

Right traversal. Traversal is from a node in the list to the following member of the list.

A

Adjacent traversal. Traversal is from a node in the list to either of the adjacent nodes.

LW

Left with wrap: Leftward traversal, wrapping to the end of the list when traversing from the first node in the list.

RW

Right with wrap: Rightward traversal, wrapping to the beginning of the list when traversing from the last node in the list.

AW

Adjacent with wrap: Traversal in either direction, wrapping at either end of the list.

The value of the listtrav attribute is either one for each list anchor or one for all list anchors.

                    <!-- Traversal Attributes -->
<![ %traverse; [
<!attlist
-- traverse --    -- Traversal attributes --
                  -- Clause: 8.1.3 --
   (agglink,hylink,ilink)

   linktrav       -- Hyperlink traversal rules --
                  -- Traversal between anchors of hyperlinks:
                       A  any traversal or departure (EID)
                       D  departure after internal arrival
                       E  traversal after external arrival
                       I  traversal after internal arrival
                       N  no traversal after internal arrival
                       P  no internal arrival
                       R  return traversal after internal arrival --
      NAMES       -- Lextype: ("A"|"EI"|"ER"|"ED"|"EN"|"EP"|"ERD"|
                               "I"|"ID"|"D"|"N"|"P"|"R"|"RD")+ --
                  -- Constraint: one per anchor or one for all --
      A

   listtrav       -- List traversal rules --
                  -- Traversal between members of list anchors:
                       A  adjacent (both left and right) traversal
                       L  left traversal
                       N  no traversal
                       R  right traversal
                       W  wrapping traversal --
      NAMES       -- Lextype: ("A"|"AW"|"L"|"LW"|"N"|"R"|"RW")+ --
                  -- Constraint: one per list anchor or one for all
                     list anchors --
      N
>
]]><!-- traverse -->

Next ClausePrevious Clause  

Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.


HTML generated from the original SGML source using a DSSSL style specification and the SGML output back-end of the JADE DSSSL engine.