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

Семантическая сеть - структура для представления знаний в виде узлов, соединенных дугами. Самые первые семантические сети были разработаны в качестве языка-посредника для систем машинного перевода, а многие современные версии до сих пор сходны по своим характеристикам с естественным языком. Однако последние версии семантических сетей стали более мощными и гибкими и составляют конкуренцию фреймовым системам, логическому программированию и другим языкам представления.
Начиная с конца 50-ых годов были создано и применены  на практике десятки вариантов семантических сетей. Несмотря на то, что терминология и их структура различаются, существуют сходства, присущие практически всем семантическим сетям:
1. узлы семантических сетей представляют собой концепты предметов, событий, состояний;
2. различные узлы одного концепта относятся к различным значениям, если они не помечено, что они относятся к одному концепту;
3. дуги семантических сетей создают отношения между узлами-концептами (пометки над дугами указывают на тип отношения);
4. некоторые отношения между концептами представляют собой лингвистические падежи, такие как агент, объект, реципиент и инструмент (другие означают временные, пространственные, логические отношения и отношения между отдельными предложениями;
5. концепты организованы по уровням в соответствии со степенью обобщенности так как, например,  сущность, живое существо, животное, плотоядное,;
Однако существуют и различия: понятие значения с точки зрения философии; методы  представления кванторов общности и существования и логических операторов; способы манипулирования сетями и правила вывода, терминология. Все это варьируется от автора к автору. Несмотря не некоторые различия, сети удобны для чтения и обработки компьютером, а также достаточно мощны, чтобы представить семантику естественного языка.

ИСТОРИЧЕСКАЯ СПРАВКА.

Фрег представил логические формулы в виде деревьев, которые однако мало напоминают современные семантические сети. Еще одним пионером стал Чарльз Сандерз Прис, который использовал графические записи в органической химии.
Он сформулировал правила выводы с использованием экзистенциональных графов.
В психологии Зельц использовал графы для представления наследственности некоторых характеристик в иерархии концептов. Научные изыскания Зельца имели огромное влияние на изучение тактики в шахматах, который в свою очередь повлиял на таких теоретиков, как Саймон и Ньюэлл.
Что касается лингвистики, то первым ученым, занимавшимся разработкой графических описаний, стал Теньер. Он использовал графическую запись для своей грамматики зависимостей. Теньер оказал огромное влияние на развитие лингвистики в Европе. 
Впервые семантические сети были использованы в системах машинного перевода в конце 50-х - начале 60-х годов. Первая такая система, которую создала Мастерман, включала в себя 100 примитивных концептов таких, как, например, НАРОД, ВЕЩЬ, ДЕЛАТЬ, БЫТЬ. С помощью этих концептов она описала словарь объемом 15000 единиц, в котором также имелся механизм переноса характеристик с гипертипа на подтип. Некоторые системы машинного перевода базировались на корреляционных сетях Цеккато, которые представляли собой набор 56 различных отношений, некоторые из которых - падежные отношения, отношения подтипа, члена, части и целого.  Он использовал сети, состоящие из концептов и отношений для руководства действиями парсера и разрешения неоднозначностей.
В системах искусственного интеллекта семантические сети используются для ответа на различные вопросы, изучение процессов обучения, запоминания и рассуждений. В конце 70-х сети получили широкое распространение. В 80-х годах границы между  сетями, фреймовыми структурами и линейными формами записи постепенно стирались. Выразительная сила больше не является решающим аргументом в пользу выбора сетей или линейных форм записи, поскольку идеи записанные с помощью одной формы записи могут быть легко переведены в другую. И наоборот, особо важное значение получили второстепенные факторы, как читаемость, эффективность, неискусственность и теоретическая элегантность, также учитываются легкость введения в компьютер, редактирование и распечатка.

РЕЛЯЦИОННЫЕ ГРАФЫ.

Самые простые сети, которые используются в системах искусственного интеллекта, - реляционные графы. Они состоят из узлов, соединенных дугами. Каждый узел представляет собой понятие, а каждая дуга - отношения между различными понятиями. На рисунке 1 представлено предложение “Собака жадно гложет кость”.  Четыре прямоугольника представляют понятия  собаки, процесса гложения, кости и такой характеристики, как жадность. Надписи над дугами означают, что собака является агентов гложения, кость является объектом гложения, а жадность - это манера гложения.
Терминология, использующаяся в этой области различна. Чтобы добиться некоторой однородности, узлы, соединенные дугами, принято называть графами, а структуру, где имеется целое гнездо из узлов или где существуют отношения различного порядка между графами, называется сетью. Помимо терминологии, использующейся для пояснения, также различаются способы изображения. Некоторые используют кружки вместо прямоугольников; некоторые пишут типы отношений прямо над дугами, не заключая их в овалы; некоторые используют аббревиатуры, например О или А для обозначения агента или объекта; некоторые используют различные типы стрелок. На рисунке 2 изображен граф концептуальных зависимостей Шенка. <=> означает агента. INGEST (поглощать) - один из примитивов Шенка: ЕСТЬ - ПОГЛОЩАТЬ твердый объект; ПИТЬ - ПОГЛОЩАТЬ жидкий объект; ДЫШАТЬ - ПОГЛОЩАТЬ газообразный объект. Дополнительная стекла слева показывает, что кость переход из неуказанного места к собаке.
Поскольку довольно сложно ввести в компьютер некоторые диаграммы и при этом они занимают много места при печати, многие ученые записывают свои графы в более компактном варианте. Например, то же предложение Сова предложил записать в линейном виде с использованием некоторых элементов из рисунка 1:
[ЕСТЬ]-
           (AGNT) -> [СОБАКА]
           (OBJ) -> [КОСТЬ]
           (MANR) -> [ЖАДНОСТЬ]

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

ГРАФЫ С ЦЕНТРОМ В ГЛАГОЛЕ.

Глаголы соединяются с группой существительного с использованием падежных отношений. Например, с предложении “Mary gave a book to Fred”, Mary агент давания, book объект этого процесса, а Fred реципиент глагола “давать”. Помимо падежных отношений в предложении в естественном языке также имеются средства для связи отдельных предложений. Такие отношения необходимы для следующего:

Союзы. Самый простой способ соединить предложения - это поставить между ними союз. Некоторые союзы, как например “и”, “или”, “если” обозначают логическую связь; некоторые, такие как  “после того, как”, “когда”, “пока”, “с тех пор, как” и “потому что”, выражают временные отношения и причину.
Глаголы, требующие подчиненное предложение. Падежные фреймы многих глаголов требуют подчиненного предложения, являющегося обычно прямым дополнением. К такому типу относятся глаголы “говорить”, “считать”, “думать”, “знать”, “быть убежденным”, “угрожать”, “пытаться” и др.

Определители, относящиеся к целому предложению. Многие наречия и пропозиционные фразы относятся только к глаголу, но некоторые определяют целое предложение. Такие наречия, как “обычно”, “вероятно”, в большинстве случаев ставятся в начале предложения. А например, слово “однажды” определяет весь рассказ, следующий после него.

Модальные глаголы и времена. Такие глаголы, как “may”, “can”, “must”, “should”, “would” и “could” имеют модальное значение и относятся ко всему предложению, где они встречаются. Временное отношение может быть выражено как формой прошедшего времени глаголов, так и обстоятельствами “сейчас”, “завтра” или “однажды” и другими.

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

Именно потому, что глагол отводится такая важная роль в предложении, многие теория делают его своим центральным связующим звеном. Этот подход берет свое начало из Индо-Европейской языковой семьи, где модальность и временные отношения выражаются изменением глагольной формы. Рассмотрим следующий пример: “While a dog was eating a bone, a cat passed by unnoticed”.  В этом предложении сообщено, что, когда предложение “While a dog was eating a bone” являлось истинным,  второе предложение “A cat passed unnoticed” также является истинным. На рисунке 3 изображен  граф с центром в глаголе. Союз “while” (WHL) соединяет узел PASS-BY с узлом EAT. На рисунке 3 показано, что собака является агентом незамечания (not noticing).
Графы с центром в глаголе - это реляционные графы, где глагол считается центральным звеном любого предложения. Маркеры времени и отношения пишутся прямо рядом  с концептами, которые представляют глаголы.  Графы концептуальных зависимостей Роджера Шенка также используют этот подход. 
Несмотря на то, что графы с центром в глаголе довольно гибкие по своей структуре, они обладают рядом ограничений. Одно из них заключается в том, что они не проводят разграничение между определителями, которые относятся только к глаголу, и определителями, относящимися к предложению целиком. Рассмотрим  следующие примеры:

The dog greedily ate the bone.
Greedily, the dog ate the bone.

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

ПРОПОЗИЦИОННЫЕ СЕТИ.

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

Sue thinks that Bob believes that a dog is eating a bone.
If a dog is eating a bone, it is unwise to try to take it away from him.

В первом предложении для глаголов “think” и “believe” целое предложение является дополнением: Боб считает, что “А dog is eating a bone”, то, что думает Сью представляет собой более сложное предложение-“Bob believes that a dog is eating a bone”. Такое гнездование предложений внутри других предложений может повторятся сколь угодно большое количество раз. Чтобы изобразить такое предложение, необходимо использовать пропозиционные узлы, которые содержат гнездящиеся графы. На рисунке 4 изображена пропозиционная сеть для этого предложения. Отметим, что (EXP) - experiencer, то есть тот кто испытывает, соединяет THINK с Сью, а BELIEVE с Бобом, однако EAT и DOG соединены между собой агентивным отношением (AGNT). Причиной разного типа отношений является тот факт, что думать и считать-это состояния, испытываемые людьми, а поедание-это действие осуществляемое агентом.
Во втором примере представлены два предложения, находящиеся в отношении условия. Антецедентом является предложение “А dog is eating a bone”, а консеквентом предложение “It is unwise to try to take it away from him”. Инфинитивы “to try” и “to take” указывают на другие, гнездящиеся предложения. На гнездящиеся предложения также указывает оборот “it is unwise”. Для этого предложения также необходимо указать соответствие между “it”, “him” и “bone” и “dog”. Связи соответствия обозначены пунктиром. Для формальной записи этого предложения также используются кванторы общности и существования и некоторые элементы логики. 
Все реляционные графы и графы с центром в глаголе имеют много общего.  Однако среди них существуют также и отличия:
1. Включение контекста или всего лишь его условное обозначение с отсылкой на схеме.
2. Строгое гнездование: один и тот же концепт может или не может встречаться в двух разных контекстах, ни один из которых не гнездиться в другом.
3. Указание связей соответствия. При перекрещивающемся контексте, то есть когда  они один и тот же концепт встречается в двух разных контекстах, эти связи не указываются.
 Однако это всего лишь стилистические расхождения, которые не влияют существенно на логику построения.

ИЕРАРХИЯ ТИПОВ.

Иерархия типов и подтипов является стандартной характеристикой семантических сетей. Иерархия может включать сущности: ТАКСА<СОБАКА<ПЛОТОЯДНОЕ<ЖИВОТНОЕ<ЖИВОЕ СУЩЕСТВО<ФИЗИЧЕСКИЙ ОБЪЕКТ<СУЩНОСТЬ. Они также могут включать в себя события: ЖЕРТВОВАТЬ<ДАВАТЬ<ДЕЙСТВИЕ<СОБЫТИЕ или состояния: ЭКСТАЗ<СЧАСТЬЕ<ЭМОЦИОНАЛЬНОЕ СОТОЯНИЕ<СОСТОЯНИЕ. Иерархия Аристотеля включала в себя 10 основных категорий: субстанция, количество, качество, отношение, место, время, состояние, активность и пассивность. Некоторые учение дополнили его своими категориями.
Символ < между более общим и более частным символом читается как: “Х-тип/подтип У”.
Термин “иерархия” обычно обозначает частичное упорядочение, где одни типы являются более общими, чем другие. Упорядочение является частичным, потому, что многие типы просто не подлежат сравнению между собой. Сравним HOUSE<DOG и DOG<HOUSE бессмысленны, если их сравнивать, однако слово DOGHOUSE является подтипом HOUSE, но не DOG. Рассмотрим некоторые виды графов:

Ацикличный граф. Любое частичное упорядочение может быть изображено, как граф без циклов. Такой граф имеет ветви, которые расходятся и сходятся вместе опять, что позволяет некоторым узлам иметь несколько узлов-родителей. Иногда такой тип графа называют путанным.

Деревья. Самым распространенным видом иерархии является граф с одной вершиной. В такого рода графах налагаются ограничения на ацикличные графы: вершина графа представляет собой один общий тип, и каждый другой тип Х имеет лишь одного родителя У.

Решетка. В отличие от деревьев узлы в решетке могут иметь несколько узлов родителей. Однако здесь налагаются другие ограничения: любая пара типов Х и У как минимум должна иметь общий гипертип  ХиУ и подтип ХилиУ. Вследствие этого ограничения решетка выглядит, как дерево, имеющее по главной вершине с каждого конца. Вместо всего одной вершины решетка имеет одну вершину, которая является гипертипом всех категорий, и другую вершину, которая является подтипом всех типов.

НАСЛЕДОВАНИЕ.

Основным свойством иерархии является возможность наследования подтипами качеств гипертипов: все характеристики, которые присущи ЖИВОТНОМУ, также присущи МЛЕКОПИТАЮЩЕМУСЯ, РЫБЕ и ПТИЦЕ. В основе теории наследования лежит теория силлогизмов Аристотеля: Если А - характеристика В, а В - х-ка С, то А хар-ка всех С.
Преимущества иерархии и наследования:
Иерархия типов является отличной структурой для индексирования базы знаний и ее эффективной организации.
Следование по какой-либо ветви с помощью иерархии  осуществляется гораздо быстрее.

СИНТАКСИЧЕСКИЙ АНАЛИЗ ЯЗЫКА И ЕГО ПОРОЖДЕНИЕ.

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

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

Синтаксический анализатор  с использованием семантики.  Синтаксический анализатор с использованием семантики оперирует также как и парсер, в основе которого лежит синтаксис. Однако он оперирует не с синтаксическими категориями типа группа подлежащего и группа сказуемого, а  с концептами высокого уровня типа КОРАБЛЬ и ПЕРЕВОЗИТЬ.

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

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

Аргументы за и против различных техник парсинга часто основывался не на конкретные данные, а больше на уже устоявшемся мнении. И лишь один проект  на практике сравнил несколько видов парсинга - это Язык Семантических Репрезентаций, проект разработанный в Университете Берлина. В течение нескольких лет они создали четыре разных вида парсеров  для анализа немецкого языка и его записи на Язык  Семантических Репрезентаций, который представляет собой сеть.

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

Эти результаты в принципе соответствуют мнению других лингвистов: синтаксически ориентированные парсеры наиболее целостны, однако для них необходим определенный набор сетевых операторов для плавного взаимодействия  между грамматикой и семантическими сетями.
Порождение языка по семантической сети представляет собой обратный парсинг. Вместо синтаксического анализа некоторй цепочки с целью порождения сети генератор языка производит парсинг сети для получения некоторой цепочки. Существует два варианта порождения языка из семантической сети. 
1. Генератор языка просто следует по сети, превращая концепты в слова, а отношения, указанные рядом с дугами, в отношения естественного языка. Этот метод имеет много ограничений.
2. Подходы, ориентированные на синтаксис контролируют порождение языка с помощью грамматических правил, которые используют сеть для того, чтобы определить, какое следующее правило нужно применить.

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

ОБУЧЕНИЕ МАШИН.

Графы и сети представляют собой простые понятия для программ, которые изучают новые структуры. Их преимущество при обучении заключается в легкости добавления и удаления, а также сравнения дуг и узлов. Ниже представлены программы, которые для обучения использовали семантические сети.
Винстон использовал реляционные графы для описания таких структур, как арки и башни. Машине предлагались примеры  верного и неверного  описания этих структур, а программа создавала графы, которые указывали все необходимые условия для того, чтобы эта структура была именно аркой или башней.
Салветер использовал графы с центром в глаголе для представления падежных отношений, которые требуют различные глаголы. Его программа MORAN для каждого глагола выведет падежный фрейм, сравнивая одни и те же ситуации до и после их описания с использованием этого глагола.
Шенк разработал  теорию Memory-Organization Packets для объяснения  того, как люди узнают новую информацию из конкретных жизненных ситуаций. При этом MOP-это это обобщенная абстрактная структура, которая не имеют отношения ни к одной конкретной ситуации в отдельности.

ПРИМЕНИЕ НА ПРАКТИКЕ.

Семантические сети могут быть записаны практически на любом языке программирования на любой машине. Самые популярные в этом отношении языки LISP и  PROLOG.  Однако многие версии были созданы и на FORTRANе, PASCALе, C и других языках программирования. Для хранения всех узлов и дуг необходима большая память, хотя  первые системы были выполнены в 60-х годах на машинах, которые были гораздо меньше и медленнее современных компьютеров.
Один из самых распространенных языков, разработанных для записи естественного языка в виде сетей, - это PLNLP (Programming Language for Natural Language Processing) Язык Программирования для Обработки Естественного Языка, созданный Хайдерном. Этот язык используется для работы с большими грамматиками с обширным покрытием. PLNLP работает с двумя видами правил:
1. с помощью правил декодирования производится синтаксический анализ линейной языковой цепочки и строится сеть.
2. с помощью правил  кодирования сканируется сеть порождается языковая цепочка или другая трансформированная сеть. 
Помимо специальных языков для семантических сетей было также разработано специальное аппаратное обеспечение. На обычных компьютерах могут быть успешно выполнены операции с языками синтаксического анализа и операции сканирования сетей.  Однако для больших баз знаний нахождение нужных правил или доступ к предзнаниям может потребоваться очень много времени. Чтобы позволить различным процессам поисках проходить одновременно Фальман разработал систему NETL, которая представляет собой семантическую сеть, которая может использоваться с параллельным аппаратным обеспечением. Таким образом он хотел создать модель человеческого мозга, в котором сигналы могут двигаться по различным каналам одновременно. Другие ученые разработали параллельное программное обеспечение для поиска наиболее вероятной интерпретации двусмысленных фраз естественного языка.