Pattern Language

Christopher Alexander coined the term "PatternLanguage" to emphasize his belief that people had an innate ability for design that paralleled their ability to speak.

A set of patterns becomes a pattern language when each of its patterns, once solved, leads to more patterns that should then be considered (http://c2.com/ppr/about/patterns.html).

Patterns such as

Some believe that the human mind has an innate ability to learn and use PatternLanguage.

A critique of pattern languages as applied to programming: http://perl.plover.com/yak/design/


Chris's book TheTimelessWayOfBuilding is the most instructive in describing his notion of a pattern language and its application to designing and building buildings and towns.

  1. Context - Setting
  2. Problem
  3. Solution

He defines a 'pattern' as a three-part construct. First comes the 'context' - the conditions under which this pattern holds. Next is a 'system of forces'. In many ways, it is natural to think of this as the 'problem' or 'goal'. The third part is the 'solution' - a configuration that balances the system of forces or solves the problems presented.

For an extensive example of the application of patterns, see Chris's other book A Pattern Language. Here he presents over 250 individual patterns that go into the making of successful towns and buildings (in the context of a western, even North American, environment).

I must say these are beautiful books as well.

-- MikeKoss


Applicability of patterns and pattern languages extends far beyond software design. Psychologist EricBerne offers us his set of patterns of interpersonal relationships gone bad (i.e., games) in a 1964 book called GamesPeoplePlay (ISBN 0345410033 ).

Also, JuliusFast? is famous for his 1970 book BodyLanguage? (ISBN 0-671-67325-4 ) - a pattern book for recognizing recurring themes in non-lingual communication. Both books give fascinating insights about the way humans have learned to think and behave.


Seems that Chris is up to something: http://www.patternlanguage.com/ -- CeesDeGroot

Well-designed and visually appealing web site. -- sg

I enjoy the bookshelf design idea once I figured it out, but I do not find the site visually appealing. -- DavidSaff

Hmmm, the bookshelf metaphor is a 'cute' idea, but not a good-design idea. In design, one must take into account context, and no matter what anyone says, the web is not a bookshelf, does not have the same browsing, convenience or scaling properties, and is not really a suitable visual metaphor for presenting this kind of information. The site/sight is also not that visually appealing. A little disappointing :-( -- KevlinHenney :-)

http://www.patternlanguage.com/citystreets/citystreets1.htm has red text on a red background. (Yeah, I had to remove it from a frameset. :)


Here's an interesting site with a pattern language for sustainability: http://www.conservationeconomy.net

On another tack, patternlanguage.com has changed its layout-not really much better than the old one, sorry to say...and they lost the pattern of the day.

-- Eric Allen


Also, the book:

A Pattern Language: Towns, Buildings Construction by Christopher Alexander etc ISBN 0195019199 .

This is apparently one of the seminal pattern books. (I've not read it myself yet. The BookList page links to here and I'm filling in the ISBN number so that I can order it myself -- DaveHarris.)

Really, it is THE pattern book. The one that started it all. In addition to its other benefits, it is an example of excellent technical writing. It provides modular, inter-connected concepts which can be accessed in any order and which automatically lead the reader to other patterns that might interest her. Many people talk about task-oriented and modular documentation, but almost no one has the guts to implement it as fully and beautifully as it is done here. --RonaldHayden

Just picked up all three of ChristopherAlexander's pattern books from Amazon.com --SteveBurnett? -"Alexander's book has been a close friend for a long time. However I wish there was an easy way of applying it to today's communities."

Also, a web site. http://patternlanguage.com/

An overview of the patterns and their relations: http://downlode.org/etext/patterns/


It seems that the best way of building a community that follows Alexander's principles is to accept responsibility for your own space and to apply his PatternLanguage within that space. If others follow your lead then that's a good thing, and you can pass them a copy of the book. If they don't, at least you are living in a nicer space and nobody loses. Analogies with implementing, say, ExtremeProgramming are probably there to be drawn.


In PatternLanguageForPatternLanguages we are collecting instances of PatternLanguage and mining out characteristics of what makes a good PatternLanguage. If you have suggestions or insights on what you think makes a good PatternLanguage or if you have or know of a language we are not taking into account or analyzing, then feel free to add it in. --AliArsanjani


In my opinion, C.A. is right in that we are not only able to think in patterns, but that our whole existence is based on patterns, including our thinking and the inner workings of the mind/brain.

As such, the philosophy of C.A. is more natural than for example in thinking just structural or deterministic or whatever. Therefore, the whole pattern movement is going to be a success and has become a success because of it being natural.

However, collecting related patterns to actually form a language of pattern is a tedious and, sadfully, sometimes a fruitless attempt as it is often very to highly complex to form a language of patterns or to find related patterns. Are there any patterns for defining a pattern language? Did C.A. describe a (natural) way of finding inter-correlating patterns that together make up a pattern language, even if you are not entirely specialized in the field of for example the architecture of buildings or landscapes or cities or even software systems?

And, patterns and PatternLanguage is always also an abstraction of what we see or feel or believe. Therefore there must or should be some way of formalized way of DefiningPatternLanguages? or FormalizingPatternLanguages? or FormalizedPatternLanguage?. There are some attempts, some of which I have reviewed in the past but which have slipped my mind since then, either because these were not capable enough or because they simply did miss the point. Any pointers here, somebody?

[Maybe there is a path, since DesignPatterns are readily described by UML, from:

  graphical depiction --> UmlAsciiArt --> AbbreviatedUmlAscii --> something like the SyntaxOfFirstOrderLogic
Or HigherOrderLogic?, if needed]
See also: PatternFamilies, PatternInterests

CategoryGroupsOfPatterns


EditText of this page (last edited January 17, 2006)
FindPage by browsing or searching

This page mirrored in WikiPagesAboutWhatArePatterns as of April 29, 2006