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