ISO/IEC JTC 1/SC34 N (no official status)

ISO/IEC JTC 1/SC34

Information Technology --

Document Description and Processing Languages

TITLE: Topic Maps Reference Model
SOURCE: Steven R. Newcomb, Sam Hunting, Jan Algermissen and Patrick Durusau
PROJECT: Topic Maps
PROJECT EDITORS: Michel Biezunski, Martin Bryan, Steven R. Newcomb
STATUS: Editor's Draft, Revision 2.6
ACTION: For review and comment
DATE: 16 March 2003
SUMMARY:
DISTRIBUTION: SC34 and Liaisons
REFER TO:
SUPERCEDES:
REPLY TO: Dr. James David Mason
(ISO/IEC JTC1/SC34 Chairman)
Y-12 National Security Complex
Information Technology Services
Bldg. 9113 M.S. 8208
Oak Ridge, TN 37831-8208 U.S.A.
Telephone: +1 865 574-6973
Facsimile: +1 865 574-1896
E-mail: mailto:mxm@y12.doe.gov
http://www.y12.doe.gov/sgml/sc34/sc34oldhome.htm

Ms. Sara Hafele Desautels, ISO/IEC JTC 1/SC 34 Secretariat
American National Standards Institute
25 West 43rd Street
New York, NY 10036
Tel: +1 212 642-4937
Fax: +1 212 840-2298
E-mail: sdesaute@ansi.org

16 March 2003

JTC 1/SC 34 N (no official status)

Topic Maps Reference Model

Version 2.6, 2003/03/16
The current editors' working revision is available at http://www.isotopicmaps.org/TMMM/TMMM-latest.html.

The current revision with no editorial marks is available at http://www.isotopicmaps.org/TMMM/TMMM-latest-clean.html.

The last officially published version (version 1.0) is ISO/IEC JTC1/SC34/N0344.

