The Pattern Web is a research project by the Wikihouse Foundation that is both conceptual and practical. On the conceptual side, it’s an attempt to apply automation to design, by embodying knowledge into design tools, by creating patterns that describe manufactured objects and the expertise needed to design them. Practically, they are also developing open source tools for parametric design in a web browser – tools that provide an interface to a set of patterns.
While their current work is early stage, and narrow, the scope for kinds of expertise that could be incorporated is broad. For example, for a building, it might include knowledge about the structural limits of brick walls, the acoustic properties of a cladding materials, or the planning regulations that govern a particular kind of building in a particular place.
This knowledge is incorporated into patterns that describe the ways things can be made: from a door handle, to a house, to a roundabout. The number of things that could be described in this way is vast, diverse, and competitive – there are many ways to design a door handle, and people might disagree about which is best in a particular situation. So in this sense, the patterns form a web: they can be linked to each other (doors, to handles, to door frames), there can be alternatives that compete for usage, and each pattern can be owned and maintained by a different person.
Perhaps the most visible and mature pattern being developed in this system today is the Wikihouse building system itself. But Wikihouse Foundation are also working with Southwark Council in London on their planning regulations for household extensions. This is currently a PDF document written for other humans. But the knowledge it contains can be expressed as an algorithm, a pattern to be read by a machine, which can then be incorporated in software.
Patterns can be strung together to form larger patterns. A house is itself a pattern, and many house patterns can be linked together (with road, signage, utility and other patterns) to form a housing development. Each of these things is governed by regulations and constraints. Currently, someone building a housing development has to draw in expertise that acounts for these regulations and constraints. And if they build a development in another city, they have to go through the whole process again, because all the regulations and constraints are slightly different.
With a pattern web, the things which remain the same in two instances can be referenced (linked to) while the differences can be embodied in a local pattern. For example, local planning regulations share a common core which is derived from central government regulations. If these regulations were patterns, that common core could be be maintained by central government, with a much smaller set of local variations maintained by local planning offices.
When the national regulations change, all local patterns are automatically updated because they reference that national pattern, rather than maintaining a modified instance of that pattern themselves.
How is it redistributive?
If the tools are open source, and the patterns modular, then many more people can contribute to the pattern web. Anyone can author and maintain a pattern, and if that pattern is adopted, their work can be realised. As with the web we’re familiar with, we could expect some patterns to become successful, and many more to remain unused, but no one company hold the keys or owns the web.
Moreover, by encoding knowledge into sets of rules — essentially automating expertise — that knowledge becomes accessible to many more people. If you want to build a room with good acoustic properties, you don’t have to hire an acoustic engineer, you can consult the pattern web.
The pattern web — or something like it — is required for the manufacturing of complex products to be redistributed at scale. It aims to embed in software all the expertise required to make a product: not just some parameters that allow for customisation, but also the knowledge of how a material behaves under a tool, what works well for a given use, what the law requires, and so on.
What are the barriers to mainstream success?
- Scalability. Could a web of patterns be developed (or emerge) with sufficient scale, variety, and interoperability such that a useful product such as a house could be built by linking a set of patterns together? Could a shared language emerge that was capable of expressing the variety and richness of a global set of patterns without becoming unusably complex?Does there need to be a centralised ‘dictionary’, that provides rules for communicating across the pattern web, and if so, does this threaten the decentralised nature of the project?
- Liability. Remaking the wheel every time has one advantage – one person can take responsibility for the whole wheel. When the wheel is modularised into a ‘stack’ of patterns, and knowledge that informs about its design is distributed out to authors of many different patterns, who is to blame when the wheel breaks?In open source software, where such dependencies are common, this liability is managed through licences — but only so far as for authors to disclaim liability when their software is embedded somewhere further up the stack.
When the potential for harm is so much more immediate, the question of liability becomes that much sharper.
We might expect that patterns could be certified by experts as ‘safe to use’, or ‘meeting regulations’, but this is made more complex when we consider the behaviour of ‘forking’ patterns. As with open source software, anyone would be free to create a derivative of a pattern. Does that new pattern need to be re-certified, or can only the changes be submitted for review? What about common stacks of patterns — do they need to be certified as a whole? How modular is certification?
- Business model. Building an open source infrastructure to manage a common resource of patterns (and to author those patterns) requires investment. Without a clear commercial return, that is difficult to find. The precursors to the pattern web, such as knowledge-based engineering systems, are centrally financed and managed, and distributed only within the bounds of one organisation, to maximise the return for the companies that develop them.
As with similar infrastructures such as the (world wide) web there is also the risk that bottlenecks emerge, and businesses who can control those bottlenecks (such as Google for search or Facebook for social identity) become overly dominant.
Authors and maintainers of patterns must be rewarded for their work. This requires some method — not yet devised — of attributing value across the web. Another approach is for those contributing to the web to have a business model that generates revenue through a different stream, complementary to their work maintaining the patterns (as with, in the software world, Redhat and Apache, or Apple and Webkit).
A Pattern Language, by Christopher Alexander, Sara Ishikawa and Murray Silverstein
Wikipedia: Knowledge-based engineering