|
|
Home /Pattern Languages /Anatomy of a Pattern Language |
Anatomy of a Pattern Language |
|
| A pattern language consists of a cascade or hierarchy of parts, linked together by patterns which solve generic recurring problems associated with the parts. Each pattern has a title and collectively the titles form a language for design. | |
"In this network, the links between the patterns are almost as much a
part of the language as the patterns themselves."
|
In a pattern language individual patterns are not isolated. The structure of the language is composed of the links from larger patterns to smaller patterns, together creating a network. Thus, for a single pattern to work fully, it must not only be followed through by implementing the smaller patterns that complete it, it must if at all possible be connected to certain larger patterns. |
| The links from larger (predecessor) patterns to smaller (successor) patterns in this network define the order in which the patterns should be applied to a design. This is called the Pattern Language sequence, but the sequence is not mechanically linear. | |
Hierarchy of PartsParts can be composed with others to make up larger parts and decomposed into smaller parts, forming a type of system model called a structural hierarchy. For an example of a hierarchy of parts see our Ecopatterns or Cyberpatterns index pages.A hierarchy of parts is not a formal part of a pattern language, but constructing such a hierarchy is a good way to begin defining a pattern language, as suggested by Alexander and others in some early treatises on the Pattern Language. Many parts are given, especially those of nature, and cannot be changed by design. But the existence of some other parts in a design are themselves patterns, because they help to resolve problematic forces at the interface of other parts, or they respond to a basic human need. |
|
Pattern Components |
|
It may be useful to compare the descriptions of pattern components
with some patterns that use this format.
|
A pattern is essentially a morphological law, a relationship among
parts within a particular context.
Specifically, a pattern expresses a relationship among parts
that resolves problems that would exist if the relationship
were missing.
As patterns express these relationships, they are not formulae
or algorithms, but rather loose rules of thumb or heuristics.
Some authors who have adopted the idea of a Pattern Language, such as some of those for object-oriented programming in software, have deviated from the format used in A Pattern Language. We also note that patterns are similar to documents used in Structured Planning, often referred to as Problem Elements or design factors. Indeed, these documents may evolve into full-fledged patterns. But without certain critical elements, a collection of patterns fall short of being a pattern language. |
|
As noted above, linkage between patterns is critical for a set of
patterns to become a
language,
rather than a collection of isolated standalone ideas for design.
In particular, the predecessor
and successor patterns cited at the beginning and end of
each pattern make the patterns hang together as a network
- as a whole.
And each pattern must have successor patterns directly under it,
and successor patterns under those in turn, so that
together all of the problems that might come up are resolved,
thus making the language functionally and morphologically complete.
Here we will stick very close to the anatomy of patterns as published in A Pattern Language by Alexander et al. However, we will also include some elements that existed in early incarnations of the Pattern Language, which we feel are particularly useful in constructing new pattern languages. We will also include some elements we find useful for managing a language under development, and for putting patterns on the World Wide Web.
Feel free copy our Pattern Template to compose your own patterns. Comments in the HTML source code provide directions. |
|
|
|
|
|
|
See Also:
|