`Because the U.S. Department of Energy has supported the development of SC34's standards (under contract DE-AC05-84OR21400), it makes the following assertion: The U.S. Government retains a paid-up, nonexclusive, irrevocable, world-wide license to publish or reproduce the published form of this document, prepare derivative works, distribute copies to the public, and perform publicly and display publicly, or to allow others to do so, for U.S. Government purposes.'

1

34

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the system for worldwide participatory standardization of computer-related information interchange representations such as this International Standard. 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 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.

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 Standard is called a
Topic Navigation Map
(TNM). In general, the structural information conveyed by TNMs includes:

groupings of addressable information objects. Objects so grouped are said to form a
topic
(or, are said to share the semantics of the topic).

relationships between topics (
associations
).

In TNMs, a topic consists of locations where information relevant to a particular concept can be found. A TNM defines a multidimensional topic space - a space in which the only 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.

For example, two topics may be connected through an association and they can be connected by virtue of sharing a single 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
.

The word
facet
means at the same time one side of a many-sided, polished object, and one segment of a compound eye (e.g. an insect's). Its 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 navigation maps can provide topical structure information about the same information resources. The TNM architecture is designed to facilitate merging TNMs without requiring the merged TNMs to be copied or modified. Because of their extrinsic character, TNMs can be thought of as
overlays
on, or extensions to, sets of information objects. The base notation of TNMs is SGML; an interchangeable Topic Navigation Map always consists of at least one SGML document, and it may include and/or refer to other kinds information resources.

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

The TNM notation is defined as an
SGML Architecture
, and this 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 TNM notation is expressed as a meta-DTD.

Scope

Topic navigation maps enable multiple, concurrent views of information objects. These views may be object oriented, relational, hierarchical, a combination of these, and/or other views. An unlimited number of topic navigation maps may be overlaid on a given bounded object set.

Topic navigation maps may assign properties to information objects for the following applications, among others:

Structuring unstructured information objects, or merging unstructured information bases with structured ones. The overlay mechanism of topic navigation maps can be considered as an
external markup mechanism
, in the sense that an arbitrary structure is imposed on the information without altering its original form.

This standard does not require or disallow the use of any addressing scheme for locating information objects, or any notation used to express information.

Normative references

8879

10744

Definitions

Added scoping topics

Topics specified as being implicitly present in all the scopes within which topic characteristics are assigned, throughout a TNM document. Added scoping topics can be specified in two ways:

Within the TNM document whose scopes are affected, by means of the
added scoping topics
(
addscopt
) attribute of the document element, or

A hyperlink element conforming to the
association link
architectural form defined by this International Standard. See clause
Association link
.

Association role

The role played by an anchor of an association.

Association type

Class of an association. It can be specified by means of the type attribute.

Bounded object set

A set of one or more documents and other information objects, all of which are known to the processing application. (See ISO/IEC 10744:1997 for details.)

Facet

A facet is the subset of information objects that share an externally-applied property. The notion of facet also includes 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 to one or more information objects.

Facet type

Property applied by one or more facet links to one or more objects.

Facet value

One 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. By convention, the document used as the entry point for a browsing session within a hyperdocument is regarded as the hub document. See ISO/IEC 10744:1997 for details. (By definition, a topic navigation map is a HyTime [hyper]document.)

Occurrence role

A sense in which some set of occurrences is relevant to a topic. Occurrence roles can be described by topics.

Public topic

A topic or concept which is authoritatively defined. Both the topic and the defining authority are unambiguously referenced by means of a formal public identifier that appears in an entity declaration. The name of the entity can be specified via the
public
attribute of a topic link element. All topic link elements within the BOS that specify a given public topic contribute their characteristics to that topic. One of the full names of a public topic is always its formal public identifier; the scope within which it has that name has the PUBLICTOPIC public topic as one of its scoping topics.

An authority may or may not provide the authoritative definition of a public topic in the form of a topic link in a TNM document. The authority may not even be aware of the fact that it is being used as the source of a public topic. It is only necessary that the authority be unambiguously specified, and that the authority provide a unique name for the topic in some unambiguously specifiable namespace.

Scope

A scope describes the limit of the validity of a topic characteristic assignment. A scope can be used to describe the context in which a name or an occurrence is assigned to a given topic, and the context in which other topics are associated with a given topic. This Standard does not require that scopes be specified explicitly. If the scope of a topic characteristic assignment is not specified, the scope within which the topic characteristic applies to the topic is regarded as unconstrained (the scope is
`the unconstrained scope'
). If a scope is specified, it consists of a set of topics (the
`scoping topics'
). Because sets of topics define the scopes within which topics have their characteristics, complex topic maps can describe themselves in an immediate and powerful fashion.

Therefore, topic maps can be used to document themselves.

A scope is a set of topics (called the
`scoping topics'
) that collectively describe limits of the validity of the connection between a characteristic (a name, an occurrence, or a role played in a topic association) of a topic, and that same topic.

