経験を積むために、動物界に関する質問に答えることができるエキスパート システムを作ろうとしています。ただし、ドメインのモデリングで問題が発生しました。私は当初、動物界のヒエラルキーは次のように描かれると考えていました。
-animal
-bird
-carnivore
-hawk
-herbivore
-bluejay
-mammals
-carnivores
-herbivores
これにより、「すべての鳥をください」のようなクエリを簡単に作成できると考えましたが、「すべての肉食動物を提供してください」と言うにははるかにコストがかかるため、階層を次のように書き直しました。
-animal
-carnivore
-birds
-hawk
-mammals
-xyz
-herbivores
-birds
-bluejay
-mammals
しかし、"give me all birds" をクエリするのはずっと遅くなります。
これはもちろん単純な例ですが、上記のようにクエリに応答するエキスパート システムを作成するコンテキストで、本質的にそれほど厳密に階層化されていない複雑な関係をモデル化する方法がよくわからないということを考えさせられました。有向循環グラフは数学的に問題を解決できるように思えますが、これをリレーショナル データベースに格納して維持する (更新する) ことは、私には悪夢のように思えます。人々がそのようなものを通常どのようにモデル化するかを知りたいです。さらに読むためのリソースへの説明またはポインタは受け入れられ、高く評価されます。