Чтобы получить некоторый опыт, я пытаюсь создать экспертную систему, которая сможет отвечать на вопросы о царстве животных.Тем не менее, я столкнулся с проблемой моделирования домена.Первоначально я считал, что иерархия животного царства должна быть нарисована как
-animal
-bird
-carnivore
-hawk
-herbivore
-bluejay
-mammals
-carnivores
-herbivores
. Я рассчитывал, что это позволит мне легко делать запросы типа «дай мне всех птиц», но гораздо дороже сказать «дай мне всеплотоядные животные », поэтому я переписал иерархию, чтобы она выглядела так:
-animal
-carnivore
-birds
-hawk
-mammals
-xyz
-herbivores
-birds
-bluejay
-mammals
Но теперь будет гораздо медленнее запрашивать« дай мне всех птиц ».
Это, конечно, простой пример, но он заставил меня задуматься, что я действительно не знаю, как моделировать сложные отношения, которые не являются настолько строго иерархическими по природе в контексте написания экспертной системы для ответа на запросы.как указано выше.Направленный циклический граф кажется, что он мог бы математически решить проблему, но сохранение этого в реляционной базе данных и поддержание его (обновлений) показалось бы мне кошмаром.Я хотел бы знать, как люди обычно моделируют такие вещи.Пояснения или ссылки на ресурсы для дальнейшего чтения будут приемлемы и приветствуются.