Главная arrow книги arrow Копия Глава 10. Представление знаний arrow Семантические сети
Семантические сети

Как и прежде, необходимо тщательно следить за тем, чтобы в этом высказывании не утверждалось, что ногами обладает категория; как показано на рис. 10.7, для формулировки утверждений о свойствах каждого элемента категории используется связь, обозначенная меткой в прямоугольнике с одинарным контуром.

Рис. 10.7. Семантическая сеть с четырьмя объектами (John, Mary, 1 и 2) и четырьмя категориями. Отношения обозначаются связями с метками

Система обозначений с использованием семантических сетей обеспечивает значительные удобства при формировании рассуждений с учетом наследования такого типа, которые были впервые представлены в разделе 10.2. Например, благодаря тому, что Мэри является человеком, она наследует свойство иметь две ноги. Поэтому, чтобы узнать, сколько ног имеет Мэри, алгоритм наследования проходит по связи MemberOf от объекта Mary к категории, к которой она принадлежит, а затем проходит по связям Subsetof вверх по иерархии до тех пор, пока не находит категорию, для которой имеется связь с обведенной прямоугольником меткой Legs, в данном случае категорию Persons. Простота и эффективность этого механизма логического вывода по сравнению с логическим доказательством теорем издавна была одной из основных привлекательных особенностей семантических сетей.

Наследование становится сложнее, если некоторый объект может принадлежать больше чем к одной категории или если категория может быть подмножеством больше чем одной отличной от нее категории; такая ситуация называется множественным наследованием. В подобных случаях алгоритм наследования может находить два или несколько конфликтующих значений, представляющих собой ответ на запрос. По этой причине множественное наследование запрещено в некоторых языках объектно-ориентированного программирования (Object-Oriented Programming— OOP), таких как язык Java, в котором используется наследование в иерархии классов. В семантических сетях множественное наследование обычно разрешено, но мы отложим обсуждение этой темы до раздела 10.7.

Еще одной общей формой логического вывода является использование инверсных связей. Например, связь HasSister является инверсной по отношению к SisterOf, а это означает, что имеет место следующее высказывание: