2012年1月18日水曜日

圏論による実世界のモデル化とOOP

<2012/01/23 大幅に改訂>

情報システムのモデル部は対象とする実世界の記述である.記述は認識の上に立つから,どのようにすれば実世界を正しく認識することが出来るのか,それがまず問われる.ならば,「認識行為」とはどのようなものであると考えるのか.その問いに対し,哲学の一分野として認識論があり,長い歴史と進化がある.では,OOPはどのような認識観に立つのだろうか.あるいは,どのような認識観で説明できるのだろうか.残念ながらそのような問いに答える論述を知らない.そこで,荒いながらも拙論を述べる.なお哲学全般については,主に,熊野純彦著:西洋哲学史(岩波新書2006年)と,廣松渉著:新哲学入門(岩波新書1988年)を参考にした.

nullについて論じた前稿で,圏論を使用した.圏論では,「射」が主役である.射は,定義域domainと呼ぶ「対象」と値域codomainと呼ぶ「対象」の対で,定義域から値域へ向かう方向性を持つ.射の構成要素として指定されたこれらの「対象」は,それを単独で切り離して論じることは出来ない.単独で論じるようにみえるときにも実はその自己射(自分から自分への射)を見ることになる.

通常の素朴な集合論での集合は要素の集まりとして考えられ,その中を「のぞき込んで」要素間の関係を見ることによりその集合の特性を見る,あるいは規定する.それに対し,圏での「対象」はその中身の構成を見てその特性を論じるものではない.その特性を与えるには,外側からの観測,つまり射あるいは射の組み合わせによって行う.たとえば,ある対象 X の「要素」とは,終対象1を定義域とし,X を値域とする射であり,X の「部分」とは, X を値域とする単射monomorphismである.また,対象X の属性(property)はX を定義域とする射として与える.このように,圏論はいってみれば通常の素朴な集合論を裏返し(inside out)したものである.このことが圏論を取っつきにくいものにしているが,さらに基礎的な思考の視座を与え,実際,前掲書SFMは圏論により基礎から集合を論じている.

射は,「指差しpointing」または「眼差し」というもっとも基礎的な知的行為の抽象化であるともいえる.プログラミング技術での偉大な発明の一つであるポインタの抽象化(一般には複数ポインタのたば)でもある.あるいは「依存性」を示すものでもある.ここでいう「依存性」とは,定義域は値域があってはじめて意義を持つ,という意味での依存性である.この見方は,パースのトライアドtriadにおける第1者Firstness(値域)への第2者Secondness(定義域)の依存性になぞらえることが出来る.射は,この依存性を特定する第3者Thirdnessである.この見立てによれば,圏論はパースのトライアド概念をより洗練し,精緻化した体系であるとも言える.

前稿の圏 Set↑2↑Opの対象 X は, 認識後の段階のX1 から認識前段階のXU への射であるとした.廣松(前掲書)の用語を借用すると, X が「所知」,XU がその「所与」(最下層の純粋所与),X1 がその「所識」(最上層の所識)である.この射は,所識の要素にその「意味」を与える意味作用であるとも言える.

「認識行為」そのものを観察対象としたとき,認識者(廣松用語では「能知」)から「所知」への射であると見なせる.この場合の観察者(つまりメタの認識者)から見ると,この「能知」は「所知」のひとつにみなされ,圏 Set↑2↑Opの対象のひとつとされる.この構図は,観察者(認識者)が対象化され,他の所知と対等化されている.ここで,所知の「認識前」「認識後」段階でいう「認識」とは対象化された能知による「認識」ではなく,この構図をもって認識行為を観察するものの「認識」である.このように,認識行為そのものを所知の圏 Set↑2↑Opに組み込むことには無理がある.認識行為を明確にモデル化するためには,能知を対象とする圏( R とする)から所知を対象とする圏( K とする)への関手functorを対象とする圏 K↑R を考えなければならない.簡単に言えば,圏 K の対象である所知を能知でパラメータ化する,ということである.以降,所知は能知 r でパラメータ化され,X(r)のように表すことにする.所識から所与への射 ξ もパラメータ化され,ξ(r) で表す.このような r は一般には認識基点(point of reference)であり,「いつ,どこで,誰が,なぜ,どのように」認識しているのか,その基点を示す.

能知圏から所知圏への関手は,フッサールの用語を借りるならば「ノエシス」に相当すると考える.おなじく「ノエマ」は所知,つまり,所識から所与への射に相当すると考える.ノエマが能知 r に依存することはノエマがξ(r) と表されることで示される.

能知のおかれた外界(実世界)」は能知を取り巻く外壁に例えられる.そこへサーチライト(ノエシス)が当てられる.光が当たったスポット(所知)のなかに見られるもの(認識されたもの)が所識で,それに対応して,外壁の裏面に所与が想定される.所与は,ありのまま(もの自体)の世界の一部である.もしこれが見えるのであれば,それは認識されたものだから,定義からしてこれは見えない.能知は外壁に囲まれたなかにいて,見えるものはその外側のなにかに対応しているはずだという意識(想定)があってもそれを見ることは出来ない.プラトン流にいえば,洞窟のなかにいて外が見えず(所与),しかし,その外にあるものの影のみが見える(所識),という構図である.

