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