Sort key

String that is an alternative representation of a topic name, used for alphabetic or other ordering.

TNM

See Topic Navigation Map.

Topic

A concept that is expressed as a set of zero or more names and zero or more
`occurrences'
(relevant information objects).

Topic characteristic assignment

Name or occurrence characterizing a topic, or topic related to a given topic.

A string of characters specified as a name of a topic. A topic may have zero or more name elements. Each topic name element can contain three variants: the full name, the display name, and the name used as a sort key.

Topic Navigation Map

A
topic navigation map
(or
topic map
) is a set of topic links, association links, and facet links, expressed in conformance with the SGML-based interchange syntax defined by this International Standard.

Topic Occurrence

An information object specified as relevant to a given topic.

Topic Type

A class of topic.

Topic Navigation Map Architecture

The TNM syntax is a model for the interchange of information relevant to topics, associations, and facets; it uses SGML architectural forms based on HyTime hyperlinks. The Topic Navigation Map (TNM) syntax is defined according to the Architectural Form Definition Requirements of ISO/IEC 10744:1997 annex A.3. The notational conventions used herein are the same as those used in ISO/IEC 10744:1997 and described in clause
Topic Navigation Map Architecture
of that Standard. The TNM syntax makes use of the base, location address, and hyperlinking modules of the HyTime architecture as defined in the same Standard.

The formal definition of the TNM syntax, the TNM meta-DTD, is found in normative Annex A of this Standard.

When interchanged, topic navigation maps are HyTime bounded object sets. The hub document of a bounded object set used as a topic navigation map must contain a TNM architectural support declaration.

Only one of the hyperlink syntaxes defined by HyTime is used in the TNM syntax:
variable link
(
varlink
). However, the TNM syntax imposes no limitation on the addressing mechanisms that can be used to express the locations of the objects serving as the anchors of the links. In addition to the specific addressing facilities formally defined by HyTime, any addressing scheme can be used, including proprietary mechanisms defined in any notation.

Topic Navigation Map Document Element Architectural Form

The
topic map
(
topicmap
) element form is used as the document element of all documents that conform to the Topic Map Architecture.

The
added scoping topics
(
addscopt
) attribute is used to acknowledge and document the fact that the document contains only topics that are within the scope that it specifies. The effect of a added scoping topics attribute is equivalent to the addition of scoping topics to scopes.

After a topic map document is merged with other topic maps, 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 scope of the topic specified by the
added scoping topics
attribute.

This same facility is also provided for external TNM document entities. See clause
Added scoping topics
for additional information.

Topic link

The Topic Link Architectural Form

The
topic link
(
topic
) element form is used to declare a topic. A topic is a concept that is expressed as a set of zero or more names and zero or more relevant pieces of information (
occurrences
). The anchor roles of the link are used to specify the scope of the group of occurrences forming an anchor.

The
type
(
type
) attribute can be used to reference topics which describe the classes of topic of which the topic specified by the
topic link
is an instance. Topic map applications must consider the generic identifier of the element conforming to the
topic link
architectural form to be a name attached to the topics specified by the
type
attribute within the
TOPICTYPE
scope (see clause
TOPICTYPE
). If there is no topic which explicitly has as one of its
full name
s the generic identifier of the
topic
element within the scope of the
TOPICTYPE
public topic, topic map applications shall consider that such a topic exists implicitly.

The
public
(
public
) attribute optionally refers to a public topic (see clause
Public Topics
). The referenced public topic is said to be the same concept that the topic link element further describes.

The formal public identifier of the referenced public topic is regarded as a full name of the topic within the scope of the PUBLICTOPIC public topic.

A topic may have zero or more occurrences. If a topic has no occurrences, it must have at least one name. If a topic has one occurrence or more, it may have no name. See clause
Topic Occurrence
.

<!element
topic -- Topic link --
-- Clause: 5.2.1 --
- O
( (name+, occur*) | occur+ )
-- Must be at least one name or occurrence --
>
<!attlist
topic
HyTime
(varlink|HyBrid)
varlink -- Constraint: varlink must be used when occurrences
exist. If topic has no occurrences, it must be declared as
a HyTime bridge element. --
id -- Unique identifier --
ID
#REQUIRED
public -- Reference to an existing public topic. --
ENTITY
#IMPLIED -- Default: topic does not reference a
public topic. --
type -- The classes of topics of which this
topic is an instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: The generic identifier is considered the
name (within the TOPICTYPE scope) of the topic
that defines the topic type. If no such topic
exists, it is considered to exist by virtue of
this defaulting mechanism. --
>

Topic Name

A topic may have zero or more names.

Each topic name element has up to three forms: full name, display name, and sort key, corresponding to the three element types that it can contain:

The
full name
(
fullname
) is the usual name used to designate a topic. It can be a word or a phrase and should be explicit enough to help users differentiate the topic from others.

The
display name
(
dispname
) is the name expected to be displayed by an application to a user. If it is not specified, applications are intended to display the full name.

For example, the display name can be used to specify an abbreviated name.

The
name to be used as sort key
(
sortname
) may be used when sorting a list of topics. If it is not specified, applications are intended to use the full name as the sort key.

The display name and sort key are regarded as additional names of the topic, implicitly within the additional scopes of DISPNAME and SORTKEY public topics declared in this Standard, respectively. The full name has no additional implicit scope.

The
scope
(
scope
) attribute of the name element is used to limit the context in which a name is attached to a topic. The scope attribute references the
`scoping topics'
that collectively define that limited context.

