Abstract
In 1977 Christopher Alexander and his colleagues from the Centre for Environmental Structure published A Pattern Language, an innovative design guide aimed at restoring life and beauty to the built environment. Since then, A Pattern Language has become one of the most widely read architectural treatises ever published. However, despite its popularity, the structure of A Pattern Language remains poorly understood. In response to this situation, this paper uses graph theory to examine Alexander’s language including the entire set of 253 patterns and over 1800 relationships between them. Through this mathematical analysis the paper tests two hypotheses about the ‘invariant patterns’ Alexander was most confident in. The first hypothesis tests whether invariant patterns occupy more prominent positions within the language, and the second tests whether invariant patterns form a core structure within the language that supports less developed patterns. Through this process the paper illuminates several previously unconsidered aspects of the structure of A Pattern Language while providing the first graphic representation of the entire underlying structure that unites the individual patterns into a coherent language.
Introduction
The rise of Modernism in the early 20th century had a polarising effect on many members of the architectural profession. One vocal critic of Modernism was Christopher Alexander who would devote the majority of his career to developing a theory of architectural beauty which was based around networked part-whole relations (Grabow, 1983; Mehaffy, 2007). The evolution of this theory can be understood as occurring over three stages, each of which is based on a different approach to understanding part-whole relations and is documented in one or more canonical texts. The first of these stages is encapsulated in his Notes on the Synthesis of Form (Alexander, 1964) and the third is detailed in the four volumes of The Nature of Order (Alexander, 2002a, 2002b, 2004, 2005). The second, and most famous, stage of Alexander’s theory is presented across three volumes—The Oregon Experiment (Alexander et al., 1975), A Pattern Language (Alexander et al., 1977), and The Timeless Way of Building (Alexander, 1979). While each stage in the evolution of Alexander’s theory reflects his changing approaches to understanding beauty, they also feature a sufficiently self-contained set of ideas to be considered a theory in their own right. Thus, within the present research the second stage in the evolution of Alexander’s theory is referred to as his ‘second theory’ of architecture.
Regardless of how we delineate the development of his ideas, Alexander’s A Pattern Language is believed to be the most widely read architectural treatise ever published (Alexander, 1996; Hermann, 2004; Lea, 1994; Mehaffy, 2008; Saunders, 2002b; Silva and Paraizo, 2008). It is regarded as one of the most important counterpoints to Modernism, and as a core theory of twentieth century architecture. Amateur designers and owner-builders adopted A Pattern Language as a practical means of resolving various functions and components in a building, being drawn to its apparent combination of simplicity and clarity. It even inspired the development of object oriented programming languages that form the basis of many contemporary software applications. Research dedicated to investigating the Pattern Languages of Programs (PLoP) is also, surprisingly, far more prevalent and active than pattern research within the domain of architecture (Lea, 1994; Salingaros, 2000).
Despite its fame and reputation, there remain many facets of A Pattern Language that are poorly understood or have been extensively criticized (Bhatt, 2010; Broadbent, 1980; Dovey, 1990; Kohn, 2002; Protzen, 1980; Saunders, 2002a, 2003). For example, designers using this approach are intended to ‘enter the language’ by selecting a small number of patterns that best describe their project and to follow the connections of the language to other patterns that will support those initially selected. However, while “design patterns written in Alexandrine form allude to their connectivity to other patterns (in the prelude and postscript), it is difficult to visualize those without a connective map. Even architects who use patterns tend to be unaware of how patterns link to each other, so the resulting design frequently lacks large scale coherence” (Salingaros, 2000: 153). As such, developing an understanding of this structure is seemingly a prerequisite for any attempt to apply it. This challenge is the subject of the present research.
Because A Pattern Language is founded in both mathematical and philosophical concepts and propositions, it is not unexpected that it would prove resistant to holistic, structural analysis. For instance, Alexander’s second theory is focused on a unique but ambiguous ‘quality without a name’. This quality incorporates concepts of architectural beauty and vitality and can only arise when all the ‘forces’ within the environment exist in a state of harmonious balance. Alexander used the term ‘wholeness’ to describe this elusive quality and argued that it was present in traditional architecture and the buildings of vernacular societies, but largely absent from contemporary design. This absence was explained by a degradation of traditional design languages that resulted in an abundance of unresolved forces. In order to redress this loss of knowledge, Alexander developed A Pattern Language which was intended to serve as a new design guide for the creation of environments that embody vitality, beauty and wholeness. This argument, which underpins Alexander’s second theory, uses mathematics to encapsulate aesthetic and philosophical values and ideals. Specifically, A Pattern Language is actually a complex graph structure with distinct mathematical properties that support Alexander’s vision for design. Yet this structure (or actually multiple structures, as this paper reveals) has never been holistically modelled or examined using quantitative means. Despite some attempts to undertake such an analysis (Park, 2015), the scale of the task, involving 253 patterns and over 1800 connections between them, has made structural analysis of the language surprisingly difficult. Yet, without modelling the language in its entirety, it is impossible to test many of the assumptions and arguments which have led to Alexander’s theory being so influential.
This situation is the catalyst for the present paper, which undertakes the first mathematical analysis of A Pattern Language in its entirety. This analysis reveals that subtly different interpretations of Alexander’s descriptions of the language result in multiple different, yet equally valid graph structures. In this paper two particular models are identified which represent the ‘creator’ and ‘user’ perspectives of the language. These models are analysed through graph theoretic means using Matlab software to reveal (and illustrate) several structural properties and peculiarities of the language for the first time. The results of the analyses allow for a pair of hypotheses to be tested against the actual properties of Alexander’s language. These hypotheses are based on assumptions concerning the ‘invariant’ patterns – those in which Alexander was supremely confident – and the way they occupy prominent positions in the structure of the language or provide a type of primary structural framework to support less developed patterns.
Finally, it should be noted that this paper utilises mainstream graph theory and directed graphs, rather than the approaches employed in space syntax research.
A pattern language
The 253 patterns in Alexander’s language are intended to be combined, through a process of synthesis, into a larger and more complete, or more ‘whole’ environment. Each pattern consists of three components, a ‘prelude’, listing connections to patterns defined earlier in the language, the body of the pattern, and a ‘postscript’, listing connections to patterns defined later in the language. The body of each pattern describes a situation in which forces could become unbalanced then prescribes and illustrates a generic solution to resolve that situation.
While every pattern in Alexander’s language solves a specific problem, some patterns provide more refined solutions than others. For example, Alexander believed that 84 (33.20%) of the complete set of patterns were so universal that the only way to resolve the described situation was to follow the advice of the pattern. These ‘invariant’ patterns received Alexander’s highest confidence rating – signified in A Pattern Language by two asterisks. Patterns which fail to provide invariant solutions are assigned the lowest confidence rating – no asterisks. The middle ground between these extremes, indicated by one asterisk, contains patterns that provide the core of an invariant solution, but require further development. Thus, A Pattern Language was published as a ‘work in progress’ and Alexander recommended that users continue refining the patterns in addition to developing and sharing their own patterns. However, Alexander was clear that regardless of how refined a pattern was, no individual pattern could produce beauty alone; beauty required the synthesis of patterns and the power of the language lay in their connections. No pattern is an isolated entity. Each pattern can exist in the world, only to the extent that it is supported by other patterns: the larger patterns in which it is embedded, the patterns of the same size that surround it, and the smaller patterns which are embedded in it. This is a fundamental view of the world. (Alexander et al., 1977: xiii)
Graph theoretic measures used to gain a deeper understanding of A Pattern Language.
Hypotheses
Hypotheses and indicators of positive results.
It might also be reasonable to assume that the patterns with the most developed solutions would form the core structure of A Pattern Language and constitute a type of framework upon which less developed patterns are supported. This assumption can be tested by grouping patterns according to their invariance rating and determining the level of connectivity within each group. Extracting a sub-graph of each invariance group illustrates whether those patterns are connected to form a single structure, or whether the patterns form disparate groups reliant upon connections to patterns in other groups for their integration into the language. The sub-graphs can also be analysed to determine the average connectivity (total degree) of each group, and what proportion of the total number of connections in the language is found within each group. If the assumption that high invariance patterns form a core structure in A Pattern Language is valid, it would be expected that all patterns in the high invariance group are connected, while less invariant patterns are less connected. Furthermore it would be expected that the average total degree of patterns is highest in the high invariance sub-graph, and lowest in the low invariance sub-graph.
Methodology
Testing the proposed hypotheses requires creating a graph of A Pattern Language in which vertices represent patterns, and edges represent the connections between patterns. However, creating the graph of the language is more complicated than it might initially appear. This is because certain passages in Alexander’s canonical tests may be interpreted in different ways, subtly changing how connections are represented and altering the graph structure and therefore the results derived from its analysis. The crux of this issue is whether the connections between patterns are represented as undirected or directed edges, and if directed, in which direction the edge should point (Figure 1). As a result of these ambiguities in the mechanics of Alexander’s language, it is possible to construct at least three different, yet arguably valid, graphs of A Pattern language. These three, which will be discussed hereafter, will be referred to as the ‘generalised’, ‘creator’ and ‘user’ perspectives of the language.
(i) Each pattern consists of the body text (A), which is preceded by a set of ‘contextual’, prelude connections (1) and followed by a set of ‘embellishing’, postscript connections (2). (ii) In the generalised perspective all connections are undirected. (iii) In the creator model, prelude connections are inbound and postscript connections are outbound. (iv) In the use’s perspective all connections are outbound.
In the graph representing the generalised perspective, every connection between patterns identified by Alexander is an undirected edge. This perspective captures the total potential flow of information that is possible in the broadest or most all-encompassing interpretation of Alexander’s theory, and was adopted for the only previous attempt to mathematically analyse A Pattern Language (Park, 2015). However, certain passages in Alexander’s texts suggest that a more nuanced graph may better represent his intent.
The creator’s perspective embraces Alexander’s conceptualisation of design as a cascade of pattern synthesis, ‘moving always from the larger patterns to the smaller, always from the ones which create structures to the ones that embellish those structures, and to those which embellish the embellishments’ (Alexander et al., 1977: xviii). The graph of the creator’s perspective captures this consciously controlled flow of information by representing all connections as directed edges. Here the contextual connections listed in the pattern prelude are modelled as inbound connections that point toward the selected pattern. Embellishing connections listed in the patterns postscript are represented as outbound edges, pointing away from the selected pattern. Under this paradigm there are many instances where the connections to or from a selected pattern are only specified in the prelude or postscript of an entirely different pattern, thus synthesising patterns requires a holistic knowledge of the language such as that possessed by its creators.
The third perspective also makes use of directed edges, but places greater emphasis on three of Alexander’s rules for selecting and synthesising patterns. First, if pattern A is above pattern B in the network of the language, then I must take A before B. This is the most fundamental rule … Second, I must take all the patterns immediately above A, as close together in sequence as I can … Third, I must take all patterns immediately below the pattern A, as close together in sequence as I can” (Alexander, 1979: 379).
Where the generalised perspective could be regarded as providing an overview of all possible information flows through the language, the more nuanced creator and user perspectives better align with an idealised use and a practical use of the language. For this reason, the present paper tests each of the two hypotheses against both the creator and user perspectives of the language. For testing the hypotheses, the two perspectives are modelled using Matlab R2016a (MathWorks, 2016) which offers simple commands for undertaking graph theoretic analyses using established algorithms. It is also capable of producing visual representations of graphs to facilitate intuitive visual analyses.
Graph construction commences by creating a directed graph containing 253 unconnected vertices, named and numbered to match the patterns in A Pattern Language. The creator and user graphs are then created separately by adding unweighted edges to connect patterns following the logic previously discussed for the creator and user perspectives (Figure 1). Any duplicate edges listed in A Pattern Language (such as pattern A listing a connection to pattern B and pattern B listing a connection from pattern A) are represented as a single edge in the graph. The sub-graphs required to test the second hypothesis are created using Matlab’s sub-graph command and specifying the relevant vertices. Each sub-graph contains only the vertices specified and any edges between those vertices. In order to minimise coding errors, each graph and sub-graph is then checked by extracting a list of every edge that is verified against each connection listed in A Pattern Language.
The analysis takes place by calculating graph theoretic measures in Matlab, using the standard algorithms native to the software and excluding any use of name–value pairs to modify the most basic form of the algorithm. For example Pagerank is calculated with the command Pagerank = centrality (APL, ‘pagerank’) where APL is the name of the graph and ‘pagerank’ is the measure calculated without the use of the modifiers ‘Importance’, ‘FollowProbability’, ‘Tolerance’ or ‘MaxIterations’. Secondary measures are calculated manually in spreadsheet software and include wholeness (HT-index) and intelligibility.
Characteristics of alternate perspectives of the language
Analysing two different perspectives of A Pattern Language highlights the impact of differing interpretations of Alexander’s canonical texts. For example, the graph representing the novice user’s perspective contains 396 more edges than the graph of the creator’s perspective, despite both including the same 253 patterns. This higher density of connections is reflected in the mean degree of the user model (18.01) being higher than that of the creator model (14.88) and is illustrated in Figures 2 and 3. Furthermore, almost half (44.69%) of the edges in the user model form reciprocal pairs that effectively create undirected edges whereas this rarely (12.22%) occurs in the creator’s model of the language (Table 3).
The network of connections linking patterns in the creator model of A Pattern Language. The network of connections linking patterns in the user model of A Pattern Language. Mathematical characteristics of the creator and user perspectives of A Pattern Language.

