2.2 比較


表層構造の対応関係を「=」から別のものを使用することで、間単に比較を示す文が作成できます。

例えば「彼女は私より彼を選ぶ」は、

She.slct(He)>>I

・slct:「選ぶ」

となります。

「私は彼より背が高い」という比較はGALでどう表現されるでしょうか。

これを表現するのにGALでは、型記号を使います。

まず、「私は背が高い」という表現は以下のようになります。

I=Tall

・Tall:「背が高い」

GALでは、このような「背が高い」という性質を、型として使用できます。

型とはコンピュータ言語などで使用されるもので「int x」とは、「整数としての変数」を示します。

コンピュータの世界では、変数にいろいろな種類のデータを入れることができますが、

整数型が決まった変数に、整数以外のデータを入力したらエラーが表示されるわけです。

GALは日常世界そのものをあらわす言語ですので、変数のようなものはありません。

ですから、実際に存在するものに対して、型を使用します。

GALの型は、存在するものから型で示した概念を出力(抽出)するように働きます。

つまり、(Tall:He)という表記は、「彼の背の高さ」を示します。

「私は彼より背が高い」とは、私は「彼の背の高さ」より、より強い性質がある、と言っているわけです。

そこで以下のような表現となります。

I>>Tall:He

「Tall:」という表記は、「He」の性質の型付けをするのと同時に、

「>>」という対応関係を「背の高さについて」で、修飾しているようにも見えます。

省略しない表層構造における比較の例を、以下に示します。

I.thw(Bll)>>Fst:He

・thw:「投げる」

・Bll:「ボール」

・Fst:「速い」

これで「私は彼より速くボールを投げる」となります。

単に「私は速くボールを投げる」は、以下のような表現になりますので。

I.thw(Bll)=Fst