Since this context can be described by the intersection of several criteria, there can be more than one
`scoping topic'
that defines that limited context.

Topic Occurrence

A
topic occurrence
is any information object that is specified as relevant to the topic. This standard imposes no constraints on the information objects that can be specified as topic occurrences.

Applications may impose such constraints.

Topic occurrences must be categorized by grouping them into sets which share common characteristics, called their
occurrence role
s. These groupings are specified by
topic occurrence
(
occur
) elements; these elements conform to the HyTime
anchspec
architectural form.

One example of an occurrence role is definition. The names used to designate occurrence roles are left open to the topic map designer.

Any given information object can play zero or more occurrence roles in a single topic.

The occurrence role name of an
occur
element (or, when its occurrence role name is not specified, the generic identifier of this
occur
element) declares the limited contexts within which a topic has the occurrences referenced by this occur element.

The optional
scope
(
scope
) attribute specifies the limited contexts within which a topic has the occurrences referenced by the element's content, by referencing one or more scoping topics. If the scope attribute is specified, the scope that it specifies is regarded as the specification of the occurrence role declared by the
occur
element. If the scope attribute is specified, the value of the
occrole
attribute, if any, is ignored.

Applications may regard each scoping topic specified via the scope attribute as describing a class of occurrence, and each of the occurrences whose locations are specified in the content of the element as an instance conforming to those classes.

If the scope attribute is not specified, the value of the
occurrence role name
(
occrole
) attribute specifies the limited contexts within which the information objects referenced in the content of the
occur
element are regarded as occurrences of the topic. If the
occrole
attribute is not specified, the generic identifier is regarded as the occurrence role name. The topic link that has the occurrence role name as a full name within the scope of the OCCROLE public topic describes the occurrence role declared by the
occur
element. If no such topic link exists, such a topic will be automatically created by the TNM application as an implicit topic.

<!element
occur -- topic occurrence --
-- Clause: 5.2.3 --
- O
(%loc;)*
>
<!attlist
occur
HyTime
NAME
#FIXED
anchspec
occrole -- Occurrence role name. --
NAME
#IMPLIED
-- Default: occurrence role name is GI of
element. --
scope -- List of references to scoping topics that
collectively define the limited contexts within
which the occurrences are applicable to the
topic. Each referenced topic may be regarded as
describing a class of occurrence. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: The topic which has a name (within the
scope of the OCCTYPE public topic) which is the
same as the value of the occrole attribute, or,
if no value is specified for the occrole
attribute, the generic identifier. Even if no
such topic exists in the topic map document(s),
it is considered to exist by virtue of this
defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
A
listtrav
(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 occrole"
>

Association link

Association link architectural form

The
association link
(
assoc
) element form is used to express arbitrary relationships between topics. The anchor roles of association links are user-defined.

The
scope
(
scope
) attribute optionally references topics that define the scopes within which the association is applicable to the topics that serve as anchors of the
association link
.

The
type
(
type
) attribute can be used to reference topics which describe the classes of association of which the association specified by the
association link
is an instance. In addition, topic map applications must consider the generic identifier of the element conforming to the
association link
architectural form to be a name attached to a topic within the
ASSOCTYPE
scope (see clause
ASSOCTYPE
). If there is no topic which explicitly has as one of its
full name
s the generic identifier of the
assoc
element) within the scope of the
ASSOCTYPE
public topic, topic map applications shall consider that such a topic exists implicitly.

The
public
(
public
) attribute optionally refers to a public association type. The
assoc
element is considered to be an instance of the class of association defined by an authority (see clause
Public Association Types
).

<!element assoc -- association link --
-- Clause: 5.3.1 --
- O (assocrl)+ >
<!attlist assoc
HyTime
NAME
#FIXED
varlink
scope -- List of references to scoping topics that
collectively define the limited contexts within
which the association is applicable. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: scope is unconstrained. --
type -- The classes of association
of which this association is an instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: generic identifier. The generic
identifier is considered the name (within the
ASSOCTYPE scope) of a topic that defines the
association type. If no such topic exists, it is
considered to exist by virtue of this defaulting
mechanism. --
public -- Reference to an existing public association
type. --
ENTITY
#IMPLIED -- Default: association link does not reference a
public association type. --
>

Association role

The
association role
(
assocrl
) element form specifies a user-defined role played by one or more specific topics in the association specified 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.

The
type
(
type
) attribute can be used to reference topics which describe the role classes of which the role specified by the
association role
is an instance. Topic map applications must consider the value of the
anchrole
attribute (or, if the
anchrole
attribute is not specified, the generic identifier of the
association role
element) to be a name attached to a topic within the
ASSOCRLTYPE
scope (see clause
ASSOCRLTYPE
). If there is no topic which explicitly has as one of its
full name
s the value of the
anchrole
attribute (or, by default, the generic identifier) of the
assocrl
element) within the scope of the
ASSOCRLTYPE
public topic, topic map applications shall consider that such a topic exists implicitly.

<!element
assocrl -- association role --
-- Clause: 5.3.2 --
- O
(%loc;)+
>
<!attlist
assocrl
HyTime
NAME
#FIXED
anchspec
anchrole -- association role name --
NAME
#IMPLIED -- Default: anchor role name is GI of element. --
type -- The classes of association role
of which this association role is an
instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED
-- Default: The topic which has a name (within the
ASSOCRLTYPE scope) which is the same as the value
of the anchrole attribute, or, if no value is
specified for the anchrole attribute, the generic
identifier. Even if no such topic exists in the
topic map document(s), it is considered to exist
by virtue of this defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
A
listtrav
(A|AW|L|LW|N|R|RW)
N -- Default: show the whole list --
multmem
(single|list|corlist)
list
emptyanc
(error|noterror)
error
>

Facet link

By means of the
facet link
facility, property/value pairs can be added to information objects. The properties are called
facet types
, and the values are called
facet values
.

The property/value pairs applied by facet links can be used, for example, as selection criteria to create partial views of the information within a topic map bounded object set. However, this International Standard does not constrain applications of facet links.

Facet types and facet values can be described by topics.

Facet link architectural form

The
facet link
(
facet
) element form is used to apply a property/value pair to an object. Facet link types (
type
) and values (
fvalue
) are user-defined.

The
type
(
type
) attribute can be used to reference a topic which describes the property specified by the
facet link
. Topic map applications must consider the generic identifier of the element conforming to the
facet link
architectural form to be a name attached to the topic specified by the
type
attribute within the
FACETTYPE
scope (see clause
FACETTYPE
). If the
type
attribute is not specified, and if there is no topic which explicitly has as one of its
full name
s the generic identifier of the
facet
element within the scope of the
FACETTYPE
public topic, topic map applications shall consider that such a topic exists implicitly.

<!element
facet -- Facet link --
-- Clause: 5.4.1 --
- O
(fvalue)+
>
<!attlist facet
HyTime
NAME
#FIXED
varlink
type -- The property (expressed as a topic) being
assigned to the anchor. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: The generic identifier is considered the
name (within the FACETTYPE scope) of the topic
that defines the facet type. If no such topic
exists, it is considered to exist by virtue of
this defaulting mechanism. --
>

Facet value

The
facet value
(
fvalue
) element form is used to specify the value of a property being applied to an information object by means of a facet link. The facet value is the string specified by the value of the
facet value name
(
facetval
) attribute.

The
type
(
type
) attribute can be used to reference a topic which describes the facet value. Topic map applications must consider the value of the
facetval
attribute (or, by default, the generic identifier of the element conforming to the
facet value
architectural form) to be a name attached to the topic specified by the
type
attribute within the
FACETVALDESC
scope (see clause
FACETVALDESC
). If the
type
attribute is not specified, and there is no topic which explicitly has as one of its
full name
s the value of the
facetval
attribute (or, by default, the generic identifier of the
fvalue
element) within the scope of the
facetvaldesc
public topic, topic map applications shall consider that such a topic exists implicitly.

Unlike other type attributes, this type attribute can reference only one topic.

<!element
fvalue -- facet value --
-- Clause: 5.4.2 --
- O
(%loc;)*
>
<!attlist
fvalue
HyTime
NAME
#FIXED
anchspec
facetval -- facet value --
NAME
#IMPLIED -- Default: facet value is GI of element. --
type -- Refers to a topic that describes the facet
value. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED
-- Default: The topic which has a name (within the
FACETVALDESC scope) which is the same as the value
of the facetval attribute, or, if no value is
specified for the facetval attribute, the generic
identifier. Even if no such topic exists in the
topic map document(s), it is considered to exist
by virtue of this defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
P -- Default: traversal is prohibited. --
listtrav
(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"
>

Common data attributes

Added scoping topics

The
added scoping topics
(
addscopt
) common data attribute allows scopes to be added throughout a TNM document entity. If specified, the attribute appears on an entity declaration of a TNM document entity. Its 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 implicit scopes on all names of topics, occurrences of topics, and topic association links throughout the referenced TNM document. However, regardless of any applicable
addscopt
data attribute, no implicit scopes are added to topic names for which no explicit scopes are already directly specified; each such name remains in its own namespace.

When topic maps have been merged, this facility can be used 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 the
addscopt
data attribute, that topic can be used as an additional scope within which everything specified by the topic map is implicitly said to exist. After the topic map is merged with other topic maps, 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.

At the time of adoption of this International Standard, XML did not support data attributes. This feature for facilitating the automatic merging of topics maps is not, therefore, available to XML applications, which will be required to merge topic maps manually.

TNM Resources

Public Topics

A
public topic
is a concept identified by means of a formal public identifier, and referenced by means of the
public
attribute on a topic element. The concept is defined by the authority specified in the formal public identifier; the authority controls the namespace in which the topic has the name which also appears in the formal public identifier.

Public topics can be unambiguously used in many contexts, wherever the authority is recognized.

There are two reasons why public topics are needed:

to allow authors of topic navigation maps to indicate that certain topics are defined authoritatively.

This ability can facilitate the merging of topic maps that share certain concepts.

When a topic specifies a value for its public attribute, and also has names and/or occurrences, the names and/or occurrences are considered to further elucidate the concept referenced by the public attribute; they do not alter or override any aspect of the concept as defined by the authority.

In the above format specification, the registration indicator, public text class and language fields are as specified for formal public identifiers in ISO/IEC 8879:1986. The
`topic authority'
is the owner of the information resource that defines the concept. The
`TOPIC'
keyword indicates that the formal public identifier specifies a public topic. The
`namespace of topic names'
identifies the resource in which the
`topic name'
is the unique name given to the concept.

When a value is specified for the
`public'
attribute of a topic element, it is the name of a public topic entity.

