This Annex provides a TMA definition for the semantic material of N0396 using an XML syntax devised to illustrate such a definition.
<?xml version="1.0"?>
<!DOCTYPE tma
[
<!ENTITY base "http://www.isotopicmaps.org/psi/">
]>
<tma>
<name>IS13250-N0396-1.0</name>
<description>
A TMA definition of N0396.
</description>
<requiredModels />
<valueTypes>
<valueType>
<name>topic</name>
<description>
A value of the type topic is a surrogate for a subject. The exact
nature of a topic is entirely in the realm of the application. It
could be an integer value providing a unique ID, the address of a
data structure, or a data structure, etc.
</description>
<equality>
Two values are equal if the application considers them to be equal.
</equality>
<merging>
Values may not be merged.
</merging>
</valueType>
<valueType>
<name>locator</name>
<description>
A value of the type locator consists of a pair of non-empty strings, one
containing the name of the notation, the other containing the
reference.
</description>
<equality>
Values are equal if the first strings of the pairs are byte identical and
the second strings of the pairs are byte identical.
</equality>
<merging>
Vales may not be merged.
</merging>
</valueType>
<valueType>
<name>text</name>
<description>
A value of type text is an arbitrary sequence of bytes.
</description>
<equality>
Two texts are equal if they are represented by the same sequence of
bytes.
</equality>
<merging>
Vales may not be merged.
</merging>
</valueType>
<valueType>
<name>set</name>
<description>
A set is a unordered collection of values. All values must have the same
value type and no two values may be equal.
</description>
<equality>
Two sets are equal if the contain exactly the same elements.
</equality>
<merging>
The result of merging two set values is the union of the two sets.
</merging>
</valueType>
</valueTypes>
<properties>
<property>
<name>PR_SubjectAddresses</name>
<valueType>set(locator)</name>
<type>SIDP</type>
<description>
A set of locator items. The locators, if present, refer to the
information resource that is the subject of this topic. If the
set contains more than one locator this implies that the locators
all address the same information resource.
The fact that in some information management systems (e.g., the Web)
an information resource is not directly addressable is ignored.
</description>
<mergingCondition>
Two topics exhibit a value for this property and the
intersection of the two sets is not empty.
</mergingCondition>
</property>
<property>
<name>PR_SubjectIdentifiers</name>
<valueType>set(locator)</name>
<type>SIDP</type>
<description>
A set of locator items. The locator items refer to the subject indicators
of this topic.
</description>
<mergingCondition>
Two topics exhibit a value for this property and the
intersection of the two sets is not empty.
</mergingCondition>
</property>
<property>
<name>PR_SourceLocators</name>
<valueType>set(locator)</name>
<type>SIDP</type>
<description>
If the existence of a topic has been demanded by the presence of
some syntactical construct (a node demander), the address of that
syntactical construct is said to be a source locator of that topic.
Merging can cause the situation that a single topic has multiple
source locators, thus this property is a set.
</description>
<mergingCondition>
Two topics exhibit a value for this property and the
intersection of the two sets is not empty.
</mergingCondition>
</property>
<property>
<name>PR_SubjectData</name>
<valueType>text</name>
<type>OP</type>
<description>
A topic that exhibits a value for this property is the surrogate
for an information resource. The data content of the surrogated
information resource is the value of this property.
This is an OP, because the data content of an information resource
is not used for subject discrimination. Two information resources
can have the same data content and still be different information
resources.
</description>
</property>
<property>
<name>PR_Scope</name>
<valueType>set(topic)</name>
<type>OP</type>
<description>
Topics that exhibit a value for this property must be surrogates for
relationships (that is, they must exhibit a value for the property
IS13250::a-sidp). The set of topics that is the value is defined
to represent the context in which the represented relationship is
considered to be valid.
</description>
</property>
</properties>
<assertionTypes>
<assertionType>
<name>AT_NamedName</name>
<subjectIdentity builtInTopic="#t1" />
<roleType>
<name>RO_Named</name>
<subjectIdentity builtInTopic="#t2" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
<roleType>
<name>RO_Name</name>
<subjectIdentity builtInTopic="#t3" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
Players of this role must exhibit a value for at least on of the
two properties PR_SubjectAddress and PR_SubjectData, that means,
they must be surrogates for information resources.
</rolePlayerConstraint>
</roleType>
</assertionType>
<assertionType>
<name>AT_OccurringOccurrence</name>
<subjectIdentity builtInTopic="#t4" />
<roleType>
<name>RO_Occurring</name>
<subjectIdentity builtInTopic="#t5" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
<roleType>
<name>RO_Occurrence</name>
<subjectIdentity builtInTopic="#t6" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
Players of this role must exhibit a value for at least on of the
two properties PR_SubjectAddress and PR_SubjectData, that means,
they must be surrogates for information resources.
</rolePlayerConstraint>
</roleType>
</assertionType>
<assertionType>
<name>AT_ClassInstance</name>
<subjectIdentity builtInTopic="#t7" />
<roleType>
<name>RO_Class</name>
<subjectIdentity builtInTopic="#t8" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
<roleType>
<name>RO_Instance</name>
<subjectIdentity builtInTopic="#t9" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
</assertionType>
<assertionType>
<name>AT_SuperclassSubclass</name>
<subjectIdentity builtInTopic="#t10" />
<roleType>
<name>RO_Superclass</name>
<subjectIdentity builtInTopic="#t11" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
<roleType>
<name>RO_Subclass</name>
<subjectIdentity builtInTopic="#t12" />
<rolePlayerConstraint>
There may only be one player of this role in a single assertion.
</rolePlayerConstraint>
</roleType>
</assertionType>
<assertionTypes>
<builtInTopics>
<topic id="t1">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;at-named-name</locator>
</set>
</proerty>
</topic>
<topic id="t2">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-named</locator>
</set>
</proerty>
</topic>
<topic id=t3">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-name</locator>
</set>
</proerty>
</topic>
<topic id=t4">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;at-occurring-occurrence</locator>
</set>
</proerty>
</topic>
<topic id=t5">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-occurring</locator>
</set>
</proerty>
</topic>
<topic id=t6">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-occurrence</locator>
</set>
</proerty>
</topic>
<topic id=t7">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;at-class-instance</locator>
</set>
</proerty>
</topic>
<topic id=t8">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-class</locator>
</set>
</proerty>
</topic>
<topic id=t9">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-instance</locator>
</set>
</proerty>
</topic>
<topic id=t10">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;at-superclass-subclass</locator>
</set>
</proerty>
</topic>
<topic id=t11">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-superclass</locator>
</set>
</proerty>
</topic>
<topic id=t12">
<property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers">
<set>
<locator notation="URI">&base;role-subclass</locator>
</set>
</proerty>
</topic>
</builtInTopics>
<propertyValueComputationRules>
<!--
This TMA does not define any rules for conferring values on
properties on the basis of the roles that a topic plays.
-->
</propertyValueComputationRules>
</tma>