[sc34wg3] What do we mean by reification?
Patrick Durusau
sc34wg3@isotopicmaps.org
Sat, 01 Mar 2003 11:32:33 -0500
--------------020005030509080302070005
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lars,
Lars Marius Garshol wrote:
>* Patrick Durusau
>|
>| So I have a subject, the topic map construct and I have a
>| topic. What I am missing is what is being gained by saying that is
>| reification versuse the more usual case of subjects and topics being
>| a relationship (in SAM terms)? Or perhaps better, what is lost by
>| saying both are reification?
>
>I think we lose some clarity. If you tell people that a topic
>represents a subject they will immediately understand what you mean.
>If you tell them the topic reifies the subject you will have to
>explain what you mean by it, but you haven't gained anything by making
>things harder. The simple word "representation" expresses equally
>well what is going on.
>
OK, so we are quibbling about the word, reification vs. representation,
for the topic / subject relationship? Speaking solely for myself, I have
no objection to "representation" but I would use in all cases. If it is
representation in one, then it seems to me it is representation in the
other. (or the converse as well, reification in one is reification in
the other, but as you point out, correctly in my opinion, it requires
more explaination and hence "representation" should be preferred.)
>
>Further, reification is not used in the AI community the way we have
>used it in ISO 13250:2000/XTM 1.0.
>
Actually I checked (assuming my copy of Acrobat is working properly) and
reification does not appear in ISO 13250:2000.
XTM 1.0, in 2.2.1.2 Reification, does say in part:
***
Since anything whatsoever can be a subject, reification can also be
applied to objects within the topic map itself, such as associations,
names, and occurrences. (For examples of how this can be done
syntactically, see under <association>
<cid:part1.03010803.07010605@emory.edu> and <occurrence>
<cid:part2.05080109.09000103@emory.edu> in Section 3, XTM Syntax
Documentation.) This makes it possible both to apply the power of the
topic map paradigm to topic maps themselves, and to enable multiple
levels of knowledge representation within one and the same map,
including making assertions about assertions.
***
So at least XTM 1.0 was consistent in using reification for both
subjects (outside the topic map) and subjects (constructs within the
topic map).
> For example, Russell & Norvig say
>
> "Reification is the process of turning a predicate or function into
> an object in the language."
>
>This corresponds to what the SAM calls reification, which is basically
>a special case of the topic-represents-subject scenario, which I think
>we do need a special term for, and here we have one that was designed
>to say just this.
>
>
>
So, if we agree that the term "representation" is better for describing
the topic / subject relationship in terms of clarity (I assume to people
who are not part of the topic map community) what is being gained for
implementers by using a special term, reification, consistently with the
AI folks? Not that I particularly mind being consistent with the AI
crowd but are we gaining anything by that consistency?
I think what I am missing is what makes this a "special case" of
topic-represents-subject senario. At least in terms of why I should say
reification versus representation. Noting that if a subject identifier
property of a topic equals the source locator item of an information
item, then that topic reifies (in the current SAM sense) the information
item. Admittedly mechanics are different from a topic that "represents"
(in the SAM sense) a subject not in the topic map, but does the
difference in mechanics merit a separate term for the relationship
between topic / subject?
Patrick
Patrick
--
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu
Co-Editor, ISO Reference Model for Topic Maps
--------------020005030509080302070005
Content-Type: multipart/related;
boundary="------------020108020409090706050203"
--------------020108020409090706050203
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title></title>
</head>
<body>
Lars,<br>
<br>
Lars Marius Garshol wrote:<br>
<blockquote type="cite"
cite="midm3k7fj5g9b.fsf@pc36.avidiaasen.online.no">
<pre wrap="">* Patrick Durusau
|
| So I have a subject, the topic map construct and I have a
| topic. What I am missing is what is being gained by saying that is
| reification versuse the more usual case of subjects and topics being
| a relationship (in SAM terms)? Or perhaps better, what is lost by
| saying both are reification?
I think we lose some clarity. If you tell people that a topic
represents a subject they will immediately understand what you mean.
If you tell them the topic reifies the subject you will have to
explain what you mean by it, but you haven't gained anything by making
things harder. The simple word "representation" expresses equally
well what is going on.</pre>
</blockquote>
OK, so we are quibbling about the word, reification vs. representation, for
the topic / subject relationship? Speaking solely for myself, I have no objection
to "representation" but I would use in all cases. If it is representation
in one, then it seems to me it is representation in the other. (or the converse
as well, reification in one is reification in the other, but as you point
out, correctly in my opinion, it requires more explaination and hence "representation"
should be preferred.)<br>
<br>
<blockquote type="cite"
cite="midm3k7fj5g9b.fsf@pc36.avidiaasen.online.no">
<pre wrap="">
Further, reification is not used in the AI community the way we have
used it in ISO 13250:2000/XTM 1.0.</pre>
</blockquote>
Actually I checked (assuming my copy of Acrobat is working properly) and
reification does not appear in ISO 13250:2000. <br>
<br>
XTM 1.0, in 2.2.1.2 Reification, does say in part:<br>
<br>
***<br>
<p>Since anything whatsoever can be a subject, reification can also be applied
to objects within the topic map itself, such as associations, names, and
occurrences. (For examples of how this can be done syntactically, see under
<a href="cid:part1.03010803.07010605@emory.edu"><tt><association></tt></a>
and <a href="cid:part2.05080109.09000103@emory.edu"><tt><occurrence></tt></a>
in <cite>Section 3, XTM Syntax Documentation</cite>.) This makes it possible
both to apply the power of the topic map paradigm to topic maps themselves,
and to enable multiple levels of knowledge representation within one and
the same map, including making assertions about assertions.</p>
***<br>
<br>
So at least XTM 1.0 was consistent in using reification for both subjects
(outside the topic map) and subjects (constructs within the topic map). <br>
<blockquote type="cite"
cite="midm3k7fj5g9b.fsf@pc36.avidiaasen.online.no">
<pre wrap=""> For example, Russell & Norvig say
"Reification is the process of turning a predicate or function into
an object in the language."
This corresponds to what the SAM calls reification, which is basically
a special case of the topic-represents-subject scenario, which I think
we do need a special term for, and here we have one that was designed
to say just this.
</pre>
</blockquote>
So, if we agree that the term "representation" is better for describing the
topic / subject relationship in terms of clarity (I assume to people who
are not part of the topic map community) what is being gained for implementers
by using a special term, reification, consistently with the AI folks? Not
that I particularly mind being consistent with the AI crowd but are we gaining
anything by that consistency? <br>
<br>
I think what I am missing is what makes this a "special case" of topic-represents-subject
senario. At least in terms of why I should say reification versus representation.
Noting that if a subject identifier property of a topic equals the source
locator item of an information item, then that topic reifies (in the current
SAM sense) the information item. Admittedly mechanics are different from
a topic that "represents" (in the SAM sense) a subject not in the topic map,
but does the difference in mechanics merit a separate term for the relationship
between topic / subject?<br>
<br>
Patrick<br>
<br>
Patrick<br>
<pre class="moz-signature" cols="$mailwrapcol">--
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
<a class="moz-txt-link-abbreviated" href="mailto:pdurusau@emory.edu">pdurusau@emory.edu</a>
Co-Editor, ISO Reference Model for Topic Maps
</pre>
<br>
</body>
</html>
--------------020108020409090706050203
Content-Type: text/html; charset=ISO-8859-1;
name="XML Topic Maps (XTM) 1.0.html"
Content-Transfer-Encoding: 8bit
Content-ID: <part1.03010803.07010605@emory.edu>
Content-Disposition: inline;
filename="XML Topic Maps (XTM) 1.0.html"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="CVS-Id" content="$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $">
<meta name="Editor" content="Steve Pepper">
<meta name="Editor" content="Graham Moore"><title>XML Topic Maps (XTM) 1.0</title>
<link rel="stylesheet" type="text/css" href="XML%20Topic%20Maps%20%28XTM%29%201.0_files/xtm.css">
<!-- print stylesheet:
<link rel="stylesheet" type="text/css" href="xtmprint.css" /> --></head>
<body><!-- begin document ........................................ -->
<div class="headergfx"><!-- begin headergfx -->
<p><a id="top" name="top" href="http://www.topicmaps.org/index.html"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/xtm-logo-150.gif" border="0" width="150" height="96" alt="TopicMaps.Org"></a></p>
<!-- end headergfx --></div>
<!-- begin div frontmatter ....................................... -->
<div class="frontmatter">
<h1 class="doctitle">XML Topic Maps (XTM) 1.0</h1>
<h2 class="docsubtitle">TopicMaps.Org
<!--<span class="draft">Final Draft</span-->
<!--<span class="review">AG Review</span-->
Specification</h2>
<dl><dt><span class="hdt">Latest version:</span></dt><dd><a href="http://www.topicmaps.org/xtm/1.0/">http://www.topicmaps.org/xtm/1.0/</a></dd><dt><span class="hdt">This version:</span></dt><dd><a href="http://www.topicmaps.org/xtm/1.0/xtm1-20010806.html">http://www.topicmaps.org/xtm/1.0/xtm1-20010806.html</a></dd><dt><span class="hdt">Authors:</span></dt><dd>Members of the TopicMaps.Org Authoring Group;<br>
see <a href="#thanks">Acknowledgements</a></dd><dt><span class="hdt">Editors:</span></dt><dd>Steve Pepper <a href="mailto:pepper@ontopia.net" class="mailto"><tt><pepper@ontopia.net></tt></a></dd><dd>Graham Moore <a href="mailto:gdm@empolis.co.uk" class="mailto"><tt><gdm@empolis.co.uk></tt></a></dd><dt><span class="hdt">Revision:</span></dt><dd>$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $</dd></dl>
<p class="legal">
<a href="http://www.topicmaps.org/copyright.html">Copyright</a>
©2001, TopicMaps.Org. All Rights Reserved.
See <a href="http://www.topicmaps.org/copyright.html#license">License</a> and
<a href="http://www.topicmaps.org/copyright.html#disclaimer">Disclaimer of Warranty</a>.<br>
<!-- WAI : Note the <a href="xtm1-wai.html">Accessibility Features</a> of this document. -->
</p>
<!-- begin div: abstract section ................................. -->
<h3><a id="abstract" name="abstract">Abstract</a></h3>
<div class="sect3">
<p>This specification provides a model and grammar for representing the
structure of information resources used to define topics, and the
associations (relationships) between topics. Names, resources, and
relationships are said to be <em>characteristics</em> of abstract
subjects, which are called <em>topics</em>. Topics have their
characteristics within <em>scopes</em>: i.e. the limited contexts within
which the names and resources are regarded as their name, resource, and
relationship characteristics. One or more interrelated documents
employing this grammar is called a “topic map.”</p>
<p><b>TopicMaps.Org</b> is an independent consortium of parties
developing the applicability of the topic map paradigm
<a class="xref" href="#ref_iso13250">[ISO13250]</a> to the
World Wide Web by leveraging the XML family of specifications.</p>
<p>This specification describes version 1.0 of <cite>XML Topic Maps
(XTM) 1.0</cite> <a class="xref" href="#ref_xtm">[XTM]</a>, an abstract
model and XML grammar for interchanging Web-based topic maps, written by
the members of the TopicMaps.Org Authoring Group. More information on
XTM and TopicMaps.Org is available at
<tt><a href="http://www.topicmaps.org/about.html">http://www.topicmaps.org/about.html</a></tt>.</p>
<p>All versions of the XTM Specification are permanently
licensed to the public, as provided by the Charter of
TopicMaps.Org.</p>
<!-- end div.sect3 abstract --></div>
<!-- begin div: status section ................................... -->
<h3><a id="status" name="status">Status of This Document</a></h3>
<div class="sect3">
<p><em>(This section describes the status of this document at
the time of its publication. Other documents may supersede this
document. For the latest version, refer always to the URL given
above.)</em></p>
<p>This document has been reviewed by the TopicMaps.Org
Authoring Group and other interested parties and has been
endorsed by the Authoring Group as a TopicMaps.Org
Specification. It is a stable document and may be used as
reference material or cited as a normative reference from
another document.</p>
<p>The English version of this specification is the only
normative version. However, translation of this document into
other languages is actively encouraged by TopicMaps.Org.</p>
<p>An errata list for this Specification will be maintained at
<a href="http://www.topicmaps.org/xtm/1.0/errata.html">http://www.topicmaps.org/xtm/1.0/errata.html</a>.</p>
<p>Please report errors in this document to
<a href="mailto:xtm-editor@topicmaps.org">xtm-editor@topicmaps.org</a>.</p>
<!-- end div.sect3 status --></div>
<!-- end div frontmatter --></div>
<hr><!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<div class="sect1"><!-- begin div.sect1 .................................... -->
<!-- ....................................................................... -->
<!-- begin div.sect1 : toc ................................................. -->
<h2><a href="#top"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a> <a id="toc" name="toc">Contents</a></h2>
<div class="sect2">
<ul class="toc"><!-- sect1 -->
<li>1. <a class="normal" href="#intro"><b>Introduction</b></a><br>
<ul class="toc2"><!-- begin intro -->
<li>1.1 <a class="normal" href="#origins">Origins</a></li>
<li>1.2 <a class="normal" href="#goals">Goals</a></li>
<li>1.3 <a class="normal" href="#terms">Terminology</a></li>
</ul>
</li>
<li>2. <a class="normal" href="#concepts"><b>Concepts</b></a>
<ul class="toc2">
<li>2.1 <a class="normal" href="#desc-intro">A Gentle Introduction to Topic Maps</a></li>
<li>2.2 <a class="normal" href="#desc-overview">Overview of Topic Map Concepts</a>
<ul class="toc2">
<li>2.2.1 <a class="normal" href="#desc-topic">Topic</a>
<ul class="toc2">
<li>2.2.1.1 <a class="normal" href="#desc-subject">Subject</a></li>
<li>2.2.1.2 <a class="normal" href="#desc-reification">Reification</a></li>
<li>2.2.1.3 <a class="normal" href="#desc-subject-identity">Subject Identity</a></li>
<li>2.2.1.4 <a class="normal" href="#desc-subject-indicator">Subject Indicator</a></li>
<li>2.2.1.5 <a class="normal" href="#desc-topic-characteristic">Topic Characteristic</a></li>
<li>2.2.1.6 <a class="normal" href="#desc-scope">Scope</a></li>
</ul>
</li>
<li>2.2.2 <a class="normal" href="#desc-name">Name</a>
<ul class="toc2">
<li>2.2.2.1 <a class="normal" href="#desc-base-name">Base Name</a></li>
<li>2.2.2.2 <a class="normal" href="#desc-variant-name">Variant Name</a></li>
<li>2.2.2.3 <a class="normal" href="#desc-parameters">Parameters</a></li>
</ul>
</li>
<li>2.2.3 <a class="normal" href="#desc-occurrence">Occurrence</a></li>
<li>2.2.4 <a class="normal" href="#desc-association">Association</a>
<ul class="toc2">
<li>2.2.4.1 <a class="normal" href="#desc-member">Member</a></li>
<li>2.2.4.2 <a class="normal" href="#desc-role">Role</a></li>
<li>2.2.4.3 <a class="normal" href="#desc-class-instance">Class-Instance</a></li>
<li>2.2.4.4 <a class="normal" href="#desc-superclass-subclass">Superclass-Subclass</a></li>
</ul>
</li>
<li>2.2.5 <a class="normal" href="#desc-topic-map">Topic Map</a>
<ul class="toc2">
<li>2.2.5.1 <a class="normal" href="#desc-topic-map-node">Topic Map Node</a></li>
<li>2.2.5.2 <a class="normal" href="#desc-consistent-topic-map">Consistent Topic Map</a></li>
<li>2.2.5.3 <a class="normal" href="#desc-topic-map-document">Topic Map Document</a></li>
<li>2.2.5.4 <a class="normal" href="#desc-xtm-document">XTM document</a></li>
</ul>
</li>
</ul>
</li>
<li>2.3 <a class="normal" href="#desc-psis">Published Subjects</a>
<ul class="toc2">
<li>2.3.1 <a class="normal" href="#desc-psis-intro">Introduction</a></li>
<li>2.3.2 <a class="normal" href="#psi-mandatory">XTM Mandatory Published Subject Indicators</a></li>
</ul>
</li>
<li>2.4 <a class="normal" href="#desc-merging">Merging</a></li>
</ul><!-- end concepts -->
</li>
<li>3. <a class="normal" href="#syntax"><b>XTM Syntax Documentation</b></a><br>
<ul class="toc2">
<li>3.1 <a class="normal" href="#syn-intro">Introduction to XTM Syntax</a></li>
<li>3.2 <a class="normal" href="#syn-refs">References to Topics and Subject Indicators</a>
<ul>
<li>3.2.1 <a class="normal" href="#elt-topicRef"><topicRef> Element</a></li>
<li>3.2.2 <a class="normal" href="#elt-subjectIndicatorRef"><subjectIndicatorRef> Element</a></li>
</ul>
</li>
<li>3.3 <a class="normal" href="#syn-scope">Scope and Context</a>
<ul>
<li>3.3.1 <a class="normal" href="#elt-scope"><scope> Element</a></li>
</ul>
</li>
<li>3.4 <a class="normal" href="#syn-classes">Classes and Instances</a>
<ul>
<li>3.4.1 <a class="normal" href="#elt-instanceOf"><instanceOf> Element</a></li>
</ul>
</li>
<li>3.5 <a class="normal" href="#syn-topicmap">The Topic Map</a>
<ul>
<li>3.5.1 <a class="normal" href="#elt-topicMap"><topicMap> Element</a></li>
</ul>
</li>
<li>3.6 <a class="normal" href="#syn-topsubj">Topics and Subjects</a>
<ul>
<li>3.6.1 <a class="normal" href="#elt-topic"><topic> Element</a></li>
<li>3.6.2 <a class="normal" href="#elt-subjectIdentity"><subjectIdentity> Element</a></li>
</ul>
</li>
<li>3.7 <a class="normal" href="#syn-topnames">Topic Names</a>
<ul>
<li>3.7.1 <a class="normal" href="#elt-baseName"><baseName> Element</a></li>
<li>3.7.2 <a class="normal" href="#elt-baseNameString"><baseNameString> Element</a></li>
<li>3.7.3 <a class="normal" href="#elt-variant"><variant> Element</a></li>
<li>3.7.4 <a class="normal" href="#elt-variantName"><variantName> Element</a></li>
<li>3.7.5 <a class="normal" href="#elt-parameters"><parameters> Element</a></li>
</ul>
</li>
<li>3.8 <a class="normal" href="#syn-assoc">Associations and Members</a>
<ul>
<li>3.8.1 <a class="normal" href="#elt-association"><association> Element</a></li>
<li>3.8.2 <a class="normal" href="#elt-member"><member> Element</a></li>
<li>3.8.3 <a class="normal" href="#elt-roleSpec"><roleSpec> Element</a></li>
</ul>
</li>
<li>3.9 <a class="normal" href="#syn-occur">Occurrences and Resources</a>
<ul>
<li>3.9.1 <a class="normal" href="#elt-occurrence"><occurrence> Element</a></li>
<li>3.9.2 <a class="normal" href="#elt-resourceRef"><resourceRef> Element</a></li>
<li>3.9.3 <a class="normal" href="#elt-resourceData"><resourceData> Element</a></li>
</ul>
</li>
<li>3.10 <a class="normal" href="#syn-merge">Merging</a>
<ul>
<li>3.10.1 <a class="normal" href="#elt-mergeMap"><mergeMap> Element</a></li>
</ul>
</li>
</ul><!-- end markup section -->
</li>
<li>4. <a class="normal" href="#conformance"><b>Conformance</b></a>
<ul class="toc2">
<li>4.1 <a class="normal" href="#conf-vocab">XTM Conformance Vocabulary</a></li>
<li>4.2 <a class="normal" href="#conf-dep">XTM Processing Dependencies</a></li>
<li>4.3 <a class="normal" href="#xtmns">The XTM Namespace</a></li>
<li>4.4 <a class="normal" href="#conf-doc">XTM Document Conformance</a></li>
<li>4.5 <a class="normal" href="#conf-appl">XTM Application Conformance</a></li>
</ul>
</li><!-- end conformance section -->
<li><a class="normal" href="#annexes"><b>Annexes</b></a><br>
<ul class="toc2"><!-- begin annexes -->
<li>Annex A: <a class="normal" href="#references">References</a> (Informative)</li>
<li>Annex B: <a class="normal" href="#conceptualmodel">XTM Conceptual Model</a> (Informative)</li>
<li>Annex C: <a class="normal" href="#mapping">XTM Conceptual Model to Interchange Syntax Mapping</a> (Informative)</li>
<li>Annex D: <a class="normal" href="#dtd">XTM 1.0 Document Type Declaration</a> (Normative)</li>
<li>Annex E: <a class="normal" href="#coremap">XTM 1.0 Core Published Subject Indicators</a> (Normative)</li>
<li>Annex F: <a class="normal" href="#processing">XTM Processing Requirements</a> (Informative)</li>
<li>Annex G: <a class="normal" href="#transform">ISO 13250 to XTM 1.0 Document Transformation</a> (Informative)</li>
<li>Annex H: <a class="normal" href="#thanks">Acknowledgements</a> (Informative)</li>
</ul><!-- end annexes -->
</li>
</ul>
<p></p>
<!-- end div.sect2 toc --></div>
<hr width="100%">
<!-- ............................................................. -->
<!-- begin div.sect1 : introduction section ...................... -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
1. <a id="intro" name="intro">Introduction</a></h1>
<div class="sect1">
<!-- ............................................................. -->
<!-- begin div.sect2 : origin section ............................ -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.1 <a id="origins" name="origins">Origins</a></h2>
<div class="sect2">
<p>
<span class="dfn">XML Topic Maps <acronym>(XTM)</acronym></span>
is a product of the TopicMaps.Org Authoring Group (AG), formed in 2000
by an independent consortium named
<a href="http://www.topicmaps.org/">TopicMaps.Org</a>, originally
chaired by Michel Biezunski and Steven R. Newcomb, and chaired at the
date of delivery of this specification by Steve Pepper and Graham Moore.
The Participating Members of the XTM Authoring Group are listed in
<a href="#thanks">Annex H: Acknowledgements</a>.</p>
<p>The origins of the topic maps paradigm itself date back to 1993, when
it was first expressed as a working document in the context of the
Davenport Group. The paradigm was more fully developed thereafter in the
context of the GCA Research Institute (now known as IDEAlliance), in an
activity called <cite>Conventions for the Application of HyTime</cite>,
during and after which the paradigm was independently developed,
implemented, and promulgated. Early in 2000, after several years of
continuous effort by an international group of individuals, the topic
map paradigm was fully formalized for the first time as an ISO
International Standard, ISO/IEC 13250:2000. Almost immediately
thereafter, TopicMaps.Org was founded in order to develop the
applicability of the paradigm to the World Wide Web, and to realize its
enormous potential to improve the findability and manageability of
information.</p>
<!-- end div.sect2 origin section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : goals section ............................. -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.2 <a id="goals" name="goals">Goals</a></h2>
<div class="sect2">
<p>The design goals for XTM are:</p>
<ol>
<li>XTM shall be straightforwardly usable over the Internet.</li>
<li>XTM shall support a wide variety of applications.</li>
<li>XTM shall be compatible with XML, XLink, and ISO 13250.</li>
<li>It shall be easy to write programs that process XTM documents.</li>
<li>The number of optional features in XTM is to be kept to the absolute
minimum, ideally zero.</li>
<li>XTM documents should be human-legible and reasonably clear.</li>
<li>The XTM design should be prepared quickly.</li>
<li>The design of XTM shall be formal and concise.</li>
<li>XTM documents shall be easy to create.</li>
<li>Terseness in XTM markup is of minimal importance.</li>
</ol>
<p>This specification, together with
<cite>XML 1.0</cite> for markup syntax <a class="xref" href="#ref_xml">[XML]</a>,
<cite>XLink 1.0</cite> for linking syntax <a class="xref" href="#ref_xlink">[XLink]</a>,
<cite>XML Base</cite> for base URI resolution <a class="xref" href="#ref_xbase">[XML Base]</a>,
and the IETF URI specification <a class="xref" href="#ref_rfc2396">[RFC 2396]</a>
(as updated by <a href="#ref_rfc2732">[RFC 2732]</a>),
provides all the information necessary to understand XTM 1.0 and create
conforming topic map documents.</p>
<p>This version of the XTM specification and its associated materials
may be distributed freely, as long as all text and legal notices remain
intact.</p>
<!-- end div.sect2 goals section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : terminology section ....................... -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.3 <a id="terms" name="terms">Terminology</a></h2>
<div class="sect2">
<p>The terminology used to describe XTM documents is defined in the
body of this specification and its annexes. The terms defined in this
section are used in building those definitions.</p>
<dl><dt><a class="dfn" id="def-addressable-information-resource" name="def-addressable-information-resource">addressable information resource</a></dt><dd>
<p>An information resource whose identity is computable (that is, a
computer system can retrieve the resource and make deterministic
comparisons between it, and some other resource, to establish their
identity or difference). An example of an addressable information
resource is the online version of this document. In this
specification, the term <em>resource</em> is used synonymously with
<em>addressable information resource</em> unless otherwise stated.</p>
</dd><dt><a class="dfn" id="def-addressable-subject" name="def-addressable-subject">addressable subject</a></dt><dd>
<p>An <a href="#def-addressable-information-resource">addressable information resource</a>, considered as a
<a href="#def-subject">subject</a> in and of itself, and not considered
in terms of what an author meant by it. The identity of an addressable
subject is by definition directly computable.
(Cf. <a href="#def-non-addressable-subject">non-addressable subject</a>.)</p>
</dd><dt><a class="dfn" id="def-association" name="def-association">association</a></dt><dd>
<ol>
<li>A relationship between topics asserted by an
<tt><association></tt> element.</li>
<li>An <tt><association></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-association-type" name="def-association-type">association type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-association">association</a>.</li>
<li>The class of association specified by an <tt><association></tt>
element's <tt><instanceOf></tt> child element. An association may belong
to only one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class of
association.
</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-base-name" name="def-base-name">base name</a></dt><dd>
<ol>
<li>A child element (<tt><baseName></tt>) of a
<tt><topic></tt> element.</li>
<li>A name characteristic of a topic that is provided by the content of a
<tt><baseNameString></tt> element. Base names must be unique within a
given scope (cf.
<a href="#def-topic-naming-constraint">topic naming constraint</a>).</li>
</ol>
<p>See also <a href="#def-variant-name">variant name</a>.</p>
</dd><dt><a class="dfn" id="def-characteristic" name="def-characteristic">characteristic</a></dt><dd>
<p>See <a href="#def-topic-characteristic">topic characteristic</a>.</p>
</dd><dt><a class="dfn" id="def-consistent-topic-map" name="def-consistent-topic-map">consistent topic map</a></dt><dd>
<p>A <a href="#def-topic-map">topic map</a> in which there is one topic
per subject and no further opportunities for merging or duplicate suppression,
as defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.
</p>
</dd><dt><a class="dfn" id="def-member" name="def-member">member</a></dt><dd>
<ol>
<li>A child element (<tt><member></tt>) of an
<tt><association></tt> element.</li>
<li>A set of topics that play a particular <a href="#def-role">role</a> in an
<a href="#def-association">association</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-merging" name="def-merging">merging</a></dt><dd>
<ol>
<li>The process of merging two topic maps, either as a result of
explicit <tt><mergeMap></tt> directives, or for any
application-specific reasons.</li>
<li>The process of merging two topics.</li>
</ol>
<p>The rules governing all forms of merging are given in
<a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-non-addressable-subject" name="def-non-addressable-subject">non-addressable subject</a></dt><dd>
<p>A <a href="#def-subject">subject</a> that exists outside the bounds of
the computer system and whose identity is therefore not computable.
Examples of non-addressable subjects include William Shakespeare, the play
<cite>Hamlet</cite> and its 1604-05 edition, the character Hamlet, the
concept of vengeance, the organization Shakespeare & Company, etc.
The identity of a non-addressable subject may only be established
indirectly, for example through the use of a
<a href="#def-subject-indicator">subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-occurrence" name="def-occurrence">occurrence</a></dt><dd>
<ol>
<li>A child element (<tt><occurrence></tt>) of a
<tt><topic></tt> element.</li>
<li>A <a href="#def-topic-occurrence">topic occurrence</a> (q.v.).</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-occurrence-type" name="def-occurrence-type">occurrence type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-topic-occurrence">topic occurrence</a>.</li>
<li>The class of topic occurrence specified by an <tt><occurrence></tt>
element's <tt><instanceOf></tt> child element. An occurrence may
belong to only one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class
of topic occurrence.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-parameters" name="def-parameters">parameters</a></dt><dd>
<ol>
<li>A child element (<tt><parameters></tt>) of a
<tt><variant></tt> element.</li>
<li>Information, in the form of a set of topics, that expresses the
appropriate processing context for a <a href="#def-variant-name">variant name</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-processed-topic-map" name="def-processed-topic-map">processed topic map</a></dt><dd>
<p>The collection of <a href="#def-topic">topics</a>,
<a href="#def-association">associations</a>, and
<a href="#def-scope">scopes</a> which have been processed by
the XTM processing application as defined in
<a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-processing-requirements" name="def-processing-requirements">processing requirements</a></dt><dd>
<p>The requirements on processing performed by a conforming XTM processor as
defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-psi" name="def-psi">PSI</a></dt><dd>
<p>See <a href="#def-published-subject-indicator">published subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-published-subject-indicator" name="def-published-subject-indicator">published subject indicator</a></dt><dd>
<p>A <a href="#def-subject-indicator">subject indicator</a> that is
published and maintained at an advertised address for the purpose of
facilitating topic map interchange and mergeability.</p>
</dd><dt><a class="dfn" id="def-reification" name="def-reification">reification</a></dt><dd>
<p>The act of creating a topic. When anything is reified it becomes the
subject of the topic thus created; to reify something is therefore to create
a topic of which that thing is the subject. Reification of a subject allows
topic characteristics to be assigned to the topic that reifies it: In other
words, it makes it possible to <b>discourse</b> about that subject within
the terms of the topic map paradigm.</p>
</dd><dt><a class="dfn" id="def-resource" name="def-resource">resource</a></dt><dd>
<p>See <a href="#def-addressable-information-resource">addressable information resource</a>.</p>
</dd><dt><a class="dfn" id="def-role" name="def-role">role</a></dt><dd>
<p>The role that a topic plays as a member of an association;
the nature of its involvement in that association.</p>
</dd><dt><a class="dfn" id="def-scope" name="def-scope">scope</a></dt><dd>
<ol>
<li>The extent of the validity of a
<a href="#def-topic-characteristic-assignment">topic characteristic assignment.</a> 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.</li>
<li>The set of topics specified via a <tt><scope></tt> element.</li>
</ol>
<p>See also <a href="#def-unconstrained-scope">unconstrained scope</a>.</p>
<p>This specification places no constraints on how applications interpret
scope.</p>
</dd><dt><a class="dfn" id="def-subject" name="def-subject">subject</a></dt><dd>
<ol>
<li>Anything that can be spoken about or conceived of by a human being.
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.</li>
<li>Anything on which the author of a topic map chooses to discourse.</li>
<li>Anything that is reified by a <a href="#def-topic">topic</a> in a
topic map; the organizing principle of a topic. Humans are the ultimate
authorities for determining the subjects of topics.</li>
</ol>
<p>See also <a href="#def-subject-identity">subject identity</a>,
<a href="#def-subject-indicator">subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-subject-identity" name="def-subject-identity">subject identity</a></dt><dd>
<ol>
<li>The <tt><subjectIdentity></tt> child of a <tt><topic></tt>
element.</li>
<li>That which makes two <a href="#def-subject">subjects</a> identical, or
distinguishes one subject from another. The determination of subject identity
is aided, and may be automated, by the use of <a href="#def-published-subject-indicator">published subject indicators</a>.</li>
<li>A criterion for merging topics as defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-subject-indicator" name="def-subject-indicator">subject indicator</a></dt><dd>
<p>A <a href="#def-resource">resource</a> that is intended by the topic map
author to provide a positive, unambiguous indication of the identity of a
<a href="#def-subject">subject</a>. There are three ways of indicating a subject
in a topic map:</p>
<ol>
<li>Pointing via a <tt><topicRef></tt> element to a
<tt><topic></tt> element that shares the same subject;</li>
<li>Pointing via a <tt><subjectIndicatorRef></tt> element to a resource
that <b>indicates</b> the subject;</li>
<li>Pointing via a <tt><resourceRef></tt> element to a resource that
<b>is</b> the subject.</li>
</ol>
<p>The subject indicated by a subject indicator may be either
<a href="#def-non-addressable-subject">non-addressable</a>
or <a href="#def-addressable-subject">addressable</a>.
(Note that in case 3, the subject is necessarily addressable, since it
is a resource.)
</p>
</dd><dt><a class="dfn" id="def-topic" name="def-topic">topic</a></dt><dd>
<ol>
<li>A <a href="#def-resource">resource</a> that acts as a proxy for some <a href="#def-subject">subject</a>; the topic map system's representation of that
subject. The relationship between a topic and its subject is defined to be one
of <a href="#def-reification">reification</a>. Reification of a subject allows
<a href="#def-topic-characteristic">topic characteristics</a> to be assigned
to the topic that reifies it.</li>
<li>A <tt><topic></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-characteristic" name="def-topic-characteristic">topic characteristic</a></dt><dd><p>One of the following:</p>
<ol>
<li>a topic name,</li>
<li>a topic occurrence, or</li>
<li>a role played by a topic in an association</li>
</ol>
<p>A topic's names, occurrences, and roles played in associations
are collectively known as its characteristics.</p>
<p>See also <a href="#def-topic-name">topic name</a>,
<a href="#def-topic-occurrence">topic occurrence</a>, and
<a href="#def-role">role</a>.</p>
</dd><dt><a class="dfn" id="def-topic-characteristic-assignment" name="def-topic-characteristic-assignment">topic characteristic assignment</a></dt><dd>
<p>The act of asserting that a given topic has a particular characteristic.
Such assertions are deemed to be valid within a certain
<a href="#def-scope">scope</a>.</p>
</dd><dt><a class="dfn" id="def-topic-map" name="def-topic-map">topic map</a></dt><dd>
<ol>
<li>A collection of <a href="#def-topic">topics</a>,
<a href="#def-association">associations</a>, and <a href="#def-scope">scopes</a>
that may exist in one of two forms:
<ol>
<li>a serialized interchange format (e.g. as a topic map document expressed in
XTM syntax), or</li>
<li>some application-internal form, as constrained by the
<a href="#processing">XTM Processing Requirements</a> defined in Annex F.</li>
</ol>
</li>
<li>The document element (<tt><topicMap></tt>) of a topic map document
expressed using XTM syntax.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-map-document" name="def-topic-map-document">topic map document</a></dt><dd>
<p>A document that contains one or more topic maps that conform to this
specification. It may be serialized for the purpose of storage or interchange
in a syntax governed by this or some other specification.</p>
</dd><dt><a class="dfn" id="def-topic-map-node" name="def-topic-map-node">topic map node</a></dt><dd>
<p>An object (in the system's internal representation of a topic map) that
represents a
<a href="#def-topic">topic</a>,
<a href="#def-association">association</a>, or
<a href="#def-scope">scope</a>.</p>
</dd><dt><a class="dfn" id="def-topic-name" name="def-topic-name">topic name</a></dt><dd>
<ol>
<li>A <a href="#def-base-name">base name</a> characteristic of a topic
(including that base name's <a href="#def-variant-name">variants</a>).</li>
<li><em>(Informally)</em> The string of characters specified as a name of a topic using
a <tt><baseNameString></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-naming-constraint" name="def-topic-naming-constraint">topic naming constraint</a></dt><dd>
<p>The constraint, imposed by the topic map paradigm, that any topics having
the same base name in the same scope implicitly refer to the same subject and
therefore should be merged.</p>
</dd><dt><a class="dfn" id="def-topic-occurrence" name="def-topic-occurrence">topic occurrence</a></dt><dd>
<p>A resource containing information that is specified as relevant to a
given subject. In order to be expressed in an XTM topic map, such a
resource must either</p>
<ol>
<li>be addressable via a URI using a <tt><resourceRef></tt>
element, or</li>
<li>be capable of being placed inline as a <tt><resourceData></tt>
element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-type" name="def-topic-type">topic type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-topic">topic</a>.</li>
<li>A class of topic specified by an <tt><instanceOf></tt>
child of a <tt><topic></tt> element. A topic may
belong to more than one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class of
topic.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-unconstrained-scope" name="def-unconstrained-scope">unconstrained scope</a></dt><dd>
<p>The absence of a specified <a href="#def-scope">scope</a> in the
assignment of a <a href="#def-topic-characteristic">topic characteristic</a>.</p>
</dd><dt><a class="dfn" id="def-variant" name="def-variant">variant</a></dt><dd>
<p>See <a href="#def-variant-name">variant name</a>.</p>
</dd><dt><a class="dfn" id="def-variant-name" name="def-variant-name">variant name</a></dt><dd>
<p>An alternative form of a base name, optimized for a particular
computational purpose, such as sorting or display.</p>
</dd><dt><a class="dfn" id="def-xtm-document" name="def-xtm-document">XTM document</a></dt><dd>
<p>A <a href="#def-topic-map-document">topic map document</a> that is
expressed in the syntax defined by this specification.</p>
</dd></dl>
<!-- end div.sect2 terminology section --></div>
<!-- end div.sect1 intro section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
2. <a id="concepts" name="concepts">Concepts</a></h1>
<div class="sect1">
<p>This section describes concepts necessary to understand the
constructs of XML Topic Maps (XTM).</p>
<p>The purpose of a topic map is to convey knowledge about resources
through a superimposed layer, or map, of the resources. A topic map
captures the subjects of which resources speak, and the relationships
between subjects, in a way that is implementation-independent.</p>
<p>The key concepts in topic maps are <em><a href="#desc-topic">topics,</a></em> <em><a href="#desc-association">associations</a>,</em> and <em><a href="#desc-occurrence">occurrences</a>.</em></p>
<p>A topic is a resource within the computer that stands in for (or
“reifies”) some real-world <em><a href="#desc-subject">subject</a></em>.
Examples of such subjects might be the play <cite>Hamlet</cite>, the
playwright William Shakespeare, or the “authorship”
relationship.</p>
<p>Topics can have <a href="#desc-topic-name"><em>names</em></a>. They
can also have <em>occurrences</em>, that is, information resources that
are considered to be relevant in some way to their subject. Finally,
topics can participate in relationships, called <em>associations</em>,
in which they play roles as <em><a href="#desc-member">members</a></em>.</p>
<p>Thus, topics have three kinds of <em><a href="#desc-topic-characteristic">characteristics</a></em>: names,
occurrences, and roles played as members of associations. The assignment
of such characteristics is considered to be valid within a certain
<em><a href="#desc-scope">scope</a>,</em> or context.</p>
<p>Topic maps can be <i>merged</i>. Merging can take place at the
discretion of the user or application (at runtime), or may be indicated
by the topic map's author at the time of its creation.</p>
<p>The following section provides a gentle introduction using a simple
example taken from the domain of encyclopedia publishing. It is followed
by a more detailed overview of topic map concepts. For a list of the XML
element types declared in a topic map, see <a href="#syn-intro">Section
3.1, <cite>Introduction to XTM Syntax</cite></a>.</p>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-intro section ........................ -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.1 <a id="desc-intro" name="desc-intro">A Gentle Introduction to Topic Maps</a></h2>
<div class="sect2">
<p>As a way of making concrete the use of the topic map notation defined
in this specification, consider the following example. Let us suppose that
we wish to record, in a device-independent and implementation-independent
way, the kind of information about the subject matter of a document that
might be included in the subject index to an encyclopedia in electronic
form.</p>
<p>For various <em>subjects</em> — for example, William
Shakespeare, Ben Jonson, their plays <cite>Hamlet</cite> and
<cite>Volpone</cite>, and the towns of London and Stratford, among
thousands of others — we will wish to record all of the locations
in the encyclopedia — whether passages of text, or images, or
sound recordings in a multi-media encyclopedia — where they are
discussed, depicted, or mentioned. We will speak of these locations as
<em>occurrences</em> of these subjects. Note that different occurrences
may relate to their subject in very different ways, which we would like
to distinguish. In-depth discussions, brief mentions, and illustrations
may need to be distinguished in order to allow the users to find more
quickly what they need.</p>
<p>The encyclopedia we are working with exists in electronic form, so
every occurrence of a subject is an electronic resource, for which we
can compute an address. (Without going into detail about the nature of
the address, we define an address as an expression, usually short, which
allows a suitable processor to locate a resource.) They are thus
<em>addressable information resources</em>.</p>
<p>The playwrights William Shakespeare and Ben Jonson, by contrast, are
not addressable resources: they are not electronic artifacts at all, but
real human beings. In order to represent the link between an occurrence
of a subject and the subject itself, we would like simply to point to
each in turn and say “this location discusses this subject” (or perform
the equivalent gestures in some electronic notation, by giving the
address of the subject, the address of the occurrence, and describing
the relation between them using markup).</p>
<p>Because not all subjects are electronic artifacts, however, we cannot
provide an address for the subject. Instead, we provide an electronic
surrogate for the subject, which (being electronic) can have an address.
This surrogate we call a <em>topic</em>. Every topic acts as a surrogate
for some subject. We say that the topic “reifies” the
subject — or makes the subject “real” for the system.
The creation of a topic that reifies a subject enables the system to
manipulate, process, and assign characteristics to the subject by
manipulating, processing, and assigning characteristics to the topic
that reifies it. When we need an address for the subject, we give the
address of a topic which reifies it, and acts as its surrogate within
the system.</p>
<p>(Where it will not lead to confusion, we will sometimes use the terms
topic and subject interchangeably; since each topic reifies some
subject, and since for each subject we can construct a topic to reify
it, the difference is not always important.)</p>
<p>Since our entire collection of subject-index information provides a
sort of map of the encyclopedia, showing where various topics are
mentioned and discussed, we call our electronic representation of the
subject index a <em>topic map</em>.</p>
<p>Topics representing several of William Shakespeare's plays might look
like this:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf><topicRef xlink:href="#play"/></instanceOf>
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
<occurrence>
<instanceOf><topicRef xlink:href="#plain-text-format"/></instanceOf>
<resourceRef
xlink:href="<a class="dref" href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt">ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt</a>"/>
</occurrence>
</topic>
<topic id="tempest">
<instanceOf><topicRef xlink:href="#play"/></instanceOf>
<baseName>
<baseNameString>The Tempest</baseNameString>
</baseName>
<occurrence>
<instanceOf><topicRef xlink:href="#plain-text-format"/></instanceOf>
<resourceRef
xlink:href="<a class="dref" href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws4110.txt">ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws4110.txt</a>"/>
</occurrence>
</topic>
</pre>
<p class="note"><b>Note:</b> For brevity, examples of URIs in this
specification sometimes include only a fragment identifier (e.g.
<code>#play</code> above). In such cases, it is assumed that these
identifiers refer to a <tt><topic></tt> element elsewhere in the
same topic map with an “id” attribute value that matches the
fragment identifier.</p>
<p>It is often useful in thesauri and subject indexes to indicate
relationships among the subjects: <cite>Hamlet</cite> and <cite>The
Tempest</cite> are both examples of plays, Shakespeare is their author,
Rosencrantz and Guildenstern are characters in the play
<cite>Hamlet</cite>, etc. In traditional reference works, these kinds of
relationships are used to guide the compiler in the creation of cross
references. Note that these relationships hold not among the occurrences
of the subjects but among the subjects themselves; an electronic
representation of them can be wholly independent of the occurrences and
might be applied to very different collections of resources. The
electronic representation of relationships among subjects, of course,
will take the form of relationships, or <em>associations</em>, among the
topics that reify those subjects.</p>
<p>An association representing the relationship between Shakespeare and
the play <cite>Hamlet</cite> might look like this:</p>
<pre class="markup"> <association>
<instanceOf><topicRef xlink:href="#written-by"/></instanceOf>
<member>
<roleSpec><topicRef xlink:href="#author"/></roleSpec>
<topicRef xlink:href="#shakespeare"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#work"/></roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
</pre>
<p>Because associations express relationships they are inherently
multidirectional: If “<cite>Hamlet</cite> was written by
Shakespeare”, it automatically follows that “Shakespeare wrote
<cite>Hamlet</cite>”; it is one and the same relationship expressed in
slightly different ways. Instead of directionality, associations use
<em>roles</em> to distinguish between the various forms of involvement
members have in them. Thus the example above may be serialized using natural
language as follows: “There exists a 'written by' relationship between
Shakespeare (playing the role of 'author') and <cite>Hamlet</cite> (playing
the role of 'work').” Relationships may involve one, two, or more
roles.</p>
<p>There is no intrinsic limit to the kinds of relationships among
subjects which we can record in this way; for some purposes, <em>lived
in</em> and <em>example of</em> will suffice; for other purposes, very
different relationships among subjects will be of interest.</p>
<p>Because topics and their relationships can be described independently of
their occurrences in any given set of information resources, it may be
expected that a given set of topics may be connected, in different
applications, with many different sets of information resources. Conversely,
one set of information resources may be described by many different topic
maps. Different topic maps may define topics for the same subject; it will
be important, in practice, to be able to merge topics which denote the same
subject.</p>
<p>At an abstract level, we can say that our encyclopedia consists of a
set of <em>addressable information resources</em>, each of which
may be located inside of some larger addressable information resource
and each of which pertains to one or more subjects. Our subject index
consists of the following three things:</p>
<ol>
<li>a set of <em>topics</em>, each of which serves as an electronic
surrogate for (reifies) some subject, and each of which may have one or
more names</li>
<li>links from topics to information resources that are considered to be
<em>occurrences</em> of the subjects those topics reify, (e.g.
<em>discussed-in</em>, <em>mentioned-in</em>, <em>depicted-in</em>)</li>
<li><em>associations</em> between topics, (e.g. <em>example-of</em>,
<em>wrote/written-by</em>, <em>lived-in</em>)</li>
</ol>
<p>We use the term <em>topic map</em> to denote any collection of such
things. Note that since subjects, as we have defined them, include
anything human beings want to think about, discuss, or represent in
electronic form, there is no mechanical test to determine whether two
subjects are identical or not, or whether two topics reify the same
subject or not. Accordingly, the subjects themselves make no appearance
in the formal description just given. Nor do we attempt to restrict the
nature of the relationships between topics and their occurrences, or
between topics and other topics. For this reason, the formalism defined
here, while historically developing out of an interest in problems of
subject search over bodies of disparate material in many media, may be
applied to many problems far distant (or so they appear) from the
problems of subject indexing for encyclopedias. The terminology
continues to reflect the historical origins of the terms, in the
interests of clarity and concreteness.</p>
<p>Note that since electronic resources of any kind can themselves
become the objects of our attention, they may also be treated as topics.
(A picture depicting William Shakespeare, for example, is just an
occurrence of the topic representing William Shakespeare, but it might
also be mentioned, as a picture, in a history of art, or in a discussion
of graphics formats, or in an inventory of digital resources — or
in a topic map.)</p>
<!-- end div.sect2 desc-intro section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-overview section ..................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.2 <a id="desc-overview" name="desc-overview">Overview of Topic Map Concepts</a></h2>
<div class="sect2">
<p>This section provides a complete overview of all topic map concepts.
It is based largely on the definitions in <a href="#terms">1.3
Terminology</a>, but uses a logical rather than alphabetical order of
presentation and includes some additional explanatory material.</p>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-topic section ........................ -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.1 <a id="desc-topic" name="desc-topic">Topic</a></h3>
<div class="sect3">
<p>A topic is a resource that acts as a proxy for some <a href="#desc-subject">subject</a>; it is the topic map system's
representation of that subject. The relationship between a topic and its
subject is defined to be one of <a href="#desc-reification">reification</a>. Reification of a subject
allows
<a href="#desc-topic-characteristic">topic characteristics</a> to be
assigned to the topic that reifies it.</p>
<p>Each individual topic is an instance of one or more classes of topics
(also known as <em>topic types</em>) that may or may not be indicated
explicitly. The default topic type is defined by the <a class="psiref" href="#psi-topic">“topic” published subject</a>.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject section ...................... -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.1 <a id="desc-subject" name="desc-subject">Subject</a></h4>
<div class="sect4">
<p>A subject is anything that can be spoken about or conceived of by a
human being. 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. In particular, it is anything on which the author of a
topic map chooses to discourse.</p>
<p>In order to discourse on a subject within the topic map paradigm,
that subject must be <a href="#desc-reification">reified</a> through the
creation of a topic. Subjects are thus the organizing principle of
topics.</p>
<p>In a <a href="#desc-consistent-topic-map">consistent topic map</a> each
subject is represented by just one topic. In a <a href="#desc-topic-map-document">topic map document</a>, on the other hand,
multiple topics may reify the same subject (though preferably in such a way
that they can be <a href="#desc-merging">merged</a> to a single topic during
processing).</p>
<p>Most subjects exist outside the bounds of the computer system; they
cannot be addressed directly and their identities are therefore not
computable. Examples of such <em>non-addressable subjects</em> include
William Shakespeare, the play <cite>Hamlet</cite> and its 1604-05
edition, the character Hamlet, the concept of vengeance, the organization
Shakespeare & Company, this XTM specification, etc. The identity of
non-addressable subjects can only be established indirectly, via a
resource that functions as a <a href="#desc-subject-indicator">subject
indicator</a>.</p>
<p>However, <em>anything</em> can be a subject of discourse in a topic
map, including resources inside the computer, which <em>can</em> be
addressed directly. Resources considered as subjects are called
<em>addressable subjects</em>. An example of an addressable subject
would be this specification, considered as an HTML document.</p>
<!-- end div.sect4 desc-subject section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-reification section .................. -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.2 <a id="desc-reification" name="desc-reification">Reification</a></h4>
<div class="sect4">
<p>The act of creating a topic is called reification. When anything is
reified it becomes the subject of the topic thus created; to reify
something is therefore to create a topic of which that thing is the
subject. Reification of a subject allows topic characteristics to be
assigned to the topic that reifies it: In other words, it makes it
possible to <b>discourse</b> about that subject within the terms of the
topic map paradigm.</p>
<p>The notion of reification is at the very heart of the topic map paradigm.
The only means whereby it is possible to say anything at all in a topic map
is to create a topic and then assign characteristics to it. Topics are what
make subjects “real” for the system and come as close as a
machine can to a representation of what is “real” for
humans.</p>
<p>Since anything whatsoever can be a subject, reification can also be
applied to objects within the topic map itself, such as associations,
names, and occurrences. (For examples of how this can be done syntactically,
see under
<a href="#ex-association"><tt><association></tt></a> and
<a href="#ex-occurrence"><tt><occurrence></tt></a> in <cite>Section 3,
XTM Syntax Documentation</cite>.) This makes it possible both to apply the
power of the topic map paradigm to topic maps themselves, and to enable
multiple levels of knowledge representation within one and the same map,
including making assertions about assertions.</p>
<!-- end div.sect4 desc-reification section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject-identity section ............. -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.3 <a id="desc-subject-identity" name="desc-subject-identity">Subject Identity</a></h4>
<div class="sect4">
<p>Subject identity is the means whereby it can be established which
subject is reified by a particular topic. When two topics have the same
subject identity, they are considered to be “about” the same
thing, and must therefore be merged. Because of the need to be able to
merge topic maps — in effect, to interchange their semantics — the
topic map paradigm goes to great lengths to make it possible to
establish the identity of a topic (and hence its subject) as robustly as
possible.</p>
<p>Subject identity can be established in one of two ways:</p>
<ol>
<li>By addressing the subject directly. This is only possible when the
subject is an addressable information resource.</li>
<li>By indicating the subject via a <a href="#desc-subject-indicator">subject indicator</a> (see below).</li>
</ol>
<!-- end div.sect4 desc-subject-identity section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject-indicator section ............ -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.4 <a id="desc-subject-indicator" name="desc-subject-indicator">Subject Indicator</a></h4>
<div class="sect4">
<p>A subject indicator is a <a href="#def-resource">resource</a> that is
intended by the topic map author to provide a positive, unambiguous
indication of the identity of a <a href="#def-subject">subject</a>. When
two topics use the same resource to indicate their subject, they are by
definition “about” the same thing, and must therefore be
merged during processing.</p>
<p>Since subject identity forms the basis for merging topic maps and
interchanging semantics, authors are encouraged to always indicate the
subject identity of their topics in the most robust manner possible, in
particular through the use of standardized ontologies expressed as
<a href="#desc-psis">published subject indicators</a>.</p>
<p>Since one and the same subject may be indicated in many ways, it is
possible for two topics that reify the same subject to use different
subject indicators and therefore not be merged. Situations like this may
be avoided through the use of a third topic (in the same or another
topic map document) that establishes its identity through <em>both</em>
subject indicators. Thus topic maps may be used for mediating between
ontologies.</p>
<!-- end div.sect4 desc-subject-indicator section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-characteristic section ......... -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.5 <a id="desc-topic-characteristic" name="desc-topic-characteristic">Topic Characteristic</a></h4>
<div class="sect4">
<p>Anything that may be asserted about a topic in the topic map paradigm
is known as a <em>characteristic</em> of that topic. Characteristics can
be one of the following:</p>
<ul>
<li>a <a href="#desc-topic-name">topic name</a>,</li>
<li>a <a href="#desc-topic-occurrence">topic occurrence</a>, or</li>
<li>a <a href="#desc-role">role</a> played by a topic as a member of an
association</li>
</ul>
<p>The assignment of such characteristics is considered to be valid
within a certain <a href="#desc-scope">scope</a>, or context.</p>
<!-- end div.sect4 desc-topic-characteristic section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-scope section ........................ -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.6 <a id="desc-scope" name="desc-scope">Scope</a></h4>
<div class="sect4">
<p>Scope specifies the extent of the validity of a <a href="#desc-topic-characteristic">topic characteristic</a> assignment. It
establishes 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. Every characteristic has a scope, which may be specified
either explicitly, as a set of topics, or implicitly, in which case it is
known as the <em>unconstrained scope</em>. Assignments made in the
unconstrained scope are always valid.</p>
<p>Scope is considered to establish a namespace for the base names of
topics. This leads to the constraint, imposed by the topic map paradigm,
called the <em>topic naming constraint</em>, that any topics having the
same <a href="#desc-base-name">base name</a> in the same scope
implicitly refer to the same subject and therefore should be merged.
With the exception of this constraint, the interpretation of a
characteristic's scope and its effect on processing is left to the
application and is in no way constrained by this specification.</p>
<!-- end div.sect4 desc-scope section --></div>
<!-- end div.sect3 desc-topic section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-name section ......................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.2 <a id="desc-name" name="desc-name">Name</a></h3>
<div class="sect3">
<p>A topic may have zero or more names, each of which is considered to
be valid within a certain scope (which may be the unconstrained
scope).</p>
<p>Each name may exist in multiple forms. A name always has exactly one base
form, known as the <a href="#desc-base-name">base name</a>, and it may, in
addition, have one or more <a href="#desc-variant-name">variants</a>
for use in specific processing contexts.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-base-name section .................... -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.1 <a id="desc-base-name" name="desc-base-name">Base Name</a></h4>
<div class="sect4">
<p>A base name is the base form of a topic name; it is always a string.
When an application chooses to use a particular topic name to label a
topic, the base name provides the string for the application to use
unless a variant exists that is deemed to be more apposite in the
processing context.</p>
<p>Base names are subject to the topic naming constraint, which
prohibits a <a href="#def-processed-topic-map">processed topic map</a>
from containing multiple topics with the same base name in the same
scope.</p>
<!-- end div.sect4 desc-base-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-variant-name section ................. -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.2 <a id="desc-variant-name" name="desc-variant-name">Variant Name</a></h4>
<div class="sect4">
<p>A variant name is an alternative form of a base name, that is
optimized for a particular computational purpose, such as sorting or
display. It may be any kind of a resource, including a string. An
application chooses among variant names by evaluating their
<a href="#desc-parameters">parameters</a>.</p>
<!-- end div.sect4 desc-variant-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-parameters section ................... -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.3 <a id="desc-parameters" name="desc-parameters">Parameters</a></h4>
<div class="sect4">
<p>Parameters are information, in the form of a set of topics, that
expresses the appropriate processing context for a <a href="#def-variant-name">variant name</a>. Having selected a particular
topic name, an application may choose to examine the parameters of its
variants (if any) in order to select the most suitable form of that
name.</p>
<!-- end div.sect4 desc-parameters section --></div>
<!-- end div.sect3 desc-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-occurrence section ................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.3 <a id="desc-occurrence" name="desc-occurrence">Occurrence</a></h3>
<div class="sect3">
<p>An occurrence is any information that is specified as being relevant
to a given subject. Occurrences constitute one of the three kinds of
<a href="#desc-topic-characteristic">characteristic</a> that can be
assigned to a topic and are therefore governed by <a href="#desc-scope">scope</a>. Each individual occurrence is an instance
of a single class of occurrence (also known as an <em>occurrence
type</em>) that may or may not be indicated explicitly. The default
occurrence type is defined by the <a class="psiref" href="#psi-occurrence">“occurrence” published subject</a>.</p>
<p>In order to be expressed in an XTM topic map, such occurrences must
be resources that are either</p>
<ol>
<li>addressable by reference using a URI (a “resource
reference”), or</li>
<li>capable of being placed inline as character data (“resource
data”).</li>
</ol>
<p>The latter (resource data) provides a useful way of expressing a short
piece of information about a subject (e.g. a work's date of
composition).</p>
<!-- end div.sect3 desc-occurrence section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-association section .................. -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.4 <a id="desc-association" name="desc-association">Association</a></h3>
<div class="sect3">
<p>An association is a relationship between one or more topics, each of
which plays a <a href="#desc-role">role</a> as a <a href="#desc-member">member</a> of that association. The roles a topic
plays in associations are among the <a href="#desc-topic-characteristic">characteristics</a> that can be
assigned to it and are therefore governed by <a href="#desc-scope">scope</a>. Each individual association is an instance
of a single class of association (also known as an <em>association
type</em>) that may or may not be indicated explicitly. The default
association type is defined by the <a class="psiref" href="#psi-association">“association” published subject</a>.</p>
<p>There is no directionality inherent in an association.
(Associations describe <em>relationships</em>: If <var>A</var> is
related to <var>B</var>, then <var>B</var> must also be related to
<var>A</var>. The issue is rather, what is the <em>type</em> of the
relationship, and what <em>roles</em> are played by its members. The
question of how to <em>label</em> a relationship is one of naming, not
direction.)</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-member section ....................... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.1 <a id="desc-member" name="desc-member">Member</a></h4>
<div class="sect4">
<p>A member is a set of topics that play a particular <a href="#desc-role">role</a> in an association.</p>
<!-- end div.sect4 desc-member section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-role section ......................... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.2 <a id="desc-role" name="desc-role">Role</a></h4>
<div class="sect4">
<p>The concept of role expresses the nature of a topic's involvement as
a member of an association.</p>
<!-- end div.sect4 desc-role section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-class-instance section ............... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.3 <a id="desc-class-instance" name="desc-class-instance">Class-Instance</a></h4>
<div class="sect4">
<p>Class-instance is a class of association that expresses
class-instance relationships between topics that play the roles of class
and instance respectively. The subjects
<a class="psiref" href="#psi-class-instance">“class-instance”</a>,
<a class="psiref" href="#psi-class">“class”</a>, and
<a class="psiref" href="#psi-instance">“instance”</a>
are all defined by published subject indicators (PSIs) published in
this specification.</p>
<!-- end div.sect4 desc-class-instance section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-superclass-subclass section .......... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.4 <a id="desc-superclass-subclass" name="desc-superclass-subclass">Superclass-Subclass</a></h4>
<div class="sect4">
<p>Superclass-subclass is a class of association that expresses
superclass-subclass relationships between topics that play the roles of
superclass and subclass respectively. The subjects
<a class="psiref" href="#psi-superclass-subclass">“superclass-subclass”</a>,
<a class="psiref" href="#psi-superclass">“superclass”</a>, and
<a class="psiref" href="#psi-subclass">“subclass”</a>
are all defined by PSIs published in this specification.</p>
<!-- end div.sect4 desc-superclass-subclass section --></div>
<!-- end div.sect3 desc-association section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-topic-map section .................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.5 <a id="desc-topic-map" name="desc-topic-map">Topic Map</a></h3>
<div class="sect3">
<p>A topic map is a collection of topics, associations, and scopes
(collectively called <a href="#desc-topic-map-node">topic map nodes</a>)
that may exist in one of two forms:</p>
<ol>
<li>a serialized interchange format (e.g. as a <a href="#topic-map-document">topic map document</a> expressed in XTM
or some other syntax), or</li>
<li>an application-internal form, as constrained by the <a href="#processing">XTM Processing Requirements</a> defined in Annex
F</li>
</ol>
<p>The purpose of a topic map is to convey knowledge about resources
through a superimposed layer, or map, of the resources. A topic map
captures the subjects of which resources speak, and the relationships
between resources, in a way that is implementation-independent.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-map-node section ............... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.1 <a id="desc-topic-map-node" name="desc-topic-map-node">Topic Map Node</a></h4>
<div class="sect4">
<p>Topic map nodes are objects in the system's internal representation of
a topic map that represent
<a href="#desc-topic">topics</a>,
<a href="#desc-association">associations</a>, and
<a href="#desc-scope">scopes</a>.</p>
<!-- end div.sect4 desc-topic-map-node section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-consistent-topic-map section ......... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.2 <a id="desc-consistent-topic-map" name="desc-consistent-topic-map">Consistent Topic Map</a></h4>
<div class="sect4">
<p>A consistent topic map is one in which there is one topic per subject
and no further opportunities for merging or duplicate suppression, as
defined in <a href="#processing">Annex F: XTM Processing
Requirements</a>.</p>
<!-- end div.sect4 desc-consistent-topic-map section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-map-document section ........... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.3 <a id="desc-topic-map-document" name="desc-topic-map-document">Topic Map Document</a></h4>
<div class="sect4">
<p>A topic map document is a document that contains one or more topic
maps that conform to this specification. It may be serialized for the
purpose of storage or interchange in a syntax governed by this or some
other specification.</p>
<!-- end div.sect4 desc-topic-map-document section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-xtm-document section ................. -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.4 <a id="desc-xtm-document" name="desc-xtm-document">XTM document</a></h4>
<div class="sect4">
<p>An XTM document is a topic map document that is expressed in the
syntax defined by this specification.</p>
<!-- end div.sect4 desc-xtm-document section --></div>
<!-- end div.sect3 desc-topic-map section --></div>
<!-- end div.sect2 desc-overview section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-psis section ......................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.3 <a id="desc-psis" name="desc-psis">Published Subjects</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-psis-intro ........................... -->
<h3><a href="#desc-psis"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.3.1 <a id="desc-psis-intro" name="desc-psis-intro">Introduction</a></h3>
<div class="sect3">
<p>A published subject is any subject for which a <a href="#desc-subject-indicator">subject indicator</a> has been made
available for public use and is accessible online via a URI. A published
subject indicator is therefore any resource that has been published in
order to provide a positive, unambiguous indication of the identity of a
subject for the purpose of facilitating topic map interchange and
mergeability.</p>
<!-- end div.sect3 --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : mandatory PSIs ............................ -->
<h3><a href="#desc-psis"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.3.2 <a id="psi-mandatory" name="psi-mandatory">XTM Mandatory Published Subject Indicators</a></h3>
<div class="sect3">
<p>Certain subjects are necessary for, intrinsic to, and therefore
published in this specification. Various constraints imposed by this
specification are expressed in terms of these published subjects,
including the default class of topics, associations, and occurrences,
and the equivalence between the use of <tt><instanceOf></tt> and
an association of type <tt>class-instance</tt> in the unconstrained
scope.</p>
<p>The Published Subject Indicators provided by this specification for the
XTM mandatory subjects are briefly identified in this section. The brief
descriptions found here are referenced as subject indicators by the
<tt><topic></tt> elements contained in the topic map found in <a href="#coremap">Annex E: XTM 1.0 Core Published Subject Indicators</a>.</p>
<!-- begin list of XTM 1.0 Core Published Subject Identifier Descriptions ... -->
<dl><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-topic" name="psi-topic"><b>topic</b></a></dt><dd><p>The core concept of topic; the generic class to which
all topics belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#topic</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-association" name="psi-association"><b>association</b></a></dt><dd><p>The core concept of association; the generic class to
which all associations belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#association</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-occurrence" name="psi-occurrence"><b>occurrence</b></a></dt><dd><p>The core concept of occurrence; the generic class to
which all occurrences belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-class-instance" name="psi-class-instance"><b>class-instance relationship</b></a></dt><dd><p>The core concept of class-instance;
the class of association that represents class-instance
relationships between topics, and that is semantically equivalent
to the use of <tt><instanceOf></tt> subelements.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-class" name="psi-class"><b>class</b></a></dt><dd><p>The core concept of class; the role of class as played
by one of the members of a class-instance association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#class</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-instance" name="psi-instance"><b>instance</b></a></dt><dd><p>The core concept of instance; the role of instance as
played by one of the members of a class-instance association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#instance</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-superclass-subclass" name="psi-superclass-subclass"><b>superclass-subclass relationship</b></a></dt><dd><p>The core concept of
superclass-subclass; the class of association that represents
superclass-subclass relationships between topics.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#superclass-subclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-superclass" name="psi-superclass"><b>superclass</b></a></dt><dd><p>The core concept of superclass; the role of superclass
as played by one of the members of a superclass-subclass association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#superclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-subclass" name="psi-subclass"><b>subclass</b></a></dt><dd><p>The core concept of subclass; the role of subclass as
played by one of the members of a superclass-subclass association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#subclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-sort" name="psi-sort"><b>suitability for sorting</b></a></dt><dd><p>Suitability of a topic name for use as a
sort key; for use in the parameters of variant names.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#sort</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-display" name="psi-display"><b>suitability for display</b></a></dt><dd><p>Suitability of a topic name for display;
for use in the parameters of variant names.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#display</span></p></dd></dl><!-- end list of XTM published subject identifier descriptions -->
<!-- end div.sect3 --></div>
<!-- end div.sect2 desc-psis section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-merging section ...................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.4 <a id="desc-merging" name="desc-merging">Merging</a></h2>
<div class="sect2">
<p>The term <em>merging</em> covers two distinct processes:</p>
<ol>
<li>The process of merging two topic maps, either as a result of explicit
<tt><mergeMap></tt> directives, or for any application-specific
reasons.</li>
<li>The process of merging two topics.</li>
</ol>
<p>The rules governing all forms of merging and the determination of
subject identity are given in full in <a href="#processing">Annex F: XTM
Processing Requirements</a>. They can be briefly (and incompletely) stated
as follows:</p>
<ol>
<li>When two topic maps are merged, any topics that the application, by
whatever means, determines to have the same subject are merged, and any
duplicate associations are removed.</li>
<li>When two topics are merged, the result is a single topic whose
characteristics are the union of the characteristics of the original
topics, with duplicates removed.</li>
</ol>
<p>Two topics are always deemed to have the same subject if:</p>
<ol>
<li>they have one or more subject indicators in common,</li>
<li>they reify the same addressable subject, or</li>
<li>they have the same base name in the same scope.</li>
</ol>
<!-- end div.sect2 desc-merging section --></div>
<!-- end div.sect1 concepts section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ....................................................................... -->
<!-- begin div.sect1 : syntax documentation ................................ -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
3. <a id="syntax" name="syntax">XTM Syntax Documentation</a></h1>
<div class="sect1">
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: introduction ...................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.1 <a id="syn-intro" name="syn-intro">Introduction to XTM Syntax</a></h2>
<div class="sect2">
<p>The syntax for serializing and interchanging topic map documents
conforming to this specification is defined by the XML document type
definition provided in <a href="#dtd">Annex D: XTM 1.0 Document Type
Declaration</a>. This section provides documentation for all the element
types defined in that DTD.</p>
<p>The following is a complete list of XTM element types in the
order in which they are documented:</p>
<!-- begin legend ........ -->
<ul>
<li><a href="#elt-topicRef"><topicRef></a>: Reference to a Topic element </li>
<li><a href="#elt-subjectIndicatorRef"><subjectIndicatorRef></a>: Reference to a Subject Indicator </li>
<li><a href="#elt-scope"><scope></a>: Reference to Topic(s) that comprise the Scope </li>
<li><a href="#elt-instanceOf"><instanceOf></a>: Points to a Topic representing a class </li>
<li><a href="#elt-topicMap"><topicMap></a>: Topic Map document element </li>
<li><a href="#elt-topic"><topic></a>: Topic element </li>
<li><a href="#elt-subjectIdentity"><subjectIdentity></a>: Subject reified by Topic </li>
<li><a href="#elt-baseName"><baseName></a>: Base Name of a Topic </li>
<li><a href="#elt-baseNameString"><baseNameString></a>: Base Name String container </li>
<li><a href="#elt-variant"><variant></a>: Alternate forms of Base Name </li>
<li><a href="#elt-variantName"><variantName></a>: Container for Variant Name </li>
<li><a href="#elt-parameters"><parameters></a>: Processing context for Variant </li>
<li><a href="#elt-association"><association></a>: Topic Association </li>
<li><a href="#elt-member"><member></a>: Member in Topic Association </li>
<li><a href="#elt-roleSpec"><roleSpec></a>: Points to a Topic serving as an Association Role</li>
<li><a href="#elt-occurrence"><occurrence></a>: Resources regarded as an Occurrence </li>
<li><a href="#elt-resourceRef"><resourceRef></a>: Reference to a Resource </li>
<li><a href="#elt-resourceData"><resourceData></a>: Container for Resource data </li>
<li><a href="#elt-mergeMap"><mergeMap></a>: Merge with another Topic Map </li>
</ul>
<!-- end legend .......... -->
<!-- end div.sect2 syntax: intro --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: references section ................ -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.2 <a id="syn-refs" name="syn-refs">References to Topics and Subject Indicators</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topicRef' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.2.1 <a id="elt-topicRef" name="elt-topicRef"><topicRef> Element</a></h3>
<div class="sect3">
<p>The <tt><topicRef></tt> element provides a URI reference to a
topic. The target of a <tt><topicRef></tt> link must resolve to a <a class="eltref" href="#elt-topic"><tt><topic></tt></a> element child of
a <tt><topicMap></tt> document that conforms to this XTM
specification. The target <tt><topic></tt> need not be in the document
entity of origin.</p>
<p><tt><topicRef></tt>s are identical to
<tt><a href="#elt-subjectIndicatorRef"><subjectIndicatorRef></a></tt>s,
except for the additional constraint that they must point to
<tt><topic></tt> elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-parameters"><parameters></a></tt>,
<tt><a href="#elt-roleSpec"><roleSpec></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topicRef"><!-- element declaration -->
<!<b>ELEMENT</b> topicRef EMPTY >
</pre>
<p>
The <tt><topicRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topicRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topicRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><topicRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link. </td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.
</p>
</div>
<!-- div.sect4 end --></div>
<h4><a name="ex-topicRef" id="ex-topicRef">Examples</a></h4>
<div class="sect4">
<p>Reference to a topic with the ID “en” in the document
<em>language.xtm</em> (this is in fact a published subject for the language
English):</p>
<pre class="markup"> <topicRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</pre>
<p>Reference to a topic with the ID “play” that is
physically located in the current document:</p>
<pre class="markup"> <topicRef xlink:href="#play"/>
</pre>
<p>For further examples, see
<tt><a href="#ex-scope"><scope></a></tt>,
<tt><a href="#ex-instanceOf"><instanceOf></a></tt>,
<tt><a href="#ex-variant"><variant></a></tt>,
<tt><a href="#ex-association"><association></a></tt>, and
<tt><a href="#ex-mergeMap"><mergeMap></a></tt>.
</p>
<!-- div.sect4 end --></div>
<!-- end div.sect3 element type 'topicRef' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'subjectIndicatorRef' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.2.2 <a id="elt-subjectIndicatorRef" name="elt-subjectIndicatorRef"><subjectIndicatorRef> Element</a></h3>
<div class="sect3">
<p> The <tt><subjectIndicatorRef></tt> element provides a URI
reference to a resource that acts as a subject indicator.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-parameters"><parameters></a></tt>,
<tt><a href="#elt-roleSpec"><roleSpec></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-subjectIndicatorRef"><!-- element declaration -->
<!<b>ELEMENT</b> subjectIndicatorRef EMPTY >
</pre>
<p>The <tt><subjectIndicatorRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-subjectIndicatorRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> subjectIndicatorRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><subjectIndicatorRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link.</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.
</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-subjectIndicatorRef" id="ex-subjectIndicatorRef">Examples</a></h4>
<div class="sect4">
<p>Reference to a published subject indicator:</p>
<pre class="markup"> <subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</pre>
<p>Reference to a (fictitious) resource that indicates a subject less
formally:</p>
<pre class="markup"> <subjectIndicatorRef
xlink:href="http://www.shakespeare.org/plays.html#hamlet"/>
</pre>
<p>For further examples, see
<tt><a href="#ex-scope"><scope></a></tt>,
<tt><a href="#ex-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a>.</tt>
</p>
<p>For examples of how to use <tt><subjectIndicatorRef></tt> to
reify topic map constructs, see
<tt><a href="#ex-association"><association></a></tt> and
<tt><a href="#ex-occurrence"><occurrence></a></tt>.
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'subjectIndicatorRef' section --></div>
<!-- end div.sect2 syntax: references section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: scope section ..................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.3 <a id="syn-scope" name="syn-scope">Scope and Context</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'scope' ....... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.3.1 <a id="elt-scope" name="elt-scope"><scope> Element</a></h3>
<div class="sect3">
<p>The <tt><scope></tt> element consists of one or more
<tt><topicRef></tt>, <tt><resourceRef></tt>, or
<tt><subjectIndicatorRef></tt> elements. The union of the subjects
corresponding to these elements specifies the context in which the
assignment of the topic characteristic is considered to be valid.</p>
<p>A declaration of a topic characteristic is valid only within a scope.
When a topic characteristic declaration does not specify a scope, it is
valid in the <a href="#def-unconstrained-scope">unconstrained
scope</a>.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-scope"><!-- element declaration -->
<!<b>ELEMENT</b> scope ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each repeatable <tt><topicRef></tt> child element
references a <tt><topic></tt> element (“scoping
topic”) whose subject contributes to the scope.
</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>Each repeatable <tt><resourceRef></tt> child element
references a resource that contributes to the scope.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each repeatable <tt><subjectIndicatorRef></tt> child element
references a resource that indicates the identity of the subject
that contributes to the scope.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-scope"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> scope
id ID #IMPLIED
>
</pre>
<p>The <tt><scope></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-scope" id="ex-scope">Examples</a></h4>
<div class="sect4">
<p>Define a scope consisting of the subject “English” using
a published subject:</p>
<pre class="markup"> <scope>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</scope>
</pre>
<p>Define a scope consisting of the topics “tragedy” and
“theatre” in the current document:</p>
<pre class="markup"> <scope>
<topicRef xlink:href="#tragedy"/>
<topicRef xlink:href="#theatre"/>
</scope>
</pre>
<p>For further examples, see
<tt><a href="#elt-baseName"><baseName></a>.</tt>
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'scope' section --></div>
<!-- end div.sect2 syntax: scope section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: classes and instances section ..... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.4 <a id="syn-classes" name="syn-classes">Classes and Instances</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'instanceOf' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.4.1 <a id="elt-instanceOf" name="elt-instanceOf"><instanceOf>
Element</a></h3>
<div class="sect3">
<p> The <tt><instanceOf></tt> element specifies the class to
which its parent belongs, via a
<a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a> or
<a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>
child element.</p>
<p>For the constraints on the usage of <tt><instanceOf></tt>,
see the description of the element types that can be its parent:
<a class="eltref" href="#elt-topic"><tt><topic></tt></a>,
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>,
and <a class="eltref" href="#elt-association"><tt><association></tt></a>.</p>
<p>The <tt><instanceOf></tt> element is a syntactic shortcut for an
association of a special type defined by the
<a class="psiref" href="#psi-class-instance">class-instance published
subject</a>.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-instanceOf"><!-- element declaration -->
<!<b>ELEMENT</b> instanceOf ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The <tt><topicRef></tt> child element references
a <tt><topic></tt> element that reifies a class of
subject.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The <tt><subjectIndicatorRef></tt> child element references
a resource that indicates the identity of a class of subject.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-instanceOf"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> instanceOf
id ID #IMPLIED
>
</pre>
<p>The <tt><instanceOf></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-instanceOf" id="ex-instanceOf">Examples</a></h4>
<div class="sect4">
<p>Declare that the topic with the ID “hamlet” is an
instance of the topic type whose ID is “play”:</p>
<pre class="markup"> <topic id="play">
...
</topic>
<topic id="hamlet">
<instanceOf>
<topicRef xlink:href="#play"/>
</instanceOf>
</topic>
</pre>
<p>Reference a subject indicator to establish the subject of which a
topic is an instance:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.shakespeare.org/plays.html"/>
</instanceOf>
</topic>
</pre>
<p>Reference a published subject in a public ontology to establish the
subject of which a topic is an instance:</p>
<pre class="markup"> <topic id="shakespeare">
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.iptc.org/NewsML/topicsets/-
topicset.iptc-topictype.xml#TopicTypes.Person"/>
</instanceOf>
</topic>
</pre>
<p>For further examples, see
<tt><a href="#elt-topic"><topic></a>,</tt>
<tt><a href="#elt-association"><association></a>, and</tt>
<tt><a href="#elt-occurrence"><occurrence></a>.</tt>
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'instanceOf' section --></div>
<!-- end div.sect2 syntax: classes and instances section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: the topic map ..................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.5 <a id="syn-topicmap" name="syn-topicmap">The Topic Map</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topicMap' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.5.1 <a id="elt-topicMap" name="elt-topicMap"><topicMap> Element</a></h3>
<div class="sect3">
<p>The <tt><topicMap></tt> element is the parent of all
<a class="eltref" href="#elt-topic"><tt><topic></tt></a>,
<a class="eltref" href="#elt-association"><tt><association></tt></a>, and
<a class="eltref" href="#elt-mergeMap"><tt><mergeMap></tt></a> elements
in the topic map document.</p>
<p>The <tt><topicMap></tt> element is the root element from which topic map
syntactical recognition is performed. The <tt><topicMap></tt> element can
be the root of a document containing only a topic map (i.e. when it is the
document element), or it can be the root of a subtree inside an XML document
containing other information than the topic map itself. In the latter case,
only the subtree starting with the element <tt><topicMap></tt> is taken
into account for topic map syntactical recognition and conformance.</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topicMap"><!-- element declaration -->
<!<b>ELEMENT</b> topicMap
( <a class="dref" href="#elt-topic">topic</a> | <a class="dref" href="#elt-association">association</a> | <a class="dref" href="#elt-mergeMap">mergeMap</a> )*
>
</pre>
<dl><dt><a class="eltref" href="#elt-topic"><tt><topic></tt></a></dt><dd>Each optional and repeatable <tt><topic></tt> child
element reifies a single subject. </dd><dt><a class="eltref" href="#elt-association"><tt><association></tt></a></dt><dd>Each optional and repeatable <tt><association></tt>
child element specifies a relationship among topics. </dd><dt><a class="eltref" href="#elt-mergeMap"><tt><mergeMap></tt></a></dt><dd>Each optional and repeatable <tt><mergeMap></tt>
child element causes its parent topic map to be merged with another topic map.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topicMap"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topicMap
id ID #IMPLIED
xmlns CDATA #FIXED 'http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
</pre>
<p>The <tt><topicMap></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xmlns</tt></th>
<td>namespace identifier for default XML namespace</td>
</tr>
<tr><th><tt>xmlns:xlink</tt></th>
<td>namespace identifier for XLink namespace</td>
</tr>
<tr><th><tt>xml:base</tt></th>
<td>reference to document base URI</td>
</tr>
</tbody>
</table>
<p class="note"><b>Notes:</b><br>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.<br>
See section 3 of <a class="xref" href="#ref_xbase">[XML Base]</a>
for details on use of the <tt>xml:base</tt> attribute.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-topicMap" id="ex-topicMap">Examples</a></h4>
<div class="sect4">
<p>A <tt><topicMap></tt> element embedded in an XML document:</p>
<pre class="markup"> ...
<topicMap>
<!-- topics, associations, and merge map directives go here -->
</topicMap>
...
</pre>
<p>A <tt><topicMap></tt> element that constitutes a complete
document:</p>
<pre class="markup"> <?xml version="1.0"?>
<!DOCTYPE topicMap
PUBLIC "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
"file://usr/local/home/gromit/xml/xtm/xtm1.dtd">
<topicMap xmlns='http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink='http://www.w3.org/1999/xlink'
xml:base='http://www.shakespeare.org/hamlet/'>
<!-- topics, associations, and merge map directives go here -->
</topicMap>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'topicMap' section --></div>
<!-- end div.sect2 syntax: the topic map section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: topics and subjects ............... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.6 <a id="syn-topsubj" name="syn-topsubj">Topics and Subjects</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topic' ....... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.6.1 <a id="elt-topic" name="elt-topic"><topic> Element</a></h3>
<div class="sect3">
<p>The <tt><topic></tt> element specifies the name and
occurrence characteristics of a single topic. It has a single unique
identifier, and the ability to state the class(es) of which it is an
instance and the identity of the subject that it reifies.</p>
<p>By definition, a topic reifies only one subject. Every topic is
intended to be organized around exactly one subject, even if that
subject is only implicitly defined. During XTM processing, topics with
identical subjects will be merged according to the rules specified in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
<p>However, a topic map <em>document</em> may contain multiple topic
elements that reify the same subject. After processing there will only be
one topic for each subject; its characteristics will be the union of the
characteristics of all topics that reified that subject. (For further
discussion of the merging process, see <a href="#desc-merging">Section 2.4,
Merging</a>.)</p>
<p>The class(es) of which the topic is an instance are indicated via the
<tt><instanceOf></tt> child element(s), each of which addresses
either a topic or a subject indicator. If no <tt><instanceOf></tt>
children are present, the class of the topic defaults to the class
defined by the
<a class="psiref" href="#psi-topic">topic published subject</a>.</p>
<p>A <tt><topic></tt> element specifies zero or more names
and zero or more occurrences that are relevant to its subject. Names are
declared by means of
<a class="eltref" href="#elt-baseName"><tt><baseName></tt></a> child
elements. Occurrences are specified by means of
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>
child elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topic"><!-- element declaration -->
<!<b>ELEMENT</b> topic
( <a class="dref" href="#elt-instanceOf">instanceOf</a>*, <a class="dref" href="#elt-subjectIdentity">subjectIdentity</a>?, ( <a class="dref" href="#elt-baseName">baseName</a> | <a class="dref" href="#elt-occurrence">occurrence</a> )* )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>Each optional and repeatable <tt><instanceOf></tt>
child element specifies a class of which this topic is an
instance.
</dd><dt><a class="eltref" href="#elt-subjectIdentity"><tt><subjectIdentity></tt></a></dt><dd>The optional <tt><subjectIdentity></tt> child element
specifies the subject identity of this topic.</dd><dt><a class="eltref" href="#elt-baseName"><tt><baseName></tt></a></dt><dd>Each optional and repeatable <tt><baseName></tt>
child element specifies a name characteristic of this topic.</dd><dt><a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a></dt><dd>Each optional and repeatable <tt><occurrence></tt>
child element specifies information resources that are relevant to
this topic.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topic"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topic
id ID #REQUIRED
>
</pre>
<p>The <tt><topic></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-topic" id="ex-topic">Example</a></h4>
<div class="sect4">
<p>The topic whose ID is “hamlet” is an instance of the
topic type whose ID is “play”:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf>
<topicRef xlink:href="#play"/>
</instanceOf>
<!-- base names and occurrences go here -->
</topic>
</pre>
<p>For further examples, see
<a class="eltref" href="#elt-subjectIdentity"><tt><subjectIdentity></tt></a>,
<a class="eltref" href="#elt-baseName"><tt><baseName></tt></a>,
<a class="eltref" href="#elt-variant"><tt><variant></tt></a>,
<a class="eltref" href="#elt-association"><tt><association></tt></a>, and
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'topic' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'subjectIdentity' ... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.6.2 <a id="elt-subjectIdentity" name="elt-subjectIdentity"><subjectIdentity> Element</a></h3>
<div class="sect3">
<p>The <tt><subjectIdentity></tt> element specifies the subject
that is reified by a topic, via
<a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a>,
<a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>,
and/or
<a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a>
child elements.</p>
<p>When a topic has an addressable subject, the subject can be addressed
directly via a <a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a> element.
In that case, it is the resource itself which is considered the subject
of the topic, not what the resource means or indicates. There can be
only one such resource per topic.</p>
<p>Resources may also be subject <em>indicators</em>, as opposed to
subjects in and of themselves. Resources are used to indicate subjects
via <a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>
elements, of which there may be more than one per topic.</p>
<p>A topic may also indicate that it has the same subject as another
topic by addressing that topic via a <a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a> element. There may be
multiple such elements, each of which causes topic merging to occur.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-subjectIdentity"><!-- element declaration -->
<!<b>ELEMENT</b> subjectIdentity
( <a class="dref" href="#elt-resourceRef">resourceRef</a>?, ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
</pre>
<dl><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>
The optional <tt><resourceRef></tt> element
references an <a href="#def-addressable-subject"><em>addressable subject</em></a>.
</dd><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each optional and repeatable <tt><topicRef></tt>
child element references a <tt><topic></tt> element that
shares the same subject.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each optional and repeatable <tt><subjectIndicatorRef></tt>
child element references a subject indicator.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-subjectIdentity"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> subjectIdentity
id ID #IMPLIED
>
</pre>
<p>The <tt><subjectIdentity></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-subjectIdentity" id="ex-subjectIdentity">Examples</a></h4>
<div class="sect4">
<p>In Topic Map 1: Establish identity by referencing a published subject
indicator (here, the country Denmark, as defined by the TopicMaps.Org
PSIs based on ISO 3166):</p>
<pre class="markup"> <topic id="dk">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/country.xtm#dk"/>
</subjectIdentity>
</topic>
</pre>
<p>In Topic Map 2: Establish identity by referencing a more informal
ontology (here, the online version of the CIA World Factbook):</p>
<pre class="markup"> <topic id="da">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.cia.gov/cia/publications/factbook/geos/da.html"/>
</subjectIdentity>
</topic>
</pre>
<p>In Topic Map 3: Declare a topic that expresses a mapping between the
ISO and CIA ontologies and causes correct merging:</p>
<pre class="markup"> <topic id="denmark">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/country.xtm#dk"/>
<subjectIndicatorRef
xlink:href="http://www.cia.gov/cia/publications/factbook/geos/da.html"/>
</subjectIdentity>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'subjectIdentity' section --></div>
<!-- end div.sect2 syntax: topics and subjects section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: topic names ....................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.7 <a id="syn-topnames" name="syn-topnames">Topic Names</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'baseName' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.1 <a id="elt-baseName" name="elt-baseName"><baseName> Element</a></h3>
<div class="sect3">
<p>The <tt><baseName></tt> element specifies a topic name. A topic
name is represented by one string: the content of the
<tt><baseNameString></tt> child of <tt><baseName></tt>. The
context within which the assignment of a name to a topic is valid may be
expressed using a <a class="eltref" href="#elt-scope"><tt><scope></tt></a> child element. If none such is
present, the scope is unconstrained and the name is always valid. A
topic may have multiple base names in the same and/or multiple
scopes.</p>
<p>Natural language discrimination between base names may be specified
by a child <tt><scope></tt> element. (Published subjects suitable
for defining such scopes can be found in <cite>XTM Language
Topics</cite>, a topic map maintained by TopicMaps.Org that provides
published subjects for natural languages. See <a href="#coremap2">Annex
E: XTM 1.0 Core Published Subject Indicators</a>.)</p>
<p>Base names are subject to the
<a href="#def-topic-naming-constraint">topic naming constraint</a> that
two topics with the same base name in the same scope implicitly reify
the same subject and should therefore be merged.</p>
<p>Alternate forms of the topic name, optimized for computational
purposes like sorting, searching, and display, are specified by
<a class="eltref" href="#elt-variant"><tt><variant></tt></a> elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-baseName"><!-- element declaration -->
<!<b>ELEMENT</b> baseName ( <a class="dref" href="#elt-scope">scope</a>?, <a class="dref" href="#elt-baseNameString">baseNameString</a>, <a class="dref" href="#elt-variant">variant</a>* ) >
</pre>
<dl><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which this base name is valid.</dd><dt><a class="eltref" href="#elt-baseNameString"><tt><baseNameString></tt></a></dt><dd>The single mandatory <tt><baseNameString></tt> child
element provides the string that is the base name of the
topic.</dd><dt><a class="eltref" href="#elt-variant"><tt><variant></tt></a></dt><dd>The optional and repeatable <tt><variant></tt> child
element provides alternate forms of the base name.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-baseName"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> baseName
id ID #IMPLIED
>
</pre>
<p>The <tt><baseName></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a id="ex-baseName" name="ex-baseName">Examples</a></h4>
<div class="sect4">
<p>Simple example:</p>
<pre class="markup"> <topic id="shakespeare">
<baseName>
<baseNameString>William Shakespeare</baseNameString>
</baseName>
</topic>
</pre>
<p>Topic with multiple names in different languages, differentiated by
scope (assumes the existence of topics with the IDs “en” and
“da” that reify the subjects “English” and
“Danish” respectively):</p>
<pre class="markup"> <topic id="denmark">
<!-- baseName for English -->
<baseName>
<scope><topicRef xlink:href="#en"/></scope>
<baseNameString>Denmark</baseNameString>
</baseName>
<!-- baseName for Danish -->
<baseName>
<scope><topicRef xlink:href="#da"/></scope>
<baseNameString>Danmark</baseNameString>
</baseName>
</topic>
</pre>
<p>Use of scope to avoid undesired merging due to the topic naming
constraint (if the two uses of the name “Hamlet” were not
scoped in different ways, these two topics would be merged):</p>
<pre class="markup"> <topic id="hamlet">
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of
Denmark</baseNameString>
</baseName>
<baseName>
<scope><topicRef xlink:href="#play"/></scope>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
<topic id="character-hamlet">
<baseName>
<scope><topicRef xlink:href="#character"/></scope>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
</pre>
<p>Give an association type multiple names in order that associations of
this type may be labeled differently depending on which role they are
viewed from. The topic in this example has the default name
“written by” (in the unconstrained scope); however, in the
context “author” (e.g. when, in an application, what is
regarded as the “current topic” plays the role of
“author”), the string “author of” is deemed to
provide a more appropriate base name:</p>
<pre class="markup"> <topic id="written-by">
<baseName>
<baseNameString>written by</baseNameString>
</baseName>
<baseName>
<scope><topicRef xlink:href="#author"/></scope>
<baseNameString>author of</baseNameString>
</baseName>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'baseName' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'baseNameString' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.2 <a id="elt-baseNameString" name="elt-baseNameString"><baseNameString> Element</a></h3>
<div class="sect3">
<p>The <tt><baseNameString></tt> element is a string that
represents the base name of its ancestor <tt><topic></tt> parent.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-baseNameString"><!-- element declaration -->
<!<b>ELEMENT</b> baseNameString ( #PCDATA ) >
</pre>
<p>The <tt><baseNameString></tt> element contains
<tt>#PCDATA</tt>; it may only contain character data.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-baseNameString"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> baseNameString
id ID #IMPLIED
>
</pre>
<p>The <tt><baseNameString></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-baseNameString" id="ex-baseNameString">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-baseName"><baseName></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'baseNameString' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'variant' ..... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.3 <a id="elt-variant" name="elt-variant"><variant> Element</a></h3>
<div class="sect3">
<p>The <tt><variant></tt> element is an alternate form of a
topic's base name appropriate for a processing context specified by the
variant's <tt><parameters></tt> child element. Among these
contexts may be sorting and display.</p>
<p>Each <tt><variantName></tt> child element in the recursive
structure provides a single alternate form of the base name; the processing
context in which this form is considered to be appropriate is defined by the
union of all the parameters at this and higher levels of the recursive
structure. (In other words, parameters are inherited down the tree.) For a
full description, see <a href="#variant-processing">“Variant scope
processing”</a> in <cite>Annex F: XTM Processing
Requirements</cite>.</p>
<p>A variant name whose parameters include the “display” or
“sort” published subjects (see <a href="#psi-mandatory">Section
2.3.2, <cite>XTM Mandatory Published Subject Indicators</cite></a>) is
semantically equivalent to display names and sort names (respectively) as
defined in ISO 13250.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-variant"><!-- element declaration -->
<!<b>ELEMENT</b> variant ( <a class="dref" href="#elt-parameters">parameters</a>, <a class="dref" href="#elt-variantName">variantName</a>?, <a class="dref" href="#elt-variant">variant</a>* ) >
</pre>
<dl><dt><a class="eltref" href="#elt-parameters"><tt><parameters></tt></a></dt><dd>The single mandatory <tt><parameters></tt> child
element specifies an additional processing context for its parent
<tt><variant></tt> element. </dd><dt><a class="eltref" href="#elt-variantName"><tt><variantName></tt></a></dt><dd>The optional <tt><variantName></tt> child element provides an
alternate form of the base name.</dd><dt><a class="eltref" href="#elt-variant"><tt><variant></tt></a></dt><dd>Each optional and repeatable <tt><variant></tt> child element
specifies additional parameters and variant names, within the context of
the parameters declared by its parent <tt><variant></tt>
element.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-variant"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> variant
id ID #IMPLIED
>
</pre>
<p>The <tt><variant></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a id="ex-variant" name="ex-variant">Examples</a></h4>
<div class="sect4">
<p>Specify an alternate form of the base name for purposes of
sorting:</p>
<pre class="markup"> <topic id="shakespeare">
<baseName>
<baseNameString>William Shakespeare</baseNameString>
<!-- form for sorting (sort name) -->
<variant>
<parameters><topicRef xlink:href="#sort"/></parameters>
<variantName>
<resourceData>shakespeare,william</resourceData>
</variantName>
</variant>
</baseName>
</topic>
...
<topic id="sort">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#psi-sort"/>
</subjectIdentity>
</topic>
</pre>
<p>The example below shows variants of the base name
“Hamlet,” including alternate forms for visual and audible
presentation. The variant subtree for “display” illustrates
how the nesting of variants is used, and how parameters are
“accumulated” down through the structure:</p>
<pre class="markup"> <topic id="hamlet">
<baseName>
<baseNameString>Hamlet</baseNameString>
<!-- alternative forms for display (display name) -->
<variant>
<parameters><topicRef xlink:href="#display"/></parameters>
<!-- variant subtree for icon -->
<variant>
<parameters><topicRef xlink:href="#icon"/></parameters>
<!-- variant subtree for large -->
<variant>
<parameters><topicRef xlink:href="#large"/></parameters>
<variantName>
<!-- effective parameters = display + icon + large -->
<resourceRef xlink:href="img/hamlet64x64.png" />
</variantName>
</variant>
<!-- variant subtree for small -->
<variant>
<parameters><topicRef xlink:href="#small"/></parameters>
<variantName>
<!-- effective parameters = display + icon + small -->
<resourceRef xlink:href="img/hamlet16x16.png" />
</variantName>
</variant>
</variant>
<!-- variant subtree for full screen -->
<variant>
<parameters><topicRef xlink:href="#full-screen"/></parameters>
<!-- variant subtree for VGA -->
<variant>
<parameters><topicRef xlink:href="#vga"/></parameters>
<variantName>
<!-- effective parameters = display + full-screen + vga -->
<resourceRef xlink:href="img/hamlet640x480.png" />
</variantName>
</variant>
<!-- variant subtree for SVGA -->
<variant>
<parameters><topicRef xlink:href="#svga"/></parameters>
<variantName>
<!-- effective parameters = display + full-screen + svga -->
<resourceRef xlink:href="img/hamlet800x600.png" />
</variantName>
</variant>
</variant>
</variant>
<!-- alternative form for audible delivery -->
<variant>
<parameters><topicRef xlink:href="#audible"/></parameters>
<variantName>
<!-- effective parameters = audible -->
<resourceRef xlink:href="au/hamlet.au"/>
</variantName>
</variant>
</baseName>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'variant' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'variantName' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.4 <a id="elt-variantName" name="elt-variantName"><variantName> Element</a></h3>
<div class="sect3">
<p>The <tt><variantName></tt> element provides the resource to be
used as a variant of a base name. The resource may be referenced by a
<tt><a href="#elt-resourceRef"><resourceRef></a></tt> element, or
may be included directly as a <tt><a href="#elt-resourceData"><resourceData></a></tt> element.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-variant"><variant></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-variantName"><!-- element declaration -->
<!<b>ELEMENT</b> variantName ( <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-resourceData">resourceData</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The <tt><resourceRef></tt> child element references
a resource that supplies the variant name. </dd><dt><a class="eltref" href="#elt-resourceData"><tt><resourceData></tt></a></dt><dd>The <tt><resourceData></tt> child element <em>is</em> the
resource that supplies the variant name.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-variantName"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> variantName
id ID #IMPLIED
>
</pre>
<p>The <tt><variantName></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-variantName" id="ex-variantName">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-variant"><variant></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'variantName' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'parameters' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.5 <a id="elt-parameters" name="elt-parameters"><parameters> Element</a></h3>
<div class="sect3">
<p>The <tt><parameters></tt> element consists of one or more
<tt><topicRef></tt> or <tt><subjectIndicatorRef></tt>
elements. The union of the subjects corresponding to these elements
specifies an additional processing context in which variant names in the
variant's subtree are considered to be appropriate.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-variant"><variant></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-parameters"><!-- element declaration -->
<!<b>ELEMENT</b> parameters ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The repeatable <tt><topicRef></tt> child element
references a topic element that indicates the processing context of the
parent <tt><variant></tt> element.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The repeatable <tt><subjectIndicatorRef></tt> element
references a resource that indicates the processing context
of the parent <tt><variant></tt> element.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-parameters"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> parameters
id ID #IMPLIED
>
</pre>
<p>The <tt><parameters></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-parameters" id="ex-parameters">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-variant"><variant></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'parameters' section --></div>
<!-- end div.sect2 syntax: topic names section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: assoc and member section .......... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.8 <a id="syn-assoc" name="syn-assoc">Associations and Members</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'association' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.1 <a id="elt-association" name="elt-association"><association> Element</a></h3>
<div class="sect3">
<p>The <tt><association></tt> element asserts a relationship among
topics that play roles as members of the association.</p>
<p>The class to which an <tt><association></tt> belongs is
specified by an <tt><instanceOf></tt> child element. If no such
element is present, the association's class defaults to the
<a class="psiref" href="#psi-association">association published
subject</a>.</p>
<p>The context within which the assertion made by the association
is valid may be expressed using a
<a class="eltref" href="#elt-scope"><tt><scope></tt></a> child
element. If none such is present, the scope is unconstrained and the
association is always valid.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-association"><!-- element declaration -->
<!<b>ELEMENT</b> association
( <a class="dref" href="#elt-instanceOf">instanceOf</a>?, <a class="dref" href="#elt-scope">scope</a>?, <a class="dref" href="#elt-member">member</a>+ )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>The optional <tt><instanceOf></tt> child element
specifies the class to which this association belongs.</dd><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which the assertion made by the association is valid. </dd><dt><a class="eltref" href="#elt-member"><tt><member></tt></a></dt><dd>The mandatory and repeatable <tt><member></tt>
element specifies the topics that play roles in the association.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-association"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> association
id ID #IMPLIED
>
</pre>
<p>The <tt><association></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-association" id="ex-association">Examples</a></h4>
<div class="sect4">
<p>There exists an association of type “written-by” between
the topic “shakespeare” (playing the role of
“author”) and the topic “hamlet” (playing the
role of work). In other words, [the work] <cite>Hamlet</cite> was
written by [the author] Shakespeare (or [the author] Shakespeare wrote
[the work] <cite>Hamlet</cite>).</p>
<pre class="markup"> <association id="will-wrote-hamlet">
<instanceOf>
<topicRef xlink:href="#written-by"/>
</instanceOf>
<member>
<roleSpec>
<topicRef xlink:href="#author"/>
</roleSpec>
<topicRef xlink:href="#shakespeare"/>
</member>
<member>
<roleSpec>
<topicRef xlink:href="#work"/>
</roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
</pre>
<p>Reify the preceding association in order to be able to assign
characteristics to it:</p>
<pre class="markup"> <topic id="will-wrote-hamlet-topic">
<subjectIdentity>
<subjectIndicatorRef xlink:href="#will-wrote-hamlet"/>
</subjectIdentity>
<baseName>
<baseNameString>Shakespeare's authorship of
Hamlet</baseNameString>
</baseName>
<!-- occurrences may go here -->
</topic>
</pre>
<p>Declare the class-instance relationship between “hamlet”
and “play” using an association, instead of an
<tt><instanceOf></tt> element (this is semantically
equivalent to the first example given under <tt><instanceOf></tt>,
<a href="#ex-instanceOf">above</a>):</p>
<pre class="markup"> <association>
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance"/>
</instanceOf>
<member>
<roleSpec>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#class"/>
</roleSpec>
<topicRef xlink:href="#play"/>
</member>
<member>
<roleSpec>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#instance"/>
</roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
<topic id="play">
...
</topic>
<topic id="hamlet">
...
</topic>
</pre>
<!-- div.sect4 end --></div>
<!-- end div.sect3 element type 'association' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'member' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.2 <a id="elt-member" name="elt-member"><member> Element</a></h3>
<div class="sect3">
<p>The <tt><member></tt> element specifies all topics that play a
given role in an association. The <tt><roleSpec></tt> element
specifies the role played by these topics.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-member"><!-- element declaration -->
<!<b>ELEMENT</b> member
( <a class="dref" href="#elt-roleSpec">roleSpec</a>?, ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ )
>
</pre>
<dl><dt><a class="eltref" href="#elt-roleSpec"><tt><roleSpec></tt></a></dt><dd>The optional <tt><roleSpec></tt> child element
specifies the role played in this association by this member.</dd><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each repeatable <tt><topicRef></tt> child element
references a topic that plays the specified role.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>Each repeatable <tt><resourceRef></tt> child element
references a resource that plays the specified role.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each repeatable <tt><subjectIndicatorRef></tt> element
references a subject indicator for a subject that plays the
specified role.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-member"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> member
id ID #IMPLIED
>
</pre>
<p>The <tt><member></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-member" id="ex-member">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-association"><association></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'member' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'roleSpec' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.3 <a id="elt-roleSpec" name="elt-roleSpec"><roleSpec> Element</a></h3>
<div class="sect3">
<p>The <tt><roleSpec></tt> element specifies the role played by a
member in an association.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-member"><member></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-roleSpec"><!-- element declaration -->
<!<b>ELEMENT</b> roleSpec ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The <tt><topicRef></tt> child element references a
topic that reifies a role in an association.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The <tt><subjectIndicatorRef></tt> child element
references a subject indicator for a role in an association.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-roleSpec"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> roleSpec
id ID #IMPLIED
>
</pre>
<p>The <tt><roleSpec></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-roleSpec" id="ex-roleSpec">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-association"><association></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'roleSpec' section --></div>
<!-- end div.sect2 syntax: assoc and member section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: occurrences and resources ......... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.9 <a id="syn-occur" name="syn-occur">Occurrences and Resources</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'occurrence' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.1 <a id="elt-occurrence" name="elt-occurrence"><occurrence> Element</a></h3>
<div class="sect3">
<p>The <tt><occurrence></tt> element specifies a resource
supplying information relevant to a topic.</p>
<p>The class of which the occurrence is an instance is indicated via the
<tt><instanceOf></tt> child element. If no such element is
present, the occurrence type defaults to the class defined by the <a class="psiref" href="#psi-occurrence">occurrence published
subject</a>.</p>
<p>The context within which the occurrence is valid may be expressed
using a <a class="eltref" href="#elt-scope"><tt><scope></tt></a>
child element. If none such is present, the scope is unconstrained and
the occurrence is always valid.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-occurrence"><!-- element declaration -->
<!<b>ELEMENT</b> occurrence
( <a class="dref" href="#elt-instanceOf">instanceOf</a>?, <a class="dref" href="#elt-scope">scope</a>?, ( <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-resourceData">resourceData</a> ) )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>The optional <tt><instanceOf></tt> child element
specifies the class of which the topic occurrence is an instance.</dd><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which the resource is relevant to the topic.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The <tt><resourceRef></tt> child element references a
resource that is an occurrence of the topic.</dd><dt><a class="eltref" href="#elt-resourceData"><tt><resourceData></tt></a></dt><dd>The <tt><resourceData></tt> child element <em>is</em>
the resource that is an occurrence of the topic.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-occurrence"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> occurrence
id ID #IMPLIED
>
</pre>
<p>The <tt><occurrence></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-occurrence" id="ex-occurrence">Example</a></h4>
<div class="sect4">
<p>The topic whose ID is “hamlet” has an occurrence of type
“date-of-composition” whose content is the string
“1600-01”, and an occurrence of type
“xml-version” at the URL shown:</p>
<pre class="markup"> <topic id="hamlet">
<occurrence>
<instanceOf>
<topicRef xlink:href="#date-of-composition"/>
</instanceOf>
<resourceData>1600-01</resourceData>
</occurrence>
<occurrence id="hamlet-in-xml">
<instanceOf>
<topicRef xlink:href="#xml-version"/>
</instanceOf>
<resourceRef
xlink:href="<a class="dref" href="http://www.csclub.uwaterloo.ca/u/relander/XML/hamlet.xml">http://www.csclub.uwaterloo.ca/u/relander/XML/hamlet.xml</a>"/>
</occurrence>
</topic>
</pre>
<p>Reify one of the preceding occurrences in order to be able to assign
characteristics to it:</p>
<pre class="markup"> <topic id="hamlet-in-xml-topic">
<subjectIdentity>
<subjectIndicatorRef xlink:href="#hamlet-in-xml"/>
</subjectIdentity>
<baseName>
<baseNameString>Jon Bosak's XML version of
Hamlet</baseNameString>
</baseName>
<!-- occurrences may go here (e.g. commentaries
on the XML version of Hamlet)-->
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'occurrence' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'resourceRef' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.2 <a id="elt-resourceRef" name="elt-resourceRef"><resourceRef> Element</a></h3>
<div class="sect3">
<p>The <tt><resourceRef></tt> element provides a URI reference
to a resource.</p>
<p>Resources may be referenced for one of the following reasons:</p>
<ol>
<li>as occurrences of topics (in
<tt><a href="#elt-occurrence"><occurrence></a></tt>
elements)</li>
<li>as addressable subjects (in
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>, and
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
elements), and</li>
<li>as variant names of topics (in
<tt><a href="#elt-variantName"><variantName></a></tt>
elements)</li>
</ol>
<p><em>Occurs in:</em>
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>,
<tt><a href="#elt-variantName"><variantName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-resourceRef"><!-- element declaration -->
<!<b>ELEMENT</b> resourceRef EMPTY >
</pre>
<p>The <tt><resourceRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-resourceRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> resourceRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><resourceRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link.</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-resourceRef" id="ex-resourceRef">Example</a></h4>
<div class="sect4">
<p>See the
<tt><a href="#ex-variant"><variant></a></tt>,
<tt><a href="#ex-occurrence"><occurrence></a></tt>, and
<tt><a href="#ex-mergeMap"><mergeMap></a></tt>.
elements.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'resourceRef' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'resourceData' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.3 <a id="elt-resourceData" name="elt-resourceData"><resourceData> Element</a></h3>
<div class="sect3">
<p>The <tt><resourceData></tt> element contains information in the
form of character data that may be:</p>
<ol>
<li>an occurrence of a topic, or</li>
<li>a variant form of a base name</li>
</ol>
<p><em>Occurs in:</em>
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-variantName"><variantName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-resourceData"><!-- element declaration -->
<!<b>ELEMENT</b> resourceData ( #PCDATA ) >
</pre>
<p>
The <tt><resourceData></tt> element is declared
<tt>#PCDATA</tt>, meaning that it may only contain character data.
</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-resourceData"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> resourceData
id ID #IMPLIED
>
</pre>
<p>The <tt><resourceData></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-resourceData" id="ex-resourceData">Example</a></h4>
<div class="sect4">
<p>See the
<tt><a href="#ex-variant"><variant></a></tt> and
<tt><a href="#ex-occurrence"><occurrence></a>.</tt>
elements.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'resourceData' section --></div>
<!-- end div.sect2 syntax: occurrences and resources section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: merging section ................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.10 <a id="syn-merge" name="syn-merge">Merging</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'mergeMap' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.10.1 <a id="elt-mergeMap" name="elt-mergeMap"><mergeMap> Element</a></h3>
<div class="sect3">
<p>A <tt><mergeMap></tt> element references an external
<tt><topicMap></tt> element through an <tt>xlink:href</tt>
attribute containing a URI. It is a directive to merge the containing
topic map and the referenced topic map according to the rules specified
in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
<p>The children of <tt><mergeMap></tt> indicate topics that are to
be added to the scopes of all characteristics originating in the
referenced topic map. (The reason for modifying the scopes of the merged
characteristics may be to prevent topics from merging on account of the
topic naming constraint, or to distinguish between characteristics on
the basis of their topic map of origin.)</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-mergeMap"> <!<b>ELEMENT</b> mergeMap ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )* >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The optional and repeatable <tt><topicRef></tt> child
element references a topic whose subject is to be added to the
scope of all characteristics originating in the referenced topic
map.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The optional and repeatable <tt><resourceRef></tt>
child element references an addressable subject that is to be
added to the scope of all characteristics originating in the
referenced topic map.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The optional and repeatable <tt><subjectIndicatorRef></tt>
child element references a subject indicator whose subject is
to be added to the scope of all characteristics originating in
the referenced topic map.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-mergeMap"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> mergeMap
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>
The <tt><mergeMap></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link. This is a reference
to a topic map to be merged with this one at Graph creation time
</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-mergeMap" id="ex-mergeMap">Examples</a></h4>
<div class="sect4">
<p>Merge the topic map “plays.xtm” with the current topic
map, adding the topics “shakespeare” and “drama”
(in the current topic map) to the scopes of all characteristics
originating in the “plays.xtm” topic map:</p>
<pre class="markup"> <mergeMap xlink:href="http://www.shakespeare.org/plays.xtm">
<topicRef xlink:href="#shakespeare"/>
<topicRef xlink:href="#drama"/>
</mergeMap>
<topic id="shakespeare">
...
</topic>
<topic id="drama">
...
</topic>
</pre>
<p>Merge the “biography.xtm” topic map with the current
topic map, adding that resource itself (as an addressable subject) to
the scopes of all characteristics originating in the
“biography.xtm” topic map. This technique allows an author
to use a topic map <em>as a subject</em>, to scope its own topics in the
merged result:</p>
<pre class="markup"> <mergeMap xlink:href="http://www.shakespeare.org/biography.xtm">
<resourceRef
xlink:href="http://www.shakespeare.org/biography.xtm"/>
</mergeMap>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'mergeMap' section --></div>
<!-- end div.sect2 syntax: merging section --></div>
<!-- end div.sect1 : syntax documentation --></div>
<!-- ............................................................. -->
<!-- begin div.sect1 : conformance section ........................ -->
<hr align="left" class="sectdiv" width="50%">
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
4. <a id="conformance" name="conformance">Conformance</a></h1>
<div class="sect1">
<p> This section sets forth the conditions under which it can be accurately
claimed that documents and applications conform to the XTM Specification.
</p>
<p>
A document or application conforms to the XTM Specification only if all
of the following conformance criteria are satisfied:
</p>
<ol>
<li>it observes the mandatory conditions (“shall” and
“must”), and </li>
<li>for any optional conditions (“should” and
“may”) it observes, it observes them in the way
prescribed.</li>
</ol>
<p>
These conformance criteria must be applied in any program for certifying the
conformance of documents and applications to the XTM Specification,
and in the development of test suites and other instruments for measuring
and reporting the conformance of documents and applications for which such
conformance will be claimed.
</p>
<!-- ............................................................. -->
<!-- begin div.sect2 : conformance vocabulary section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.1 <a id="conf-vocab" name="conf-vocab">XTM Conformance Vocabulary</a></h2>
<div class="sect2">
<p>
Within this specification, the key words “MUST,”
“MUST NOT,” “REQUIRED,” “SHALL,”
“SHALL NOT,” “SHOULD,” “SHOULD NOT,”
“RECOMMENDED,” “MAY,” and “OPTIONAL”
are to be interpreted as described in RFC 2119 (see
<a class="xref" href="#ref_rfc2119">[RFC 2119]</a>). However, for readability,
these words do not appear in all uppercase letters in this specification.
</p>
<!-- end div.sect2 conf vocab section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : processing dependencies section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.2 <a id="conf-dep" name="conf-dep">XTM Processing Dependencies</a></h2>
<div class="sect2">
<p>XTM processing depends on <a class="xref" href="#ref_xml">[XML]</a>, <a class="xref" href="#ref_xname">[XML Names]</a>,
<a class="xref" href="#ref_xlink">[XLink]</a>,
<a class="xref" href="#ref_xbase">[XML Base]</a>, and
<a class="xref" href="#ref_rfc2396">[RFC 2396]</a>
(as updated by <a class="xref" href="#ref_rfc2732">[RFC 2732]</a>).</p>
<!-- end div.sect2 processing dependencies section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : xtm namespace section ..................... -->
<h2><a href="#conformance"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.3 <a id="xtmns" name="xtmns">The XTM Namespace</a></h2>
<div class="sect2">
<p>The URI reference used as the “namespace name”
(in the sense specified by the W3C Recommendation <cite>Namespaces in XML</cite>
<a href="#ref_xname">[XML Names]</a>) identifying this XTM specification
is:</p>
<pre class="markup"> http://www.topicmaps.org/xtm/1.0/
</pre>
<p>Applications wishing to make use of W3C namespace-aware processing
for documents conforming to this XTM specification must ensure that the
W3C namespace name is the above URI string.</p>
<p>This specification reserves use of any string which would match
<tt>(('X'|'x') ('T'|'t') ('M'|'m'))</tt> for the use of this XTM
specification and any related specifications produced by TopicMaps.Org.</p>
<!-- end div.sect2 xtm namespace section --></div>
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.4 <a id="conf-doc" name="conf-doc">XTM Document Conformance</a></h2>
<div class="sect2">
<p>
A topic map document conforms to the XTM 1.0 Specification if and
only if all of the following conditions are satisfied, in addition to those
conditions listed above in “XTM Conformance Vocabulary”:
</p>
<ul>
<li>The document is an XML document that conforms to the W3C XML 1.0
Recommendation, editions thereof, or subsequent W3C XML Recommendation,
insofar as such subsequent Recommendations or editions do not invalidate
existing XML documents that are XTM-conformant.
</li>
<li>The document contains at least one <tt><topicMap></tt> element.
</li>
<li>Each <tt><topicMap></tt> element contained in the document conforms to
the syntactic constraints imposed on <tt><topicMap></tt> elements by the
XTM 1.0 DTD specified by this Specification.
</li>
<li>
There are no elements or attributes contained in any of the
<tt><topicMap></tt> elements that are not explicitly declared by
the XTM 1.0 DTD specified by this Specification.
A <tt><topicMap></tt> element is non-conforming if it contains
elements or attributes from any other “XML Namespaces”
at any recursive level of element containment.
</li>
<li>All of the syntactic and other constraints specified by the XTM
1.0 Specification are honored in each of the <tt><topicMap></tt>
elements contained in the document. When each <tt><topicMap></tt>
element is processed as defined and described in
<a href="#processing">Annex F: XTM Processing Requirements</a>,
there must be no Reportable XTM Errors.
</li>
</ul>
<p>
XTM markup existing in an XML document outside of a
<tt><topicMap></tt> element is undefined by this specification.
</p>
<!-- end div.sect2 markup conformance section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : application conformance section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.5 <a id="conf-appl" name="conf-appl">XTM Application Conformance</a></h2>
<div class="sect2">
<p>
An XTM application is any software module that:
</p>
<ul>
<li>interprets a <tt><topicMap></tt> element,
producing a processed topic map as defined and described in
<a href="#processing">Annex F: XTM Processing Requirements</a>.
</li>
</ul>
<p>
An XTM application conforms to the XTM 1.0 Specification if
and only if all of the following conditions are satisfied:
</p>
<ul>
<li>All of the constraints specified in <a href="#processing">Annex
F: XTM Processing Requirements</a> regarding the handling of each
XTM element and attribute are honored by the XTM application.
</li>
<li>All Reportable XTM Errors are detected, and
the XTM application is capable of reporting all of them.
</li>
<li>All Merging Rules and other Rules specified in
<a href="#processing">Annex F: XTM Processing Requirements</a>
are honored by the XTM application.
</li>
</ul>
<!-- end div.sect2 application conformance section --></div>
<!-- end div.sect1 conformance section --></div>
<!-- ....................................................................... -->
<!-- ANNEXES ............................................................... -->
<!-- ............................................................. -->
<!-- begin div.sect1 : annexes ................................... -->
<hr align="left" class="sectdiv" width="90%">
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a> <a id="annexes" name="annexes">Annexes</a></h1>
<div class="sect1">
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : references annex .......................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex A: <a id="references" name="references">References</a> (Informative)</h2>
<div class="sect2">
<p>
The following are specifications that this document is derived from,
related to, dependent upon, or informed by:
</p>
<dl><dt><a name="ref_iso13250" id="ref_iso13250" class="ref">[ISO13250]</a></dt><dd>
<cite>ISO/IEC 13250:2000 Topic Maps: Information Technology --
Document Description and Markup Languages</cite>,<br>
Michel Biezunski, Martin Bryan, Steven R. Newcomb, ed., 3 Dec 1999.<br>
See: <a href="http://www.y12.doe.gov/sgml/sc34/document/0129.pdf">http://www.y12.doe.gov/sgml/sc34/document/0129.pdf</a> (PDF, 332K)
</dd><dt><a name="ref_xml" id="ref_xml" class="ref">[XML]</a></dt><dd>
<cite>Extensible Markup Language (XML) 1.0 (Second Edition)</cite>,<br>
Tim Bray, Jean Paoli, and C.M. Sperberg-McQueen, Eve Maler, editors.
World Wide Web Consortium, W3C Recommendation 6 October 2000.<br>
See <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a>.
</dd><dt><a name="ref_xlink" id="ref_xlink" class="ref">[XLink]</a></dt><dd>
<cite>XML Linking Language (XLink) Version 1.0.</cite>,<br>
Steve DeRose, Eve Maler, David Orchard, Ben Trafford, editors.
World Wide Web Consortium, W3C Candidate Recommendation 3 July 2000.<br>
See <a href="http://www.w3.org/TR/xlink">http://www.w3.org/TR/xlink</a>.
<br>
XLink processing depends on <a href="#XML">[XML]</a>, <a href="#xname">[XML Names]</a>,
<a href="#xbase">[XML Base]</a>, and <a href="#rfc2396">[IETF RFC 2396]</a>.
</dd><dt><a name="ref_xbase" id="ref_xbase" class="ref">[XML Base]</a></dt><dd>
<cite>XML Base (XBase)</cite>,<br>
Jonathan Marsh, editor.
World Wide Web Consortium, W3C Proposed Recommendation 8 September 2000.<br>
See <a href="http://www.w3.org/TR/xmlbase">http://www.w3.org/TR/xmlbase</a>.
</dd><dt><a name="ref_xname" id="ref_xname" class="ref">[XML Names]</a></dt><dd>
<cite>Namespaces in XML</cite>,<br>
Tim Bray, Dave Hollander, and Andrew Layman, editors.
Textuality, Hewlett-Packard, and Microsoft.
World Wide Web Consortium, W3C Recommendation 14 January 1999.<br>
See <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a>.
</dd><dt><a name="ref_rfc1738" id="ref_rfc1738" class="ref">[RFC 1738]</a></dt><dd>
<cite>Uniform Resource Locators (URL)</cite>,<br>
IETF (Internet Engineering Task Force) RFC 1738, December 1994.<br>
See <a href="http://www.ietf.org/rfc/rfc1738.txt">http://www.ietf.org/rfc/rfc1738.txt</a>.
</dd><dt><a name="ref_rfc2119" id="ref_rfc2119" class="ref">[RFC 2119]</a></dt><dd>
<cite>Key words for use in RFCs to Indicate Requirement Levels</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2119, S. Bradner, March 1997.<br>
See <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>.
</dd><dt><a name="ref_rfc2141" id="ref_rfc2141" class="ref">[RFC 2141]</a></dt><dd>
<cite>URN Syntax</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2141, R. Moats, May 1997.<br>
See <a href="http://www.ietf.org/rfc/rfc2141.txt">http://www.ietf.org/rfc/rfc2141.txt</a>.
</dd><dt><a name="ref_rfc2396" id="ref_rfc2396" class="ref">[RFC 2396]</a></dt><dd>
<cite>Uniform Resource Identifiers (URI): Generic Syntax</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2396, August 1998.<br>
See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.
</dd><dt><a name="ref_rfc2732" id="ref_rfc2732" class="ref">[RFC 2732]</a></dt><dd>
<cite>Format for Literal IPv6 Addresses in URL's</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2732, 1999.<br>
See <a href="http://www.ietf.org/rfc/rfc2732.txt">http://www.ics.ietf.org/rfc/rfc2732.txt</a>.
</dd></dl>
<p>
</p>
<!-- end div.sect2 references annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : conceptual model section .................. -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex B: <a id="conceptualmodel" name="conceptualmodel">XTM Conceptual Model</a> (Informative)</h2>
<div class="sect2">
<h3><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
B.0 Introduction</h3>
<div class="sect3">
<p>This annex presents the XML Topic Maps Conceptual Model. The model
uses a simple notation drawn from Unified Modeling Language UML object
modelling notation; only the aspects used in the model (and the
particular interpretations used in the model) are described here.</p>
<h4>An Explanation of the Notation used in the Conceptual Model</h4>
<div class="sect4">
<p>The notation is made up of boxes, which represent classes (kinds of
things), and connections between these boxes, which represent
relationships between those classes, or between instances of those
classes (individual things of the kinds represented by the boxes). There
are four different kinds of connections:</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-subtype.gif" width="65" height="27" alt="arrow"> <b>Line ending in hollow triangle: <em>from subtype to
type</em></b></p>
<p>This notation can be seen most clearly in the initial “Class
Hierarchy” diagram. For example, the top levels say that both
“Resource” and “Non-addressable Subject” are
subtypes of “Subject”. One level lower, “String”
is stated to be a subtype of “Resource”. Where a type has
more than one subtype, they are gathered together using a horizontal
line — this does not provide any connection between the subtypes (e.g.
the only relationship asserted here between “String” and
“Topic” is that they are both, separately, subtypes of
“Resource”.</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-nav.gif" width="65" height="27" alt="arrow"> <b>Line optionally ending in line arrowhead: <em>named
relationship</em></b></p>
<p>This can be seen in the diagram “A topic reifies a
subject”: the line between “Topic” and
“Subject” states that the named relationship
“reifies” holds between zero or more Topics (“zero or
more” is denoted by 0..*) and one Subject.</p>
<p>If there is an arrowhead, then this denotes that the relationship is
traversible in one direction only. In this case, what is being said is
that given a Topic, you can find out what Subject it reifies ... but
given just a Subject, e.g. the character named “Hamlet”,
there is no guarantee that you can find any Topic reifying it.</p>
<p>If there is no arrowhead, this denotes that there is no
directionality to the relationship. This means it is possible to pass
from either end to the other.</p>
<p>A further variation on this notation is that the ends of the
connecting lines can be labeled. This can be seen in the diagram
“Base name within scope”: the label
“+baseNameString” next to “String” states that
it is a “String” that serves as a baseNameString relative to
the “Base Name”.</p>
<p>Finally, the connection itself may be labeled with a name between
double angle brackets, indicating the nature of the relationship (e.g.
<<REIFIES>>).</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-owner.gif" width="65" height="27" alt="arrow"> <b>Line ending in black diamond: <em>strict dependency, commonly
called ownership</em></b></p>
<p>This can be seen in the diagram “Base Name Within Scope”:
the relationship of “Base Name” to “Topic” is
such that it makes no sense to call anything a base name otherwise than
as a base name of a topic.</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-agg.gif" width="65" height="27" alt="arrow">
<b>Line ending in open diamond: <em>a set</em></b></p>
<p>This can be seen in the diagram “Topic Characteristics are
assigned within Scopes”: the relationship of “Topic”
to “Scope” is that a Scope is a set of one of more
Topics.</p>
<p>In this Annex, the names of classes are capitalized, as: <span class="o">Class</span>.</p>
<!-- end div.sect4 explanation --></div>
<!-- end div.sect3 introduction --></div>
<!-- ....................................................... -->
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.1 Class Hierarchy</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b1" name="fig-b1" href="http://www.topicmaps.org/xtm/1.0/fig-b1.html"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-ch-small.gif" longdesc="xtm1-wai.html#fig-b1" border="0" width="500" height="244" alt="Figure B-1: Class Hierarchy (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b1"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-1: Class Hierarchy (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>A <span class="o">Subject</span> is anything that can be spoken about or conceived of by
a human being. A <span class="o">Resource</span> is a <span class="o">Subject</span>
that has identity within the bounds of a computer system. Any other
<span class="o">Subject</span> is known as a <span class="o">Non-addressable Subject</span>.
There are many types of <span class="o">Non-addressable Subject</span>.
A <span class="o">Class</span> is a <span class="o">Non-addressable Subject</span>. Types of
<span class="o">Resource</span> include <span class="o">String</span>, <span class="o">XML
Element</span>, and <span class="o">XML Attribute</span>, as well as <span class="o">Topic
Map</span>, <span class="o">Topic Map Node</span> and <span class="o">Topic Characteristic</span>,
and many others.
Types of <span class="o">XML Element</span> include <span class="o"><tt><topic></tt>
Element</span> and <span class="o"><tt><association></tt> Element</span>, and many others.
There are just three types of <span class="o">Topic Map Node</span>:
<span class="o">Topic</span>, <span class="o">Association</span>, and <span class="o">Scope</span>.
There are just three types of <span class="o">Topic Characteristic</span>:
<span class="o">Base Name</span>, <span class="o">Occurrence</span>, and
<span class="o">Role</span>.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.2 Class-Instance Relationship</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b2" name="fig-b2">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-cir.gif" longdesc="xtm1-wai.html#fig-b2" border="0" width="360" height="84" alt="Figure B-2: Class-Instance Relationship (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b2"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-2: Class-Instance Relationship (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Subject</span> may be an instance of zero or more <span class="o">Classes</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.3 A Topic Reifies a Subject</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b3" name="fig-b3">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-trs.gif" longdesc="xtm1-wai.html#fig-b3" border="0" width="360" height="148" alt="Figure B-3: A Topic Reifies a Subject (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b3"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-3: A Topic Reifies a Subject (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>A <span class="o">Topic</span> is a <span class="o">Resource</span> that reifies a
<span class="o">Subject</span>. It is the Topic Map system's representation of the
<span class="o">Subject</span>. Reification of a <span class="o">Subject</span> allows
<span class="o">Topic Characteristics</span> to be assigned to the <span class="o">Topic</span> that reifies it.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.4 Referencing the Subject</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b4" name="fig-b4">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-rts.gif" longdesc="xtm1-wai.html#fig-b4" border="0" width="490" height="312" alt="Figure B-4: Referencing the Subject (class diagram)"></a>
<!-- <a class="dlink" href="xtm1-wai.html#fig-b4"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-4: Referencing the Subject (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Topic</span> can have any number of <span class="o">Subject Indicators</span>.
A <span class="o">Subject Indicator</span> is a <span class="o">Resource</span> that indicates
what <span class="o">Subject</span> is reified by the <span class="o">Topic</span>. If the
<span class="o">Subject</span> is itself a <span class="o">Resource</span>, there can be a
direct reference from the <span class="o">Topic</span> to that <span class="o">Resource</span>
in addition to any references there may be to <span class="o">Subject Indicators</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.5 Topic Characteristics Are Assigned Within Scopes</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b5" name="fig-b5">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-tcaws.gif" longdesc="xtm1-wai.html#fig-b5" border="0" width="476" height="136" alt="Figure B-5: Topic Characteristics Are Assigned Within Scopes (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b5"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-5: Topic Characteristics Are Assigned Within Scopes (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Scope</span> is set of <span class="o">Topics</span> that defines the extent
of the validity of the assignment of a <span class="o">Topic Characteristic</span> to a
<span class="o">Topic</span>. If no <span class="o">Scope</span> is specified, the
<span class="o">Scope</span> is deemed to be the unconstrained <span class="o">Scope</span>,
and the assignment is always valid.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.6 Base Name Within Scope</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b6" name="fig-b6">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-bnws.gif" longdesc="xtm1-wai.html#fig-b6" border="0" width="494" height="148" alt="Figure B-6: Base Name Within Scope (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b6"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-6: Base Name Within Scope (class diagram)</td>
</tr>
</tbody></table>
</div>
<p> A <span class="o">Base Name</span> is a <span class="o">String</span> that is used to name a <span class="o">Topic</span> within a <span class="o">Scope</span>. Only one
<span class="o">Topic</span> may be assigned a particular <span class="o">Base Name</span> within a given <span class="o">Scope</span>.
The set of <span class="o">Base Names</span> assigned within a given
<span class="o">Scope</span> thus constitutes a namespace, and may be
used to identify <span class="o">Topics</span> unambiguously.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.7 Occurrence</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b7" name="fig-b7">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-o.gif" longdesc="xtm1-wai.html#fig-b7" border="0" width="494" height="148" alt="Figure B-7: Occurrence (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b7"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-7: Occurrence (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
An <span class="o">Occurrence</span> designates a <span class="o">Resource</span> that relates
to a <span class="o">Topic</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.8 Association Between Topics</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b8" name="fig-b8">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-abt.gif" longdesc="xtm1-wai.html#fig-b8" border="0" width="500" height="216" alt="Figure B-8: Association Between Topics (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b8"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-8: Association Between Topics (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>An <span class="o">Association</span> relates <span class="o">Topics</span> to one another. It comprises one or more <span class="o">Roles</span>, each of which corresponds to a <span class="o">Topic</span> that specifies a type of involvement that <span class="o">Topics</span> may have in the <span class="o">Association</span>. Each <span class="o">Role</span> is
assigned to zero or more <span class="o">Topics</span> that are involved
in the <span class="o">Association</span> in the way specified. These
<span class="o">Topics</span> are said to be players of that <span class="o">Role</span> in the <span class="o">Association</span>.</p>
<p class="note">NOTE: In XTM, it is not permissible for the different
<span class="o">Roles</span> in an <span class="o">Association</span> to
be governed by different <span class="o">Scopes</span>. The XTM syntax
expresses the <span class="o">Scopes</span> on all the <span class="o">Roles</span> of an <span class="o">Association</span> through
a single <tt><scope></tt> subelement of the
<tt><association></tt> element.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.9 Topic Map</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b9" name="fig-b9">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-tm.gif" longdesc="xtm1-wai.html#fig-b9" border="0" width="500" height="152" alt="Figure B-9: Topic Map (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b9"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-9: Topic Map (class diagram)</td>
</tr>
</tbody></table>
</div>
<p> A <span class="o">Topic Map</span> comprises zero or more <span class="o">Topic Map Nodes</span> (<span class="o">Topics</span>, <span class="o">Scopes</span>, and <span class="o">Associations</span>). It is
possible for more than one <span class="o">Topic</span> in the <span class="o">Topic Map</span> to reify the same <span class="o">Subject</span>. If no <span class="o">Subject</span> is
reified by more than one <span class="o">Topic</span> in the <span class="o">Topic Map</span>, then the <span class="o">Topic Map</span> is
said to be a <span class="o">Consistent Topic Map</span>.
</p>
<!-- end of div.sect3 --></div>
<!-- end div.sect2 conceptual model section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : conceptual model mapping section .......... -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex C: <a id="mapping" name="mapping">XTM Conceptual Model to Interchange Syntax Mapping</a> (Informative)</h2>
<div class="sect2">
<p>The XTM Conceptual Model and its Interchange Syntax do not map to one
another directly through a one-to-one correspondence between syntactic
constructs and objects in the Conceptual Model. There are several ways
in which objects described by the Conceptual Model may relate to
constructs in the XTM Interchange Syntax:</p>
<ul>
<li>In some cases, a syntactic construct <em>IS</em> the object described
by the model.</li>
<li>In some cases, a syntactic construct <em>REFERENCES</em> the object
described by the model through the conventions of URI syntax.</li>
<li>In some cases, a syntactic construct <em>REPRESENTS</em> the object
described by the model.</li>
<li>In some cases, the object described has no direct correspondence in
the syntax at all, but instead is <em>INDICATED</em> by the human-readable
content of a Resource.</li>
</ul>
<p>The ways in which the constructs in the Interchange Syntax relate to
the objects in the Conceptual Model are specified in the prose
descriptions of the syntactic constructs in <a href="#syntax">Section 3,
<cite>XTM Syntax Documentation</cite></a>. A more formal specification
of these relationships is under development and will be published in a
subsequent document from TopicMaps.Org.</p>
<!-- end div.sect2 conceptual model mapping section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : XTM DTD annex ............................. -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex D: <a id="dtd" name="dtd">XTM 1.0 Document Type Declaration</a> (Normative)</h2>
<div class="sect2">
<p class="note"><b>Note:</b>
In the online version of this DTD, the element type name of each element
declaration links to documentation in this specification. Element type
names in content models link to their respective declarations in the DTD.
</p>
<pre class="markup"><!-- begin dtd -->
<!-- ............................................................. -->
<!-- XML Topic Map DTD .......................................... -->
<!-- file: xtm1.dtd
-->
<!-- XML Topic Map (XTM) DTD, Version 1.0
This is XTM, an XML interchange syntax for ISO 13250 Topic Maps.
XML Topic Map (XTM)
Copyright 2000-2001 TopicMaps.Org, All Rights Reserved.
Permission to use, copy, modify and distribute the XTM DTD and its
accompanying materials for any purpose and without fee is hereby
granted in perpetuity, provided that the above copyright notice and
this paragraph appear in all copies. The copyright holders make no
representation about the suitability of the DTD for any purpose. It
is provided "as is" without expressed or implied warranty.
Editors: Steve Pepper <pepper@ontopia.net>
Graham Moore <gdm@empolis.co.uk>
Authors: Murray Altheim <altheim@eng.sun.com>
Michel Biezunski <mb@infoloom.com>
Sam Hunting <shunting@etopicality.com>
Steven R. Newcomb <srn@coolheads.com>
Status: Release
Version: v1.0.1
Revision: $Id: xtm1.dtd,v 1.2 2001/02/08 16:03:12 pepper Exp $
PublicId: "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
Revisions:
#2001-01-21: removed baseName from <a href="#dtd-occurrence">occurrence</a>
#2001-02-02: made variantName optional in <a href="#dtd-variant">variant</a>
#2001-02-02: changed ID to #IMPLIED on <a href="#dtd-association">association</a>
#2001-02-02: changed ID to #IMPLIED on <a href="#dtd-resourceData">resourceData</a>
#2001-02-02: changed PLUS to REP on <a href="#dtd-member">member</a>
-->
<!-- Use this URI to identify the default XTM namespace:
"http://www.topicMaps.org/xtm/1.0/"
Used to identify the XLink namespace:
"http://www.w3.org/1999/xlink"
-->
<!-- topicMap: Topic Map document element ........................ -->
<!<b>ELEMENT</b> <a href="#elt-topicMap" id="dtd-topicMap" name="dtd-topicMap">topicMap</a>
( <a href="#dtd-topic">topic</a> | <a href="#dtd-association">association</a> | <a href="#dtd-mergeMap">mergeMap</a> )*
>
<!<b>ATTLIST</b> <a id="attl-topicMap" name="attl-topicMap">topicMap</a>
id ID #IMPLIED
xmlns CDATA #FIXED 'http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
<!-- topic: Topic element ........................................ -->
<!<b>ELEMENT</b> <a href="#elt-topic" id="dtd-topic" name="dtd-topic">topic</a>
( <a href="#dtd-instanceOf">instanceOf</a>*, <a href="#dtd-subjectIdentity">subjectIdentity</a>?, ( <a href="#dtd-baseName">baseName</a> | <a href="#dtd-occurrence">occurrence</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-topic" name="attl-topic">topic</a>
id ID #REQUIRED
>
<!-- instanceOf: Points To a Topic representing a class .......... -->
<!<b>ELEMENT</b> <a href="#elt-instanceOf" id="dtd-instanceOf" name="dtd-instanceOf">instanceOf</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> ) >
<!<b>ATTLIST</b> <a id="attl-instanceOf" name="attl-instanceOf">instanceOf</a>
id ID #IMPLIED
>
<!-- subjectIdentity: Subject reified by Topic ................... -->
<!<b>ELEMENT</b> <a href="#elt-subjectIdentity" id="dtd-subjectIdentity" name="dtd-subjectIdentity">subjectIdentity</a>
( <a href="#dtd-resourceRef">resourceRef</a>?, ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-subjectIdentity" name="attl-subjectIdentity">subjectIdentity</a>
id ID #IMPLIED
>
<!-- topicRef: Reference to a Topic element ...................... -->
<!<b>ELEMENT</b> <a href="#elt-topicRef" id="dtd-topicRef" name="dtd-topicRef">topicRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-topicRef" name="attl-topicRef">topicRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- subjectIndicatorRef: Reference to a Subject Indicator ....... -->
<!<b>ELEMENT</b> <a href="#elt-subjectIndicatorRef" id="dtd-subjectIndicatorRef" name="dtd-subjectIndicatorRef">subjectIndicatorRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-subjectIndicatorRef" name="attl-subjectIndicatorRef">subjectIndicatorRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- baseName: Base Name of a Topic .............................. -->
<!<b>ELEMENT</b> <a href="#elt-baseName" id="dtd-baseName" name="dtd-baseName">baseName</a> ( <a href="#dtd-scope">scope</a>?, <a href="#dtd-baseNameString">baseNameString</a>, <a href="#dtd-variant">variant</a>* ) >
<!<b>ATTLIST</b> <a id="attl-baseName" name="attl-baseName">baseName</a>
id ID #IMPLIED
>
<!-- baseNameString: Base Name String container .................. -->
<!<b>ELEMENT</b> <a href="#elt-baseNameString" id="dtd-baseNameString" name="dtd-baseNameString">baseNameString</a> ( #PCDATA ) >
<!<b>ATTLIST</b> <a id="attl-baseNameString" name="attl-baseNameString">baseNameString</a>
id ID #IMPLIED
>
<!-- variant: Alternate forms of Base Name ....................... -->
<!<b>ELEMENT</b> <a href="#elt-variant" id="dtd-variant" name="dtd-variant">variant</a> ( <a href="#dtd-parameters">parameters</a>, <a href="#dtd-variantName">variantName</a>?, <a href="#dtd-variant">variant</a>* ) >
<!<b>ATTLIST</b> <a id="attl-variant" name="attl-variant">variant</a>
id ID #IMPLIED
>
<!-- variantName: Container for Variant Name ..................... -->
<!<b>ELEMENT</b> <a href="#elt-variantName" id="dtd-variantName" name="dtd-variantName">variantName</a> ( <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-resourceData">resourceData</a> ) >
<!<b>ATTLIST</b> <a id="attl-variantName" name="attl-variantName">variantName</a>
id ID #IMPLIED
>
<!-- parameters: Processing context for Variant .................. -->
<!<b>ELEMENT</b> <a href="#elt-parameters" id="dtd-parameters" name="dtd-parameters">parameters</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
<!<b>ATTLIST</b> <a id="attl-parameters" name="attl-parameters">parameters</a>
id ID #IMPLIED
>
<!-- occurrence: Resources regarded as an Occurrence ............. -->
<!<b>ELEMENT</b> <a href="#elt-occurrence" id="dtd-occurrence" name="dtd-occurrence">occurrence</a>
( <a href="#dtd-instanceOf">instanceOf</a>?, <a href="#dtd-scope">scope</a>?, ( <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-resourceData">resourceData</a> ) )
>
<!<b>ATTLIST</b> <a id="attl-occurrence" name="attl-occurrence">occurrence</a>
id ID #IMPLIED
>
<!-- resourceRef: Reference to a Resource ........................ -->
<!<b>ELEMENT</b> <a href="#elt-resourceRef" id="dtd-resourceRef" name="dtd-resourceRef">resourceRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-resourceRef" name="attl-resourceRef">resourceRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- resourceData: Container for Resource Data ................... -->
<!<b>ELEMENT</b> <a href="#elt-resourceData" id="dtd-resourceData" name="dtd-resourceData">resourceData</a> ( #PCDATA ) >
<!<b>ATTLIST</b> <a id="attl-resourceData" name="attl-resourceData">resourceData</a>
id ID #IMPLIED
>
<!-- association: Topic Association ............................. -->
<!<b>ELEMENT</b> <a href="#elt-association" id="dtd-association" name="dtd-association">association</a>
( <a href="#dtd-instanceOf">instanceOf</a>?, <a href="#dtd-scope">scope</a>?, <a href="#dtd-member">member</a>+ )
>
<!<b>ATTLIST</b> <a id="attl-association" name="attl-association">association</a>
id ID #IMPLIED
>
<!-- member: Member in Topic Association ......................... -->
<!<b>ELEMENT</b> <a href="#elt-member" id="dtd-member" name="dtd-member">member</a>
( <a href="#dtd-roleSpec">roleSpec</a>?, ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-member" name="attl-member">member</a>
id ID #IMPLIED
>
<!-- roleSpec: Points to a Topic serving as an Association Role .. -->
<!<b>ELEMENT</b> <a href="#elt-roleSpec" id="dtd-roleSpec" name="dtd-roleSpec">roleSpec</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> ) >
<!<b>ATTLIST</b> <a id="attl-roleSpec" name="attl-roleSpec">roleSpec</a>
id ID #IMPLIED
>
<!-- scope: Reference to Topic(s) that comprise the Scope ........ -->
<!<b>ELEMENT</b> <a href="#elt-scope" id="dtd-scope" name="dtd-scope">scope</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
<!<b>ATTLIST</b> <a id="attl-scope" name="attl-scope">scope</a>
id ID #IMPLIED
>
<!-- mergeMap: Merge with another Topic Map ...................... -->
<!<b>ELEMENT</b> <a href="#elt-mergeMap" id="dtd-mergeMap" name="dtd-mergeMap">mergeMap</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* >
<!<b>ATTLIST</b> <a id="attl-mergeMap" name="attl-mergeMap">mergeMap</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- end of XML Topic Map (XTM) 1.0 DTD -->
</pre><!-- end dtd -->
<!-- end div.sect2 XTM DTD annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 XTM Core Published Subject Indicators annex . -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex E: <a id="coremap" name="coremap">XTM 1.0 Core Published Subject Indicators</a> (Normative)</h2>
<div class="sect2">
<p class="note"><b>Note:</b>
In the online version of this topic map, the unique identifier (“id”) of
each topic or association element links to documentation in this specification.
</p>
<pre class="markup"><!-- begin core.xtm -->
<?xml version="1.0"?>
<!DOCTYPE topicMap PUBLIC "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
"xtm1.dtd">
<topicMap id="xtm1.0-psi-core"
xmlns="http://www.topicmaps.org/xtm/1.0/"
xml:base="http://www.topicmaps.org/xtm/1.0/">
<!--
XTM 1.0 Core Published Subject Indicators (PSIs)
XML Topic Map (XTM)
Copyright 2000-2001 TopicMaps.Org, All Rights Reserved.
Permission to use this document for any purpose and without
fee is hereby granted to the public in perpetuity, provided
that the above copyright notice and this paragraph appear in
all copies. The copyright holders make no representation as
to its suitability for any purpose. It is provided "as is"
and without expressed or implied warranty.
Editors: Steve Pepper <pepper@ontopia.net>
Graham Moore <gdm@empolis.co.uk>
Status: Final
Version: v1.0
Revision: $Id: core.xtm,v 1.3 2001/02/21 21:27:27 pepper Exp $
PublicId:
"-//TopicMaps.Org//DOCUMENT XTM 1.0 Core Published Subject Indicators//EN"
Revisions:
#2000-12-03: added comments from XTM 1.0 Core
#2001-02-01: major revision to align with Paris decisions
#2001-02-01: turned descriptions into occurrences and subject indicators
-->
<!-- XTM Published Subject Indicators
The topic elements in this document are designed to serve as
published subject indicators for topics declared in other topic
maps whose subjects are the same as the subjects of these topic
elements.
In the referencing topic maps, the addresses used to refer to
these topic elements must use the unique identifiers (i.e. the
"URI" values indicated within the occurrences) of these elements,
because their unique identifiers are permanent; their relative
positions in the document are not necessarily permanent.
Addressing may use indirection via a topic element.
TopicMaps.Org reserves the right to enhance the usefulness of
these published subject indicators, and to provide additional
published subject indicators, but only in ways that will not
negatively impact the value or usefulness of any existing
conforming topic map documents.
The subjects of these published subject indicators are described
in the XTM 1.0 Specification as "mandatory," that is, conforming
applications must be capable of supporting the use of these
subjects as described in the XTM 1.0 Specification.
The subject indicators referenced by these topic elements are the
portions of the XTM 1.0 Specification that provide their
normative descriptions. Other topic maps should normally use
these topic elements as the identity points of these subjects,
rather than the subject indicators that they themselves
reference. These topic elements may be edited, at some future
date, in such a way as to provide additional subject indicators
that will refer to any portions of future versions of the XTM
Specification that describe the same subject.
-->
<!-- begin: XTM core concepts -->
<topic id="<a href="#psi-topic">topic</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-topic"/>
<subjectIndicatorRef xlink:href="#psi-topic-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>topic</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-topic-description">
Topic: The core concept of topic; the generic class to
which all topics belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#topic
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-association">association</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-association"/>
<subjectIndicatorRef xlink:href="#psi-association-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>association</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-association-description">
Association: The core concept of association; the generic class
to which all associations belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#association
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-occurrence">occurrence</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-occurrence"/>
<subjectIndicatorRef xlink:href="#psi-occurrence-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>occurrence</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-occurrence-description">
Occurrence: The core concept of occurrence; the generic class
to which all occurrences belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence
</resourceData>
</occurrence>
</topic>
<!-- end: XTM core concepts -->
<!-- begin: the class-instance relationship -->
<topic id="<a href="#psi-class-instance">class-instance</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-class-instance"/>
<subjectIndicatorRef xlink:href="#psi-class-instance-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>class-instance relationship</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-class-instance-description">
Class-instance relationship: The core concept of class-instance;
the class of association that represents class-instance
relationships between topics, and that is semantically
equivalent to the use of &lt;instanceOf&gt; subelements.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-class">class</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-class"/>
<subjectIndicatorRef xlink:href="#psi-class-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>class</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-class-description">
Class: The core concept of class; the role of class as played
by one of the members of a class-instance association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#class
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-instance">instance</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-instance"/>
<subjectIndicatorRef xlink:href="#psi-instance-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>instance</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-instance-description">
Instance: The core concept of instance; the role of instance as
played by one of the members of a class-instance association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#instance
</resourceData>
</occurrence>
</topic>
<!-- end: the class-instance relationship -->
<!-- begin: the superclass-subclass relationship -->
<topic id="<a href="#psi-superclass-subclass">superclass-subclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-superclass-subclass"/>
<subjectIndicatorRef xlink:href="#psi-superclass-subclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>superclass-subclass relationship</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-superclass-subclass-description">
Superclass-subclass relationship: The core concept of
superclass-subclass; the class of association that represents
superclass-subclass relationships between topics.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#superclass-subclass
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-superclass">superclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-superclass"/>
<subjectIndicatorRef xlink:href="#psi-superclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>superclass</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-superclass-description">
Superclass: The core concept of superclass; the role of superclass
as played by one of the members of a superclass-subclass association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#superclass
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-subclass">subclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-subclass"/>
<subjectIndicatorRef xlink:href="#psi-subclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>subclass</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-subclass-description">
Subclass: The core concept of subclass; the role of subclass as
played by one of the members of a superclass-subclass association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#subclass
</resourceData>
</occurrence>
</topic>
<!-- end: the superclass-subclass relationship -->
<!-- begin: variant name parameter concepts -->
<topic id="<a href="#psi-sort">sort</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-sort"/>
<subjectIndicatorRef xlink:href="#psi-sort-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>suitability for sorting</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-sort-description">
Suitability for sorting: Suitability of a topic name for
use as a sort key; for use in the parameters of variant names.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#sort
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-display">display</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-display"/>
<subjectIndicatorRef xlink:href="#psi-display-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>suitability for display</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-display-description">
Suitability for display: Suitability of a topic name for
display; for use in the parameters of variant names.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#display
</resourceData>
</occurrence>
</topic>
<!-- end: variant name parameter concepts -->
<!-- end of XTM 1.0 Core Published Subject Indicators (PSIs) -->
</topicMap>
</pre><!-- end psi1.xtm -->
<p><a id="coremap2" name="coremap2">In addition to the <cite>XTM 1.0 Core
Published Subject Indicators</cite> topic map shown above, XTM topic
maps for natural language and country (e.g. for use in topic map
internationalization), are provided below:</a></p>
<ul>
<li><a href="http://www.topicmaps.org/xtm/1.0/core.xtm">XTM 1.0 Core Published Subject Indicators</a> (core.xtm)</li>
<li><a href="http://www.topicmaps.org/xtm/1.0/language.xtm">XTM Language Topics</a> (language.xtm)</li>
<li><a href="http://www.topicmaps.org/xtm/1.0/country.xtm">XTM Country Topics</a> (country.xtm)</li>
</ul>
<p>
</p>
<!-- end div.sect2 XTM 1.0 Core Published Subject Indicators annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : processing requirements annex ............. -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex F: <a id="processing" name="processing">XTM Processing Requirements</a> (Informative)</h2>
<div class="sect2">
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.1" name="F.1">F.1 Introduction</a></h2>
<div class="sect3">
<p>This annex describes the minimal requirements for a conformant XTM
processor. At a minimum an XTM processor is required to be capable of
processing one or more topic map documents into an internal model which
represents the topic map information contained in those documents in
such a manner that a <em>consistent topic map</em> is accessible by
clients of the processor.</p>
<p>The XTM processing requirements are stated in terms of:</p>
<ul>
<li>Equality principles</li>
<li>Equivalence principles</li>
<li>Variant operations</li>
<li>Merge operations</li>
<li>Duplicate suppression</li>
</ul>
<!-- end div.sect3 intro --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.2" name="F.2">F.2 Equality principles</a></h2>
<div class="sect3">
<p>The following equality statements define the rules by which a
conformant XTM processor is required to determine the equality of topic
map constructs.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.1 String equality principle</h3>
<p>A conformant XTM processor is required to be capable of comparing two
strings for equality. Before any comparison occurs, a compliant XTM
processor must transcode all strings into Unicode/ISO 10646. Given this
transcoding, two strings are considered equal if they are encoded as
identical sequences of scalar values. A conformant XTM processor
application may apply additional algorithms for determining string
equality.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.2 URI equality principle</h3>
<p>A conformant XTM processor must consider two URIs to be equal if they
are found to be equal using the rules defined for the appropriate URI
scheme.</p>
<p>Section 6 of RFC 2396 provides the general definition of how 2 URIs
are deemed to be equal. Below is a set of references to URI schemes that
a conformant XTM processor must support:</p>
<ul>
<li>http (RFC 1738 section 3.3)</li>
<li>ftp (RFC 1738 section section 3.2)</li>
<li>https (RFC 1738 section 3.3)</li>
<li>file (RFC 1738 section 3.10)</li>
<li>urn (RFC 2141),
<ul>
<li>A conformant XTM processor must decide URN equality based on the URI
equivalence rules as defined in RFC 2396 section 6.</li>
<li>A conformant XTM processor may decide URN equality based on the
definitions in particular URN scheme documentation.</li>
</ul>
</li>
</ul>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.3 Scope equality principle</h3>
<p>In a consistent topic map a conformant XTM processor must consider
two scopes equal if they contain the same set of topics.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.4 Association equality principle</h3>
<p>A conformant XTM processor must considrer two associations to be
equal if the following are true:</p>
<ol>
<li>The associations are comprised of the same set of roles.</li>
<li>The set of topics playing each role in the associations are
equal.</li>
<li>The associations are instances of the same class.</li>
<li>The scopes of the associations are equal as defined by the scope
equality principle.</li>
</ol>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.5 Topic Name equality principle</h3>
<p>Two base names are considered equal if the following are true:</p>
<ol>
<li>The string values of the base names are equal as defined by the
string equality principle.</li>
<li>The scopes in which the base names occur are equal as defined by the
scope equality principle.</li>
</ol>
<p>Variant Names are ignored when deciding if two names are equal.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.6 Topic Occurrence equality principle</h3>
<p>Two topic occurrences are considered equal if the following are true:</p>
<ol>
<li><p>In the case of <tt><resourceRef></tt> elements, the URIs
used to address the occurrences are equivalent as defined by the URI
equality principle; or</p>
<p>In the case of <tt><resourceData></tt> elements, the resource
data values that are the occurrences are equal. (Before any comparison
of values occurs, an XTM processor must transcode all strings into
Unicode/ISO 10646. Given this, two resource data values are considered
equal if they are encoded as identical sequences of scalar
values.)</p></li>
<li>The occurrences are of the same class.</li>
<li>The scopes of the occurrences are equal as defined by the scope
equality principle.</li>
</ol>
<!-- end div.sect3 equality principles --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.3" name="F.3">F.3 Equivalence principles</a></h2>
<div class="sect3">
<p>Equivalence principles state the different ways in which the same
topic map nodes may be conveyed by different syntactic representations.
A conformant XTM processor is required to recognise all equivalent
syntactic representations of topic map constructs, as listed in this
section and process them in such a way that in the processed topic map
it is undetectable which syntactic representations were used.</p>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.1 Equivalence of <subjectIndicatorRef> and <topicRef></h3>
<p>A <tt><subjectIndicatorRef></tt> element which references topic
<var>A</var> may be equivalently expressed by a
<tt><topicRef></tt> element which also references topic
<var>A</var>.</p>
<p>A <tt><subjectIndicatorRef></tt> element that references a
resource other than a topic may be equivalently expressed by a
<tt><topicRef></tt> element that refers to a topic which regards
the resource as a subject indicator.</p>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.2 Equivalence of <instanceOf> and <association></h3>
<p>An <tt><instanceOf></tt> element expresses a relationship
between the <tt><topic></tt>, <var>T</var>, referenced from
the child element of the <tt><instanceOf></tt> element and the
<tt><topic></tt>, <tt><association></tt> or
<tt><occurrence></tt> which is the parent element of the
<tt><instanceOf></tt> element.</p>
<p>This relationship may be equivalently expressed by an
<tt><association></tt> that is an instance of the published
subject “class-instance” and which has two roles in the
unconstrained scope — the “class” role and the
“instance” role. The player of the “class” role
is the topic <var>T</var>. If the parent element of
<tt><instanceOf></tt> is a <tt><topic></tt> element then the
player of the “instance” role is the topic represented by
that <tt><topic></tt> element. If the parent element of
<tt><instanceOf></tt> is not a <tt><topic></tt> element,
then the player of the “instance” role is a topic which
reifies the association or occurrence represented by that parent
element.</p>
<p>If an <tt><association></tt> is used to express a
“class-instance” relationship it is a reportable XTM Error
if any of the following are true:</p>
<ol>
<li>The “class” role is played by a topic with an
addressable subject.</li>
<li>Either the “class” or “instance” roles are
not roles of the association.</li>
<li>Roles other than the “class” and “instance”
roles are part of the association.</li>
</ol>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.3 Equivalence of Multiple <member>s of the Same Role</h3>
<p>An association containing multiple members, <var>M1</var> and
<var>M2</var> of the same role <var>R</var> may be equivalently defined
by an association containing a single member <var>M3</var> of role
<var>R</var> whose set of players is the union of the sets of players of
role <var>R</var> in members <var>M1</var> and <var>M2</var>.
</p>
<!-- end div.sect3 equivalence principles --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.4" name="F.4">F.4 Variant Operations</a></h2>
<div class="sect3">
<h3><a href="#F.4"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
<a name="variant-processing" id="variant-processing">F.4.1 Variant
scope processing</a></h3>
<p>The processing context of a variant name defined by a
<tt><variant></tt> element is defined as the union of the
parameters of the <tt><variant></tt> element and all of its
ancestor <tt><variant></tt> elements.</p>
<p>Thus a variant name with a set of parameters is equivalent to having
the same set of parameters on a parent variant and having no additional
parameters itself.</p>
<!-- end div.sect3 varaint operations --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.5" name="F.5">F.5 Merge operations</a></h2>
<div class="sect3">
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.1 Topic merge operation</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>Two topics, <var>A</var> and <var>B</var> are to be merged.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>A single topic <var>M</var> exists.</li>
<li>The set of name characteristics of <var>M</var> is equal to the
union of the set of name characteristics of <var>A</var> and
<var>B</var>.</li>
<li>The set of subject indicators of <var>M</var> is equal to the union
of the set of subject indicators of <var>A</var> and <var>B</var>.</li>
<li>The addressable subject of <var>M</var> is equal to the addressable
subject of either <var>A</var> or <var>B</var>.</li>
<li><var>M</var> replaces <var>A</var> and <var>B</var> as a player of
any roles played in associations in the topic map. </li>
<li>The set of occurrence assignments of <var>M</var> is equal to the
union of occurrence assignments of <var>A</var> and <var>B</var>.</li>
<li><var>A</var> and <var>B</var> no longer exist</li>
</ol>
<h4 class="prt">Error Condition:</h4>
<p>It is a Reportable XTM Error if:</p>
<ol>
<li>Topics <var>A</var> and <var>B</var> have different addressable
subjects</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t34">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet.html" />
</occurrence>
</topic>
<topic id="t35">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Prince Of Denmark</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet_again.html" />
</occurrence>
</topic>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t34" />
</member>
</association>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t35" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!--
Note that the topics are merged and as a result of this the
association duplicate redundancy rule is invoked. This removes
the now duplicate association.
-->
<topic id="t36">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Prince Of Denmark</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet.html" />
</occurrence>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet_again.html" />
</occurrence>
</topic>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t36" />
</member>
</association>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.2 Subject-based merge operation</h3>
<h4 class="prt">Precondition:</h4>
<p>Two topics <var>A</var> and <var>B</var> exist in topic map
<var>M</var> such that:</p>
<ol>
<li>the URIs of the addressable subjects of <var>A</var> and
<var>B</var> are equal according to the URI equality principle, or</li>
<li>topic <var>B</var> is a subject indicator of topic <var>A</var>,
or</li>
<li>there exists two URIs <var>U1</var> and <var>U2</var>, where
<var>U1</var> is a subject indicator of topic <var>A</var> and
<var>U2</var> is a subject indicator of topic <var>B</var> and
<var>U1</var> is equal to <var>U2</var> according to the URI equality
principle, or</li>
<li>there exist two URIs <var>U1</var> and <var>U2</var>, where
<var>U1</var> is a subject indicator of topic <var>A</var> and
<var>U2</var> is a subject indicator of topic <var>B</var> and the XTM
processing application has determined via application specific
processing that the subject indicator referenced by <var>U1</var>
indicates the same subject as that referenced by <var>U2</var>.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Topics <var>A</var> and <var>B</var> are merged with pre and
post-conditions as specified by the topic merge operation.</li>
</ol>
<h4 class="prt">Example 1. The URIs of the addressable subjects of
<var>A</var> and <var>B</var> are equal:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>TopicMaps.Org web-site</baseNameString>
</baseName>
</topic>
<topic id="t2">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>The Web-site of TopicMaps.Org</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>TopicMaps.Org web-site</baseNameString>
</baseName>
<baseName>
<baseNameString>The Web-site of TopicMaps.Org</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h4 class="prt">Example 2. The two topics have at least one subject indicator URI in
common:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
<subjectIndicatorRef xlink:href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt" />
</subjectIdentity>
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
<topic id="t2">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
</subjectIdentity>
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
<subjectIndicatorRef xlink:href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt" />
</subjectIdentity>
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.3 Topic naming constraint-based merge</h3>
<h4 class="prt">Precondition:</h4>
<p>Two topics <var>A</var> and <var>B</var> exist in topic map
<var>M</var> such that:</p>
<ol>
<li>Topic <var>A</var> has a base name string <var>B1</var> in a scope
<var>S1</var> and,</li>
<li>Topic <var>B</var> has a base name string <var>B2</var> in scope
<var>S2</var> and,</li>
<li>Scope <var>S1</var> is equal to scope <var>S2</var> according to the
scope equality principle and,</li>
<li>The base name string <var>B1</var> is equal to the base name string
<var>B2</var> according to the string equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>T1</var> and <var>T2</var> are merged according to the topic
merge operation</li>
</ol>
<h4 class="prt">Notes:</h4>
<p>The scopes <var>S1</var> and <var>S2</var> may be the unconstrained
scope.</p>
<h4 class="prt">Example 1. Topic naming constraint merge in
unconstrained scope:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topic id="t1">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
<topic id="t2">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topic id="t3">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</pre>
<h4 class="prt">Example 2. Topic naming constraint merge in scope:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
<topic id="t2">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.4 Explicit topic map merge</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A <tt><mergeMap></tt> element is processed in topic map
<var>M</var> that references a topic map document <var>D</var>.</li>
<li>The <tt><mergeMap></tt> element contains references to a set
of subjects <var>S</var> by means of its child elements.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Every topic and association in <var>D</var> is added to the topic
map; the scope of every base name, occurrence and association role
originating in <var>D</var> is expressed as the union of the set of
subjects in its original scope and the set <var>S</var>.</li>
</ol>
<p class="note"><b>Note:</b> Any merge map directives in <var>D</var>
are further processed according to this rule. Sets of subjects
<var>S</var> are accumulated down the chain.</p>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.5 Implicit topic map merge</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A <tt><topicRef></tt> is processed.</li>
<li>The processed <tt><topicRef></tt> references a topic in a
topic map, <var>M</var>, which has not yet been processed.</li>
<li>The application chooses to resolve the <tt><topicRef></tt> to
the referenced topic</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Every topic and association in <var>M</var> is added to the topic
map and additional merging and duplicate suppression may occur.</li>
</ol>
<p class="note"><b>Note:</b> Any merge map directives in <var>M</var>
are processed according to the explicit topic map merge rule.</p>
<!-- end div.sect3 merge operations --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.6" name="F.6">F.6 Duplicate suppression</a></h2>
<div class="sect3">
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.1 Subject indicator duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A topic <var>A</var> exists in topic map <var>M</var> with two URI
references to subject indicators, <var>U1</var> and <var>U2</var>.</li>
<li><var>U1</var> is equal to <var>U2</var> according to the URI
equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<p>The reference to the subject indicator specified by <var>U2</var> is
removed from <var>A</var>.</p>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
</subjectIdentity>
</topic>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
</subjectIdentity>
</topic>
</topicMap>
</pre>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.2 Topic name duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A topic <var>A</var> exists in topic map <var>M</var> with basename
<var>B1</var> that contains a base name string <var>N1</var> in scope
<var>S1</var> and base name <var>B2</var> which contains a base name
string <var>N2</var> in scope <var>S2</var>.</li>
<li><var>N1</var> is equal to <var>N2</var> as defined by the string
equality principle.</li>
<li><var>S1</var> is equal to <var>S2</var> as defined by the scope
equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>A base name <var>B3</var> is created which contains a base name
string equal to <var>N1</var> in a scope equal to <var>S1</var>.</li>
<li>All variants of <var>B1</var> are added to <var>B3</var>.</li>
<li>All variants of <var>B2</var> are added to <var>B3</var>.</li>
<li><var>B3</var> is added to the set of names of <var>A</var>.</li>
<li><var>B1</var> and <var>B2</var> no longer exist.</li>
</ol>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.3 Association duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>The topic map contains two associations <var>A1</var> and
<var>A2</var></li>
<li><var>A1</var> is equal to <var>A2</var> as defined by the
association equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>A2</var> is removed from the topic map</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
<association id="a35">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.4 Role player duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>An association <var>A</var> has members <var>M1</var> and <var>M2</var></li>
<li><var>M1</var> and <var>M2</var> reference the same topic <var>RT</var> as the role-defining topic</li>
<li><var>M1</var> and <var>M2</var> reference the same topic <var>RPT</var> as the role-playing topic</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>M2</var> is removed from association <var>A</var>.</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<!-- end div.sect3 duplicate suppression --></div>
<!-- end div.sect2 processing requirements annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : transformation annex ...................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex G: <a id="transform" name="transform">ISO 13250 to XTM 1.0 Document Transformation</a> (Informative)</h2>
<div class="sect2">
<p>
This annex provides a link to information describing the transformation
of topic map documents conforming to ISO 13250 into XTM 1.0 syntax.
</p>
<ul>
<li>
<a href="http://www.topicmaps.org/xtm/1.0/transform.html">ISO 13250 to XTM 1.0 Document Transformation</a>
</li>
</ul>
<p>
</p>
<!-- end div.sect2 transformation annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : acknowledgements annex .................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex H: <a id="thanks" name="thanks">Acknowledgements</a> (Informative)</h2>
<div class="sect2">
<p>The development of XML Topic Maps (XTM) 1.0 was a team effort, led by
the TopicMaps.Org Authoring Group. The editors would like to thank the
following people in particular for major contributions to the editorial
process:</p>
<ul><li>
<b>Michel Biezunski</b> & <b>Steven R. Newcomb</b> (co-chairs,
Interchange Syntax Subgroup)<br>
<b>Daniel Rivers-Moore</b> (chair, Conceptual Model Subgroup)<br>
<b>Kal Ahmed</b> (chair, Processing Requirements Subgroup)<br>
<b>Murray Altheim</b> & <b>Sam Hunting</b> (associate editors)<br>
</li></ul>
<p>The <em>Participating Members</em> of the TopicMaps.Org Authoring
Group in good standing at the time of publication include:</p>
<ul><li>
Murray Altheim (Sun Microsystems)<a href="#founding" class="xref"><sup>*</sup></a>,
Michel Biezunski (InfoLoom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
Jean Delahousse (Mondeca)<a href="#founding" class="xref"><sup>*</sup></a>,
Patrick Durusau (Society of Biblical Literature)<a href="#founding" class="xref"><sup>*</sup></a>,
Eric Freese (Isogen/DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Sam Hunting (Etopicality)<a href="#founding" class="xref"><sup>*</sup></a>,
Andrius Kulikauskas (Minciu Sodas)<a href="#founding" class="xref"><sup>*</sup></a>,
Luis Martinez<a href="#founding" class="xref"><sup>*</sup></a>,
Graham Moore (Empolis)<a href="#founding" class="xref"><sup>*</sup></a>,
Steven R. Newcomb<a href="#founding" class="xref"><sup>*</sup></a>,
Nikita Ogievetsky (Cogitech, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
Jack Park (VerticalNet Solutions)<a href="#founding" class="xref"><sup>*</sup></a>,
Steve Pepper (Ontopia)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Rivers-Moore (RivCom)<a href="#founding" class="xref"><sup>*</sup></a>,
and
Bryan Thompson (GlobalWisdom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>.
</li></ul>
<p>
Thanks also to Invited Guests and others who have provided valuable
input into the process:</p>
<ul><li>
Kal Ahmed (Ontopia)<a href="#founding" class="xref"><sup>*</sup></a>,
Chris Angus (Kalido Ltd),
David Duncan (ADIS International)<a href="#founding" class="xref"><sup>*</sup></a>,
Lars Marius Garshol (Ontopia),
David Goldstein (Versaware)<a href="#founding" class="xref"><sup>*</sup></a>,
Geir Ove Grønmo (Ontopia),
Jason Hanna (EMC)<a href="#founding" class="xref"><sup>*</sup></a>,
Ivan Harré (ADIS International)<a href="#founding" class="xref"><sup>*</sup></a>,
Michael Hoexter<a href="#founding" class="xref"><sup>*</sup></a>,
G. Ken Holman (Crane Softwrights Ltd.)<a href="#founding" class="xref"><sup>*</sup></a>,
Peter Jones (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
Dianne Kennedy (InfoLoom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
W. Eliot Kimber (Isogen/DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Koger (Herrick Douglass)<a href="#founding" class="xref"><sup>*</sup></a>,
Benedicte LeGrand (Laboratoire d'Informatique de Paris 6)<a href="#founding" class="xref"><sup>*</sup></a>,
Aaron Lowe (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
James Mason (Y-12 National Security Complex),
Norbert Mikula (DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Peter Newcomb (Epremis Corporation),
Laurent Olivry (Electricité de France),
Eugene Pereira (CCH)<a href="#founding" class="xref"><sup>*</sup></a>,
Christina Portillo (Boeing)<a href="#founding" class="xref"><sup>*</sup></a>,
Hans Holger Rath (Empolis),
Adrian Rivers (RivCom),
Vishal Shah (NEC)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Speck (The Bureau of National Affairs)<a href="#founding" class="xref"><sup>*</sup></a>,
Drew Stevens (McKinsey & Company)<a href="#founding" class="xref"><sup>*</sup></a>,
Bliksem Tobey (McKinsey & Company)<a href="#founding" class="xref"><sup>*</sup></a>,
Bernard Vatant (Mondeca),
Jenny Watson (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
Matthew West (Shell Services International),
and
Ann Wrightson (Ontopia).
</li></ul>
<p>Many thanks to others who have provided comments and feedback, as
well as to those organizations that have supported the development of
XTM through their commitments of valuable resources.</p>
<p>Finally, we'd like to thank <a href="http://www.shakespeare.org/">Shakespeare & Company</a> for
permission to use their web site's URL in our examples.</p>
<p class="note"><a id="founding" name="founding">*</a>founding member of
TopicMaps.Org.</p>
<!-- end div.sect2 acknowledgements annex --></div>
<!-- end div.sect1 annexes section --></div>
<p class="issue"><a href="#top"><img alt="top-of-document" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a></p>
<!-- end div.sect1 --></div>
<div class="footer">
<hr width="90%"><!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<table summary="footer information" width="100%">
<tbody><tr><td align="left" valign="top"><a href="http://validator.w3.org/check/referer"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/valid-xhtml10.gif" border="0" alt="Valid XHTML 1.0!" height="31" width="88"></a>
<!--
<a href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="Explanation of Level Triple-A Conformance"><img src="img/wcag1aaa.gif"
border="0" height="32" width="88"
alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a>-->
</td>
<td align="left" valign="top"><small>Copyright 2001 TopicMaps.Org, All Rights Reserved.
<br class="lf"><span class="date"><b>Last Revised:</b>
$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $
</span></small></td></tr></tbody></table>
<!-- end div footer --></div>
</body></html>
--------------020108020409090706050203
Content-Type: text/html; charset=ISO-8859-1;
name="XML Topic Maps (XTM) 1.0.html"
Content-Transfer-Encoding: 8bit
Content-ID: <part2.05080109.09000103@emory.edu>
Content-Disposition: inline;
filename="XML Topic Maps (XTM) 1.0.html"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="CVS-Id" content="$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $">
<meta name="Editor" content="Steve Pepper">
<meta name="Editor" content="Graham Moore"><title>XML Topic Maps (XTM) 1.0</title>
<link rel="stylesheet" type="text/css" href="XML%20Topic%20Maps%20%28XTM%29%201.0_files/xtm.css">
<!-- print stylesheet:
<link rel="stylesheet" type="text/css" href="xtmprint.css" /> --></head>
<body><!-- begin document ........................................ -->
<div class="headergfx"><!-- begin headergfx -->
<p><a id="top" name="top" href="http://www.topicmaps.org/index.html"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/xtm-logo-150.gif" border="0" width="150" height="96" alt="TopicMaps.Org"></a></p>
<!-- end headergfx --></div>
<!-- begin div frontmatter ....................................... -->
<div class="frontmatter">
<h1 class="doctitle">XML Topic Maps (XTM) 1.0</h1>
<h2 class="docsubtitle">TopicMaps.Org
<!--<span class="draft">Final Draft</span-->
<!--<span class="review">AG Review</span-->
Specification</h2>
<dl><dt><span class="hdt">Latest version:</span></dt><dd><a href="http://www.topicmaps.org/xtm/1.0/">http://www.topicmaps.org/xtm/1.0/</a></dd><dt><span class="hdt">This version:</span></dt><dd><a href="http://www.topicmaps.org/xtm/1.0/xtm1-20010806.html">http://www.topicmaps.org/xtm/1.0/xtm1-20010806.html</a></dd><dt><span class="hdt">Authors:</span></dt><dd>Members of the TopicMaps.Org Authoring Group;<br>
see <a href="#thanks">Acknowledgements</a></dd><dt><span class="hdt">Editors:</span></dt><dd>Steve Pepper <a href="mailto:pepper@ontopia.net" class="mailto"><tt><pepper@ontopia.net></tt></a></dd><dd>Graham Moore <a href="mailto:gdm@empolis.co.uk" class="mailto"><tt><gdm@empolis.co.uk></tt></a></dd><dt><span class="hdt">Revision:</span></dt><dd>$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $</dd></dl>
<p class="legal">
<a href="http://www.topicmaps.org/copyright.html">Copyright</a>
©2001, TopicMaps.Org. All Rights Reserved.
See <a href="http://www.topicmaps.org/copyright.html#license">License</a> and
<a href="http://www.topicmaps.org/copyright.html#disclaimer">Disclaimer of Warranty</a>.<br>
<!-- WAI : Note the <a href="xtm1-wai.html">Accessibility Features</a> of this document. -->
</p>
<!-- begin div: abstract section ................................. -->
<h3><a id="abstract" name="abstract">Abstract</a></h3>
<div class="sect3">
<p>This specification provides a model and grammar for representing the
structure of information resources used to define topics, and the
associations (relationships) between topics. Names, resources, and
relationships are said to be <em>characteristics</em> of abstract
subjects, which are called <em>topics</em>. Topics have their
characteristics within <em>scopes</em>: i.e. the limited contexts within
which the names and resources are regarded as their name, resource, and
relationship characteristics. One or more interrelated documents
employing this grammar is called a “topic map.”</p>
<p><b>TopicMaps.Org</b> is an independent consortium of parties
developing the applicability of the topic map paradigm
<a class="xref" href="#ref_iso13250">[ISO13250]</a> to the
World Wide Web by leveraging the XML family of specifications.</p>
<p>This specification describes version 1.0 of <cite>XML Topic Maps
(XTM) 1.0</cite> <a class="xref" href="#ref_xtm">[XTM]</a>, an abstract
model and XML grammar for interchanging Web-based topic maps, written by
the members of the TopicMaps.Org Authoring Group. More information on
XTM and TopicMaps.Org is available at
<tt><a href="http://www.topicmaps.org/about.html">http://www.topicmaps.org/about.html</a></tt>.</p>
<p>All versions of the XTM Specification are permanently
licensed to the public, as provided by the Charter of
TopicMaps.Org.</p>
<!-- end div.sect3 abstract --></div>
<!-- begin div: status section ................................... -->
<h3><a id="status" name="status">Status of This Document</a></h3>
<div class="sect3">
<p><em>(This section describes the status of this document at
the time of its publication. Other documents may supersede this
document. For the latest version, refer always to the URL given
above.)</em></p>
<p>This document has been reviewed by the TopicMaps.Org
Authoring Group and other interested parties and has been
endorsed by the Authoring Group as a TopicMaps.Org
Specification. It is a stable document and may be used as
reference material or cited as a normative reference from
another document.</p>
<p>The English version of this specification is the only
normative version. However, translation of this document into
other languages is actively encouraged by TopicMaps.Org.</p>
<p>An errata list for this Specification will be maintained at
<a href="http://www.topicmaps.org/xtm/1.0/errata.html">http://www.topicmaps.org/xtm/1.0/errata.html</a>.</p>
<p>Please report errors in this document to
<a href="mailto:xtm-editor@topicmaps.org">xtm-editor@topicmaps.org</a>.</p>
<!-- end div.sect3 status --></div>
<!-- end div frontmatter --></div>
<hr><!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<div class="sect1"><!-- begin div.sect1 .................................... -->
<!-- ....................................................................... -->
<!-- begin div.sect1 : toc ................................................. -->
<h2><a href="#top"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a> <a id="toc" name="toc">Contents</a></h2>
<div class="sect2">
<ul class="toc"><!-- sect1 -->
<li>1. <a class="normal" href="#intro"><b>Introduction</b></a><br>
<ul class="toc2"><!-- begin intro -->
<li>1.1 <a class="normal" href="#origins">Origins</a></li>
<li>1.2 <a class="normal" href="#goals">Goals</a></li>
<li>1.3 <a class="normal" href="#terms">Terminology</a></li>
</ul>
</li>
<li>2. <a class="normal" href="#concepts"><b>Concepts</b></a>
<ul class="toc2">
<li>2.1 <a class="normal" href="#desc-intro">A Gentle Introduction to Topic Maps</a></li>
<li>2.2 <a class="normal" href="#desc-overview">Overview of Topic Map Concepts</a>
<ul class="toc2">
<li>2.2.1 <a class="normal" href="#desc-topic">Topic</a>
<ul class="toc2">
<li>2.2.1.1 <a class="normal" href="#desc-subject">Subject</a></li>
<li>2.2.1.2 <a class="normal" href="#desc-reification">Reification</a></li>
<li>2.2.1.3 <a class="normal" href="#desc-subject-identity">Subject Identity</a></li>
<li>2.2.1.4 <a class="normal" href="#desc-subject-indicator">Subject Indicator</a></li>
<li>2.2.1.5 <a class="normal" href="#desc-topic-characteristic">Topic Characteristic</a></li>
<li>2.2.1.6 <a class="normal" href="#desc-scope">Scope</a></li>
</ul>
</li>
<li>2.2.2 <a class="normal" href="#desc-name">Name</a>
<ul class="toc2">
<li>2.2.2.1 <a class="normal" href="#desc-base-name">Base Name</a></li>
<li>2.2.2.2 <a class="normal" href="#desc-variant-name">Variant Name</a></li>
<li>2.2.2.3 <a class="normal" href="#desc-parameters">Parameters</a></li>
</ul>
</li>
<li>2.2.3 <a class="normal" href="#desc-occurrence">Occurrence</a></li>
<li>2.2.4 <a class="normal" href="#desc-association">Association</a>
<ul class="toc2">
<li>2.2.4.1 <a class="normal" href="#desc-member">Member</a></li>
<li>2.2.4.2 <a class="normal" href="#desc-role">Role</a></li>
<li>2.2.4.3 <a class="normal" href="#desc-class-instance">Class-Instance</a></li>
<li>2.2.4.4 <a class="normal" href="#desc-superclass-subclass">Superclass-Subclass</a></li>
</ul>
</li>
<li>2.2.5 <a class="normal" href="#desc-topic-map">Topic Map</a>
<ul class="toc2">
<li>2.2.5.1 <a class="normal" href="#desc-topic-map-node">Topic Map Node</a></li>
<li>2.2.5.2 <a class="normal" href="#desc-consistent-topic-map">Consistent Topic Map</a></li>
<li>2.2.5.3 <a class="normal" href="#desc-topic-map-document">Topic Map Document</a></li>
<li>2.2.5.4 <a class="normal" href="#desc-xtm-document">XTM document</a></li>
</ul>
</li>
</ul>
</li>
<li>2.3 <a class="normal" href="#desc-psis">Published Subjects</a>
<ul class="toc2">
<li>2.3.1 <a class="normal" href="#desc-psis-intro">Introduction</a></li>
<li>2.3.2 <a class="normal" href="#psi-mandatory">XTM Mandatory Published Subject Indicators</a></li>
</ul>
</li>
<li>2.4 <a class="normal" href="#desc-merging">Merging</a></li>
</ul><!-- end concepts -->
</li>
<li>3. <a class="normal" href="#syntax"><b>XTM Syntax Documentation</b></a><br>
<ul class="toc2">
<li>3.1 <a class="normal" href="#syn-intro">Introduction to XTM Syntax</a></li>
<li>3.2 <a class="normal" href="#syn-refs">References to Topics and Subject Indicators</a>
<ul>
<li>3.2.1 <a class="normal" href="#elt-topicRef"><topicRef> Element</a></li>
<li>3.2.2 <a class="normal" href="#elt-subjectIndicatorRef"><subjectIndicatorRef> Element</a></li>
</ul>
</li>
<li>3.3 <a class="normal" href="#syn-scope">Scope and Context</a>
<ul>
<li>3.3.1 <a class="normal" href="#elt-scope"><scope> Element</a></li>
</ul>
</li>
<li>3.4 <a class="normal" href="#syn-classes">Classes and Instances</a>
<ul>
<li>3.4.1 <a class="normal" href="#elt-instanceOf"><instanceOf> Element</a></li>
</ul>
</li>
<li>3.5 <a class="normal" href="#syn-topicmap">The Topic Map</a>
<ul>
<li>3.5.1 <a class="normal" href="#elt-topicMap"><topicMap> Element</a></li>
</ul>
</li>
<li>3.6 <a class="normal" href="#syn-topsubj">Topics and Subjects</a>
<ul>
<li>3.6.1 <a class="normal" href="#elt-topic"><topic> Element</a></li>
<li>3.6.2 <a class="normal" href="#elt-subjectIdentity"><subjectIdentity> Element</a></li>
</ul>
</li>
<li>3.7 <a class="normal" href="#syn-topnames">Topic Names</a>
<ul>
<li>3.7.1 <a class="normal" href="#elt-baseName"><baseName> Element</a></li>
<li>3.7.2 <a class="normal" href="#elt-baseNameString"><baseNameString> Element</a></li>
<li>3.7.3 <a class="normal" href="#elt-variant"><variant> Element</a></li>
<li>3.7.4 <a class="normal" href="#elt-variantName"><variantName> Element</a></li>
<li>3.7.5 <a class="normal" href="#elt-parameters"><parameters> Element</a></li>
</ul>
</li>
<li>3.8 <a class="normal" href="#syn-assoc">Associations and Members</a>
<ul>
<li>3.8.1 <a class="normal" href="#elt-association"><association> Element</a></li>
<li>3.8.2 <a class="normal" href="#elt-member"><member> Element</a></li>
<li>3.8.3 <a class="normal" href="#elt-roleSpec"><roleSpec> Element</a></li>
</ul>
</li>
<li>3.9 <a class="normal" href="#syn-occur">Occurrences and Resources</a>
<ul>
<li>3.9.1 <a class="normal" href="#elt-occurrence"><occurrence> Element</a></li>
<li>3.9.2 <a class="normal" href="#elt-resourceRef"><resourceRef> Element</a></li>
<li>3.9.3 <a class="normal" href="#elt-resourceData"><resourceData> Element</a></li>
</ul>
</li>
<li>3.10 <a class="normal" href="#syn-merge">Merging</a>
<ul>
<li>3.10.1 <a class="normal" href="#elt-mergeMap"><mergeMap> Element</a></li>
</ul>
</li>
</ul><!-- end markup section -->
</li>
<li>4. <a class="normal" href="#conformance"><b>Conformance</b></a>
<ul class="toc2">
<li>4.1 <a class="normal" href="#conf-vocab">XTM Conformance Vocabulary</a></li>
<li>4.2 <a class="normal" href="#conf-dep">XTM Processing Dependencies</a></li>
<li>4.3 <a class="normal" href="#xtmns">The XTM Namespace</a></li>
<li>4.4 <a class="normal" href="#conf-doc">XTM Document Conformance</a></li>
<li>4.5 <a class="normal" href="#conf-appl">XTM Application Conformance</a></li>
</ul>
</li><!-- end conformance section -->
<li><a class="normal" href="#annexes"><b>Annexes</b></a><br>
<ul class="toc2"><!-- begin annexes -->
<li>Annex A: <a class="normal" href="#references">References</a> (Informative)</li>
<li>Annex B: <a class="normal" href="#conceptualmodel">XTM Conceptual Model</a> (Informative)</li>
<li>Annex C: <a class="normal" href="#mapping">XTM Conceptual Model to Interchange Syntax Mapping</a> (Informative)</li>
<li>Annex D: <a class="normal" href="#dtd">XTM 1.0 Document Type Declaration</a> (Normative)</li>
<li>Annex E: <a class="normal" href="#coremap">XTM 1.0 Core Published Subject Indicators</a> (Normative)</li>
<li>Annex F: <a class="normal" href="#processing">XTM Processing Requirements</a> (Informative)</li>
<li>Annex G: <a class="normal" href="#transform">ISO 13250 to XTM 1.0 Document Transformation</a> (Informative)</li>
<li>Annex H: <a class="normal" href="#thanks">Acknowledgements</a> (Informative)</li>
</ul><!-- end annexes -->
</li>
</ul>
<p></p>
<!-- end div.sect2 toc --></div>
<hr width="100%">
<!-- ............................................................. -->
<!-- begin div.sect1 : introduction section ...................... -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
1. <a id="intro" name="intro">Introduction</a></h1>
<div class="sect1">
<!-- ............................................................. -->
<!-- begin div.sect2 : origin section ............................ -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.1 <a id="origins" name="origins">Origins</a></h2>
<div class="sect2">
<p>
<span class="dfn">XML Topic Maps <acronym>(XTM)</acronym></span>
is a product of the TopicMaps.Org Authoring Group (AG), formed in 2000
by an independent consortium named
<a href="http://www.topicmaps.org/">TopicMaps.Org</a>, originally
chaired by Michel Biezunski and Steven R. Newcomb, and chaired at the
date of delivery of this specification by Steve Pepper and Graham Moore.
The Participating Members of the XTM Authoring Group are listed in
<a href="#thanks">Annex H: Acknowledgements</a>.</p>
<p>The origins of the topic maps paradigm itself date back to 1993, when
it was first expressed as a working document in the context of the
Davenport Group. The paradigm was more fully developed thereafter in the
context of the GCA Research Institute (now known as IDEAlliance), in an
activity called <cite>Conventions for the Application of HyTime</cite>,
during and after which the paradigm was independently developed,
implemented, and promulgated. Early in 2000, after several years of
continuous effort by an international group of individuals, the topic
map paradigm was fully formalized for the first time as an ISO
International Standard, ISO/IEC 13250:2000. Almost immediately
thereafter, TopicMaps.Org was founded in order to develop the
applicability of the paradigm to the World Wide Web, and to realize its
enormous potential to improve the findability and manageability of
information.</p>
<!-- end div.sect2 origin section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : goals section ............................. -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.2 <a id="goals" name="goals">Goals</a></h2>
<div class="sect2">
<p>The design goals for XTM are:</p>
<ol>
<li>XTM shall be straightforwardly usable over the Internet.</li>
<li>XTM shall support a wide variety of applications.</li>
<li>XTM shall be compatible with XML, XLink, and ISO 13250.</li>
<li>It shall be easy to write programs that process XTM documents.</li>
<li>The number of optional features in XTM is to be kept to the absolute
minimum, ideally zero.</li>
<li>XTM documents should be human-legible and reasonably clear.</li>
<li>The XTM design should be prepared quickly.</li>
<li>The design of XTM shall be formal and concise.</li>
<li>XTM documents shall be easy to create.</li>
<li>Terseness in XTM markup is of minimal importance.</li>
</ol>
<p>This specification, together with
<cite>XML 1.0</cite> for markup syntax <a class="xref" href="#ref_xml">[XML]</a>,
<cite>XLink 1.0</cite> for linking syntax <a class="xref" href="#ref_xlink">[XLink]</a>,
<cite>XML Base</cite> for base URI resolution <a class="xref" href="#ref_xbase">[XML Base]</a>,
and the IETF URI specification <a class="xref" href="#ref_rfc2396">[RFC 2396]</a>
(as updated by <a href="#ref_rfc2732">[RFC 2732]</a>),
provides all the information necessary to understand XTM 1.0 and create
conforming topic map documents.</p>
<p>This version of the XTM specification and its associated materials
may be distributed freely, as long as all text and legal notices remain
intact.</p>
<!-- end div.sect2 goals section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : terminology section ....................... -->
<h2><a href="#intro"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
1.3 <a id="terms" name="terms">Terminology</a></h2>
<div class="sect2">
<p>The terminology used to describe XTM documents is defined in the
body of this specification and its annexes. The terms defined in this
section are used in building those definitions.</p>
<dl><dt><a class="dfn" id="def-addressable-information-resource" name="def-addressable-information-resource">addressable information resource</a></dt><dd>
<p>An information resource whose identity is computable (that is, a
computer system can retrieve the resource and make deterministic
comparisons between it, and some other resource, to establish their
identity or difference). An example of an addressable information
resource is the online version of this document. In this
specification, the term <em>resource</em> is used synonymously with
<em>addressable information resource</em> unless otherwise stated.</p>
</dd><dt><a class="dfn" id="def-addressable-subject" name="def-addressable-subject">addressable subject</a></dt><dd>
<p>An <a href="#def-addressable-information-resource">addressable information resource</a>, considered as a
<a href="#def-subject">subject</a> in and of itself, and not considered
in terms of what an author meant by it. The identity of an addressable
subject is by definition directly computable.
(Cf. <a href="#def-non-addressable-subject">non-addressable subject</a>.)</p>
</dd><dt><a class="dfn" id="def-association" name="def-association">association</a></dt><dd>
<ol>
<li>A relationship between topics asserted by an
<tt><association></tt> element.</li>
<li>An <tt><association></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-association-type" name="def-association-type">association type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-association">association</a>.</li>
<li>The class of association specified by an <tt><association></tt>
element's <tt><instanceOf></tt> child element. An association may belong
to only one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class of
association.
</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-base-name" name="def-base-name">base name</a></dt><dd>
<ol>
<li>A child element (<tt><baseName></tt>) of a
<tt><topic></tt> element.</li>
<li>A name characteristic of a topic that is provided by the content of a
<tt><baseNameString></tt> element. Base names must be unique within a
given scope (cf.
<a href="#def-topic-naming-constraint">topic naming constraint</a>).</li>
</ol>
<p>See also <a href="#def-variant-name">variant name</a>.</p>
</dd><dt><a class="dfn" id="def-characteristic" name="def-characteristic">characteristic</a></dt><dd>
<p>See <a href="#def-topic-characteristic">topic characteristic</a>.</p>
</dd><dt><a class="dfn" id="def-consistent-topic-map" name="def-consistent-topic-map">consistent topic map</a></dt><dd>
<p>A <a href="#def-topic-map">topic map</a> in which there is one topic
per subject and no further opportunities for merging or duplicate suppression,
as defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.
</p>
</dd><dt><a class="dfn" id="def-member" name="def-member">member</a></dt><dd>
<ol>
<li>A child element (<tt><member></tt>) of an
<tt><association></tt> element.</li>
<li>A set of topics that play a particular <a href="#def-role">role</a> in an
<a href="#def-association">association</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-merging" name="def-merging">merging</a></dt><dd>
<ol>
<li>The process of merging two topic maps, either as a result of
explicit <tt><mergeMap></tt> directives, or for any
application-specific reasons.</li>
<li>The process of merging two topics.</li>
</ol>
<p>The rules governing all forms of merging are given in
<a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-non-addressable-subject" name="def-non-addressable-subject">non-addressable subject</a></dt><dd>
<p>A <a href="#def-subject">subject</a> that exists outside the bounds of
the computer system and whose identity is therefore not computable.
Examples of non-addressable subjects include William Shakespeare, the play
<cite>Hamlet</cite> and its 1604-05 edition, the character Hamlet, the
concept of vengeance, the organization Shakespeare & Company, etc.
The identity of a non-addressable subject may only be established
indirectly, for example through the use of a
<a href="#def-subject-indicator">subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-occurrence" name="def-occurrence">occurrence</a></dt><dd>
<ol>
<li>A child element (<tt><occurrence></tt>) of a
<tt><topic></tt> element.</li>
<li>A <a href="#def-topic-occurrence">topic occurrence</a> (q.v.).</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-occurrence-type" name="def-occurrence-type">occurrence type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-topic-occurrence">topic occurrence</a>.</li>
<li>The class of topic occurrence specified by an <tt><occurrence></tt>
element's <tt><instanceOf></tt> child element. An occurrence may
belong to only one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class
of topic occurrence.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-parameters" name="def-parameters">parameters</a></dt><dd>
<ol>
<li>A child element (<tt><parameters></tt>) of a
<tt><variant></tt> element.</li>
<li>Information, in the form of a set of topics, that expresses the
appropriate processing context for a <a href="#def-variant-name">variant name</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-processed-topic-map" name="def-processed-topic-map">processed topic map</a></dt><dd>
<p>The collection of <a href="#def-topic">topics</a>,
<a href="#def-association">associations</a>, and
<a href="#def-scope">scopes</a> which have been processed by
the XTM processing application as defined in
<a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-processing-requirements" name="def-processing-requirements">processing requirements</a></dt><dd>
<p>The requirements on processing performed by a conforming XTM processor as
defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
</dd><dt><a class="dfn" id="def-psi" name="def-psi">PSI</a></dt><dd>
<p>See <a href="#def-published-subject-indicator">published subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-published-subject-indicator" name="def-published-subject-indicator">published subject indicator</a></dt><dd>
<p>A <a href="#def-subject-indicator">subject indicator</a> that is
published and maintained at an advertised address for the purpose of
facilitating topic map interchange and mergeability.</p>
</dd><dt><a class="dfn" id="def-reification" name="def-reification">reification</a></dt><dd>
<p>The act of creating a topic. When anything is reified it becomes the
subject of the topic thus created; to reify something is therefore to create
a topic of which that thing is the subject. Reification of a subject allows
topic characteristics to be assigned to the topic that reifies it: In other
words, it makes it possible to <b>discourse</b> about that subject within
the terms of the topic map paradigm.</p>
</dd><dt><a class="dfn" id="def-resource" name="def-resource">resource</a></dt><dd>
<p>See <a href="#def-addressable-information-resource">addressable information resource</a>.</p>
</dd><dt><a class="dfn" id="def-role" name="def-role">role</a></dt><dd>
<p>The role that a topic plays as a member of an association;
the nature of its involvement in that association.</p>
</dd><dt><a class="dfn" id="def-scope" name="def-scope">scope</a></dt><dd>
<ol>
<li>The extent of the validity of a
<a href="#def-topic-characteristic-assignment">topic characteristic assignment.</a> 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.</li>
<li>The set of topics specified via a <tt><scope></tt> element.</li>
</ol>
<p>See also <a href="#def-unconstrained-scope">unconstrained scope</a>.</p>
<p>This specification places no constraints on how applications interpret
scope.</p>
</dd><dt><a class="dfn" id="def-subject" name="def-subject">subject</a></dt><dd>
<ol>
<li>Anything that can be spoken about or conceived of by a human being.
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.</li>
<li>Anything on which the author of a topic map chooses to discourse.</li>
<li>Anything that is reified by a <a href="#def-topic">topic</a> in a
topic map; the organizing principle of a topic. Humans are the ultimate
authorities for determining the subjects of topics.</li>
</ol>
<p>See also <a href="#def-subject-identity">subject identity</a>,
<a href="#def-subject-indicator">subject indicator</a>.</p>
</dd><dt><a class="dfn" id="def-subject-identity" name="def-subject-identity">subject identity</a></dt><dd>
<ol>
<li>The <tt><subjectIdentity></tt> child of a <tt><topic></tt>
element.</li>
<li>That which makes two <a href="#def-subject">subjects</a> identical, or
distinguishes one subject from another. The determination of subject identity
is aided, and may be automated, by the use of <a href="#def-published-subject-indicator">published subject indicators</a>.</li>
<li>A criterion for merging topics as defined in <a href="#processing">Annex F: XTM Processing Requirements</a>.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-subject-indicator" name="def-subject-indicator">subject indicator</a></dt><dd>
<p>A <a href="#def-resource">resource</a> that is intended by the topic map
author to provide a positive, unambiguous indication of the identity of a
<a href="#def-subject">subject</a>. There are three ways of indicating a subject
in a topic map:</p>
<ol>
<li>Pointing via a <tt><topicRef></tt> element to a
<tt><topic></tt> element that shares the same subject;</li>
<li>Pointing via a <tt><subjectIndicatorRef></tt> element to a resource
that <b>indicates</b> the subject;</li>
<li>Pointing via a <tt><resourceRef></tt> element to a resource that
<b>is</b> the subject.</li>
</ol>
<p>The subject indicated by a subject indicator may be either
<a href="#def-non-addressable-subject">non-addressable</a>
or <a href="#def-addressable-subject">addressable</a>.
(Note that in case 3, the subject is necessarily addressable, since it
is a resource.)
</p>
</dd><dt><a class="dfn" id="def-topic" name="def-topic">topic</a></dt><dd>
<ol>
<li>A <a href="#def-resource">resource</a> that acts as a proxy for some <a href="#def-subject">subject</a>; the topic map system's representation of that
subject. The relationship between a topic and its subject is defined to be one
of <a href="#def-reification">reification</a>. Reification of a subject allows
<a href="#def-topic-characteristic">topic characteristics</a> to be assigned
to the topic that reifies it.</li>
<li>A <tt><topic></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-characteristic" name="def-topic-characteristic">topic characteristic</a></dt><dd><p>One of the following:</p>
<ol>
<li>a topic name,</li>
<li>a topic occurrence, or</li>
<li>a role played by a topic in an association</li>
</ol>
<p>A topic's names, occurrences, and roles played in associations
are collectively known as its characteristics.</p>
<p>See also <a href="#def-topic-name">topic name</a>,
<a href="#def-topic-occurrence">topic occurrence</a>, and
<a href="#def-role">role</a>.</p>
</dd><dt><a class="dfn" id="def-topic-characteristic-assignment" name="def-topic-characteristic-assignment">topic characteristic assignment</a></dt><dd>
<p>The act of asserting that a given topic has a particular characteristic.
Such assertions are deemed to be valid within a certain
<a href="#def-scope">scope</a>.</p>
</dd><dt><a class="dfn" id="def-topic-map" name="def-topic-map">topic map</a></dt><dd>
<ol>
<li>A collection of <a href="#def-topic">topics</a>,
<a href="#def-association">associations</a>, and <a href="#def-scope">scopes</a>
that may exist in one of two forms:
<ol>
<li>a serialized interchange format (e.g. as a topic map document expressed in
XTM syntax), or</li>
<li>some application-internal form, as constrained by the
<a href="#processing">XTM Processing Requirements</a> defined in Annex F.</li>
</ol>
</li>
<li>The document element (<tt><topicMap></tt>) of a topic map document
expressed using XTM syntax.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-map-document" name="def-topic-map-document">topic map document</a></dt><dd>
<p>A document that contains one or more topic maps that conform to this
specification. It may be serialized for the purpose of storage or interchange
in a syntax governed by this or some other specification.</p>
</dd><dt><a class="dfn" id="def-topic-map-node" name="def-topic-map-node">topic map node</a></dt><dd>
<p>An object (in the system's internal representation of a topic map) that
represents a
<a href="#def-topic">topic</a>,
<a href="#def-association">association</a>, or
<a href="#def-scope">scope</a>.</p>
</dd><dt><a class="dfn" id="def-topic-name" name="def-topic-name">topic name</a></dt><dd>
<ol>
<li>A <a href="#def-base-name">base name</a> characteristic of a topic
(including that base name's <a href="#def-variant-name">variants</a>).</li>
<li><em>(Informally)</em> The string of characters specified as a name of a topic using
a <tt><baseNameString></tt> element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-naming-constraint" name="def-topic-naming-constraint">topic naming constraint</a></dt><dd>
<p>The constraint, imposed by the topic map paradigm, that any topics having
the same base name in the same scope implicitly refer to the same subject and
therefore should be merged.</p>
</dd><dt><a class="dfn" id="def-topic-occurrence" name="def-topic-occurrence">topic occurrence</a></dt><dd>
<p>A resource containing information that is specified as relevant to a
given subject. In order to be expressed in an XTM topic map, such a
resource must either</p>
<ol>
<li>be addressable via a URI using a <tt><resourceRef></tt>
element, or</li>
<li>be capable of being placed inline as a <tt><resourceData></tt>
element.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-topic-type" name="def-topic-type">topic type</a></dt><dd>
<ol>
<li>One of the classes of <a href="#def-topic">topic</a>.</li>
<li>A class of topic specified by an <tt><instanceOf></tt>
child of a <tt><topic></tt> element. A topic may
belong to more than one class.</li>
<li>A topic whose <a href="#def-subject">subject</a> is a class of
topic.</li>
</ol>
<p></p>
</dd><dt><a class="dfn" id="def-unconstrained-scope" name="def-unconstrained-scope">unconstrained scope</a></dt><dd>
<p>The absence of a specified <a href="#def-scope">scope</a> in the
assignment of a <a href="#def-topic-characteristic">topic characteristic</a>.</p>
</dd><dt><a class="dfn" id="def-variant" name="def-variant">variant</a></dt><dd>
<p>See <a href="#def-variant-name">variant name</a>.</p>
</dd><dt><a class="dfn" id="def-variant-name" name="def-variant-name">variant name</a></dt><dd>
<p>An alternative form of a base name, optimized for a particular
computational purpose, such as sorting or display.</p>
</dd><dt><a class="dfn" id="def-xtm-document" name="def-xtm-document">XTM document</a></dt><dd>
<p>A <a href="#def-topic-map-document">topic map document</a> that is
expressed in the syntax defined by this specification.</p>
</dd></dl>
<!-- end div.sect2 terminology section --></div>
<!-- end div.sect1 intro section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
2. <a id="concepts" name="concepts">Concepts</a></h1>
<div class="sect1">
<p>This section describes concepts necessary to understand the
constructs of XML Topic Maps (XTM).</p>
<p>The purpose of a topic map is to convey knowledge about resources
through a superimposed layer, or map, of the resources. A topic map
captures the subjects of which resources speak, and the relationships
between subjects, in a way that is implementation-independent.</p>
<p>The key concepts in topic maps are <em><a href="#desc-topic">topics,</a></em> <em><a href="#desc-association">associations</a>,</em> and <em><a href="#desc-occurrence">occurrences</a>.</em></p>
<p>A topic is a resource within the computer that stands in for (or
“reifies”) some real-world <em><a href="#desc-subject">subject</a></em>.
Examples of such subjects might be the play <cite>Hamlet</cite>, the
playwright William Shakespeare, or the “authorship”
relationship.</p>
<p>Topics can have <a href="#desc-topic-name"><em>names</em></a>. They
can also have <em>occurrences</em>, that is, information resources that
are considered to be relevant in some way to their subject. Finally,
topics can participate in relationships, called <em>associations</em>,
in which they play roles as <em><a href="#desc-member">members</a></em>.</p>
<p>Thus, topics have three kinds of <em><a href="#desc-topic-characteristic">characteristics</a></em>: names,
occurrences, and roles played as members of associations. The assignment
of such characteristics is considered to be valid within a certain
<em><a href="#desc-scope">scope</a>,</em> or context.</p>
<p>Topic maps can be <i>merged</i>. Merging can take place at the
discretion of the user or application (at runtime), or may be indicated
by the topic map's author at the time of its creation.</p>
<p>The following section provides a gentle introduction using a simple
example taken from the domain of encyclopedia publishing. It is followed
by a more detailed overview of topic map concepts. For a list of the XML
element types declared in a topic map, see <a href="#syn-intro">Section
3.1, <cite>Introduction to XTM Syntax</cite></a>.</p>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-intro section ........................ -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.1 <a id="desc-intro" name="desc-intro">A Gentle Introduction to Topic Maps</a></h2>
<div class="sect2">
<p>As a way of making concrete the use of the topic map notation defined
in this specification, consider the following example. Let us suppose that
we wish to record, in a device-independent and implementation-independent
way, the kind of information about the subject matter of a document that
might be included in the subject index to an encyclopedia in electronic
form.</p>
<p>For various <em>subjects</em> — for example, William
Shakespeare, Ben Jonson, their plays <cite>Hamlet</cite> and
<cite>Volpone</cite>, and the towns of London and Stratford, among
thousands of others — we will wish to record all of the locations
in the encyclopedia — whether passages of text, or images, or
sound recordings in a multi-media encyclopedia — where they are
discussed, depicted, or mentioned. We will speak of these locations as
<em>occurrences</em> of these subjects. Note that different occurrences
may relate to their subject in very different ways, which we would like
to distinguish. In-depth discussions, brief mentions, and illustrations
may need to be distinguished in order to allow the users to find more
quickly what they need.</p>
<p>The encyclopedia we are working with exists in electronic form, so
every occurrence of a subject is an electronic resource, for which we
can compute an address. (Without going into detail about the nature of
the address, we define an address as an expression, usually short, which
allows a suitable processor to locate a resource.) They are thus
<em>addressable information resources</em>.</p>
<p>The playwrights William Shakespeare and Ben Jonson, by contrast, are
not addressable resources: they are not electronic artifacts at all, but
real human beings. In order to represent the link between an occurrence
of a subject and the subject itself, we would like simply to point to
each in turn and say “this location discusses this subject” (or perform
the equivalent gestures in some electronic notation, by giving the
address of the subject, the address of the occurrence, and describing
the relation between them using markup).</p>
<p>Because not all subjects are electronic artifacts, however, we cannot
provide an address for the subject. Instead, we provide an electronic
surrogate for the subject, which (being electronic) can have an address.
This surrogate we call a <em>topic</em>. Every topic acts as a surrogate
for some subject. We say that the topic “reifies” the
subject — or makes the subject “real” for the system.
The creation of a topic that reifies a subject enables the system to
manipulate, process, and assign characteristics to the subject by
manipulating, processing, and assigning characteristics to the topic
that reifies it. When we need an address for the subject, we give the
address of a topic which reifies it, and acts as its surrogate within
the system.</p>
<p>(Where it will not lead to confusion, we will sometimes use the terms
topic and subject interchangeably; since each topic reifies some
subject, and since for each subject we can construct a topic to reify
it, the difference is not always important.)</p>
<p>Since our entire collection of subject-index information provides a
sort of map of the encyclopedia, showing where various topics are
mentioned and discussed, we call our electronic representation of the
subject index a <em>topic map</em>.</p>
<p>Topics representing several of William Shakespeare's plays might look
like this:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf><topicRef xlink:href="#play"/></instanceOf>
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
<occurrence>
<instanceOf><topicRef xlink:href="#plain-text-format"/></instanceOf>
<resourceRef
xlink:href="<a class="dref" href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt">ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt</a>"/>
</occurrence>
</topic>
<topic id="tempest">
<instanceOf><topicRef xlink:href="#play"/></instanceOf>
<baseName>
<baseNameString>The Tempest</baseNameString>
</baseName>
<occurrence>
<instanceOf><topicRef xlink:href="#plain-text-format"/></instanceOf>
<resourceRef
xlink:href="<a class="dref" href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws4110.txt">ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws4110.txt</a>"/>
</occurrence>
</topic>
</pre>
<p class="note"><b>Note:</b> For brevity, examples of URIs in this
specification sometimes include only a fragment identifier (e.g.
<code>#play</code> above). In such cases, it is assumed that these
identifiers refer to a <tt><topic></tt> element elsewhere in the
same topic map with an “id” attribute value that matches the
fragment identifier.</p>
<p>It is often useful in thesauri and subject indexes to indicate
relationships among the subjects: <cite>Hamlet</cite> and <cite>The
Tempest</cite> are both examples of plays, Shakespeare is their author,
Rosencrantz and Guildenstern are characters in the play
<cite>Hamlet</cite>, etc. In traditional reference works, these kinds of
relationships are used to guide the compiler in the creation of cross
references. Note that these relationships hold not among the occurrences
of the subjects but among the subjects themselves; an electronic
representation of them can be wholly independent of the occurrences and
might be applied to very different collections of resources. The
electronic representation of relationships among subjects, of course,
will take the form of relationships, or <em>associations</em>, among the
topics that reify those subjects.</p>
<p>An association representing the relationship between Shakespeare and
the play <cite>Hamlet</cite> might look like this:</p>
<pre class="markup"> <association>
<instanceOf><topicRef xlink:href="#written-by"/></instanceOf>
<member>
<roleSpec><topicRef xlink:href="#author"/></roleSpec>
<topicRef xlink:href="#shakespeare"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#work"/></roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
</pre>
<p>Because associations express relationships they are inherently
multidirectional: If “<cite>Hamlet</cite> was written by
Shakespeare”, it automatically follows that “Shakespeare wrote
<cite>Hamlet</cite>”; it is one and the same relationship expressed in
slightly different ways. Instead of directionality, associations use
<em>roles</em> to distinguish between the various forms of involvement
members have in them. Thus the example above may be serialized using natural
language as follows: “There exists a 'written by' relationship between
Shakespeare (playing the role of 'author') and <cite>Hamlet</cite> (playing
the role of 'work').” Relationships may involve one, two, or more
roles.</p>
<p>There is no intrinsic limit to the kinds of relationships among
subjects which we can record in this way; for some purposes, <em>lived
in</em> and <em>example of</em> will suffice; for other purposes, very
different relationships among subjects will be of interest.</p>
<p>Because topics and their relationships can be described independently of
their occurrences in any given set of information resources, it may be
expected that a given set of topics may be connected, in different
applications, with many different sets of information resources. Conversely,
one set of information resources may be described by many different topic
maps. Different topic maps may define topics for the same subject; it will
be important, in practice, to be able to merge topics which denote the same
subject.</p>
<p>At an abstract level, we can say that our encyclopedia consists of a
set of <em>addressable information resources</em>, each of which
may be located inside of some larger addressable information resource
and each of which pertains to one or more subjects. Our subject index
consists of the following three things:</p>
<ol>
<li>a set of <em>topics</em>, each of which serves as an electronic
surrogate for (reifies) some subject, and each of which may have one or
more names</li>
<li>links from topics to information resources that are considered to be
<em>occurrences</em> of the subjects those topics reify, (e.g.
<em>discussed-in</em>, <em>mentioned-in</em>, <em>depicted-in</em>)</li>
<li><em>associations</em> between topics, (e.g. <em>example-of</em>,
<em>wrote/written-by</em>, <em>lived-in</em>)</li>
</ol>
<p>We use the term <em>topic map</em> to denote any collection of such
things. Note that since subjects, as we have defined them, include
anything human beings want to think about, discuss, or represent in
electronic form, there is no mechanical test to determine whether two
subjects are identical or not, or whether two topics reify the same
subject or not. Accordingly, the subjects themselves make no appearance
in the formal description just given. Nor do we attempt to restrict the
nature of the relationships between topics and their occurrences, or
between topics and other topics. For this reason, the formalism defined
here, while historically developing out of an interest in problems of
subject search over bodies of disparate material in many media, may be
applied to many problems far distant (or so they appear) from the
problems of subject indexing for encyclopedias. The terminology
continues to reflect the historical origins of the terms, in the
interests of clarity and concreteness.</p>
<p>Note that since electronic resources of any kind can themselves
become the objects of our attention, they may also be treated as topics.
(A picture depicting William Shakespeare, for example, is just an
occurrence of the topic representing William Shakespeare, but it might
also be mentioned, as a picture, in a history of art, or in a discussion
of graphics formats, or in an inventory of digital resources — or
in a topic map.)</p>
<!-- end div.sect2 desc-intro section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-overview section ..................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.2 <a id="desc-overview" name="desc-overview">Overview of Topic Map Concepts</a></h2>
<div class="sect2">
<p>This section provides a complete overview of all topic map concepts.
It is based largely on the definitions in <a href="#terms">1.3
Terminology</a>, but uses a logical rather than alphabetical order of
presentation and includes some additional explanatory material.</p>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-topic section ........................ -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.1 <a id="desc-topic" name="desc-topic">Topic</a></h3>
<div class="sect3">
<p>A topic is a resource that acts as a proxy for some <a href="#desc-subject">subject</a>; it is the topic map system's
representation of that subject. The relationship between a topic and its
subject is defined to be one of <a href="#desc-reification">reification</a>. Reification of a subject
allows
<a href="#desc-topic-characteristic">topic characteristics</a> to be
assigned to the topic that reifies it.</p>
<p>Each individual topic is an instance of one or more classes of topics
(also known as <em>topic types</em>) that may or may not be indicated
explicitly. The default topic type is defined by the <a class="psiref" href="#psi-topic">“topic” published subject</a>.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject section ...................... -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.1 <a id="desc-subject" name="desc-subject">Subject</a></h4>
<div class="sect4">
<p>A subject is anything that can be spoken about or conceived of by a
human being. 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. In particular, it is anything on which the author of a
topic map chooses to discourse.</p>
<p>In order to discourse on a subject within the topic map paradigm,
that subject must be <a href="#desc-reification">reified</a> through the
creation of a topic. Subjects are thus the organizing principle of
topics.</p>
<p>In a <a href="#desc-consistent-topic-map">consistent topic map</a> each
subject is represented by just one topic. In a <a href="#desc-topic-map-document">topic map document</a>, on the other hand,
multiple topics may reify the same subject (though preferably in such a way
that they can be <a href="#desc-merging">merged</a> to a single topic during
processing).</p>
<p>Most subjects exist outside the bounds of the computer system; they
cannot be addressed directly and their identities are therefore not
computable. Examples of such <em>non-addressable subjects</em> include
William Shakespeare, the play <cite>Hamlet</cite> and its 1604-05
edition, the character Hamlet, the concept of vengeance, the organization
Shakespeare & Company, this XTM specification, etc. The identity of
non-addressable subjects can only be established indirectly, via a
resource that functions as a <a href="#desc-subject-indicator">subject
indicator</a>.</p>
<p>However, <em>anything</em> can be a subject of discourse in a topic
map, including resources inside the computer, which <em>can</em> be
addressed directly. Resources considered as subjects are called
<em>addressable subjects</em>. An example of an addressable subject
would be this specification, considered as an HTML document.</p>
<!-- end div.sect4 desc-subject section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-reification section .................. -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.2 <a id="desc-reification" name="desc-reification">Reification</a></h4>
<div class="sect4">
<p>The act of creating a topic is called reification. When anything is
reified it becomes the subject of the topic thus created; to reify
something is therefore to create a topic of which that thing is the
subject. Reification of a subject allows topic characteristics to be
assigned to the topic that reifies it: In other words, it makes it
possible to <b>discourse</b> about that subject within the terms of the
topic map paradigm.</p>
<p>The notion of reification is at the very heart of the topic map paradigm.
The only means whereby it is possible to say anything at all in a topic map
is to create a topic and then assign characteristics to it. Topics are what
make subjects “real” for the system and come as close as a
machine can to a representation of what is “real” for
humans.</p>
<p>Since anything whatsoever can be a subject, reification can also be
applied to objects within the topic map itself, such as associations,
names, and occurrences. (For examples of how this can be done syntactically,
see under
<a href="#ex-association"><tt><association></tt></a> and
<a href="#ex-occurrence"><tt><occurrence></tt></a> in <cite>Section 3,
XTM Syntax Documentation</cite>.) This makes it possible both to apply the
power of the topic map paradigm to topic maps themselves, and to enable
multiple levels of knowledge representation within one and the same map,
including making assertions about assertions.</p>
<!-- end div.sect4 desc-reification section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject-identity section ............. -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.3 <a id="desc-subject-identity" name="desc-subject-identity">Subject Identity</a></h4>
<div class="sect4">
<p>Subject identity is the means whereby it can be established which
subject is reified by a particular topic. When two topics have the same
subject identity, they are considered to be “about” the same
thing, and must therefore be merged. Because of the need to be able to
merge topic maps — in effect, to interchange their semantics — the
topic map paradigm goes to great lengths to make it possible to
establish the identity of a topic (and hence its subject) as robustly as
possible.</p>
<p>Subject identity can be established in one of two ways:</p>
<ol>
<li>By addressing the subject directly. This is only possible when the
subject is an addressable information resource.</li>
<li>By indicating the subject via a <a href="#desc-subject-indicator">subject indicator</a> (see below).</li>
</ol>
<!-- end div.sect4 desc-subject-identity section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-subject-indicator section ............ -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.4 <a id="desc-subject-indicator" name="desc-subject-indicator">Subject Indicator</a></h4>
<div class="sect4">
<p>A subject indicator is a <a href="#def-resource">resource</a> that is
intended by the topic map author to provide a positive, unambiguous
indication of the identity of a <a href="#def-subject">subject</a>. When
two topics use the same resource to indicate their subject, they are by
definition “about” the same thing, and must therefore be
merged during processing.</p>
<p>Since subject identity forms the basis for merging topic maps and
interchanging semantics, authors are encouraged to always indicate the
subject identity of their topics in the most robust manner possible, in
particular through the use of standardized ontologies expressed as
<a href="#desc-psis">published subject indicators</a>.</p>
<p>Since one and the same subject may be indicated in many ways, it is
possible for two topics that reify the same subject to use different
subject indicators and therefore not be merged. Situations like this may
be avoided through the use of a third topic (in the same or another
topic map document) that establishes its identity through <em>both</em>
subject indicators. Thus topic maps may be used for mediating between
ontologies.</p>
<!-- end div.sect4 desc-subject-indicator section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-characteristic section ......... -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.5 <a id="desc-topic-characteristic" name="desc-topic-characteristic">Topic Characteristic</a></h4>
<div class="sect4">
<p>Anything that may be asserted about a topic in the topic map paradigm
is known as a <em>characteristic</em> of that topic. Characteristics can
be one of the following:</p>
<ul>
<li>a <a href="#desc-topic-name">topic name</a>,</li>
<li>a <a href="#desc-topic-occurrence">topic occurrence</a>, or</li>
<li>a <a href="#desc-role">role</a> played by a topic as a member of an
association</li>
</ul>
<p>The assignment of such characteristics is considered to be valid
within a certain <a href="#desc-scope">scope</a>, or context.</p>
<!-- end div.sect4 desc-topic-characteristic section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-scope section ........................ -->
<h4><a href="#desc-topic"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.1.6 <a id="desc-scope" name="desc-scope">Scope</a></h4>
<div class="sect4">
<p>Scope specifies the extent of the validity of a <a href="#desc-topic-characteristic">topic characteristic</a> assignment. It
establishes 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. Every characteristic has a scope, which may be specified
either explicitly, as a set of topics, or implicitly, in which case it is
known as the <em>unconstrained scope</em>. Assignments made in the
unconstrained scope are always valid.</p>
<p>Scope is considered to establish a namespace for the base names of
topics. This leads to the constraint, imposed by the topic map paradigm,
called the <em>topic naming constraint</em>, that any topics having the
same <a href="#desc-base-name">base name</a> in the same scope
implicitly refer to the same subject and therefore should be merged.
With the exception of this constraint, the interpretation of a
characteristic's scope and its effect on processing is left to the
application and is in no way constrained by this specification.</p>
<!-- end div.sect4 desc-scope section --></div>
<!-- end div.sect3 desc-topic section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-name section ......................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.2 <a id="desc-name" name="desc-name">Name</a></h3>
<div class="sect3">
<p>A topic may have zero or more names, each of which is considered to
be valid within a certain scope (which may be the unconstrained
scope).</p>
<p>Each name may exist in multiple forms. A name always has exactly one base
form, known as the <a href="#desc-base-name">base name</a>, and it may, in
addition, have one or more <a href="#desc-variant-name">variants</a>
for use in specific processing contexts.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-base-name section .................... -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.1 <a id="desc-base-name" name="desc-base-name">Base Name</a></h4>
<div class="sect4">
<p>A base name is the base form of a topic name; it is always a string.
When an application chooses to use a particular topic name to label a
topic, the base name provides the string for the application to use
unless a variant exists that is deemed to be more apposite in the
processing context.</p>
<p>Base names are subject to the topic naming constraint, which
prohibits a <a href="#def-processed-topic-map">processed topic map</a>
from containing multiple topics with the same base name in the same
scope.</p>
<!-- end div.sect4 desc-base-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-variant-name section ................. -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.2 <a id="desc-variant-name" name="desc-variant-name">Variant Name</a></h4>
<div class="sect4">
<p>A variant name is an alternative form of a base name, that is
optimized for a particular computational purpose, such as sorting or
display. It may be any kind of a resource, including a string. An
application chooses among variant names by evaluating their
<a href="#desc-parameters">parameters</a>.</p>
<!-- end div.sect4 desc-variant-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-parameters section ................... -->
<h4><a href="#desc-name"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.2.3 <a id="desc-parameters" name="desc-parameters">Parameters</a></h4>
<div class="sect4">
<p>Parameters are information, in the form of a set of topics, that
expresses the appropriate processing context for a <a href="#def-variant-name">variant name</a>. Having selected a particular
topic name, an application may choose to examine the parameters of its
variants (if any) in order to select the most suitable form of that
name.</p>
<!-- end div.sect4 desc-parameters section --></div>
<!-- end div.sect3 desc-name section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-occurrence section ................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.3 <a id="desc-occurrence" name="desc-occurrence">Occurrence</a></h3>
<div class="sect3">
<p>An occurrence is any information that is specified as being relevant
to a given subject. Occurrences constitute one of the three kinds of
<a href="#desc-topic-characteristic">characteristic</a> that can be
assigned to a topic and are therefore governed by <a href="#desc-scope">scope</a>. Each individual occurrence is an instance
of a single class of occurrence (also known as an <em>occurrence
type</em>) that may or may not be indicated explicitly. The default
occurrence type is defined by the <a class="psiref" href="#psi-occurrence">“occurrence” published subject</a>.</p>
<p>In order to be expressed in an XTM topic map, such occurrences must
be resources that are either</p>
<ol>
<li>addressable by reference using a URI (a “resource
reference”), or</li>
<li>capable of being placed inline as character data (“resource
data”).</li>
</ol>
<p>The latter (resource data) provides a useful way of expressing a short
piece of information about a subject (e.g. a work's date of
composition).</p>
<!-- end div.sect3 desc-occurrence section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-association section .................. -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.4 <a id="desc-association" name="desc-association">Association</a></h3>
<div class="sect3">
<p>An association is a relationship between one or more topics, each of
which plays a <a href="#desc-role">role</a> as a <a href="#desc-member">member</a> of that association. The roles a topic
plays in associations are among the <a href="#desc-topic-characteristic">characteristics</a> that can be
assigned to it and are therefore governed by <a href="#desc-scope">scope</a>. Each individual association is an instance
of a single class of association (also known as an <em>association
type</em>) that may or may not be indicated explicitly. The default
association type is defined by the <a class="psiref" href="#psi-association">“association” published subject</a>.</p>
<p>There is no directionality inherent in an association.
(Associations describe <em>relationships</em>: If <var>A</var> is
related to <var>B</var>, then <var>B</var> must also be related to
<var>A</var>. The issue is rather, what is the <em>type</em> of the
relationship, and what <em>roles</em> are played by its members. The
question of how to <em>label</em> a relationship is one of naming, not
direction.)</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-member section ....................... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.1 <a id="desc-member" name="desc-member">Member</a></h4>
<div class="sect4">
<p>A member is a set of topics that play a particular <a href="#desc-role">role</a> in an association.</p>
<!-- end div.sect4 desc-member section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-role section ......................... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.2 <a id="desc-role" name="desc-role">Role</a></h4>
<div class="sect4">
<p>The concept of role expresses the nature of a topic's involvement as
a member of an association.</p>
<!-- end div.sect4 desc-role section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-class-instance section ............... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.3 <a id="desc-class-instance" name="desc-class-instance">Class-Instance</a></h4>
<div class="sect4">
<p>Class-instance is a class of association that expresses
class-instance relationships between topics that play the roles of class
and instance respectively. The subjects
<a class="psiref" href="#psi-class-instance">“class-instance”</a>,
<a class="psiref" href="#psi-class">“class”</a>, and
<a class="psiref" href="#psi-instance">“instance”</a>
are all defined by published subject indicators (PSIs) published in
this specification.</p>
<!-- end div.sect4 desc-class-instance section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-superclass-subclass section .......... -->
<h4><a href="#desc-association"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.4.4 <a id="desc-superclass-subclass" name="desc-superclass-subclass">Superclass-Subclass</a></h4>
<div class="sect4">
<p>Superclass-subclass is a class of association that expresses
superclass-subclass relationships between topics that play the roles of
superclass and subclass respectively. The subjects
<a class="psiref" href="#psi-superclass-subclass">“superclass-subclass”</a>,
<a class="psiref" href="#psi-superclass">“superclass”</a>, and
<a class="psiref" href="#psi-subclass">“subclass”</a>
are all defined by PSIs published in this specification.</p>
<!-- end div.sect4 desc-superclass-subclass section --></div>
<!-- end div.sect3 desc-association section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-topic-map section .................... -->
<h3><a href="#desc-overview"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.2.5 <a id="desc-topic-map" name="desc-topic-map">Topic Map</a></h3>
<div class="sect3">
<p>A topic map is a collection of topics, associations, and scopes
(collectively called <a href="#desc-topic-map-node">topic map nodes</a>)
that may exist in one of two forms:</p>
<ol>
<li>a serialized interchange format (e.g. as a <a href="#topic-map-document">topic map document</a> expressed in XTM
or some other syntax), or</li>
<li>an application-internal form, as constrained by the <a href="#processing">XTM Processing Requirements</a> defined in Annex
F</li>
</ol>
<p>The purpose of a topic map is to convey knowledge about resources
through a superimposed layer, or map, of the resources. A topic map
captures the subjects of which resources speak, and the relationships
between resources, in a way that is implementation-independent.</p>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-map-node section ............... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.1 <a id="desc-topic-map-node" name="desc-topic-map-node">Topic Map Node</a></h4>
<div class="sect4">
<p>Topic map nodes are objects in the system's internal representation of
a topic map that represent
<a href="#desc-topic">topics</a>,
<a href="#desc-association">associations</a>, and
<a href="#desc-scope">scopes</a>.</p>
<!-- end div.sect4 desc-topic-map-node section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-consistent-topic-map section ......... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.2 <a id="desc-consistent-topic-map" name="desc-consistent-topic-map">Consistent Topic Map</a></h4>
<div class="sect4">
<p>A consistent topic map is one in which there is one topic per subject
and no further opportunities for merging or duplicate suppression, as
defined in <a href="#processing">Annex F: XTM Processing
Requirements</a>.</p>
<!-- end div.sect4 desc-consistent-topic-map section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-topic-map-document section ........... -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.3 <a id="desc-topic-map-document" name="desc-topic-map-document">Topic Map Document</a></h4>
<div class="sect4">
<p>A topic map document is a document that contains one or more topic
maps that conform to this specification. It may be serialized for the
purpose of storage or interchange in a syntax governed by this or some
other specification.</p>
<!-- end div.sect4 desc-topic-map-document section --></div>
<!-- ............................................................. -->
<!-- begin div.sect4 : desc-xtm-document section ................. -->
<h4><a href="#desc-topic-map"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect4.gif" width="16"></a>
2.2.5.4 <a id="desc-xtm-document" name="desc-xtm-document">XTM document</a></h4>
<div class="sect4">
<p>An XTM document is a topic map document that is expressed in the
syntax defined by this specification.</p>
<!-- end div.sect4 desc-xtm-document section --></div>
<!-- end div.sect3 desc-topic-map section --></div>
<!-- end div.sect2 desc-overview section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-psis section ......................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.3 <a id="desc-psis" name="desc-psis">Published Subjects</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : desc-psis-intro ........................... -->
<h3><a href="#desc-psis"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.3.1 <a id="desc-psis-intro" name="desc-psis-intro">Introduction</a></h3>
<div class="sect3">
<p>A published subject is any subject for which a <a href="#desc-subject-indicator">subject indicator</a> has been made
available for public use and is accessible online via a URI. A published
subject indicator is therefore any resource that has been published in
order to provide a positive, unambiguous indication of the identity of a
subject for the purpose of facilitating topic map interchange and
mergeability.</p>
<!-- end div.sect3 --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : mandatory PSIs ............................ -->
<h3><a href="#desc-psis"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
2.3.2 <a id="psi-mandatory" name="psi-mandatory">XTM Mandatory Published Subject Indicators</a></h3>
<div class="sect3">
<p>Certain subjects are necessary for, intrinsic to, and therefore
published in this specification. Various constraints imposed by this
specification are expressed in terms of these published subjects,
including the default class of topics, associations, and occurrences,
and the equivalence between the use of <tt><instanceOf></tt> and
an association of type <tt>class-instance</tt> in the unconstrained
scope.</p>
<p>The Published Subject Indicators provided by this specification for the
XTM mandatory subjects are briefly identified in this section. The brief
descriptions found here are referenced as subject indicators by the
<tt><topic></tt> elements contained in the topic map found in <a href="#coremap">Annex E: XTM 1.0 Core Published Subject Indicators</a>.</p>
<!-- begin list of XTM 1.0 Core Published Subject Identifier Descriptions ... -->
<dl><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-topic" name="psi-topic"><b>topic</b></a></dt><dd><p>The core concept of topic; the generic class to which
all topics belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#topic</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-association" name="psi-association"><b>association</b></a></dt><dd><p>The core concept of association; the generic class to
which all associations belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#association</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-occurrence" name="psi-occurrence"><b>occurrence</b></a></dt><dd><p>The core concept of occurrence; the generic class to
which all occurrences belong unless otherwise specified.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-class-instance" name="psi-class-instance"><b>class-instance relationship</b></a></dt><dd><p>The core concept of class-instance;
the class of association that represents class-instance
relationships between topics, and that is semantically equivalent
to the use of <tt><instanceOf></tt> subelements.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-class" name="psi-class"><b>class</b></a></dt><dd><p>The core concept of class; the role of class as played
by one of the members of a class-instance association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#class</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-instance" name="psi-instance"><b>instance</b></a></dt><dd><p>The core concept of instance; the role of instance as
played by one of the members of a class-instance association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#instance</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-superclass-subclass" name="psi-superclass-subclass"><b>superclass-subclass relationship</b></a></dt><dd><p>The core concept of
superclass-subclass; the class of association that represents
superclass-subclass relationships between topics.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#superclass-subclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-superclass" name="psi-superclass"><b>superclass</b></a></dt><dd><p>The core concept of superclass; the role of superclass
as played by one of the members of a superclass-subclass association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#superclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-subclass" name="psi-subclass"><b>subclass</b></a></dt><dd><p>The core concept of subclass; the role of subclass as
played by one of the members of a superclass-subclass association.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#subclass</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-sort" name="psi-sort"><b>suitability for sorting</b></a></dt><dd><p>Suitability of a topic name for use as a
sort key; for use in the parameters of variant names.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#sort</span></p></dd><!-- begin Published Subject Indicator --><dt><a class="psi-rsrc" id="psi-display" name="psi-display"><b>suitability for display</b></a></dt><dd><p>Suitability of a topic name for display;
for use in the parameters of variant names.<br>
<span class="psi-title">http://www.topicmaps.org/xtm/1.0/core.xtm#display</span></p></dd></dl><!-- end list of XTM published subject identifier descriptions -->
<!-- end div.sect3 --></div>
<!-- end div.sect2 desc-psis section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : desc-merging section ...................... -->
<h2><a href="#concepts"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
2.4 <a id="desc-merging" name="desc-merging">Merging</a></h2>
<div class="sect2">
<p>The term <em>merging</em> covers two distinct processes:</p>
<ol>
<li>The process of merging two topic maps, either as a result of explicit
<tt><mergeMap></tt> directives, or for any application-specific
reasons.</li>
<li>The process of merging two topics.</li>
</ol>
<p>The rules governing all forms of merging and the determination of
subject identity are given in full in <a href="#processing">Annex F: XTM
Processing Requirements</a>. They can be briefly (and incompletely) stated
as follows:</p>
<ol>
<li>When two topic maps are merged, any topics that the application, by
whatever means, determines to have the same subject are merged, and any
duplicate associations are removed.</li>
<li>When two topics are merged, the result is a single topic whose
characteristics are the union of the characteristics of the original
topics, with duplicates removed.</li>
</ol>
<p>Two topics are always deemed to have the same subject if:</p>
<ol>
<li>they have one or more subject indicators in common,</li>
<li>they reify the same addressable subject, or</li>
<li>they have the same base name in the same scope.</li>
</ol>
<!-- end div.sect2 desc-merging section --></div>
<!-- end div.sect1 concepts section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ....................................................................... -->
<!-- begin div.sect1 : syntax documentation ................................ -->
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
3. <a id="syntax" name="syntax">XTM Syntax Documentation</a></h1>
<div class="sect1">
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: introduction ...................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.1 <a id="syn-intro" name="syn-intro">Introduction to XTM Syntax</a></h2>
<div class="sect2">
<p>The syntax for serializing and interchanging topic map documents
conforming to this specification is defined by the XML document type
definition provided in <a href="#dtd">Annex D: XTM 1.0 Document Type
Declaration</a>. This section provides documentation for all the element
types defined in that DTD.</p>
<p>The following is a complete list of XTM element types in the
order in which they are documented:</p>
<!-- begin legend ........ -->
<ul>
<li><a href="#elt-topicRef"><topicRef></a>: Reference to a Topic element </li>
<li><a href="#elt-subjectIndicatorRef"><subjectIndicatorRef></a>: Reference to a Subject Indicator </li>
<li><a href="#elt-scope"><scope></a>: Reference to Topic(s) that comprise the Scope </li>
<li><a href="#elt-instanceOf"><instanceOf></a>: Points to a Topic representing a class </li>
<li><a href="#elt-topicMap"><topicMap></a>: Topic Map document element </li>
<li><a href="#elt-topic"><topic></a>: Topic element </li>
<li><a href="#elt-subjectIdentity"><subjectIdentity></a>: Subject reified by Topic </li>
<li><a href="#elt-baseName"><baseName></a>: Base Name of a Topic </li>
<li><a href="#elt-baseNameString"><baseNameString></a>: Base Name String container </li>
<li><a href="#elt-variant"><variant></a>: Alternate forms of Base Name </li>
<li><a href="#elt-variantName"><variantName></a>: Container for Variant Name </li>
<li><a href="#elt-parameters"><parameters></a>: Processing context for Variant </li>
<li><a href="#elt-association"><association></a>: Topic Association </li>
<li><a href="#elt-member"><member></a>: Member in Topic Association </li>
<li><a href="#elt-roleSpec"><roleSpec></a>: Points to a Topic serving as an Association Role</li>
<li><a href="#elt-occurrence"><occurrence></a>: Resources regarded as an Occurrence </li>
<li><a href="#elt-resourceRef"><resourceRef></a>: Reference to a Resource </li>
<li><a href="#elt-resourceData"><resourceData></a>: Container for Resource data </li>
<li><a href="#elt-mergeMap"><mergeMap></a>: Merge with another Topic Map </li>
</ul>
<!-- end legend .......... -->
<!-- end div.sect2 syntax: intro --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: references section ................ -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.2 <a id="syn-refs" name="syn-refs">References to Topics and Subject Indicators</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topicRef' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.2.1 <a id="elt-topicRef" name="elt-topicRef"><topicRef> Element</a></h3>
<div class="sect3">
<p>The <tt><topicRef></tt> element provides a URI reference to a
topic. The target of a <tt><topicRef></tt> link must resolve to a <a class="eltref" href="#elt-topic"><tt><topic></tt></a> element child of
a <tt><topicMap></tt> document that conforms to this XTM
specification. The target <tt><topic></tt> need not be in the document
entity of origin.</p>
<p><tt><topicRef></tt>s are identical to
<tt><a href="#elt-subjectIndicatorRef"><subjectIndicatorRef></a></tt>s,
except for the additional constraint that they must point to
<tt><topic></tt> elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-parameters"><parameters></a></tt>,
<tt><a href="#elt-roleSpec"><roleSpec></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topicRef"><!-- element declaration -->
<!<b>ELEMENT</b> topicRef EMPTY >
</pre>
<p>
The <tt><topicRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topicRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topicRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><topicRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link. </td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.
</p>
</div>
<!-- div.sect4 end --></div>
<h4><a name="ex-topicRef" id="ex-topicRef">Examples</a></h4>
<div class="sect4">
<p>Reference to a topic with the ID “en” in the document
<em>language.xtm</em> (this is in fact a published subject for the language
English):</p>
<pre class="markup"> <topicRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</pre>
<p>Reference to a topic with the ID “play” that is
physically located in the current document:</p>
<pre class="markup"> <topicRef xlink:href="#play"/>
</pre>
<p>For further examples, see
<tt><a href="#ex-scope"><scope></a></tt>,
<tt><a href="#ex-instanceOf"><instanceOf></a></tt>,
<tt><a href="#ex-variant"><variant></a></tt>,
<tt><a href="#ex-association"><association></a></tt>, and
<tt><a href="#ex-mergeMap"><mergeMap></a></tt>.
</p>
<!-- div.sect4 end --></div>
<!-- end div.sect3 element type 'topicRef' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'subjectIndicatorRef' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.2.2 <a id="elt-subjectIndicatorRef" name="elt-subjectIndicatorRef"><subjectIndicatorRef> Element</a></h3>
<div class="sect3">
<p> The <tt><subjectIndicatorRef></tt> element provides a URI
reference to a resource that acts as a subject indicator.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-parameters"><parameters></a></tt>,
<tt><a href="#elt-roleSpec"><roleSpec></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-subjectIndicatorRef"><!-- element declaration -->
<!<b>ELEMENT</b> subjectIndicatorRef EMPTY >
</pre>
<p>The <tt><subjectIndicatorRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-subjectIndicatorRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> subjectIndicatorRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><subjectIndicatorRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link.</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.
</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-subjectIndicatorRef" id="ex-subjectIndicatorRef">Examples</a></h4>
<div class="sect4">
<p>Reference to a published subject indicator:</p>
<pre class="markup"> <subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</pre>
<p>Reference to a (fictitious) resource that indicates a subject less
formally:</p>
<pre class="markup"> <subjectIndicatorRef
xlink:href="http://www.shakespeare.org/plays.html#hamlet"/>
</pre>
<p>For further examples, see
<tt><a href="#ex-scope"><scope></a></tt>,
<tt><a href="#ex-instanceOf"><instanceOf></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a>.</tt>
</p>
<p>For examples of how to use <tt><subjectIndicatorRef></tt> to
reify topic map constructs, see
<tt><a href="#ex-association"><association></a></tt> and
<tt><a href="#ex-occurrence"><occurrence></a></tt>.
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'subjectIndicatorRef' section --></div>
<!-- end div.sect2 syntax: references section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: scope section ..................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.3 <a id="syn-scope" name="syn-scope">Scope and Context</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'scope' ....... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.3.1 <a id="elt-scope" name="elt-scope"><scope> Element</a></h3>
<div class="sect3">
<p>The <tt><scope></tt> element consists of one or more
<tt><topicRef></tt>, <tt><resourceRef></tt>, or
<tt><subjectIndicatorRef></tt> elements. The union of the subjects
corresponding to these elements specifies the context in which the
assignment of the topic characteristic is considered to be valid.</p>
<p>A declaration of a topic characteristic is valid only within a scope.
When a topic characteristic declaration does not specify a scope, it is
valid in the <a href="#def-unconstrained-scope">unconstrained
scope</a>.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-scope"><!-- element declaration -->
<!<b>ELEMENT</b> scope ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each repeatable <tt><topicRef></tt> child element
references a <tt><topic></tt> element (“scoping
topic”) whose subject contributes to the scope.
</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>Each repeatable <tt><resourceRef></tt> child element
references a resource that contributes to the scope.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each repeatable <tt><subjectIndicatorRef></tt> child element
references a resource that indicates the identity of the subject
that contributes to the scope.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-scope"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> scope
id ID #IMPLIED
>
</pre>
<p>The <tt><scope></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-scope" id="ex-scope">Examples</a></h4>
<div class="sect4">
<p>Define a scope consisting of the subject “English” using
a published subject:</p>
<pre class="markup"> <scope>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/language.xtm#en"/>
</scope>
</pre>
<p>Define a scope consisting of the topics “tragedy” and
“theatre” in the current document:</p>
<pre class="markup"> <scope>
<topicRef xlink:href="#tragedy"/>
<topicRef xlink:href="#theatre"/>
</scope>
</pre>
<p>For further examples, see
<tt><a href="#elt-baseName"><baseName></a>.</tt>
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'scope' section --></div>
<!-- end div.sect2 syntax: scope section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: classes and instances section ..... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.4 <a id="syn-classes" name="syn-classes">Classes and Instances</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'instanceOf' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.4.1 <a id="elt-instanceOf" name="elt-instanceOf"><instanceOf>
Element</a></h3>
<div class="sect3">
<p> The <tt><instanceOf></tt> element specifies the class to
which its parent belongs, via a
<a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a> or
<a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>
child element.</p>
<p>For the constraints on the usage of <tt><instanceOf></tt>,
see the description of the element types that can be its parent:
<a class="eltref" href="#elt-topic"><tt><topic></tt></a>,
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>,
and <a class="eltref" href="#elt-association"><tt><association></tt></a>.</p>
<p>The <tt><instanceOf></tt> element is a syntactic shortcut for an
association of a special type defined by the
<a class="psiref" href="#psi-class-instance">class-instance published
subject</a>.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-instanceOf"><!-- element declaration -->
<!<b>ELEMENT</b> instanceOf ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The <tt><topicRef></tt> child element references
a <tt><topic></tt> element that reifies a class of
subject.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The <tt><subjectIndicatorRef></tt> child element references
a resource that indicates the identity of a class of subject.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-instanceOf"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> instanceOf
id ID #IMPLIED
>
</pre>
<p>The <tt><instanceOf></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-instanceOf" id="ex-instanceOf">Examples</a></h4>
<div class="sect4">
<p>Declare that the topic with the ID “hamlet” is an
instance of the topic type whose ID is “play”:</p>
<pre class="markup"> <topic id="play">
...
</topic>
<topic id="hamlet">
<instanceOf>
<topicRef xlink:href="#play"/>
</instanceOf>
</topic>
</pre>
<p>Reference a subject indicator to establish the subject of which a
topic is an instance:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.shakespeare.org/plays.html"/>
</instanceOf>
</topic>
</pre>
<p>Reference a published subject in a public ontology to establish the
subject of which a topic is an instance:</p>
<pre class="markup"> <topic id="shakespeare">
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.iptc.org/NewsML/topicsets/-
topicset.iptc-topictype.xml#TopicTypes.Person"/>
</instanceOf>
</topic>
</pre>
<p>For further examples, see
<tt><a href="#elt-topic"><topic></a>,</tt>
<tt><a href="#elt-association"><association></a>, and</tt>
<tt><a href="#elt-occurrence"><occurrence></a>.</tt>
</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'instanceOf' section --></div>
<!-- end div.sect2 syntax: classes and instances section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: the topic map ..................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.5 <a id="syn-topicmap" name="syn-topicmap">The Topic Map</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topicMap' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.5.1 <a id="elt-topicMap" name="elt-topicMap"><topicMap> Element</a></h3>
<div class="sect3">
<p>The <tt><topicMap></tt> element is the parent of all
<a class="eltref" href="#elt-topic"><tt><topic></tt></a>,
<a class="eltref" href="#elt-association"><tt><association></tt></a>, and
<a class="eltref" href="#elt-mergeMap"><tt><mergeMap></tt></a> elements
in the topic map document.</p>
<p>The <tt><topicMap></tt> element is the root element from which topic map
syntactical recognition is performed. The <tt><topicMap></tt> element can
be the root of a document containing only a topic map (i.e. when it is the
document element), or it can be the root of a subtree inside an XML document
containing other information than the topic map itself. In the latter case,
only the subtree starting with the element <tt><topicMap></tt> is taken
into account for topic map syntactical recognition and conformance.</p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topicMap"><!-- element declaration -->
<!<b>ELEMENT</b> topicMap
( <a class="dref" href="#elt-topic">topic</a> | <a class="dref" href="#elt-association">association</a> | <a class="dref" href="#elt-mergeMap">mergeMap</a> )*
>
</pre>
<dl><dt><a class="eltref" href="#elt-topic"><tt><topic></tt></a></dt><dd>Each optional and repeatable <tt><topic></tt> child
element reifies a single subject. </dd><dt><a class="eltref" href="#elt-association"><tt><association></tt></a></dt><dd>Each optional and repeatable <tt><association></tt>
child element specifies a relationship among topics. </dd><dt><a class="eltref" href="#elt-mergeMap"><tt><mergeMap></tt></a></dt><dd>Each optional and repeatable <tt><mergeMap></tt>
child element causes its parent topic map to be merged with another topic map.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topicMap"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topicMap
id ID #IMPLIED
xmlns CDATA #FIXED 'http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
</pre>
<p>The <tt><topicMap></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xmlns</tt></th>
<td>namespace identifier for default XML namespace</td>
</tr>
<tr><th><tt>xmlns:xlink</tt></th>
<td>namespace identifier for XLink namespace</td>
</tr>
<tr><th><tt>xml:base</tt></th>
<td>reference to document base URI</td>
</tr>
</tbody>
</table>
<p class="note"><b>Notes:</b><br>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.<br>
See section 3 of <a class="xref" href="#ref_xbase">[XML Base]</a>
for details on use of the <tt>xml:base</tt> attribute.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-topicMap" id="ex-topicMap">Examples</a></h4>
<div class="sect4">
<p>A <tt><topicMap></tt> element embedded in an XML document:</p>
<pre class="markup"> ...
<topicMap>
<!-- topics, associations, and merge map directives go here -->
</topicMap>
...
</pre>
<p>A <tt><topicMap></tt> element that constitutes a complete
document:</p>
<pre class="markup"> <?xml version="1.0"?>
<!DOCTYPE topicMap
PUBLIC "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
"file://usr/local/home/gromit/xml/xtm/xtm1.dtd">
<topicMap xmlns='http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink='http://www.w3.org/1999/xlink'
xml:base='http://www.shakespeare.org/hamlet/'>
<!-- topics, associations, and merge map directives go here -->
</topicMap>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'topicMap' section --></div>
<!-- end div.sect2 syntax: the topic map section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: topics and subjects ............... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.6 <a id="syn-topsubj" name="syn-topsubj">Topics and Subjects</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'topic' ....... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.6.1 <a id="elt-topic" name="elt-topic"><topic> Element</a></h3>
<div class="sect3">
<p>The <tt><topic></tt> element specifies the name and
occurrence characteristics of a single topic. It has a single unique
identifier, and the ability to state the class(es) of which it is an
instance and the identity of the subject that it reifies.</p>
<p>By definition, a topic reifies only one subject. Every topic is
intended to be organized around exactly one subject, even if that
subject is only implicitly defined. During XTM processing, topics with
identical subjects will be merged according to the rules specified in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
<p>However, a topic map <em>document</em> may contain multiple topic
elements that reify the same subject. After processing there will only be
one topic for each subject; its characteristics will be the union of the
characteristics of all topics that reified that subject. (For further
discussion of the merging process, see <a href="#desc-merging">Section 2.4,
Merging</a>.)</p>
<p>The class(es) of which the topic is an instance are indicated via the
<tt><instanceOf></tt> child element(s), each of which addresses
either a topic or a subject indicator. If no <tt><instanceOf></tt>
children are present, the class of the topic defaults to the class
defined by the
<a class="psiref" href="#psi-topic">topic published subject</a>.</p>
<p>A <tt><topic></tt> element specifies zero or more names
and zero or more occurrences that are relevant to its subject. Names are
declared by means of
<a class="eltref" href="#elt-baseName"><tt><baseName></tt></a> child
elements. Occurrences are specified by means of
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>
child elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-topic"><!-- element declaration -->
<!<b>ELEMENT</b> topic
( <a class="dref" href="#elt-instanceOf">instanceOf</a>*, <a class="dref" href="#elt-subjectIdentity">subjectIdentity</a>?, ( <a class="dref" href="#elt-baseName">baseName</a> | <a class="dref" href="#elt-occurrence">occurrence</a> )* )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>Each optional and repeatable <tt><instanceOf></tt>
child element specifies a class of which this topic is an
instance.
</dd><dt><a class="eltref" href="#elt-subjectIdentity"><tt><subjectIdentity></tt></a></dt><dd>The optional <tt><subjectIdentity></tt> child element
specifies the subject identity of this topic.</dd><dt><a class="eltref" href="#elt-baseName"><tt><baseName></tt></a></dt><dd>Each optional and repeatable <tt><baseName></tt>
child element specifies a name characteristic of this topic.</dd><dt><a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a></dt><dd>Each optional and repeatable <tt><occurrence></tt>
child element specifies information resources that are relevant to
this topic.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-topic"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> topic
id ID #REQUIRED
>
</pre>
<p>The <tt><topic></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-topic" id="ex-topic">Example</a></h4>
<div class="sect4">
<p>The topic whose ID is “hamlet” is an instance of the
topic type whose ID is “play”:</p>
<pre class="markup"> <topic id="hamlet">
<instanceOf>
<topicRef xlink:href="#play"/>
</instanceOf>
<!-- base names and occurrences go here -->
</topic>
</pre>
<p>For further examples, see
<a class="eltref" href="#elt-subjectIdentity"><tt><subjectIdentity></tt></a>,
<a class="eltref" href="#elt-baseName"><tt><baseName></tt></a>,
<a class="eltref" href="#elt-variant"><tt><variant></tt></a>,
<a class="eltref" href="#elt-association"><tt><association></tt></a>, and
<a class="eltref" href="#elt-occurrence"><tt><occurrence></tt></a>.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'topic' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'subjectIdentity' ... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.6.2 <a id="elt-subjectIdentity" name="elt-subjectIdentity"><subjectIdentity> Element</a></h3>
<div class="sect3">
<p>The <tt><subjectIdentity></tt> element specifies the subject
that is reified by a topic, via
<a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a>,
<a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>,
and/or
<a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a>
child elements.</p>
<p>When a topic has an addressable subject, the subject can be addressed
directly via a <a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a> element.
In that case, it is the resource itself which is considered the subject
of the topic, not what the resource means or indicates. There can be
only one such resource per topic.</p>
<p>Resources may also be subject <em>indicators</em>, as opposed to
subjects in and of themselves. Resources are used to indicate subjects
via <a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a>
elements, of which there may be more than one per topic.</p>
<p>A topic may also indicate that it has the same subject as another
topic by addressing that topic via a <a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a> element. There may be
multiple such elements, each of which causes topic merging to occur.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-subjectIdentity"><!-- element declaration -->
<!<b>ELEMENT</b> subjectIdentity
( <a class="dref" href="#elt-resourceRef">resourceRef</a>?, ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
</pre>
<dl><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>
The optional <tt><resourceRef></tt> element
references an <a href="#def-addressable-subject"><em>addressable subject</em></a>.
</dd><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each optional and repeatable <tt><topicRef></tt>
child element references a <tt><topic></tt> element that
shares the same subject.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each optional and repeatable <tt><subjectIndicatorRef></tt>
child element references a subject indicator.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-subjectIdentity"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> subjectIdentity
id ID #IMPLIED
>
</pre>
<p>The <tt><subjectIdentity></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-subjectIdentity" id="ex-subjectIdentity">Examples</a></h4>
<div class="sect4">
<p>In Topic Map 1: Establish identity by referencing a published subject
indicator (here, the country Denmark, as defined by the TopicMaps.Org
PSIs based on ISO 3166):</p>
<pre class="markup"> <topic id="dk">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/country.xtm#dk"/>
</subjectIdentity>
</topic>
</pre>
<p>In Topic Map 2: Establish identity by referencing a more informal
ontology (here, the online version of the CIA World Factbook):</p>
<pre class="markup"> <topic id="da">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.cia.gov/cia/publications/factbook/geos/da.html"/>
</subjectIdentity>
</topic>
</pre>
<p>In Topic Map 3: Declare a topic that expresses a mapping between the
ISO and CIA ontologies and causes correct merging:</p>
<pre class="markup"> <topic id="denmark">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/country.xtm#dk"/>
<subjectIndicatorRef
xlink:href="http://www.cia.gov/cia/publications/factbook/geos/da.html"/>
</subjectIdentity>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'subjectIdentity' section --></div>
<!-- end div.sect2 syntax: topics and subjects section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: topic names ....................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.7 <a id="syn-topnames" name="syn-topnames">Topic Names</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'baseName' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.1 <a id="elt-baseName" name="elt-baseName"><baseName> Element</a></h3>
<div class="sect3">
<p>The <tt><baseName></tt> element specifies a topic name. A topic
name is represented by one string: the content of the
<tt><baseNameString></tt> child of <tt><baseName></tt>. The
context within which the assignment of a name to a topic is valid may be
expressed using a <a class="eltref" href="#elt-scope"><tt><scope></tt></a> child element. If none such is
present, the scope is unconstrained and the name is always valid. A
topic may have multiple base names in the same and/or multiple
scopes.</p>
<p>Natural language discrimination between base names may be specified
by a child <tt><scope></tt> element. (Published subjects suitable
for defining such scopes can be found in <cite>XTM Language
Topics</cite>, a topic map maintained by TopicMaps.Org that provides
published subjects for natural languages. See <a href="#coremap2">Annex
E: XTM 1.0 Core Published Subject Indicators</a>.)</p>
<p>Base names are subject to the
<a href="#def-topic-naming-constraint">topic naming constraint</a> that
two topics with the same base name in the same scope implicitly reify
the same subject and should therefore be merged.</p>
<p>Alternate forms of the topic name, optimized for computational
purposes like sorting, searching, and display, are specified by
<a class="eltref" href="#elt-variant"><tt><variant></tt></a> elements.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-baseName"><!-- element declaration -->
<!<b>ELEMENT</b> baseName ( <a class="dref" href="#elt-scope">scope</a>?, <a class="dref" href="#elt-baseNameString">baseNameString</a>, <a class="dref" href="#elt-variant">variant</a>* ) >
</pre>
<dl><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which this base name is valid.</dd><dt><a class="eltref" href="#elt-baseNameString"><tt><baseNameString></tt></a></dt><dd>The single mandatory <tt><baseNameString></tt> child
element provides the string that is the base name of the
topic.</dd><dt><a class="eltref" href="#elt-variant"><tt><variant></tt></a></dt><dd>The optional and repeatable <tt><variant></tt> child
element provides alternate forms of the base name.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-baseName"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> baseName
id ID #IMPLIED
>
</pre>
<p>The <tt><baseName></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a id="ex-baseName" name="ex-baseName">Examples</a></h4>
<div class="sect4">
<p>Simple example:</p>
<pre class="markup"> <topic id="shakespeare">
<baseName>
<baseNameString>William Shakespeare</baseNameString>
</baseName>
</topic>
</pre>
<p>Topic with multiple names in different languages, differentiated by
scope (assumes the existence of topics with the IDs “en” and
“da” that reify the subjects “English” and
“Danish” respectively):</p>
<pre class="markup"> <topic id="denmark">
<!-- baseName for English -->
<baseName>
<scope><topicRef xlink:href="#en"/></scope>
<baseNameString>Denmark</baseNameString>
</baseName>
<!-- baseName for Danish -->
<baseName>
<scope><topicRef xlink:href="#da"/></scope>
<baseNameString>Danmark</baseNameString>
</baseName>
</topic>
</pre>
<p>Use of scope to avoid undesired merging due to the topic naming
constraint (if the two uses of the name “Hamlet” were not
scoped in different ways, these two topics would be merged):</p>
<pre class="markup"> <topic id="hamlet">
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of
Denmark</baseNameString>
</baseName>
<baseName>
<scope><topicRef xlink:href="#play"/></scope>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
<topic id="character-hamlet">
<baseName>
<scope><topicRef xlink:href="#character"/></scope>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
</pre>
<p>Give an association type multiple names in order that associations of
this type may be labeled differently depending on which role they are
viewed from. The topic in this example has the default name
“written by” (in the unconstrained scope); however, in the
context “author” (e.g. when, in an application, what is
regarded as the “current topic” plays the role of
“author”), the string “author of” is deemed to
provide a more appropriate base name:</p>
<pre class="markup"> <topic id="written-by">
<baseName>
<baseNameString>written by</baseNameString>
</baseName>
<baseName>
<scope><topicRef xlink:href="#author"/></scope>
<baseNameString>author of</baseNameString>
</baseName>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'baseName' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'baseNameString' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.2 <a id="elt-baseNameString" name="elt-baseNameString"><baseNameString> Element</a></h3>
<div class="sect3">
<p>The <tt><baseNameString></tt> element is a string that
represents the base name of its ancestor <tt><topic></tt> parent.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-baseNameString"><!-- element declaration -->
<!<b>ELEMENT</b> baseNameString ( #PCDATA ) >
</pre>
<p>The <tt><baseNameString></tt> element contains
<tt>#PCDATA</tt>; it may only contain character data.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-baseNameString"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> baseNameString
id ID #IMPLIED
>
</pre>
<p>The <tt><baseNameString></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-baseNameString" id="ex-baseNameString">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-baseName"><baseName></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'baseNameString' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'variant' ..... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.3 <a id="elt-variant" name="elt-variant"><variant> Element</a></h3>
<div class="sect3">
<p>The <tt><variant></tt> element is an alternate form of a
topic's base name appropriate for a processing context specified by the
variant's <tt><parameters></tt> child element. Among these
contexts may be sorting and display.</p>
<p>Each <tt><variantName></tt> child element in the recursive
structure provides a single alternate form of the base name; the processing
context in which this form is considered to be appropriate is defined by the
union of all the parameters at this and higher levels of the recursive
structure. (In other words, parameters are inherited down the tree.) For a
full description, see <a href="#variant-processing">“Variant scope
processing”</a> in <cite>Annex F: XTM Processing
Requirements</cite>.</p>
<p>A variant name whose parameters include the “display” or
“sort” published subjects (see <a href="#psi-mandatory">Section
2.3.2, <cite>XTM Mandatory Published Subject Indicators</cite></a>) is
semantically equivalent to display names and sort names (respectively) as
defined in ISO 13250.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-baseName"><baseName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-variant"><!-- element declaration -->
<!<b>ELEMENT</b> variant ( <a class="dref" href="#elt-parameters">parameters</a>, <a class="dref" href="#elt-variantName">variantName</a>?, <a class="dref" href="#elt-variant">variant</a>* ) >
</pre>
<dl><dt><a class="eltref" href="#elt-parameters"><tt><parameters></tt></a></dt><dd>The single mandatory <tt><parameters></tt> child
element specifies an additional processing context for its parent
<tt><variant></tt> element. </dd><dt><a class="eltref" href="#elt-variantName"><tt><variantName></tt></a></dt><dd>The optional <tt><variantName></tt> child element provides an
alternate form of the base name.</dd><dt><a class="eltref" href="#elt-variant"><tt><variant></tt></a></dt><dd>Each optional and repeatable <tt><variant></tt> child element
specifies additional parameters and variant names, within the context of
the parameters declared by its parent <tt><variant></tt>
element.</dd></dl>
<!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-variant"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> variant
id ID #IMPLIED
>
</pre>
<p>The <tt><variant></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a id="ex-variant" name="ex-variant">Examples</a></h4>
<div class="sect4">
<p>Specify an alternate form of the base name for purposes of
sorting:</p>
<pre class="markup"> <topic id="shakespeare">
<baseName>
<baseNameString>William Shakespeare</baseNameString>
<!-- form for sorting (sort name) -->
<variant>
<parameters><topicRef xlink:href="#sort"/></parameters>
<variantName>
<resourceData>shakespeare,william</resourceData>
</variantName>
</variant>
</baseName>
</topic>
...
<topic id="sort">
<subjectIdentity>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#psi-sort"/>
</subjectIdentity>
</topic>
</pre>
<p>The example below shows variants of the base name
“Hamlet,” including alternate forms for visual and audible
presentation. The variant subtree for “display” illustrates
how the nesting of variants is used, and how parameters are
“accumulated” down through the structure:</p>
<pre class="markup"> <topic id="hamlet">
<baseName>
<baseNameString>Hamlet</baseNameString>
<!-- alternative forms for display (display name) -->
<variant>
<parameters><topicRef xlink:href="#display"/></parameters>
<!-- variant subtree for icon -->
<variant>
<parameters><topicRef xlink:href="#icon"/></parameters>
<!-- variant subtree for large -->
<variant>
<parameters><topicRef xlink:href="#large"/></parameters>
<variantName>
<!-- effective parameters = display + icon + large -->
<resourceRef xlink:href="img/hamlet64x64.png" />
</variantName>
</variant>
<!-- variant subtree for small -->
<variant>
<parameters><topicRef xlink:href="#small"/></parameters>
<variantName>
<!-- effective parameters = display + icon + small -->
<resourceRef xlink:href="img/hamlet16x16.png" />
</variantName>
</variant>
</variant>
<!-- variant subtree for full screen -->
<variant>
<parameters><topicRef xlink:href="#full-screen"/></parameters>
<!-- variant subtree for VGA -->
<variant>
<parameters><topicRef xlink:href="#vga"/></parameters>
<variantName>
<!-- effective parameters = display + full-screen + vga -->
<resourceRef xlink:href="img/hamlet640x480.png" />
</variantName>
</variant>
<!-- variant subtree for SVGA -->
<variant>
<parameters><topicRef xlink:href="#svga"/></parameters>
<variantName>
<!-- effective parameters = display + full-screen + svga -->
<resourceRef xlink:href="img/hamlet800x600.png" />
</variantName>
</variant>
</variant>
</variant>
<!-- alternative form for audible delivery -->
<variant>
<parameters><topicRef xlink:href="#audible"/></parameters>
<variantName>
<!-- effective parameters = audible -->
<resourceRef xlink:href="au/hamlet.au"/>
</variantName>
</variant>
</baseName>
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'variant' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'variantName' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.4 <a id="elt-variantName" name="elt-variantName"><variantName> Element</a></h3>
<div class="sect3">
<p>The <tt><variantName></tt> element provides the resource to be
used as a variant of a base name. The resource may be referenced by a
<tt><a href="#elt-resourceRef"><resourceRef></a></tt> element, or
may be included directly as a <tt><a href="#elt-resourceData"><resourceData></a></tt> element.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-variant"><variant></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-variantName"><!-- element declaration -->
<!<b>ELEMENT</b> variantName ( <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-resourceData">resourceData</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The <tt><resourceRef></tt> child element references
a resource that supplies the variant name. </dd><dt><a class="eltref" href="#elt-resourceData"><tt><resourceData></tt></a></dt><dd>The <tt><resourceData></tt> child element <em>is</em> the
resource that supplies the variant name.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-variantName"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> variantName
id ID #IMPLIED
>
</pre>
<p>The <tt><variantName></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-variantName" id="ex-variantName">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-variant"><variant></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'variantName' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'parameters' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.7.5 <a id="elt-parameters" name="elt-parameters"><parameters> Element</a></h3>
<div class="sect3">
<p>The <tt><parameters></tt> element consists of one or more
<tt><topicRef></tt> or <tt><subjectIndicatorRef></tt>
elements. The union of the subjects corresponding to these elements
specifies an additional processing context in which variant names in the
variant's subtree are considered to be appropriate.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-variant"><variant></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-parameters"><!-- element declaration -->
<!<b>ELEMENT</b> parameters ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The repeatable <tt><topicRef></tt> child element
references a topic element that indicates the processing context of the
parent <tt><variant></tt> element.
</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The repeatable <tt><subjectIndicatorRef></tt> element
references a resource that indicates the processing context
of the parent <tt><variant></tt> element.
</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-parameters"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> parameters
id ID #IMPLIED
>
</pre>
<p>The <tt><parameters></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-parameters" id="ex-parameters">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-variant"><variant></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'parameters' section --></div>
<!-- end div.sect2 syntax: topic names section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: assoc and member section .......... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.8 <a id="syn-assoc" name="syn-assoc">Associations and Members</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'association' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.1 <a id="elt-association" name="elt-association"><association> Element</a></h3>
<div class="sect3">
<p>The <tt><association></tt> element asserts a relationship among
topics that play roles as members of the association.</p>
<p>The class to which an <tt><association></tt> belongs is
specified by an <tt><instanceOf></tt> child element. If no such
element is present, the association's class defaults to the
<a class="psiref" href="#psi-association">association published
subject</a>.</p>
<p>The context within which the assertion made by the association
is valid may be expressed using a
<a class="eltref" href="#elt-scope"><tt><scope></tt></a> child
element. If none such is present, the scope is unconstrained and the
association is always valid.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-association"><!-- element declaration -->
<!<b>ELEMENT</b> association
( <a class="dref" href="#elt-instanceOf">instanceOf</a>?, <a class="dref" href="#elt-scope">scope</a>?, <a class="dref" href="#elt-member">member</a>+ )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>The optional <tt><instanceOf></tt> child element
specifies the class to which this association belongs.</dd><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which the assertion made by the association is valid. </dd><dt><a class="eltref" href="#elt-member"><tt><member></tt></a></dt><dd>The mandatory and repeatable <tt><member></tt>
element specifies the topics that play roles in the association.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-association"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> association
id ID #IMPLIED
>
</pre>
<p>The <tt><association></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-association" id="ex-association">Examples</a></h4>
<div class="sect4">
<p>There exists an association of type “written-by” between
the topic “shakespeare” (playing the role of
“author”) and the topic “hamlet” (playing the
role of work). In other words, [the work] <cite>Hamlet</cite> was
written by [the author] Shakespeare (or [the author] Shakespeare wrote
[the work] <cite>Hamlet</cite>).</p>
<pre class="markup"> <association id="will-wrote-hamlet">
<instanceOf>
<topicRef xlink:href="#written-by"/>
</instanceOf>
<member>
<roleSpec>
<topicRef xlink:href="#author"/>
</roleSpec>
<topicRef xlink:href="#shakespeare"/>
</member>
<member>
<roleSpec>
<topicRef xlink:href="#work"/>
</roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
</pre>
<p>Reify the preceding association in order to be able to assign
characteristics to it:</p>
<pre class="markup"> <topic id="will-wrote-hamlet-topic">
<subjectIdentity>
<subjectIndicatorRef xlink:href="#will-wrote-hamlet"/>
</subjectIdentity>
<baseName>
<baseNameString>Shakespeare's authorship of
Hamlet</baseNameString>
</baseName>
<!-- occurrences may go here -->
</topic>
</pre>
<p>Declare the class-instance relationship between “hamlet”
and “play” using an association, instead of an
<tt><instanceOf></tt> element (this is semantically
equivalent to the first example given under <tt><instanceOf></tt>,
<a href="#ex-instanceOf">above</a>):</p>
<pre class="markup"> <association>
<instanceOf>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance"/>
</instanceOf>
<member>
<roleSpec>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#class"/>
</roleSpec>
<topicRef xlink:href="#play"/>
</member>
<member>
<roleSpec>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/xtm/1.0/core.xtm#instance"/>
</roleSpec>
<topicRef xlink:href="#hamlet"/>
</member>
</association>
<topic id="play">
...
</topic>
<topic id="hamlet">
...
</topic>
</pre>
<!-- div.sect4 end --></div>
<!-- end div.sect3 element type 'association' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'member' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.2 <a id="elt-member" name="elt-member"><member> Element</a></h3>
<div class="sect3">
<p>The <tt><member></tt> element specifies all topics that play a
given role in an association. The <tt><roleSpec></tt> element
specifies the role played by these topics.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-association"><association></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-member"><!-- element declaration -->
<!<b>ELEMENT</b> member
( <a class="dref" href="#elt-roleSpec">roleSpec</a>?, ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ )
>
</pre>
<dl><dt><a class="eltref" href="#elt-roleSpec"><tt><roleSpec></tt></a></dt><dd>The optional <tt><roleSpec></tt> child element
specifies the role played in this association by this member.</dd><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>Each repeatable <tt><topicRef></tt> child element
references a topic that plays the specified role.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>Each repeatable <tt><resourceRef></tt> child element
references a resource that plays the specified role.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>Each repeatable <tt><subjectIndicatorRef></tt> element
references a subject indicator for a subject that plays the
specified role.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-member"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> member
id ID #IMPLIED
>
</pre>
<p>The <tt><member></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-member" id="ex-member">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-association"><association></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'member' section --></div>
<!-- .............................................................. -->
<!-- begin div.sect3 : description of element type 'roleSpec' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.8.3 <a id="elt-roleSpec" name="elt-roleSpec"><roleSpec> Element</a></h3>
<div class="sect3">
<p>The <tt><roleSpec></tt> element specifies the role played by a
member in an association.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-member"><member></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-roleSpec"><!-- element declaration -->
<!<b>ELEMENT</b> roleSpec ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> ) >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The <tt><topicRef></tt> child element references a
topic that reifies a role in an association.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The <tt><subjectIndicatorRef></tt> child element
references a subject indicator for a role in an association.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-roleSpec"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> roleSpec
id ID #IMPLIED
>
</pre>
<p>The <tt><roleSpec></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-roleSpec" id="ex-roleSpec">Example</a></h4>
<div class="sect4">
<p>See the <tt><a href="#ex-association"><association></a></tt>
element.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'roleSpec' section --></div>
<!-- end div.sect2 syntax: assoc and member section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: occurrences and resources ......... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.9 <a id="syn-occur" name="syn-occur">Occurrences and Resources</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'occurrence' .. -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.1 <a id="elt-occurrence" name="elt-occurrence"><occurrence> Element</a></h3>
<div class="sect3">
<p>The <tt><occurrence></tt> element specifies a resource
supplying information relevant to a topic.</p>
<p>The class of which the occurrence is an instance is indicated via the
<tt><instanceOf></tt> child element. If no such element is
present, the occurrence type defaults to the class defined by the <a class="psiref" href="#psi-occurrence">occurrence published
subject</a>.</p>
<p>The context within which the occurrence is valid may be expressed
using a <a class="eltref" href="#elt-scope"><tt><scope></tt></a>
child element. If none such is present, the scope is unconstrained and
the occurrence is always valid.</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topic"><topic></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-occurrence"><!-- element declaration -->
<!<b>ELEMENT</b> occurrence
( <a class="dref" href="#elt-instanceOf">instanceOf</a>?, <a class="dref" href="#elt-scope">scope</a>?, ( <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-resourceData">resourceData</a> ) )
>
</pre>
<dl><dt><a class="eltref" href="#elt-instanceOf"><tt><instanceOf></tt></a></dt><dd>The optional <tt><instanceOf></tt> child element
specifies the class of which the topic occurrence is an instance.</dd><dt><a class="eltref" href="#elt-scope"><tt><scope></tt></a></dt><dd>The optional <tt><scope></tt> child element specifies
the context in which the resource is relevant to the topic.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The <tt><resourceRef></tt> child element references a
resource that is an occurrence of the topic.</dd><dt><a class="eltref" href="#elt-resourceData"><tt><resourceData></tt></a></dt><dd>The <tt><resourceData></tt> child element <em>is</em>
the resource that is an occurrence of the topic.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-occurrence"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> occurrence
id ID #IMPLIED
>
</pre>
<p>The <tt><occurrence></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table></div>
<!-- end div.sect4 --></div>
<h4><a name="ex-occurrence" id="ex-occurrence">Example</a></h4>
<div class="sect4">
<p>The topic whose ID is “hamlet” has an occurrence of type
“date-of-composition” whose content is the string
“1600-01”, and an occurrence of type
“xml-version” at the URL shown:</p>
<pre class="markup"> <topic id="hamlet">
<occurrence>
<instanceOf>
<topicRef xlink:href="#date-of-composition"/>
</instanceOf>
<resourceData>1600-01</resourceData>
</occurrence>
<occurrence id="hamlet-in-xml">
<instanceOf>
<topicRef xlink:href="#xml-version"/>
</instanceOf>
<resourceRef
xlink:href="<a class="dref" href="http://www.csclub.uwaterloo.ca/u/relander/XML/hamlet.xml">http://www.csclub.uwaterloo.ca/u/relander/XML/hamlet.xml</a>"/>
</occurrence>
</topic>
</pre>
<p>Reify one of the preceding occurrences in order to be able to assign
characteristics to it:</p>
<pre class="markup"> <topic id="hamlet-in-xml-topic">
<subjectIdentity>
<subjectIndicatorRef xlink:href="#hamlet-in-xml"/>
</subjectIdentity>
<baseName>
<baseNameString>Jon Bosak's XML version of
Hamlet</baseNameString>
</baseName>
<!-- occurrences may go here (e.g. commentaries
on the XML version of Hamlet)-->
</topic>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'occurrence' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'resourceRef' . -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.2 <a id="elt-resourceRef" name="elt-resourceRef"><resourceRef> Element</a></h3>
<div class="sect3">
<p>The <tt><resourceRef></tt> element provides a URI reference
to a resource.</p>
<p>Resources may be referenced for one of the following reasons:</p>
<ol>
<li>as occurrences of topics (in
<tt><a href="#elt-occurrence"><occurrence></a></tt>
elements)</li>
<li>as addressable subjects (in
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>, and
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>
elements), and</li>
<li>as variant names of topics (in
<tt><a href="#elt-variantName"><variantName></a></tt>
elements)</li>
</ol>
<p><em>Occurs in:</em>
<tt><a href="#elt-member"><member></a></tt>,
<tt><a href="#elt-mergeMap"><mergeMap></a></tt>,
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-scope"><scope></a></tt>,
<tt><a href="#elt-subjectIdentity"><subjectIdentity></a></tt>,
<tt><a href="#elt-variantName"><variantName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-resourceRef"><!-- element declaration -->
<!<b>ELEMENT</b> resourceRef EMPTY >
</pre>
<p>The <tt><resourceRef></tt> element has no content.</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-resourceRef"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> resourceRef
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>The <tt><resourceRef></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link.</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-resourceRef" id="ex-resourceRef">Example</a></h4>
<div class="sect4">
<p>See the
<tt><a href="#ex-variant"><variant></a></tt>,
<tt><a href="#ex-occurrence"><occurrence></a></tt>, and
<tt><a href="#ex-mergeMap"><mergeMap></a></tt>.
elements.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'resourceRef' section --></div>
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'resourceData' -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.9.3 <a id="elt-resourceData" name="elt-resourceData"><resourceData> Element</a></h3>
<div class="sect3">
<p>The <tt><resourceData></tt> element contains information in the
form of character data that may be:</p>
<ol>
<li>an occurrence of a topic, or</li>
<li>a variant form of a base name</li>
</ol>
<p><em>Occurs in:</em>
<tt><a href="#elt-occurrence"><occurrence></a></tt>,
<tt><a href="#elt-variantName"><variantName></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-resourceData"><!-- element declaration -->
<!<b>ELEMENT</b> resourceData ( #PCDATA ) >
</pre>
<p>
The <tt><resourceData></tt> element is declared
<tt>#PCDATA</tt>, meaning that it may only contain character data.
</p>
<!-- end div.sect4 --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-resourceData"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> resourceData
id ID #IMPLIED
>
</pre>
<p>The <tt><resourceData></tt> element has the following attribute:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr>
<th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
</tbody>
</table>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-resourceData" id="ex-resourceData">Example</a></h4>
<div class="sect4">
<p>See the
<tt><a href="#ex-variant"><variant></a></tt> and
<tt><a href="#ex-occurrence"><occurrence></a>.</tt>
elements.</p>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'resourceData' section --></div>
<!-- end div.sect2 syntax: occurrences and resources section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : syntax: merging section ................... -->
<h2><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
3.10 <a id="syn-merge" name="syn-merge">Merging</a></h2>
<div class="sect2">
<!-- ............................................................. -->
<!-- begin div.sect3 : description of element type 'mergeMap' .... -->
<h3><a href="#syntax"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
3.10.1 <a id="elt-mergeMap" name="elt-mergeMap"><mergeMap> Element</a></h3>
<div class="sect3">
<p>A <tt><mergeMap></tt> element references an external
<tt><topicMap></tt> element through an <tt>xlink:href</tt>
attribute containing a URI. It is a directive to merge the containing
topic map and the referenced topic map according to the rules specified
in <a href="#processing">Annex F: XTM Processing Requirements</a>.</p>
<p>The children of <tt><mergeMap></tt> indicate topics that are to
be added to the scopes of all characteristics originating in the
referenced topic map. (The reason for modifying the scopes of the merged
characteristics may be to prevent topics from merging on account of the
topic naming constraint, or to distinguish between characteristics on
the basis of their topic map of origin.)</p>
<p><em>Occurs in:</em>
<tt><a href="#elt-topicMap"><topicMap></a></tt></p>
<h4>Content Model</h4>
<div class="sect4">
<pre class="markup" id="e-mergeMap"> <!<b>ELEMENT</b> mergeMap ( <a class="dref" href="#elt-topicRef">topicRef</a> | <a class="dref" href="#elt-resourceRef">resourceRef</a> | <a class="dref" href="#elt-subjectIndicatorRef">subjectIndicatorRef</a> )* >
</pre>
<dl><dt><a class="eltref" href="#elt-topicRef"><tt><topicRef></tt></a></dt><dd>The optional and repeatable <tt><topicRef></tt> child
element references a topic whose subject is to be added to the
scope of all characteristics originating in the referenced topic
map.</dd><dt><a class="eltref" href="#elt-resourceRef"><tt><resourceRef></tt></a></dt><dd>The optional and repeatable <tt><resourceRef></tt>
child element references an addressable subject that is to be
added to the scope of all characteristics originating in the
referenced topic map.</dd><dt><a class="eltref" href="#elt-subjectIndicatorRef"><tt><subjectIndicatorRef></tt></a></dt><dd>The optional and repeatable <tt><subjectIndicatorRef></tt>
child element references a subject indicator whose subject is
to be added to the scope of all characteristics originating in
the referenced topic map.</dd></dl><!-- div.sect4 end --></div>
<h4>Attributes</h4>
<div class="sect4">
<pre class="markup" id="a-mergeMap"><!-- attribute-list declaration -->
<!<b>ATTLIST</b> mergeMap
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
</pre>
<p>
The <tt><mergeMap></tt> element has the following attributes:</p>
<div class="attr">
<table border="0" cellpadding="2" width="80%">
<tbody>
<tr><th><tt>id</tt></th>
<td>unique identifier for element</td>
</tr>
<tr><th><tt>xlink:type</tt></th>
<td>identifies this as an XLink simple link type</td>
</tr>
<tr><th><tt>xlink:href</tt></th>
<td>supplies the URI reference for this link. This is a reference
to a topic map to be merged with this one at Graph creation time
</td>
</tr>
</tbody>
</table>
<p class="note"><b>Note:</b>
See sections 5.2 and 5.4 of <a class="xref" href="#ref_xlink">[XLink]</a>
for conformance and usage.</p>
</div>
<!-- end div.sect4 --></div>
<h4><a name="ex-mergeMap" id="ex-mergeMap">Examples</a></h4>
<div class="sect4">
<p>Merge the topic map “plays.xtm” with the current topic
map, adding the topics “shakespeare” and “drama”
(in the current topic map) to the scopes of all characteristics
originating in the “plays.xtm” topic map:</p>
<pre class="markup"> <mergeMap xlink:href="http://www.shakespeare.org/plays.xtm">
<topicRef xlink:href="#shakespeare"/>
<topicRef xlink:href="#drama"/>
</mergeMap>
<topic id="shakespeare">
...
</topic>
<topic id="drama">
...
</topic>
</pre>
<p>Merge the “biography.xtm” topic map with the current
topic map, adding that resource itself (as an addressable subject) to
the scopes of all characteristics originating in the
“biography.xtm” topic map. This technique allows an author
to use a topic map <em>as a subject</em>, to scope its own topics in the
merged result:</p>
<pre class="markup"> <mergeMap xlink:href="http://www.shakespeare.org/biography.xtm">
<resourceRef
xlink:href="http://www.shakespeare.org/biography.xtm"/>
</mergeMap>
</pre>
<!-- end div.sect4 --></div>
<!-- end div.sect3 element type 'mergeMap' section --></div>
<!-- end div.sect2 syntax: merging section --></div>
<!-- end div.sect1 : syntax documentation --></div>
<!-- ............................................................. -->
<!-- begin div.sect1 : conformance section ........................ -->
<hr align="left" class="sectdiv" width="50%">
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a>
4. <a id="conformance" name="conformance">Conformance</a></h1>
<div class="sect1">
<p> This section sets forth the conditions under which it can be accurately
claimed that documents and applications conform to the XTM Specification.
</p>
<p>
A document or application conforms to the XTM Specification only if all
of the following conformance criteria are satisfied:
</p>
<ol>
<li>it observes the mandatory conditions (“shall” and
“must”), and </li>
<li>for any optional conditions (“should” and
“may”) it observes, it observes them in the way
prescribed.</li>
</ol>
<p>
These conformance criteria must be applied in any program for certifying the
conformance of documents and applications to the XTM Specification,
and in the development of test suites and other instruments for measuring
and reporting the conformance of documents and applications for which such
conformance will be claimed.
</p>
<!-- ............................................................. -->
<!-- begin div.sect2 : conformance vocabulary section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.1 <a id="conf-vocab" name="conf-vocab">XTM Conformance Vocabulary</a></h2>
<div class="sect2">
<p>
Within this specification, the key words “MUST,”
“MUST NOT,” “REQUIRED,” “SHALL,”
“SHALL NOT,” “SHOULD,” “SHOULD NOT,”
“RECOMMENDED,” “MAY,” and “OPTIONAL”
are to be interpreted as described in RFC 2119 (see
<a class="xref" href="#ref_rfc2119">[RFC 2119]</a>). However, for readability,
these words do not appear in all uppercase letters in this specification.
</p>
<!-- end div.sect2 conf vocab section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : processing dependencies section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.2 <a id="conf-dep" name="conf-dep">XTM Processing Dependencies</a></h2>
<div class="sect2">
<p>XTM processing depends on <a class="xref" href="#ref_xml">[XML]</a>, <a class="xref" href="#ref_xname">[XML Names]</a>,
<a class="xref" href="#ref_xlink">[XLink]</a>,
<a class="xref" href="#ref_xbase">[XML Base]</a>, and
<a class="xref" href="#ref_rfc2396">[RFC 2396]</a>
(as updated by <a class="xref" href="#ref_rfc2732">[RFC 2732]</a>).</p>
<!-- end div.sect2 processing dependencies section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : xtm namespace section ..................... -->
<h2><a href="#conformance"><img alt="top-of-section" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.3 <a id="xtmns" name="xtmns">The XTM Namespace</a></h2>
<div class="sect2">
<p>The URI reference used as the “namespace name”
(in the sense specified by the W3C Recommendation <cite>Namespaces in XML</cite>
<a href="#ref_xname">[XML Names]</a>) identifying this XTM specification
is:</p>
<pre class="markup"> http://www.topicmaps.org/xtm/1.0/
</pre>
<p>Applications wishing to make use of W3C namespace-aware processing
for documents conforming to this XTM specification must ensure that the
W3C namespace name is the above URI string.</p>
<p>This specification reserves use of any string which would match
<tt>(('X'|'x') ('T'|'t') ('M'|'m'))</tt> for the use of this XTM
specification and any related specifications produced by TopicMaps.Org.</p>
<!-- end div.sect2 xtm namespace section --></div>
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.4 <a id="conf-doc" name="conf-doc">XTM Document Conformance</a></h2>
<div class="sect2">
<p>
A topic map document conforms to the XTM 1.0 Specification if and
only if all of the following conditions are satisfied, in addition to those
conditions listed above in “XTM Conformance Vocabulary”:
</p>
<ul>
<li>The document is an XML document that conforms to the W3C XML 1.0
Recommendation, editions thereof, or subsequent W3C XML Recommendation,
insofar as such subsequent Recommendations or editions do not invalidate
existing XML documents that are XTM-conformant.
</li>
<li>The document contains at least one <tt><topicMap></tt> element.
</li>
<li>Each <tt><topicMap></tt> element contained in the document conforms to
the syntactic constraints imposed on <tt><topicMap></tt> elements by the
XTM 1.0 DTD specified by this Specification.
</li>
<li>
There are no elements or attributes contained in any of the
<tt><topicMap></tt> elements that are not explicitly declared by
the XTM 1.0 DTD specified by this Specification.
A <tt><topicMap></tt> element is non-conforming if it contains
elements or attributes from any other “XML Namespaces”
at any recursive level of element containment.
</li>
<li>All of the syntactic and other constraints specified by the XTM
1.0 Specification are honored in each of the <tt><topicMap></tt>
elements contained in the document. When each <tt><topicMap></tt>
element is processed as defined and described in
<a href="#processing">Annex F: XTM Processing Requirements</a>,
there must be no Reportable XTM Errors.
</li>
</ul>
<p>
XTM markup existing in an XML document outside of a
<tt><topicMap></tt> element is undefined by this specification.
</p>
<!-- end div.sect2 markup conformance section --></div>
<!-- ............................................................. -->
<!-- begin div.sect2 : application conformance section ........... -->
<h2><a href="#conformance"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
4.5 <a id="conf-appl" name="conf-appl">XTM Application Conformance</a></h2>
<div class="sect2">
<p>
An XTM application is any software module that:
</p>
<ul>
<li>interprets a <tt><topicMap></tt> element,
producing a processed topic map as defined and described in
<a href="#processing">Annex F: XTM Processing Requirements</a>.
</li>
</ul>
<p>
An XTM application conforms to the XTM 1.0 Specification if
and only if all of the following conditions are satisfied:
</p>
<ul>
<li>All of the constraints specified in <a href="#processing">Annex
F: XTM Processing Requirements</a> regarding the handling of each
XTM element and attribute are honored by the XTM application.
</li>
<li>All Reportable XTM Errors are detected, and
the XTM application is capable of reporting all of them.
</li>
<li>All Merging Rules and other Rules specified in
<a href="#processing">Annex F: XTM Processing Requirements</a>
are honored by the XTM application.
</li>
</ul>
<!-- end div.sect2 application conformance section --></div>
<!-- end div.sect1 conformance section --></div>
<!-- ....................................................................... -->
<!-- ANNEXES ............................................................... -->
<!-- ............................................................. -->
<!-- begin div.sect1 : annexes ................................... -->
<hr align="left" class="sectdiv" width="90%">
<h1><a href="#toc"><img alt="top" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a> <a id="annexes" name="annexes">Annexes</a></h1>
<div class="sect1">
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : references annex .......................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex A: <a id="references" name="references">References</a> (Informative)</h2>
<div class="sect2">
<p>
The following are specifications that this document is derived from,
related to, dependent upon, or informed by:
</p>
<dl><dt><a name="ref_iso13250" id="ref_iso13250" class="ref">[ISO13250]</a></dt><dd>
<cite>ISO/IEC 13250:2000 Topic Maps: Information Technology --
Document Description and Markup Languages</cite>,<br>
Michel Biezunski, Martin Bryan, Steven R. Newcomb, ed., 3 Dec 1999.<br>
See: <a href="http://www.y12.doe.gov/sgml/sc34/document/0129.pdf">http://www.y12.doe.gov/sgml/sc34/document/0129.pdf</a> (PDF, 332K)
</dd><dt><a name="ref_xml" id="ref_xml" class="ref">[XML]</a></dt><dd>
<cite>Extensible Markup Language (XML) 1.0 (Second Edition)</cite>,<br>
Tim Bray, Jean Paoli, and C.M. Sperberg-McQueen, Eve Maler, editors.
World Wide Web Consortium, W3C Recommendation 6 October 2000.<br>
See <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a>.
</dd><dt><a name="ref_xlink" id="ref_xlink" class="ref">[XLink]</a></dt><dd>
<cite>XML Linking Language (XLink) Version 1.0.</cite>,<br>
Steve DeRose, Eve Maler, David Orchard, Ben Trafford, editors.
World Wide Web Consortium, W3C Candidate Recommendation 3 July 2000.<br>
See <a href="http://www.w3.org/TR/xlink">http://www.w3.org/TR/xlink</a>.
<br>
XLink processing depends on <a href="#XML">[XML]</a>, <a href="#xname">[XML Names]</a>,
<a href="#xbase">[XML Base]</a>, and <a href="#rfc2396">[IETF RFC 2396]</a>.
</dd><dt><a name="ref_xbase" id="ref_xbase" class="ref">[XML Base]</a></dt><dd>
<cite>XML Base (XBase)</cite>,<br>
Jonathan Marsh, editor.
World Wide Web Consortium, W3C Proposed Recommendation 8 September 2000.<br>
See <a href="http://www.w3.org/TR/xmlbase">http://www.w3.org/TR/xmlbase</a>.
</dd><dt><a name="ref_xname" id="ref_xname" class="ref">[XML Names]</a></dt><dd>
<cite>Namespaces in XML</cite>,<br>
Tim Bray, Dave Hollander, and Andrew Layman, editors.
Textuality, Hewlett-Packard, and Microsoft.
World Wide Web Consortium, W3C Recommendation 14 January 1999.<br>
See <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a>.
</dd><dt><a name="ref_rfc1738" id="ref_rfc1738" class="ref">[RFC 1738]</a></dt><dd>
<cite>Uniform Resource Locators (URL)</cite>,<br>
IETF (Internet Engineering Task Force) RFC 1738, December 1994.<br>
See <a href="http://www.ietf.org/rfc/rfc1738.txt">http://www.ietf.org/rfc/rfc1738.txt</a>.
</dd><dt><a name="ref_rfc2119" id="ref_rfc2119" class="ref">[RFC 2119]</a></dt><dd>
<cite>Key words for use in RFCs to Indicate Requirement Levels</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2119, S. Bradner, March 1997.<br>
See <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>.
</dd><dt><a name="ref_rfc2141" id="ref_rfc2141" class="ref">[RFC 2141]</a></dt><dd>
<cite>URN Syntax</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2141, R. Moats, May 1997.<br>
See <a href="http://www.ietf.org/rfc/rfc2141.txt">http://www.ietf.org/rfc/rfc2141.txt</a>.
</dd><dt><a name="ref_rfc2396" id="ref_rfc2396" class="ref">[RFC 2396]</a></dt><dd>
<cite>Uniform Resource Identifiers (URI): Generic Syntax</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2396, August 1998.<br>
See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.
</dd><dt><a name="ref_rfc2732" id="ref_rfc2732" class="ref">[RFC 2732]</a></dt><dd>
<cite>Format for Literal IPv6 Addresses in URL's</cite>,<br>
IETF (Internet Engineering Task Force) RFC 2732, 1999.<br>
See <a href="http://www.ietf.org/rfc/rfc2732.txt">http://www.ics.ietf.org/rfc/rfc2732.txt</a>.
</dd></dl>
<p>
</p>
<!-- end div.sect2 references annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : conceptual model section .................. -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex B: <a id="conceptualmodel" name="conceptualmodel">XTM Conceptual Model</a> (Informative)</h2>
<div class="sect2">
<h3><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
B.0 Introduction</h3>
<div class="sect3">
<p>This annex presents the XML Topic Maps Conceptual Model. The model
uses a simple notation drawn from Unified Modeling Language UML object
modelling notation; only the aspects used in the model (and the
particular interpretations used in the model) are described here.</p>
<h4>An Explanation of the Notation used in the Conceptual Model</h4>
<div class="sect4">
<p>The notation is made up of boxes, which represent classes (kinds of
things), and connections between these boxes, which represent
relationships between those classes, or between instances of those
classes (individual things of the kinds represented by the boxes). There
are four different kinds of connections:</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-subtype.gif" width="65" height="27" alt="arrow"> <b>Line ending in hollow triangle: <em>from subtype to
type</em></b></p>
<p>This notation can be seen most clearly in the initial “Class
Hierarchy” diagram. For example, the top levels say that both
“Resource” and “Non-addressable Subject” are
subtypes of “Subject”. One level lower, “String”
is stated to be a subtype of “Resource”. Where a type has
more than one subtype, they are gathered together using a horizontal
line — this does not provide any connection between the subtypes (e.g.
the only relationship asserted here between “String” and
“Topic” is that they are both, separately, subtypes of
“Resource”.</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-nav.gif" width="65" height="27" alt="arrow"> <b>Line optionally ending in line arrowhead: <em>named
relationship</em></b></p>
<p>This can be seen in the diagram “A topic reifies a
subject”: the line between “Topic” and
“Subject” states that the named relationship
“reifies” holds between zero or more Topics (“zero or
more” is denoted by 0..*) and one Subject.</p>
<p>If there is an arrowhead, then this denotes that the relationship is
traversible in one direction only. In this case, what is being said is
that given a Topic, you can find out what Subject it reifies ... but
given just a Subject, e.g. the character named “Hamlet”,
there is no guarantee that you can find any Topic reifying it.</p>
<p>If there is no arrowhead, this denotes that there is no
directionality to the relationship. This means it is possible to pass
from either end to the other.</p>
<p>A further variation on this notation is that the ends of the
connecting lines can be labeled. This can be seen in the diagram
“Base name within scope”: the label
“+baseNameString” next to “String” states that
it is a “String” that serves as a baseNameString relative to
the “Base Name”.</p>
<p>Finally, the connection itself may be labeled with a name between
double angle brackets, indicating the nature of the relationship (e.g.
<<REIFIES>>).</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-owner.gif" width="65" height="27" alt="arrow"> <b>Line ending in black diamond: <em>strict dependency, commonly
called ownership</em></b></p>
<p>This can be seen in the diagram “Base Name Within Scope”:
the relationship of “Base Name” to “Topic” is
such that it makes no sense to call anything a base name otherwise than
as a base name of a topic.</p>
<p><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-arrow-agg.gif" width="65" height="27" alt="arrow">
<b>Line ending in open diamond: <em>a set</em></b></p>
<p>This can be seen in the diagram “Topic Characteristics are
assigned within Scopes”: the relationship of “Topic”
to “Scope” is that a Scope is a set of one of more
Topics.</p>
<p>In this Annex, the names of classes are capitalized, as: <span class="o">Class</span>.</p>
<!-- end div.sect4 explanation --></div>
<!-- end div.sect3 introduction --></div>
<!-- ....................................................... -->
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.1 Class Hierarchy</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b1" name="fig-b1" href="http://www.topicmaps.org/xtm/1.0/fig-b1.html"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-ch-small.gif" longdesc="xtm1-wai.html#fig-b1" border="0" width="500" height="244" alt="Figure B-1: Class Hierarchy (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b1"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-1: Class Hierarchy (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>A <span class="o">Subject</span> is anything that can be spoken about or conceived of by
a human being. A <span class="o">Resource</span> is a <span class="o">Subject</span>
that has identity within the bounds of a computer system. Any other
<span class="o">Subject</span> is known as a <span class="o">Non-addressable Subject</span>.
There are many types of <span class="o">Non-addressable Subject</span>.
A <span class="o">Class</span> is a <span class="o">Non-addressable Subject</span>. Types of
<span class="o">Resource</span> include <span class="o">String</span>, <span class="o">XML
Element</span>, and <span class="o">XML Attribute</span>, as well as <span class="o">Topic
Map</span>, <span class="o">Topic Map Node</span> and <span class="o">Topic Characteristic</span>,
and many others.
Types of <span class="o">XML Element</span> include <span class="o"><tt><topic></tt>
Element</span> and <span class="o"><tt><association></tt> Element</span>, and many others.
There are just three types of <span class="o">Topic Map Node</span>:
<span class="o">Topic</span>, <span class="o">Association</span>, and <span class="o">Scope</span>.
There are just three types of <span class="o">Topic Characteristic</span>:
<span class="o">Base Name</span>, <span class="o">Occurrence</span>, and
<span class="o">Role</span>.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.2 Class-Instance Relationship</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b2" name="fig-b2">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-cir.gif" longdesc="xtm1-wai.html#fig-b2" border="0" width="360" height="84" alt="Figure B-2: Class-Instance Relationship (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b2"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-2: Class-Instance Relationship (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Subject</span> may be an instance of zero or more <span class="o">Classes</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.3 A Topic Reifies a Subject</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b3" name="fig-b3">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-trs.gif" longdesc="xtm1-wai.html#fig-b3" border="0" width="360" height="148" alt="Figure B-3: A Topic Reifies a Subject (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b3"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-3: A Topic Reifies a Subject (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>A <span class="o">Topic</span> is a <span class="o">Resource</span> that reifies a
<span class="o">Subject</span>. It is the Topic Map system's representation of the
<span class="o">Subject</span>. Reification of a <span class="o">Subject</span> allows
<span class="o">Topic Characteristics</span> to be assigned to the <span class="o">Topic</span> that reifies it.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.4 Referencing the Subject</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b4" name="fig-b4">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-rts.gif" longdesc="xtm1-wai.html#fig-b4" border="0" width="490" height="312" alt="Figure B-4: Referencing the Subject (class diagram)"></a>
<!-- <a class="dlink" href="xtm1-wai.html#fig-b4"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-4: Referencing the Subject (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Topic</span> can have any number of <span class="o">Subject Indicators</span>.
A <span class="o">Subject Indicator</span> is a <span class="o">Resource</span> that indicates
what <span class="o">Subject</span> is reified by the <span class="o">Topic</span>. If the
<span class="o">Subject</span> is itself a <span class="o">Resource</span>, there can be a
direct reference from the <span class="o">Topic</span> to that <span class="o">Resource</span>
in addition to any references there may be to <span class="o">Subject Indicators</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.5 Topic Characteristics Are Assigned Within Scopes</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b5" name="fig-b5">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-tcaws.gif" longdesc="xtm1-wai.html#fig-b5" border="0" width="476" height="136" alt="Figure B-5: Topic Characteristics Are Assigned Within Scopes (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b5"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-5: Topic Characteristics Are Assigned Within Scopes (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
A <span class="o">Scope</span> is set of <span class="o">Topics</span> that defines the extent
of the validity of the assignment of a <span class="o">Topic Characteristic</span> to a
<span class="o">Topic</span>. If no <span class="o">Scope</span> is specified, the
<span class="o">Scope</span> is deemed to be the unconstrained <span class="o">Scope</span>,
and the assignment is always valid.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.6 Base Name Within Scope</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b6" name="fig-b6">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-bnws.gif" longdesc="xtm1-wai.html#fig-b6" border="0" width="494" height="148" alt="Figure B-6: Base Name Within Scope (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b6"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-6: Base Name Within Scope (class diagram)</td>
</tr>
</tbody></table>
</div>
<p> A <span class="o">Base Name</span> is a <span class="o">String</span> that is used to name a <span class="o">Topic</span> within a <span class="o">Scope</span>. Only one
<span class="o">Topic</span> may be assigned a particular <span class="o">Base Name</span> within a given <span class="o">Scope</span>.
The set of <span class="o">Base Names</span> assigned within a given
<span class="o">Scope</span> thus constitutes a namespace, and may be
used to identify <span class="o">Topics</span> unambiguously.</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.7 Occurrence</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b7" name="fig-b7">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-o.gif" longdesc="xtm1-wai.html#fig-b7" border="0" width="494" height="148" alt="Figure B-7: Occurrence (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b7"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-7: Occurrence (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>
An <span class="o">Occurrence</span> designates a <span class="o">Resource</span> that relates
to a <span class="o">Topic</span>.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.8 Association Between Topics</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b8" name="fig-b8">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-abt.gif" longdesc="xtm1-wai.html#fig-b8" border="0" width="500" height="216" alt="Figure B-8: Association Between Topics (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b8"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-8: Association Between Topics (class diagram)</td>
</tr>
</tbody></table>
</div>
<p>An <span class="o">Association</span> relates <span class="o">Topics</span> to one another. It comprises one or more <span class="o">Roles</span>, each of which corresponds to a <span class="o">Topic</span> that specifies a type of involvement that <span class="o">Topics</span> may have in the <span class="o">Association</span>. Each <span class="o">Role</span> is
assigned to zero or more <span class="o">Topics</span> that are involved
in the <span class="o">Association</span> in the way specified. These
<span class="o">Topics</span> are said to be players of that <span class="o">Role</span> in the <span class="o">Association</span>.</p>
<p class="note">NOTE: In XTM, it is not permissible for the different
<span class="o">Roles</span> in an <span class="o">Association</span> to
be governed by different <span class="o">Scopes</span>. The XTM syntax
expresses the <span class="o">Scopes</span> on all the <span class="o">Roles</span> of an <span class="o">Association</span> through
a single <tt><scope></tt> subelement of the
<tt><association></tt> element.
</p>
<!-- end of div.sect3 --></div>
<h2><a href="#conceptualmodel"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
B.9 Topic Map</h2>
<div class="sect3">
<div class="fig">
<table summary="figure formatting">
<tbody><tr><td align="center">
<a id="fig-b9" name="fig-b9">
<img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/model-tm.gif" longdesc="xtm1-wai.html#fig-b9" border="0" width="500" height="152" alt="Figure B-9: Topic Map (class diagram)"></a>
<!-- WAI: <a class="dlink" href="xtm1-wai.html#fig-b9"><small>d</small></a> -->
</td>
</tr>
<tr><td valign="top" align="left" class="figtitle">Figure B-9: Topic Map (class diagram)</td>
</tr>
</tbody></table>
</div>
<p> A <span class="o">Topic Map</span> comprises zero or more <span class="o">Topic Map Nodes</span> (<span class="o">Topics</span>, <span class="o">Scopes</span>, and <span class="o">Associations</span>). It is
possible for more than one <span class="o">Topic</span> in the <span class="o">Topic Map</span> to reify the same <span class="o">Subject</span>. If no <span class="o">Subject</span> is
reified by more than one <span class="o">Topic</span> in the <span class="o">Topic Map</span>, then the <span class="o">Topic Map</span> is
said to be a <span class="o">Consistent Topic Map</span>.
</p>
<!-- end of div.sect3 --></div>
<!-- end div.sect2 conceptual model section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : conceptual model mapping section .......... -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex C: <a id="mapping" name="mapping">XTM Conceptual Model to Interchange Syntax Mapping</a> (Informative)</h2>
<div class="sect2">
<p>The XTM Conceptual Model and its Interchange Syntax do not map to one
another directly through a one-to-one correspondence between syntactic
constructs and objects in the Conceptual Model. There are several ways
in which objects described by the Conceptual Model may relate to
constructs in the XTM Interchange Syntax:</p>
<ul>
<li>In some cases, a syntactic construct <em>IS</em> the object described
by the model.</li>
<li>In some cases, a syntactic construct <em>REFERENCES</em> the object
described by the model through the conventions of URI syntax.</li>
<li>In some cases, a syntactic construct <em>REPRESENTS</em> the object
described by the model.</li>
<li>In some cases, the object described has no direct correspondence in
the syntax at all, but instead is <em>INDICATED</em> by the human-readable
content of a Resource.</li>
</ul>
<p>The ways in which the constructs in the Interchange Syntax relate to
the objects in the Conceptual Model are specified in the prose
descriptions of the syntactic constructs in <a href="#syntax">Section 3,
<cite>XTM Syntax Documentation</cite></a>. A more formal specification
of these relationships is under development and will be published in a
subsequent document from TopicMaps.Org.</p>
<!-- end div.sect2 conceptual model mapping section --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : XTM DTD annex ............................. -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex D: <a id="dtd" name="dtd">XTM 1.0 Document Type Declaration</a> (Normative)</h2>
<div class="sect2">
<p class="note"><b>Note:</b>
In the online version of this DTD, the element type name of each element
declaration links to documentation in this specification. Element type
names in content models link to their respective declarations in the DTD.
</p>
<pre class="markup"><!-- begin dtd -->
<!-- ............................................................. -->
<!-- XML Topic Map DTD .......................................... -->
<!-- file: xtm1.dtd
-->
<!-- XML Topic Map (XTM) DTD, Version 1.0
This is XTM, an XML interchange syntax for ISO 13250 Topic Maps.
XML Topic Map (XTM)
Copyright 2000-2001 TopicMaps.Org, All Rights Reserved.
Permission to use, copy, modify and distribute the XTM DTD and its
accompanying materials for any purpose and without fee is hereby
granted in perpetuity, provided that the above copyright notice and
this paragraph appear in all copies. The copyright holders make no
representation about the suitability of the DTD for any purpose. It
is provided "as is" without expressed or implied warranty.
Editors: Steve Pepper <pepper@ontopia.net>
Graham Moore <gdm@empolis.co.uk>
Authors: Murray Altheim <altheim@eng.sun.com>
Michel Biezunski <mb@infoloom.com>
Sam Hunting <shunting@etopicality.com>
Steven R. Newcomb <srn@coolheads.com>
Status: Release
Version: v1.0.1
Revision: $Id: xtm1.dtd,v 1.2 2001/02/08 16:03:12 pepper Exp $
PublicId: "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
Revisions:
#2001-01-21: removed baseName from <a href="#dtd-occurrence">occurrence</a>
#2001-02-02: made variantName optional in <a href="#dtd-variant">variant</a>
#2001-02-02: changed ID to #IMPLIED on <a href="#dtd-association">association</a>
#2001-02-02: changed ID to #IMPLIED on <a href="#dtd-resourceData">resourceData</a>
#2001-02-02: changed PLUS to REP on <a href="#dtd-member">member</a>
-->
<!-- Use this URI to identify the default XTM namespace:
"http://www.topicMaps.org/xtm/1.0/"
Used to identify the XLink namespace:
"http://www.w3.org/1999/xlink"
-->
<!-- topicMap: Topic Map document element ........................ -->
<!<b>ELEMENT</b> <a href="#elt-topicMap" id="dtd-topicMap" name="dtd-topicMap">topicMap</a>
( <a href="#dtd-topic">topic</a> | <a href="#dtd-association">association</a> | <a href="#dtd-mergeMap">mergeMap</a> )*
>
<!<b>ATTLIST</b> <a id="attl-topicMap" name="attl-topicMap">topicMap</a>
id ID #IMPLIED
xmlns CDATA #FIXED 'http://www.topicmaps.org/xtm/1.0/'
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xml:base CDATA #IMPLIED
>
<!-- topic: Topic element ........................................ -->
<!<b>ELEMENT</b> <a href="#elt-topic" id="dtd-topic" name="dtd-topic">topic</a>
( <a href="#dtd-instanceOf">instanceOf</a>*, <a href="#dtd-subjectIdentity">subjectIdentity</a>?, ( <a href="#dtd-baseName">baseName</a> | <a href="#dtd-occurrence">occurrence</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-topic" name="attl-topic">topic</a>
id ID #REQUIRED
>
<!-- instanceOf: Points To a Topic representing a class .......... -->
<!<b>ELEMENT</b> <a href="#elt-instanceOf" id="dtd-instanceOf" name="dtd-instanceOf">instanceOf</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> ) >
<!<b>ATTLIST</b> <a id="attl-instanceOf" name="attl-instanceOf">instanceOf</a>
id ID #IMPLIED
>
<!-- subjectIdentity: Subject reified by Topic ................... -->
<!<b>ELEMENT</b> <a href="#elt-subjectIdentity" id="dtd-subjectIdentity" name="dtd-subjectIdentity">subjectIdentity</a>
( <a href="#dtd-resourceRef">resourceRef</a>?, ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-subjectIdentity" name="attl-subjectIdentity">subjectIdentity</a>
id ID #IMPLIED
>
<!-- topicRef: Reference to a Topic element ...................... -->
<!<b>ELEMENT</b> <a href="#elt-topicRef" id="dtd-topicRef" name="dtd-topicRef">topicRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-topicRef" name="attl-topicRef">topicRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- subjectIndicatorRef: Reference to a Subject Indicator ....... -->
<!<b>ELEMENT</b> <a href="#elt-subjectIndicatorRef" id="dtd-subjectIndicatorRef" name="dtd-subjectIndicatorRef">subjectIndicatorRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-subjectIndicatorRef" name="attl-subjectIndicatorRef">subjectIndicatorRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- baseName: Base Name of a Topic .............................. -->
<!<b>ELEMENT</b> <a href="#elt-baseName" id="dtd-baseName" name="dtd-baseName">baseName</a> ( <a href="#dtd-scope">scope</a>?, <a href="#dtd-baseNameString">baseNameString</a>, <a href="#dtd-variant">variant</a>* ) >
<!<b>ATTLIST</b> <a id="attl-baseName" name="attl-baseName">baseName</a>
id ID #IMPLIED
>
<!-- baseNameString: Base Name String container .................. -->
<!<b>ELEMENT</b> <a href="#elt-baseNameString" id="dtd-baseNameString" name="dtd-baseNameString">baseNameString</a> ( #PCDATA ) >
<!<b>ATTLIST</b> <a id="attl-baseNameString" name="attl-baseNameString">baseNameString</a>
id ID #IMPLIED
>
<!-- variant: Alternate forms of Base Name ....................... -->
<!<b>ELEMENT</b> <a href="#elt-variant" id="dtd-variant" name="dtd-variant">variant</a> ( <a href="#dtd-parameters">parameters</a>, <a href="#dtd-variantName">variantName</a>?, <a href="#dtd-variant">variant</a>* ) >
<!<b>ATTLIST</b> <a id="attl-variant" name="attl-variant">variant</a>
id ID #IMPLIED
>
<!-- variantName: Container for Variant Name ..................... -->
<!<b>ELEMENT</b> <a href="#elt-variantName" id="dtd-variantName" name="dtd-variantName">variantName</a> ( <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-resourceData">resourceData</a> ) >
<!<b>ATTLIST</b> <a id="attl-variantName" name="attl-variantName">variantName</a>
id ID #IMPLIED
>
<!-- parameters: Processing context for Variant .................. -->
<!<b>ELEMENT</b> <a href="#elt-parameters" id="dtd-parameters" name="dtd-parameters">parameters</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
<!<b>ATTLIST</b> <a id="attl-parameters" name="attl-parameters">parameters</a>
id ID #IMPLIED
>
<!-- occurrence: Resources regarded as an Occurrence ............. -->
<!<b>ELEMENT</b> <a href="#elt-occurrence" id="dtd-occurrence" name="dtd-occurrence">occurrence</a>
( <a href="#dtd-instanceOf">instanceOf</a>?, <a href="#dtd-scope">scope</a>?, ( <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-resourceData">resourceData</a> ) )
>
<!<b>ATTLIST</b> <a id="attl-occurrence" name="attl-occurrence">occurrence</a>
id ID #IMPLIED
>
<!-- resourceRef: Reference to a Resource ........................ -->
<!<b>ELEMENT</b> <a href="#elt-resourceRef" id="dtd-resourceRef" name="dtd-resourceRef">resourceRef</a> EMPTY >
<!<b>ATTLIST</b> <a id="attl-resourceRef" name="attl-resourceRef">resourceRef</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- resourceData: Container for Resource Data ................... -->
<!<b>ELEMENT</b> <a href="#elt-resourceData" id="dtd-resourceData" name="dtd-resourceData">resourceData</a> ( #PCDATA ) >
<!<b>ATTLIST</b> <a id="attl-resourceData" name="attl-resourceData">resourceData</a>
id ID #IMPLIED
>
<!-- association: Topic Association ............................. -->
<!<b>ELEMENT</b> <a href="#elt-association" id="dtd-association" name="dtd-association">association</a>
( <a href="#dtd-instanceOf">instanceOf</a>?, <a href="#dtd-scope">scope</a>?, <a href="#dtd-member">member</a>+ )
>
<!<b>ATTLIST</b> <a id="attl-association" name="attl-association">association</a>
id ID #IMPLIED
>
<!-- member: Member in Topic Association ......................... -->
<!<b>ELEMENT</b> <a href="#elt-member" id="dtd-member" name="dtd-member">member</a>
( <a href="#dtd-roleSpec">roleSpec</a>?, ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* )
>
<!<b>ATTLIST</b> <a id="attl-member" name="attl-member">member</a>
id ID #IMPLIED
>
<!-- roleSpec: Points to a Topic serving as an Association Role .. -->
<!<b>ELEMENT</b> <a href="#elt-roleSpec" id="dtd-roleSpec" name="dtd-roleSpec">roleSpec</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> ) >
<!<b>ATTLIST</b> <a id="attl-roleSpec" name="attl-roleSpec">roleSpec</a>
id ID #IMPLIED
>
<!-- scope: Reference to Topic(s) that comprise the Scope ........ -->
<!<b>ELEMENT</b> <a href="#elt-scope" id="dtd-scope" name="dtd-scope">scope</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )+ >
<!<b>ATTLIST</b> <a id="attl-scope" name="attl-scope">scope</a>
id ID #IMPLIED
>
<!-- mergeMap: Merge with another Topic Map ...................... -->
<!<b>ELEMENT</b> <a href="#elt-mergeMap" id="dtd-mergeMap" name="dtd-mergeMap">mergeMap</a> ( <a href="#dtd-topicRef">topicRef</a> | <a href="#dtd-resourceRef">resourceRef</a> | <a href="#dtd-subjectIndicatorRef">subjectIndicatorRef</a> )* >
<!<b>ATTLIST</b> <a id="attl-mergeMap" name="attl-mergeMap">mergeMap</a>
id ID #IMPLIED
xlink:type NMTOKEN #FIXED 'simple'
xlink:href CDATA #REQUIRED
>
<!-- end of XML Topic Map (XTM) 1.0 DTD -->
</pre><!-- end dtd -->
<!-- end div.sect2 XTM DTD annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 XTM Core Published Subject Indicators annex . -->
<h2><a href="#toc"><img alt="top" border="0" class="nav" height="13" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
Annex E: <a id="coremap" name="coremap">XTM 1.0 Core Published Subject Indicators</a> (Normative)</h2>
<div class="sect2">
<p class="note"><b>Note:</b>
In the online version of this topic map, the unique identifier (“id”) of
each topic or association element links to documentation in this specification.
</p>
<pre class="markup"><!-- begin core.xtm -->
<?xml version="1.0"?>
<!DOCTYPE topicMap PUBLIC "-//TopicMaps.Org//DTD XML Topic Map (XTM) 1.0//EN"
"xtm1.dtd">
<topicMap id="xtm1.0-psi-core"
xmlns="http://www.topicmaps.org/xtm/1.0/"
xml:base="http://www.topicmaps.org/xtm/1.0/">
<!--
XTM 1.0 Core Published Subject Indicators (PSIs)
XML Topic Map (XTM)
Copyright 2000-2001 TopicMaps.Org, All Rights Reserved.
Permission to use this document for any purpose and without
fee is hereby granted to the public in perpetuity, provided
that the above copyright notice and this paragraph appear in
all copies. The copyright holders make no representation as
to its suitability for any purpose. It is provided "as is"
and without expressed or implied warranty.
Editors: Steve Pepper <pepper@ontopia.net>
Graham Moore <gdm@empolis.co.uk>
Status: Final
Version: v1.0
Revision: $Id: core.xtm,v 1.3 2001/02/21 21:27:27 pepper Exp $
PublicId:
"-//TopicMaps.Org//DOCUMENT XTM 1.0 Core Published Subject Indicators//EN"
Revisions:
#2000-12-03: added comments from XTM 1.0 Core
#2001-02-01: major revision to align with Paris decisions
#2001-02-01: turned descriptions into occurrences and subject indicators
-->
<!-- XTM Published Subject Indicators
The topic elements in this document are designed to serve as
published subject indicators for topics declared in other topic
maps whose subjects are the same as the subjects of these topic
elements.
In the referencing topic maps, the addresses used to refer to
these topic elements must use the unique identifiers (i.e. the
"URI" values indicated within the occurrences) of these elements,
because their unique identifiers are permanent; their relative
positions in the document are not necessarily permanent.
Addressing may use indirection via a topic element.
TopicMaps.Org reserves the right to enhance the usefulness of
these published subject indicators, and to provide additional
published subject indicators, but only in ways that will not
negatively impact the value or usefulness of any existing
conforming topic map documents.
The subjects of these published subject indicators are described
in the XTM 1.0 Specification as "mandatory," that is, conforming
applications must be capable of supporting the use of these
subjects as described in the XTM 1.0 Specification.
The subject indicators referenced by these topic elements are the
portions of the XTM 1.0 Specification that provide their
normative descriptions. Other topic maps should normally use
these topic elements as the identity points of these subjects,
rather than the subject indicators that they themselves
reference. These topic elements may be edited, at some future
date, in such a way as to provide additional subject indicators
that will refer to any portions of future versions of the XTM
Specification that describe the same subject.
-->
<!-- begin: XTM core concepts -->
<topic id="<a href="#psi-topic">topic</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-topic"/>
<subjectIndicatorRef xlink:href="#psi-topic-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>topic</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-topic-description">
Topic: The core concept of topic; the generic class to
which all topics belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#topic
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-association">association</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-association"/>
<subjectIndicatorRef xlink:href="#psi-association-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>association</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-association-description">
Association: The core concept of association; the generic class
to which all associations belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#association
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-occurrence">occurrence</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-occurrence"/>
<subjectIndicatorRef xlink:href="#psi-occurrence-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>occurrence</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-occurrence-description">
Occurrence: The core concept of occurrence; the generic class
to which all occurrences belong unless otherwise specified.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#occurrence
</resourceData>
</occurrence>
</topic>
<!-- end: XTM core concepts -->
<!-- begin: the class-instance relationship -->
<topic id="<a href="#psi-class-instance">class-instance</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-class-instance"/>
<subjectIndicatorRef xlink:href="#psi-class-instance-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>class-instance relationship</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-class-instance-description">
Class-instance relationship: The core concept of class-instance;
the class of association that represents class-instance
relationships between topics, and that is semantically
equivalent to the use of &lt;instanceOf&gt; subelements.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#class-instance
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-class">class</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-class"/>
<subjectIndicatorRef xlink:href="#psi-class-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>class</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-class-description">
Class: The core concept of class; the role of class as played
by one of the members of a class-instance association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#class
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-instance">instance</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-instance"/>
<subjectIndicatorRef xlink:href="#psi-instance-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>instance</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-instance-description">
Instance: The core concept of instance; the role of instance as
played by one of the members of a class-instance association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#instance
</resourceData>
</occurrence>
</topic>
<!-- end: the class-instance relationship -->
<!-- begin: the superclass-subclass relationship -->
<topic id="<a href="#psi-superclass-subclass">superclass-subclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-superclass-subclass"/>
<subjectIndicatorRef xlink:href="#psi-superclass-subclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>superclass-subclass relationship</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-superclass-subclass-description">
Superclass-subclass relationship: The core concept of
superclass-subclass; the class of association that represents
superclass-subclass relationships between topics.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#superclass-subclass
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-superclass">superclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-superclass"/>
<subjectIndicatorRef xlink:href="#psi-superclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>superclass</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-superclass-description">
Superclass: The core concept of superclass; the role of superclass
as played by one of the members of a superclass-subclass association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#superclass
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-subclass">subclass</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-subclass"/>
<subjectIndicatorRef xlink:href="#psi-subclass-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>subclass</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-subclass-description">
Subclass: The core concept of subclass; the role of subclass as
played by one of the members of a superclass-subclass association.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#subclass
</resourceData>
</occurrence>
</topic>
<!-- end: the superclass-subclass relationship -->
<!-- begin: variant name parameter concepts -->
<topic id="<a href="#psi-sort">sort</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-sort"/>
<subjectIndicatorRef xlink:href="#psi-sort-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>suitability for sorting</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-sort-description">
Suitability for sorting: Suitability of a topic name for
use as a sort key; for use in the parameters of variant names.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#sort
</resourceData>
</occurrence>
</topic>
<topic id="<a href="#psi-display">display</a>">
<subjectIdentity>
<subjectIndicatorRef xlink:href="index.html#psi-display"/>
<subjectIndicatorRef xlink:href="#psi-display-description"/>
</subjectIdentity>
<baseName><scope><topicRef xlink:href="language.xtm#en"/></scope>
<baseNameString>suitability for display</baseNameString>
</baseName>
<occurrence>
<resourceData id="psi-display-description">
Suitability for display: Suitability of a topic name for
display; for use in the parameters of variant names.
URI: http://www.topicmaps.org/xtm/1.0/core.xtm#display
</resourceData>
</occurrence>
</topic>
<!-- end: variant name parameter concepts -->
<!-- end of XTM 1.0 Core Published Subject Indicators (PSIs) -->
</topicMap>
</pre><!-- end psi1.xtm -->
<p><a id="coremap2" name="coremap2">In addition to the <cite>XTM 1.0 Core
Published Subject Indicators</cite> topic map shown above, XTM topic
maps for natural language and country (e.g. for use in topic map
internationalization), are provided below:</a></p>
<ul>
<li><a href="http://www.topicmaps.org/xtm/1.0/core.xtm">XTM 1.0 Core Published Subject Indicators</a> (core.xtm)</li>
<li><a href="http://www.topicmaps.org/xtm/1.0/language.xtm">XTM Language Topics</a> (language.xtm)</li>
<li><a href="http://www.topicmaps.org/xtm/1.0/country.xtm">XTM Country Topics</a> (country.xtm)</li>
</ul>
<p>
</p>
<!-- end div.sect2 XTM 1.0 Core Published Subject Indicators annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : processing requirements annex ............. -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex F: <a id="processing" name="processing">XTM Processing Requirements</a> (Informative)</h2>
<div class="sect2">
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.1" name="F.1">F.1 Introduction</a></h2>
<div class="sect3">
<p>This annex describes the minimal requirements for a conformant XTM
processor. At a minimum an XTM processor is required to be capable of
processing one or more topic map documents into an internal model which
represents the topic map information contained in those documents in
such a manner that a <em>consistent topic map</em> is accessible by
clients of the processor.</p>
<p>The XTM processing requirements are stated in terms of:</p>
<ul>
<li>Equality principles</li>
<li>Equivalence principles</li>
<li>Variant operations</li>
<li>Merge operations</li>
<li>Duplicate suppression</li>
</ul>
<!-- end div.sect3 intro --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.2" name="F.2">F.2 Equality principles</a></h2>
<div class="sect3">
<p>The following equality statements define the rules by which a
conformant XTM processor is required to determine the equality of topic
map constructs.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.1 String equality principle</h3>
<p>A conformant XTM processor is required to be capable of comparing two
strings for equality. Before any comparison occurs, a compliant XTM
processor must transcode all strings into Unicode/ISO 10646. Given this
transcoding, two strings are considered equal if they are encoded as
identical sequences of scalar values. A conformant XTM processor
application may apply additional algorithms for determining string
equality.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.2 URI equality principle</h3>
<p>A conformant XTM processor must consider two URIs to be equal if they
are found to be equal using the rules defined for the appropriate URI
scheme.</p>
<p>Section 6 of RFC 2396 provides the general definition of how 2 URIs
are deemed to be equal. Below is a set of references to URI schemes that
a conformant XTM processor must support:</p>
<ul>
<li>http (RFC 1738 section 3.3)</li>
<li>ftp (RFC 1738 section section 3.2)</li>
<li>https (RFC 1738 section 3.3)</li>
<li>file (RFC 1738 section 3.10)</li>
<li>urn (RFC 2141),
<ul>
<li>A conformant XTM processor must decide URN equality based on the URI
equivalence rules as defined in RFC 2396 section 6.</li>
<li>A conformant XTM processor may decide URN equality based on the
definitions in particular URN scheme documentation.</li>
</ul>
</li>
</ul>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.3 Scope equality principle</h3>
<p>In a consistent topic map a conformant XTM processor must consider
two scopes equal if they contain the same set of topics.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.4 Association equality principle</h3>
<p>A conformant XTM processor must considrer two associations to be
equal if the following are true:</p>
<ol>
<li>The associations are comprised of the same set of roles.</li>
<li>The set of topics playing each role in the associations are
equal.</li>
<li>The associations are instances of the same class.</li>
<li>The scopes of the associations are equal as defined by the scope
equality principle.</li>
</ol>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.5 Topic Name equality principle</h3>
<p>Two base names are considered equal if the following are true:</p>
<ol>
<li>The string values of the base names are equal as defined by the
string equality principle.</li>
<li>The scopes in which the base names occur are equal as defined by the
scope equality principle.</li>
</ol>
<p>Variant Names are ignored when deciding if two names are equal.</p>
<h3><a href="#F.2"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.2.6 Topic Occurrence equality principle</h3>
<p>Two topic occurrences are considered equal if the following are true:</p>
<ol>
<li><p>In the case of <tt><resourceRef></tt> elements, the URIs
used to address the occurrences are equivalent as defined by the URI
equality principle; or</p>
<p>In the case of <tt><resourceData></tt> elements, the resource
data values that are the occurrences are equal. (Before any comparison
of values occurs, an XTM processor must transcode all strings into
Unicode/ISO 10646. Given this, two resource data values are considered
equal if they are encoded as identical sequences of scalar
values.)</p></li>
<li>The occurrences are of the same class.</li>
<li>The scopes of the occurrences are equal as defined by the scope
equality principle.</li>
</ol>
<!-- end div.sect3 equality principles --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.3" name="F.3">F.3 Equivalence principles</a></h2>
<div class="sect3">
<p>Equivalence principles state the different ways in which the same
topic map nodes may be conveyed by different syntactic representations.
A conformant XTM processor is required to recognise all equivalent
syntactic representations of topic map constructs, as listed in this
section and process them in such a way that in the processed topic map
it is undetectable which syntactic representations were used.</p>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.1 Equivalence of <subjectIndicatorRef> and <topicRef></h3>
<p>A <tt><subjectIndicatorRef></tt> element which references topic
<var>A</var> may be equivalently expressed by a
<tt><topicRef></tt> element which also references topic
<var>A</var>.</p>
<p>A <tt><subjectIndicatorRef></tt> element that references a
resource other than a topic may be equivalently expressed by a
<tt><topicRef></tt> element that refers to a topic which regards
the resource as a subject indicator.</p>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.2 Equivalence of <instanceOf> and <association></h3>
<p>An <tt><instanceOf></tt> element expresses a relationship
between the <tt><topic></tt>, <var>T</var>, referenced from
the child element of the <tt><instanceOf></tt> element and the
<tt><topic></tt>, <tt><association></tt> or
<tt><occurrence></tt> which is the parent element of the
<tt><instanceOf></tt> element.</p>
<p>This relationship may be equivalently expressed by an
<tt><association></tt> that is an instance of the published
subject “class-instance” and which has two roles in the
unconstrained scope — the “class” role and the
“instance” role. The player of the “class” role
is the topic <var>T</var>. If the parent element of
<tt><instanceOf></tt> is a <tt><topic></tt> element then the
player of the “instance” role is the topic represented by
that <tt><topic></tt> element. If the parent element of
<tt><instanceOf></tt> is not a <tt><topic></tt> element,
then the player of the “instance” role is a topic which
reifies the association or occurrence represented by that parent
element.</p>
<p>If an <tt><association></tt> is used to express a
“class-instance” relationship it is a reportable XTM Error
if any of the following are true:</p>
<ol>
<li>The “class” role is played by a topic with an
addressable subject.</li>
<li>Either the “class” or “instance” roles are
not roles of the association.</li>
<li>Roles other than the “class” and “instance”
roles are part of the association.</li>
</ol>
<h3><a href="#F.3"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.3.3 Equivalence of Multiple <member>s of the Same Role</h3>
<p>An association containing multiple members, <var>M1</var> and
<var>M2</var> of the same role <var>R</var> may be equivalently defined
by an association containing a single member <var>M3</var> of role
<var>R</var> whose set of players is the union of the sets of players of
role <var>R</var> in members <var>M1</var> and <var>M2</var>.
</p>
<!-- end div.sect3 equivalence principles --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.4" name="F.4">F.4 Variant Operations</a></h2>
<div class="sect3">
<h3><a href="#F.4"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
<a name="variant-processing" id="variant-processing">F.4.1 Variant
scope processing</a></h3>
<p>The processing context of a variant name defined by a
<tt><variant></tt> element is defined as the union of the
parameters of the <tt><variant></tt> element and all of its
ancestor <tt><variant></tt> elements.</p>
<p>Thus a variant name with a set of parameters is equivalent to having
the same set of parameters on a parent variant and having no additional
parameters itself.</p>
<!-- end div.sect3 varaint operations --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.5" name="F.5">F.5 Merge operations</a></h2>
<div class="sect3">
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.1 Topic merge operation</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>Two topics, <var>A</var> and <var>B</var> are to be merged.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>A single topic <var>M</var> exists.</li>
<li>The set of name characteristics of <var>M</var> is equal to the
union of the set of name characteristics of <var>A</var> and
<var>B</var>.</li>
<li>The set of subject indicators of <var>M</var> is equal to the union
of the set of subject indicators of <var>A</var> and <var>B</var>.</li>
<li>The addressable subject of <var>M</var> is equal to the addressable
subject of either <var>A</var> or <var>B</var>.</li>
<li><var>M</var> replaces <var>A</var> and <var>B</var> as a player of
any roles played in associations in the topic map. </li>
<li>The set of occurrence assignments of <var>M</var> is equal to the
union of occurrence assignments of <var>A</var> and <var>B</var>.</li>
<li><var>A</var> and <var>B</var> no longer exist</li>
</ol>
<h4 class="prt">Error Condition:</h4>
<p>It is a Reportable XTM Error if:</p>
<ol>
<li>Topics <var>A</var> and <var>B</var> have different addressable
subjects</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t34">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet.html" />
</occurrence>
</topic>
<topic id="t35">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Prince Of Denmark</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet_again.html" />
</occurrence>
</topic>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t34" />
</member>
</association>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t35" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!--
Note that the topics are merged and as a result of this the
association duplicate redundancy rule is invoked. This removes
the now duplicate association.
-->
<topic id="t36">
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Prince Of Denmark</baseNameString>
</baseName>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet.html" />
</occurrence>
<occurrence>
<resourceRef xlink:href="http://www.topicmaps.org/examples/hamlet_again.html" />
</occurrence>
</topic>
<association>
<member>
<roleSpec><topicRef xlink:href="#t-play"/></roleSpec>
<topicRef xlink:href="#t-hamlet" />
</member>
<member>
<roleSpec><topicRef xlink:href="#t-character"/></roleSpec>
<topicRef xlink:href="#t36" />
</member>
</association>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.2 Subject-based merge operation</h3>
<h4 class="prt">Precondition:</h4>
<p>Two topics <var>A</var> and <var>B</var> exist in topic map
<var>M</var> such that:</p>
<ol>
<li>the URIs of the addressable subjects of <var>A</var> and
<var>B</var> are equal according to the URI equality principle, or</li>
<li>topic <var>B</var> is a subject indicator of topic <var>A</var>,
or</li>
<li>there exists two URIs <var>U1</var> and <var>U2</var>, where
<var>U1</var> is a subject indicator of topic <var>A</var> and
<var>U2</var> is a subject indicator of topic <var>B</var> and
<var>U1</var> is equal to <var>U2</var> according to the URI equality
principle, or</li>
<li>there exist two URIs <var>U1</var> and <var>U2</var>, where
<var>U1</var> is a subject indicator of topic <var>A</var> and
<var>U2</var> is a subject indicator of topic <var>B</var> and the XTM
processing application has determined via application specific
processing that the subject indicator referenced by <var>U1</var>
indicates the same subject as that referenced by <var>U2</var>.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Topics <var>A</var> and <var>B</var> are merged with pre and
post-conditions as specified by the topic merge operation.</li>
</ol>
<h4 class="prt">Example 1. The URIs of the addressable subjects of
<var>A</var> and <var>B</var> are equal:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>TopicMaps.Org web-site</baseNameString>
</baseName>
</topic>
<topic id="t2">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>The Web-site of TopicMaps.Org</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<subjectIdentity>
<resourceRef xlink:href="http://www.topicmaps.org" />
</subjectIdentity>
<baseName>
<baseNameString>TopicMaps.Org web-site</baseNameString>
</baseName>
<baseName>
<baseNameString>The Web-site of TopicMaps.Org</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h4 class="prt">Example 2. The two topics have at least one subject indicator URI in
common:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
<subjectIndicatorRef xlink:href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt" />
</subjectIdentity>
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
</topic>
<topic id="t2">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
</subjectIdentity>
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.shakespeare.org/plays/hamlet.html" />
<subjectIndicatorRef xlink:href="ftp://www.gutenberg.org/pub/gutenberg/etext97/1ws2610.txt" />
</subjectIdentity>
<baseName>
<baseNameString>Hamlet</baseNameString>
</baseName>
<baseName>
<baseNameString>The Tragedy of Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.3 Topic naming constraint-based merge</h3>
<h4 class="prt">Precondition:</h4>
<p>Two topics <var>A</var> and <var>B</var> exist in topic map
<var>M</var> such that:</p>
<ol>
<li>Topic <var>A</var> has a base name string <var>B1</var> in a scope
<var>S1</var> and,</li>
<li>Topic <var>B</var> has a base name string <var>B2</var> in scope
<var>S2</var> and,</li>
<li>Scope <var>S1</var> is equal to scope <var>S2</var> according to the
scope equality principle and,</li>
<li>The base name string <var>B1</var> is equal to the base name string
<var>B2</var> according to the string equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>T1</var> and <var>T2</var> are merged according to the topic
merge operation</li>
</ol>
<h4 class="prt">Notes:</h4>
<p>The scopes <var>S1</var> and <var>S2</var> may be the unconstrained
scope.</p>
<h4 class="prt">Example 1. Topic naming constraint merge in
unconstrained scope:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topic id="t1">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
<topic id="t2">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topic id="t3">
<baseName>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</pre>
<h4 class="prt">Example 2. Topic naming constraint merge in scope:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
<topic id="t2">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t3">
<baseName>
<scope>
<topicRef xlink:href="#shakespearean-tragedy" />
</scope>
<baseNameString>Hamlet, Prince of Denmark</baseNameString>
</baseName>
</topic>
</topicMap>
</pre>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.4 Explicit topic map merge</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A <tt><mergeMap></tt> element is processed in topic map
<var>M</var> that references a topic map document <var>D</var>.</li>
<li>The <tt><mergeMap></tt> element contains references to a set
of subjects <var>S</var> by means of its child elements.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Every topic and association in <var>D</var> is added to the topic
map; the scope of every base name, occurrence and association role
originating in <var>D</var> is expressed as the union of the set of
subjects in its original scope and the set <var>S</var>.</li>
</ol>
<p class="note"><b>Note:</b> Any merge map directives in <var>D</var>
are further processed according to this rule. Sets of subjects
<var>S</var> are accumulated down the chain.</p>
<h3><a href="#F.5"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.5.5 Implicit topic map merge</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A <tt><topicRef></tt> is processed.</li>
<li>The processed <tt><topicRef></tt> references a topic in a
topic map, <var>M</var>, which has not yet been processed.</li>
<li>The application chooses to resolve the <tt><topicRef></tt> to
the referenced topic</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>Every topic and association in <var>M</var> is added to the topic
map and additional merging and duplicate suppression may occur.</li>
</ol>
<p class="note"><b>Note:</b> Any merge map directives in <var>M</var>
are processed according to the explicit topic map merge rule.</p>
<!-- end div.sect3 merge operations --></div>
<!-- ....................................................... -->
<h2><a href="#processing"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" width="22"></a>
<a id="F.6" name="F.6">F.6 Duplicate suppression</a></h2>
<div class="sect3">
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.1 Subject indicator duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A topic <var>A</var> exists in topic map <var>M</var> with two URI
references to subject indicators, <var>U1</var> and <var>U2</var>.</li>
<li><var>U1</var> is equal to <var>U2</var> according to the URI
equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<p>The reference to the subject indicator specified by <var>U2</var> is
removed from <var>A</var>.</p>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
</subjectIdentity>
</topic>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<topic id="t1">
<subjectIdentity>
<subjectIndicatorRef xlink:href="http://www.elsinor.dk/hamlet.html" />
</subjectIdentity>
</topic>
</topicMap>
</pre>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.2 Topic name duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>A topic <var>A</var> exists in topic map <var>M</var> with basename
<var>B1</var> that contains a base name string <var>N1</var> in scope
<var>S1</var> and base name <var>B2</var> which contains a base name
string <var>N2</var> in scope <var>S2</var>.</li>
<li><var>N1</var> is equal to <var>N2</var> as defined by the string
equality principle.</li>
<li><var>S1</var> is equal to <var>S2</var> as defined by the scope
equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li>A base name <var>B3</var> is created which contains a base name
string equal to <var>N1</var> in a scope equal to <var>S1</var>.</li>
<li>All variants of <var>B1</var> are added to <var>B3</var>.</li>
<li>All variants of <var>B2</var> are added to <var>B3</var>.</li>
<li><var>B3</var> is added to the set of names of <var>A</var>.</li>
<li><var>B1</var> and <var>B2</var> no longer exist.</li>
</ol>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.3 Association duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>The topic map contains two associations <var>A1</var> and
<var>A2</var></li>
<li><var>A1</var> is equal to <var>A2</var> as defined by the
association equality principle.</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>A2</var> is removed from the topic map</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
<association id="a35">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<h3><a href="#F.6"><img alt="top-of-section" border="0" class="nav" height="10" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect3.gif" width="16"></a>
F.6.4 Role player duplicate suppression</h3>
<h4 class="prt">Precondition:</h4>
<ol>
<li>An association <var>A</var> has members <var>M1</var> and <var>M2</var></li>
<li><var>M1</var> and <var>M2</var> reference the same topic <var>RT</var> as the role-defining topic</li>
<li><var>M1</var> and <var>M2</var> reference the same topic <var>RPT</var> as the role-playing topic</li>
</ol>
<h4 class="prt">Postcondition:</h4>
<ol>
<li><var>M2</var> is removed from association <var>A</var>.</li>
</ol>
<h4 class="prt">Example:</h4>
<b><em>Before:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<b><em>After:</em></b>
<pre class="markup"> <topicMap>
<!-- definition of required topics
...
-->
<association id="a34">
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#gdm" />
</member>
<member>
<roleSpec><topicRef xlink:href="#brother" /></roleSpec>
<topicRef xlink:href="#ctb" />
</member>
</association>
</topicMap>
</pre>
<!-- end div.sect3 duplicate suppression --></div>
<!-- end div.sect2 processing requirements annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : transformation annex ...................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex G: <a id="transform" name="transform">ISO 13250 to XTM 1.0 Document Transformation</a> (Informative)</h2>
<div class="sect2">
<p>
This annex provides a link to information describing the transformation
of topic map documents conforming to ISO 13250 into XTM 1.0 syntax.
</p>
<ul>
<li>
<a href="http://www.topicmaps.org/xtm/1.0/transform.html">ISO 13250 to XTM 1.0 Document Transformation</a>
</li>
</ul>
<p>
</p>
<!-- end div.sect2 transformation annex --></div>
<hr align="left" class="sectdiv" width="50%">
<!-- ............................................................. -->
<!-- begin div.sect2 : acknowledgements annex .................... -->
<h2><a href="#toc"><img class="nav" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect2.gif" border="0" width="22" height="13" alt="top"></a>
Annex H: <a id="thanks" name="thanks">Acknowledgements</a> (Informative)</h2>
<div class="sect2">
<p>The development of XML Topic Maps (XTM) 1.0 was a team effort, led by
the TopicMaps.Org Authoring Group. The editors would like to thank the
following people in particular for major contributions to the editorial
process:</p>
<ul><li>
<b>Michel Biezunski</b> & <b>Steven R. Newcomb</b> (co-chairs,
Interchange Syntax Subgroup)<br>
<b>Daniel Rivers-Moore</b> (chair, Conceptual Model Subgroup)<br>
<b>Kal Ahmed</b> (chair, Processing Requirements Subgroup)<br>
<b>Murray Altheim</b> & <b>Sam Hunting</b> (associate editors)<br>
</li></ul>
<p>The <em>Participating Members</em> of the TopicMaps.Org Authoring
Group in good standing at the time of publication include:</p>
<ul><li>
Murray Altheim (Sun Microsystems)<a href="#founding" class="xref"><sup>*</sup></a>,
Michel Biezunski (InfoLoom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
Jean Delahousse (Mondeca)<a href="#founding" class="xref"><sup>*</sup></a>,
Patrick Durusau (Society of Biblical Literature)<a href="#founding" class="xref"><sup>*</sup></a>,
Eric Freese (Isogen/DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Sam Hunting (Etopicality)<a href="#founding" class="xref"><sup>*</sup></a>,
Andrius Kulikauskas (Minciu Sodas)<a href="#founding" class="xref"><sup>*</sup></a>,
Luis Martinez<a href="#founding" class="xref"><sup>*</sup></a>,
Graham Moore (Empolis)<a href="#founding" class="xref"><sup>*</sup></a>,
Steven R. Newcomb<a href="#founding" class="xref"><sup>*</sup></a>,
Nikita Ogievetsky (Cogitech, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
Jack Park (VerticalNet Solutions)<a href="#founding" class="xref"><sup>*</sup></a>,
Steve Pepper (Ontopia)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Rivers-Moore (RivCom)<a href="#founding" class="xref"><sup>*</sup></a>,
and
Bryan Thompson (GlobalWisdom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>.
</li></ul>
<p>
Thanks also to Invited Guests and others who have provided valuable
input into the process:</p>
<ul><li>
Kal Ahmed (Ontopia)<a href="#founding" class="xref"><sup>*</sup></a>,
Chris Angus (Kalido Ltd),
David Duncan (ADIS International)<a href="#founding" class="xref"><sup>*</sup></a>,
Lars Marius Garshol (Ontopia),
David Goldstein (Versaware)<a href="#founding" class="xref"><sup>*</sup></a>,
Geir Ove Grønmo (Ontopia),
Jason Hanna (EMC)<a href="#founding" class="xref"><sup>*</sup></a>,
Ivan Harré (ADIS International)<a href="#founding" class="xref"><sup>*</sup></a>,
Michael Hoexter<a href="#founding" class="xref"><sup>*</sup></a>,
G. Ken Holman (Crane Softwrights Ltd.)<a href="#founding" class="xref"><sup>*</sup></a>,
Peter Jones (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
Dianne Kennedy (InfoLoom, Inc.)<a href="#founding" class="xref"><sup>*</sup></a>,
W. Eliot Kimber (Isogen/DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Koger (Herrick Douglass)<a href="#founding" class="xref"><sup>*</sup></a>,
Benedicte LeGrand (Laboratoire d'Informatique de Paris 6)<a href="#founding" class="xref"><sup>*</sup></a>,
Aaron Lowe (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
James Mason (Y-12 National Security Complex),
Norbert Mikula (DataChannel)<a href="#founding" class="xref"><sup>*</sup></a>,
Peter Newcomb (Epremis Corporation),
Laurent Olivry (Electricité de France),
Eugene Pereira (CCH)<a href="#founding" class="xref"><sup>*</sup></a>,
Christina Portillo (Boeing)<a href="#founding" class="xref"><sup>*</sup></a>,
Hans Holger Rath (Empolis),
Adrian Rivers (RivCom),
Vishal Shah (NEC)<a href="#founding" class="xref"><sup>*</sup></a>,
Daniel Speck (The Bureau of National Affairs)<a href="#founding" class="xref"><sup>*</sup></a>,
Drew Stevens (McKinsey & Company)<a href="#founding" class="xref"><sup>*</sup></a>,
Bliksem Tobey (McKinsey & Company)<a href="#founding" class="xref"><sup>*</sup></a>,
Bernard Vatant (Mondeca),
Jenny Watson (Wrox Press)<a href="#founding" class="xref"><sup>*</sup></a>,
Matthew West (Shell Services International),
and
Ann Wrightson (Ontopia).
</li></ul>
<p>Many thanks to others who have provided comments and feedback, as
well as to those organizations that have supported the development of
XTM through their commitments of valuable resources.</p>
<p>Finally, we'd like to thank <a href="http://www.shakespeare.org/">Shakespeare & Company</a> for
permission to use their web site's URL in our examples.</p>
<p class="note"><a id="founding" name="founding">*</a>founding member of
TopicMaps.Org.</p>
<!-- end div.sect2 acknowledgements annex --></div>
<!-- end div.sect1 annexes section --></div>
<p class="issue"><a href="#top"><img alt="top-of-document" border="0" class="nav" height="16" src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/arrow-u-sect1.gif" width="27"></a></p>
<!-- end div.sect1 --></div>
<div class="footer">
<hr width="90%"><!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<table summary="footer information" width="100%">
<tbody><tr><td align="left" valign="top"><a href="http://validator.w3.org/check/referer"><img src="XML%20Topic%20Maps%20%28XTM%29%201.0_files/valid-xhtml10.gif" border="0" alt="Valid XHTML 1.0!" height="31" width="88"></a>
<!--
<a href="http://www.w3.org/WAI/WCAG1AAA-Conformance"
title="Explanation of Level Triple-A Conformance"><img src="img/wcag1aaa.gif"
border="0" height="32" width="88"
alt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a>-->
</td>
<td align="left" valign="top"><small>Copyright 2001 TopicMaps.Org, All Rights Reserved.
<br class="lf"><span class="date"><b>Last Revised:</b>
$Id: index.html,v 1.16 2001/08/06 14:31:44 pepper Exp $
</span></small></td></tr></tbody></table>
<!-- end div footer --></div>
</body></html>
--------------020108020409090706050203--
--------------020005030509080302070005--