意味の形式的理論 -- Entityモデル
「二つのものの関係の中に意味が現れる」と先に書いたのだが、少し、先回りしすぎたかもしれない。小論は、こうした方向と関係の基本である「同一性」概念にそって「意味の形式的理論」を考えることを目標にしているのだが、その前に、触れておかなければならないことが、いくつかあることに気づく。
一つは、「形式的理論」の「形式」を与える認識の数学的モデルの妥当性についてである。これについては、いろいろ語るべきことが残されている。それについては、いずれ、ゆっくり説明していこうと思う。(「名付け」と「参照」のfibrationモデルは、「意味不明」だったかも。)
もう一つは、先の問題に比べると極めて具体的な問題なのだが、「意味の形式的理論」の一種である「知識の表現理論」について語ることである。これについては、簡単なオーバービューを与えることができるとおもう。(「意味」と「知識」とは、正確に言えば、異なるものである。)
コンピュータ上での実装を見る限りでは、検索でもボイス・アシスタント技術でも、現代の「知識の表現理論」の主流は、次のような「Entityモデル」である。
「パンダ」はEntityである。Entityは型(Type)を持つ。「パンダ Entity」は「パンダ Type」を持つ。別の言い方をすれば、「パンダ(Entity)は、パンダ(Type)である。」ということになる。
Entityモデルでは、それぞれのEntityは、Propertyを持つ。パンダのEntityはパンダのPropertyを持つ。「笹が好き」「指が6本ある」「パンダ色をしている」とかが、パンダ entityのパンダPropertyになる。
だから、Entityモデルでは、パンダについての知識は、基本的には、パンダEntityのパンダPropertyで表現されることになる。
Entityモデルには、「Entityは型を持つ」「EntityはPropertyを持つ」の他に、もう一つの重要な特徴がある。それは、Entityの型が、概念の包含関係を反映した階層構造を持つということである。パンダは哺乳類である。哺乳類は動物である。動物は生物である。(かなり、いい加減な「階層」だが)
パンダ < 哺乳類 < 動物 < 生物
このEntityの型の階層が「知識の表現」で意味を持つのは、下位の型は、上位の型のPropertyを丸ごと引き継ぐことになっているからである。パンダの型の階層構造上での位置を知っていれば、パンダについての知識では、その上位概念の哺乳類についての知識も、動物についての知識も利用できることになる。
知識の表現としてのEntityモデルというのは、プログラマーならよく知っている「オブジェクト志向言語」のコンセプトとほとんど同じなのである。あるクラスAを継承したクラスBは、クラスAのプロパティ(フィールド)に、そのままアクセス出来る。
(もっとも、多少の違いもある。
Entityモデルでは、「多重継承」が普通に用いられる。「丸山」は、「北海道民」型で「IT系人間」型他、同時に、多数の型の下位タイプに属する。
ただ、ほとんどのEntityモデルでは、多重継承は認めるものの、もっとも上位の型は一つだけである。あとで紹介するSchema.orgのモデルでは、"thing"が最上位の型である。(最後の方は、冗談)
thing > 生物 > ・・・> パンダ
thing > organization
thing > event
thing > action
thing > religion
thing > nothing
thing > organization
thing > event
thing > action
thing > religion
thing > nothing
また、オブジェクト志向言語では明確な、クラスとそのインスタンスという区別も、かなり曖昧である。)
型の継承関係をグラフで表すことができるので、Entityモデルには、グラフ・データベースがよく似合う。そこでは、Propertyは、名前と値を持つことになる。
パンダEntityのProperty
プロパティの名前: プロパティの値
------------------------------------
好物 : 笹
指の数 : 6
色 : パンダ色
------------------------------------
好物 : 笹
指の数 : 6
色 : パンダ色
「パンダの好物」を知るには、Entityの階層関係が作るグラフの中で、「パンダ」のEntityノードを見つけて、そのノードの「好物」という名前のPropertyの値を取得すればいいことになる。
素晴らしい!
コメント
コメントを投稿