<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE isospec
  SYSTEM "ISOSPEC.DTD">
<isospec version="1.3" date="2003/04/27"><!-- DO NOT CHANGE ANYTHING ABOVE OR BEFORE HERE -->
<changeHistory><par id="parid0040"/></changeHistory>
<intro secnumber="&#xA;0&#xA;">
<title><par id="parid0000">Introduction</par></title>
<par id="parid0001">
This document is an effort to align N0396 (the current draft of the "Standard Application Model")
with N0393 (the current draft of the "Reference Model"). For such alignment
it is  neccessary
to separate the structural material of N0396 from the material that defines
 semantics (e.g., 'Occurrence-ness') over and above those defined in N0393.
Once this semantic material is identified, it can be expressed as a Topic Map
Application (TMA) definition as described in section 6 of N0393.
Annex A provides a draft of such a TMA definition using an illustrative XML syntax. 
</par>
<par id="parid0002">
The alignment of the variant name structure is omitted, because it
follows logically from the alignment of the other structures. 
</par>
<par id="parid0003">
I hope that this document will contribute to a better understanding of
N0396 and N0393 and that it will help to resolve open issues in both
documents.
</par>
</intro>

<sec secnumber="1">
<title><par id="parid0004">Comparision of N0396 and N0393</par></title>

<sec secnumber="1.1">
<title><par id="parid0005">Similarities</par></title>
<par id="parid0006">
N0396 is similar to N0393 in that it uses surrogates for subjects and
typed connections between these surrogates to provide a representation
of information.
</par>
<par id="parid0007">
It is similar in the way it uses properties of the items to identify what
the subject is that an item surrogates.
</par>
</sec>

<sec secnumber="1.2">
<title><par id="parid0008">Differences</par></title>
<par id="parid0009">
The data model of N0396 uses typed surrogates for subjects, which prohibits
the merging of surrogates (of different types) even if they are known to
surrogate the same subject. N0396 introduces the [reifier] and [reified]
properties to solve this situation.
</par>
<par id="parid0010">
Typed surrogates add unnecessary complexity to the underlying
data model, although the concept of names, occurrences and associations as types might be
useful when designing an API on top of N0393.</par>
<par id="parid0011">
The model defined in N0393 does not use typed surrogates, thus enabling
subjects to be always represented by a single surrogate. This
approach is less complex, while it does not constrain the design of
APIs for interacting with a topic map.</par>
</sec>

</sec>

<sec secnumber="2">
<title><par id="parid0042">Overview of the alignment</par></title>

<par id="parid0012">
In order to align N0396 with N0393 the following issues need to
be resolved:
</par>

<par id="parid0013">
<ol>
<li>
  <par id="parid0014">
  What properties in N0396 are intended to define the subject identity
  of information items? These properties can be directly expressed as
  SIDPs in the TMA definition.
  </par>
</li>
<li>
  <par id="parid0015">
  How can the different kinds of relationships between subjects 
  (names, occurrences, and so on) be expressed using the assertion structure
  of N0393? What assertion types and role types need to be defined
  in the TMA definition?
  </par>
</li>
<li>
  <par id="parid0016">
  How can the properties in N0396 that are not used for subject indication
  be defined as OPs in the TMA definition?
  </par>
</li>
</ol></par>
</sec>

<sec secnumber="3">
<title><par id="parid0017">
What properties in N0396 are intended to define the subject identity
of information items? 
</par></title>
<par id="parid0018">
The properties [subject addresses], [subject identifiers] and
[source locators] are properties that define the subject that a given
surrogate represents. They map directly to SIDP definitions in the TMA.
</par>
</sec>


<sec secnumber="4">
<title><par id="parid0019">
How can the different kinds of relationships between subjects 
(names, occurrences, and so on) be expressed using the assertion structure
of N0393?
</par></title>

<par id="parid0020">
The data model defined in N0396 does not enable the representation
of naming and occurrence characteristics as assertions, since the subjects
that play the name role or the occurrence role are not recognized as
such and are therefore not surrogated. In the case of names, the name is just
represented as a string valued property; in the case of occurrences,
the information resource is just represented as a locator valued property.
</par>

<par id="parid0021">
However, the prose of N0396 says that both, name and occurrence
characteristics are indeed associations:
<br/>

<i>"Occurrences are essentially a specialized kind of association, where
 one participant in the association must be an information resource." </i>
(Section 3.7)
<br/>
<br/>

<i>"Essentially, a base name is a specialized kind of occurrence."</i>
(Section 3.5)

</par>

<par id="parid0022">
Below I propose a small change to the model defined by N0396 that
enables the integration of two item types 'occurrence item' and
'name item' with the item type 'association item'. This change does
not only makes the alignment of N0396 with N0393 more efficient, it also
reduces the complexity of the model of N0396 itself.
</par>

<sec secnumber="4.1">
<title>
<par id="parid0023">
Proposed change to N0396:
</par>
</title>


