Лабораторная работа №1 Использование семантических сетей для представления знаний Цель работы: Научиться использовать семантические сети для представления знаний в информационных аналитических системах. 1. теоретическая часть Семантическая сеть – это один из способов представления знаний. Изначально семантическая сеть была задумана как модель представления долговременной памяти в психологии, но впоследствии стала одним из способов представления знаний в экспертной системе. Семантика – означает общие отношения между символами и объектами из этих символов. Рис.1. Простейший образец семантической сети. Вершины – это объекты, дуги – это отношения. Семантическая модель не раскрывает сама по себе, каким образом осуществляется представление знаний. Поэтому семантическая сеть рассматривается как метод представления знаний и структурирования знаний. Характерная особенность семантических сетей – это обязательное наличие 3 типов отношений. Пример: класс – элемент класса, свойство – значение. Пример элемента класса. Существует несколько классификаций семантических сетей: 1) По количеству отношений 1. Однородные с единственным типом отношений; 2. Неоднородные с различными типами отношений. 2) По типам отношений 1. Бинарные сети – в которых отношения связывают 2 объекта; 2. Парные сети – в которых отношения связывают более чем 2 понятия. Наиболее часто используются в семантических сетях: 1. Связь “часть – целое” (класс подкласс, элемент - множество); 2. Функциональные связи (производит, владеет); 3. Количественные отношения (A > 0, B < 0); 4. Пространственные отношения (далеко от, близко от, над, за и т. п.); 5. Временные (раньше, позже, одновременно); 6. Атрибутивные (иметь свойство, иметь значение); 7. Логические связи – и, или, не. Минимальный состав отношений в семантической сети - это элемент класса, атрибутные связи и значение свойства. При расширении семантической сети в ней возникают другие отношения: IS –A (принадлежит) и PART OF (является частью) отношение: целое ® часть. Ласточка IS – A птица, «нос» PART OF «тело». Например: Рис.2. Расширение семантической сети Например, в предложении «человек» IS - A «млекопитающее» основной мыслью является, что человек принадлежит к классу млекопитающих. Это означает, что имеет место отношение включения или совпадения. Для этих отношений характерным является то, что экземпляры понятий нижнего уровня содержат все атрибуты понятий верхнего уровня. Это свойство называется наследованием атрибутов между уровнями иерархии IS - A.. Отношение «целое – часть» можно иллюстрировать предложением «нос» PART - OF «тела», которое характеризует то, что экземпляры понятия «нос» являются частью любого экземпляра понятия «тело». Наиболее часто используется графическое представление семантических сетей в виде диаграммы. Так предложение «все ласточки – птицы» можно представить графом, содержащим две вершины соответствующие понятиям и дугу, указывающую отношение между ними (рис. 2.1). Рис. 2.1. Семантическая сеть - 1 Если ласточка имеет конкретное имя, например, Юка, то семантическая сеть может быть расширена (рис. 2.2). Рис. 2.2. Семантическая сеть - 2 Наряду с тем, что с помощью данной сети описаны два факта «Юка – ласточка» «ласточка – птица» из нее можно вынести, используя отношение наследования, факт «Юка – птица» Этот факт показывает, что способ представления семантической сетью позволяет легко делать выводы благодаря иерархии наследования. Семантическими сетями можно также представлять знания, касающиеся атрибутов объекта. Например, факт «Птицы имеют крылья» можно отобразить в виде рис. 25.3. Рис. 2.3. Семантическая сеть - 3 Это означает, что, используя отношения «IS – A» и «PART – OF» можно вывести факт «Юка имеет крылья». Вершины в семантической сети обычно показывают объект проблемной области, концепт, ситуацию и т. п., а дуги это отношения между ними. При расширении семантической сети в ней возникают дополнительные отношения. Например, если рассматриваемую сеть дополнить фактами «Юка владеет гнездом» и «Юка владеет гнездом с весны по осень», то получим семантическую сеть, изображенную на рис. 2.4. Здесь гнездо i – это конкретное гнездо, которым владеет Юка, а для вершины ситуации (владеет j) определено несколько связей. Такая вершина называется надежной рамкой и определяет различные аргументы предиката ситуации. Рис. 2.4. Семантическая сеть - 4 Получается иерархическая структура понятия ЮКА. Можно разбить на подсхемы. Большой проблемой для семантических сетей является то, что результат вывода не гарантирует достоверности, так как вывод есть просто наследование свойств ветви is-a. Для отображения иерархических отношений между объектами и введения единой семантики в семантические сети было предложено использовать процедурные сети. Сеть строится на основе класса (понятия); вершины, дуги и процедуры представлены как объекты. Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети, соответствующей поставленному вопросу. На рис. 3, 4 и 4-1 изображены примеры семантической сети. Рисунок 3 – Модель Рис. 4 Семантическая сеть, показывающая взаимоотношения птицы и самолета. Рис. 4-1 Семантическая сеть, являющейся описанием объекта автомобиль и ряда связанных с ним понятий В частности для рис. 4-1 присутствует следующая цепочка понятий: "Вид автотранспорта имеет частью двигатель", "Двигатель имеет частью стартёр". В силу транзитивности отношения имеет частью можно вывести следующее утверждение "Вид автотранспорта имеет частью стартёр". Аналогично можно сделать вполне очевидные выводы: "Мерседес является видом автотранспорта, который потребляет топливо и имеет частью двигатель" или "Водитель управляет автомобилем и везёт пассажира". Преимущества модели: - совпадает с тем, как человек познает мир; - соответствие долговременной памяти человека. Недостатки: - сложность с поиском вывода. Для реализации семантических сетей в экспертных системах существуют специальные сетевые языки. Систематизация отношений конкретной семантической сети зависит от специфики знаний предметной области и является сложной задачей. Особого внимания заслуживают общезначимые отношения, присутствующие во многих предметных областях. Именно на таких отношениях основана концепция семантической сети. В семантических сетях, так же как при фреймовом представлении знаний, декларативные и процедурные знания не разделены, следовательно, база знаний не отделена от механизма вывода. Процедура логического вывода обычно представляет совокупность процедур обработки сети. Семантические сети получили широкое применение в экспертных системах. Возможные в семантических сетях отношения приведены в таблице. 2. Действие сработавшего правила 2. В рабочую память заносится заключение этого правила, то есть образец: двигатель не заводится. 3. Второй цикл сопоставления фактов в рабочей памяти с образцами правил. Теперь срабатывает правило 1, так как совпадение условий в его антецеденте становится истинной. 4. Действие правила 1, которое заключается в выдаче пользователю окончательного диагноза - сел аккумулятор. 5. Конец работы (база правил исчерпана). Пример прямого вывода с конфликтным набором. Теперь допустим, что в базе правил кроме правила 1 и правила 2 присутствует правило 3: «если указатель бензина находится на нуле, то нет бензина». В рабочей памяти находятся те же факты, что в предыдущем примере. В результате сопоставления в первом же цикле возможно применение двух правил - правила 2 и правила 3, то есть возникает конфликтный набор и встает задача выбора: какое из этих правил применить первым. Если выберем правило 2, то в рабочей памяти добавится факт «двигатель не заводится» и на следующем шаге опять возникнет конфликтный набор, так как можно будет применить правило 1 и правило 3. Если будет выбрано правило 1, то к заключению «сел аккумулятор» придем за два шага. При любом другом выборе порядка применения правил к этому же заключению приходим за три шага. Если завершение цикла работы экспертной системы наступает после просмотра всех правил, то число шагов будет равно трем, причем порядок применения правил не будет иметь какого-либо значения. Пример обратного вывода. Предположим, что в базе правил имеется два правила (правило 1 и правило 2), а в рабочей памяти - те же факты, что в предыдущих примерах с прямым выводом. Алгоритм обратного вывода содержит следующие шаги. 1. Выдвигается гипотеза окончательного диагноза - сел аккумулятор. 2. Отыскивается правило, заключение которого соответствует выдвинутой гипотезе, в нашем примере - это правило 1. 2. Исследуется возможность применения правила 1, то есть решается вопрос о том, может ли оно сработать. Для этого в рабочей памяти должны присутствовать факты, совпадающие с образцом этого правила. В рассматриваемом примере правило 1 не может сработать из-за отсутствия в рабочей памяти образца «двигатель не заводится». Этот факт становится новой целью на следующем шаге вывода. 3. Поиск правила, заключение которого соответствует новой цели. Такое правило есть - правило 2. 4. Исследуется возможность применения правила 2 (сопоставление). Оно срабатывает, так как в рабочей памяти присутствует факт, совпадающий с его образцом. 5. Действие правила 2, состоящее в занесении заключения «двигатель не заводится» в рабочую память. 6. Условная часть правила 1 теперь подтверждена фактами, следовательно, оно срабатывает, и выдвинутая начальная гипотеза подтверждается. 7. Конец работы. При сравнении этого примера с примером прямого вывода нельзя заметить преимуществ обратных выводов перед прямыми выводами. Пример обратного вывода с конфликтным набором. Предположим, что в базе правил записано правило 1, правило 2, правило 3 и правило 4: «если засорился бензонасос, то двигатель не заводится». В рабочей памяти присутствуют те же самые факты: «фары не горят и указатель бензина находится на нуле». В данном случае алгоритм обратного вывода с конфликтным набором включает следующие шаги. 1. Выдвигается гипотеза сел аккумулятор. 2. Поиск правила, заключение которого совпадает с поставленной целью. Это правило 1. 3. Исследуется возможность применения правила 1. Оно не может сработать, тогда выдвигается новая подцель «двигатель не заводится», соответствующая недостающему образцу. 4. Поиск правил, заключения которых совпадают с новой подцелью. Таких правил два: правило 2 и правило 4. Если выберем правило 2, то дальнейшие шаги совпадают с примером без конфликтного набора. Если выберем правило 4, то оно не сработает, так как в рабочей памяти нет образца: «засорился бензонасос». После этого будет применено правило 2, что приведет к успеху, но путь окажется длиннее на один шаг. Следует обратить внимание на то, что правило 3, не связанное с поставленной целью, вообще не затрагивалось в процессе вывода. Этот факт свидетельствует о более высокой эффективности обратных выводов по сравнению с прямыми выводами. При обратных выводах существует тенденция исключения из рассмотренных правил тех правил, которые не имеют отношения к поставленной цели. Семантическая сеть как Пролог - программа Важнейшей концепцией формализма семантических сетей является иерархия понятий и связанное с ней наследование атрибутов между уровнями иерархии IS - A. Если семантическую сеть рассматривать как описание отношений, которые поддерживаются между понятиями, то ее непосредственно, можно реализовать на языке Пролог. На рис. 6 представлена структура сети, аналогичная примеру предыдущего раздела. Рис. 6. Семантическая сеть Эта сеть может быть реализована в Пролог - программе является (ласточка, птица) является (Юка, ласточка) имеет (крылья, птица) имеет (X, Y): - является (Y, Z), имеет (X, Z). /* учитывает иерархию наследования */ При учете в модели знаний, представленных семантической сетью, такого свойства всех ласточек, что они черного цвета, в программу достаточно добавить факт: имеет (черный цвет, ласточка) Если модель знаний будет дополнена общим свойством для всего класса птиц, таким, что они летают, то это приведет к добавлению в программу не только факта летает (птица) но и правила, которое должно реализовать иерархию наследования, т. е. летает (Х):- является (Х, Y), летает (Y). Элементы семантической сети Семантическая сеть представляет собой ориентированный граф с помеченными (поименованными) дугами и вершинами. Основными элементами сети являются вершины и дуги. При этом вершинам семантической сети соответствуют понятия, события и свойства (рис. 7). Рис. 7. Вершины семантической сети Понятия представля ют собой сведения об абстрактных или физических объектах предметной области (реального мира). События представляют собой действия происходящие в реальном мире и определяются: - указание типа действия; - указание ролей, которые играют объекты в этом действии. Свойства используются для уточнения понятий и событий. Применительно к понятиям они описывают их особенности и характеристики (цвет, размер, качество), а применительно к событиям - продолжительность, время, место. Дуги графа семантической сети отображают многообразие семантических отношений, которые условно можно разделить на четыре класса (рис. 8). Рис. 8. Классификация семантических отношений Лингвистические отношения отображают смысловую взаимосвязь между событиями, между событиями и понятиями или свойствами. Лингвистические отношения бывают: - глагольные (время, вид, род, залог, наклонение); - атрибутивные (цвет, размер, форма); - падежными (см. ниже). Логические отношения - это операции, используемые в исчислении высказываний (алгебра логики): дизъюнкция, конъюнкция, инверсия, импликация. Теоретико-множественные - это отношение подмножества, отношение части целого, отношение множества и элемента. Примерами таких отношений являются IS-A, PART-OF. Квантифицированные отношения - это логические кванторы общности и существования. Они используются для представления таких знаний как «Любой станок надо ремонтировать», «Существует работник А, обслуживающий склад Б». Рассмотренные выше примеры семантических сетей отображали знания о структуре понятий и их взаимосвязях. Далее рассмотрим использование семантических сетей для представления событий и действий. Представление структуры понятий семантической сетью Основой для определения любого понятия является множество его отношений с другими понятиями. Обязательными отношениями являются: - класс, которому принадлежит данное понятие; - свойства, выделяющие понятие из всех понятий данного класса; - примеры (экземпляры) данного понятия. Так как термы, используемые в определении понятия, сами являются понятиями, то их определение организуется по той же схеме. В итоге связи понятий образуют структуру, в общем случае сетевую, в которой используется как минимум два типа связей (IS - A и PART – OF). Пример: Семантическая сеть, отображающая связи понятий при описании знаний о структуре понятия юридическое лицо будет иметь вид (рис. 9): Рис. 9. Пример семантической сети Так для понятия «предприятие» в этой сети: - определен класс, которому оно принадлежит, и все свойства которого оно наследует («Юридическое лицо»); - выделено 3 свойства, которые выделяют это понятие из всех остальных понятий класса «Юридическое лицо»; - определен экземпляр данного понятия (объекта), а именно «З-д «Салют». Представление событий семантической сетью При представлении событий предварительно выделяются простые отношения, которые характеризуют основные компоненты события. В первую очередь из события выделяется действие, которые обычно описываются глаголом. Далее определяются: - объекты, которые действуют; - объекты, над которыми эти действия выполняются. Все связи понятий, событий и свойств с действием (глаголом) называют падежами или падежными отношениями, которые относятся к классу лингвистических отношений. Обычно рассматривают следующие падежи (Таблица 1). Таблица 1 Основные падежи Лингвистическое (падежное) отношение, определяющее связь действия с: агент - предметом, являющимся инициатором действия объект - предметом, подвергающимся действию источник - размещение предмета перед действием приемник- размещение предмета после действия время - моментом выполнения действия место - местом проведения действия цель - действием другого события Падеж Так, например, семантическая структура знания о событии «Директор завода «Салют» остановил 30.03.96 цех №4 чтобы заменить оборудование» будет представлена в виде рис. 10. Рис. 10. Пример семантической структуры Получение вывода с помощью семантической сети Особенность семантической сети как модели знаний состоит в единстве базы знаний и механизма вывода. При формировании запроса к базе знаний: строится семантическая сеть, отражающая структуру запроса; вывод обеспечивается за счет сопоставления общей сети базы знаний и сети для запроса. Рассмотрим пример семантической сети отражающий подчиненность сотрудников организации (рис. 11). Рис. 11. Семантическая сеть «Подчиненность сотрудников организации» Приведенные связи показывают подчиненность первого сотрудника. Остальные сотрудники связываются через вершины сети. Остальные сотрудники связываются через вершины сети «руководит 2», «руководит 3» и т. д. Запрос: «Кто руководит Сидоровым?», представим в виде подсети (рис. 12. Рис. 12. Семантическая сеть «Кто руководит Сидоровым?» Составление общей сети с сетью запроса начинается с поиска вершины «руководит», имеющий ветвь «объект», направленную к вершине «Сидоров». Затем производится переход по ветви «агент», что и приводит к ответу «Петров». Наряду с методом сопоставления, в семантических сетях используется метод перекрестного поиска, при котором осуществляется: 1. поиск отношения между понятиями; 2. ответ на запрос формируется путем обнаружения вершины, в которой пересекаются дуги, идущие из других вершин. Пример представления знаний семантической сетью Результатом представления знаний, содержащихся в предложении: «Если станок закончил обработку, робот грузит кассету с деталями на робокар, который перевозит их на склад». Выделим основные факты этих знаний, соответствующие действиям: F1 - станок закончил обработку F2 - работник грузит F3 - робокар перевозит F4 - кассета содержит детали Заметим, что при описании фраз естественного языка факты часто называют высказываниями. Схема семантической сети будет следующей (рис. 13): Рис. 13. Построение семантической сети Пример фрагмента программы прямой цепочки рассуждений приведен на рис. 14. Для простоты предполагается, что правила не содержат переменных. Рис. 14. Пример фрагмента программы прямой цепочки рассуждений Поиск решения: 1. На основании фактов, известных на момент решения задачи, можно решить только правило %3. В результате состав фактов станет таким: Вода(гостиная) Сухо(ванная) Закрыто (окно) Неисправность (кухня) 2. Делается попытка решить очередное правило. Таким правилом станет правило %4. В результате к фактам добавится ещё один: Вода(гостиная) Сухо(ванная) Закрыто (окно) Неисправность (кухня) НеПоступает (вода, снаружи) 3. Становится возможным решение правила %2, и получается ответ YES Необходимо отметить ряд преимуществ семантической сети: - описание понятий и событий производится на уровне, очень близком к естественному языку; - обеспечивается возможность сцепления различных фрагментов сети; - отношение между понятиями и событиями образуют достаточно небольшое и хорошо формализованное множество; - для каждой операции над данными и знаниями можно выделить из полной сети, представляющей всю семантику (или все знания), некоторый ее участок, который охватывает необходимые в данном запросе смысловые характеристики. 2. порядок выполнения работы 1. Изучить теоретическую часть по приведенным выше данным и дополнительной литературе; 2. Просмотреть демонстрационные примеры; 3. Получить у преподавателя вариант задания для выполнения; 4. Построить семантическую модель заданного объекта; 5. Реализовать программу с использованием семантической модели. 3. Варианты заданий Используя соответствующие дуги построить семантическую сеть, касающуюся: 1. географии какого-либо региона. Дуги: государство, страна, континент, широта. 2. диагностики глазных заболеваний. Дуги: категории болезней, патофизиологическое состояние, наблюдения, симптомы. 3. распознавания химических структур. Дуги: формула вещества, свойства вещества, область применения, меры предосторожности. 4. процедуры поиска полезных ископаемых. Дуги: наименование ископаемого, расположение месторождения, глубина залегания, методы добычи. 5. судебной процедуры. Дуги: юридическое лицо, событие, меры воздействия, способы расследования. 6. распределения продуктов по магазинам. Дуги: источник снабжения, наименование продукта, способ транспортировки, конечный пункт транспортировки. 7. определения принадлежности животного к определенному виду, типу, семейству. Дуги: место обитания, строение, особенности поведения, вид питания. 8. классификации пищевых продуктов. Дуги: наименование продукта, составляющие части, способ приготовления, срок хранения. 9. распознавания типа компьютера. Дуги: страна изготовитель, стандартная конфигурация, область применения, используемое программное обеспечение. 10. иерархической структуры БД. Дуги: система, состояние, назначение, взаимодействие составляющих. 4. Контрольные вопросы 1. Что такое семантическая сеть и для чего ее применяют? 2. В чем состоит идея создания семантической сети? 3. Каким образом представляются данные в семантической сети? 4. Существуют ли ограничения на число связей элементов, свойств и сложность при построении семантической сети? 5. Ка