オブジェクト指向と形容詞
2020/07/10
オブジェクト指向という考え方における形容詞(性質)のあり方について。
最初に、一旦「属性」と「状態」の違いを定義しておく。
属性(プロパティ):その物体に直接結びついている、生まれつきの形容詞(性質)。物体から剥ぎ取ることはできない。ReactのProps。例「私は人間だ」「私は地球生まれだ」「このりんごは赤い」
状態(ステート):ある時点で物体が持っている性質。変化しうるので1時間後もそれが成り立ってるかはわからない。ReactのState、VueのData。例「私は空腹だ」「この部屋は静かだ」「このハンバーグはいいにおいがする」
両方ひっくるめて「形容(description)」と呼ぶことにする。最初「性質」って呼んでたけどめちゃめちゃ間違えるからやめた。
ところで、あらゆる形容はシチュエーションによって状態にも属性にもなりうることに注意が必要。いろんな色のりんごを作れるソフトなら色は状態だし、Minecraftではりんごの色は変えられない属性だ。ReactやVueでも、コンポーネントの粒度によってそれが変わってくる。
これ現実世界でもあるな。いつもは属性だと思っていた国籍とか性別という形容が、ふとした瞬間に状態になりうる(移民になったり、トランスジェンダーになったり)。そういうときたまにビビる。
何が言いたいかというと、これらを「形容」としてくくってしまうことにそんなに問題はなさそうということです。
ここからはいよいよオブジェクト指向における形容の話をしていきま〜す!
理想的なUIの一覧画面において、物体と形容はまったく不可分なものとして表示される。形容はほぼ必ず物体に紐付いており、どちらかが先に出てくることはない。
現実世界において、人間の視界は一覧画面である。多種多様な物体が目の前に置かれていて、それらに対して好きなタスクを実行できる。
それぞれの物体と、その物体が持ちうる形容は、必ず一体のものとして表示されている。例えば「赤いりんご」は存在するが、「色という属性を持たないりんご」はないし、「赤いが実体はない何か」もない。赤いりんごは、どちらが先とかではなく、「赤いりんご」という、物体と形容のセットとして認知される。
ところで、人間は想像をしたり言語によるコミュニケーションをしたりするが、UIは基本見えているものしか扱わない。少なくともOOUIの文脈で出てくるのはたいてい視覚的なコミュニケーションをするインターフェイスである。
画面に表示されるUIにおいて、見えない形容は無理にでも可視化される。例えば「この文書の最終更新日時」は、現実世界の紙では状態として存在していても目には見えないが、コンピュータにおいては無理やりテキストに翻訳されて画面に表示される。
オブジェクト指向の話で形容詞と名詞の順番とかがあまり意識されないのはそのせいだと思う。「見る」というのは、物体とその状態を一度に把握する行為だからである。
しかし、人間の行為は見るだけでは済まない。そこに存在しないものを思い浮かべ、記述し、他者に伝えることも人間の行為である。
(そして、たまにそれが必要になるインターフェイスもあるのだ。音声UIです。あとこれからはBrain-Machine Interfaceも)
こんなとき、物体とその形容はどのように認知されているのか、という話が出てくる。テキストや音声でのコミュニケーションは、その言語のお作法にのっとればよろしい。でも例えば念力でコミュニケーションしたいとか、想像をそのまま書き起こしたいみたいな需要が出てきちゃったら、我々ってどうやって想像してるっけ?って話をちゃんとしないといけない。
楽しくなってきた!!!
※ここから個人差あるかもしれないので、自分は違うって人がいたら教えてほしいです
・ある程度以上複雑/抽象的な話は言語を介して想像しているな。「オブジェクト指向のインターフェイス」を言語以外の手段で想像するのはぼくには無理。これ以降の話は、言語化される前の思考、感情や衝動、プリミティブな概念の想像を扱う。
・言語化される前の思考扱うの無理な気がしてきたのでとりあえず感情とプリミティブな概念について考える。
・まず人間の認知は視覚優位だと思うので、目に見える形容はそのまま想像している。赤いりんごは赤いりんごのビジュアルを思い浮かべる。バーチャルな視覚なので赤とりんごのどっちが先とかはない。
・でも形容の単体を思い浮かべられるな。「赤」を確かに思い浮かべられる。
・形容の単体については、思い浮かべられるものとそうでないものがある。「赤い」「いいにおいがする」とかは想像できるが、「ドイツ生まれ」「石器時代の」とかは細かい別の形容にしないと想像がむずい(「金髪碧眼」とか、「ボロボロ」とか)。あと物体とは別に物語を思い浮かべる機能があって、「ドイツ生まれの人」って聞いたとき(この人はドイツから渡ってきたんだな…ドイツっていうのはあんな場所で…)という形で物語を通して想像することはできる。
ここで、今日問題になった「ぺこぺこのお腹」を正しく想像できるのかという話になってくる。
(注1:今日のは言語のコミュニケーションだから想像関係ないじゃん、という質問については、言語化前に絶対想像と認知が入ってると思っています)
(注2:「お腹ペコペコ」が定型文になってるからそんな想像してないよ、という話はごもっともだしぼくもそう思うが、一旦それ以外の可能性も考えたい)
個人的には、「お腹」を想像するのは簡単なんだけど、「ぺこぺこ」という状態はあとからついてくると思うんです。自信はないです。
お腹とその属性(ぼくの胴体にくっついている、とか)は不変なのに対し、「ぺこぺこ」は状態なのでぺこぺこなときとそうでないときがある。
だから、想像から言語に翻訳する過程で「お腹」と間違えて「頭」と言ってしまうことはないけど、「ぺこぺこ」と間違えて「パンパン」と言ってしまうことはあるようなダメだ急に自信なくなってきてしまった
わかった!!!
想像と認知の段階ではおそらく正しく「ペコペコなお腹の感覚」を認識できてる。でもそれを日本語に翻訳するときに、「お腹」から導かれる形容(状態)がいくつもあるから間違えちゃうのか。