<par id="parid0024">
Change the value of the [name] property on the name item to be a topic
(a topic that surrogates the information resource that is the name string)
and change the value of the [resource] property on the occurrence item
to hold the topic that surrogates the information resource that plays the
role of occurrence. Introduce a new property on the topic item, called
[subject data] that can hold the data content of an information resource.
Finally, drop the [value] property from the occurrence item since that
value can now be 'stored' in the [subject data] property of the topic
that represents the information resource.
</par>

<par id="parid0025">
This change provides the additional benefit that each information resource
addressed from within the topic map will be represented as a topic and
thus all information about that resource will be readily accessable from
this single location, again in aid of the Subject Location Uniqueness Objective.</par>

<par id="parid0026">
With this change it is possible to integrate the different types of topic characteristic
with the concept of association, thus significantly reducing the complexity
of the model. 
</par>

<par id="parid0027">
By simply providing the appropriate assertion types and role types, all
relationships between subjects defined in N0396 can be expressed with the
assertion structure defined by N0393. 
</par>
</sec>

<sec secnumber="4.2">
<title>
<par id="parid0028">
What assertion types and role types need to be defined
in the TMA definition?
</par>
</title>
<par id="parid0030">
For the topic-name, topic-occurrence, and class-instance relationships
one assertion type and two role types each have to be defined in the
TMA definition. The semantics of these relationships include that there
is only one player playing each role. 
</par>
<par id="parid0031">
Assertion types and role types for the supertype-subtype relationship
must  also be included.
</par>

</sec>

<sec secnumber="4.3">
<title>
<par id="parid0032">
How can the properties in N0396 that are not used for subject indication
be defined as OPs in the TMA definition?
</par>
</title>

<par id="parid0033">
N0396 defines one property ([scope]) that needs to be expressed as an 
OP in the TMA definition. As in N0396, the TMA-defined property 
has as its value the set of topics that are the scope.
</par>

</sec>



<sec secnumber="4.4">
<title><par id="parid0034">Remaining issues</par></title>

<par id="parid0035">
The [type] property could also be expressed as an OP (having the
typing topic as its value) but since the notion of class-instance-ness
will be eventually part of the SAM semantics anyway, I chose to
map the [type] property to an assertion of type class-instance.
</par>

<par id="parid0036">
The remaining properties of N0396 are entirely structural properties, and hence redundant given N0393.
Some of them map directly to the 'TMM defined properties' of N0393
(e.g. [roles played] ) while the others become obsolete (e.g. 
[reifier] and [reified]).
</par>

</sec>

</sec>

<annex secnumber="A">
<title><par id="parid0038">Annex A</par></title>
<par id="parid0039"><b>This Annex provides a TMA definition for the semantic material of N0396 using an  XML syntax devised to illustrate such a definition. </b><pre>


&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE tma
[
&lt;!ENTITY base "http://www.isotopicmaps.org/psi/"&gt;
]&gt;

&lt;tma&gt;
&lt;name&gt;IS13250-N0396-1.0&lt;/name&gt;
&lt;description&gt;
  A TMA definition of N0396.
&lt;/description&gt;
&lt;requiredModels /&gt;

&lt;valueTypes&gt;
  &lt;valueType&gt;
    &lt;name&gt;topic&lt;/name&gt;
    &lt;description&gt;
      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.
    &lt;/description&gt;
    &lt;equality&gt;
      Two values are equal if the application considers them to be equal.
    &lt;/equality&gt;
    &lt;merging&gt;
      Values may not be merged.
    &lt;/merging&gt;
  &lt;/valueType&gt;
  &lt;valueType&gt;
    &lt;name&gt;locator&lt;/name&gt;
    &lt;description&gt;
      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.
    &lt;/description&gt;
    &lt;equality&gt;
      Values are equal if the first strings of the pairs are byte identical and
      the second strings of the pairs are byte identical.
    &lt;/equality&gt;
    &lt;merging&gt;
      Vales may not be merged.
    &lt;/merging&gt;
  &lt;/valueType&gt;
  &lt;valueType&gt;
    &lt;name&gt;text&lt;/name&gt;
    &lt;description&gt;
      A value of type text is an arbitrary sequence of bytes.
    &lt;/description&gt;
    &lt;equality&gt;
      Two texts are equal if they are represented by the same sequence of
      bytes.
    &lt;/equality&gt;
    &lt;merging&gt;
      Vales may not be merged.
    &lt;/merging&gt;
  &lt;/valueType&gt;
  &lt;valueType&gt;
    &lt;name&gt;set&lt;/name&gt;
    &lt;description&gt;
      A set is a unordered collection of values. All values must have the same
      value type and no two values may be equal.
    &lt;/description&gt;
    &lt;equality&gt;
      Two sets are equal if the contain exactly the same elements.
    &lt;/equality&gt;
    &lt;merging&gt;
      The result of merging two set values is the union of the two sets.
    &lt;/merging&gt;
  &lt;/valueType&gt;
&lt;/valueTypes&gt;