For example, a topic which is a product of an unregistered company might be referenced as follows:

Public Topics defined by this Standard

DISPNAME

The DISPNAME public topic defines the additional and implicit scope in which the names specified in
display name
elements are attached to their respective topics. Names attached to topics within this scope are expected by topic map authors to be displayed by applications to users.

References to the DISPNAME public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.1 : DISPNAME//EN

SORTKEY

The SORTKEY public topic defines the additional and implicit scope in which the names specified in
name to be used as sort key
elements are attached to their respective topics. Names attached to topics within this scope are expected by topic map authors to be used in sorting lists of topic.

References to the SORTKEY public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.2 : SORTKEY//EN

TOPICTYPE

The TOPICTYPE public topic is defined by this Standard in order to make explicit the scope in which the generic identifiers of topic link elements are assigned as names to the topics that define classes of topics.

References to the TOPICTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.3 : TOPICTYPE//EN

OCCTYPE

The OCCTYPE public topic is defined by this Standard in order to make explicit the scope in which occurrence role names are assigned to the topics that define their meanings.

References to the OCCTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.4 : OCCTYPE//EN

PUBLICTOPIC

The PUBLICTOPIC public topic is defined by this Standard in order to to be used as a scoping topic in the scope in which the formal public identifiers of public topics are assigned as names to those topics.

