"Pattern Languages as Autocatalytic Systems”
1)
Patterns
As defined by
Alexander "Each pattern is a three-part rule, which expresses a relation between
a certain context, a problem, and a solution."
He also says
that:
"The pattern is, in
short, at the same time a thing, which happens in the world, and the rule which
tells us how to create that thing, and when we must create it. It is both a
process and a thing; both a description of a thing which is alive, and a description
of the process which will generate that thing (p. 247)."
From this
perspective, patterns are similar to the genes encoded in the DNA that are
waiting to be activated by an appropriate proteinic context. And as with genes, when the correct context
is found, patterns are triggered and generate structure.
As in genetics,
part of the resulting context, and initial context of other patterns, is the
structure generated by the pattern. In biological
systems the resulting context/initial context for other genes to be active is
the existing generated structure and the generated proteinic substrate.
The main
difference from organic systems is that in systems where there are humans that
enforce the patterns (rules), or in software systems where the patterns are
enforced by the software, the patterns can be enforced at any level of
structure, not only at the equivalent "cellular level".
Also, most
systems created and/or maintained by humans do not have the same level of
dynamic complexity as organic systems do.
For example, there is limited or no self-organization, autocatalysis, metabolic
(self-regulation), or autonimic functions.
However, it
would be perhaps desirable to have the above dynamic characteristics present in
man-made systems to more closely resemble the properties of living systems.
2)
Pattern Languages
Pattern
languages are "concurrent rule systems" that generate structure by
the application of one or more sequences of patterns.
In this regard,
pattern languages play the same role upon systems that DNA plays in organic
systems.
In organic systems
one or more genes may be active in a single cell, and other cells will also have
independent and different activations.
Similarly, in
systems where human intervention is required to enforce the patterns in the
pattern language, all of the rules' contexts need to be periodically and
concurrently evaluated, to guarantee that all triggered patterns are executed
at any one time.
This
requirement makes applying pattern languages hard because in a system there
might be one or more concurrent processes that evaluate patterns simultaneously. Yet, at any one time, the existing local
generated structure must be part of the initial context for every pattern. (This is another way of saying “the
solution introduces new problems” i.e. the BART experiment.)
The executed
patterns in turn generate the correct structure for the system - adapting and providing
self-organizing mechanisms for the system as time goes by.
3)
Sequences
Sequences of
patterns are formed by the execution of rules linked in a network of
"contexts" and "resulting contexts".
In general, and
depending on pattern context:
a) patterns execute in *any order* that conforms to the structure
of "context and "resulting contexts" dictated by the pattern
language. i.e. a sequence may be started in a low, medium or high level pattern.
However, most pattern languages tend to form a proto-skeleton and
then fill in the details, just as an embryo emerges into a living form.
b) a pattern, or a subsequence or patterns, may be executed many
times (in iteration or recursion). More
on this in Self-Organization below.
c) different patterns may be triggered given external parameters
or conditions. The pattern language, through
its "morphological completeness" clause will provide paths to
generate different structures, akin to the generation of different cell
types. Also, similar patterns need not
be contained exactly in one another.
There might be overlapping structure.
(A city is not a tree.)
d) several sequences might be executing for the same system at any
one time.
e) as in rule systems, a sequence may be partially executed and
then wait for a temporal or structural condition that may activate the execution
of the sequence.
Etc.
4)
Emergent Structure
As patterns in
a pattern language generate structure, the emergent structure together with
other local conditions defines the context of where other patterns apply.
This is akin to
morphogenesis -- the embryo _and_ the localized proteinic substrate determines what
proteins are next generated by the ribosomes as guided by the triggering of
active genes, and this in turns determines cell differentiation over time.
5)
Self-Organization
In dynamical
systems some patterns can form sequences of patterns that form autocatalytic
chains, akin to the organic proteinic self-organizing autocatalytic chains in
cellular processes and/or metabolic functions.
These
self-organizing chains contribute in many ways to the system:
a) it provides
dynamical inertia to the system. More on
this on
Stability
below.
b) contributes
to the adaptation of the system, as per Stu Kauffman’s conclusions: adaptation
depends on self-organization and natural selection. See “The Origin of Order”.
6)
Stability
The stability
of the generated system strongly depends on the amount of structure controlled
by the pattern language, and in the strength of the pattern sequences in either
autocatalytic or simple sequence form.
This is akin to
how a living system is able to maintain metabolism and continued structure embedded
in a soup of bacteria, viruses, other living organisms, and chemicals that do
not directly contribute to the living form.
7)
Adaptation
An important
adaptive feature is the introduction of new patterns into the system. This provides the ability to generate new
structures that allow the system to adapt to new situations, but in addition, it
may also contribute to the formation of new autocatalytic (self-organizing)
mechanisms, that stabilize the system
over time.