Pattern Languages
Putting form in context.

"A Pattern Language" book

Theory and History

Anatomy of a Pattern Language
Experience with Pattern Languages

Application

Cyberpatterns
A Pattern Language for Software Systems
Ecopatterns
A Pattern Language for Ecosystems
Christopher Alexander and his colleagues at the Center for Environmental Structure originated the idea of a pattern language for the built environment. Some 253 of their most universally applicable patterns were published as a Pattern Language in 1977.

A pattern is a generic design solution to a problem that occurs over and over again, whether in urban design, architecture, product design, software and website design, etc. It provides an analysis of this recurring problem and then specifies a generic rule-of-thumb that solves it, something more concrete than a design principle but more abstract, like a diagram, than a detailed engineering drawing or plan. This way a design pattern can be applied wherever the problem occurs.

Few patterns are global; most of them are context-specific, whether environmental, social, technological, economic, etc. For example, some traditional patterns for housing apply only in certain social contexts, such as Oriental or Latin cultures. Other patterns apply only to certain environmental contexts, such as desert as opposed to temperate regions. A good design pattern fits form to context, just like Mother Nature designs life with biological fitness, adapting it to local conditions.

The design patterns link to each other in a cascade, generally following a hierarchy of parts. For example, a pattern for overall urban planning can link to patterns for good neighborhoods, which link to patterns for houses, which link to patterns for individual rooms. This way the design patterns form a system of design solutions that reinforce one another, and since each pattern has a title the system forms a Pattern Language.

Design MatriX views Pattern Languages as a way to solve many kinds of complex systems design problems, from Cyberpatterns for software systems and websites to Ecopatterns for ecosystems and the environment.