This annex proposes a representation of the " Purchase " situation (Pattern 2), using Topic Maps [1] concepts and XTM syntax [2]
XML Topic Maps (XTM) provide a generic way to represent N-ary relations, using associations and roles. An XTM association can link an arbitrary number of topic elements, each of them playing a specified role. Every topic, association and role can have an optional type (or class) in XTM. Note that those types are themselves represented as topics.
The simplest XTM syntax for such a situation is given in purchase1.xtm . The purchase "amount" is no represented in this first example to keep it simple. It would be far-fetched, although not forbidden, to represent also "$ 15.0" as a topic playing the role "amount" in the association. In the second representation it will use an occurrence, which is the usual way to represent data attached to topics.
Note that this is a very much unconstrained representation, in two aspects
The declaration of such constraints will be in principle possible when a Topic Maps Constraints Language [3] is available. Meanwhile, an XTM file can use classes defined in an OWL ontology to provide some sort of commitment to constraints, as in the following example.
The second representation purchase2.xtm declares, for topics used as classes and types, references to elements of an OWL ontology, using subject indicator references. Such declarations put no formal constraint on the XTM structure or content, but they provide some kind of ontological commitment to the referenced ontology, that can be interpreted at will by a Topic Map application, e.g. to enforce that in a "Purchase" association, the "buyer" role has to be played by a single "Person". There is so far no standard way to declare this commitment, nor to interpret it, but hopefully further work, in particular in the TMCL framework, will eventually include such features.
[1] Topic Maps (ISO/IEC 13250) is a specification of ISO/IEC
JTC1/SC34/WG3 :
http://www.isotopicmaps.org
[2] The original XTM 1.0 specification by TopicMaps.Org :
http://www.topicmaps.org/xtm/1.0/
[3] The Topic Map Constraint Language (TMCL) :
http://www.isotopicmaps.org/tmcl/