本論文では、データベースにおける意味表現について議論し、「明示的な意味表現を持つデータベース(A Database with an Explicit Semantic Representation)」として「意象データベース(S-object Database)」を提案する。ここでデータベースにおける意味表現とは、個々のデータが持っている意味を表現する仕組みのことをいう。関係データベースやオブジェクト指向データベースではデータ構造そのものが意味表現の役割を持つが、意象データベースではネットワーク構造を持つ意味表現を述語論理によって明示的に管理する。 意味表現を明示的に管理する利点は、複雑かつ多様な意味表現に対応できる点にある。すなわち、従来のデータベースではデータ構造という画一的な構造によって意味を表現するため、複雑なデータや多様なデータに対して柔軟に対応することができない。これに対して、意象データベースでは、意味表現をネットワーク構造のまま直接的に表現するため、複雑なデータであってもそのまま管理することができるのである。例えば、文書データの場合、その意味表現はハイパーテキストのような複雑なネットワーク構造になる。このような構造を直接的に管理できる点が意象データベースの特徴である。 関係データベースやオブジェクト指向データベースといった従来のデータベースシステムは、データが一様な構造を持っていることを前提としており、文書データなど多様かつ複雑な構造を持つデータの蓄積には適していない。特に問題となるのは、これらのデータが本質的にハイパーテキストのようなネットワーク構造を持っているにも関わらず、データベースシステムがそのような構造を対象としていなかった点にある。そこで本研究は、多様なネットワーク構造を持つデータを蓄積するための新しいデータベースシステムを提案する。本研究が提案する意象(いしょう)データベースでは、データが持っている意味を表現する機構と実際に物理データを蓄積する機構とが分離されているのでネットワーク構造を明示的に管理することができる。 しかし、そのようなネットワーク構造を持った意味表現を管理する場合、その無矛盾性の維持が大きな問題となる。そこで意象データベースでは、一階述語論理に基づいた一貫性管理機構を導入し、導出ルールと無矛盾制約を記述することによって意味表現の無矛盾性を維持できるようになっている。この一貫性管理機構は、一階述語論理に基づいているという点で、論理プログラミングや演繹データベースと類似しているが、計算手続きによって定義される機能的述語の概念を導入することによってデータベース特有の拡張を行っている。この拡張によって、算術演算や文字列演算などの演算処理も述語によって表現することができるため、記述力大幅に高めることができる。特に、利用者が自由に演算を定義できるようになるため、データベースシステムの拡張性という意味で大きな利点となる。 意象データベースの最大の特徴は、柔軟なネットワーク構造による表現と、述語論理によって記述される強力な一貫性管理機構である。これらの特徴から、意象データベースは多種多様なデータを柔軟に蓄積・管理することが可能である。概して言えば、ハイパーテキストの柔軟性と演繹データベースの強力な一貫性管理機構とを兼ね備えたデータベースなのである。 明示的な意味表現を持つデータベースを実現するためには、ネットワーク構造を持った意味表現を蓄積・管理するためのデータモデルが必要である。そこで、本研究ではそのようなデータモデルとして意象モデルを開発した。意象モデルは、データの意味をどのように表現し、管理するかを規定するモデルであり、構成される意味表現は意味ネットワークのようなネットワーク構造を持つ(図1)。意象モデルは、意象、物象、意関、意接、意約という五種類の構成要素からなる。 意象の役割は、データベースにおける意味的な最小単位を一意に表現することにある。意象として表現されるのは以下のものである。 実在する実体:個々の文書、個々の人間など 概念的な実体:文書や人間などの集合や、数学、計算機科学といった抽象概念など 物理データ:数値、文字列、テキスト、イメージなど 意象は、意味表現のネットワーク構造においてノードになる。 意象の概念の中で最も重要なのが、意象の一意性である。つまり、意象が表現する対象は唯一でなければならないし、逆にその対象を表す意象も唯一でなければならない。この概念がなければ、意象モデルによって構成される意味表現が一意なものではなくなってしまう。 物象は、抽象データ型に基づいてカプセル化された物理データである。それぞれの物象は、その意味を表現するための意象をひとつだけ持ち、物象と意象との間に1対1の対を作る(図2)。 図表図1:意象と意接によるネットワーク構造の例 / 図2:物象とそれを表現する意象との対 意関の役割は、意象相互に存在する意味的な関連を一意に表現することにある。例えば「Xの著者がYである」というのは意味的な関連であり、下のような意関によって表現する。 ここで、Is-Author-Ofは述語名であり、Person,Documentは項のラベルである。項の数は述語ごとに一定であるとする。 項の値として意象を与えることによって意象間のリンクを定義する。便宜的に"NAME"という名前の意象を〈NAME〉と表すことにすると、「〈J.Smith〉が〈Paper A〉の著者である」というリンクは下のように記述する(図3)。 このようにして意象間に定義されるリンクを意接(S-link)と呼ぶ。 意象、意関、意接によって、ネットワーク構造を持った意味表現を構成できるが、更新処理が行われて意味表現が変更されたとき、意味的に矛盾した表現になってしまう恐れがある。したがって、意味表現の一貫性を維持するためには、さらに意味的な制約を定める必要がある。この制約のことを意約と呼ぶ。 意象モデルでは、意約の基礎として述語論理に基づくアプローチを採用した。意約は次の二種類に分類される。それぞれの例を図4に示す。 ここで、Aは原子式、L1,…,Lnはリテラルであり、いずれも項に関数記号を持たせることはしない。述語は、該当するリンクが存在するとき真、存在しないとき偽と解釈する。 図表図3:著者と文書の間の意味的な関連 / 図4:意約(S-constraint)の例 意約は基本的に、演繹データベースで用いられている層状プログラム(Stratified Program)の概念に基づいている。層状プログラムは、ホーン節で記述される確定プログラム(definite program)の一種であり、Prologと類似した体系である。ただし、層状プログラムでは←を論理的な含意(implication)ではなく新たな述語の導出と解釈し、述語間に層状の導出関係があるという条件を設ける。すると、ボディに論理否定を含んでいても推論が単調推論になり不動点が存在することが知られている。 意象モデルで用いられている述語論理は、演繹データベースで用いられているものに近い。意象モデルも、演繹データベースと同様に層状プログラムに基づいており、層状プログラムについては、演繹データベースの分野で盛んに研究されている。しかし、このクラスは実際の用途に適用するには単純すぎる。というのは、算術演算を一般的な方法で導入する機構を持たないからである。例えば、Datalogは<(less),>(greater),=(equal)といった二項比較演算子を持っているが、他の演算子を導入する方法は提供されていない。実際の応用では、算術演算子、文字列演算子、型変換演算子といったより多くの演算子が必要になるのである。 ひとつの解決策はPrologのように関数記号を導入することが考えられる。しかし、関数記号を導入した場合、問合せや一貫性ルールを記述するには記述能力が一般化され過ぎてしまう。したがって本研究では、従来の関数記号を持たない確定プログラムを拡張するための概念として、機能的述語を提案し、機能的述語のための評価アルゴリズムを開発した。機能的述語は、任意の演算を述語として取り扱えるため、利用者が述語を定義してシステムを自由に拡張できるという利点がある。 本論文では、応用例として文書データベースを取り上げたが、一般に多様な構造を持つデータを蓄積する場合には、意象データベースが有効であると考えられる。今後、意象データベースがそのようなデータに対して広く応用されることを期待している。 |