5. СЕМАНТИЧЕСКИЕ СЕТИ

Семантической сетью является структура данных, имеющая определенный смысл как сеть. Стандартного определения семантической сети не существует, но обычно под ней подразумевают следующее:

 Семантическая сеть — это система знаний, имеющая определенный
               смысл в виде целостного образа сети,
               узлы которой соответствуют понятиям и объектам,
               а дуги — отношениям между понятиями и объектами.

Следовательно, всевозможные сети можно рассматривать как сети, входящие в состав семантической сети. В том числе к ним могут быть отнесены и сетевые структуры моделей баз данных.

Сама по себе семантическая сеть является моделью памяти и не раскрывает, каким образом осуществляется представления знаний. Поэтому в контексте знакомства с СОЗ семантические сети должны рассматриваться как метод представления знаний с возможностями структурирования этих знаний, процедурами их использования и механизмом вывода.


5.1. Описание иерархической структуры понятий и диаграмма представления

В иерархической структуре понятий существуют отношения, по крайней мере, двух типов:

  • отношение включения или совпадения (IS - A);
  • отношение «целое – часть» (PART - OF).

Например, в предложении

 «ноутбук» (IS - A) «компьютер»
основной мыслью является, что устройство ноутбук принадлежит к классу компьютеров. Это означает, что имеет место отношение включения или совпадения. То есть, ноутбук представляет собой один из элементов множества всевозможных устройств, составляющих класс компьютеров.

Для этих отношений характерным является то, что экземпляры понятий нижнего уровня содержат все атрибуты понятий верхнего уровня. Это свойство называется наследованием атрибутов между уровнями иерархии (IS - A). Для рассматриваемого примера это означает, что ноутбук, как понятие более низкого уровня, будет обладать всеми свойствами (атрибутами), определенными для понятия компьютер.

Отношение «целое – часть» можно иллюстрировать предложением, которое характеризует то, что экземпляры понятия «процессор» являются частью любого экземпляра понятия «компьютер».

 «процессор» (PART - OF) «компьютер»,
Отношения типа (PART - OF) позволяют определить некоторые общие свойства (набор атрибутов) для конкретного класса понятий. В частности, приведенный выше пример отношения описывает тот факт, что общим свойством всех компьютеров является наличие в их составе процессоров. И это свойство будет наследоваться всеми экземплярами понятия ноутбук.

Наиболее часто используется графическое представление семантических сетей в виде диаграммы. Так предложение

 «все ласточки – птицы»
можно представить графом, содержащим две вершины соответствующие понятиям и дугу, указывающую отношение между этими понятиями (рис. 5.1).


Рис. 5.1. Простейшая семантическая сеть.

Если ласточка имеет конкретное имя, например, "Ласта", то семантическая сеть может быть расширенна (рис. 5.2).


Рис. 5.2. Семантическая сеть с иерархией двух понятий.

Наряду с тем, что с помощью данной сети описаны два факта:
 «Ласта – ласточка»
 «ласточка – птица»
из нее можно вынести, используя отношение наследования, новый факт:
 «Ласта – птица»
Этот факт показывает, что способ представления семантической сетью позволяет легко делать выводы благодаря иерархии наследования между уровнями.

Семантическими сетями можно также представлять знания, касающиеся атрибутов объекта. Например, факт

 «Птицы имеют крылья»
можно отобразить в виде рис. 5.3.


Рис. 5.3. Cемантическая сеть с понятиями и атрибутами.

Это означает, что, используя отношения (IS – A) и (PART – OF) можно вывести новый факт, а именно

 «Ласта имеет крылья».

Вершины в семантической сети обычно показывают объект проблемной области, концепт, ситуацию и т. п., а дуги - это отношения между ними. При расширении семантической сети в ней возникают дополнительные отношения. Например, если рассматриваемую сеть дополнить фактами:

 «Ласта владеет гнездом»
  и
 «Ласта владеет гнездом с весны по осень»,