Incloseness, outcloseness and pagerank provide the most interesting points of comparison for centrality measures. Moving from the first to last pattern in the creator model reveals steadily decreasing results for outcloseness results and the opposite occurs for incloseness results (Figure 4), meanwhile the final few patterns possess extraordinarily high pagerank values. This data indicates that larger scale patterns facilitate access to smaller patterns and that information flows toward the end of the language. In contrast, these trends are largely absent from the graph of the user’s perspective. Thus, to a degree, these mathematical results reinforce the intuitive understanding of the differences between creator and user perspectives.
Data trends for incloseness and outcloseness results in the creator and user models of A Pattern Language.
Two further points of comparison between the user and creator models are the measures of wholeness and intelligibility. Intelligibility, which is borrowed from space syntax research, suggests that the graphs of easily navigable environments exhibit a strong positive correlation between local and global measures of connectivity (Hillier, 1996). If this phenomenon is applicable to the graphs of A Pattern Language, the creator model (0.3567) appears to be less intelligible than the user model (0.7555), when intelligibility is calculated as the correlation of betweenness and total degree. Wholeness (HT-Index) is a newly developed measure of graph theoretic beauty based on the concept of hierarchical structural scaling and partially inspired by Alexander’s theories (Jiang, 2015, 2016; Jiang and Yin, 2014). Applying this measure to the structure of A Pattern Language reveals that the creator model has a HT-index of 4 and the user model has a HT-index of 3 suggesting that the creator’s perspective of the language is the more beautiful. However, any further interpretation of what this measure means is more controversial. HT-index has, thus far, only been applied in three previous cases – the convex spaces of the Alhambra (HT-index = 6) and street networks of Manhattan (HT-index = 5) and Sweden (HT-index = 7) (Jiang, 2015) – and requires further examination before the results for A Pattern Language can be interpreted.
Results – Hypothesis 1
The first hypothesis states that invariant patterns will tend to occupy the most prominent positions within the language. To test this hypothesis, centrality measures are calculated for both the creator and user graphs, followed by grouping these results according to invariance level (Figures 5 to 8). The minimum, mean, maximum and standard deviation values of each centrality measure provide a basis for comparing each pattern group.
Incloseness values organised by confidence level and sorted by value. Outcloseness values organised by confidence level and sorted by value. Betweenness values organised by confidence level and sorted by value. Pagerank values organised by confidence level and sorted by value.



