ISO/IEC JTC 1/SC34 N0056

ISO/IEC JTC 1/SC34

Information Technology ---

Document Description and Processing Languages

TITLE: ISO/IEC FCD 13250:1999 - Topic Maps
SOURCE: ISO/IEC FCD 13250 Editors
PROJECT: JTC1.18.67
PROJECT EDITOR: Michel Biezunski, Martin Bryan, Steve Newcomb
STATUS: Approved text for DIS ballot
ACTION: For ballot
DATE: 19 April 1999
DISTRIBUTION: SC34 and Liaisons
REFER TO: SC34 N44, 57
REPLY TO: Dr. James David Mason
(ISO/IEC JTC1/SC34 Chaiman)
Lockheed Martin Energy Systems
Information Management Services
1060 Commerce Park, M.S. 6480
Oak Ridge, TN 37831-6480 U.S.A.
Telephone: +1 423 574-6973
Facsimile: +1 423 574-0004
Network: [email protected]
http://www.ornl.gov/sgml/wg4/
ftp://ftp.ornl.gov/pub/sgml/wg4/

ISO/IEC FCD 13250:1999 - Topic Maps

Prepared by: ISO/IEC JTC1/SC34 - Document Description and Processing Languages

Foreword

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work.

In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. Draft International Standards adopted by the joint technical c committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75% of the national bodies casting a vote.

International Standard ISO/IEC 13250 was prepared by Joint Technical Committee 1 JTC1, Information technology, Subcommittee SC34, Document description and processing languages.

Introduction

This International Standard provides a standardized notation for interchangeably representing information about the structure of information resources used to define topics, and the relationships between topics. A set of one or more interrelated documents that employs the notation defined by this International Standard is called a "topic map". In general, the structural information conveyed by topic maps includes:

A topic map defines a multidimensional topic space — a space in which the locations are topics, and in which the distances between topics are measurable in terms of the number of intervening topics which must be visited in order to get from one topic to another, and the kinds of relationships that define the path from one topic to another, if any, through the intervening topics, if any.

NOTE 1: Two topics may be connected through an association, and they can also be connected by virtue of sharing an occurrence.

In addition, information objects can have properties, as well as values for those properties, assigned to them externally. These properties are called "facet types".