この認識構図において重要な前提が組み込まれている.まず,能知に関係なく,所知の所与面として共通の唯一の外界(外壁の外側)が前提されること.次にそれが認識者の志向(ノエシス)によって部分的に切り出される,ということ.認識者が外界としてそれぞれ全く異なる宇宙を認識対象とすることを認めるならば,それぞれが全く別の独立した状況設定になり,考察対象が統一されないから,能知に関係なく外界は同一,そして唯一であるという前提が必要である.従って,所知X(r) は所識のみ r に依存し,X1(r)からXUへの射ξ(r) として表される.また,志向性によってその対象領域は限られ,外界の一部が切り出される.その切り出された外界が所与であり,認識結果が所識である.OOPのクラスについて論じるとき,この分析が不可欠であることは,nullについて論じた前稿が示唆している.また,外界で一つのもの(たとえばある個人)を示す表記はユニークでなければならない,といったプログラミングの鉄則の根拠もここから生じる.

あらためて,OOPのクラスを考える.クラスというのは単なるものの集まりでもなく,また似たもの同士を集めた素朴な類でもない.情報システムを構築する関係者(stakeholders)の合意という能知の上でなりたつ関心事(所知)についての記述を与えるものである.実際,まつもとゆきひろは,クラスは関心の対象であるとしている.関心事は所与(想定される実世界の部分)とそれへの対応付けが行われる所識の二重構造を持つ.記号化され,記録されるのは所識の部分のみであるが,その裏には唯一の外界(実世界)があって,それに対する何らかの対応によって裏打ちされる,という想定の下で,クラス記述が作られる.所知は圏対象であるから,他の圏対象への関連(つまり属性射)によってのみその特性が与えられる.これがクラスの属性(メソッド)である.

サブクラス(部分クラス)はその上位クラスの「部分」と見なせるだろうか.つまり,下位クラスから上位クラスへの部分射(単射)があるだろうか.前稿のクラスの継承で述べた下位クラスの定義によれば,下位クラスから上位クラスへの射は必ずしも部分射にならない.OOP論でしばしばサブクラスを部分集合のように述べられることがあるが,それは誤った思い込みである.この問題は実体の誕生(Create作用に対応)と消滅(Delete作用)のモデル化で表面化するが,作用actionについては後述.

属性射を p とし,定義域 D から 値域 への射とする.射の値とは の「要素」であり,の要素 x の射 による値は, px である.px が C の完全メンバーならばそれは C の「要素」と言えるが,部分メンバーならば null (不明)とされる.から1への射を とし,その1からへの射を としたとき,px = cD となる c があれば,射 は 定義域 の要素に関係なく一定であるから,c は「一定constant」であり,これを定数値という.定数値はそれに対応する実世界の唯一の何かに対応する D の「要素」である.属性射の値としてこのような c が与えられなければ,さらにその属性を辿ることになるが,それはちょうどポインタを次々とたどるたらい回しのようなものである.それを止めるのが定数値である.既述のように,定数値の表記はリテラルとされる.それに対し,変数値は,これも既述のように,しばしば代理識別子で表記され,それがポインタの役割を演じる.

上述の認識構図から見た間主観性と情報システム開発について述べたい.認識者は個体として全く別物であるから,同じもの(つまり所知の所与面)を見てもその認識(つまり所知の所識面)は異なるはず(前述で述べたように所識は能知 r に依存する)で,にも拘わらず,認識に基づく記述を通して相互理解が出来るのはなぜか.これが間主観性の問題である.間主観性を持つためには,所知の所与面の共有(という想定)が認識行為の基盤として不可欠である.情報システムの構築と運用において,システムの関係者(stakeholder)がそのシステム(所知)の能知になるから,関係者どうしにおける相互理解の重要性がこの構図のなかでこうして指摘することが出来る.関係者間の構造については能知圏の射について論じることになるが,これは認識社会学とでも呼ぶべき分野の問題であろう.

以下,蛇足ながら哲学談義

「見える」は言うまでもなく「認識できる,される」の喩えであり,当然ながら,実際に見えるものや観察できるものだけが実世界の要素とされるものではない.

「宇宙の始まりがビッグバンならば,その前の宇宙はどうなっていたのか?」.素朴だが重要な問いである.ここで述べた立場からの答えは,「それが分かればその分かったところがビッグバンより先の宇宙である」.つまり,宇宙という所知の所識面が拡大されたと言うこと.「宇宙の外側は?」という問いも同様である.

認識(知ること)の本質について,すでに2500年もまえに,孔子は「知るを知ると為し,知らざるを知らざると為す.これ知るなり」と見抜いている.


