Jonathan Arnowitz

I was thinking to actually changing tactics and propose we just try to understand one simple pattern, so we can going to deeper detail what architecture is involved in creating that pattern.

I would suggest we take a simple company web site home page pattern and see how this would correspond to the Pattern Language.

The first problem is the entire space is the pattern, which in turn is made up of sub patterns, which in turn is made up of tasks which replace architectural features in my version of the pattern language. Therefore, in order to understand how to build useful patterns, one must first be the master of the tasks in the same way an architect is the master of the building elements/building blocks that make an architectural space.

So for example for our Company web-site pattern you have a list of sub patterns that help create this web-site space:

A web browser pattern - the tools the person needs to go to and from the web site.

a web browser

a search engine

Information space

Tell the user where they are and what they can do there

Direction space

Show the user an available task supporting set (including navigation, forms, etc.):

There, in short is web site pattern, and with each pattern a choice was made from an array of parameters. For example in the Direction Space the parameters could be:

Direction Space Show the user an available task supporting set: Available options:

--site map high level topic pages (regarding the company's purpose and target group)

-- Company information

{Parameters for Company information:

-- contact information

-- company information - clients

-- company information - methods

-- web site information (author, last date changed, a way to comment on the web site) }

For contact information, this is a building block and it looks like this: Blockname: contact information Object - company (name, street address, post address, telephone, fax, general email, route description {link}) Supporting objects: employees (position, bio, email, telephone)

For the block contact information all the items in () are parameterizeable. For each item, a style could be associated with it, so that even its appearance is specifieable in the pattern.

Anyway this is in short my pattern approach. It is based on learning the building blocks, the parameters, and then proceed to make your higher level patterns. It is based on pretty straight-forward application of the Christopher Alexander book The Timeless Way of Building and A Pattern Language.