то получим семантическую сеть, изображенную на рис. 5.4.


Рис. 5.4. Структура расширенной семантической сети.

Здесь "Гнездо i" – это конкретное гнездо, которым владеет "Ласта", а для вершины ситуации (например, "Владеет j") определено несколько связей. Такая вершина называется падежной рамкой и определяет различные аргументы предиката ситуации.


5.2. Семантическая сеть как Пролог - программа

Важнейшей концепцией формализма семантических сетей является иерархия понятий и связанное с ней наследование атрибутов между уровнями иерархии (IS - A).

Если семантическую сеть рассматривать как описание отношений, которые поддерживаются между понятиями, то ее непосредственно, можно реализовать на языке Пролог. На рис. 5.5 представлена структура сети, аналогичная примеру предыдущего раздела.


Рис. 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.


Рис. 5.6. Реализация семантической сети, представленной на рис. 5.5.

Если модель представления знаний должна учитывать такое свойство всех ласточек, что все они имеют черный цвет, то рассматриваемая семантическая сеть должна быть дополнена еще одной вершиной и дугой, связывющей эту вершину с понятием ласточка отношением PART_OF (рис. 5.7).


Рис. 5.7. Cемантическая сеть, учитывающая черный цвет ласточек.

Для реализации этой семантической сети в исходную Пролог-программу достаточно добавить всего лишь один факт, а именно:

 имеет (черный_цвет, ласточка).
Пример реализация этой программы в среде Турбо-Пролога, и возможные запросы к ней могут иметь вид, аналогичный тому, что представлен на рис. 5.8.


Рис. 5.8. Программная реализация семантической сети, представленной на рис. 5.7.

В том случае, если проектируемая модель представления знаний должна учитывать такое общее для всего класса птиц свойство, что они летают, то исходную семантическую сеть следует немного преобразовать и она будет иметь вид (рис. 5.9):


Рис. 5.9. Учет общего свойства птиц, что они летают.

Особенность перехода от этой семантической сети к Пролог-программе состоит в том, что он потребует добавления в программу не только факта

 летает (птица).
но и правила, которое должно реализовать иерархию наследования. В данном конкретном случае оно будет иметь вид:
 летает (Х):- является (Х, Y), летает (Y).

Программная реализация этой семантической сети в среде Турбо-Пролога и возможные запросы к ней могут иметь вид, аналогичный тому, что представлен на рис. 5.10.


Рис. 5.10. Программная реализация семантической сети, представленной на рис. 5.9.

Следует отметить, что в рассматриваемой модели представления знаний понятие птица не имеет никаких биологических атрибутов. Оно определено как некоторый объект, который имеет крылья и может летать. Под такое определение понятия птица подподает и такой объект, как самолет, что может быть учтено в семантической сети (рис. 5.11).


Рис. 5.11. Пример семантической сети.

Программная реализация этой семантической сети в среде Турбо-Пролога приведена на рис. 5.12. Запросы к ней подтверждают, что объект самолет обладает такими свойствами, как наличие крыльев и способность летать.


Рис. 5.12. Программная реализация семантической сети, представленной на рис. 5.11.

В том случае, когда понятие "птица" будет иметь такие свойства, которые принципиально отличают его от понятия "самолет", следует в семантическую сеть ввести новый объект. Для него надо будет переопределить свойство "летает", а в качестве его наследников определить обекты "птица" и "самолет".


5.3. Элементы семантической сети

Семантическая сеть представляет собой ориентированный граф с помеченными (поименованными) дугами и вершинами. Основными элементами сети являются вершины и дуги. При этом вершинам семантической сети соответствуют понятия, события и свойства (рис. 5.13).


Рис. 5.13. Вершины семантической сети.

  • Понятия — представляют собой сведения об абстрактных или физических объектах предметной области или реального мира.
  • События — представляют собой действия происходящие в реальном мире и определяются:
    • указанием типа действия;
    • указанием ролей, которые играют объекты в этом действии.
  • Свойства — используются для уточнения понятий и событий. Применительно к понятиям они описывают их особенности и характеристики (цвет, размер, качество), а применительно к событиям — продолжительность, время, место.

