Of all the constructs in a topic map, only the topic is allowed to have names and occurrences and to play roles in associations. In other words, one can only make assertions about a subject which is represented by a topic. Those assertions themselves are not topics and so we cannot make assertions about assertions. Reification is the process by which a topic may be constructed to represent the assertion made by some other construct in the topic map. This process enables a name to be given to a particular occurrence of a topic, or documentation of an association to be "attached" to the association itself.
The mechanics of reification are quite simple. To create a topic that reifies another construct in the topic map, simply create a topic with a subject-indicating resource locator which points to the construct in question. For example, consider a partnership between two companies. Such a relationship may be publicly announced in the form of a press release; or from analysts' reports in trade press. By reifying the association, the information resources that gave rise to the creation of the association can be documented, allowing users of the topic map to get more information about the merger. The mark-up for this reification is shown in Sample 15 and a conceptual overview of the reification is shown in Figure 6.
<topicMap>
<topic id="xyzzy">
<baseName>
<baseNameString>Redmond Computers Inc.</baseNameString>
</baseName>
</topic>
<topic id="abc">
<baseName>
<baseNameString>ABC Software</baseNameString>
</baseName>
</topic>
<topic id="partnership"/>
<topic id="partner"/>
<association id="rci-abc-partners">
<instanceOf><topicRef xlink:href="#partnership"/></instanceOf>
<member>
<roleSpec><topicRef xlink:href="#partner"/></instanceOf>
<topicRef xlink:href="#xyzzy"/>
<topicRef xlink:href="#abc"/>
</member>
</association>
<!-- This topic "reifies" the partnership association -->
<!-- This enables us to attach the press release
announcing the partnership to the association itself -->
<topic id="foo">
<subjectIdentity>
<subjectIndicatorRef xlink:href="#rci-abc-partners"/>
</subjectIdentity>
<occurrence>
<instanceOf>
<topicRef xlink:href="#press-release"/>
</instanceOf>
<resourceRef xlink:href="http://www.redmondcomputers.com/pressrel/01042002_001.html">
</occurrence>
</topic>
</topicMap>
Sample 15 - Reification
Figure 6 - Reification sample in diagram form (SVG version)
| Up: Topic Map Basics | |
| Previous: Associations | Next: Topic Map Merging |