http://www.educery.com/papers/rhetoric/metaphors/

ソフトウェアのメタファ
Nik Boyd

Copyright 2003, 2004 Nikolas S. Boyd. All rights reserved.

序論: フィクションとしてのソフトウェア

ソフトウェアは文学の独特な一形態です。ソフトウェアは有用で実用可能なフィクションです。ソフトウェアは、私たちの実世界や想像上の世界に存在する事物の構造・関係・振舞いに似せて設計できます。それゆえソフトウェアは、実世界の問題を解決し生活の質を改善するために使用できます。ソフトウェアは、莫大な可塑性を持ち、私たちの実世界の需要に合うように成形できます。それでもなお、ソフトウェアは、比喩的で作り物じみた、想像上の虚構に留まります。

フィクションとして、ソフトウェアは徹頭徹尾、メタファ的です。最もローレベルな変数名から、最も大きいエンタープライズアーキテクチャまで、ソフトウェアのあらゆる要素と側面に、メタファは蔓延しています。ソフトウェアがこれほどメタファだらけのため、こうしたメタファの範囲や本質を我々は見落としがちです。水の中の魚のように、毎日ソフトウェア設計に使用する自然言語、生得的な概念モデル、自然な言葉によるメタファといった、周囲を取り巻く媒体を、ソフトウェア開発者が意識しないことはしばしばです。にもかかわらず、ソフトウェア開発者は、彼らが出会うあらゆる分野、解決すべきあらゆる問題から、アイデア・用語・組織体制を借用します。

このエッセイでは、こうしたメタファに対するソフトウェア開発者の意識をより強く喚起し、またソフトウェア開発の一般的なプラクティスにおける彼らの認識をより共通で明白なものにするため、こうしたさまざまなメタファについて探っていきます。

メタファと認知科学

認知科学は概念システム、特に脳と心の働きの研究です。比較的新しい分野にもかかわらず、認知科学は短い歴史の中でいくつか驚くべき発見を行ないました。認知科学の草分けとなる本「肉中の哲学」では、George Lakoff および Mark Johnson が、こうした発見について多数の例を説明しています。認知科学の発見とは:

精神は、本質的に具現化される。
思考は、ほとんど無意識である。
抽象概念は、主にメタファ的である。

私たちは、幼少期の間に基本メタファを獲得します。感覚系・運動系の経験が、私たちの主観的な経験を構造化するのです。幼少期の間、私たちは、明確な概念の定義域を神経のように関連させる、幾多もの基本メタファを学びます。こうした合成期間に続き、それらのターゲットとメタファ的なソースを区別して、私たちはこれらの定義域を分離します。複雑なメタファは、後でこれらの主要なメタファからの概念的な混合で形成されます。広範囲(普遍的な)の従来の概念的なメタファは、普遍的な経験から発達します。私たちが一般的に得る基本メタファのいくつかが以下を含んでいます:

悪:臭い。理解:握り締めること。
態度:位置。目的:行き先。
目盛:指針。目的:望ましい物。
カテゴリ:容器。関係:包囲。
類似性:近さ。組織:物理構造。

私たちの主観と認識による経験にメタファが豊富なら、私たちのソフトウェア設計もまた、メタファで充ちていても驚くことはありません。次の数セクションで、ソフトウェア設計の要素と代数学から得られたもので始まる、最重要のソフトウェア的メタファを探ります。