The Nature of Pattern Languages