References to the OCCTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.5 : PUBLICTOPIC//EN

ASSOCTYPE

The ASSOCTYPE public topic is defined by this Standard in order to make explicit the scope in which the generic identifiers of association links are assigned as names to the topics that define their meanings.

References to the ASSOCTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.6 : ASSOCTYPE//EN

ASSOCRLTYPE

The ASSOCRLTYPE public topic is defined by this Standard in order to make explicit the scope in which association role names (specified via the
anchrole
attribute of
assocrl
elements, or, by default, via their generic identifiers) are assigned as names to the topics that define their meanings.

References to the ASSOCRLTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.7 : ASSOCRLTYPE//EN

FACETTYPE

The FACETTYPE public topic is defined by this Standard in order to make explicit the scope within which the generic identifiers of
facet links
are assigned as names to the topics that define their meanings.

References to the FACETTYPE public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.8 : FACETTYPE//EN

FACETVALDESC

The FACETVALDESC public topic is defined by this Standard in order to make explicit the scope within which facet values (specified via the
facetval
attribute of
fvalue
elements, or, by default, via their generic identifiers) are assigned as names to the topics that define their meanings.

References to the FACETVALDESC public topic can be made in entity declarations using the following formal public identifier:

ISO/IEC 13250:1999//NONSGML TOPIC Clause 6.1.2.9 : FACETVALDESC//EN

