2021年 9月 1日 「11.1.1 計算可能性 (computable)」 を読む >> 目次に もどる


 「計算可能性」 とは、或る関数において、或る手続き (アルゴリズム) が存在していて、その計算手続きを有限回実施すれば関数の アウトプット が機械的に有限時間内で もとめることができる、ということです。単純に言えば、いくつかの記号を入力して或る文法 (規約) に沿って演算すれば、なんらかの アウトプット が得られるということです──コンピュータが普及した現代では、「計算可能性」 は当たり前のように思われるのですが、歴史的に観れば、この 「計算可能性」 が ゲーデル 数 (現代の コンパイラー に相当する係数)・チューリング・マシーン (概念的 プログラム) そして フォン・ノイマン の (プログラム 内蔵の) 計算機へと具体化されてきたのです。ゲーデル 氏の 「不完全性定理」 が起点になって、原始帰納的関数が数学者たちのあいだで論じられて いくつかの関数が提示されて、それらの関数が一般帰納的関数として合意されました。「計算可能性」 は一般帰納的関数と同値であることが証明されました。それらの一般化した計算可能関数のなかで有名なのが チューリング 氏が提示した計算可能関数です。チューリング 氏は、計算可能性を定式化するために、概念的な計算機械を考えました、これが チューリング・マシーン です。チューリング・マシーン は、現代の コンピュータ そのものではなくて、プログラム に相当するのですが、チューリング・マシーン を いくつか組み込んで 「万能 チューリング・マシーン」 を構成することができます──これが コンピュータ に相当します。この辺の話は、理系の学生であれば大学・大学院で学んでいることでしょうし、理系の学生ではなくても、チューリング 氏に興味を抱いて彼についての伝記を読んだことのある人であれば知っている話でしょう。いわゆる 「数学基礎論 (ゲーデル 氏以後の現代集合論)」 は、コンピュータ の故郷であって、システム・エンジニア や プログラマ の職場を作った学問です。

 モデル TM は、コッド 関係 モデル を起点にして作られました。TM の体系が いったん整ったあとで、さらに 私は 「数学基礎論」 を学習して源流まで遡って その思想・技術 (の基本) を学んで、TM に改良を加えてきました。今の TM3.0 (バージョン 3.0) は、「計算可能性」 を強く意識して徹底的に構文論を重視した体系になっています──モデル 作成では、「構文論が先で、意味論は後」 という接近法を私は全面に打ち出しています。しかし、データベース 領域では、いわゆる 「概念設計」 という手順が 「論理設計」 に先行して設けられていて、「概念設計」 では意味論が重視されているのが現状です──私は、この手順に対して大いに不満を抱いています。意味論が過度に重視されているがゆえに、システム 化する ビジネス について、システム・エンジニア たちが それぞれ 勝手な 「解釈」 を持ち込んで、その恣意的な 「解釈」 で作成した (ビジネス の) 構成図を モデル というふうに自称している。「モデル である」 ということは 「...の条件を満たす」 ということと同値です、そして 「...の条件を満たす」 ということは論理的な 「前提および制約束縛」 を遵守しているということです。実際に営まれている ビジネス は、一人の システム・エンジニア の価値観 (「解釈」) で揺らぐような構造ではない。ビジネス が記号化 (ことば を使っての表現) されていれば、それらの記号を 「項 (term)」 とすれば、なんらかの アルゴリズム が構成できるはずです──そして、その アルゴリズム が モデル なのです。論理的に構成された モデル (妥当な形式的構造) のなかに、「真とされる値」 が充足される、というのが意味論なのです。

 日本では、DOA (Data-Oriented Approach、データ 中心) という考えかたが一時期 (1980年代、1990年代) 流行りました──この用語は、堀内 一 氏の造語です (海外のほうでは、DOA に似た接近法を IE (Information Engineering) と云っていました、IE は、たぶん、James Martin 氏の造語だと思います)。DOA という語そのものは、たぶん、(プログラム に依存した データ 構造をつくるのではなくて、プログラム から独立した・データ そのもののもつ特性に従って構造をつくる、という) 中性的な語 [ data independency を意味する語 ] であると私は思っていたので、私は 当時 (1980年代) DOA を推進していました。しかし、DOA を謳っている人たちが コンソーシアム を設立して集まって DOA を論じたときに、私のほかの人たちは DOA と称して意味論を重視していたのを知って ショック をうけました──「DOA というのが、実際の適用では意味論重視であるならば、私は彼らとは握手できない」 と。それ以来、私は DOA ではない、と セミナー・講演会で公言するようになった次第です。

 モデル について私が根底に置いている考えかたは、「現実的事態を写像する」 ということです。写像とは関数のことです、したがって、現実的事態を形式的構造として記述するということです。形式的とは論理的ということです。そうだとすれば、構文論 (「計算可能性」) を重視するのは当然ではないか。その意味では、オブジェクト 指向が 当初 唱えていた 「現実を そのまま コンピュータ に実装する」 という考えかたに──「そのまま」 というのは大げさな言いかたであって、正確に言えば、「論理的構造」 に変換するということですが──私は賛同します。データベース 設計において コッド 関係 モデル を使っているのであれば、コッド 関係 モデル は一工夫すれば 「現実的事態を写像する」 という モデル である (モデル になる) ことくらいは簡単に想像がつくでしょうに。

 モデル TM は、現在 バーション 3.0 (TM3.0) ですが、私の頭のなかには すでに バーション 4.0 の構想が浮かんでいます。TM4.0 は、コッド 関係 モデル を拡張する際に TM が どうような工夫をしたのかを明らかにします──その工夫の決め手は、コッド 正規形の primary-key (個体指定子) の扱いです。この着想を私に与えてくれた書物は、本橋信義氏の 「今度こそわかる ゲーデル 不完全性定理」(講談社) です。本橋氏は、「事象型推論と法則型推論」 という考えかたを明らかにしています。TM3.0 が バージョン 2.0 から アップグレード したときに二つの点を拡充しました──ひとつは、「関係」 を 「関数」 とみなして、「関数」 を重視すること、二つ目は、個体指定子と アトリビュート の関係性を緩やかにしたこと。TM は、アトリビュート の正規形よりも、個体指定子を使って構造を作る文法を重視しているので、個体指定子は あくまで意味論上の多項式そのものを指示している。すなわち、個体を指示するための関数 f (x1, x2,・・・, xn) において、f を指示する項が実は x1 で示されている。言い替えれば、個体指定子は、概念的には、アトリビュート よりも 「階」 がひとつ上に存るということです。しかしながら、個体指定子は アトリビュート と同じ 「階」 の ことば (具体的には、××番号や×× コード) が使われているので、ことば そのものには 「階」 は存在しない。個体指定子を使って 「関係 (関数)」 を構成するのが TM の 「『関係』 文法」 です──「『関係』 文法では、アトリビュート は対象にならない (アトリビュート の関数従属性は コッド 関係 モデル を準拠しています)。つまり、「『関係』 文法」 は、法則型推論であって、事象型推論ではない。ちなみに、コッド 正規形は、事象型推論です。この点を明らかにして、TM4.0 では、TM の体系を見直して整え直そうと構想しています。 □

 




  << もどる HOME すすむ >>
  目次にもどる