問題提起
そこそこ有名な「自然言語にwell-definedを求めるな。」という文がある。 X (ex-Twitter) ではこの文に様々な意見がついている。
この文の形式(=つまり文そのもの)について議論することは一定程度可能だと思う。 しかしこの文の意味する主張の妥当性についてあなたが議論しようとするとき、私はあなたが正しくこの文を解釈できているのか問いたい。 文の中には文脈(context)、違う言い方をすればその文を取り巻く環境(environment)への明示的・暗黙的な参照(reference)が散りばめられており、文章を解釈するためにはこれを正しく参照解決(dereference)してやらねばならない。
あなたはこの文が発せられた当初のコンテキストを、あるいはその出来事を記憶している人々が発するこの言葉のコンテキストを調べずにこの文の意味を断定しようとはしていないか?その状態で解釈された文の意味は字義通り全くナンセンスである可能性がある。ナンセンスを以って意味解釈したと主張するのは全く誠実ではない。 たしかに文は文だけを見ていれば分かる。しかし文の意味は文だけを見ていてわかるとは限らない。
私はうっかりこの文の意味に対してネットで意見を言いたくなってしまった。 誠実な人間であるために、この文の意味を解釈するための文脈を探しに行かねばならない。
ネット上での初出時
Xにおいて 「自然言語 well-defined until: XXXX-XX-XX」で日付を変えながら検索を掛けていく。するとこの文は2016年7月頃がX上での初出なようだとわかる。 さらに2016年12月にはこの文に対する言及が一気に増加している。
どうやらトイレの張り紙に書かれている落書きが面白がられていたようであり、その内容は以下のようなものであった。
- 張り紙
- トイレの紙以外を便器に流さぬように命令するもの
- それに対して付く複数の落書き
- 大便を流せないのは困るという主張
- 大便は流すようにという指示
- 小便はどうなのかという問い
- 「自然言語にwell-definedを求めるな」という件の文
この文自体はこの時期より前に誰かが口にした文かもしれないが、少なくともネットで広まったのはこのあたりからなようであった。
張り紙から読み取れるこの文の文脈と文意
文脈から察するに、この文はユーモアとして書かれている。 ユーモアの内容としては以下のとおりである
1. 掲示に対して、あえてぎこちない意味解釈をした結果に基づく誤った内容の命令に基づき、それへの不満を言う者が現れる 冗談の文脈における粗忽な人物の役周りでもあるし、あるいはなんらかの規則から少しも融通を利かせられない杓子定規な人物を演じている 2. それに対して、問答があり、さらに新たに粗忽な人物が現れる 3. このようなお茶面なやり取りに対し、唐突に「自然言語に well definedを求めるな」というツッコミが入る おそらくは「自然言語の解釈が一意に定まると思うな」の意味のツッコミである さらに、その内容が下ネタの冗談の文脈に似つかわしくないやけに学術然とした語彙を用いて主張されているところにおかしみがある
冗談の下げとして敢えてawkwardな用語法で「自然言語の意味解釈が一意に定まると思うな」と言っているわけである。
まだまだ背景調査をやめてはいけない
ここで調査をやめては問屋が卸さない。
通常、冗談が成立するには冗談を述べた物とそれを聞くものとの間でおかしみのポイントが共有できていなければならない。 「自然言語に well defined を求めるな」の「自然言語」と「well defined」は awkwardnessを掻き立てるための単語チョイスである。しかし「自然言語」と「well-defined」はいささか平均的な市民を聴衆に想定して笑いが取れるにはあまりにも世間に流通していない言葉ではなかろうか。この張り紙が張られている場所や、あるいは最初にバズが広まった人々は、この言葉を使っておかしみの共有が可能なコミュニティなのではなかろうか。
場所や集団についての負荷情報を得るためにさらなる検索をする。 「トイレ 張り紙 well-defined」などでgoogle 検索を行うと、この張り紙は京都大学理学研究科6号館のトイレに貼ってあったという情報がいくつか見つかる。 そこで当該の施設の情報を公式webページで確認してみると、化学系と数学系の学生がいる建物だということが分かった。 このうち「自然言語」や「well-defined」などという言葉を頻用するのは数学系の学生の方であろう。 とすると、当該の文は数学系の京大学生が学舎の中のトイレの張り紙に内輪ネタのいたずらとして書いた冗談である可能性が高い。
しかし、そんな些細なサイドストーリーを細かくほじくり返すことが文意の考察に活きることなどあるのだろうか?
ある。
ぎこちなさ部分の考察
この冗談はそこが数学科のトイレであるということをおかしみの舞台装置として活用しているのではないだろうかと考えることができる。
「なんらかの規則から少しも融通を利かせられない杓子定規な人物を演じる」ことのリアリティとして、日常の文意解釈においてまで公理主義を内面化した架空の数学徒が想定できる。 「下の冗談の文脈に似つかわしくないやけに学術然とした語彙を用いてツッコまれる」ことに対しても、そこが理論系の研究施設であるということ背景を踏まえたネタかもしれない。
書き手はここら辺のおかしみを最大限伝える目的1で、「「自然言語」に「well-defined」を求めるな」という、自分で思いついたか、あるいは既に耳にしていたこの文をここに書きつけたのだろう。
単語の意味を「数学科」の文脈で推測する
さらに、選択されたぎこちない単語についても見ていきたい。
「自然言語」
「自然言語」という言葉に皆さんは聞きなじみがどれくらいあるだろうか?日常生活ではあまり聞かれない言葉である。というのも、通常単に「言語」といえば我々が話す日本語や英語のような言葉のほかは中々なく、「言語」という言葉にことさらに修飾を必要としないからである。 あえて「自然言語」という言葉を使う必要があるのは日常の意味ではない「言語」が出てくるコミュニティだ。
そのようなコミュニティの一つにはIT界隈がある。IT界隈ではプログラムを書くときに「プログラミング言語」を用いる。プログラムだけではなく、幅広くデータを定義するための言語をまとめて「工学言語」「人工言語」などと呼ぶ向きもある。ここら辺の対概念として、日本語や英語などを「自然言語」と呼ぶことがある。
別のコミュニティとしては創作言語界隈がある。これは創作物として人が話すような言語を作る趣味であり、有名どころだとトールキンの「指輪物語」という架空の世界を舞台とした小説がある。「指輪物語」には架空の種族、架空の地域、架空の歴史、架空の神話と共に架空の言語が出てくる。日本語圏で言語創作活動をする人の中には、創作者が考案した言語を「人工言語」と呼び、その対概念として日本語や英語などを「自然言語」と呼ぶ人もいる。
数学コミュニティにおいても「自然」とわざわざ修飾を付けたくなる理由がある。
数学では数式なども「言語」と呼びうるのだ。 5+4
や sin(x) + 6 * 7
などの数式を言語、特に文法や文の意味が人間により明確に明文定義されている言語という意味で「人工言語」「形式言語」などという。この対概念としてやはり日本語や英語などを「自然言語」と呼ぶ。
このうち、数式やプログラミング言語、形式論理学などの「人工言語」は一定程度通ずるところがある。
件の冗談が数学科文化圏内で放たれたのだとすれば、「自然言語にwell definedを求めるな」の「自然言語」というawkwardな言葉遣いは、「形式言語ではなく、自然言語の方に」という対比の含みを持ちうるわけである。
「well-defined」
もう一方の珍奇な言葉である「well-defined」も数学でよく使われる概念である。 字面通り読めば「うまく定義されている」だが、数学ではさらに限定して以下のようないくつかのシーンでよく使われる。
「well-defined」の使われるシーン1
x
と書き表される値と、 y
と書き表される値が集合Aに属している。実はx
とy
は同じ値である。(同じ値だが、書き方が複数通りある。)
いま、 A
を定義域とする写像f
を定義しようとしている。横着をして、A
の値のなんらかの表記上の特徴に基づいて写像f
を定義するつもりだ。
しかしちょっと考えてほしい。もし字面上x
とy
が異なるからと言って、f(x)
とf(y)
が異なる値になってしまったりはしないだろうか?
x
とy
は同じ値なのだから、f(x)
とf(y)
が違う値であるのだとしたらそんなf
は定義からしてぶっ壊れている。2 この状態を ill-defined と呼ぶ。
対して同じ値の表記違いについてはfが同じ値を返してくればこの状態を well-defined と呼ぶ。
ちょっとわかりづらいので具体例を挙げる。
自然数を下一桁だけに注目してグループ分けしたいとする。
たとえば下一桁が3の自然数だけ集めたい。{3, 13, 23, 33, 64413, 618698638663, ... }
などなどである。こういう集合を短く書くのに便利な書き表し方が欲しい。そこである自然数 n
に対して、 n
の下一桁と同じ下一桁を持つ自然数全体の集合を 〆n
と表すことにする。例えば 〆27
というのは 7
や 47
や 78975987249564378697
などが属している集合である。
このような集合に対してさらに変形を加えるような関数 g
を定義したくなったとする。
g
は、 〆n
を 〆(nを4で割ったあまり)
に変換する。
たとえば g(〆7) = 〆3
であり g(〆9) = 〆1
である。
明快でわかりやすい関数定義...かと思いきや、これは関数になっていない。
上の定義に従うとg(〆5) = 〆1
であり、なおかつ g(〆15) = 〆3
である。
〆n
の定義からして、〆5
は「下一桁が5と同じ自然数の集合」である。また 〆15
は「下一桁が、15の下一桁と同じになる自然数の集合」であるが、15の下一桁は5であるから結局 〆5
と同じく「下一桁が5と同じ自然数の集合」なのである。
一方〆1
と〆3
は当然異なる。
〆5 = 〆15
なのに、 g(〆5) ≠ g(〆15)
になっているようではgは関数とはみなせない訳だ。
このような状況の時に関係gは関数としてwell-definedではなかったと表現される。
「well-defined」の使われるシーン2
関数fを、自然数に対して、下一桁目が最初の数の下一桁と一致するまで1回以上2倍していき、一致したときの数を返す関数として定義する。
たとえば f(4)
の場合、 4 -> 8 -> 16 -> 32 -> 64 となり、 64の下一桁は4と一致するので f(4) = 64
である。
... と、これも実は関数として定義できていない。
f(5)
の場合、 5 -> 10 -> 20 ->40 -> 80 -> 160 -> 320 -> 640 -> 1280 -> ... となり、下一桁が5に戻ってくることは二度とない。
このような場合も well-definedではない。
「自然言語」と「well-defined」のつながりは?
数学界隈における自然概念の対概念となる「形式言語」の方では、「文法の形式的定義」と「意味の形式的定義」が行われるという話をした。形式言語・形式意味論周りの議論ではよくwell-definednessの検証が行われる(例)。
文とはいわば意味に対する表記法である。 形式言語理論では、ある言語の文を違う言語の文に翻訳したり、ある文をもとに違う文を生成して、意味上での齟齬が発生しないようにするところに関心が置かれることがある。 つまり実際の値(=意味)を気にしつつ表記法(=文)に対する操作を施したり、文を解釈した結果値が存在しないことなどに気を払う機会が多いのかもしれない。
この点を踏まえると、「自然言語にwell-definedを求めるな」は、想像しうる複数の意味のうち「形式言語のwell-definedness議論」との対比としての「自然言語」とみなすのが一番自然じゃなかろうか。 既存の形式言語は、意味についてより議論しやすい別言語への変形だったり、その文が成立しうる世界の状況の集合を定義することだったりによる意味定義がきちんと定まるように気を遣われて、なおかつ文法や語義も数学操作による形式的な明文定義を Single Source of Truth として作られている。
一方、自然言語においては、語義や文意というのは誰かが明文的に形式的に定義してその明文規則を改定するまでは一切揺るがない、というものではない。多くの人々の普段の語用の積み重ねの結果少しづつ意味の合意が変わっていくこともある。 辞書による定義もその状態の語義や文意を使って相互参照により定義されているのであるから既存の形式言語・形式意味論的なwell-definednessとはどだい異なる。 不磨の大典を引っ張り出しそこから項書き換え的に形式的式変形をしていくと、与えられた文章の意味がどれか一つのmathematical objectに参照透過的に定まるという世界ではない。
翻って杓子定規にぎこちない意味解釈にこだわるネタを見るに、「自然言語にwell-definedを求めるな」というツッコミが成立するわけである。
以上の話を踏まえた「自然言語にwell-definedを求めるな」の最終的な文脈
- ここは数学科である
- 掲示に対して、あえてぎこちない意味解釈をした結果に基づく誤った内容の命令に基づき、それへの不満を言う者が現れる
- 冗談の文脈における粗忽な人物の役周りでもあるし、あるいはなんらかの規則から少しも融通を利かせられない杓子定規な人物を演じている
- これは研究対象である公理主義的な学問を私生活にも過剰に援用したデフォルメされた数学徒キャラである。
- 冗談の文脈における粗忽な人物の役周りでもあるし、あるいはなんらかの規則から少しも融通を利かせられない杓子定規な人物を演じている
- それに対して問答があり、さらに新たに粗忽な人物が現れる
- このようなお茶面なやり取りに対し、唐突に「自然言語に well definedを求めるな」というツッコミが入る
まとめ
文脈把握大事
ここまで書いてすっかり疲れてしまった。 上で書いた内容のうち、どこまでが文脈に属するところで、どこからが文意に属するところかを峻別する労苦を払う元気はもうない。 ただ、この文脈なしで「自然言語にwell-definedを求めるな」という文を読んだところで、少なくともオリジナルと同じ文意を込めて主張している人々の文意を理解することが一体どれほどできるというのであろうかという問いを持っている。「自然言語」が「何でないもの」として定義された語なのかは多義だし、「well-defined」がどういう意味に定義された語なのかだって数学側の事情を知らないと掴みにくかろうし、「自然言語にwell-definedを求める」の意味だってこれが形式言語の意味論との対比だと気づかなければ明後日の方向に解釈してしまうのではなかろうか。
ここら辺の文脈は部外者の僕がちょっと調べてわかるような話であったから、これに言及している人の間では少なくとも文脈としてはある程度知られているものだと思っていた。しかし、Xを見漁った感じここの経緯を調べずに、ただこの20文字程度のみを睨みつけることによって、これを述べた人々が何を意味していたのかを浮かび上がらせようとしていそうな人も多かった。
文が何かであるか、なんのために人々が文を表明するかについてはいろいろな観点がありそうだが、少なくとも他人が意味を伝達するために文を発する局面では、意味があり、その文を発する動機があり、人の営みや思考・感情・行動・出来事と分かちがたい領域もあるはずだ。 そこを敢えて扱わず問題をシンプルに保つという取り組みもあると思うが、何を扱わないことに決めて理想化・モデル化・脱現実化したのかは意識の中においておく、つまり、その点において自分の考察は現実とずれうる余地があるのだということを覚えつつ作業を進めていく必要はありそうだ。
みんなどんどん文脈解説を書こう
僕がこの記事で書いた話はこの話に言及している人は全員知っていると思っている人もいるかもしれない。 ところがどっこい、案外そうでもない。 自分にとって興味がないところだったり、どうでもいいところだったりする箇所に対して人間はどうしても適当な調査しかせず、その結果全然的外れなことを言ったり、よくない手を打ってしまったりしがちだ。 自分が興味ある事は他の人が全然興味なくて調べてないことだったりするんだから、自分たちの領域を守るためにも、世間の人たちを助けるためにも、積極的にいろんな解説を書いていこう。
- 「目的で」とか「意図で」というのは大袈裟な言い方かもしれない。「ここら辺の知識があることで自動思考が走って表現のpreference順位が定まりこの文が算出された。」くらいであったらまああり得た話であろうと思っており、それをどれだけ脳内で言語化してどれくらい意識的に文を産出したかについては特に強い推定の意図はない。 Xのこのスレッドで違う出来事への感想を述べているときにこの記事のこの箇所の表現にdisclaimerをつけたくなった。↩
- もう少ししっかりした物言いが聴きたい方は Wikipediaの「関数」の形式的定義)を参照されたい。↩