Использование семантической сети в экспертных системах PROLOG
Семантические сети могут быть легко преобразованы в программу на языке PROLOG. Программы на языке PROLOG состоят из фактов и правил, заданных в общей форме целей:
p: p1, p2 ,..., pn
В этом операторе срок г является председателем выражения, а сроки pi выполняют качестве составных частей общей цели - подцелей.
Как правило, выражение, которое представлено в форме такого оператора, утверждает, что цель р, заданная в голове выражения, выполняется тогда и только тогда, когда выполнены все подцели. Исключение из этого правила возникает только в том случае, когда используется специальный выражение, означающее отказ.
PROLOG и экспертные системы
В языке PROLOG выражения представляются в виде предикатов, а операторы для их представления, соответственно, основанные на предикативной логике.
Операторы языка PROLOG состоят из имени предиката, такого как IS-A и HAS-А, за которым указываются параметры (количеством от нуля и более), помещенные в круглые скобки и разделенные запятыми. Например:
HAS-А (Клиенты, Юридические лица). Класс «Клиенты банка» содержит подкласс «Юридические лица»
IS-A (Селми, Юридические лица). Объект «Селми» относится к классу «Юридические лица» Конец оператора определяется точкой, комментарии обозначаются точками с запятой и игнорируются системой PROLOG. Общая структура системы PROLOG изображена на рис.1. Рисунок 1 - Общая структура организации экспертной системы на языке PROLOG
Пользователь, через интерпретатор, передает на вход системы PROLOG запрос. После того как система PROLOG входящий запрос, начинается поиск выражения, голова которого согласуется с входным шаблоном запроса.
Такая процедура называется сопоставлением с шаблоном. Она аналогична сопоставлению, в котором принимают участие факты и антецеденты продукционного правила. Если председатель предиката согласована, система PROLOG пытается согласовать тело правила, состоящий из подцелей, с запросом.
Поиск начинается с первого введенного оператора, и может быть организован, как в глубину, так и в ширину семантической сети, которую образуют подцели. Графически этот процесс показан на рис. 2. и 3. Рисунок 2 - Поиск в глубину семантической сети системы PROLOG Рисунок 3 - Поиск в ширину семантической сети системы PROLOG
В случае, если все цели, подлежащие согласованию, достигаются, система определяет запрос, как истину. Если нет, система возвращается к поиску следующего выражения, голова которого согласовывается с шаблоном входного запроса.
То есть, происходит реализация метода перебора с возвратами для определения истинности запроса. С точки зрения разработчиков экспертных систем, особенно важными возможностями PROLOG есть перебор с возвратами и сопоставления с шаблонами. К тому же, важно то, что речь PROLOG носит декларативный характер, поскольку в теле исполнительной программы непосредственно применяется спецификация программного кода.
Проблемы использования семантических сетей
На основе изложенного материала можно сделать вывод, что семантические сети могут быть достаточно эффективным средством представления знаний. Однако, они имеют существенные ограничения. Одно из них заключается в отсутствии единых стандартов именования узлов, что порождает проблему отклонения от стандартов именования связей.
Например, если в сети есть узел, обозначенный как «счет», то в зависимости от установленных связей, он может обозначать: банковский счет конкретного клиента; понятие счета как категории, счет, обслуживаемый определенным работником банка и т.д. То есть, семантическая сеть может применяться для представления категорических знаний (знаний, определенных однозначно) только при условии тщательной разработки системы именования узлов и связей.
Еще одна проблема использования семантических сетей заключается в том, что при осуществлении поиска узлов возникает вероятность комбинаторного взрыва. Она возрастает, если ответ на запрос, по сути, является отрицательным и это может заставить работать систему поиска по всем связям в сети. Такой поиск потребует значительных вычислительных ресурсов, особенно в полносвязной сети, количество связей которой равен факториалу от количества узлов за минусом единицы.
В отличие от такой системы, рядовому человеку не требуется много времени для ответа на вопрос: «Есть представительство банка Райффайзен на Луне? ". Если бы все его знания были сформированы исключительно с помощью семантической сети, то для формулирования отрицательных ответов на подобные вопросы, нужно было бы тратить значительные длительные промежутки времени, поскольку пришлось бы применять все имеющееся количество связей.
Кроме того, существует значительное ограничение семантических сетей для использования в экспертных системах, связаное с тем фактом, что они остаются непригодными для эвристических методов.
Напомним, что эвристика - это эмпирическое правило, которое может помочь найти решение при отсутствии алгоритма. Поскольку, единственной встроенной в семантические сети стратегией управления, которая может помочь в решении задач, есть преемство, до сих пор не найдено возможности представить эвристическую информацию с ее помощью.
Результаты анализа приведенных ограничений показывают, что семантические сети должны использоваться в тех областях, для которых они приспособлены больше. Например, для представления бинарных отношений. Специалисты из экспертных систем не рекомендуют пытаться использовать семантические сети, как универсальное средство представления знаний.