■ ふと思った
「日本一のランナー」と呼ぶか「世界大会最下位のランナー」と呼ぶかで、(たとえ同じ人のことであったとしても)その意味はまったく『異なる』と言う。
一方、「AはBにみかんをあげた」と「BはAにみかんをもらった」という2つの文は『同じ』意味だと言う。
ここで、「異なる」と言われた場合の『意味』と「同じ」と言われた場合の『意味』はそれぞれ同じことをイミしているのだろうか。
ぼかしても仕方ないので、書くと、前者の『意味』はときに『意義』sense(内包)と呼ばれ、後者の『意味』はときに『指示』reference(外延)と呼ばれる*1。「宵の明星」と「明けの明星」は外延(指示対象)は同じ(金星)だが、その内包(意義)は異なると言ったりする。外延は比較的定義しやすい。
もしも「日本一のランナー」と「世界大会最下位のランナー」という表現が同じ外延/指示対象を持つならば、つまり、同じ人物のことを指しているならば、
昨日xに会った。
という文のxの部分にどちらの語を代入しても、文全体の外延的意味は変わらない。これによって「外延的意味」を文の場合にも拡張できる。
つまり==という記号を「外延的意味が等しい」というイミで使うならば、
A,Bがそれぞれ指示表現であり、同じ指示対象を持つならば、 A==B
一方 X==Yならば S_X==S_Y (ただしS_X,S_Yは同じ文の同じ部分をそれぞれX,Yで置き換えたものであり、ともに文法的に適格な文であるものとする)。
ちなみにこれは、わたしが今適当に書いてみただけのいい加減な定義だが、もっとブラッシュアップすること自体は可能だろう。この定義によいところがあるとすれば、一応再帰的な定義になっているので、有限のルールだけを使って、無限のケースをカバーしているところである。
一方、「日本一のランナーに会った」と「世界大会最下位のランナーに会った」という2つの文に何か違いがあるのだとすれば、それは内包的意味の違いであるとされる。
以上は単に『外延的意味』と『内包的意味』という2つの語を定義しただけの話だから、ここで疑いをはさむのはヘンな話だと思う。しかし、どこかにねじくれたものを感じる*2。
問題は、「内包的意味」というものを説明するにあたって、どうしても「内包的意味が同じ場合」ではなく「内包的意味が異なる場合」を参照してしまいたくなることだ。
日常的に「意味が同じ」という形で『意味』という概念を使うとき、対象となるのは、ほぼ外延的意味であるように思われる。日常会話で「内包的意味が異なる」といった趣旨の発言をしているところは想像できるが、「内包的意味が同じ」というのはどんな場合であるかが想像できない*3。
しかし、同一性の条件すらもうまく規定できないならば、「内包的意味」という概念はほとんど役に立たないのではないだろうか。じゃあ内包なんか無いのかというとやっぱりそういうわけでもないし、考えていたらだんだんわけがわからなくなってきた。
外延は「値の同一性」、内包は「個体の同一性」を指しているのだとすればどうだろう。
つまり、
「日本一のランナーに会った。」
「世界大会最下位のランナーに会った。」
というそれぞれの発話を、それぞれ新しい表現を生み出すものとして考える。外延的意味によって比較されるのは、それぞれの表現に属する「値」のみであり、個体としての同一性までは問われない。
擬似的な言語を使って表現すれば、
a = new Expression(); a.reference = ...; b = new Expression(); b.reference = ...;
と解釈する。
a,bは表現クラスに属する別々の個体である。
しかしExpressionは、referenceというプロパティの値によって比較されるので、
このとき
a == b #=> true
となる。
一方、内包的意味が等しいことを===という記号で表現しよう。
a,bは同じ値を持つが、異なった個体(オブジェクト)なので、
a === b #=> false
じゃあ、内包的意味が同じ表現をつくるにはどうすればよいかと言うと「代入」すればよい。
「昨日日本一のランナーに会った。」
「その『日本一のランナー』って表現はなかなかいいね。」
「その『日本一のランナー』って表現」の部分は、「日本一のランナー」という前の発言の引用である。
従って「その『日本一のランナー』って表現」という部分をcとすれば、cが参照する値とaは内包的意味を等しくする(なぜならばcが参照する値はa自身だからである)。
c = a; a === c: #=> true
しかし正確に言えば、cはaと「表現として同一」であるわけではない。cが引用表現として参照する値がa自身であるためa===cとなるのである。
ところがこの際、コンピュータ言語の実装としてならばともかく、自然言語のモデルとして考えるならば、引用表現であるcが表現オブジェクトではないというのは一貫性に欠ける。従ってcを「変数」として特別扱いするのは止め、aをreferenceとして持つ表現と考えよう。
つまり以下のようになる。
c = new Quote(); #QuoteはExpresionのサブクラス c.reference = a;
このとき、cはa自身とは異なる個体であるため a===c は偽となる。
一方
c.reference === a
これはtrueを返す。
つまり、「内包的意味が等しい2つの異なった表現があるか」という問いは、「自然言語に変数はあるか」という別の問いによって置き換えられる...のか。一方「変数」とは何かと言えば「つねに評価された後である記号」のことであり、われわれが変数に出会うのは変数に代入する場合(左辺値としての変数)であるか、すでに評価され値に姿を変えた場合(右辺値としての変数)であり、「変数そのもの」を精査する機会が訪れることはない。従ってあらゆる表現はオブジェクトとして固有の位置を持つにもかかわらず、変数にはそれがない。唯一変数だけが純粋な記号である。そういえばある哲学者は(ある哲学者といえばウィトゲンシュタインのことに決まっているわけだが)、「対象」という謎の概念をさんざん駆使したあげく「対象とは変数(変項)のことである」と吐き捨てたのではなかっただろうか。
しかしLispにはquoteがあるので、Lisp的な世界でのみ、われわれは純粋な記号そして純粋な対象に出会うことができる。問題は自然言語がLispであるかどうかだが、コンピュータ言語CであってもLispであっても原理的に同じプログラムを書くことが可能であるならば言語の違いとは結局、内包的意味の違いにすぎず、再び最初の問いに戻らなければならない...のか。
...何を言ってるのかわからないので、この辺でやめる。
- *1: 個人的には内包的意味のことを「意義」と訳すのはあまり好きではないし、「内包」とか「外延」などというイミのわからない語も好きではない(そもそもこういう言語論的な文脈における「内包」とか「外延」という語の使い方は、この2語の本来のイミとも違うようだし)。本当は前者を「意味」、後者を「指示」とでも訳したいところだが、「意味」という語は「内包」と「外延」の両方をまとめたものに対して使いたいので、結局「内包的意味」「外延的意味」という語を使う
- *2: 自分で定義しておいて疑問を差しはさむのはヘンだが、自分のなかの複数の直観の間に齟齬があるのでこういう書き方になってます。要するに思考過程をメモしているだけなので気にしないでください。
- *3: しいて言えば「ニュアンスがぴったり」という場合だろうが、万人の間で「ニュアンスがぴったり」が一致することなんてあるだろうか
トラックバック(0)
このブログ記事を参照しているブログ一覧: 雑記2008年1月9日(水)
このブログ記事に対するトラックバックURL: http://www.at-akada.org/mt/mt-tb.cgi/870
コメントする