From A Pattern Language by Christopher Alexander et al