This data shows that in every case the mean centrality value for the high invariance pattern group exceeds the mean values for medium and low invariance patterns. Furthermore, in every case (excluding pagerank values for the creator model), the mean centrality value for medium invariance patterns exceeds the mean value for low invariance patterns. These results are positive indicators for the first hypothesis, however the hypothesis states that invariant patterns would occupy prominent positions in the language and this is not truly supported by the data. Many individual patterns in the medium and low invariance groups possess higher centrality values – and thus occupy more prominent position within the structure of the language – than individual patterns in the high invariance groups, thereby refuting the spirit of the hypothesis, if not its technical framing.
Results – Hypothesis 2
The second hypothesis states that invariant patterns will form a core framework to support less developed patterns. To test this hypothesis, sub-graphs of the high, medium, and low invariance pattern groups are extracted from both the creator and user graphs of the language. These sub-graphs exclude any connections between patterns of different invariance levels.
The high invariance sub-graph contains 84 patterns. These are linked by 344 connections in the user model and 422 connections in the creator model, which respectively account for 18.275% and 18.525% of all connections in each model of the language (Figure 9). In both the creator and user model sub-graphs, Pattern 1 Independent Regions becomes disconnected and contradicts the expected outcome of this analysis. However, the remaining patterns might still be considered to form a core framework for less developed patterns, particularly if those pattern groups possess fragmented sub-graphs.
High invariance pattern sub-graphs of the creator model (i) and user model (ii). In both cases only pattern 1 independent regions become disconnected from the remaining patterns.
A similar phenomenon is found in the sub-graphs of the 115 mid invariance patterns. Here the creator and user models respectively contain 317 connections and 396 connections accounting for 16.844% and 17.384% of the total number in each model (Figure 10). Only three patterns (50 T Junctions, 108 Connected Buildings, and 253 Things From Your Life) become disconnected in the mid invariance sub-graph which indicates that these patterns also form what might be considered to be a core framework within the language.
Mid invariance pattern sub-graphs of the creator model (i) and user model (ii). In both cases only patterns 50 T junctions, 108 connected buildings and 253 things from your life become disconnected from the remaining patterns.
It is only at the level of the 54 low invariance patterns that the sub-graphs begin to fragment. For both models of the language, 10 patterns (18.51%) become disconnected from all other patterns and a further six patterns (11.11%) form three independent pairs which connect to no other pattern (Figure 11). These disconnected patterns and pairs rely entirely on more developed patterns for their integration into the language. In this sense the high and medium level invariance patterns do form critical frameworks that support the least developed patterns.
Low invariance pattern sub-graphs of the creator mode (i) and user model (ii) which both begin showing a breakdown of the language with almost half of the patterns becoming disconnected from the sub-graph.
Connection density in high, medium and low invariance pattern sub-graphs.
Connection density between invariant sub-graphs.
In both the creator and user graphs of the language a similar number of connections exist between the high and low, and medium and low sub-graphs, suggesting that high and medium invariance patterns play similar roles in integrating low invariance patterns into the language. Interestingly the bias of connections is reversed in the creator and user models of the language, however, when connection density is considered, high invariance patterns (4.688 creator, 5.630 user) play a greater role than medium invariance patterns (3.645 creator, 4.479 user). The high numbers (688 creator, 800 user) and concentrations (6.678 creator, 8.130 user) of connections between high and medium invariance patterns might be interpreted as forming a combined core structure that supports the least developed patterns.
Conclusion
The first, and possibly for some readers the least expected outcome of this paper is the observation that subtle ambiguities in Alexander’s canonical texts result in at least two, equally valid graphs of the structure of A Pattern Language. In particular, the creator’s perspective represents a global view of the language that is consistent with Alexander’s conceptualisation of design as a scale-based cascade of decisions. It has a graph structure with a more consciously directed flow of information. In contrast, the user’s perspective represents a local understanding that is consistent with the novice designer’s journey through the language. It produces a graph with a more fluid and distributed flow of information. Future attempts to understand or test Alexander’s theory must consider which perspective of the canonical texts are being adopted and why.
The first hypothesis tested in this paper argues that invariant patterns will occupy the most prominent positions in the language structure. The results indicate that on average, invariant patterns do occupy more prominent positions within the language. However, considering the results at the level of the individual pattern reveals that many medium and low invariance patterns actually occupy more prominent positions than the patterns in which Alexander had the greatest confidence. Thus, an alternative interpretation of the data is that the patterns which are most likely to be encountered by designers – are most easily accessed, or provide greatest access to other patterns – might be those which Alexander acknowledged were incapable of providing fundamental solutions to the problems they addressed.
The second hypothesis tested whether high invariance patterns play a key role in supporting the least developed patterns. The results of the creator and user models of the language respectively show that both the high and mid-level invariance patterns form highly connected sub-graphs while 29.63% of the least developed patterns rely entirely on higher invariant patterns for integration into the language. Therefore, while some less developed patterns might be more prominent than some high invariance patterns, the majority of the structure of the language is provided by the patterns in which Alexander was more confident.
Identifying low invariance, high centrality patterns provide prime opportunities to continue the development of A Pattern Language. This is because research efforts can be focused on refining the patterns that are both most likely to be encountered, and most in need of further development. Similarly, patterns with relatively low centrality values and high invariance ratings may make poor choices for continuing research as these patterns are already well developed and less likely to be encountered. However, it must be noted that centrality scores only indicate the likelihood of encountering a pattern based purely upon the graph structure of the language and this ignores the actual content of a pattern, such as its name. A pattern with a particularly enticing name might actually be encountered more frequently in practice than suggested by its centrality score. Therefore, focusing future research would further benefit from undertaking studies to identify which patterns actually appear most frequently in completed designs.
These suggestions for future research are all natural developments of the present paper, but they do not yet support the needs of designers. It might be imagined that the primary benefit this research provides for designers is that it may offer a practical graphical mapping of the patterns and their connections in A Pattern Language. Indeed, Figures 2 and 3 provide the first complete graphical representation of the entire language, but rather than serving as a practical tool for designers, these figures highlight the absolute complexity of the language. The authors’ attempts to develop a more practical mapping of the language – which includes pattern numbers, invariance rating, title, and graph theoretic measures – has, thus far, proven unsuccessful. It is likely that a map of this type is only possible in a digital format that offers an interactive capacity to zoom or rescale, and then trim unnecessary information. Furthermore, as the present research identifies, mapping patterns and identifying their potential to be encountered does not necessarily assist in identifying which patterns a language user should include in their design. However, mapping the language does have the potential to draw attention to certain patterns which, due to the structure of the language, may rarely be encountered, but be worthy of consideration.
This paper’s graph theoretic analysis of two interpretations of A Pattern language highlights the importance of remembering that, despite its often authoritative and dogmatic tone, Alexander’s text was framed as a work in progress, rather than a definitive design guide. As such, each pattern could be viewed as a hypothesis and subject to change through the efforts of users.
Footnotes
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: Australian Government Research Training Program Scholarship.
