5. СЕМАНТИЧЕСКИЕ СЕТИСемантической сетью является структура данных, имеющая определенный смысл как сеть. Стандартного определения семантической сети не существует, но обычно под ней подразумевают следующее: Семантическая сеть — это система знаний, имеющая определенный смысл в виде целостного образа сети, узлы которой соответствуют понятиям и объектам, а дуги — отношениям между понятиями и объектами. Следовательно, всевозможные сети можно рассматривать как сети, входящие в состав семантической сети. В том числе к ним могут быть отнесены и сетевые структуры моделей баз данных. Сама по себе семантическая сеть является моделью памяти и не раскрывает, каким образом осуществляется представления знаний. Поэтому в контексте знакомства с СОЗ семантические сети должны рассматриваться как метод представления знаний с возможностями структурирования этих знаний, процедурами их использования и механизмом вывода. 5.1. Описание иерархической структуры понятий и диаграмма представленияВ иерархической структуре понятий существуют отношения, по крайней мере, двух типов:
Например, в предложении «ноутбук» (IS - A) «компьютер»основной мыслью является, что устройство ноутбук принадлежит к классу компьютеров. Это означает, что имеет место отношение включения или совпадения. То есть, ноутбук представляет собой один из элементов множества всевозможных устройств, составляющих класс компьютеров. Для этих отношений характерным является то, что экземпляры понятий нижнего уровня содержат все атрибуты понятий верхнего уровня. Это свойство называется наследованием атрибутов между уровнями иерархии (IS - A). Для рассматриваемого примера это означает, что ноутбук, как понятие более низкого уровня, будет обладать всеми свойствами (атрибутами), определенными для понятия компьютер. Отношение «целое – часть» можно иллюстрировать предложением, которое характеризует то, что экземпляры понятия «процессор» являются частью любого экземпляра понятия «компьютер». «процессор» (PART - OF) «компьютер»,Отношения типа (PART - OF) позволяют определить некоторые общие свойства (набор атрибутов) для конкретного класса понятий. В частности, приведенный выше пример отношения описывает тот факт, что общим свойством всех компьютеров является наличие в их составе процессоров. И это свойство будет наследоваться всеми экземплярами понятия ноутбук. Наиболее часто используется графическое представление семантических сетей в виде диаграммы. Так предложение «все ласточки – птицы»можно представить графом, содержащим две вершины соответствующие понятиям и дугу, указывающую отношение между этими понятиями (рис. 5.1).
Если ласточка имеет конкретное имя, например, "Ласта", то семантическая сеть может быть расширенна (рис. 5.2).
«Ласта – ласточка» «ласточка – птица»из нее можно вынести, используя отношение наследования, новый факт: «Ласта – птица»Этот факт показывает, что способ представления семантической сетью позволяет легко делать выводы благодаря иерархии наследования между уровнями. Семантическими сетями можно также представлять знания, касающиеся атрибутов объекта. Например, факт «Птицы имеют крылья»можно отобразить в виде рис. 5.3.
Это означает, что, используя отношения (IS – A) и (PART – OF) можно вывести новый факт, а именно «Ласта имеет крылья». Вершины в семантической сети обычно показывают объект проблемной области, концепт, ситуацию и т. п., а дуги - это отношения между ними. При расширении семантической сети в ней возникают дополнительные отношения. Например, если рассматриваемую сеть дополнить фактами: «Ласта владеет гнездом» и «Ласта владеет гнездом с весны по осень»,то получим семантическую сеть, изображенную на рис. 5.4.
5.2. Семантическая сеть как Пролог - программаВажнейшей концепцией формализма семантических сетей является иерархия понятий и связанное с ней наследование атрибутов между уровнями иерархии (IS - A). Если семантическую сеть рассматривать как описание отношений, которые поддерживаются между понятиями, то ее непосредственно, можно реализовать на языке Пролог. На рис. 5.5 представлена структура сети, аналогичная примеру предыдущего раздела.
Эта сеть может быть реализована как Пролог - программа, обобщенная структура которой будет иметь вид: is_a (ласточка, птица). is_a ("Ласта", ласточка). /* учет иерархии наследования */ является (X,Y) :- is_a(X,Y). является (X,Y) :- is_a(Z,Y), является(X,Z). имеет (крылья, птица). /* учет наследования атрибутов между уровнями иерархии*/ имеет (X,Y): - является (Y,Z), имеет (X, Z). Один из вариантов реализации этой программы в среде Турбо-Пролога может иметь вид, представленный на рис. 5.6.
Если модель представления знаний должна учитывать такое свойство всех ласточек, что все они имеют черный цвет, то рассматриваемая семантическая сеть должна быть дополнена еще одной вершиной и дугой, связывющей эту вершину с понятием ласточка отношением PART_OF (рис. 5.7).
Для реализации этой семантической сети в исходную Пролог-программу достаточно добавить всего лишь один факт, а именно: имеет (черный_цвет, ласточка).Пример реализация этой программы в среде Турбо-Пролога, и возможные запросы к ней могут иметь вид, аналогичный тому, что представлен на рис. 5.8.
В том случае, если проектируемая модель представления знаний должна учитывать такое общее для всего класса птиц свойство, что они летают, то исходную семантическую сеть следует немного преобразовать и она будет иметь вид (рис. 5.9):
Особенность перехода от этой семантической сети к Пролог-программе состоит в том, что он потребует добавления в программу не только факта летает (птица).но и правила, которое должно реализовать иерархию наследования. В данном конкретном случае оно будет иметь вид: летает (Х):- является (Х, Y), летает (Y). Программная реализация этой семантической сети в среде Турбо-Пролога и возможные запросы к ней могут иметь вид, аналогичный тому, что представлен на рис. 5.10.
Следует отметить, что в рассматриваемой модели представления знаний понятие птица не имеет никаких биологических атрибутов. Оно определено как некоторый объект, который имеет крылья и может летать. Под такое определение понятия птица подподает и такой объект, как самолет, что может быть учтено в семантической сети (рис. 5.11).
Программная реализация этой семантической сети в среде Турбо-Пролога приведена на рис. 5.12. Запросы к ней подтверждают, что объект самолет обладает такими свойствами, как наличие крыльев и способность летать.
В том случае, когда понятие "птица" будет иметь такие свойства, которые принципиально отличают его от понятия "самолет", следует в семантическую сеть ввести новый объект. Для него надо будет переопределить свойство "летает", а в качестве его наследников определить обекты "птица" и "самолет". 5.3. Элементы семантической сетиСемантическая сеть представляет собой ориентированный граф с помеченными (поименованными) дугами и вершинами. Основными элементами сети являются вершины и дуги. При этом вершинам семантической сети соответствуют понятия, события и свойства (рис. 5.13).
Дуги графа семантической сети — отображают многообразие семантических отношений, которые условно можно разделить на четыре класса (рис. 5.14).
Лингвистические отношения — отображают смысловую взаимосвязь между событиями, между событиями и понятиями или свойствами. Лингвистические отношения бывают:
Логические отношения — это операции, используемые в исчислении высказываний (алгебре логики): дизъюнкция, конъюнкция, инверсия, импликация. Теоретико-множественные — это отношение подмножеств, отношение части и целого, отношение множества и элемента. Примерами таких отношений являются "IS-A" и "PART-OF". Квантифицированные отношения — это отношения, которые используют логические кванторы общности и существования. Они используются для представления таких знаний как «Любой станок надо ремонтировать», «Существует работник А, обслуживающий склад Б». 5.4. Представление структуры понятий семантической сетьюОсновой для определения любого понятия является множество его отношений с другими понятиями. Обязательными отношениями являются:
Так как термины, используемые в определении понятия, сами являются понятиями, то их определение организуется по той же схеме. В итоге связи понятий образуют структуру, в общем случае сетевую, в которой используется как минимум два типа связей: "IS - A" и "PART – OF". Рассмотрим пример семантической сети, которая будет отображать связи понятий при описании знаний о структуре понятия предприятие. В упрощенном виде она может иметь вид, аналогичный тому, что приведен на рис. 5.15.
Так для понятия «предприятие» в этой сети:
Рассмотренные в предыдущих параграфах примеры семантических сетей отображали статические знания о структуре понятий и их взаимосвязях. Далее рассмотрим возможность использования семантических сетей для представления событий и действий. 5.5. Представление событий семантической сетьюПри представлении событий предварительно выделяются простые отношения, которые характеризуют основные компоненты события. В первую очередь из события выделяется действие, которые обычно описываются глаголом. Далее определяются:
Все связи понятий, событий и свойств с действием (глаголом) называют падежами или падежными отношениями, которые относятся к классу лингвистических отношений. Обычно рассматривают следующие падежи (табл. 5.1). Таблица 5.1 Таблица основных лингвистических отношений (падежов).
Так, например, семантическая структура знания о событии: «Директор завода «Салют» остановил 10.10.13 цех №4, чтобы заменить оборудование»может быть представлена в виде, аналогичном тому, что приведен на рис. 5.16.
5.6. Получение вывода с помощью семантической сетиОсобенность семантической сети как модели представления знаний состоит в единстве базы знаний и механизма вывода. При формировании запроса к базе знаний (БЗ):
Рассмотрим пример семантической сети, которая отражает иерархию подчиненности сотрудников некоторой организации организации (рис. 5.17).
Приведенные связи показывают подчиненность первого сотрудника. Остальные сотрудники связываются через вершины сети «руководит 2», «руководит 3» и т.д. Запрос: «Кто руководит Сидоровым?» может быть представлен как фрагмент общей сети. Например, он может иметь вид подсети, приведенной на рис. 5.18.
Составление общей сети с сетью запроса начинается с поиска вершины «руководит», имеющий ветвь «объект», направленную к вершине «Сидоров». Затем производится переход по ветви «агент», что и приводит к ответу «Петров». Наряду с методом сопоставления, в семантических сетях используется метод перекрестного поиска, при котором осуществляется:
5.7 Пример представления знаний семантической сетьюПоставим задачу разработки семантической модели представления знаний, которые содержатся в следующем описании некоторой предметной области: «Если станок закончил обработку, робот грузит кассету с деталями на робокар, который перевозит их на склад». На первом этапе решения этой задачи необходимо выделить основные объекты и понятия, о которых идет речь в данном описании, а также события и действия, которые устанавливают взаимосвязи между этими объектами и понятиями. Из анализа содержания исходной фразы следует, что в ней взаимодействуют такие основные понятия, как "Cтанок", "Деталь", "Кассета", "Робот", "Робокар" и "Склад". К числу основных событий, которые в исходной фразе описываются глаголом, следует отнести: "Закончил", "Грузит", "Перевозит". На основе выделенных понятий и событий появляется возможность из исходного описания предметной области выделить описание элементарных действий:
Однако, эти действия в исходной фразе описаны недостачно одназначно, и требуется более подробный анализ предметной области для доопределения выделенных понятий. На основе проведенного анализа, знания могут быть доопределы и представлены следующим набором действий:
На втором этапе необходимо установить связь между выделенными, в описании предметной области, действиями. В качестве примера рассмотрим взаимодействия только двух событий: "F1-Закончил обработку" и "F2-Грузит". Графическое представления этого взаимодействия в виде фрагмента семантической сети может иметь вид, представленный на рис. 5.19.
Выполнив аналогичный анализ для всех возможных сочетаний взаимодействий всех возможных событий, появится возможность построить обобщенную модель семантической сети, которая будет описывать знания об исходной предметной области. Для рассматриваемого примера такая сеть будет иметь вид, представленный на рис. 5.20.
Заметим, что при описании фраз естественного языка факты часто называют высказываниями. Кроме этого, как отмечалось выше, схема семантической сети может служит простым к реализации описания знаний о предметной области на языке Пролог. В качестве примера можно привести набор основных Пролог-правил, которые содержатся в полученном фрагменте семантической сети: грузит(робот, X, робокар) :- закончил_обработку(станок, Z), содержит(X, Z). перевозит(X, Y, склад) :- грузит(робот, Y, X). содержит(кассета, X) :- закончил_обработку(станок, X). В заключении необходимо отметить ряд преимуществ использования семантических сетей:
|