On the complexity of pattern languages Philippe Lemay, Ph.D School of industrial design University of Montreal Abstract The use of pattern languages in the academic and professional communities has gained widespread acceptance over the years. From the seminal work of Christopher Alexander, several disciplines have relied on its methodological foundations to specify essential building blocks of knowledge in their respective domains, which beside architecture, includes software programming, human computer interactions (HCI), sustainable societies and many others; the author is actually developing a pattern language for the emerging paradigm of experience design. Even if it is implicitly acknowledged, the complex nature of pattern languages has rarely been explicitly described. A pattern language is fundamentally organized as a system, with interconnected elements and emergent properties and, as a true open system, extends its relationships outside its boundaries. Question then arises if its complexity can be described and measured. As many authors have shown, complexity is a polysemous concept that needs to be delineated. Advances in complexity theory help us to tackle the difficult task of extracting the relevant complexity measures that can be applied to pattern languages. Therefore the objective of this research paper is to present relevant thoughts arising when trying to describe pattern languages as complex systems. We first present what are patterns and pattern languages, then follow to descriptions of complexity theory and complex systems. We will then attempt to describe the complexity underlying pattern languages. Concepts and measures from complex theory (at the structural and dynamical levels) are discussed that allows researchers to better understand the intricacies of this endeavor. It is argued that complexity theory mostly apply to models of phenomena and as such, pattern languages may then be described using the complexity theory framework. Keywords: design, pattern languages, complexity, complex systems, models. 1 Introduction Scientists and practitioners of many disciplines have attempted to derive the fundamental building blocks of their domain and tried to formulate the rules that bind those blocks together. Poets, mathematicians, graphic artists, chefs, children, industrial designers and computer scientists, just to name a few, have somehow managed to abstract the constitutive basis of their disciplines. The pattern language approach represents this kind of attempts. By trying to define the basic constituents of a given field, pattern languages then allows to select them, mix and match them to shape a poetic sentence, a south-east inspired recipe, a new illustration for a child book, a small-scale replica of a Second World War plane, a cheaper computer for the masses. When Christopher Alexander [1] put forth his idea of a pattern language, although his work was originally applied to architecture, his approach represented a lingua franca for researchers and practitioners of various disciplines. 2 The polysemy of patterns Patterns abound in the natural and artificial worlds. Sequences (of numbers, letters), cycles (of days and nights, of seasons) processes (of industrial manufacturing, neurological transmissions), tendencies (of economical markets, of fashion), shapes (of cars, trees) and probabilities (of winning at the casino, of an earthquake in Mexico) are kinds of patterns found in nature. The multifaceted nature of patterns is also noticeable across literary sources. This polysemous concept is considered as [9]: • a perceptual structure • a customary way of operation or behavior • a decorative or artistic work • a something regarded as a normative example • a model considered worthy of imitation • a something intended as a guide for making something else All connotations refer somehow to the idea of a certain amount organization of elements, should they be perceptual (in lines, shapes, or physical elements), behavioral (doing things in a certain manner) or social (a shared, social recognized model). The recognition of a pattern often leads to use it as a guide, in order to perform certain actions (as in a sewing pattern). 2.1 Patterns as a methodology The methodological development of pattern languages has mainly stemmed from the seminal work of Christopher Alexander and his colleagues. According to Alexander, each "pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice." [1] The pattern language he developed for architecture consists of 253 patterns organized in 3 hierarchical levels: urbanistic (design of towns), buildings (design of houses) and construction (implementation of the design). The patterns are interconnected together, much like a lattice, the connections spreading to higher and lower levels. Each pattern is given a name, a description, an illustration, the context where it applies and the patterns it is related to, the system of forces on which the problem or goal is subjected to and the solution, that is a configuration that brings the forces into balance or solves the given problems. Patterns languages have been used in several domains, such as architecture [1], software design [4] and economy [10]. In software design and human computer interaction (HCI) pattern languages enable designers to elaborate better interactive systems, by taking into account the human cognitive and behavioral intricacies, not just technical requirements. Pattern language has its place among other user-centered methodologies such scenarios [6], system analysis (like the A4 methodology [28]) and unified modelling language (UML). The author is currently developing a pattern language for the emerging paradigm of experience design. Since patterns are interconnected at higher and/or lower levels, thus forming a network of elements, question arises if this system may be considered as a complex system, and if any of the complexity measures may be applied to tackle this endeavor. But as literature shows us complexity, like pattern, is a polysemous notion. 3 Complexity Scientist: "Complexity is what you don’t understand." Colleagues reply: "You don’t understand complexity." In John Casti [7] Like happiness or love, people know intuitively what complexity is, but circumscribing and worse defining it make it a more daunting task. Complexity comes from the original Latin word complexus, which signifies "entwined", "twisted together" [22]. It is often opposed to simplicity, "that property that guides the rational choice between competing theories that are equally supported by evidence" [12], following William of Occam’s razor dictum. But mostly, it is used when "considering situations where previous analytical techniques fail" [12]. There are different meaning of complexity, depending on the discipline where it is used1: in information processing, complexity is a measure of the total number of properties of an object, detected by an observer; in physical systems, complexity is a measure of the probability of the state vector of the 1 from http://en.wikipedia.org/wiki/Complexity system; in computer science, complexity is a measure of how much time and memory a computer algorithm may take to perform a certain task; in social science, complexity theory concerns the study of the emergence of macroproperties from the micro-properties and is often related to the use of computer simulation in social science (i.e. computational sociology). Complex system is also often used as a broad term addressing a research approach which includes ideas and techniques from chaos theory, artificial life, evolutionary computation and genetic algorithms [14]. Systems thinking is another approach which attempts to study systems in a holistic way [22, 23, 24]. What does differentiate complex systems from simple systems2? A system is characterized by the following entities: elements, relationships, processes and context [2, 21, 35]. Thus a system may be described according to its constituents, the dynamics it undergoes, the structural organization and the adaptation to its environment. The following characteristics [5, 7] are generally acknowledged to distinguish between simple and complex systems. 3.0.1 Decomposability (complexity of elements) Contrary to simple systems some behaviors and patterns emerge in complex systems as a result of relationships between the elements. Emergence is the key property that makes complex a complex system. Since the components of a simple system interact weakly one or more its components may be disconnected and the system will behave more or less as it did before. A complex system with its high degree of interaction is very sensitive to these changes. Disconnecting any part of the system will produce drastic changes in the systems behavior. 3.0.2 Intense connectedness (complexity of relationships) Because of a larger number of interconnections and interactions between elements, there are rarely simple cause and effect relationships between elements. A small stimulus may cause a large effect or no effect at all. A set of nonlinear relationships is often found, producing both negative and positive feedbacks among elements. Simple systems have small number of subsystems that interact and less feedback between subsystems. This makes the system less flexible and tends to limit the behavior of the system. The complex system has many dynamically linked subsystems with feedback/feedforward loops that make the system more flexible and allow for a much wider range of behavior. 3.0.3 Unpredictability (complexity of processes) Complex systems are dynamics. The history of a complex system is important and cannot be left aside. Even a small change in the environment can cause unexpected and/or unproportional consequences in the future. This has been 2 http://en.wikipedia.org/wiki/Complex_system referred to as the "Butterfly effect." Simple systems, usually governed by linear processes, show little surprises, where small perturbations produce predictable behavior. Complex systems however are full of surprises, small perturbations producing unexpected and sometimes counterintuitive behavior. 3.0.4 Boundaries (complexity of context) Complex systems are open systems. Energy, matter and information are exchanged across system boundaries. Because of deep intertwined relationships with the environment, it is usually difficult to determine the boundaries of a complex system. Furthermore they are usually far from equilibrium: even though there is constant change there is also the appearance of stability. 3.1 Measures of complexity Some intuitive notions are often associated with complexity: size, information (minimum description size), variety, order and disorder and even ignorance [12]. Some more rigorous description of complexity such as mathematical measures have been suggested: Computational complexity, Kolmogorov complexity, arithmetic complexity, cognitive complexity, connectivity, cyclomatic number, dimensionality of an attractor, entropy (of information, mutual entropy, etc), Horn complexity, effective measure complexity, syntactic depth, thermodynamic depth, Bennett’s logical depth, Löfgren’s interpretation and descriptive complexity and the likes [8, 15, 25, 18, 12] They somehow refer to the amount of resources (usually time or computational ones) that it takes to solve a class of problem. Their use depends on the domain of investigation, the phenomenon to be analysed, the form of the data and the objective pursued. Given that pattern languages are formalized by mathematical formulae or integrated in a computer simulation nonve of these complexity measures can be applied to pattern languages. 4 The complexity of pattern languages Given the four key characteristics found in complex systems and the typical measures of complexity, pattern languages do not seem to comply with any of the criteria of complexity. They are easily decomposable, their interconnectedness is often limited, containing neither feedback loops nor nonlinear relationships. Furthermore their boundaries are easily determined. It is thus at best described as complicated systems. Some other considerations need to be put forward in order to label pattern languages as complex. Some considerations stem from an epistemological concern. The question relates to as if complexity refers to real systems or their constructed abstraction. "True complexity” of real objects (if it existed) would probably totally overwhelm us; the complexity of systems seems to vary depending on which aspect one is concerned with, thus introducing the observer in a larger meta-system; any “real” complexity is irrelevant, as observers never interact with the total systems, only certain aspects of them at any one time [11]. Recognizing the true epistemological position leads to considering complexity as pertaining to models, and not real entities. Following Edmonds’ definition, complexity is then defined as "that property of a language expression which makes it difficult to formulate its overall behaviour, even when given almost complete information about its atomic components and their inter-relations" [11]. The challenge faced by the scientist is then to elaborate the model that best fits the circumscribed domain. Models, as theoretical constructs that represent physical, biological or social processes, allow to form inferences, so they can be used to predict some property given some other information. Thus it is customary to distinguish its form from the correspondence between possible information and the predictions that one could infer from them. This set of information along with the respective predictions can be thought of as defining a subspace of the space of all relevant possibilities [11]. This author calls this subspace the model’s semantics, because of the analogy between a logic’s syntax and its semantics in terms of the set of logical models a statement is true for. The primary way in which these models can be judged is by the degree of correspondence (or lack of) between what is modelled and the predictions of the models - its accuracy (or conversely, its error). Models may loosely fit a group of objects and their properties while leaving aside some other objects or it may be tailored to fit exactly one object; in the latter case the model corresponding model may not be refutable. This dilemma refers to the model’s specificity or generality. A modeller with infinite resources and time need only use these two measures as guides in its choice of model. These dual aims might come in conflict in some (most?) cases. In a given modelling language one might be forced to choose between a vague but accurate model and a specific but more erroneous one. In some accounts the specificity of models are sometimes left out of analyses of modelling because the types of modelling languages considered are inherently precise. For us more limited beings [32], with very distinct practical considerations, the complexity of our models become important. As we shall see below we have to balance the complexity, the error and the specificity of our models. Note that here, complexity is a property of the form of the models while the error and specificity are properties of its corresponding model semantics. 5 Are pattern languages complex systems? Given the characteristics of complex systems, questions arise if pattern languages may be considered as complex systems. The first intuitive steps would have been to analyze a particular pattern language in terms of its size, number of connections between patterns, or its relationships with the context where it applies. One may try to quantify the amount of complexity using several of the complexity measures used in the natural sciences. But epistemological considerations refrain us from do so, and rather suggest to consider the complexity of the underlying model. Researchers are then faced with the challenging task of elaborating a language that balances complexity, prediction errors and specificity. The more general the pattern language the more it may be applied to different contexts (or projects), and conversely, the more specific the more it will allow to tackle a limited region of the problem space. Furthermore beside the characterization of the models in terms of its syntax and semantics, the modeller has to deal with pragmatic questions, such as its use in real word applications, and moreover its design. What are the purpose of the language? What is its intended use, and in what contexts? Such questions are often only implicit in the analysis of other systems. The complexity of pattern languages is thus furthermore increased by taking into account its effectiveness, not just its accuracy. 5.1 Complexity of patterns for experience design In the light of the discussion on complexity of pattern languages the development of a new pattern language (in this author’s case, a pattern language for experience design) is plagued with the same trade-offs as other models, that is, between complexity, accuracy and specificity. A pattern language is complicated with regards to the overall behavior, given its elements and the relationships between them. But it is a complex task when dealing with the design of such language, given the balance between its accuracy and its specificity that has to be dealt with. What is better: a specific language for a more detailed context of intervention (for example, the design of a handheld device for a feminine population aged between 25 and 34 years old) or a more general one (the design of portable interactive devices)? a pattern language for the design of experiences or a pattern language for the design of pleasure and well-being? 6 Conclusion It is by integrating the context of use of the pattern language, the person who use the pattern language, the people who will benefit the resulting objects (environment or system) that the full complexity of pattern languages emerge. Then the characteristics associated with a complex system may be applied: the system is then exhibiting (limited) decomposability, deep, numerous, nonlinear relationships between its elements and truly acts as an open system, whose dynamics is unpredictable. The contingent feedback and feedforward forces (the anticipation or teleonomy) play a fundamental role in shaping its evolution. Further developments have to be made in order to fully tackle the intricacies of the exquisite subject. Pattern languages (their elementary patterns, their relationships and the context of their use) have to be elaborated in its full details in order to be analyzed for its own sake. The relationships between the syntactic, semantic and pragmatic spheres of the language also seem worthy of pursuing. It is hoped that the line of thoughts presented here, as complex as it is, represents an interesting trade-off between complexity, accuracy and specificity. References [1] Christopher Alexander, S. Ishikawa, and M. Silverstein. A Pattern Language, volume 2 of Center for Environmental Structure Series. Oxford University Press, New York, NY, 1977. [2] Ludwig (von) Bertalanffy. Théorie générale des systèmes. Dunod, Paris, 1973. [3] Marion Buchenau and Jane Fulton Suri. Experience prototyping. In Proceedings of the conference on Designing interactive systems, pages 424– 433. ACM Press, 2000. [4] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern-Oriented Software Architecture, A System of Patterns. John Wiley and Sons Ltd, Chichester, England, 1996. [5] A. B. Cambel. Applied chaos theory. A paradigm for complexity. Academic Press, Boston, MA, 1993. [6] John M. Carroll. Making use: scenario-based design of human-computer interactions. MIT Press, Cambridge, MA, 2000. [7] John L. Casti. Complexification. HarperCollins, New York, New York, 1994. [8] James P. Crutchfield, J. Doyne Farmer, Norman H. Packard, and S. Shaw, Robert. Chaos. Scientific American, 255(6):46–57, 1986. [9] Plumb Design. Visual thesaurus (version 2.0). http://www.visualthesaurus.com, 2003. [10] Conservation Economy. A pattern language for sustainability. http://www.conservationeconomy.net, 2003. [11] Bruce Edmonds. What is complexity? the philosophy of complexity per se with application to some examples in evolution. In The Evolution of Complexity. Kluwer, 1998. [12] Bruce Edmonds. Syntactic Measures of Complexity. PhD thesis, Manchester Metropolitan University, 1999. [13] Jane Forlizzi. Towards a framework of interaction and experience as it relates to product design. http://goodgestreet.com/experience/home.html, 2003. [14] James Gleick. Chaos: The making of a new science. Viking Penguin, New York, 1987. [15] Ary Goldberger, David Rigney, and Bruce West. Chaos et fractals en physiologie humaine. Pour la Science, 150:xx, 1990. [16] Hermann Haken. Information and Self-Organization. A macroscopic approach to complex systems. Springer, Berlin, 1985. [17] F. Heylighen. Relational closure: a mathematical concept for distinctionmaking and complexity analysis. In R. Trappl, editor, Cybernetics and Systems, 1990, pages 335–342. World Science Publishers, 1990. [18] John Horgan. From complexity to perplexity. Scientific American, June:74–79, 1995. [19] Mike Kuniavsky. Observing the user experience. A practitioner’s guide to user research. Morgan Kaufmann, San Francisco, 2003. [20] Philippe Lemay. The statistical analysis of the dynamics and complexity of psychological phenomena: a configural approach. PhD thesis, University of Lausanne, September 1999. [21] Edgar Morin. La méthode. 1. La nature de la nature. Seuil, Paris, 1977. [22] Edgar Morin. Introduction à la pensée complexe. ESF, Paris, 1990. [23] Edgar Morin. De la complexité: complexus. Seuil, Paris, 1991. [24] Edgar Morin. The Concept of System and the Paradigm of Complexity. Springer, New York, 1992. [25] Heinz-Otto Peitgen, Hartmut J¸rgens, and Dietmar Saupe. Chaos and Fractals. New Frontier of Science. Springer, New York, 1992. [26] David Pines. Emerging synthesis in science. Proceedings of the founding worshops of the Santa Fe Institute. Addison-Wesley, Redwood City, 1988. [27] Valentino Pomini, Philippe Lemay, Jean-Pierre Dauwalder, and Marc Bersier. Dynamics of daily life. Interactions between individuals and their environment. Swiss Journal of Psychology, 55(1):49–60, 1996. [28] Paul Rothstein. A4: a user-centered method for designing experience. http://www.idsa.org/whatsnew/01ed_proceed/rothstein.pdf, 1999. [29] Russell Ruthen. Adapting to complexity. Scientific American, 268(1):xx, 1993. [30] Bernrd H. Schmitt. Experiential marketing. The Free Press, New York, 1999. [31] Nathan Shedroff. Experience design. New Riders Publishing, Indianapolis, Indiana, 2002. [32] Herbert A. Simon. The Sciences of the Artificial. MIT Press, Cambridge, MA, second edition, 1981. [33] John Sinclair. Collins-Cobuild English language dictionary. Collins, London, 1987. [34] Jeniffer Tidwell. Common ground: A pattern language for humancomputer interface design. http://www.mit.edu/ jtidwell/interaction_patterns.html, 1999. [35] Bernard Walliser. Systèmes et modèles. Introduction critique à l’analyse des systèmes. Seuil, Paris, 1977. [36] Stephen Wolfram. Cellular automata and complexity. Addison-Wesley, New York, 1994. Biographical note Philippe Lemay, Ph. D. Associate professor, School of Industrial Design (Faculty of environmental design, University of Montreal) I have a Bachelor in Psychology (« Licence », Université de Lausanne, Switzerland), a Master in Cognitive Science (« Diplôme d'Études Approfondies en sciences cognitives », École Polytechnique, Paris) and a Ph.D. in psychology (Université de Lausanne, Switzerland). I have mainly oriented my thinking towards the development of conceptual and methodological tools that allows to better understand the dynamics and complexity of human experiences. During my master thesis, I worked on decision making under uncertainty, from a dynamical perspective. My doctoral thesis was about description and development of statistical tools for the analysis of individual-environment interactions. Now professor at the School of Industrial Design (Faculty of environmental design, University of Montreal), I teach human factors, especially those related to the experiences of and the interactions with the material world, from theoretical and practical perspectives (during courses and workshops). I also teach research methodology for the doctorate students. My research interests relate to the emerging paradigm of experience design, the application of the « flow » or « optimal experience » concept in industrial design, the use of pattern language and scenario methodologies in the design process as well as the design and study of technological objects. I’m director of a research group named GRADIENT (Groupe de Recherche sur les Artéfacts, Design, Interactions, Expériences et Nouvelles Technologies) that studies the various aspects at the intersection of human factors, design and new technologies. Contact information Philippe Lemay, Ph. D. School of Industrial Design University of Montreal CP 6128 Succursale Centre-ville Montreal, QC, H3C 3J7 Canada philippe.lemay@umontreal.ca