IA Summit 2007, March 22-26 at the Flamingo Las Vegas, Las Vegas, Nevada, USA

Main conference presentation

WebPatterns: design patterns in web site architecture and User Interaction

John Allsopp

Sunday March 25 2007, 9:00 - 9:45AM

In 1977, Christopher Alexander, Sara Ishikawa and Murray Silverstein published "A Pattern Language", which formalized their pattern based approach to architecture.

In a nutshell, a pattern describes a problem which occurs over and over again ... 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.

The idea has been taken up in a number of computer related fields. In this context, Brad Appleton observed, "Fundamental to any science or engineering discipline is a common vocabulary for expressing its concepts, and a language for relating them together".

Using this as a benchmark, can web design and development today rightly be called a discipline? Or is it a practice in the process of becoming a discipline? Do we have a "common vocabulary for expressing [our] concepts, and a language for relating them together"?

While there are technologies like HTML and CSS (though we still struggle to even use the terms "tag", "attribute" and "element" correctly), what about higher order, more complex structures and strategies? What do we call the parts of a page we use over and over again? What names do we have for particular navigation strategies (such as hierarchical trees, linear progressions through sections, and so on)?

A survey I conducted in late 2005, as well as a more detailed, though much more narrowly focussed one by François Briatte, suggest that while it's clear that there are many structures we use over and over again, we lack that common vocabulary to talk about these structures, and to relate them to one another.

In this presentation I consider the results of my survey of the structural semantics of more than a thousand web sites "in the wild", and argue we lack a pattern language for the web.

I then outline a project for developing such a pattern language, and propose a structure of one such pattern language.

IA Summit 2007