This is not a member of a complete pattern language at this point. For a more extensive treatment of the topic, see A Pattern Language for Pattern Writing
(Chapter 29) from Pattern Languages of Program Design 3.
Pattern Name: Pattern Pattern
Aliases: A Way to Learn, Acquiring New Mental Tools
Context: You are searching for additional methods to deal with your current needs and the unforeseen needs that might arise in the future.
Problem: You need to learn something new or add to something you know.
Forces: You are enabled with a set of mental structures and functions that can be readily expanded or reconfigured to match a wide variety of contexts and circumstances.
Solution: Use a scalable mental meta-structure that reflects your own internal mental structure and activates those structures to adapt to an unfamiliar context.
Resulting Context: Something new is learned, potentially at many levels of scale and function. Previously unintegrated memories and skills now relate to each other in previously unforeseen ways. This concentrated approach to learning also integrates elements of the learning process itself in new ways.
Design Rationale: Learning requires a flexible, reusable, and scalable set of active yet stable relationships that can change in order to adapt to and reflect changes in the environment, as well as improve the level of integration in existing mental structures and functions. A pattern is a template of such a set of relationships. The structure of an effective pattern reminds its reader of familiar elements, but presents them in unfamiliar relationships. Once the pattern is related to familiar structures and functions, the pattern reader is freely able to cross limiting boundaries of thought to come to new mappings of the pattern to concrete analogs. The pattern may also complete previously incomplete associations and relationships. The pattern reader associates "Players" in a set of "Relationships" undergoing
"Transformations" that result in a modified set of "Players" and "Relationships". Once the pattern is 'learned' (meaning multiple levels of scale have been engaged and integrated), the process does not end. Each pattern is then seen in a wider context: a pattern language. The patterns in the pattern language are related to each other in such a way as to reinforce and the overall set of "Players", "Relationships", and "Transformations" that each pattern presents. To put all this in context, consider the following descriptions:
Pattern Name: An abstract tag that identifies the pattern.
Context: The Players in the scene. Players may be concrete or abstract.
Problem: The Players need a Transformation to modify their relationships between each other and their environment. Typically this is necessary due to conflicts in the existing set of relationships. The impact of these conflicts must be removed or limited.
Forces: Relationships between Players and their environment.
Solution: The mechanics of carrying out the Transformation in the relationships between the Players and their environment.
Resulting Context: A transformed set of relationships between Players and their environment.
Design Rationale: Justification for the use of the specified Transformation to attain the specified changes in relationships.
Examples: Analogs of the abstract pattern to familiar concrete scenarios.
Related Patterns: Other abstract scenarios that have overlapping elements in terms of the Players, Relationships, Environment, Conflicts, and/or Transformations presented in this pattern.
If you think that this Design Rationale is fractal, self-referential, and/or recursive, you are exactly correct.
Examples: Cope's Org Patterns, GOF Patterns, Christopher Alexander's A Pattern Language.
Related Patterns: The Child At Play, The Family Teaches The Child, The Society Teaches The Child, The Child Becomes An Adult, The Adult At Play.
Related Publications: Marvin Minsky's
Society of Mind, and certainly many more.
This pattern is struggling to find the broader context of
writing patterns. Clearly, learning is enhanced immensely by active participation. Writing patterns also changes the way one reads patterns. I would like to eventually integrate both sides of this process in this one pattern. --David
Brian Foote has noted that this pattern lacks a specific recommendation of what to do. It is a rather abstract approach I have taken here, but I do expect to make it more explicit soon. The pattern is currently oriented towards learning from pattern languages rather than writing pattern languages. Pattern languages convey subtle information about complex situations which are almost impossible to say in a short, succinct way. Hence their importance for learning. --David
See also When To Use Pattern Form, Pattern Template.
See original on c2.com