Лекция 3 Семантические сети (СС) Понятие СС Понятие семантической сети основано на древней и очень простой идее о том, что "память" формируется через ассоциации между понятиями. Семантическая сеть – это граф, вершины которого соответствуют объектам или понятиям, а дуги, связывающие вершины, определяют отношения между ними. Например, факт "Смит работает в производственном отделе" запишется в виде: Смит работает в производственный отдел. Отметим, что дуга имеет направленность, благодаря чему между понятиями в рамках определенного факта выражается отношение "cубъект/объект". Более того, любая из вершин может быть соединена с любым числом других вершин. В результате этого обеспечивается формирование сети фактов. Основными отношениями в семантической сети являются отношения принадлежности к классу объектов (связь вида "является"), свойства, специфические для данного понятия (связи вида "имеет", "есть") и примеры данного понятия. Здание 1 Местонахождение Производственный отдел Работает в Имеет Голубые глаза Является СМИТ Руководитель Есть 40 лет На рисунке слева схематично представлена СС, включающая связи “имеет”, “является”, “есть” и ряд других связей. В число фактов сети вошли: “Смит является руководителем.” “Смит работает в производственном отделе, расположенном в здании 1.” “Смиту 40 лет.” “У Смита голубые глаза.” В общем случае семантическая сеть образуется как соединение отдельных фрагментов: Ф1 , Ф2 , … ,Фn, где Фi – фрагменты, аналогичные введенным на рисунке на предыдущем слайде, причем порядок индексации фрагментов не имеет значения. При правильном выборе обозначений отношений можно выразить очень сложные совокупности фактов. Два человека с одним именем «смит» Базовое определение семантической сети не позволяет представлять ситуации, в которых несколько отдельных объектов являются экземплярами одного и того же семантического класса. Например, требуется зафиксировать, что в некоторой компании работают два разных человека с одним и тем же именем "смит", причем один из них является руководителем другого. Решение этой проблемы сводится к введению двух специальных узлов "см_1" и "см_2" для идентификации двух индивидуумов с именем "cмит". Соответствующая сеть представлена на рисунке на следующем слайде. В сети вводится различие между общими понятиями (“смит”) и частными объектами (< см1>,<см-2>). С помощью связи “является” в сети вводятся уровни иерархии: понятие "служащий" - верхний уровень иерархии, два индивидуума "см_1" и "см_2" - нижний уровень. После определения такой иерархииможно произвести распределение общих фактов, которые косвенно являются атрибутами индивидуумов, как членов класса "служащий", вместо представления их в качестве атрибутов непосредственно индивидуумов. К таким фактам относится, например, то, что “служащим” предоставляется “разрешение на паркование (автомашин)”, а “руководители” имеют “ключи от входной двери учреждения”. Таким образом, экземпляр нижнего уровня содержит в основном все атрибуты, которые имеет экземпляр понятия верхнего уровня. Это свойство называется наследованием атрибутов между уровнями иерархии "является". Иерархия на основе «наследования» Иерархия, построенная на основе "наследования", обеспечивает эффективный способ упрощения представления знаний, сокращает объем информации, которую необходимо запоминать для каждого узла. Это, вопервых, ускоряет процесс обработки знаний: относящаяся к узлу запоминаемая информация может быть ограничена только часто используемой, при обращении к остальной применяется принцип "наследования". Во-вторых, это позволяет извлекать информацию с помощью запросов общего характера: некоторая информация об индивидууме "Смит" как руководителе может быть извлечена просто из знания его служебного положения в компании, при этом нет необходимости знать его имя. Несмотря на все достоинства "наследования" существует проблема гарантии наследования по ветвям "является". Другими словами, результат вывода, получаемого с помощью семантической сети, не гарантирует достоверность как логической формализм. Это обусловлено тем, что процедура вывода по определению не более как наследование свойств ветви "является". Рассмотрим сеть из предыдущего слайда. “Служащий” - это член профсоюзной организации, а члены профсоюзной организации выступают на собрании. Исходя из этого, можно вывести, что служащий по имени <см-1> выступает на собрании. А это необязательно правильно. Следовательно, необходимы такие способы представления данных и вывода, которые обеспечили бы управление наследованием. С этой целью вводятся разграничения вершин общих понятий верхнего уровня и вершин экземпляров нижнего уровня путём использования связи типа instance-of . Кроме этого были предложены процедурные семантические сети. В этом случае сеть строится на основе класса (понятия), а вершины, дуги (отношения) и процедуры представлены как объекты. Процедурами определяются следующие основные действия над дугами (связями): установление связи; анулирование связи; подсчет числа вершин, соединенных заданной дугой; проверка наличия-отсутствия связи между заданными вершинами. Вводятся также процедуры, определяющие основные действия над вершинами: определение экземпляра класса; аннулирование экземпляра; подсчет числа экземпляров, принадлежащих к классу; проверка принадлежности экземпляра к некоторому классу. Благодаря процедурам семантических сетей стало возможно представлять процедурные знания. В процедурных семантических сетях вводится точное определение, касающееся наследования атрибутов между классами. Для этого атрибуты класса разделяют на атрибуты определения и атрибуты свойства, причем последние отображаются в качестве отношений между классами и не наследуются классами нижнего уровня. Проблема с квантованием Выше рассматривалась проблема наследования и стратегия её решения. Однако одна из основных проблем, которая возникает при дополнении обычной семантической сети новыми фактами и включает упомянутую выше проблему, связана с квантованием. Для решения этой проблемы Г.Хендрикс предложил метод, называемый разделением СС, и ввел понятие иерархически упорядоченного множества пространств, определяющих границы действия вершин экземпляров. Все вершины и дуги являются элементами по крайней мере одного пространства. Различные пространства, существующие в сети, упорядочены в виде дерева пространств, вершинам которого соответствуют пространства, а дугам – отношения “видимости”. Отношение “видимости” позволяет сгруппировать пространства в упорядоченные множества и повысить эффективность операции поиска в сети. Приведенные ранее примеры представления знаний в виде семантических сетей были ограничены отношениями между существительными. Однако, часто необходимо представить факты, касающиеся событий и действий. С этой целью разрабатываются представления относительно глаголов в дополнение к существительным. При этом, по прежнему сохраняются различия между общими понятиями и частными объектами. Например, для того, чтобы представить факт “Смит_2 проработал на Смита_1 с апреля 1972 по май 1973 “ строится семантическая сеть представленная на рисунке на следующем слайде. Конкретное событие, заключающееся в работе у кого-то, обозначено "раб-1". Его происхождение от узла прообраза "работа" указывается с помощью дуги "действие". При этом связь "действие" эквивалентна связи "является". Затем вводятся бинарные отношения, с помощью которых представляются даты начала и конца работы (через связи "от" и "до"). Обычно интерпретация семантической сети определяется с помощью использующих ее процедур. Эти процедуры основаны на нескольких способах, но наиболее типичный из них - это способ сопоставления частей сетевой структуры. Он основан на построении подсети, соответствующей вопросу, и сопоставлении ее с базой данных сети. При этом для исчерпывающего сопоставления с БД вершинам переменных присваиваются гипотетические значения . Особенностью и недостатком семантической сети является ее представление в виде такой целостной структуры, которая не позволяет разделить базу знаний и механизм выводов.