
パターン言語とは、組織化され、一貫性のあるパターンの集合体であり、それぞれのパターンは問題と解決策の中核を記述し、特定の専門分野内で様々な方法で活用できる。この用語は建築家クリストファー・アレクサンダーによって造語され、1977年に出版された彼の著書『パターン言語』によって広く知られるようになった。
パターン言語は、相互接続されたパターンの集合を通して、人間の特定の活動分野に生命をもたらすもののより深い知恵を表現しようとする試みでもある。生命とは、「名前のない性質」を表す仮の用語の一つであり、全体性、精神、あるいは優雅さといった感覚であり、その形態は様々であるが、正確で経験的に検証可能である。[ 1 ]アレクサンダーは、一般の人々でもこの設計アプローチを用いて、非常に大きく複雑な設計上の問題をうまく解決できると主張している。
デザイナーが何かを設計する際、それが家であれ、コンピュータプログラムであれ、ランプであれ、問題を解決する方法について多くの決定を下さなければなりません。個々の問題は、その典型的な場所(構文)と使用法(文法)とともに、辞書の例のように、実際によく見られる、広く認められた優れた解決策とともに文書化されます。このような各項目は、単一のデザインパターンです。各パターンには、辞書の項目と同様に、名前、説明的な項目、および相互参照があります。文書化されたパターンは、そのパターンのコンテキストにおいて、なぜその解決策が優れているのかを説明する必要があります。
「扉」や「パートナーシップ」といった基本的または普遍的なパターンは、経験の中で見出されたり、実践における構成要素として使用されたり、建築、医学、ソフトウェア開発、ガバナンスなど、繰り返し発生する状況や環境における力の全体的な解決策として明確に記述される、多用途なデザインの理想である。パターンは、人間の環境を特徴づける自然発生的なデザインパターンのように、発明されたり、発見されて研究されたりする可能性がある。[ 2 ]
すべての言語と同様に、パターン言語にも語彙、構文、文法がありますが、パターン言語はコミュニケーション以外の複雑な活動に適用されます。デザインのためのパターン言語では、構成要素は次のように分けられます。
これにより、設計者は理解している問題の部分からプロセスを開始し、未知の部分に向かって作業を進めることができるため、設計作業が簡素化されます。同時に、パターン言語が多くのプロジェクトでうまく機能してきたのであれば、設計者が最初は設計上の問題を完全に理解していなくても、設計プロセスを完了し、結果として実用的なものが得られると考える理由があります。たとえば、スキーヤーは屋内に入るときに雪を払い、用具を保管する必要があります。汚れた雪やブーツクリーナーは屋外に置いておくべきです。用具は手入れが必要なので、ラックは屋内に置くべきです。
話し言葉が実用的であるためには、単語同士が文法的・意味的な関係を持たなければならないのと同様に、デザインパターンも、パターン言語を形成するためには、位置と有用性の順序で互いに関連していなければなりません。クリストファー・アレクサンダーの著作は、分解のプロセスを説明しています。このプロセスでは、デザイナーは問題(おそらく商業的な依頼)を抱え、解決策を選択し、次に、より大きな解決策から生じる新たな小さな問題を発見します。時折、小さな問題には解決策がなく、別の大きな解決策を選択する必要があります。最終的に、残りのデザイン上の問題はすべて、構築者が即興で解決できるほど小さく、あるいは定型的なものとなり、「デザイン」は完了します。
実際の組織構造(階層型、反復型など)は、問題に応じて設計者の裁量に委ねられます。これにより、設計者は小さな部分から設計を探求することが可能になります。こうした過程で、設計者が問題が実はより大きな解決策の一部であることに気づくことはよくあります。そして、この段階で設計はほぼ間違いなくより良いものへと進化します。
したがって、この言語では、各パターンが他のパターンおよび言語全体との関係を示す必要があります。これにより、この言語を使用する設計者は、解決すべき関連問題について多くの指針を得ることができます。
外部の専門家にパターン言語を適用してもらう上で最も難しいのは、実際には解決すべき問題の信頼できる完全なリストを入手することです。もちろん、問題に最も精通しているのは、設計を必要とする人々です。そのため、アレクサンダーは、関心を持ち権限を与えられたユーザーによる現場での即興を、非常に実用的な大規模な初期ソリューションを形成し、設計の有用性を最大化し、設計のやり直しを最小限に抑える強力な方法として提唱しました。 [ 3 ] [ 4 ]実際、建築のユーザーに権限を与えたいという願望こそが、アレクサンダーがそもそも建築のためのパターン言語プロジェクトに着手するに至った理由でした。
デザインパターンの重要な側面は、優れたシステムと劣悪なシステム(住宅、コンピュータプログラム、日用品など)を区別する主要なアイデアを特定し文書化すること、そして将来のシステムの設計を支援することです。パターンで表現されるアイデアは、そのコンテキスト内で非常に異なるシステムにも適用できるほど汎用的であると同時に、建設的な指針を与えるのに十分な具体性も備えている必要があります。
パターンで取り上げられる問題と解決策が適用される状況の範囲を、そのパターンのコンテキストと呼びます。各パターンにおいて重要なのは、このコンテキストを説明することです。例を挙げることで、そのパターンがさまざまな状況にどのように適用されるかをさらに具体的に示すことができます。
例えば、アレクサンダーのパターン「A PLACE TO WAIT」は、バス停を外科手術室の待合室と同じように扱いながらも、有益で建設的な解決策を提案しています。ガンマらが執筆した「Gang of Four」の著書『デザインパターン』は、プログラミング言語やプログラムの適用領域に依存しない解決策を提案しています。
とはいえ、パターンで記述される問題と解決策は、抽象度や一般性、そして具体性において、それぞれ異なるレベルを持つ可能性があります。最終的には、これは著者の好みに左右されます。しかし、非常に抽象的なパターンであっても、通常は本質的に非常に具体的で明確な例が含まれています。
パターンは、現実世界での実証度合いによっても異なります。アレクサンダーは、各パターンに星ゼロ、星1つ、星2つの評価を与え、現実世界の事例における実証度合いを示しています。一般的に、すべてのパターンには少なくとも何らかの現実世界の事例が必要であるとされています。しかしながら、まだ実装されていないアイデアをパターン形式に文書化することは可能です。
アレクサンダーの著書に掲載されている図案は、その規模も様々である。町や近隣地域をどのように建設するかを記述したものもあれば、個々の建物や部屋の内部を扱ったものもある。アレクサンダーは、こうした小規模な人工物を大規模な世界を構成する要素と捉え、階層的なネットワークに結びつけている。
パターンは、それが解決しようとする問題、それらの問題が発生する状況や文脈、そして提案された解決策が推奨される条件を明確に示さなければならない。
こうした問題は、多くの場合、異なる利害関係や「勢力」の衝突から生じます。対話を通じてパターンが浮かび上がり、それが勢力のバランスを取り、最終的な決定を下すのに役立ちます。
例えば、ワイヤレス電話を示唆するパターンが考えられます。その動機としては、コミュニケーションの必要性と、同時に他の作業(料理、本棚の点検など)をこなす必要性が挙げられます。非常に具体的なパターンとしては、「ワイヤレス電話」というパターンが考えられます。より一般的なパターンとしては、「ワイヤレスデバイス」や「二次的活動」などがあり、これは二次的活動(電話で話す、ジーンズのポケットを点検するなど)が他の活動の妨げにならないようにすべきであることを示唆しています。
文脈上はかなり漠然としているものの、「二次活動」パターンにおける力関係は、「ワイヤレス電話」パターンにおける力関係と非常によく似ている。したがって、これらの競合する力関係は、パターンで表現されるデザインコンセプトの本質の一部と見なすことができる。
通常、パターンには、特定の価値観に基づいた根拠が含まれています。クリストファー・アレクサンダーにとって最も重要なのは、建築物と接する人々のことを考えることです。彼の重要な価値観の一つは、そうした人々をより生き生きと感じさせることです。彼は「名もなき品質」(QWAN)について語っています。
より一般的に言えば、優れたシステムとは、それを利用するはずの人々、あるいはさらに言えば、影響を受けるすべての人々によって、日常生活を豊かにするものとして受け入れられ、歓迎され、喜んで活用されるべきものだと言えるでしょう。例えば、アレクサンダーは街角のカフェについて論じる際、客の潜在的な欲求について述べるだけでなく、ただ通り過ぎる人々のことも言及しています。
同様の考え方は、電話や自動車といった技術機器、プロジェクトに取り組むチームのような社会構造、あるいはコンピュータプログラムのユーザーインターフェースにも適用できる。例えば、ソフトウェアシステムの品質は、ユーザーがシステムを楽しんでいるか、それとも苦労しているかを観察することで評価できるだろう。
人間の生活への影響に焦点を当てることで、変化する技術とは無関係なパターンを特定することができ、それによって「時代を超越した品質」(アレクサンダー)を見出すことができる。
通常、パターン言語やパターン集の作成者は、含まれるすべてのパターンに対して汎用的な構造を選択し、それぞれのパターンをコンテキスト、問題記述、解決策などの汎用的なセクションに分割します。
例えば、クリストファー・アレクサンダーのパターンは、それぞれ短い名前、評価(最大2つの「*」記号)、印象を喚起する画像、背景説明、問題提起、例と説明を含む長めの本文、解決策、スケッチ、そして参考文献で構成されています。この構造とレイアウトは、「アレクサンドリア形式」と呼ばれることもあります。
アレクサンダーは、パターン内の各セクションを区別するために特別なテキストレイアウトを使用しています。例えば、問題文と解答文は太字で印刷され、解答文の前には必ず「したがって:」というキーワードが付きます。一方、明示的なラベルを使用する著者もいますが、これはある程度の冗長性を生み出します。
デザインをチームで行う場合、パターン名はチームメンバーが共有できる共通の語彙となります。そのため、パターン名は覚えやすく、かつ非常に分かりやすいものである必要があります。アレクサンダーの作品の例としては、「WINDOW PLACE」(部屋の窓の位置を定義するのに役立ちます)や「A PLACE TO WAIT」(バス停や病院の待合室などの特徴を定義するのに役立ちます)などがあります。
アレクサンダーが提唱したパターン言語は、あるパターンから別のパターンへのリンクを含んでいるため、デザイナーはプロジェクトで一つのパターンを適用しようとすると、その文脈において有用と考えられる他のパターンへと導かれる。
アレクサンダーの著書では、こうしたリンクは「参照」の部分にまとめられ、リンク先のパターンの「コンテキスト」の部分に反映されています。つまり、全体構造は有向グラフになっています。「参照」でリンクされているパターンは、通常、より小規模な問題に対処しており、より大規模な問題の一部として提案されています。例えば、「PUBLIC OUTDOOR ROOM」パターンは、「STAIR SEATS」を参照しています。
パターンの説明がなくても、これらのリンクと意味のある名前はメッセージを伝えています。人々が時間を過ごせる屋外スペース(「公共の屋外空間」)を作る場合は、人々が座れる階段(「階段の座席」)で囲むことを検討してください。オフィス(「作業場とオフィス」)を計画している場合は、作業スペースを小グループ(「小規模作業グループ」)に配置することを検討してください。アレクサンダーは、ネットワーク内のつながりは、パターン自体のテキストよりもさらに意味深いものと考えることができると主張しています。
アレクサンダーの著書におけるリンクは、明らかに階層的なネットワークを形成している。アレクサンダーはそれを文法の階層構造になぞらえているが、それが彼がパターン言語について語る根拠の一つとなっている。
リンクの概念はパターン作成者の間では一般的に受け入れられているが、リンクの背後にある意味論的な根拠は異なる場合がある。しかし、Gamma らによる『デザインパターン』のように、パターンリンクをほとんど使用しない著者もいる。おそらく、彼らのパターン集にはそれほど意味がなかったからだろう。このような場合、パターン言語ではなくパターンカタログと呼ぶことになる。[ 5 ]
アレクサンダーは、自身のシステムを使用する人々に、独自のパターンで言語を拡張することを奨励した。これを可能にするために、彼の著書は厳密には建築や土木工学に焦点を当てておらず、パターン言語の一般的な方法も説明している。著書『パターン言語』の当初の構想は、後から簡単にページを追加できるようにリングバインダーの形式で出版することであったが、これは出版において非現実的であることが判明した。 [ 6 ] パターン言語のアプローチは、さまざまな分野の専門知識を文書化するために使用されてきた。例としては、建築パターン、コンピュータサイエンスパターン、インタラクションデザインパターン、教育パターン、パターンガーデニング、ソーシャルアクションパターン、グループファシリテーションパターンなどがある。パターン言語のアプローチは、重要な共通の問題に協力して取り組む多様な人々やコミュニティの行動を調整するのに役立つことで、市民の知性を促進する方法として推奨されている。 [ 7 ]パターン言語の使用と新しいパターン言語の作成に関するアレクサンダーの仕様は依然として影響力があり、彼の著書は無関係の分野の専門家によってスタイルの参考として参照されている。
UMLやフローチャート記号集のような表記法は、パターン言語ではありません。むしろアルファベットに近いと言えるでしょう。これらの記号はパターン言語を文書化するために使用できますが、それ自体が言語ではありません。レシピや、開始から終了まで唯一の正しい手順を示す一連の手順も、パターン言語ではありません。しかし、新しいレシピを設計するプロセスは、パターン言語を用いることでメリットが得られる可能性があります。
建築家であり作家でもあるクリストファー・アレクサンダーは、「パターン言語」という用語を造語した。[ 3 ]彼はこの用語を、建物や都市の設計と建設における共通の問題と、それらをどのように解決すべきかを指すために用いた。本書で提案されている解決策には、都市や町の構造から部屋の窓の位置まで、さまざまな提案が含まれている。
「パターン言語」アプローチの枠組みと哲学は、1970年代後半にカリフォルニア州バークレーの環境構造センターのクリストファー・アレクサンダーと5人の同僚によって書かれた『パターン言語』という本で最初に普及しました。 『パターン言語』には、最初のパターンである「独立した領域」(最も一般的なもの)から最後の「あなたの生活からのもの」まで253の「パターン」が含まれていますが、アレクサンダーの著書『建築の時代を超越した方法』では、この研究の動機と目的についてより深く掘り下げています。以下の「パターン」と「パターン言語」の定義は、 『パターン言語』からの言い換えです。[ 3 ]
「パターンとは、建物の文脈における繰り返し発生する問題に対する永続的な解決策を注意深く記述したものであり、建物に生命を吹き込む構成の1つを記述したものです。各パターンは、私たちの環境で何度も発生する問題を記述し、その問題に対する核心的な解決策を記述します。その解決策は、同じ方法で2回行うことなく、何百万回でも使用できます。」[ 3 ]
パターン言語とは、互いに連携し合うパターンのネットワークです。パターンは、デザインに関する洞察や知識を記憶するのに役立ち、組み合わせてソリューションを生み出すために活用できます。
クリストファー・アレクサンダーのこのアイデアは、他の分野でも採用されており、多くの場合、書籍『パターン言語』で示されているような、パターンをアーキテクチャに適用するという当初の目的よりもはるかに大きな影響力を持っています。[ 3 ] 1990年代以降の例としては、ソフトウェアエンジニアリングにおけるソフトウェア設計パターン、より一般的にはコンピュータサイエンスにおけるアーキテクチャパターン、そしてインタラクションデザインパターンなどが挙げられます。1990年代後半以降、教育パターンは教育における優れた実践を文書化するために使用されてきました。[ 8 ]少なくとも2000年代半ば以降、パターン言語の概念はシステムアーキテクチャ設計に導入され[ 9 ] [ 10 ]、ビジェイ・ヴァイシュナヴィとウィリアム・キューヒラーが66のパターンを執筆した書籍『デザインサイエンス(方法論)パターン』にも導入されました。 [ 11 ]この書籍の改訂増補版は2015年に出版され、84のパターンが掲載されています。[ 12 ]持続可能性、民主主義、前向きな社会変革を促進するために情報とコミュニケーションを使用する136のパターンを含む書籍「Liberating Voices: A Pattern Language for Communication Revolution」は、さらに多くのパターンを含むウェブサイトとともに2008年に出版されました。[ 13 ]「Group Works: A Pattern Language for Bringing Life to Meetings and Other Gatherings」というデッキは2011年に出版されました。 [ 14 ]パターン言語のアイデアは、パーマカルチャーデザインにも応用されています。 [ 15 ]
ウィキの発明者であるワード・カニンガムは、マイケル・メハフィーと共同で論文を執筆し、ウィキとパターン言語の間には深い関係があり、ウィキは「実際にはパターンの効率的な共有と変更を促進するためのツールとして開発された」と主張した。[ 16 ]