Дуги графа семантической сети — отображают многообразие семантических отношений, которые условно можно разделить на четыре класса (рис. 5.14).



Рис. 5.14. Классификация семантических отношений.

Лингвистические отношения — отображают смысловую взаимосвязь между событиями, между событиями и понятиями или свойствами. Лингвистические отношения бывают:

  • глагольные (время, вид, род, залог, наклонение);
  • атрибутивные (цвет, размер, форма);
  • падежными (см. ниже).

Логические отношения — это операции, используемые в исчислении высказываний (алгебре логики): дизъюнкция, конъюнкция, инверсия, импликация.

Теоретико-множественные — это отношение подмножеств, отношение части и целого, отношение множества и элемента. Примерами таких отношений являются "IS-A" и "PART-OF".

Квантифицированные отношения — это отношения, которые используют логические кванторы общности и существования. Они используются для представления таких знаний как «Любой станок надо ремонтировать», «Существует работник А, обслуживающий склад Б».


5.4. Представление структуры понятий семантической сетью

Основой для определения любого понятия является множество его отношений с другими понятиями. Обязательными отношениями являются:

  • класс, к которому принадлежит данное понятие;
  • свойства, выделяющие конкретное понятие из всех понятий данного класса;
  • примеры (экземпляры) данного понятия.

Так как термины, используемые в определении понятия, сами являются понятиями, то их определение организуется по той же схеме. В итоге связи понятий образуют структуру, в общем случае сетевую, в которой используется как минимум два типа связей: "IS - A" и "PART – OF".

Рассмотрим пример семантической сети, которая будет отображать связи понятий при описании знаний о структуре понятия предприятие. В упрощенном виде она может иметь вид, аналогичный тому, что приведен на рис. 5.15.



Рис. 5.15. Пример семантической сети.

Так для понятия «предприятие» в этой сети:

  • определен класс, к которому оно принадлежит, и все свойства которого оно наследует («Юридическое лицо»);
  • выделено 3 свойства, которые выделяют это понятие из всех остальных понятий класса «Юридическое лицо»;
  • определен экземпляр данного понятия (объекта), а именно «З-д «Салют».

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


5.5. Представление событий семантической сетью

При представлении событий предварительно выделяются простые отношения, которые характеризуют основные компоненты события. В первую очередь из события выделяется действие, которые обычно описываются глаголом. Далее определяются:

  • объекты, которые действуют;
  • и объекты, над которыми эти действия выполняются.

Все связи понятий, событий и свойств с действием (глаголом) называют падежами или падежными отношениями, которые относятся к классу лингвистических отношений. Обычно рассматривают следующие падежи (табл. 5.1).

Таблица 5.1

Таблица основных лингвистических отношений (падежов).

Падеж Лингвистическое (падежное) отношение, определяющее связь действия с:
агент    - предметом, являющимся инициатором действия
объект    - предметом, подвергающимся действию
источник   - размещение предмета перед действием
приемник   - размещение предмета после действия
время    - моментом выполнения действия
место    - местом проведения действия
цель    - действием другого события

Так, например, семантическая структура знания о событии:
 «Директор завода «Салют» остановил 10.10.13 цех №4,
 чтобы заменить оборудование»
может быть представлена в виде, аналогичном тому, что приведен на рис. 5.16.



Рис. 5.16. Пример семантической сети, описывающей события.


5.6. Получение вывода с помощью семантической сети

Особенность семантической сети как модели представления знаний состоит в единстве базы знаний и механизма вывода. При формировании запроса к базе знаний (БЗ):

  • строится семантическая сеть, отражающая структуру запроса;
  • вывод обеспечивается за счет сопоставления общей сети БЗ и сети для запроса.

Рассмотрим пример семантической сети, которая отражает иерархию подчиненности сотрудников некоторой организации организации (рис. 5.17).