&lt;properties&gt;
  &lt;property&gt;
    &lt;name&gt;PR_SubjectAddresses&lt;/name&gt;
    &lt;valueType&gt;set(locator)&lt;/name&gt;
    &lt;type&gt;SIDP&lt;/type&gt;
    &lt;description&gt;
      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.
    &lt;/description&gt;
    &lt;mergingCondition&gt;
      Two topics exhibit a value for this property and the
      intersection of the two sets is not empty.
    &lt;/mergingCondition&gt;
  &lt;/property&gt;

  &lt;property&gt;
    &lt;name&gt;PR_SubjectIdentifiers&lt;/name&gt;
    &lt;valueType&gt;set(locator)&lt;/name&gt;
    &lt;type&gt;SIDP&lt;/type&gt;
    &lt;description&gt;
      A set of locator items. The locator items refer to the subject indicators
      of this topic.
    &lt;/description&gt;
    &lt;mergingCondition&gt;
      Two topics exhibit a value for this property and the
      intersection of the two sets is not empty.
    &lt;/mergingCondition&gt;
  &lt;/property&gt;

  &lt;property&gt;
    &lt;name&gt;PR_SourceLocators&lt;/name&gt;
    &lt;valueType&gt;set(locator)&lt;/name&gt;
    &lt;type&gt;SIDP&lt;/type&gt;
    &lt;description&gt;
      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.
    &lt;/description&gt;
    &lt;mergingCondition&gt;
      Two topics exhibit a value for this property and the
      intersection of the two sets is not empty.
    &lt;/mergingCondition&gt;
  &lt;/property&gt;

  &lt;property&gt;
    &lt;name&gt;PR_SubjectData&lt;/name&gt;
    &lt;valueType&gt;text&lt;/name&gt;
    &lt;type&gt;OP&lt;/type&gt;
    &lt;description&gt;
      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. 
    &lt;/description&gt;
  &lt;/property&gt;

  &lt;property&gt;
    &lt;name&gt;PR_Scope&lt;/name&gt;
    &lt;valueType&gt;set(topic)&lt;/name&gt;
    &lt;type&gt;OP&lt;/type&gt;
    &lt;description&gt;
      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.
    &lt;/description&gt;
  &lt;/property&gt;
&lt;/properties&gt;

&lt;assertionTypes&gt;
  &lt;assertionType&gt;
    &lt;name&gt;AT_NamedName&lt;/name&gt;
    &lt;subjectIdentity builtInTopic="#t1" /&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Named&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t2" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Name&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t3" /&gt;
      &lt;rolePlayerConstraint&gt;
        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.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
  &lt;/assertionType&gt;

  &lt;assertionType&gt;
    &lt;name&gt;AT_OccurringOccurrence&lt;/name&gt;
    &lt;subjectIdentity builtInTopic="#t4" /&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Occurring&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t5" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Occurrence&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t6" /&gt;
      &lt;rolePlayerConstraint&gt;
        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.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
  &lt;/assertionType&gt;

  &lt;assertionType&gt;
    &lt;name&gt;AT_ClassInstance&lt;/name&gt;
    &lt;subjectIdentity builtInTopic="#t7" /&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Class&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t8" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Instance&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t9" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
  &lt;/assertionType&gt;

  &lt;assertionType&gt;
    &lt;name&gt;AT_SuperclassSubclass&lt;/name&gt;
    &lt;subjectIdentity builtInTopic="#t10" /&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Superclass&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t11" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
    &lt;roleType&gt;
      &lt;name&gt;RO_Subclass&lt;/name&gt;
      &lt;subjectIdentity builtInTopic="#t12" /&gt;
      &lt;rolePlayerConstraint&gt;
        There may only be one player of this role in a single assertion.
      &lt;/rolePlayerConstraint&gt;
    &lt;/roleType&gt;
  &lt;/assertionType&gt;
&lt;assertionTypes&gt;
    

&lt;builtInTopics&gt;
  &lt;topic id="t1"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;at-named-name&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id="t2"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-named&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t3"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-name&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;


  &lt;topic id=t4"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;at-occurring-occurrence&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t5"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-occurring&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t6"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-occurrence&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;

  &lt;topic id=t7"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;at-class-instance&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t8"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-class&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t9"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-instance&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;

  &lt;topic id=t10"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;at-superclass-subclass&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t11"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-superclass&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;
  &lt;topic id=t12"&gt;
    &lt;property model="IS13250-N0396-1.0" name="PR_SubjectIdentifiers"&gt;
      &lt;set&gt;
        &lt;locator notation="URI"&gt;&amp;amp;base;role-subclass&lt;/locator&gt;
      &lt;/set&gt;
    &lt;/proerty&gt;
  &lt;/topic&gt;

&lt;/builtInTopics&gt;

&lt;propertyValueComputationRules&gt;
  &lt;!--
    This TMA does not define any rules for conferring values on
    properties on the basis of the roles that a topic plays.
  --&gt;
&lt;/propertyValueComputationRules&gt;

&lt;/tma&gt;

</pre>

</par>
</annex>
</isospec>