Public Association Types

A
public association type
is a class of association identified by means of a formal public identifier, and referenced by means of the
public
attribute on an association link element. The public association type is defined by the authority specified in the formal public identifier; the authority controls the namespace in which the association type has the name which also appears in the formal public identifier.

Public association types can be unambiguously used in many contexts, wherever the authority is recognized. Public association types are needed to allow authors of topic maps to indicate that certain associations are defined authoritatively by others.

The use of public association types can facilitate the merging of topic maps.

When an association link specifies a value for its public attribute, the anchrole names of enclosed occurrence roles that are the same as those that appear in the formal public identifier of the public association attribute correspond to the anchroles authoritatively defined by the public association type. Other anchroles, if present, do not alter or override any aspect of the public relationship type as defined by the authority. Similarly, if an association link also specifies a type attribute, the topic(s) referenced by the type attribute further elucidate, but do not alter or override, the character of the association type as defined by the authority.

Public Association Type References

Formal public identifiers used to reference public association types have the following format:

In the above format specification, the registration indicator, public text class and language fields are as specified for formal public identifiers in ISO/IEC 8879:1986. The
`association type authority'
is the owner of the information resource that defines the concept. The
`ASSOCTYPE'
keyword indicates that the formal public identifier specifies a public association type. The
`namespace of association type names'
identifies the resource in which the
`association name'
is the unique name given to the concept. There must be two or more colon-delimited
`association role names'
. These are the names that will be used as association role names in the topic map document, and they are not necessarily the association role names given to the association roles by the association type authority. However, there must be the same number of them as the authority defines in its canonical definition of the association type, and the order in which they appear in the formal public identifier will be regarded by topic map applications as corresponding to the order in which the authority specifies them in its canonical definition.

The topic map designer has complete freedom in naming both associations and association roles, even if the association is said to conform to a public association type.

When a value is specified for the
`public'
attribute of an association link element, it is the name of a public association type entity.

