"The limits of my language mean the limits of my world."の意味を考える
"The limits of my language mean the limits of my world." (私の言語の限界は、私の世界の限界を意味する)は、ウィトゲンシュタイン(Ludwig Josef Johann Wittgenstein: 1889-1951)の『論理哲学論考』("Tractatus Logico-Philosophicus" )に出てくる。
5,6年前に、これを、Oracleのマニュアル『PL/SQL リリース8.0 ユーザーズ・ガイドおよびリファレンス』(今のバージョンではない。)「第1章 概要」の扉ページ(昔のOracleのマニュアルには、章毎に誰かの言葉が示されていた!)で、私は初めて見て知った。
マニュアルの最初の章にこの言葉。 「こんなことを言い切る人間がいるんだということ」と、「PL/SQLという言語マニュアルの第1章の扉に、この言葉を持ってくるセンス」に感嘆してしまった。 と同時に、この言葉を書いたウィトゲンシュタインのファンになってしまった。
<言語の重要性>
ウィトゲンシュタインの『論理哲学論考』をすぐ買って、読み始めたが、なんのことかよくわからなかった。(今でも、十分わかっているわけではないが) しかし、文体が格好よい。 左下に示すように、各命題は番号が振ってあり。命題n.1, n.2, n.3, etc. は命題項番nのコメント(注釈)に、命題n.m1, n.m2, n.m3, etc. は項番n.mのコメントになっており、ハイパーテキスト向きの構造となっている。つまり、上位の項番の命題を読んで理解できれば、下位の項番の命題は読まなくていい(?)構造になっている。 〔スピノザ(Spinoza)の『エチカ(Ethica)』も興味ある文体である。 このあたりの『文体』に関してもいずれ、どこかで言及したい。 ところで、"Tractatus Logico-Philosophicus“というこの本のタイトルは、ムーア(G. E. Moore)の勧めで、スピノザの『神学政治論(Tractaus TheologicoPoliticus)』に倣ってつけられてようだ。〕
前期ウィトゲンシュタインと後期ウィトゲンシュタイン(場合によっては、中期も分類する人がいるようだが)と分類されるようだが、私は、言葉の大切さがこのように簡潔に書いてあることこそがすごいことだと思っている。 すべて以心伝心ですまない。文化が異なる人間同士のコミュニケーションではもちろん。 お互い本当は好きなことはわかっているのに、互いに言葉にしない、できないことにより、別れていくことだってある。 (私もその例に漏れず...) すべてが以心伝心ってなわけはいかない。 慮ってほしいのはやまやまなのだが。 また、不明確な、論理的でない言葉を使って、相手を誤解させたり、意図と違った認識をさせてしまうことは、多くの人が経験している。コンピュータに対しても、「こちらの思いを理解してね」でなく、プログラム言語(人工言語)で、「何々してくれ」って指示しないと駄目だし。
5.6 私の言語の限界は、私の世界の限界を意味する。
5.61 論理は世界を満たし、行き渡る。世界の限界は、また論理の限界でもある。...
は、私に、「言語」というものを強烈に認識させてくれた。 「私の言語の限界」=「私の世界の限界」(5.6より)、「世界の限界」=「論理の限界」(5.61より)から、「私の言語の限界は私の論理の限界を意味する」ことになるだろう。 ということは、自分の思考の限界は自分の言語によるということになる。 だとすると、プログラミング言語も注意して選らばならないし、その使い方ひとつで、作られる「論理の塊」であるシステムの限界が規定されるということにもなる。 もし、自由度が高く、厳密(曖昧でなく)で、論理的な言語を用いれば、それによって表現される世界、つまり論理は自由度が高く、厳密で、論理的なものであるはず。 とすると、その言葉で語れる範囲が広がり、応用範囲が広がると言えるわけである。
<『論理哲学論考』はプログラミング言語の本??>
先ほど『論理哲学論考』は、ハイパーテキスト向きの本であると書いたが、内容にしても、どう見てもプログラミング、コンピュータを意識しているとしか思えない。もちろんウィトゲンシュタインの生きているときは、現在のようなコンピュータもプログラミング言語はなかったのだが。
3.323 日常言語において、同じ語が意味作用の異なったやり方で表される、つまり異なったシンボルに属することや、また異なった意味作用のやり方で表される二つの語 が命題の中で、見かけ上同じやり方で使用されることもしばしば起こる。(「ミドリはミドリ」という命題において、最初の語は人の名前で、後の方は形容詞である。これらの語は、単に異なる意味だけでなく、異なるシンボルなのである。)
3.324 このようにして、もっとも基本的な混同が簡単に生じる。(哲学の全体がこのような混同に満ちている。)
3.325 このような誤りを避けるために、異なるシンボルに対して同じ記号(sign)を使わないことや、見かけ上似ている方法により意味の異なるモードを持つ記号を使用しないことによって誤りを排除する記号言語(sign-language)を用いなければならない。つまり、論理的な文法-論理的な構文-に準拠した記号言語を使わなければならない。(フレーゲとラッセルによる概念的表記法は、このような言語であるが、全ての誤りを避けることには失敗している。)
これらの命題を読むと、この「誤りを排除する記号言語」の一つが、まさにプログラミング言語のことだと思われる。
これ以外にも、真理表(True Table: この真理表は、ウィトゲンシュタインが作ったとされる。→4.431に示されている)、NOT、OR、AND等の論理演算子(negation, logical sum, logical product etc.)、関数、命題、変数(variable)、操作(オペレーション)、連続適用(successive application:ある操作の結果に繰り返しその操作を行なうことで、「繰り返し」制御にあたる→5.2521)、対象(オブジェクト)等々、現在普通にプログラミング言語で使っている言葉がどんどん出てくる。
この『論理哲学論考』を単純な哲学書と見るだけでなく、プログラミング言語の立場から読んで見ることはなかなかおもしろい。
ただし、ウィトゲンシュタインが『論理哲学論考』の最後に、「我々が語りえぬことは、沈黙しなければならない(What we cannot speak about we must pass over in silence.)」と書いているが、実は「我々が語りえぬこと」のほうが大切なこともあることも事実だと思うし、ウィトゲンシュタインはそちらのほうを重要視していたのであろう。
<異なるシステムをつなぐための言語>
ところで、少し話を拡大し、異なるシステムとコミュニケーションを取り合うときにおける言語を考えてみよう。
企業間の電子データ交換(B2B)でのフォーキャスト情報(需要予測情報)の送受信を行なうことを考えてみる。 もちろんどのようにデータを送受信するかを規定するプロトコルは大切なことであろう。 ただし、ここではもっとビジネスよりの話を考える(B2Bの場合、システムを使って、我々はビジネスをするのだから!)。
〔言語の重要性と高い自由度〕
まず、他者とコミュニケーションを取り合うからには、言葉(会話)が必要となる。フォーキャストの例だと、何の品目の、いつのフォーキャストを、いくつ、誰に出すのかを伝えるために、双方で会話が成立するための言語が必要になる。 しかも電子データの交換をやっているうちに、品目やフォーキャスト数の桁が増えることや、項目の追加(たとえば、引き取り責任期間を明確にしたいのでとか、自社の手持ち在庫数を開示するのでとかで、新しい項目を増やす場合が考えられる)が多々ある。そのときに柔軟に対応できる自由度の高い言語が必要になる。
言語の自由度が高ければ、高いほど応用範囲が広くなり、広い限界を持つ言語は広い世界を持てるってことになる。(そういう意味で、XMLという言語には期待ができる!?)
〔言葉・コードの定義と標準化の大切さ〕
フォーキャスト数量と言っても、その値がグロス(総所要量)かネット(正味所要量)か定義を明確にしなければ、フォーキャスト数量が100といっても、パートナー間で大きな誤解が生じてしまう。 また、Week45(第45週)に200個必要といっても、第45週の月曜日に200個必要なのか、金曜日までに200個必要なのか、第45週に毎日40個ずつ必要なのか、定義を決めておかねば、これも誤解が生じてしまう。 もちろんバイヤー、サプライヤーの企業コードなどのコード類でも同じことが言える。 2社間であっても、取り決めが必要だが、これを多数の取引先の間でスムーズに電子データを流すには、「標準化」が必要になる。 つまり、ビジネスの意志伝達の架け橋となるlingua franca(共通語)のためには、「標準化」が不可欠なわけである。 自分がどんな言葉を使って話すか、どんな語彙を持っているかで、世の中が小さいものとなるか、広がっていくか決まる。
しかし、この「標準化」がいろいろな利害関係で難しく、全員の合意を得るために、仕様がどんどん膨らむということも事実。
最近、『共通XML/EDI実用化推進協議会』が、企業の規模によらない共通の電子データ交換のシステム構築と普及を目指し、発足したらしい。 プロトコルの話ばかりするのでなく、ビジネスを行なうための共通語の視点を持って議論を進めてほしいものだ。 また、日本企業も海外の工場で物を作ったり、海外の企業から物を購入したりする時代に、日本でしか通用しないビジネス・プロセス・モデルをメインに検討することは避けていただきたい。
最後は話が脱線した感があるが、言語の重要性とプログラミング言語を『論理哲学論考』をもとに考えてみた。 ウィトゲンシュタインには、別のトピックにも登場していただくことになると思う。あのアラン・チューリングもウィトゲンシュタインの講義に出席していたとのことだし…
★ 『論理哲学論考』の各命題は、D.F.Pears & B.F.McGuinnessの英語翻訳版をもとに、私が日本語に訳したものであり、内容を保証したものではない。(独語からの和訳ではない)
★ ウィトゲンシュタインの絵も、写真を見て、私が描いたものである。