2005年 4月 1日 作成 | ア・プリオリ と ア・ポステリオリ | >> 目次 (テーマ ごと) |
2009年 5月 1日 補遺 |
(1) 経験に対して、論理的に先立つ認識・概念 (カント の用法) ア・プリオリ という用語そのものも、いくつかの意見が出ていて、たとえば、フッサール の定義は、カント の定義と違っています。フッサール は、(現象主義を提示した人物ですから、) ア・プリオリ を 「(認識作用とは無関係に、) 直接的直観のなかで与えられる理念的命題」 としています。さきほど、「経験」 という概念は、むずかしい概念である、と言いましたが、現象主義派は、「ア・プリオリ な (すなわち、普遍的な) 命題」 の源泉を指示するために、現象学的 「経験」 を定義しています。
哲学的な観点に立って、「経験」 という概念を、精確に検討するためには、カント や フッサール のほかにも、ヒューム を対象にしなければならない。そういう検討は、専門家に お任せするとして、小生は、ア・プリオリ を、「トートロジー」 (および、「恒偽」) として、割り切って考えています──前回の 「ベーシックス」 を参照してください。 「1つの物が、同時に、赤色であり、かつ、緑色である、ということはありえない (It cannot be)。」 顧客 (個人) が、「男」 であるか 「女」 であるか、という点は、ア・ポステリオリ に知り得るのですが、「性別」 の意味として、「法人 (企業)」 はない、ということを、我々は、ア・プリオリ に知っています。また、1つの 「品目単価」 が、10万円であり、かつ、同時に、20万円という 「2つの」 意味を指示することはありえないことも、ア・プリオリ に知っています。それらの値段は、たぶん、「値引き」 および 「正札」 として、べつべつの意味であることを、ア・ポステリオリ に知ることができるでしょう。 ア・プリオリ は、証明のなかで使われる技術的手段だと、さきほど、言いましたが、1つの構造は、いくつかの 「前提 (定義された 「意味」)」 と 「導出規則 (生成規則)」 を使って作られるとするならば、当然ながら、(構造のなかの 「矛盾」 を回避するために、) 「前提」 のなかで、ア・プリオリ を用います。事業過程のなかで起こる言語外的事実を対象にして、「『意義』 を記述すること (表現関係)」 を 「意味論」 であると取り違えていたり、たとえ、(「意義」ではなくて、) 「意味」 を検討しても、ア・プリオリ な 「文法規約」 を無視して作られた 「構造」 というのは、はたして、「モデル」 と云うに値するのかどうか、、、。 ちなみに、ア・ポステリオリ (総合命題) が、「真」 あるいは 「偽」 を問うのであれば、(2値論理のなで、) 「null」 を認めてはいけないことは、すぐに、理解できるでしょう。あるいは、もし、「null」 を認めて、3値論理を導入すれば、(プログラム の) アルゴリズム が、(3値の 「真理値表」 を前提にして、) 2値論理とは違う記述になることも理解できるでしょう。「null」 を使っていながら、2値論理を前提にして、アルゴリズム を作るから、出力される情報が 「でたらめ」 になるということを、プログラマ は理解しているのでしょうか、、、。3値論理の 「真理値表」 では、連言 (AND 関係) のなかで、「true」 かつ 「null」 は 「null」 ですが、「false」 かつ 「null」 は 「false」 になり、選言 (or 関係) では、連言と逆になって、「true」 または 「null」 は 「true」 ですが、「false」 または 「null」 は 「null」 として、論理的に扱われます。なお、「null」 の論理的否定は、「null」 です。 「意味論」 が、指示関係のなかで、ア・ポステリオリ に、「真」 あるいは 「偽」 を扱うのであれば、(「意味論」 そのものは、「メタ」 ですから、) 「メタ」 のなかで──さらに、「メタ」 の 「真」 概念を扱う 「メタ・メタ」 のなかで──、「null」 を認める、ということが──、2値論理・3値論理を前提にすれば、いかに、あやういか、という点を考えていただきたい。
|
[ 補遺 ] (2009年 5月 1日)
哲学史上、ア・プリオリ と ア・ポステリオリ に関して、いくつかの 「説」 が述べられてきたのでしょうが、システム・エンジニア である私は、それらの概念を モデル の観点に立って 「恒真・充足・恒偽」 に対応して考えていて、ア・プリオリ を 「恒真 (あるいは、恒偽)」 として、ア・ポステリオリ を 「充足」 として考えています。もっと単純に言えば、ア・プリオリ を 「分析的・矛盾的な命題」 として、ア・ポステリオリ を 「総合的な命題」 とみなしています。 そういう立場 (「恒真・充足・恒偽」 の観点) で 「変項の値」 を観れば、「充足」 されていない状態──すなわち、「null」 のこと──には、以下の 2つが対応することになるでしょう。
(1) undefined undefined というのは、(全域関数ではなくて、) 部分関数の状態です。したがって、値域は、そもそも、「存在しない」。いっぽう、unknown というのは、値域は存在するのだけれど、値が 「不明 (未知数)」 である状態です。 「null」 は、そういう状態 (undefined および unknown) を指示するのであって、値ではないので、式のなかで 他の変項と比較ができない。もし、null を他の変項と比較するのであれば、null の多義 (undefined および unknown という ふたつの含意) を それぞれ扱うようにしなければならない。すなわち、「真」 および 「偽」 のほかに、unapplicable な対象 (undefined) と applicable な対象 (unknown) を考慮して、4値 ロジック を使わなければならない──コッド 関係 モデル は、全域関数の関数従属性を前提にしているので、もし、部分関数が生じるのであれば、4値 ロジック を使うことになります。
RDBMS は、4値 ロジック を導入していない。したがって、「null」 の扱いには注意しなければならない──すなわち、もし、3値 ロジック を前提にして、プログラム を作成するのであれば、(本 エッセー で述べたように、) ¬null の扱いに注意しなければならない。SQL は、バージョンアップ のなかで、IF 句を導入しました。ということは、「p → q」 (IF p, THEN q) において、p のなかに 「p = null」 を代入して──SQL 構文で言えば、「not in」 や 「not exist」 を使って── null の存在する カラム を走査すれば、「想定外の」 結果が生じます。というのは、「p → q」 は、ブール 代数では、「¬p ∨ q」 として翻訳され、3値 ロジック において、p が null であれば、「¬null ∨ q」 と問うたはずが 「null ∨ q」 と翻訳されて、null も ¬null も同値として扱われます。したがって、3値 ロジック では、構文論上、null を比較の対象にしないというのが鉄則です。そして、意味論上でも、null は 「真」 を問えないので──「恒真」 でもなければ、「恒偽」 でもなければ、「充足」 もしないので──、モデル の構成上、除去するというのが鉄則です。 |
<< もどる | ベーシックス | すすむ >> | |
▼ データベースの基礎知識 |