Рис. 5.17. Семантическая сеть «Подчиненность сотрудников организации».

Приведенные связи показывают подчиненность первого сотрудника. Остальные сотрудники связываются через вершины сети «руководит 2», «руководит 3» и т.д.

Запрос: «Кто руководит Сидоровым?» может быть представлен как фрагмент общей сети. Например, он может иметь вид подсети, приведенной на рис. 5.18.


Рис. 5.18. Семантическая подсеть «Кто руководит Сидоровым?».

Составление общей сети с сетью запроса начинается с поиска вершины «руководит», имеющий ветвь «объект», направленную к вершине «Сидоров». Затем производится переход по ветви «агент», что и приводит к ответу «Петров».

Наряду с методом сопоставления, в семантических сетях используется метод перекрестного поиска, при котором осуществляется:

  • поиск отношения между понятиями;
  • ответ на запрос формируется путем обнаружения вершины, в которой пересекаются дуги, идущие из друг вершин.


5.7 Пример представления знаний семантической сетью

Поставим задачу разработки семантической модели представления знаний, которые содержатся в следующем описании некоторой предметной области:

 «Если станок закончил обработку, робот грузит кассету 
 с деталями на робокар, который перевозит их на склад».

На первом этапе решения этой задачи необходимо выделить основные объекты и понятия, о которых идет речь в данном описании, а также события и действия, которые устанавливают взаимосвязи между этими объектами и понятиями.

Из анализа содержания исходной фразы следует, что в ней взаимодействуют такие основные понятия, как "Cтанок", "Деталь", "Кассета", "Робот", "Робокар" и "Склад". К числу основных событий, которые в исходной фразе описываются глаголом, следует отнести: "Закончил", "Грузит", "Перевозит".

На основе выделенных понятий и событий появляется возможность из исходного описания предметной области выделить описание элементарных действий:

  • F1 - станок закончил обработку
  • F2 - работник грузит
  • F3 - робокар перевозит

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

  • F1 - станок закончил обработку детали
  • F2 - робот грузит кассету на робокар
  • F3 - робокар перевозит кассету на склад
  • F4 - кассета содержит детали

На втором этапе необходимо установить связь между выделенными, в описании предметной области, действиями. В качестве примера рассмотрим взаимодействия только двух событий: "F1-Закончил обработку" и "F2-Грузит". Графическое представления этого взаимодействия в виде фрагмента семантической сети может иметь вид, представленный на рис. 5.19.


Рис. 5.19. Фрагмент сети, описывающий взаимодействие событий F1 и F2.


Выполнив аналогичный анализ для всех возможных сочетаний взаимодействий всех возможных событий, появится возможность построить обобщенную модель семантической сети, которая будет описывать знания об исходной предметной области. Для рассматриваемого примера такая сеть будет иметь вид, представленный на рис. 5.20.


Рис. 5.20. Обобщенная семантическая сеть.


Заметим, что при описании фраз естественного языка факты часто называют высказываниями. Кроме этого, как отмечалось выше, схема семантической сети может служит простым к реализации описания знаний о предметной области на языке Пролог. В качестве примера можно привести набор основных Пролог-правил, которые содержатся в полученном фрагменте семантической сети:

 грузит(робот, X, робокар) :- закончил_обработку(станок, Z),
                              содержит(X, Z).
  
 перевозит(X, Y, склад)    :- грузит(робот, Y, X).
 
 содержит(кассета, X)      :- закончил_обработку(станок, X).


В заключении необходимо отметить ряд преимуществ использования семантических сетей:
  • описание понятий и событий производится на уровне, очень близком к естественному языку;
  • обеспечивается возможность сцепления различных фрагментов сети;
  • отношение между понятиями и событиями образуют достаточно не-большое и хорошо формализованное множество;
  • для каждой операции над данными и знаниями можно выделить из полной сети, представляющей всю семантику (или все знания), некоторый ее участок, который охватывает необходимые в данном запросе смысловые характеристики.