NOTE 2: The word "facet" can mean one side of a many-sided, polished object, or one segment of a compound eye (e.g. an insect's). Its metaphorical use here captures the idea that a facet is a property of a set of information objects that can be used to create a view of them.

Several topic maps can provide topical structure information about the same information resources. The Topic Maps architecture is designed to facilitate merging topic maps without requiring the merged topic maps to be copied or modified. Because of their extrinsic character, topic maps can be thought of as "overlays" on, or extensions to, sets of information objects.

The base notation of Topic Maps is SGML; an interchangeable topic map always consists of at least one SGML document, and it may include and/or refer to other kinds information resources. A set of information resources that comprise a complete interchangeable topic map can be specified using the bounded object set (BOS) facility defined by the HyTime architecture in ISO/IEC 10744:1997.

As the Extensible Markup Language (XML), a World Wide Web Consortium recommendation, is a subset of SGML, as explained in Annex K of SGML (1997), also known as WebSGML, XML can be also used as a base notation for Topic Maps.

The topic map notation is defined as an "SGML Architecture", and this International Standard takes the form of an "architecture definition document" expressed in conformance with Normative Annex A.3 of ISO/IEC 10744:1997, the "SGML Architectural Form Definition Requirements" (AFDR). The formal definition of the topic map notation is expressed as a meta-DTD.

1. Scope

NOTE 3: This clause defines the scope of this International standard. It should not be confused with the concept of "scope" defined in 3, which only applies in the context of Topic Maps.

Topic maps enable multiple, concurrent views of sets of information objects. The structural nature of these views is unconstrained; they may reflect an object oriented approach, or they may be relational, hierarchical, ordered, unordered, or any combination of the foregoing. Moreover, an unlimited number of topic maps may be overlaid on a given set of information resources.

Topic maps can be used:

This International Standard does not require or disallow the use of any scheme for addressing information objects. Except for the requirement that topic map documents themselves be expressed using SGML (or WebSGML) and HyTime, using the syntax described herein, neither does it require or disallow the use of any notation used to express information.

2. Normative references

The following standards contain provisions which, through reference in this text, constitute provisions of this International Standard. At the time of publication, the editions indicated were valid. All standards are subject to revision, and parties to agreements based on this International Standard are encouraged to investigate the possibility of applying the most recent editions of the standards indicated below. Members of IEC and ISO maintain registers of currently valid International Standards.

3. Definitions

For the purposes of this International Standard the following definitions apply.

The definitions provided in ISO 8879:1986 (including TC1, TC2 and TC3) and ISO/IEC 10744:1997 (including Amendment 1) shall apply to this International Standard.

added themes
Topics added to the sets of themes comprising the scopes within which topics have their topic characteristics. Added themes can be specified in two ways:
  1. Within the topic map document whose scopes are affected, by means of the added themes (addthems) attribute of the document element. The specified themes are added to the scopes of all of the topic characteristics which are assigned to topics via the topic links and association links contained in the document.
  2. Inside or outside the topic map document whose scopes are affected, by means of elements conforming to the themes to be added (addthms) architectural form. The specified themes are added to the topic characteristics assigned to topics via:
    • entire topic map documents (specified via the tmdocs attribute),
    • topic links (that is, the name characteristics and occurrence characteristics assigned to topics via topic links) (specified via the cassign attribute),
    • association links (that is, the roles played in associations by topics, as assigned to topics via association links) (specified via the cassign attribute, or any combination of the foregoing.
association
See topic association.
association link
A hyperlink element conforming to the association link architectural form defined by this International Standard. See 5.3.
association role
One of the roles that topics play in a given topic association.
association type
  1. A subject which is a class of topic associations.
  2. One of the classes of topic associations of which a particular association link is an instance. The association types of which a given association link is an instance can be specified by its optional types attribute.
base name
  1. A subelement (basename) of a topname subelement of a topic link.
  2. A name characteristic of a topic that is specified in the content of a basename element.
bounded object set (BOS)
A set of one or more documents and other information objects, all of which are known to the processing application and which are processed collectively. See ISO/IEC 10744:1997 for details; see also the definition of hub document.
display name
  1. A subelement (dispname) of a topname subelement of a topic link, containing the identifying information intended to be displayed by the application to represent the subject of the topic link.
  2. A name characteristic of a topic that is specified in the content of a dispname element.
facet
  1. The subset of information objects that share an externally-applied property.
  2. The values given to a particular property externally applied to a set of information objects.
facet link
A hyperlink that applies values for a given property (as well as the property itself) to one or more information objects.
facet type
A property applied by one or more facet links to one or more objects.
facet value
A member of the set of all values of a particular facet type.
hub document
The HyTime document used to define the set of information resources (the "bounded object set (BOS)") that comprise a HyTime hyperdocument. Applications may regard the HyTime document used as the entry point for a browsing session within a hyperdocument as the hub document. See ISO/IEC 10744:1997 for details. By definition, a topic map is a HyTime hyperdocument, and any topic map document can be regarded as a hub document.
occurrence role
The sense in which some set of occurrences is relevant to a topic. In the Topic Maps architecture, occurrence roles are specified as anchor roles (as defined in the HyTime architecture) of topic links.
public subject descriptor
A subject descriptor (see the definition of subject descriptor) which is used (or, especially, which is designed to be used) as a common referent of the identity attributes of many topic links in many topic maps. The subject described by the subject descriptor is thus easily recognized as the common binding point of all the topic links that reference it, so that they will be merged.
scope

NOTE 4: The definition of scope provided here should not be confused with 1, entitled Scope, which defines the scope of this International Standard.

The extent of the validity of a topic characteristic assignment (see the definition of topic characteristic assignment): the context in which a name or an occurrence is assigned to a given topic, and the context in which topics are related through associations. This International Standard does not require that scopes be specified explicitly. If the scope of a topic characteristic assignment is not explicitly specified via one or more scope attributes, the scope within which the topic characteristic applies to the topic includes all the topics in the entire topic map; this special scope is called the unconstrained scope. If a scope is specified, the specification consists of a set of topics, which, in the context of their role as members of such a set, are called themes. Each theme contributes to the extent of the scope that the themes collectively define; a given scope is the union of the subjects of the set of themes used to specify that scope.

NOTE 5: If it is desired to specify a scope which is the intersection (rather than the union) of two topics, this can be accomplished by creating a topic whose subject is that intersection, and then by using that topic as a theme.

sort key
sort name
  1. A subelement (sortname) of a topname subelement of a topic link, containing a string that is an alternative representation of a topic name that is intended to be used for alphabetic or other ordering.
  2. A name characteristic of a topic that is specified in the content of a sortname element.
subject
In the most generic sense, a subject is anything whatsoever, regardless of whether it exists or has any other specific characteristics, about which anything whatsoever may be asserted by any means whatsoever.

NOTE 8: The invisible heart of every topic link is the subject that its author had in mind when it was created. In some sense, a topic link reifies a subject. The identity attribute of a topic link is provided to allow the author of the topic link to indicate, as unambiguously as possible, the subject he had in mind as the organizing principle of the topic. See the definition of subject descriptor.

subject descriptor
Information which is intended to provide a positive, unambiguous indication of the identity of a subject, and which is the referent of an identity attribute of a topic link. (See also the definition of public subject descriptor.)

NOTE 6: There is no requirement that a subject descriptor be text, although it can be the text of a definition of the subject. It can also, for example, be a listing in a catalog of subjects, such as an acquisition number of an asset in a museum collection, a catalog number in a sales catalog, or a subject heading in a catalog of library subject headings. The distinction between a subject descriptor that happens to be a definition and an ordinary occurrence of a definition is that, in the case of the subject descriptor, the topic link's author has indicated (by referring to it by means of the value of the identity attribute) that it is to be regarded as the authoritative definition of the organizing principle of the topic link. In the other case, by characterizing a definition as a definitional occurrence, the author is merely acknowledging the existence of the definition and its possible relevance to the subject of the topic link.

NOTE 7: Subject descriptors may be offline resources.

theme
A member of the set of topics comprising a scope within which a topic characteristic assignment is valid. See also the definitions of scope and topic.
topic
  1. An aggregate of topic characteristics, including zero or more names, occurrences, and roles played in associations with other topics, whose organizing principle is a single subject.
  2. A topic link element. See 5.2.
topic association
  1. A specific relationship among specific topics that is asserted by an association link element.
  2. An association link element. See 5.3.
topic characteristic
Any defining characteristic of a topic. There are three kinds of topic characteristics:
  1. names,
  2. occurrences, and
  3. roles played in relationships (associations) with other topics.
For example, a name of a topic is a name characteristic of that topic.
topic characteristic assignment
  1. The mechanism whereby a topic characteristic becomes a characteristic of a topic. For example, topname subelements of topic link elements are used to assign names to topics as topic characteristics, so, in topic map documents, they perform the function of assigning topic name characteristics.
  2. The fact that a particular topic characteristic is a characteristic of a particular topic.
topic link
A hyperlink element conforming to the topic link architectural form defined in 5.2 by this International Standard.

NOTE 9: In this International Standard, the foregoing definition is invoked by the phrase topic link, or, since the default SGML name of the topic link architectural form is topic, by the special typography used to distinguish SGML names (i.e., topic).

NOTE 10: See also the definition of topic.

topic map
  1. A set of information resources regarded by a topic map application as a bounded object set whose hub document is a topic map document conforming to the SGML architecture defined by this International Standard.
  2. Any topic map document conforming to the SGML architecture defined by this International Standard, or the document element (topicmap) of such a document.
  3. The document element type (topicmap) of the topic map document architecture.
topic name
  1. A string of characters specified as a name of a topic; a name characteristic of a topic.
  2. A topic name (topname) element, as defined by this International Standard.
  3. Either a base name (basename), display name (dispname) or name to be used as sort key (sortname) element, as defined by this International Standard, and/or the information that such an element contains.
  4. A combination of the foregoing definitions.
topic occurrence
Information that is specified as relevant to a given subject.

NOTE 11: Topic occurrences may be offline resources.

topic type
  1. A subject which is a class of topics.
  2. One of the classes of topics of which a particular topic link is an instance. The topic types of which a given topic link is an instance can be specified via its optional types attribute.
unconstrained scope
The scope comprised of all of the topics in a topic map. When no applicable scope attributes are explicitly specified as governing a topic characteristic assignment, the scope within which the topic characteristic assignment is made is the unconstrained scope.

NOTE 12: In other words, the unconstrained scope is the default scope. Thus, for example, in a given topic map, if no scope attributes are explicitly specified for the name characteristics of any topics, any two topic links that have any of the same names will be merged, due to the effect of the topic naming constraint.

4. Notation

Topic Maps is an enabling document architecture whose definition (this International Standard) conforms to the Architectural Form Definition Requirements in Normative Annex A.3 of ISO/IEC 10744:1997, the "SGML Architectural Form Definition Requirements" (AFDR). The formal definition of the topic map notation is expressed as a meta-DTD. The specification of the Topic Maps architecture is accomplished by a combination of narrative text and formal definitions.

Any references in this document to industry and proprietary standards, products, user groups, and publications are not normative, and do not imply endorsement by ISO, IEC, or their national member bodies or affiliates. Any brand names or trademarks mentioned are the property of their respective owners.

The formal definitions are expressed in SGML.

The formal SGML definitions are part of the text of this International Standard and are protected by copyright. In order to facilitate conformance to the Topic Maps architecture, the formal SGML definitions may be copied as specified in the following copyright notice: Copyright (C) 1999 International Organization for Standardization. Permission to copy in any form is granted for use with conforming Topic Maps systems and applications as defined in ISO/IEC 13250:1999, provided this notice is included in all copies. The permission to copy does not apply to any other material in this International Standard.

NOTE 13: This document uses editorial conventions mandated by the ISO with which the reader should be familiar in order to understand the implications of certain words. The text describing each construct emphasizes semantics, while the formal SGML definition provides the rigorous syntactic definitions underlying the text descriptions.

NOTE 14: For this reason, it is recommended that the reader refer to the SGML definitions while reading the textual descriptions. Although the SGML definition always follows the related text, the user may find it helpful to read the SGML first in some cases. The meta-DTD is found in Annex A. When a construct is first introduced, it is described in the text. If the construct occurs in the formal SGML specification, both the formal SGML name and a full name in English are presented, as follows:

The declarations include comments, called "conventional comments", that follow conventions established in the HyTime standard to specify syntactic and semantic constraints and other information that is known to an architecture engine such as a Topic Maps engine. The conventional comments do not extend SGML in any way. They are used in the architecture definitions only, as a notation for the documentation of the architecture. They need not be included in application DTDs and, if they are included, the SGML parser will treat them as it would any other comment.

4.1 RCS name, full name, description, and clause

Every form name is followed by comments giving the full name, a description of the form, and the number of the clause in this International Standard in which the form is defined.

Individual attributes have a full name and description comment.

4.2 Constraints

Comments labeled "Constraints" define additional semantic or syntactic constraints on the constructs they follow. Constraint comments that follow the name of a form define constraints on the use of that form in general. Constraint comments that follow a component of a declaration (for example, the default value prescription of an attribute declaration), define the specific constraints on that component.

4.3 Note

Note comments provide additional information not provided by the other comment types and are informational rather than constraining.

5. Topic Maps architecture

This clause defines the syntax of topic maps. The Topic Maps syntax makes use of the base, location address, and hyperlinking modules of the HyTime architecture as defined in clauses 6, 7 and 8 of ISO/IEC 10744:1997.

NOTE 15: The entire formal definition of the Topic Maps syntax, the Topic Maps meta-DTD, is found in normative Annex A of this International Standard.

When interchanged, topic maps are HyTime bounded object sets (BOSs). The hub document of such a BOS must contain a Topic Maps architectural support declaration (see Annex B for examples).

Only one of the hyperlink syntaxes defined by HyTime is used in the topic map syntax: variable link (varlink).

The HyTime architecture provides a comprehensive set of addressing mechanisms and a standard syntax for using them. In addition, it provides means whereby any addressing syntax can be declared and used. The topic map architecture preserves these features of HyTime. Thus, the Topic Maps architecture allows topic map authors to use any addressing scheme, including proprietary addressing mechanisms driven by expressions in any notations, provided each such notation is formally declared as a notation in the manner prescribed by the SGML and HyTime International Standards.

NOTE 16: For example, in an XML environment, location addressing can be accomplished using IETF Uniform Resource Locator (URL) notation.

5.1 Topic Map Architectural Form

The topic map (topicmap) element form is used as the document element of all documents that conform to the Topic Maps architecture defined by this International Standard.

The effect of specifying the added themes (addthems) attribute is to add the themes that it references to the scopes of all of the topic characteristic assignments made throughout the document of which the element is the root element.

NOTE 17: See the definition of added themes.

NOTE 18: The addthems attribute can be used to acknowledge and document the fact that the document specifies only topic characteristic assignments that are within the scope defined by the set of themes that it specifies. It can be used to avoid specifying these common themes explicitly in every scope. After a topic map document is merged with other topic map documents, the contributions that it made to the resulting merged topic map can be distinguished from the contributions of all others by virtue of the fact that everything it contributed continues to appear within the scopes of the topics specified by the addthems attribute of its document element.

The topicmap element type is derived from the document element type of the HyTime architecture (HyDoc). All of the remaining attributes (maxbos, boslevel and grovplan) are inherited from HyDoc. The optional maxbos and boslevel attributes are used in hub documents in specifying the members of the HyTime bounded object set rooted at the document. The optional grovplan attribute is used in HyTime addressing. (See ISO/IEC 10744:1997.)

NOTE 19: As the use of the TMCFC parameter entity indicates, valid topic map documents may or may not have any topic links, association links or facet links in them. Some conforming applications may support only facet element types, while others may not support facet element types.

<!entity %
   TMCFC         -- Topic map context-free content --
   "topic|assoc|facet|bosspec|addthms|TMBrid"
>
<!element
   TMBrid        -- Topic map bridge element --
   - O
   ANY
>

<!element
   topicmap       -- Topic map document element --
                  -- Clause: 5.1 --
   - O
   (%TMCFC;)*
>
<!attlist
  topicmap
   HyTime         -- HyTime architectural form name --
      NAME
      HyDoc       -- HyTime document element.  (This
                     attribute definition is redundant; it
                     appears here as an aid to
                     understanding.) --
   addthems       -- Added themes --
                  -- Themes to add to all scopes that govern
                     the assignments of topic names,
                     occurrences, and roles played in
                     associations in this topic map
                     document. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes added via this
                     attribute. --
   -- bos --      -- HyTime bounded object set --
                  -- HyTime Clause: 6.5.1 --
   maxbos         -- Maximum bounded object set level --
                  -- Bounding level of HyTime bounded object
                     set when document is a hub or
                     subhub. --
      NUMBER      -- Constraint: Depth of nested entities to
                     include in BOS (0=no limit, 1=hub only)
                     --
      0
   boslevel       -- Bounded object set level --
                  -- Default BOS level used by data entities
                     declared in hub document. --
      NUMBER      -- Constraint: Depth of nested entities to
                     include in BOS (0=no limit, 1=this
                     entity only) --
      #IMPLIED    -- Default: No HyTime BOS --
-- bosspcat --    -- BOS exception specification attributes
                     --
                  -- HyTime Clause: 6.5.3 --
   bosspec        -- Bounded object set exception
                     specification --
                  -- Adjustments to be made to the bounded
                     object set. --
      IDREFS      -- Reference --
                  -- Reftype: bosspec+ --
                  -- Constraint: Must be internal reference
                     --
      #IMPLIED    -- Default: No BOS exception specification
                     --
-- dgrvplan --    -- HyTime document grove plan --
                  -- HyTime Clause: 7.1.4.1 --
   grovplan       -- Grove plan --
                  -- Grove plan for HyTime extended SGML
                     document grove --
      CDATA       -- Reference --
                  -- Reftype: grovplan --
      #IMPLIED    -- Default: HyTime default grove plan --
>

5.2.1 Topic Link Architectural Form

The topic link (topic) element form is used to assign topic name characteristics and topic occurrence characteristics to a topic.

Every topic link is intended by its author to be organized around exactly one subject, regardless of whether that subject is explicitly defined anywhere. A topic link may declare zero or more names and zero or more pieces of information (occurrences) that are relevant to its subject. Names, and the scopes within which the names are applicable to the subject, are declared by means of topname subelements. Occurrences are the anchors of the topic link; these, and the scopes within which the occurrences are applicable to the subject, are specified by means of occurs subelements.

The required unique identifier (id) attribute facilitates the addressing of topics by association links, by the identity attributes of other topic links, and, in their roles as themes in scopes, by scope and addthems attributes.

The optional subject identity (identity) attribute refers to one or more indications (subject descriptors) of the identity of the subject (the organizing principle) of the topic link. All of the other topic characteristics specified by the topic link are regarded as elaborating, and in no way contradicting, the subject described by the subject descriptor(s), if any. There are no restrictions on the kinds of information that may be referenced by an identity attribute.

NOTE 20: The information referenced by an identity attribute may or may not take the form of a topic link in a topic map document, may or may not be text, may or may not be machine-interpretable, and may or may not be online.

Any two or more topic links that reference the same subject by means of their identity attributes are equivalent to a single topic link that has the union of the characteristics (the names, occurrences, and associations) of both topic links. The two or more topic links may be merged, and/or applications may process and/or render them as if they have been merged.

NOTE 21: The two or more topic links do not have to refer to the same subject descriptor in order to be merged under this rule. It is only necessary that the subject that is somehow indicated by the two identity attributes be one and the same subject. If two or more topics refer to exactly the same subject descriptor, the subject descriptor may be described as a public subject descriptor, and it becomes possible to automate the merging of all such topics by making the assumption that, if they all share the same subject descriptor, they all share the same subject identity.

Similarly, if the identity attribute references one or more topic links, topic map processing applications must regard the referencing topic link, and all the referenced topic links, as having one and the same subject, and therefore they may all be merged.

The optional topic types (types) attribute references one or more topic links. The subject of each such referenced topic link is a class of subject of which the subject of the referencing topic link is an instance. The class-instance relationship established between the subject of each referenced topic link and the subject of the referencing topic link could alternatively be established by a topic association link whose semantic is the relationship between a class and an instance of that class.

NOTE 22: In other words, the types attribute establishes a relationship between topics (a topic association), rather than being a means whereby the referencing topic becomes an occurrence of each of the referenced topics.

The topic relationships established by the types attribute are not superclass-subclass relationships. They are only class-instance relationships.

NOTE 23: Superclass-subclass relationships between topics can be asserted by topic association links that have been user-defined for that purpose.

The optional scope (scope) attribute references the themes that are added to the scopes within which all names and occurrences specified by the topic link are valid.

NOTE 24: The scope attribute of the topic link architectural form is designed to permit a reduction in syntactic redundancy by providing a means whereby the themes that are common to the scopes within which all the names and occurrences of a topic are valid can be specified once for all. There is no requirement that it be used, however, even if its use would reduce redundancy.

A valid topic link must have at least one of the following: a topic name, a topic occurrence, or a role played in an association with at least one other valid topic.

The topic element type is derived from the varlink element type of the HyTime architecture.

NOTE 25: However, because it is possible to have a topic link without any occurs elements inside it, while (at the time of publication of this International Standard) the HyTime architecture requires that varlink elements always contain at least one anchspec, it is necessary that the value of the HyTime attribute be HyBrid when there are no contained occurs elements, and that it be varlink when there are any such contained occurs elements. It is anticipated that future versions of the HyTime architecture will permit varlink elements that contain no anchspec elements, and if such a change in the HyTime standard is made, it will be possible to fix the value of the HyTime attribute of all topic elements at varlink.

The optional hyperlink type (linktype) attribute is defined by the HyTime architecture in order to allow the link type name to be different from the generic identifier.

NOTE 26: Neither the value of the linktype attribute nor the generic identifier of a topic link has any significance with respect to the topic mapping semantics defined by this International Standard.

<!element
  topic           -- Topic link --
                  -- Clause: 5.2.1 --
  - O
  ( topname | occurs)*
>
<!attlist
  topic
   HyTime         -- HyTime architectural form name --
     (varlink|HyBrid)
     varlink      -- Constraint: varlink must be specified
                     when occurrences exist. If topic has no
                     occurrences, it must be declared as a
                     HyTime bridge element (HyBrid). --
   id             -- Unique identifier --
      ID
      #REQUIRED
   identity       -- Subject identity --
                  -- Reference to information (one or more
                     subject descriptors) that confers
                     understanding of the identity of the
                     subject of this topic link. --
      CDATA       -- Reference --
      #IMPLIED    -- Default: No subject descriptors; the
                     subject must be inferred from the
                     topic's characteristics. --
   types          -- Topic types --
                  -- Topics whose subjects are the classes
                     of topics of which this topic is an
                     instance. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No class-instance topic
                     associations are established via this
                     attribute.  --
                  -- Note: Some might still be specified by
                     topic association links, however. --
   scope          -- Scope --
                  -- The themes that are added to the scopes
                     of all the names and occurrences
                     specified by this topic link.  --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added by this
                     attribute. --
   linktype       -- Hyperlink type --
      NAME
      #IMPLIED    -- Default: Generic identifier --
>

5.2.2 Topic Name Architectural Form

A topic may have zero or more name characteristics (topic names). Topic names are specified using topic name (topname) elements; all such names become topic characteristics of the topic whose subject is the subject of the containing topic link.

This International Standard distinguishes three kinds of topic name: base name (basename), display name (dispname), and name used as sort key (sortname), specified by means of the three corresponding element types that a topname element may contain.

The scope (scope) attribute of the topname element specifies the themes that are common to the scopes of all of the topic name characteristics specified by the contained basename, dispname and sortname elements. The scope is the context (or area of validity) in which the name characteristic(s) specified by a topname element is/are assigned to the topic whose subject is the subject of the containing topic link.

The scope attributes of the contained name elements (basename, dispname and sortname) may be used to add more themes on a name-by-name basis, in the same manner as the scope attribute of the containing topname element.

NOTE 27: Thus, the scope attribute of the topname element form is really just a means of avoiding the syntactic redundancy of specifying the themes common to the contained elements separately via the scope attribute of each contained element.

NOTE 28: See also the definitions of theme and scope in 3.

If no scope attribute is specified by a basename, dispname or sortname element and no scope attribute is specified by its containing topname nor by the containing topname's containing topic link, then the scope of the name characteristic specified by that basename, dispname or sortname is unconstrained. If any of the aforementioned scope attributes are specified, then the scope is constrained to the themes specified by those scope attributes, even if the scope attributes specify no themes, plus any themes added via any applicable addthms elements in the bounded object set, plus any themes added via the addthems attribute of the containing topicmap document element.

The content of the optional display name (dispname) element specifies a name that is designed to be displayed by an application to a user, when the name specified by the basename elements within the same containing topname should not be used for display purposes.

NOTE 29: The display name can be used to specify an abbreviated name for use in situations where display resources are limited, or it can be a graphic expressed in some data content notation.

The content of the optional name to be used as sort key (sortname) element specifies a name that is designed to be used to represent the topic in a sorting process that arranges a list of topics in some order, when the name specified by the basename elements within the same containing topname should not be used for that purpose.

NOTE 30: Thus, the basename elements, at least one of which is required, is also, in effect, the default content of the optional dispname and sortname elements. If no dispname elements are specified, the basename elements are to be used as display names. Similarly, if no sortname elements are specified, the basename elements are to be used as sort keys.

The data content of both basename and sortname elements must be text strings, and they may be words or phrases. The data content of a dispname element may be either a text string or notation data; if it is notation data, it may be a displayable graphic or other information intended to identify the subject to one or more of the senses of the user of the topic map. If the content of a dispname is notation data, it must declare the notation via the HyTime-defined notation common attribute (see ISO/IEC 10744:1997).

NOTE 31: There are two reasons why base names, display names, and names used as sort keys may share a single containing topname element:

  1. to allow them to share a common scope, specified via the scope attribute of the containing topname element, and/or
  2. to indicate that base names, display names, and sort keys correspond to one another. Therefore, if a one-to-one relationship is desired between base names and display names, for example, each pair, consisting of one base name and one display name, must be contained in a separate topname element. However, if no display names or sort names are used, and many base names of a single topic have the same scope, all of the base names may appear within a single topname element.

This International Standard does not permit two distinct subjects to have the same name characteristic within exactly the same scope (the topic naming constraint). When topic maps are processed, each distinct set of themes that serves as a scope constitutes a namespace in which no two subjects can have the same name. If a conforming topic map application detects a situation in which multiple topic links have the same name characteristic within the same scope, they shall be merged.

NOTE 32: This means that applications that render the topic map will behave as though there was only a single topic link whose characteristics comprise the union of the topic characteristics of all of the topic links that had the same name within the same scope.

NOTE 33: The topic naming constraint is designed to preserve the ability to identify subjects unambiguously in terms of their topic name characteristics. The topic naming constraint is also necessary in order to support the most basic functionality of indexes and glossaries, which must make distinctions between the various meanings of words and phrases in order to support navigation to the relevant occurrences. Topic map authors must use scopes to distinguish between the different meanings of any name that is used for more than one subject. Consequently, if a topic map author does not wish to specify scope attributes explicitly, that author cannot use the same name for any two different subjects, because the default scope is a single scope: the unconstrained scope. Since any two identical names will appear within that single scope, the two subjects of which the two names are topic characteristics will be automatically merged. Such merging is erroneous and extremely undesirable unless the two topic links that have the same name in the same scope also have the same subject identity.

NOTE 34: As an aid to topic map authors, topic map authoring and merging applications may be designed in such a way as to give warning when topic links are being merged on account of the fact that they have the same name in the same scope.

NOTE 35: One of the effects of the topic naming constraint is that the merging of topic maps can be accomplished in such a way as to make the merger maintainable even when the member topic maps are maintained separately, asynchronously, and with no extra, agreed-upon discipline (such as some sort of element naming discipline) designed to permit easy maintenance of references among the component documents of the merged topic map. The topic naming constraint makes the addressing of the subjects covered by topic maps dependent only on their names and the distinguishing criteria of their names (the scopes within which their name characteristics are valid), and not on the organization or tagging of their corresponding topic links. The process of merging topic maps can be accomplished by creating a topic map hub document that specifies other topic maps as being members of its BOS, and that contains topic links whose names are the same as the names of topics in the member topic map documents, within the same scopes. The process of replacing one of the component topic maps with a newer version of itself is a matter of replacing the old version with the new version, and reprocessing the bounded object set in the usual way. There may be name and scope changes in the new version which will necessitate some thought and effort on the part of the operator in order to obtain the best possible merger, but the required effort will be limited to the resolution of issues created by the changes that were made to the component topic maps since the last merger was completed.

NOTE 36: If any two topic maps that are to be merged conflict with one another because they happen to provide the same name within the same scope for two different subjects, the merger of the different subjects can be prevented by applying different added themes to one or both of their containing topic map documents, using one or more addthms elements. The added themes specified by such addthms elements can serve to distinguish the two identical names, because they will no longer appear within exactly the same scope.

<!element
  topname         -- Topic name --
                  -- Clause 5.2.2--
  O O
  (basename+, dispname*, sortname* )
                  -- If dispnames or sortnames are not
                     specified, applications use basenames
                     for display and sorting purposes. --
>
<!attlist
  topname
   scope          -- Scope --
                  -- Reference to a set of themes (topic
                     links) to be added to the scopes of the
                     name characteristics specified by the
                     contained basename, dispname, and
                     sortname elements.  Scopes are sets of
                     themes that collectively define the
                     limited context within which
                     characteristics are validly applicable
                     to the topic. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added via this
                     attribute. --
>
<!element
  (basename | sortname)
                  -- Base name --
                  -- and --
                  -- Name to be used as sort key --
   - O
  (#PCDATA)       -- String to be used as name --
>
<!element
     dispname     -- Display name --
      - O
  (#PCDATA|TMBrid)*
                  -- String (or notation data) to be
                     displayed as name --
>
<!attlist ( basename | sortname | dispname)
   scope          -- Scope --
                  -- References to a set of themes (topic
                     links) to be added to the scope of the
                     name characteristic specified in the
                     content. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added via this
                     attribute. --
>

5.2.3 Topic Occurrence Architectural Form

By means of location addresses specified in its content, the topic occurrence (occurs) element references information (one or more occurrences) that is relevant to the subject of the containing topic link. This International Standard imposes no constraints on the nature of information objects that can be specified as occurrences of topics, nor on the addressing notations used to reference such occurrences.

NOTE 37: Applications may impose such constraints.

NOTE 38: Topic occurrences may be offline resources.

All of the occurrences specified by any given occurs element fall into a single user-defined category of occurrences called an occurrence role -- the role played by the occurrences in contributing to the information that participates in the subject characterized by the containing topic link. Within a single topic link, more than one occurs element may reference the same information, in which case the information plays multiple occurrence roles.

NOTE 39: For example, if the subject of a topic link is Leonardo Da Vinci, there may be a scientific-biography occurrence role, and a separate artistic-biography occurrence role. Some information resources may fall into both categories; if so, such resources will be referenced by both of the occurs elements that correspond to the two occurrence roles.

The occurrence role is the scope within which the occurrences are relevant to the subject of the containing topic link. The set of themes (topics) that constitute the scope is specified via the optional scope (scope) attribute. If no scope attribute is specified by an occurs element, and no scope attribute is specified by its containing topic link element, then the scope of the occurrence characteristics specified by that occurs element is unconstrained. If either of the aforementioned scope attributes are specified, then the scope is constrained to the themes specified by those scope attributes (even if the scope attributes specify no themes), plus any themes added via any applicable addthms elements in the bounded object set, plus any themes added via the addthems attribute of the containing topicmap document element.

The optional occrl attribute can be used to provide a mnemonic name for the occurrence role. If the occrl attribute is not specified, the generic identifier is regarded as the mnemonic name of the occurrence role.

The optional occurrence role type (type) attribute references a single topic link. The subject of the referenced topic link is a class of occurrence role of which the occurrence role expressed by the occurs element is an instance. The class-instance relationship established between the subject of the referenced topic link and the referencing occurs element could alternatively be established by making the occurs element an occurrence of the referenced topic link, within the scope of an occurrence role whose meaning is that the occurrence role is an instance of the subject of the topic link.

If the occurrence role type (type) attribute is specified, and if the topic referenced by the type attribute has a name characteristic that lies within a scope that is appropriate to the topic map user's context, the referenced topic's name characteristic is used to characterize the occurrence role for the user. Otherwise, the value of the occrl attribute (or, if the occrl attribute is not specified, the generic identifier) is used to characterize the occurrence role for the user.

NOTE 40: The topic referenced via the type attribute can have many names in scopes designed for many different user contexts, including many different natural languages and delivery platforms, while the occrl attribute or generic identifier is just a single token. Therefore, the use of a topic, referenced by the type attribute, to characterize the occurrence role offers far more flexibility and representational power than the simple mnemonic naming facility offered by the occrl attribute or generic identifier.

The occurs element type is derived from the anchspec element type of the HyTime architecture. Most of the remaining attributes (linktrav, listtrav, multmem and emptyanch) are inherited from the anchspec element type defined by the HyTime standard; these have been given default values that are generally appropriate for topic map applications, but they are not necessarily the same as the default values specified by the HyTime architecture (see ISO/IEC 10744:1997). The HyNames architectural control attribute is used here to indicate that for HyTime processing purposes the occrl attribute should be regarded as the HyTime anchrole attribute. (See ISO/IEC 10744:1997.)

<!element
  occurs          -- Topic occurrence --
                  -- Clause: 5.2.3 --
  - O
  (%loc;)*
>
<!attlist
  occurs
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   scope          -- Scope --
                  -- Reference to themes that are added to
                     the scope within which the occurrences
                     are applicable to the topic
                     characterized by the containing topic
                     link.--
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added to the scope
                     by means of this attribute. --
   occrl          -- Occurrence role name --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME
      #IMPLIED    -- Default: GI of element is treated as
                     occurrence role name. --
   type           -- Occurrence role type --
                  -- Reference to the topic that names
                     and/or otherwise characterizes the
                     occurrence role.  The characteristics
                     of the referenced topic, if
                     appropriate, will be displayed to the
                     user instead of the value of the occrl
                     attribute. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No topic characterizes the
                     occurrence role, unless this element is
                     an occurrence (with an occurrence role
                     whose meaning is instance) of a topic
                     whose subject is the nature of the
                     occurrence role.  The value of the
                     occrl attribute will be displayed as
                     the occurrence role name. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      error
   HyNames
      CDATA
      "anchrole occrl"
>

5.3.1 Association Link Architectural Form

The association link (assoc) element form is used to express relationships among topics. Topic Maps applications define the nature of the relationships, and of the roles played by topics in those relationships.

The optional scope (scope) attribute specifies the scope (the set of themes) within which the association is applicable to the topics that serve as anchors of the association link. If the scope attribute is not specified, the scope is unconstrained. If the scope attribute is specified, then the scope is constrained to the themes specified by the scope attribute (even if the scope attribute specifies no themes), plus any themes added via any applicable addthms elements in the bounded object set, plus any themes added via the addthems attribute of the containing topicmap document element.

The optional hyperlink type (linktype) attribute can be used to provide a mnemonic name for the association type. If the linktype attribute is not specified, the generic identifier is regarded as the mnemonic name of the association type.

The optional association type (type) attribute references a single topic link. The subject of the referenced topic link is a class of association of which the association expressed by the association link is an instance. The class-instance relationship established between the subject of the referenced topic link and the referencing association link could alternatively be established by making the association link an occurrence of the referenced topic link, with an occurrence role whose meaning is that the association link is an instance of the subject of the topic link.

NOTE 41: If topic links whose subjects are classes of topic associations specify identity attributes, and if the subject descriptor(s) referenced by the identity attributes describe the same subject, the association links that are instances of those classes can be universally recognized as assertions of equivalent relationships. Depending on the nature of such relationships, the use of public subject descriptors to define association types may significantly facilitate the process of merging topic maps, even when they emanate from disparate sources.

If the association type (type) attribute is specified, and if the topic referenced by the type attribute has a name characteristic that lies within a scope that is appropriate to the topic map user's context, the referenced topic's name characteristic is used to characterize the association type for the user. Otherwise, the value of the linktype attribute (or, if the linktype attribute is not specified, the generic identifier) is used to characterize the association type for the user.

NOTE 42: The topic referenced via the type attribute can have many names in scopes designed for many different user contexts, including many different natural languages and delivery platforms, while the linktype attribute or generic identifier is just a single token. Therefore, the use of a topic, referenced by the type attribute, to characterize the association type offers far more flexibility and representational power than the simple mnemonic naming facility offered by the linktype attribute or generic identifier.

<!element assoc   -- Association link --
                  -- Clause: 5.3.1 --
                - O (assocrl)+ >
<!attlist assoc
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      varlink
   scope          -- Scope --
                  -- Reference to themes that are added to
                     the scope within which the association
                     is applicable. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: Scope is unconstrained. --
   linktype       -- Hyperlink type. --
                  -- Mnemonic name for the association
                     type. --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME         
      #IMPLIED    -- Default: Generic identifier --
   type           -- Association type --
                  -- Topic whose subject is the class of
                     association of which this association
                     is an instance. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No type is specified by this
                     attribute.  --
                  -- Note: A type might exist by virtue of
                     the fact that this association link is
                     an occurrence (where the occurrence
                     role means "instance") of a topic whose
                     subject is the nature of the
                     association, however. --
>

5.3.2 Association Role Architectural Form

The association role (assocrl) element form specifies a user-defined role played by one or more specific topics in the relationship asserted by the containing association link element. The topics that play the role, if any, are referenced by means of the location addresses specified in the content of the association role element. Within a single association link, more than one assocrl element may reference the same topic, in which case the topic plays multiple roles in the association.

NOTE 43: Thus, the containing assoc element can assert that a topic has one or more specific relationships to itself.

Regardless of the association role(s) they play in the relationship expressed by the containing assoc element, all topics referenced in the content of the contained assocrl elements play their roles in that relationship within the same scope.

NOTE 44: This is the reason why there is no scope attribute on the assocrl element form.

The optional HyTime-defined anchor role (anchrole) attribute can be used to provide a mnemonic name for the association role. If the anchrole attribute is not specified, the generic identifier is regarded as the mnemonic name of the association role.

The optional association role type (type) attribute references a single topic link. The subject of the referenced topic link is a class of association role of which the association role expressed by the assocrl element is an instance. The class-instance relationship thus established between the subject of the referenced topic link and the referencing assocrl element could alternatively be established by making the assocrl element an occurrence of the referenced topic link, within the scope of an occurrence role whose meaning is that the association role is an instance of the subject of the topic link.

NOTE 45: If the topic links whose subjects are association role types specify identity attributes, and if the subject descriptor(s) referenced by those identity attributes describe the same subject, the assocrl elements that are instances of those association role types can be universally recognized as specifications of equivalent association roles. Depending on the nature of such association roles, the use of public subject descriptors to define association role types may significantly facilitate the process of merging topic maps, even when they emanate from disparate sources.

If the association role type (type) attribute is specified, and if the topic referenced by the type attribute has a name characteristic that lies within a scope that is appropriate to the topic map user's context, the referenced topic's name characteristic is used to characterize the association role for the user. Otherwise, the value of the anchrole attribute (or, if the anchrole attribute is not specified, the generic identifier) is used to characterize the association role for the user.

NOTE 46: The topic referenced via the type attribute can have many names in scopes designed for many different user contexts, including many different natural languages and delivery platforms, while the anchrole attribute or generic identifier is just a single token. Therefore, the use of a topic, referenced by the type attribute, to characterize the association role offers far more flexibility and representational power than the simple mnemonic naming facility offered by the anchrole attribute or generic identifier.

The assocrl element type is derived from the anchspec element type of the HyTime architecture. The remaining attributes (linktrav, listtrav, multmem and emptyanch) are inherited from the anchspec element type defined by the HyTime standard; these have been given default values that are generally appropriate for Topic Maps applications, but which are not necessarily the default values specified by the HyTime architecture (see ISO/IEC 10744:1997).

<!element
  assocrl         -- Association role --
                  -- Clause: 5.3.2 --
  - O
  (%loc;)+        -- Reftype: topic+ --
>
<!attlist
  assocrl
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   anchrole       -- Anchor role --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME
      #IMPLIED    -- Default: GI of element is treated as
                     anchor role. --
   type           -- Association role type --
                  -- Reference to the topic that names
                     and/or otherwise characterizes the
                     association role.  The characteristics
                     of the referenced topic, if
                     appropriate, will be displayed to the
                     user instead of the value of the
                     anchrole attribute. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No topic characterizes the
                     association role, unless this element
                     is an occurrence (with an occurrence
                     role whose meaning is instance) of a
                     topic whose subject is the nature of
                     the association role.  The value of the
                     anchrole attribute will be displayed as
                     the association role name. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      error
>

5.4 Themes To Be Added Architectural Form

The themes to be added (addthms) element allows themes to be added:

The added themes (addthems) attribute's value is a reference to one or more topic link elements. The referenced topic link elements must be regarded by topic map applications as additional themes in the scopes of the topic characteristics specified via the tmdocs and cassign attributes.

The tmdocs and cassign attributes are independent of one another. If both are specified, the tmdocs attribute does not establish a location source for the addresses specified via the cassign attribute; the cassign attribute must be used in such a way that it establishes its own location source(s).

NOTE 47: When topic maps are to be merged, the tmdocs attribute can be used allow applications to distinguish between the characteristics of topics in terms of the different topic maps that contributed those characteristics. For example, a topic can be created that represents the rhetorical position or purpose of a given topic map, and then, by means of an addthms element, that new topic can be used as an additional scope within which all the topic characteristics specified by the topic map is said to be valid. After the topic map document is merged with other topic map documents, the contributions that it made to the resulting merged topic map can be distinguished from all others by virtue of the fact that everything it contributed continues to appear within the scope of the topic representing the document or hyperdocument that contributed it.

NOTE 48: The addthms element's content is not defined by the Topic Maps architecture.

<!element
  addthms         -- Themes to be added --
                  -- (To scopes specified by topic map
                     documents and/or by topic links and/or
                     association links.)  --
                  -- Clause: 5.4 --
  - O
  (TMBrid)*       -- No content defined by the Topic Maps
                     architecture --

>
<!attlist
  addthms         -- Themes to be added --
                  -- Clause: 5.4 --
   addthems       -- Added themes --
                  -- Themes to be added to the scopes
                     specified by the tmdocs and cassign
                     attributes --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #REQUIRED
   tmdocs         -- Topic map document entities --
      ENTITIES    -- Constraint: Must be one or
                     more document entities of
                     topic map documents. --
      #IMPLIED
   cassign        -- Characteristic assigners --
                  -- Elements that assign characteristics to
                     topics.  The themes specified by the
                     addthms attribute are to be added to
                     the scopes within which the
                     characteristics they specify are
                     regarded as valid --
      CDATA       -- Reference --
                  -- Reftype: (topic | topname | basename |
                     dispname | sortname | occurs | assoc)+
                     --
      #IMPLIED
>

By means of the "facet linking" facility, property/value pairs can be added to read-only information objects. The properties are called "facet types", and the values are called "facet values". This International Standard does not constrain the nature of facet linking applications; they may or may not also use topic links.

NOTE 49: The property/value pairs applied by facet links can be used, for example, as selection criteria to create partial views of a corpus of information.

NOTE 50: Topic links are much more generalized and powerful than facet links.

5.5.1 Facet Link Architectural Form

The facet link (facet) element form is used to apply property/value pairs to information objects specified by the contained fvalue elements. Facet link properties (facet types) and values (specified by means of the contained fvalue elements) are user-defined.

The optional hyperlink type (linktype) attribute can be used to provide a mnemonic name for the property (facet type). If the linktype attribute is not specified, the generic identifier is regarded as the mnemonic name of the property.

The optional facet type (type) attribute references a single topic link. The subject of the referenced topic link is the property (the facet type) specified in all of the property/value pair assignments made by the facet link. The class-instance relationship established between the subject of the referenced topic link and the referencing facet link could alternatively be established by making the facet link an occurrence of the referenced topic link, with an occurrence role whose meaning is that the facet link is an instance of the subject of the topic link. If the facet type (type) attribute is specified, and if the topic referenced by the type attribute has a name characteristic that lies within a scope that is appropriate to the topic map user's context, the referenced topic's name characteristic is used to characterize the property (the facet type) for the user. Otherwise, the value of the hyperlink type (linktype) attribute (or, if the linktype attribute is not specified, the generic identifier) is used to characterize the property for the user.

NOTE 51: The topic referenced via the type attribute can have many names in scopes designed for many different user contexts, including many different natural languages and delivery platforms, while the linktype attribute or generic identifier is just a single token. Therefore, the use of a topic, referenced by the type attribute, to characterize the property (the facet type) offers far more flexibility and representational power than the simple mnemonic naming facility offered by the linktype attribute or generic identifier.

The facet element type is derived from the varlink element type of the HyTime architecture.

<!element
  facet           -- Facet link --
                  -- Clause: 5.5.1 --
  - O
  (fvalue)+
>
<!attlist facet
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      varlink
   linktype       -- Hyperlink type. --
                  -- Mnemonic name for the property (facet
                     type).  --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME         
      #IMPLIED    -- Default: Generic identifier --
   type           -- Facet type --
                  -- Topic whose subject is the property of
                     the property/value pair(s) being
                     assigned to the anchor(s). --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No facet type topic is
                     specified by this attribute. -- 
                  -- Note: A facet type topic might exist by
                     virtue of the fact that this facet link
                     is an occurrence (where the occurrence
                     role means "instance") of a topic whose
                     subject is the nature of the property,
                     however.  --
>

5.5.2 Facet Value Architectural Form

The facet value (fvalue) element form specifies a user-defined value of the property (facet type) being applied by the containing facet link. The information objects to which the property/value pair is being assigned are referenced by means of the location addresses specified in the content of the fvalue element.

The optional facet value name (facetval) attribute specifies the token which is the value of the property/value pair being assigned. If the facetval attribute is not specified, the generic identifier of the fvalue is the value being assigned.

The optional facet value type (type) attribute references a single topic link. The subject of the referenced topic link is the significance of the facet value. The class-instance relationship established between the subject of the referenced topic link and the referencing fvalue element could alternatively be established by making the fvalue element an occurrence of the referenced topic link, with an occurrence role whose meaning is that the fvalue element is an instance of the subject of the topic link.

The fvalue element type is derived from the anchspec element type of the HyTime architecture. The attributes (linktrav, listtrav, multmem and emptyanch) are inherited from the anchspec element type defined by the HyTime standard; these have been given default values that are generally appropriate for fvalue elements, but which may differ from the default values specified in the HyTime standard (see ISO/IEC 10744:1997). The HyNames architectural control attribute is used here to indicate that for HyTime processing purposes the facetval attribute should be regarded as the HyTime anchrole attribute. (See ISO/IEC 10744:1997.)

<!element
  fvalue          -- Facet value --
                  -- Clause: 5.5.2 --
  - O
  (%loc;)*
>
<!attlist
  fvalue
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   facetval       -- Facet value name --
                  -- Token is value of property being
                     assigned. --
      NAME
      #IMPLIED    -- Default: Facet value name is GI of
                     element. --
   type           -- Facet value type --
                  -- Reference to a topic whose subject is
                     the significance of the facet value
                     name. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No facet value type topic is
                     specified by this attribute. --
                  -- Note: A facet value type topic might
                     exist by virtue of the fact that this
                     fvalue element is an occurrence (where
                     the occurrence role means "instance")
                     of a topic whose subject is the
                     significance of the facet value name,
                     however. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      noterror
   HyNames
      CDATA
      "anchrole facetval"
>

6. Conformance

If a topic map document complies with all provisions of this International Standard, is a conforming SGML document as defined in ISO 8879, and is a conforming HyTime document as defined in ISO/IEC 10744, it is a conforming topic map document.

A conforming application intended to use existing topic maps must be able to:

A conforming application intended to create topic maps must be able to export the information expressible using the constructs defined by this International Standard in conformance with the syntax of those constructs.

A conforming application intended to read and write topic maps must meet both of the above sets of requirements. If an application can import topic maps, has features to edit them, but cannot export altered topic maps in the interchange syntax defined by this International Standard, then it is not a conforming application.

NOTE 52:

This International Standard constrains neither the uses to which topic maps can be put, nor the character of the processing that may be applied by a conforming application. This conformance clause is intended to guarantee that conforming topic maps can be understood to whatever degree conforming read-only applications are intended to understand them, and that the topic mapping information expressed using the topic map syntax will be preserved by conforming read/write applications (except to the extent that the users of read/write applications deliberately alter that information).

Annexes

Annex A: Topic Maps Meta-DTD (Normative)

While the meta-DTD that appears here is normative, it is also possible for conforming applications to use a meta-DTD that is the same in all respects except for differences dictated by the need to use a different SGML declaration.

NOTE 53: For example, the meta-DTD will differ in certain syntactic details when used in XML (WebSGML) applications.


<!-- HyTime architectural support declarations -->

<?IS10744 ArcBase HyTime>
<!NOTATION HyTime
   PUBLIC "ISO/IEC 10744:1997//NOTATION AFDR ARCBASE
           Hypermedia/Time-based Structuring Language (HyTime)//EN"
>
<!ATTLIST #NOTATION HyTime
   ArcFormA NAME     HyTime
   ArcNamrA NAME     HyNames
   ArcSuprA NAME     sHyTime
   ArcIgnDA NAME     HyIgnD
   ArcDocF  NAME     #FIXED HyDoc
   ArcDTD   CDATA    "HyTime"
   ArcQuant CDATA    #FIXED "NAMELEN 12"
   ArcDataF NAME     #FIXED HyBridN
   ArcBridF NAME     #FIXED HyBrid
   ArcAuto  (ArcAuto|nArcAuto) nArcAuto
   ArcOptSA NAMES    "base links locs"
   hyqcnt   NUMBER   32
   base     CDATA    "bos bosspec"
   locs     CDATA    "agrovdef bibloc dataloc datatok grovplan listloc
                      mixedloc multloc nameloc nmsploc pathloc
                      pgrovdef proploc queryloc referatt refloc
                      reftype relloc spanloc treecom treeloc treetype"
   links    CDATA    "varlink"
   exrefs   NAME     exrefs
   manyanch NUMBER   #IMPLIED
>
<!NOTATION AFDRMeta
   PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN"
>
<!ENTITY HyTime
   PUBLIC "ISO/IEC 10744//DTD AFDR Meta-DTD
           Hypermedia/Time-based Structuring Language (HyTime)//EN"
   CDATA AFDRMeta
>


<!--        HyTime common attributes     -->

<!-- The attribute form "HyTime common attributes"
     (common) declares the HyTime attributes shared by all
     topic map forms. -->

<!attlist
 -- Common --
 -- HyTime common attributes --
 -- HyTime Clause A.5.2, 7.8 --
   #ALL
   id             -- Unique identifier --
      ID
      #IMPLIED    -- Default: None --
-- refloc --      -- Reference Location Address --
                  -- HyTime Clause: 7.8 --
   #ALL
   loctype        -- Reference location addresses type --
                  -- Each named attribute treated as if it were an
                     IDREF to a location address element. --
                  -- Constraint: The declared values of named
                     attributes must be lexically compatible with
                     their specified interpretation. --
                  -- Note: The declared value CDATA always meets this
                     requirement. --
      CDATA       -- Lextype: (ATTORCON,("IDLOC"|"TREELOC"|
                                         "PATHLOC"|"RELLOC"|
                                         ("QUERYLOC",NOTATION)))+ --
      #IMPLIED    -- Constant --
                  -- Default: All references use SGML IDREFs, and each
                     IDREF in an IDREFS attribute is considered
                     separately --
   rflocsrc       -- Reference location source --
                  -- Associates referential attributes with their
                     location sources. --
      CDATA       -- Lextype: (ATTORCON,ATTORCON)+ --
                  -- Constraint: Attributes named must be referential
                     attributes. --
      #IMPLIED    -- Constant --
                  -- Default: All referential attributes have this
                     element as their location source. --
-- rflocspn --    -- Reference location span --
                  -- HyTime Clause: 7.8 --
   #ALL
   rflocspn       -- Reference location span --
                  -- Names pairs of referential attributes that
                     address spans when both attributes are
                     specified. --
      CDATA       -- Lextype: (ATTORCON,ATTORCON)+ --
                  -- Constraint: Attributes named must be referential
                     attributes. --
      #IMPLIED    -- Constant --
>


<!--  HyTime meta-DTD content model parameter entities -->


<!entity %
   HyCFC          -- HyTime context-free content --
                  -- Note: %loc, %link, %resorce qualify but are used
                     as meta-inclusions rather than meta-proper-
                     subelements --
   "HyBrid"
>
<!entity %
   loc            -- Location address forms --
   "anchloc|bibloc|dataloc|fcsloc|linkloc|listloc|mixedloc|nameloc|
    nmsploc|pathloc|proploc|queryloc|relloc|treeloc"
>
<!entity %
   link           -- Hyperlink forms --
   "varlink"
>
<!entity %
   resbase        -- Base module resource forms --
   "bosspec"
>
<!entity %
   resloc         -- Location address module resource forms --
   "agrovdef|datatok|grovplan|pgrovdef"
>
<!entity %
   resorce        -- All resource architectural forms --
   "%resbase;|%resloc;"
>

<!--       HyTime document element form     -->

<!element
   HyDoc          -- HyTime document element --
                  -- HyTime Clause: 6.4 --
   - O
   (%HyCFC;)*
   +(%link;|%loc;|%resorce;)
-- OptionalAttributes [base]: bos, bosspcat --
-- OptionalAttributes [locs]: dgrvplan --
-- CommonAttributes [locs]: refloc, reftype, rflocspn --
>
<!attlist
   -- bos --      -- HyTime bounded object set --
                  -- HyTime Clause: 6.5.1 --
  (HyDoc)
   maxbos         -- Maximum bounded object set level --
                  -- Bounding level of HyTime bounded object set when
                     document is a hub or subhub. --
      NUMBER      -- Constraint: Depth of nested entities to include
                     in BOS (0=no limit, 1=hub only) --
      0
   boslevel       -- Bounded object set level --
                  -- Default BOS level used by data entities declared
                     in hub document. --
      NUMBER      -- Constraint: Depth of nested entities to include
                     in BOS (0=no limit, 1=this entity only) --
      #IMPLIED    -- Default: No HyTime BOS --
-- bosspcat --    -- BOS except specification attributes --
                  -- HyTime Clause: 6.5.3 --
   bosspec        -- Bounded object set exception specification --
                  -- Adjustments to be made to the bounded object
                     set. --
      IDREFS      -- Reference --
                  -- Reftype: bosspec+ --
                  -- Constraint: Must be internal reference --
      #IMPLIED    -- Default: No BOS exception specification --
-- dgrvplan --    -- HyTime document grove plan --
                  -- HyTime Clause: 7.1.4.1 --
   grovplan       -- Grove plan --
                  -- Grove plan for HyTime extended SGML document
                     grove --
      CDATA       -- Reference --
                  -- Reftype: grovplan --
      #IMPLIED    -- Default: HyTime default grove plan --
>

<!-- HyTime bounded object set control forms -->

<!-- HyTime BOS control data attributes -->

<!attlist #NOTATION
-- bosdatt --     -- HyTime BOS control data attributes --
                  -- HyTime Clause: 6.5.2 --
   #ALL
   boslevel       -- BOS level --
                  -- Bounded object set level for the entity --
      NUMBER      -- Constraint: Depth of nested entities to include
                     in BOS (0=no limit, 1=this entity only) --
      #IMPLIED    -- Default: Value of boslevel attribute of HyDoc
                     element. --
   inbos          -- Include in BOS --
                  -- Unconditional include in, or exclude from, BOS --
      (inbos|notinbos)
      #IMPLIED    -- Default: Inclusion controlled by BOS level --
   bosprrty       -- Bounded object set priority --
                  -- Default BOS priority of objects in entity tree
                     rooted at this entity. --
      (foregrnd|backgrnd)
      foregrnd
   subhub         -- Is entity a subhub? --
      (subhub|nosubhub)
      nosubhub
>


<!-- HyTime bounded object set exception specification  -->

<!element
   bosspec        -- Bounded object set exception specification --
                  -- HyTime Clause: 6.5 --
                  -- Used to affect the HyTime BOS by overriding the
                     inclusion or exclusion and priority of the
                     entities identified by the BOS path or paths
                     given as content. --
   - O
   (#PCDATA)      -- Lextype: ((ENTITY,(csname|literal)*)|
                               (GRPO,ENTITY,(csname|literal)*,GRPC)+)
                     --
                  -- Constraint: If parentheses are used, each
                     parenthesized list is a separate BOS path. --
                  -- Constraint: Each word or literal in a BOS path is
                     the name of an entity declared in the entity
                     identified by the previous word, literal, or
                     entity name. --
-- Attributes [base]: bosspec --
-- Referrers [base]: HyDoc:bosspec --
>
<!attlist
   bosspec        -- Bounded object set exception specification --
                  -- HyTime Clause: 6.5 --
   boslevel       -- BOS level --
                  -- The BOS level from the last entity named in
                     each specified BOS path to be affected by this
                     bosspec. --
      NUMBER      -- Constraint: Depth of nested entities to include
                     in BOS (0=no limit, 1=last entity only) --
      1
   inbos          -- Include in BOS --
                  -- Unconditionally include or exclude objects
                     declared by the last entity named in each BOS
                     path, to the BOS level specified by this
                     bosspec's boslevel attribute. --
      (inbos|notinbos)
      #IMPLIED    -- Default: BOS unaffected --
   bosprrty       -- Bounded object set priority --
                  -- Unconditionally specify the BOS priority of
                     objects declared by the last entity named in each
                     BOS path, to the BOS level specified by this
                     bosspec's boslevel attribute. --
                  -- Note: The semantic of the bosprrty attribute is
                     not affected by the value of the inbos attribute
                     (that is, whether it is explicitly "inbos" or the
                     value is implied). --
      (foregrnd|backgrnd)
      #IMPLIED    -- Default: No priority change --
>

<!-- Topic Map specific architectural forms -->

<!entity %
   TMCFC         -- Topic map context-free content --
   "topic|assoc|facet|bosspec|addthms|TMBrid"
>
<!element
   TMBrid        -- Topic map bridge element --
   - O
   ANY
>

<!element
   topicmap       -- Topic map document element --
                  -- Clause: 5.1 --
   - O
   (%TMCFC;)*
>
<!attlist
  topicmap
   HyTime         -- HyTime architectural form name --
      NAME
      HyDoc       -- HyTime document element.  (This
                     attribute definition is redundant; it
                     appears here as an aid to
                     understanding.) --
   addthems       -- Added themes --
                  -- Themes to add to all scopes that govern
                     the assignments of topic names,
                     occurrences, and roles played in
                     associations in this topic map
                     document. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes added via this
                     attribute. --
   -- bos --      -- HyTime bounded object set --
                  -- HyTime Clause: 6.5.1 --
   maxbos         -- Maximum bounded object set level --
                  -- Bounding level of HyTime bounded object
                     set when document is a hub or
                     subhub. --
      NUMBER      -- Constraint: Depth of nested entities to
                     include in BOS (0=no limit, 1=hub only)
                     --
      0
   boslevel       -- Bounded object set level --
                  -- Default BOS level used by data entities
                     declared in hub document. --
      NUMBER      -- Constraint: Depth of nested entities to
                     include in BOS (0=no limit, 1=this
                     entity only) --
      #IMPLIED    -- Default: No HyTime BOS --
-- bosspcat --    -- BOS exception specification attributes
                     --
                  -- HyTime Clause: 6.5.3 --
   bosspec        -- Bounded object set exception
                     specification --
                  -- Adjustments to be made to the bounded
                     object set. --
      IDREFS      -- Reference --
                  -- Reftype: bosspec+ --
                  -- Constraint: Must be internal reference
                     --
      #IMPLIED    -- Default: No BOS exception specification
                     --
-- dgrvplan --    -- HyTime document grove plan --
                  -- HyTime Clause: 7.1.4.1 --
   grovplan       -- Grove plan --
                  -- Grove plan for HyTime extended SGML
                     document grove --
      CDATA       -- Reference --
                  -- Reftype: grovplan --
      #IMPLIED    -- Default: HyTime default grove plan --

<!element
  topic           -- Topic link --
                  -- Clause: 5.2.1 --
  - O
  ( topname | occurs)*
>
<!attlist
  topic
   HyTime         -- HyTime architectural form name --
     (varlink|HyBrid)
     varlink      -- Constraint: varlink must be specified
                     when occurrences exist. If topic has no
                     occurrences, it must be declared as a
                     HyTime bridge element (HyBrid). --
   id             -- Unique identifier --
      ID
      #REQUIRED
   identity       -- Subject identity --
                  -- Reference to information (one or more
                     subject descriptors) that confers
                     understanding of the identity of the
                     subject of this topic link. --
      CDATA       -- Reference --
      #IMPLIED    -- Default: No subject descriptors; the
                     subject must be inferred from the
                     topic's characteristics. --
   types          -- Topic types --
                  -- Topics whose subjects are the classes
                     of topics of which this topic is an
                     instance. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No class-instance topic
                     associations are established via this
                     attribute.  --
                  -- Note: Some might still be specified by
                     topic association links, however. --
   scope          -- Scope --
                  -- The themes that are added to the scopes
                     of all the names and occurrences
                     specified by this topic link.  --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added by this
                     attribute. --
   linktype       -- Hyperlink type --
      NAME
      #IMPLIED    -- Default: Generic identifier --

<!element
  topname         -- Topic name --
                  -- Clause 5.2.2--
  O O
  (basename+, dispname*, sortname* )
                  -- If dispnames or sortnames are not
                     specified, applications use basenames
                     for display and sorting purposes. --
>
<!attlist
  topname
   scope          -- Scope --
                  -- Reference to a set of themes (topic
                     links) to be added to the scopes of the
                     name characteristics specified by the
                     contained basename, dispname, and
                     sortname elements.  Scopes are sets of
                     themes that collectively define the
                     limited context within which
                     characteristics are validly applicable
                     to the topic. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added via this
                     attribute. --
>
<!element
  (basename | sortname)
                  -- Base name --
                  -- and --
                  -- Name to be used as sort key --
   - O
  (#PCDATA)       -- String to be used as name --
>
<!element
     dispname     -- Display name --
      - O
  (#PCDATA|TMBrid)*
                  -- String (or notation data) to be
                     displayed as name --
>
<!attlist ( basename | sortname | dispname)
   scope          -- Scope --
                  -- References to a set of themes (topic
                     links) to be added to the scope of the
                     name characteristic specified in the
                     content. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added via this
                     attribute. --
>

<!element
  occurs          -- Topic occurrence --
                  -- Clause: 5.2.3 --
  - O
  (%loc;)*
>
<!attlist
  occurs
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   scope          -- Scope --
                  -- Reference to themes that are added to
                     the scope within which the occurrences
                     are applicable to the topic
                     characterized by the containing topic
                     link.--
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: No themes are added to the scope
                     by means of this attribute. --
   occrl          -- Occurrence role name --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME
      #IMPLIED    -- Default: GI of element is treated as
                     occurrence role name. --
   type           -- Occurrence role type --
                  -- Reference to the topic that names
                     and/or otherwise characterizes the
                     occurrence role.  The characteristics
                     of the referenced topic, if
                     appropriate, will be displayed to the
                     user instead of the value of the occrl
                     attribute. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No topic characterizes the
                     occurrence role, unless this element is
                     an occurrence (with an occurrence role
                     whose meaning is instance) of a topic
                     whose subject is the nature of the
                     occurrence role.  The value of the
                     occrl attribute will be displayed as
                     the occurrence role name. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      error
   HyNames
      CDATA
      "anchrole occrl"
>

<!element assoc   -- Association link --
                  -- Clause: 5.3.1 --
                - O (assocrl)+ >
<!attlist assoc
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      varlink
   scope          -- Scope --
                  -- Reference to themes that are added to
                     the scope within which the association
                     is applicable. --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #IMPLIED    -- Default: Scope is unconstrained. --
   linktype       -- Hyperlink type. --
                  -- Mnemonic name for the association
                     type. --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME         
      #IMPLIED    -- Default: Generic identifier --
   type           -- Association type --
                  -- Topic whose subject is the class of
                     association of which this association
                     is an instance. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No type is specified by this
                     attribute.  --
                  -- Note: A type might exist by virtue of
                     the fact that this association link is
                     an occurrence (where the occurrence
                     role means "instance") of a topic whose
                     subject is the nature of the
                     association, however. --
>

<!element
  assocrl         -- Association role --
                  -- Clause: 5.3.2 --
  - O
  (%loc;)+        -- Reftype: topic+ --
>
<!attlist
  assocrl
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   anchrole       -- Anchor role --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME
      #IMPLIED    -- Default: GI of element is treated as
                     anchor role. --
   type           -- Association role type --
                  -- Reference to the topic that names
                     and/or otherwise characterizes the
                     association role.  The characteristics
                     of the referenced topic, if
                     appropriate, will be displayed to the
                     user instead of the value of the
                     anchrole attribute. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No topic characterizes the
                     association role, unless this element
                     is an occurrence (with an occurrence
                     role whose meaning is instance) of a
                     topic whose subject is the nature of
                     the association role.  The value of the
                     anchrole attribute will be displayed as
                     the association role name. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      error
>

<!element
  addthms         -- Themes to be added --
                  -- (To scopes specified by topic map
                     documents and/or by topic links and/or
                     association links.)  --
                  -- Clause: 5.4 --
  - O
  (TMBrid)*       -- No content defined by the Topic Maps
                     architecture --

>
<!attlist
  addthms         -- Themes to be added --
                  -- Clause: 5.4 --
   addthems       -- Added themes --
                  -- Themes to be added to the scopes
                     specified by the tmdocs and cassign
                     attributes --
      CDATA       -- Reference --
                  -- Reftype: topic+ --
      #REQUIRED
   tmdocs         -- Topic map document entities --
      ENTITIES    -- Constraint: Must be one or
                     more document entities of
                     topic map documents. --
      #IMPLIED
   cassign        -- Characteristic assigners --
                  -- Elements that assign characteristics to
                     topics.  The themes specified by the
                     addthms attribute are to be added to
                     the scopes within which the
                     characteristics they specify are
                     regarded as valid --
      CDATA       -- Reference --
                  -- Reftype: (topic | topname | basename |
                     dispname | sortname | occurs | assoc)+
                     --
      #IMPLIED
>

<!element
  facet           -- Facet link --
                  -- Clause: 5.5.1 --
  - O
  (fvalue)+
>
<!attlist facet
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      varlink
   linktype       -- Hyperlink type. --
                  -- Mnemonic name for the property (facet
                     type).  --
                  -- Note: Not displayed for the topic map
                     user if the topic referenced by the
                     type attribute has displayable
                     characteristics within the user's
                     scope. --
      NAME         
      #IMPLIED    -- Default: Generic identifier --
   type           -- Facet type --
                  -- Topic whose subject is the property of
                     the property/value pair(s) being
                     assigned to the anchor(s). --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No facet type topic is
                     specified by this attribute. --
                  -- Note: A facet type topic might exist by
                     virtue of the fact that this facet link
                     is an occurrence (where the occurrence
                     role means "instance") of a topic whose
                     subject is the nature of the property,
                     however.  --
>

<!element
  fvalue          -- Facet value --
                  -- Clause: 5.5.2 --
  - O
  (%loc;)*
>
<!attlist
  fvalue
   HyTime         -- HyTime architectural form name --
      NAME
      #FIXED
      anchspec
   facetval       -- Facet value name --
                  -- Token is value of property being
                     assigned. --
      NAME
      #IMPLIED    -- Default: Facet value name is GI of
                     element. --
   type           -- Facet value type --
                  -- Reference to a topic whose subject is
                     the significance of the facet value
                     name. --
      CDATA       -- Reference --
                  -- Reftype: topic --
      #IMPLIED    -- Default: No facet value type topic is
                     specified by this attribute. -- 
                  -- Note: A facet value type topic might
                     exist by virtue of the fact that this
                     fvalue element is an occurrence (where
                     the occurrence role means "instance")
                     of a topic whose subject is the
                     significance of the facet value name,
                     however. --
   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") --
      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") --
      N           -- Default: Show the whole list --
   multmem
      (single|list|corlist)
      list
   emptyanc
      (error|noterror)
      noterror
   HyNames
      CDATA
      "anchrole facetval"
>

Annex B: Example Architectural Support Declaration for the Topic Maps Architecture (Informative)

The following is an example of a topic map architectural support declaration as it might appear in a topic map document that is expressed using SGML.

NOTE 54: The following example conforms to Annex A.3 of ISO/IEC 10744:1997.

<!NOTATION TOPICMAP
   PUBLIC "ISO/IEC 13250:1999//NOTATION AFDR ARCBASE
           Topic Maps//EN"
>
<!ATTLIST #NOTATION TOPICMAP
   ArcFormA NAME     TopicMap
   ArcNamrA NAME     TMNames
   ArcSuprA NAME     sTopMap
   ArcIgnDA NAME     TMIgnD
   ArcDocF  NAME     #FIXED topicmap
   ArcDTD   CDATA    "TMDTD"
   ArcQuant CDATA    #FIXED "NAMELEN 12"
   ArcDataF NAME     #FIXED TMBridN
   ArcBridF NAME     #FIXED TMBrid
   ArcAuto  (ArcAuto|nArcAuto) nArcAuto
>
<!NOTATION AFDRMeta
   PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN"
>
<!ENTITY TMDTD
   PUBLIC "ISO/IEC 13250:1999//DTD AFDR Meta-DTD
           Topic Maps//EN"
   CDATA AFDRMeta
>

The following is an example of topic map architectural support declarations as they might appear in a topic map document expressed using WebSGML or XML.

NOTE 55: The following example conforms to Annex A.3 of ISO/IEC 10744:1997, as amended via Amendment 1 in 1998.

<?IS10744:arch
   name="TopicMap"
   public-id="ISO/IEC 13250:1999//NOTATION AFDR ARCBASE
              Topic Maps//EN"
   dtd-public-id="ISO/IEC 13250:1999//DTD AFDR Meta-DTD
                  Topic Maps//EN"
   dtd-system-id="/etc/architectures/TM.mtd"
   form-att="TopicMap"
   renamer-att="TMNames"
   suppressor-att="sTopMap"
   ignore-data-att="TMIgnD"
   doc-elem-form="topicmap"
   bridge-form="TMBrid"
   auto="nArcAuto"
?>