For example, an association type defined by an unregistered company might be referenced as follows:

As a practical matter, it is vital that the authority's definition of the public association type declare the order in which the anchroles will appear in any formal public identifier used to refer to that public association type, and that it clearly define the meaning of the association type and the significance of each of its anchroles. This can be done in many ways, and the representation need not be machine-processable. The following example, an excerpt from the imaginary
Lawyer's Topic Mapping Manual
referenced in the above formal public identifier, demonstrates one way to do it:

...
Precedent
A topic association link that is an instance of the "precedent" type
always specifies a relationship between two different court cases, one
of which is regarded as establishing a precedent on which the decision
reached in the other case was based. When referring to it as a public
association type according to ISO/IEC 13250:1999, the first anchrole
("THISCASE") named in the formal public identifier is always the case
that has the legal precedent, and the second anchrole ("PRECEDENT") is
always the case that serves as the legal precedent of the case serving
as the first anchrole. The third anchrole ("THEORY") refers to a
single legal doctrine that was established by the precedent-setting
case, and that also served as a basis for the decision reached in the
case specified by the first anchrole. The fourth anchrole
("OPINION-SOURCE"), if present, refers to the scholarly authority, if
any, which is the source of the opinion that the legal doctrine
referenced by the third anchrole did in fact serve as the basis for
the decision reached in the case referenced by the first anchrole. If
no such source is referenced, the source is assumed to be the ruling
opinion in that case.
Example FPI:
-//Legal Beagle Corp.//NONSGML ASSOCTYPE 1998 Lawyer's Topic Mapping
Manual : PRECEDENT : THISCASE : PRECEDENT : THEORY : OPINION-SOURCE
//EN
...

