Gamma et. al. define a Software Design Pattern as consisting of four essential elements:
The pattern name - a handle used to describe a design pattern. Naming enables a design pattern to be talked about and expands the vocabulary used by designers.
A description of the problem that the pattern addresses. This gives the reader of the design pattern an idea about the context within which the pattern may be applied.
A description of the solution, which defines the elements of the design and their relationships.
A description of the consequences of applying a pattern. This might include an acknowledgment of the trade-offs involved in selecting a particular design pattern.
For a topic map design pattern, it is proposed that these four elements be present and used in exactly the same way as for software design patterns. In addition, as already discussed above, the creator of the design pattern should consider defining a set of Published Subject Identifiers for the implementation of the pattern. The process of defining PSIs for the implementation of the pattern can be seen as analogous to the naming of the classes and relations defined in a software design pattern, but is actually more prescriptive. The names used in a software design pattern are simply handles used for the purposes of explanation of the pattern whereas in a topic map design pattern, the Published Subject Identifiers are the proposed identifiers to be used in the implementation of the pattern. This more prescriptive approach also ensures that implementations across different topic maps are compatible, enabling more reusable software for processing the patterns to be created. Finally all topic map design patterns should include at least one example as a complete example in at least one topic map syntax is a useful tool for conveying the essence of the pattern to an experienced topic map author.
Not all vocabularies lend themselves to description in terms of a collection of design patterns. Vocabularies which simply enumerate the individuals of a class will not be suitable for such treatment, but with such vocabularies there is little sense of any design - they are typically a form of controlled vocabulary or domain ontology from which the required entries are simply selected. The kinds of vocabulary to which a pattern-based description can be most usefully applied are those which define the vocabulary for use in a particular information design approach. For example, the PSIs which define the individual terms in a particular thesaurus are not a suitable candidate for pattern-based description, but the PSIs which define the class of all thesaurus terms, and the class of broader-than/narrower-than associations are good candidates for documentation as a design pattern.
The concept of a design pattern for topic map applications can be applied at two different levels of topic map design. At the first level, patterns can be created which are descriptions of a solution to a generalised problem. This level is very similar to the application of patterns in software engineering - the description of solutions to design problems. An example of such a design pattern is the approach used by most topic map designers to express the different labels to be applied to an association type. Many topic map designers create multiple names for a topic which defines an association class - usually one name per role in the association. The association role specifier is then used as the theme in the scope of the name most appropriate to use when the association is displayed from the context of a player of that role. This is a general design pattern in the sense that it can be expressed soley in terms of topic map constructs and without any reference to a specific vocabulary.
The second level is the description of the application of a vocabulary to represent some domain model in a topic map. This level is closer to that of the Published Subject Indicator where the pattern explains the usage of a vocabulary in order to ensure that the vocabulary is used consistently.
| Up: Topic Map Design Patterns For Information Architecture | |
| Previous: PSIs and Patterns | Next: Describing a Topic Map Design Pattern in UML |