Send comments to sc34wg3@isotopicmaps.org.
When commenting about any particular paragraph, please mention the paragraph's unique identifier (e.g. "parid2902"); these are not subject to change.
(Please don't bother to mention section numbers, note numbers, etc.; they change from revision to revision.)
(See how to make your comment easy for us to publish.)

Click on red underlined parids (e.g., [parid0000]) to see comments that have been submitted.

Table of Contents

0 Introduction
1  Scope
2  Glossary
2.1 intra-assertion
2.2 property
2.3 situation property
2.4 subject
2.5 topic [node]
2.6 topic map
2.7 Topic Map Application [TM Application]
2.8 treated as a set
3  Subjects, topics, and properties
3.1 Subjects and topics
3.2 Properties of topics
4  Relationships and assertions
4.1 Substantive aspects of relationships
4.2 Situation properties
5  Situations and Property values
6  Requirements for Defining TM Applications
7  Constructing a fully merged topic map
8  Conformance
Annex A Property Value Type Definition Facility (Normative)

CHANGE HISTORY:

[parid6001] Version 2 is a major revision of Version 1. The ideas of Version 1 are preserved, but they are now all explained in terms of the properties of nodes. There are also some terminological changes; for example, what in Version 1 was called a "node" is called a "topic" in Version 2. The first published version of Version 2 (16 March 2003) lacked considerable material that was present in Version 1; this material will be recast and inserted into Version 2 before March 28.


0    [parid0498]Introduction

[parid6002] Topic maps are bodies of information that consist of "topics", each of which is a surrogate for a single subject. If every topic in a topic map is the only surrogate for its subject, then users can find all information about that subject in a single location. The Topic Maps Reference Model — the information structure of all topic maps that is defined by this standard — constrains the definitions of Topic Maps Applications in order to enable the achievement of this "Subject Location Uniqueness Objective [SLUO]". It specifies a foundation for lossless and uniform treatment of heterogeneous topic map information.

[parid6007] The Topic Maps Reference Model meets the following requirements:


1   [parid0499] Scope

[parid6016] This standard specifies:

  1. [parid6017] the information structure of all topic maps;

  2. [parid6018] certain common properties of topics, and constraints on the values of those properties;

  3. [parid6019] constraints on the definitions of Topic Map Applications;

  4. [parid6407] the definition of the term "fully merged" as it applies to topic maps; and

  5. [parid6408] other definitions and specifications that support the foregoing.


2   [parid6409] Glossary

2.1   [parid6020] intra-assertion

[parid6021] Pertaining to the components of a single assertion instance.


2.2   [parid6031] property

[parid6032]

  1. [parid6049] A class of name/value pairs defined by a TM Application.

  2. [parid6050] A component of a topic that is an instance of such a class.

[parid6051] A property may represent the identity of the subject of the topic of which it is a component, or information about the subject, such as its relationships with other subjects, or both.


2.3   [parid6022] situation property

[parid6023] A property of a topic that is defined for all topic maps by the Topic Maps Reference Model. Each such property represents connections between the topic and other topics; its value is a topic or topic list. Such a property represents the fact that the topic has an intra-assertion connection to each of the others.


2.4   [parid6024] subject

[parid6025] Any thing whatsoever, regardless of whether it exists or has any other specific characteristics, about which anything whatsoever may be asserted by any means whatsoever.


2.5   [parid0430] topic [node]

[parid6028] A non-empty set of properties that serves as a surrogate of a subject.


2.6   [parid6029] topic map

[parid6030] A body of information consisting of a non-empty set of topics.


2.7   [parid2235] Topic Map Application [TM Application]

[parid2236] A defined set of assertion types, properties, and their supporting definitions that is intended to govern the expression and merging behaviors of a set of topic maps. It is not a "software application"; it is a world view, expressed in a way that enables it to be implemented uniformly.


2.8   [parid6033] treated as a set

[parid6034] Regarded (as a list) in such a way as to ignore both the order of the items in the list, and any duplicates that appear in the list.

[parid0467] When two property values are lists that are both required to be treated as sets, their equality or inequality can be determined by any procedure that yields the same results as the following procedure:

  1. [parid0459] Make each item in each list unique in that list, i.e., delete all duplicate items from each list.

  2. [parid0460] Apply the same comprehensively deterministic order-normalization algorithm to both lists.

  3. [parid0466] Compare each item in one list for identity with the item in the corresponding position in the other list.

[parid0486] If all the pairs of items in corresponding positions in the two lists are identical, the two sets are equal. If any pair of corresponding items are not identical to each other, or if the lengths of the two lists are not the same, the two sets are not equal.


3   [parid6410] Subjects, topics, and properties

3.1   [parid6411] Subjects and topics

[parid6035] In a topic map, all subjects that are defined, and/or about which any information is conveyed, are represented by topics. The number of topics in a topic map is finite; in order to create a topic map it is necessary to choose the subjects that will be represented in it.


3.2   [parid6412] Properties of topics

[parid6009] Topics consist of properties. Each property is defined by a Topic Map Application [TM Application]. A single topic can include properties defined by multiple TM Applications.

[parid6041] Some properties are Subject Identity Discrimination Properties (SIDPs). All others are called "other properties (OPs)".

[parid6500] Some properties are "built-in"; all others are "conferred".

[parid6501] Some properties are "situation properties"; all of these are defined by the Topic Maps Model. All other properties are "TM Application—defined properties."


3.2.1   [parid0234] Property names

[parid6037] Every property has a name; the name is different from that assigned to all other properties, assertion types, and roles.

Note 1: 

[parid6038] All these names share a single namespace in order to minimize human error.



3.2.2   [parid6042] Property Values

[parid6043] Properties exhibit values only if values have been assigned to them.

Note 2: 

[parid6044] A property may exhibit a null or empty value if such a value has been explicitly assigned to it.


[parid6045] Property values have types. The Topic Maps Reference Model provides some value types and a facility for defining others; see Annex [parid6418] Annex A. The value type of a property may be such that the value exhibited by the property consists of subproperty values.


3.2.3   [parid6039] Subject identity discrimination properties (SIDPs)

[parid6419] Every topic exhibits a value for at least one SIDP. The values of SIDPs specify the subject for which the topic is a surrogate. SIDP values are the only basis for automatically recognizing when two topics have the same subject or different subjects, and should therefore either be merged or left unmerged. Each SIDP, if it exhibits a value, independently specifies the subject of the topic, for all purposes of subject identification and the merging of topics.


3.2.4   [parid6040] Other properties (OPs)

[parid6420] The values of OPs do not influence the merging process. Their significance is entirely TM Application–defined.


4   [parid6413] Relationships and assertions

[parid6052] Subjects have relationships with each other. These relationships are themselves subjects, and they have substantive aspects which are also subjects.


4.1   [parid6053] Substantive aspects of relationships

[parid6064] When a topic represents a relationship among topics, such a topic is called an "assertion topic" or "a-topic". Every a-topic is the nexus of a set of topics, called an "assertion". Each member of the set (including the a-topic) represents a subject which is a substantive aspect of the relationship.

[parid6054] When a relationship exists among subjects, each subject so related is called a "role player". In the context of any specific assertion, each topic that represents a role player in that assertion is called an "x-topic".

[parid6059] Each role player plays a specific role in the relationship, and each such specific role is itself a subject. In the context of any specific assertion or assertion type, each topic that represents a role is called an "r-topic".

[parid6060] The fact that a specific role player (or the fact that no role player) plays a specific role in a specific relationship is called a "casting". Topics whose subjects are castings are called "c-topics".

[parid6061] When a relationship is explicitly an instance of a specific type of relationship, the type is itself a subject. Such a subject, which may be called a "relationship type" or an "assertion type", should be defined in such a way as to specify the roles, the qualifications that should be met by the players of the roles, and the significance (semantics) of all instances of the type. Topics whose subjects are assertion types are called "t-topics".

Note 3: 

[parid6058] The notion of role-playing implies a theatrical metaphor which may be helpful in understanding relationships, assertions, and their substantive aspects. An assertion type is like a written play. The playwright ˜ the definer of the TM Application in which the assertion type is defined ˜ defines the roles to be played in all performances of the play, and characterizes each of the roles in various ways. An instance of an assertion is like a specific performance of a play, in which the specific "actors" who play the roles are specific subjects. The "castings" of an assertion are like the entries that appear in the playbill that specifies which actors have been cast in which roles. The SIDPs of topics are like the costumes of the actors; they allow the audience to see and identify the subjects that are playing the roles.



4.2   [parid6062] Situation properties

[parid6063] The topics in the set of topics that comprise an assertion refer to each other by means of certain of their properties; these properties, called "situation properties", are the only properties defined for all topic maps by the Topic Maps Reference Model.


4.2.1   [parid6055] Situation properties of assertion topics ("a-topics")

4.2.1.1   [parid6426] IS13250::a-sidp

[parid6057] Every a-topic must have a single SIDP, IS13250::a-sidp. This property's value is structured as two subproperties:

  1. [parid0452] The t-topic subproperty's value, if any, is a topic.

  2. [parid0456] The castingPair subproperty's value, is a list of pairs of sub-subproperties, as follows:

    1. [parid0457] The r-topic sub-subproperty's value is a topic.

    2. [parid0458] The x-topic sub-subproperty's value is a topic.

[parid6422] The value of the t-topic subproperty is the topic that represents the type of the assertion which is the subject of the a-topic. The value, if any, must be the same as the value of the IS13250::a-type property, if any. If the value of the t-topic subproperty is empty, the type of the assertion is unspecified; in this case, the value of the IS13250::a-type property, if any, must also be empty.

[parid6423] The castingPair subproperty's value is a list of pairs of topics treated as a set. The r-topic sub-subproperty is the topic whose subject is one of the role players of the assertion, while the other sub-subproperty of the pair, x-topic, is the topic whose subject is the role being played by that same role player. There must be a one-to-one correspondence between this set of pairs and the set of c-topics that is the value of the IS13250::a-casting property of the same a-topic, such that in each correspondence, the value of the r-topic sub-subproperty is the same as the value of the corresponding IS13250::c-role property, and the value of the x-topic sub-subproperty is the same as the value of the corresponding IS13250::c-rolePlayer property.

Note 4: 

[parid6424] The castingPair subproperty of the IS13250::a-sidp property should not be confused with the IS13250::a-casting property.


[parid6066] If a topic has an IS13250::a-sidp property, it must also have an IS13250::a-casting property, and an IS13250::a-role property. It may have an IS13250::a-type property. It must not have any properties whose names begin with "IS13250::r-", "IS13250::c-", or "IS13250::t-". It must not have any other SIDPs whatsoever.

[parid0010] No topic that does not have an IS13250::a-sidp property can have any properties whose names begin with "IS13250::a-".


4.2.1.2   [parid6425] IS13250::a-casting

[parid6427] Every a-topic must have an OP, IS13250::a-casting, whose value is a list of topics treated as a set.

[parid6070] The value is the set of c-topics of the assertion of which the a-topic is the nexus. There must be two or more. There must be a one-to-one correspondence between the members of the set of c-topics and the members of the set of pairs of topics that are the value of the castingPair subproperty of the IS13250:a-sidp property, as specified in [parid6423] 4.2.1.1.

[parid0468] Each of the c-topics in the value of the IS13250::a-casting property must have a reciprocal IS13250::c-assertion property whose value is the a-topic.


4.2.1.3   [parid6429] IS13250::a-type

[parid6430] Every a-topic may have an OP, IS13250::a-type, whose value, if any, is a topic.

[parid6432] If an a-topic has a non-empty IS13250:a-type property, the value is the t-topic of the assertion of which the a-topic is the nexus. If the a-topic does not have an IS13250::a-type property, or if the value is empty, the type of the assertion is unspecified.

[parid0105] The a-topic must be a member of the set of a-topics that is the value of the IS13250::t-assertion property of the t-topic, if any.


4.2.1.4   [parid6433] IS13250::a-role

[parid6434] Every a-topic must have an OP, IS13250::a-role, whose value is a list of topics treated as a set.

[parid6436] The value is the set of r-topics of the assertion of which the a-topic is the nexus. There must be two or more. There must be a one-to-one correspondence between the members of the set of r-topics and the members of the set of c-topics that are the value of the IS13250:a-casting property.


4.2.2   [parid0002] Situation property of role player topics ("x-topics")

4.2.2.1   [parid0003] IS13250::x-casting

[parid0004] Every x-topic has an OP, IS13250::x-casting, whose value is a list of topics treated as a set.

[parid0007] The value is the set of all c-topics that cast the subject of the x-topic in a role in an assertion. The value must be zero or more c-topics. If the value is empty, the subject of the x-topic does not play any roles in any assertions, the topic is not an x-topic, and the IS13250::x-casting property is ignored.

[parid0008] All subjects, without exception, are eligible to be role players in relationships; therefore all topics are eligible to be x-topics, that is, to have an IS13250::x-casting property with a non-empty value.

[parid0478] Each of the c-topics in the value of the IS13250::x-casting property must have the x-node as the value of its IS13250::c-rolePlayer property.

Note 5: 

[parid0009] The "x" in "x-topic" is intended to connote that, in Topic Maps, a role player can be any subject, regardless of whether it is or is not an a-topic, c-topic, r-topic, or t-topic.



4.2.3   [parid0011] Situation properties of casting topics ("c-topics")

4.2.3.1   [parid0012] IS13250::c-sidp

[parid0013] Every c-topic must have a single SIDP, IS13250::c-sidp. This property's value is structured as three subproperties:

  1. [parid0479] The a-topic subproperty's value is a topic.

  2. [parid0480] The r-topic subproperty's value is a topic.

  3. [parid0485] The x-topic subproperty's value, if any, is a topic.

[parid0015] If a topic has an IS13250::c-sidp property, it must also have an IS13250::c-assertion property, and an IS13250::c-role property. It may have an IS13250::c-rolePlayer property. It must not have any properties whose names begin with "IS13250::a-", "IS13250::r-", or "IS13250::t-". It must not have any other SIDPs whatsoever.

[parid0016] No topic that does not have an IS13250::c-sidp property can have any properties whose names begin with "IS13250::c-".

[parid0018] The value of the a-topic subproperty of the IS13250::c-sidp property must be the a-topic that represents the relationship within which the subject of the c-topic is one of the castings. Its value must be the same as the value of the IS13250::c-assertion property of the same c-topic.

[parid0019] The value of the r-topic subproperty of the IS13250::c-sidp property must be the r-topic that represents the role of the casting which is the subject of the c-topic. Its value must be the same as the value of the IS13250::c-role property of the same c-topic.

[parid0017] The value of the x-topic subproperty of the IS13250::c-sidp property must be the topic that represents the role player of the casting which is the subject of the c-topic. The value, which may be empty, must be the same as the value of the IS13250::c-rolePlayer property of the same c-topic. If the value of the x-topic subproperty is empty, there is no player of the role which is the subject of the topic which is the value of the r-topic subproperty in the relationship which is the subject of the topic which is the value of the a-topic subproperty.


4.2.3.2   [parid0020] IS13250::c-role

[parid0021] Every c-topic must have an OP, IS13250::c-role, whose value must be a topic.

[parid0027] The value must be the r-topic whose subject is the role of the casting which is the subject of the c-topic. The value must be the same as the value of the r-topic subproperty of the IS13250::c-sidp property of the same c-topic. The c-topic must be a member of the set of c-topics that is the value of the IS13250::r-casting property of the r-topic.


4.2.3.3   [parid0035] IS13250::c-rolePlayer

[parid0038] Every c-topic must have an OP, IS13250::c-rolePlayer, whose value must be a topic.

[parid0040] The value, if any, must be the x-topic whose subject is the role player of the casting which is the subject of the c-topic. The value must be the same as the value of the x-topic subproperty of the IS13250::c-sidp property of the same c-topic, or it must be empty if there is no x-topic subproperty. The c-topic must be a member of the set of c-topics that is the value of the IS13250::x-casting property of the x-topic.


4.2.4   [parid0041] Situation properties of role topics ("r-topics")

4.2.4.1   [parid0043] IS13250::r-casting

[parid0044] Every r-topic may have an OP, IS13250::r-casting, whose value is a list of topics treated as a set.

[parid0050] The value is the set of all c-topics whose subjects are castings of the role that is the subject of the r-topic. No such casting can be an aspect of the same assertion as any other in the set. If the value is empty, there is no assertion of which the subject of the r-topic is a role aspect. Even if the value is empty, any topic that has an IS13250::r-casting property is an r-topic.

[parid0051] If a topic has an IS13250::r-casting property, it must not have any properties whose names begin with "IS13250::a-", "IS13250::c-", or "IS13250::t-".

[parid0052] A topic is considered an r-topic if it has an IS13250::r-casting property, even if the value of the property is empty. It may or may not also have an IS13250::r-type property.

[parid0053] Each of the c-topics in the value of the IS13250::r-casting property must have a reciprocal IS13250::c-role property whose value is the r-topic.


4.2.4.2   [parid0054] IS13250::r-type

[parid0055] Every r-topic may have an OP, IS13250::r-type, whose value, if any, must be a topic.

[parid0059] The value is the t-topic whose subject is the assertion types whose role set includes the role which is the subject of the r-topic. If the value is empty, there is no assertion type that includes the subject of the r-topic among its roles.

[parid0437] A topic is considered an r-topic if it has an IS13250::r-type property, even if the value of the property is empty. It may or may not also have an IS13250::r-casting property.

[parid0449] If an r-topic has a non-empty IS13250::r-type property, then the t-topic that is its value must be the same t-topic that must be the value of all of the IS13250::a-type properties of all of the a-topics that are the values of all of the IS13250::c-assertion properties of all of the c-topics (if any) in the value of the r-topic's IS13250::r-casting property. If an r-topic has no IS13250::r-type property, or if the value of the IS13250::r-type property is empty, then the values of the IS13250::a-type properties, if any, of all of the a-topics that are the values of all of the IS13250::c-assertion properties of all of the c-topics (if any) in the value of the r-topics IS13250::r-casting property must also be empty.

[parid0079] The t-topic in the value of the IS13250::r-type property must have a reciprocal IS13250::t-role property whose value includes the r-topic.


4.2.5   [parid0111] Situation properties of assertion type topics ("t-topics")

4.2.5.1   [parid0112] IS13250::t-assertion

[parid0146] Every t-topic may have an OP, IS13250::t-assertion, whose value is a list of topics treated as a set.

[parid0148] The value is the set of all a-topics whose subjects are assertions that are instances of the assertion type that is the subject of the t-topic. If the value is empty, there are no instances of the assertion type.

[parid0150] A topic that has an IS13250::t-assertion property is a t-topic even if the value of the property is empty. It must not have any properties whose names begin with "IS13250::a-", "IS13250::c-", or "IS13250::r-". It must also have an IS13250::t-role property.

[parid0151] Each of the a-topics in the value of the IS13250::t-assertion property must have a reciprocal IS13250::a-type property whose value is the t-topic.


4.2.5.2   [parid0152] IS13250::t-role

[parid0153] Every t-topic must have an OP, IS13250::t-role, whose value is a list of topics treated as a set.

[parid0173] The value is the set of all r-topics whose subjects are the roles defined for the assertion type that is the subject of the t-topic. There must be two or more.

[parid0507] A topic is considered a t-topic if it has an IS13250::t-role property, even if the value of the property is empty. It may or may not also have an IS13250::t-assertion property.

[parid0206] Each of the r-topics in the value of the IS13250::t-role property must have a reciprocal IS13250::r-type property whose value is the t-topic.


5   [parid6414] Situations and Property values

[parid0496]


6   [parid6415] Requirements for Defining TM Applications

[parid0492]


7   [parid6416] Constructing a fully merged topic map

[parid0488]


8   [parid6417] Conformance

[parid0487]


Annex A   [parid6418]Property Value Type Definition Facility (Normative)

[parid6457]