It is worth noting that the above exemplary definition of an association type suggests different names for the association roles than were used in the previous example, which shows this imaginary public association type in actual use. They are still exactly the same roles, and there is no possibility of confusion because they still occur in the same order. This flexibility allows public association types that are defined in one natural language to be used conveniently in topic maps maintained by authors whose primary language is another. Similarly, while it is true that the name of the association type (
`PRECEDENT'
) must appear verbatim in the formal public identifier, this, too, need have no effect on the topic map; the local entity name given to the public association type can be any name in any language.

Public association types defined by this Standard

Conformance

If a TNM 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 TNM document.

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

parse the interchange syntax,

identify the TNM constructs defined by this Standard, and

apply whatever processing the application designers considered appropriate, in light of the requirements to be fulfilled by the application, and the semantics of those constructs as defined by this Standard.

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.

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

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 Link Architectural Form

<!element
topic -- Topic link --
-- Clause: 5.2.1 --
- O
( (name+, occur*) | occur+ )
-- Must be at least one name or occurrence --
>
<!attlist
topic
HyTime
(varlink|HyBrid)
varlink -- Constraint: varlink must be used when occurrences
exist. If topic has no occurrences, it must be declared as
a HyTime bridge element. --
id -- Unique identifier --
ID
#REQUIRED
public -- Reference to an existing public topic. --
ENTITY
#IMPLIED -- Default: topic does not reference a
public topic. --
type -- The classes of topics of which this
topic is an instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: The generic identifier is considered the
name (within the TOPICTYPE scope) of the topic
that defines the topic type. If no such topic
exists, it is considered to exist by virtue of
this defaulting mechanism. --
>

Topic Occurrence

<!element
occur -- topic occurrence --
-- Clause: 5.2.3 --
- O
(%loc;)*
>
<!attlist
occur
HyTime
NAME
#FIXED
anchspec
occrole -- Occurrence role name. --
NAME
#IMPLIED
-- Default: occurrence role name is GI of
element. --
scope -- List of references to scoping topics that
collectively define the limited contexts within
which the occurrences are applicable to the
topic. Each referenced topic may be regarded as
describing a class of occurrence. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: The topic which has a name (within the
scope of the OCCTYPE public topic) which is the
same as the value of the occrole attribute, or,
if no value is specified for the occrole
attribute, the generic identifier. Even if no
such topic exists in the topic map document(s),
it is considered to exist by virtue of this
defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
A
listtrav
(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 occrole"
>

Association Link Architectural Form

<!element assoc -- association link --
-- Clause: 5.3.1 --
- O (assocrl)+ >
<!attlist assoc
HyTime
NAME
#FIXED
varlink
scope -- List of references to scoping topics that
collectively define the limited contexts within
which the association is applicable. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: scope is unconstrained. --
type -- The classes of association
of which this association is an instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: generic identifier. The generic
identifier is considered the name (within the
ASSOCTYPE scope) of a topic that defines the
association type. If no such topic exists, it is
considered to exist by virtue of this defaulting
mechanism. --
public -- Reference to an existing public association
type. --
ENTITY
#IMPLIED -- Default: association link does not reference a
public association type. --
>

Association Role

<!element
assocrl -- association role --
-- Clause: 5.3.2 --
- O
(%loc;)+
>
<!attlist
assocrl
HyTime
NAME
#FIXED
anchspec
anchrole -- association role name --
NAME
#IMPLIED -- Default: anchor role name is GI of element. --
type -- The classes of association role
of which this association role is an
instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED
-- Default: The topic which has a name (within the
ASSOCRLTYPE scope) which is the same as the value
of the anchrole attribute, or, if no value is
specified for the anchrole attribute, the generic
identifier. Even if no such topic exists in the
topic map document(s), it is considered to exist
by virtue of this defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
A
listtrav
(A|AW|L|LW|N|R|RW)
N -- Default: show the whole list --
multmem
(single|list|corlist)
list
emptyanc
(error|noterror)
error
>

Facet Link Architectural Form

<!element
facet -- Facet link --
-- Clause: 5.4.1 --
- O
(fvalue)+
>
<!attlist facet
HyTime
NAME
#FIXED
varlink
type -- The property (expressed as a topic) being
assigned to the anchor. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: The generic identifier is considered the
name (within the FACETTYPE scope) of the topic
that defines the facet type. If no such topic
exists, it is considered to exist by virtue of
this defaulting mechanism. --
>

Facet Value

<!element
fvalue -- facet value --
-- Clause: 5.4.2 --
- O
(%loc;)*
>
<!attlist
fvalue
HyTime
NAME
#FIXED
anchspec
facetval -- facet value --
NAME
#IMPLIED -- Default: facet value is GI of element. --
type -- Refers to a topic that describes the facet
value. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED
-- Default: The topic which has a name (within the
FACETVALDESC scope) which is the same as the value
of the facetval attribute, or, if no value is
specified for the facetval attribute, the generic
identifier. Even if no such topic exists in the
topic map document(s), it is considered to exist
by virtue of this defaulting mechanism. --
linktrav
(A|EI|ER|ED|EN|EP|ERD|I|ID|D|N|P|R|RD)
P -- Default: traversal is prohibited. --
listtrav
(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"
>