为了获得一些经验,我正在尝试制作一个可以回答有关动物王国的问题的专家系统。但是,我遇到了对域进行建模的问题。我最初认为动物王国层次结构是这样绘制的
-animal
-bird
-carnivore
-hawk
-herbivore
-bluejay
-mammals
-carnivores
-herbivores
我认为这可以让我轻松地进行查询,例如“给我所有的鸟”,但说“给我所有的食肉动物”会贵得多,所以我将层次结构改写为:
-animal
-carnivore
-birds
-hawk
-mammals
-xyz
-herbivores
-birds
-bluejay
-mammals
但是现在查询“给我所有的鸟”会慢得多。
这当然是一个简单的例子,但它让我想到,在编写专家系统来回答上述查询的上下文中,我真的不知道如何对本质上不是严格分层的复杂关系进行建模。有向循环图似乎可以在数学上解决问题,但是将其存储在关系数据库中并对其进行维护(更新)对我来说似乎是一场噩梦。我想知道人们通常如何为此类事物建模。解释或指向要进一步阅读的资源的指针将是可以接受和赞赏的。