所与となる実世界とは,カントがもの自体の世界とし,ヴィトゲンシュタインが「語れぬもの」といい,フッサールが括弧に入れるべきもの(超越)としたものである.彼らよりずっと前に,孔子が「知らざるもの」といい,プラトンが「イデア」と呼んだ見られる対象そのもの(前掲の熊野著「西洋哲学史ー古代から中世へ」 p.78以下参照)であり,それ自体は見えないとしたものである.
仏教で言う「空」もまた「所与」つまり認識以前の認識対象(ありのままの自然)のことである.認識以前のなにかであるから,それについて語ることは出来ず,従って,有とも無とも言えない.有識論では所識を分析し,5階層に分けて五蘊としている.上段は下段からの情報を受け,それを処理して下段にフィードバックする多段ループ構成を取ると考えられる.最下段の「色」は末端の感覚器により所与である「空」から情報を受け,フィードバック調整をしつつ,空を地と図に分けるもっとも基本的な作業(分節)を行う.「受」は分節された世界認識に対応する物理的なセンサー入力とその処理,「想」は図のモデル(概念)への対応付けとその学習,「行」は概念化された認識外界への働きかけとその学習,そして,最上段の「識」は全体の総合判断と制御と総合学習,ということになるだろうか.まるでロボットアーキテクチャを的確に示しているかのようだ.有識論はこのように分析したあげく,結局,空即是色,色即是空として,各段階の物象化(こだわり)を否定し,戒めている.


リアルな実世界を所与としたとき,それは,実は洋の東西を問わずずっと昔から,認識以前の純粋な理念(イデア,ないし,空)とされてきた.いわば外在(実世界)を内在化する(認識観のなかで位置づける)ことにより,世界をなんとか言語化して理解しようとしてきたのだ.

廣松の前掲書では「三項図式」を自論を展開するための仮想敵国として繰り返し批判している.しかし,この三項図式は認識過程を3段の階層に分けるというもので,パースのいうトライアドの三項図式とは似て非なるものである.しかも実際に非難しているのは,3段構成の各段の物象化である.また,所与ー所識の対をレア—ルーイデアールな構造成態(?)といっている(p.60)が,おそらく所与が所識より実世界(リアル)よりにあることを言いたいのであって,実際,最下層の純粋所与は「覚知されない」つまり,認識以前のものとされる.

ソシュールの<シニファン,シニフィエ>対も同様に,実は三項図式であって,両者をつなぐ第3者が明示されないのはそれ以上の考察の対象にされないからだろう.それに対しフレーゲの記号論では,第3者が明示され,しかもSinnとBedeutungの区別が提起されている.SinnとBedeutungを射とみなし,射である第3者をこのふたつの射の合成であると見なすと,それにまつわる様々な議論(たとえば,Wikipediaの記事)がかなりわかりやすくなる.その議論の一つにならい,Sinnをintension(内包),Bedeutungをdenotation(外延)と言い換えてみよう.プログラムの「意味」を論じる外延意味論(denotational semantics)では,intensionが(所識の表記としての)プログラムから標準ラムダ式への射,denotationが標準ラムダ式から連続束(という数学的空間)への射であるとし,その合成がプログラムの「意味」であるとする.そして,自然言語の意味論であるモンタギューの内包意味論(intensional semantics)は,(所識の表記としての)自然言語を標準ラムダ式に変換する射(intension)を「意味」としている.それぞれの命名者がこのような語法を意識したのかどうか分からないが,関連が全く無いわけではないだろう.
固有名詞問題(たとえば,Wikipediaの記事参照)も,圏論にのせて考えると理解しやすい.要するに固有名詞の名前は上述の定数射で,所知の1要素を指定する.

観察者(認識者,能知)が対象化され,他の所知と対等化される状況を示す例として,ベラスケスの名画Las Meninasがある,この絵を描くベラスケスの認識の結果の記述がこの絵であるから,王女など登場人物や背景は当然,描くベラスケスの認識結果を表すもので,絵の中のベラスケスによる認識結果ではない.では,描かれたベラスケスは一体なになのだろうか.自分自身を(外から)観察し認識することは出来ないから,この絵を描くベラスケスが想定した(つまり実際にはいま目にしていない)自分を強引に描き込んでいる.つまり,この絵全体が,実際にいま見ている状況の認識結果を描いているのではなく,ある絵を描いている自分を含む状況全体を想定してそれを描いている,ということになる.このように考えると,絵の中で裏側しか見えないキャンバスに描かれているのは,ポーズをとっている中央の王女か.絵の中の鏡に映る国王夫妻か,あるいはそのいずれでもないのか,様々な憶測が成り立つ.しかし,ベラスケスとそのキャンバス以外の登場人物や背景ではないことは確かである.なぜなら,この絵全体がこの絵を描くベラスケス自身の認識結果であり,したがって描かれているものすべてがベラスケス自身(真の能知)の所識であって,絵のなかのベラスケスの所識ではないからである.この認識構図を正確にモデル化するためには,上述のように,能知の圏から所知の圏への関手による圏を考えなければならない.

廣松(前掲書p.94)が「『能知者がそれ以上の能識者として』覚知する能知の側の二肢的二重性」というのは,自分を描くベラスケスが,描く自分をどう認識していたのか,その状況を示すものだろう.つまり,自分自身を観察の対象として所知の一つと見なし,その所識を能識と呼んだのであろう.

0 件のコメント:

コメントを投稿