- •Часть 1
- •Оглавление
- •Часть 1
- •Лекция 1 введение
- •1. Цели и задачи дисциплины. Ее место в учебном процессе.
- •2. История развития систем ии
- •3. Философские аспекты систем ии
- •Лекция 2 искуственный интеллект как научное направление
- •1. Человеко-машинные системы с искусственным интеллектом
- •2. Проблема искусственного интеллекта
- •3. Основные направления исследований в системах с искусственным интеллектом
- •Лекция 3 знания и данные
- •1. Знания - необходимая компонента ии
- •2. Макрознания и макроидеи
- •3. Данные и знания. Классификация знаний
- •4. Проблемы представления знаний
- •Лекция 4 представление знаний и рассуждений
- •Лекция 5 логические модели представления знаний
- •1. Предварительные замечания
- •2. Логическая модель представления знаний
- •Лекция 6 псевдофизичесие логики
- •1.Нечеткость в представлении знаний
- •2.Нечеткие множества.
- •3. Нечеткие отношения
- •2.Нечеткие выводы
- •3.Построение Функций принадлежности.
- •Лекция 7 псевдофизические логики
- •Нечеткaя логика
- •1. Нечеткая и лингвистическая переменные.
- •2. Нечеткая и лингвистическая логика
- •Лекция 8 псевдофизические логики
- •Нечеткие высказывания. Нечеткие алгоритмы
- •1. Нечеткие высказывания
- •2. Свойства высказываний.
- •3. Правила преобразования высказываний.
- •4. Понятие нечеткого оператора и алгоритма
- •5. Выполнение нечетких алгоритмов.
- •Лекция 9 продукционные модели представления знаний
- •3. Классификация ядер продукции.
- •4. Методы поиска решений
- •5. Методы логического вывода. Дедуктивный вывод
- •3. Повышение эффективности поиска
- •Лекция 10 методы представления и обработки нечетких знаний в продукционных системах
- •1. Представление экспертной информации
- •2. Представление экспертной информации в виде
- •Лекция 11 методы представления и обработки нечетких знаний в продукционных системах
- •1. Нечеткий вывод на основе дедуктивного логического вывода
- •2. Нечеткий вывод на основе индуктивного логического вывода
- •Лекция 12 сетевые семантические модели представления знаний
- •1. Основные понятия семантических сетей
- •Лекция 13 сетевые семантические модели представления знаний
- •4. Модели семантических сетей. Активные семантические сети (м-сети).
- •Лекция 14 фреймы и объекты
- •Лекция 15 сценарии
- •1. Основные определения
- •3. Каузальные сценарии
- •Лекция 16 модели обучения
- •1. Неформальные модели
- •2. Формальные модели
- •3. Обучение по примерам
- •Лекции 17 обучение по примерам
- •1. Итеративные алгоритмы обучения
- •2. Спецификация задач обучения по примерам
- •Библиографический список
Лекция 14 фреймы и объекты
План лекции
1. Основные понятия фрейма
2. Сети фреймов
3. Принципы обработки данных фреймами
1. Основные понятия фрейма
Семантическая сеть может быть также представлена в виде сети фреймов. Фрейм содержит информационно-процедурные элементы, обеспечивающие преобразование информации. Обычно кодируют знания либо как факты (специфическое знание) и правила (общие знания), либо как фрейм (структуры знания).
Во втором случае модель фреймов и их слотов используется как модель объектов или действий и их свойств. Возможность вывода с использованием фреймов включает демоны, т.е. процедуры, сцепленные со слотами, которые динамически вычисляют производные данные из данных значений слотов и, следовательно, реализуют некоторую последовательность выводов, либо применяется автоматическое порождение атрибутов и свойств из общих категорий применительно к специфическим примерам. Инстанциация фреймов и сравнение фреймов являются наиболее общими эксплицитными методами, используемыми с фреймами.
В структуре фреймов имеются слоты, то есть незаполненные участки, которые заполняются в процессе активации, функционирование фрейма в соответствии с определенными условиями или предписаниями, которыми они сопровождаются. Фреймы либо представляют некоторые области знания, которыми можно манипулировать, как целыми блоками, либо представляют некоторые структуры для определения составных, структурных типов. Соответственно этому фреймы делятся на функциональные и структурные. Фрейм является простым, если он не содержит в себе других фреймов.
Простой функциональный фрейм содержит единственное понятие, выражающее функцию или отношение (центральная вершина фрейма). Из центральной вершины простого функционального фрейма к его периферическим вершинам ведут помеченные дуги. Центральная вершина помечена именем функции, а периферические — именами переменных и констант.
Простой структурный фрейм рассматривается как произвольный ориентированный граф, вершины которого помечены именами переменных или констант. Структурные фреймы можно использовать для рекурсивного задания типов. Типы (сорта, семантические категории) представляют неформальные, общие, родовые свойства физических или абстрактных объектов, которые мы выделяем в окружении. Примеры типов: ПОСТАВЩИК, ПРЕДПРИЯТИЕ. Из данных типов мы можем образовывать новые, более сложные типы. Термин «фрейм» в традиционном понимании равнозначен термину «объект» в терминологии объектно-ориентированного программирования.
Фреймы являются эффективной средой для представления коллекции объектов, отношений и демонов (процедуры, сцепленные со слотами). В фрейме атрибуты объекта представлены в виде слотов. Например, если мы имеем фрейм «сотрудник», тогда он включает слоты биография, образование, знание языков и др. Слот «образование», в свою очередь, может включать наименование вуза, специальность, квалификацию.
В качестве множественных значений слота на более низком уровне могут быть определены фасеты. Фреймы могут быть организованы в иерархическую структуру. Иерархические отношения являются эффективным способом представления способа связи фреймов нижнего уровня с фреймами более высокого уровня. Суммированием сверху вниз и усреднением можно управлять, используя иерархию. Процедуры, сцепленные со слотами, называются демонами. Типичные роли демонов попадают в три категории:
IF — ADDED: исполнительная процедура, когда значения добавляются к слоту,
IF — REMOVED: исполнительная процедура, когда значения удаляются из слота,
IF — NEEDED: исполнительная процедура, когда значения слота запрашиваются.
Поскольку фреймы являются просто другим способом организации данных, база данных фреймов называется объектно-ориентированной базой данных. Следовательно, база фактов системы основана на правилах, может воспринимать представление, основанное на фреймах.
Понятие фрейма предложено М. Минским. По Минскому, фрейм — структура данных для некоторой стандартной ситуации. С каждым фреймом ассоциируется разнообразная информация (в т.ч. и процедуры, например информация о том, как пользоваться данным фреймом, каковы ожидаемые результаты выполнения фрейма, что делать, если ожидания не оправдались, и т.п.). Фрейм можно представить в виде сети, состоящей из вершин и отношений (дуг). Верхние уровни фрейма фиксированы и представляют сущности, всегда истинные в ситуации, описываемой данным фреймом. Нижние уровни заканчиваются слотами, которые заполняются конкретной информацией при вызове фрейма.
Можно провести аналогию между фреймами и описанием процедур в языках программирования. Фрейм соответствует описанию процедуры, а означенный фрейм (фрейм-пример) соответствует вызову процедуры. С каждым слотом фрейма связаны описания условий, которые должны быть соблюдены, чтобы могло произойти означивание слота. В простейших случаях эти условия могут сводиться к указанию семантических категорий, которым должны удовлетворять значения слота. В качестве значений слотов могут выступить имена других фреймов, что обеспечивает связь между фреймами. Родственные фреймы связываются в систему фреймов. Система содержит описания зависимостей (причинных, временных и т.п.) между входящими в нее фреймами. В современной терминологии понятию фрейма и фреймовому подходу в целом более всего соответствует концепция объектно-ориентированного программирования и проектирования базы данных. Фреймы классифицируют по познавательному и функциональному назначению. По познавательному назначению выделяют фреймы-прототипы (Fr) и фреймы-примеры.
По функциональному назначению, отображающему различные виды стереотипных понятий, выделяют фреймы-объекты, фреймы-субъекты, фреймы-операции и фреймы-ситуации.
Фреймы-прототипы или фреймы-шаблоны отображают знания об абстрактных стереотипных понятиях (концептах или терминах) предметной области. Понятие — это имя, присвоенное классу обобщенных сущностей и явлений окружающего мира или предметной области, объединяемых общностью их структур и свойств.
Фреймы-примеры или фреймы-экземпляры отображают знания о конкретных (индивидуальных) сущностях и явлениях (объектах, субъектах, ситуациях) окружающего мира или предметной области, объективных и научных фактах. Фреймы-прототипы разрабатывают для формирования общих понятий предметной области при постановке исходной задачи, а фреймы-примеры используют для конкретных экземпляров из генерации семантических описаний. Формально каждый фрейм-прототип можно представить в виде нотации Бэкуса:
Frj ::= <имяj, атрибутij, характеристикаijn,
где ::= читая: « определяется как» или «может быть переписан как».
Имя фрейма — это слово, обозначающее некоторое понятие. Атрибут фрейма — это одно из ключевых призначных свойств, выбранных для фор мулирования или описания смысла понятия, которое пытается сформулировать ЛПР при концептуальном или таксономическом анализе предметной области. Характеристика фрейма — это одна из форм или один из признаков проявления некоторого свойства. Пару (атрибутij, характеристикаijn) называют слотом фрейма. Составными частями слота являются фасеты или ячейки. Концептуальный анализ — это выделения основных видов понятий предметной области (видов объектов, операций, ситуаций и т.д.).
Или
f= [<ri, vi>, <r2, v2),. .., < rn, vn>].
В этой структуре f - имя фрейма, ri — имя слота, а vi — значение слота. В качестве значений слотов могут выступать имена других фреймов, что обеспечивает связь между фреймами.
Таксономический анализ — это классификация и систематизация слож-ноорганизованных предметных областей, имеющих обычно иерархическую структуру. В результате таксономического анализа выделяют соподчиненные группы объектов предметной области, называемые таксонами.
Фреймы можно представить в виде вложенных списков:
(понятие = имя)
(является экземпляром класса)
(атрибут 1, характеристика 11)
(атрибут 2, характеристика 21, ..., характеристика 2п)
(атрибут 3 (атрибут 31, характеристика 311)
(атрибут 32, характеристика 321)))
Неполнота или нечеткость может быть устранена путем уточнения или добавления новых характеристик атрибутов на этапе накопления знаний.
При переходе от фрейма-прототипа (отображающего абстрактное понятие для класса сущностей или явлений) к фрейму-примеру (отображающему объективные или научные факты, происходит означивание характеристики, т.е. присвоение каждой характеристике одного конкретного значения. Значение характеристики фрейма — это конкретная величина или фактографическая информация, которая может быть присвоена некоторому признаку, т.е. характеристике атрибута.
В процессе генерации семантических решений задачи после «означивания» фреймы-прототипы превращаются во фреймы-примеры; образуется взаимосвязанная совокупность родственных фреймов, называемая сетью фреймов или системой фреймов. Каждый фрейм и система фреймов комплексно отображают как декларативные, так и процедурные знания о предметной области.
Абстрактное понятие «означивается» или получает конкретный смысл в процессе генерации решения, т.е. становится конкретным значением или фактом, который отображается фреймом-примером. На первом этапе построения фреймов-прототипов проводят концептуальный анализ предметной области, в результате которого выделяют виды объектов предметной области, виды отношений и процессов.
Вторым этапом построения фреймов-прототипов является таксономические схемы (иерархические структуры) понятий объектов.
Основной особенностью фреймов является их иерархическая структура. Фреймы обычно соответствуют представлению общего понятия в виде таксономической (классификационной) иерархической структуры. Особенность такой иерархической структуры состоит в том, что информация об атрибутах, которую содержит фрейм верхнего уровня, совместно используется всеми фреймами нижних уровней, связанными с ними. Такая структура позволяет систематизировать и запомнить схожие понятия предметной области, избегая лишних сложностей, касающихся информации об атрибутах и добавляя новые понятия или знания в соответствующей позиции в этой иерархии при обучении. При этом упрощается обнаружение противоречий в знаниях и управление последовательностью знаний.
Иерархию, в ходе которой при генерации семантического решения задачи проверяется правильность выбора фрейма, называют операцией сопоставления. Обычно эта операция осуществляется в соответствии с текущей целью и информацией (значениями), содержащимися в данном фрейме. Иными словами, фрейм содержит условия, ограничивающие значения слота, а цель используется для определения того, какое из этих условий, имея отношения к данной ситуации, является релевантным.
Процесс сопоставления фрейма осуществляется следующим образом.
Сначала, исходя из предположения и интуиции, выбирают некоторый фрейм-прототип (образец), и с помощью знаний, основанных на выявленных особенностях релевантности, или с помощью подфреймов, предполагаемых наиболее релевантными, данный фрейм сам подтверждает или не подтверждает свою релевантность. При этом в соответствии с текущей целью определяется, какое ограничение слота следует использовать при сопоставлении. В случае подтверждения процесс сопоставления завершается. В противном случае, необходимо выполнить следующее.
Если в данном фрейме имеется слот, в котором возникла ошибка, касающаяся, например, условия согласованности с информацией, заданной по умолчанию, то необходима информация, обеспечивающая присвоение данному слоту надлежащего значения.
В качестве последнего шага управление передается другому надлежащему фрейму из этой системы. Если и этот фрейм не подходит, то управление передается соответствующему фрейму из другой системы. Запоминание знаний о концептуальном объекте, имеющем иерархическую структуру, легко поясняется одним фреймом, однако если операция сопоставления заканчивается неудачно, возникает необходимость поиска фрейма, подобного предыдущему. Такой канал, осуществляемый с использованием указателей различия, возможен благодаря сети фреймов, которые описывают объекты, имеющие небольшие различия с данными указателями, а также благодаря образования сети подобных фреймов.
В процессе анализа предметной области происходит распределение конкретных значений между терминальными слотами фрейма. В таких случаях предполагаемое значение называют значением по умолчанию. Подобные значения по умолчанию далее постепенно заменяются достоверной информацией. Полученные при этом выводы называются выводами по умолчанию.
Как правило, построение иерархической структуры фрейма основывается на отношениях «абстрактное - конкретное» («является», «есть», отношение IS-A, является разновидностью отношения «АКО»-а kind of). Используют также отношение «часть-целое» (является частью .— «PART-OF», имеет часть — отношение «HAS PART» при описании структуры объектов предметной области или структуры решаемой задачи.
Практическое применение в фрейм - системах получили лишь отношения «абстрактное—конкретное». Тем не менее, иногда требуется описывать структурированные объекты и управлять ими, в таких случаях не обойтись без использования отношений «целое—часть». При этом составляющие отношения описываются отношениями «IS-A», а структура — отношениями «PART-OF».
Для генерации семантических решений задач программная реализация иерархической структуры фрейма в виде структуры данных включает присоединенные процедуры. Присоединенная процедура — это автоматически вызываемая и выполняемая при определенных операциях или условиях вычислительная процедура, на которую возможна ссылка по имени используемому в слоте фрейма.
Демон — это автоматически запускаемая и выполняемая при некоторых условиях процедура преобразования смысловой информации, содержащейся в слотах фрейма. Демоны запускаются при обращении к соответствующему слоту. Демонами являются следующие процедуры: «IF-NEEDED» («если необходимо»), («IF REMOVED» — «если удалено»).
Процедура IF NEEDED вызывается, когда требуется значение слота, но в данный момент оно не было установлено. Процедура «IF-ADDED» запускается при подстановке в слот значения, процедура «IF REMOVED» — при стирании значения слота.
Фрейм можно использовать для отображения правил продукции. Если каждое правило продукции представлено в виде фрейма, то все множество правил продукции может быть декомпозировано на различные классы, а описания правил продукции могут включать произвольные атрибуты правил. Затем, с использованием свойств наследования фрейма, можно применить все виды принятых по умолчанию рассуждений для этих правил продукции.
В организации процедуры вывода в системах фреймов используются три основных подходах, описанных ниже.
Организация вывода возлагается на ЛПР. Для этого используют некоторый универсальный язык функционального программирования (например, ЛИСП), расширенный аппаратом присоединенных процедур. Такой подход принят в языке KRL.
Для системы фреймов определенной конструкции вводится вычислительный процесс, в основе которого лежит выбор фрейма, управляющего затем дальнейшими вычислениями. В языке KRL в основе такого процесса лежит сопоставление с образцом для выбора фрейма и дальнейшее сопоставление выбранных фреймов с исходными данными и уже построенными фрейм-примерами, в ходе которого осуществляется достраивание модели конкретной ситуации. Задача сопоставления в процессе вычислений разбивается на подзадачи в соответствии со структурой фреймов, участвующих в сопоставлении, осуществляется иерархическое планирование решения этих подзадач с использованием критерия ограниченности ресурсов, расширяемых пользователями сигнальных таблиц и вывода процедур, присоединенных к слотам фрейма. Основные операции такого процесса — копирование фрейма и отождествление переменных и объектов. При выполнении этих операций в соответствии со структурой участвующих в ней фреймов может потребоваться выполнение новых операций копирования и отождествления.
3. Выделяют подклассы системы фреймов — более узкие, чем весь класс систем, охватываемых некоторой формализацией. Для этих узких подклассов разрабатывают специфические для них процедуры решения основной вычислительной задачи, существенно использующие свойства систем этих подклассов. Для математической формализации фреймов используют два подхода. Первый основан на применении §-исчисления. Каждому фрейму соответствует свое §-определение, задающее процесс построения фрагмента фрейма-примера по данному фрейму и набору вариантов. Этот процесс запускается применением определения к этому набору. Второй подход основан на разработке специфического описания языка фрейма, являющегося расширением языка исчисления предикатов.
Указанные выше подходы, в основном, применимы для представления семантики одного высказывания. Для того чтобы представить семантику связного диалога (дискурса), необходимо ввести понятие типа сценария, где выполняются определенные последовательности взаимосвязанных действий. Тогда между семантическими описаниями отдельных высказываний должны быть установлены определенные отношения. С этой целью необходимо прежде всего произвести классификацию способов выражения элементарных семантических понятий при помощи средств, используемых в естественном языке.
Понятия выражаются при помощи большой группы смысловых единиц языка, которая используется для обозначения однородных групп, фактов, событий, явлений и других элементов в реальном мире.
Примерами могут служить предприятие, отрасль, регион. Понятиям соответствует определенная структура, набор обязательных характеристик, с помощью которых одни понятия отделяются от других, причем конкретные элементы действительности называются этими словами и словосочетаниями.
При анализе смысловых связей между понятиями необходимо выделить различные категории объектов. Прежде всего, это имена, которые могут быть именами отдельных объектов и именами классов. Понятием будем называть некоторый набор определенных атрибутов.
Объекты связаны между собой отношениями. Отношения подразделяются на качественные и количественные. В состав качественных отношений, прежде всего, входят отношения между классами, в число этих отношений — включение частичного пересечения, различие, а также отношение между элементом и классом — «принадлежать к классу», «не принадлежать к классу». Другими видами качественных отношений являются отношения «иметь имя», отношения род - вид, нижестоящее понятие - вышестоящее понятие, часть - целое.
Количественные отношения в отличие от качественных выражают количественные характеристики понятий. Количественные отношения можно свести к композиции двух отношений: «иметь меру» и «иметь значение меры». В число количественных отношений входят отношения сравнения, отношения принадлежности, когда ситуативно связаны два элемента, временные отношения, пространственные отношения, визуальные отношения, инструментальные отношения.
Несколько особо стоят информационные отношения (дать указание, просить) и порядковые (следующий, ближайший). Вышеперечисленные отношения образуют группу статических отношений.
Вся динамика внешнего мира выражается словами и словосочетаниями, описывающими действия. Эти действия бывают различных типов, и для нас важно выделить из них основные. Действия определяются местом и временем их реализации. Действия можно классифицировать следующим образом:
- императивы «включить», «выполнить», «снизить»;
- процессы «кредитование», «оплата»;
- состояния «перегруженный план», «свободный исполнитель»;
- относительные — «повышаться», «опускаться», «приближаться», «нагружать», «оплачивать»;
- квантификаторы — «весь», «каждый», «часто», «много», «через», «вскоре», «большой», «промежуток времени», «только», «дата»;
- модификаторы — «быстро», «осторожно»;
- модальность — «необходимо», «вредно»;
- оценки — «хорошо», «целесообразно», «вредно». Использование указанных отношений может быть осуществлено в рамках дискретной ситуационной сети как ролевой фрейм.
В качестве средства пополнения описания ситуаций могут использоваться сценарии. Сценарий представляется некоторой сетью, вершинам которой соответствуют факты, а дугам — связи, описывающие отношения специального типа. Для представления связного диалога необходимо вводить описания отношений между семантическими структурами отдельных фраз.
На рис. 13.2 приведен пример ролевого фрейма «Выдача кредита». Одна из гипотез, используемых при анализе связного диалога, заключается в том, что он составлен из последовательности ситуаций, связанных одним из 7 бинарных отношений. С каждым отношением связано множество ограничений, которым должны удовлетворять его аргументы. Эти ограничения, по сути, определяют типы данных.
Например, формат структуры для понятия, подобного «тратить», может включать семантические падежи «агент», «объект» и «инструмент». Эти семантические падежи подразумевают, что понятие «тратить» включает «агент, который производит действие», «объект, который является деньга ми», иногда — инструмент, который используется для оплаты (чек). Сравните: «У Иванова были деньги. Он потратил деньги, оплатив счет». «У Иванова была кредитная карта. Он потратил деньги, оплатив счет». Нельзя сказать «потратил кредитную карту», т.к. кредитная карта не является предметом класса «деньги», т.е. не может быть тем типом данных, который допустим для домена «объект» отношения «тратить».
Рис 13.2. Ролевой фрейм «Выдача кредита»
Структура понятия формируется в виде тройки.
(Шаблон (имя события—состояние) (список условий)), например: (Шаб-лон=тратить (объект = деньги)(инструмент = чек) (агент = живое существо)).
В основу описания связного диалога положено событие как изменение структурных свойств, окружения или связи. Отношения между понятиями, входящими в описание семантической сети отдельных предложений, фиксируются в словаре и определяются как отношение когеренции. Все знания относительно взаимосвязей между понятиями в словаре запоминаются в реляционной форме. Отношения между вершинами в сети хранятся в виде кортежей:
((Имя отношения (событие / состояние 1) (событие / состояние 2)
(ограничения)).
Так, отношения между глаголами «иметь» и «тратить» есть отношение типа антецедент/консеквент..
Пусть имя отношения = АНТЕ( событие / состояние 1 = «ЕСТЬ», «событие / состояние 2 = «ИМЕТЬ» 1», ограничение = совпадение агентов первого и второго действий, совпадение их объектов). Тогда отношение запишется в виде:
(АНТЕ «ТРАТИТЬ», «ИМЕТЬ 1» (СОВП АГЕНТ, АГЕНТ) (СОВП ОБ, ОБ)). Будем различать следующие временные отношения когеренции: антецедент (АНТЕ), прецедент (1ТРЕЦ), консеквент (КОНСЕК) и сукцедент (СУКЦ). Антецедент и прецедент происходят до события; консеквент и сукцедент — после события. Темпоральные (временные) отношения могут быть разделены на логические и ассоциативные группы отношений. Антецедент и консеквент связаны логически; прецедент и сукцедент — ассоциативно. Если одно событие необходимо появляется до другого события, то отношение между ними — антецедент.
Например, антецедентом понятия «поставлять» является понятие «производить». Если одно событие с некоторой регулярностью появляется до другого события, то отношение между ними — прецедент. Прецедент «оплачивать» есть «выписывать счет». Если одно отношение следует за другим с некоторой регулярностью, то отношение между .ними — сукцедент.
Пример записи связи между предложениями: «ОАО «Аргон» получило заявленные изделия на оптовом складе». «Оно рассчиталось с поставщиком на месте».
(КОНСЕК (получать, рассчитываться) (СОВП (АГ, АГ)) (СОВП-01
(поставщик = рец) (СОВП - 02 (мест = оптовый склад)) (реципиент (рассчитываться - 2 = поставщик), (мест = оптовый склад)).
Отношения между понятиями в ситуациях могут быть следующих видов:
- таксономические;
(класс-подкласс: (поставлять—снабжать-продавать));
- партономические; (последовательность / подпоследовательность);
- координации.
Если одно событие в словаре представляет часть другого и встречается в подынтервале времени, тогда соответствующие понятия находятся в отношении последовательность-подпоследовательность. Например, «поставлять» имеет три подпоследовательности: «отправлять», «перевозить» и «прибывать». Если событие имеет части, которые появляются в течение одного и того же временного интервала, тогда соответствующее понятие о событиях находится в отношении координации, например, «приносить товар и выписывать чек».
Существуют два способа выражения временных отношений: антецедент и прецедент идут до события, а консеквент и сукцедент — после события. Антецедент и консеквент — логически связанные понятия. Прецедент и сукцедент связаны отношением следования во времени, т.е. упорядочены.
Антецедент: тратить деньги-получать деньги. Пример: «Петров получил деньги и все их потратил».
Консеквент: расходовать-уменьшаться. Пример: «Предприятие потратило деньги, и их количество на счете предприятия уменьшилось».
Сукцедент: производить — продавать.
В данной модели описание оператора действия включает в себя: начальное состояние, конечное состояние, средства (инструмент), место, время, реципиент, тему (КОНТЕКСТ), изменяемую сущность, сопродуцент. В описании ситуации существенную роль играют аксиомы вывода и семантические ограничения вида: агент есть живое существо, инструмент есть контейнер, объект есть деньги.
Возможными приложениями ИИС, которая анализирует семантическое содержание текстов документов и в состоянии вести связный диалог с поль зователем. При подготовке пользователем экономических решений на основе фактов и знаний, являются:
- отыскание данных, имеющих отношение к набору фактов, описывающих рассматриваемую проблемную ситуацию;
- обеспечение аргументации, объяснение или разбор хода рассуждений, составляющих обоснование решения,
- определение применимости нормативных актов к конкретной проблем ной ситуации.
Для иллюстрации некоторых приемов и алгоритма манипулирования с данными и знаниями в ИИС, рассмотрим пример системы, реализованной средствами логического языка программирования ПРОЛОГ. Пример включает базу данных, содержащую условную информацию, которая призвана обеспечить возможность демонстрации основных механизмов и приемов обработки и использования знаний, содержащихся в текстах. База данных состоит из основных предикатов и совокупности правильно построенных формул (ППФ), которые могут быть получены из них в силу описанных правил. Пусть используемыми в примере типами переменных (доменами) будут:
- наименование предприятия-поставщика (КР);
- наименование изделия (KI);
- наименование стройки (KS);
- местонахождение поставщика (МР);
- вышестоящая организация поставщика (VP);
- стоимость изделия (IM);
- управление Мосстройкомитета, ведущее стройку (VS);
- строительно-монтажная организация, ведущая строительство, монтаж оборудования (SP);
- район местонахождения стройки (MS);
- дата(БТ);
- сумма штрафа за единицу времени (IN);
- размер штрафа за единицу времени (SV);
- отрезок времени задержки поставки (ТТ);
- наименование ассоциации, объединения, куда входит предприятие-поставщик (ОВ).
Предположим, что семантика базы данных заключается в том, чтобы определить, кто должен поставлять данный тип изделия для данной стройки и какова сумма штрафа, ожидаемого с поставщика в случае несвоевременной поставки изделия.
Пусть далее предикатами в системе будут:
Р[ (x1/t1, x2/t2, x3/t3) — поставляет (КР, KI, KS);
Р2 (x1/t1, x4/t4, x5/t5) — местонахождение поставщика (КР, МР, VP);
Рз (x3/t3, x9/t9, x7/t7) — местонахождение стройки (KS, MS, VS);
Р4 ( x2/t2, x6/t6) — стоимость изделия (KI, IM);
Р5 (x3/t3, x4/t4, x2/t2) — договор о поставках (KS, OB, KI);
P6 (x1/t1, x8/t8, x11/t11) — размер штрафа (КР, SP, IN);
P7 (x13/t13, x12/t12) — тариф (ТТ, SV)
P8 (x13/t13, x4/t4) — задержка поставки (ТТ, ОВ);
P9 (x14/t14, x1/t1) — входит в объединение (ОВ, КР);
P10(x1/t1, x2/t2) — изготавливает (КР, KI);
P11(x3/t3, x8/t8, x1/t1) — задержка монтажа (KS, SP, KI);
P12(x1/t1, x3/t3) — применяется (КР, KS).
Система с подобным набором предикатов представляет упрощенную модель, способную хранить и выдавать информацию относительно правовых вопросов, связанных с договором по поставкам оборудования, ведению работ по реконструкции и строительству предприятий и санкциями за нарушение сроков.
Экстенсионал предиката P1 «поставляет (X,Y,Z)» образует множество кортежей X,Y,Z, таких, что Х/КР поставляет изделие Y/K1 для стройки Z/KS. Предикат Р2 содержит информацию о местонахождении предприятия-поставщика и его вышестоящей организации, предикат Рз определяет местонахождение и принадлежность стройки, предикат Р4 стоимость каждого изделия; предикат Р5 — наличие договора о поставках между стройкой и объединением, куда входит предприятие, выпускающее изделие К1; Р6- размер штрафа; Р7 — размер компенсации за задержку ввода в эксплуатацию или простой; P8 содержит сведения об интервале времени задержки поставки; Р8 содержит сведения об интервале времени задержки поставки; P9 определяет, что предприятие Х/КР входит в состав объединения Y/OB.
Предикат Р10 устанавливает тот факт, что предприятие изготавливает данное изделие. Р11 определяет продолжительность задержки монтажа. P12 отмечает факт использования изделия Y/KI на стройке Z/KS. Рассмотрим проблемы автоматического преобразования запросов на естественном языке в запросы на формализованном языке.
В формализованном языке запросов, основанном на исчислении предикатов, целесообразно различать связанные переменные или переменные, определяющие условия поиска, и свободные переменные, или целевые переменные, определяющие условия выдачи.
Будем использовать для записи типичного запроса на ЯЗОД (формализованном языке запросов, ориентированном на домены) форму
Q=[x1/t1 ,..., xn/tn : (q1y1/01,…, qmym/0m,) W(x1,…xn, у1 ,..., ym],
или
Q = [х/t : (qy/t w(x,y)],
где ti, 0i — типы переменных; qi — кванторы; х — свободные переменные, входящие в условия выдачи; у — связанные переменные, входящие в условия поиска.
Множество ответов на вопросы есть подмножество записей базы данных, выражение справа от знака («выводимо») для которых истинно.
Запрос 1 на естественном языке: «Кто поставляет <наименование изделия> для строительства Наименование стройки> в <местонахождение стройки>
Формализованная запись этого запроса на языке запросов, ориентированном на домены (ЯЗОД), приводится ниже:
Ql:= [Х/КР: поставляет (Х/КР, «Наименование изделия>« / KI «наименование стройки>«/KS)^(§V/VS) местонахождение стройки («Наименование стройки>«/KS, «<местонахождение стройки>«/MS, V/VS)].
Запрос 2 на естественном языке: Каков размер штрафа за несвоевременную поставку Наименование изделия> для строительства Наименование стройки> в <местонахождение стройки>.
Данный запрос отличается тем, что непосредственно в базе данных отсутствуют необходимые данные, например, сведения о размере штрафа, однако они могут быть получены посредством вычислений и дедуктивного вывода из фактов, хранящихся в базе данных. В данном случае может быть использована продукция, входящая в состав базы данных модели, которая объединяет заголовок правила «размер-штрафа» (_,_,_) с предикатами «договор о поставках»(_,_,_), «задержка-монтажа» (_,_,_), «поставляет» (_,_,_), «тариф» (_,_,), «входит в объединение» (_,_,), составляющими тело правила.
Запрос 3 на естественном языке: Выдать наименование и местонахождение поставщиков, каждый из которых поставляет для стройки, расположенной в <местонахождение стройки>, по крайней мере, одно из каждого изделия стоимостью свыше 1000 р.
Q3:= [Х/КР, Y/MP : (§Z/KS, U/VS) местонахождение стройки (Z/KS, «<местонахождение строжи>«/MS, U/VS)^(§V/KI) поставляет (Х/КР, V/KI, Z/KS) ^(§W/IM) стоимость изделия (V/KI, W/IM)^(W>1000)a(§P/VP) местонахождение поставщика (Х/КР, Y/MP, P/VP).
Запрос 4 на естественном языке: Выдать наименование предприятия, находящегося в <местонахождение поставщжа> и поставляющего строительству Наименование стройки> в <местонахождение стройки> наименование изделия>.
Q4:= [Х/КР: поставляет (Х/КР: «Наименование изделия>»/KI, «Наименование стройки>»/KS)^(§Y/VP), местонахождение поставщика (Х/КР, «<местонахождение поставщика>»/MP, Y/VP)^(§Z/VS) местонахождение стройки («Наименование стройки>» /KS, «местонахождение стройки>» /MS, Z/VS).
В словаре для каждого слова имеются необходимые для синтаксического и семантического анализа предложения информации: данные о части речи, роде, числе, падеже, времени и т.п. Кроме того, указываются смысловые значения (связь с предикатами базы данных).
Слово может иметь несколько форм, эквивалентность которых выявляется либо в результате морфологического анализа, либо перечислением словоформ и явным указанием отношения их эквивалентности.
Синтаксическая структура предложений запроса основана на синтаксисе русского языка, причем объекты выражены как именные группы, свойства— как предикатные группы. Внутренняя структура свойств выражается в виде придаточного определительного предложения Указанные свойства относятся к отношениям в базе данных и типам. В русском языке множеству типов переменных соответствует множество их наименований, в том числе синонимичных. Совокупностью отношений языка являются имена предикатов базы данных и имена бинарных предикатов («равно», «больше», «меньше» и т.п.). В русском языке свойства выражаются при помощи различного вида квалификаторов (определений) к существительному. Например, определение, выраженное прилагательным, наречием, причастием: «срочные платежи», «непоставленные трубы», «досрочно построенный».
Квалификатор может иметь вид косвенного дополнения: «предприятие РАО ЕЭС», «цех завода», «стоимость изделия»; а также может быть сочетанием отглагольного существительного и существительного в родительном падеже: «поставки продукции», «монтаж оборудования», либо в виде собственного имени: предприятие «Юпитер». Во всех этих случаях квалификатор может быть выражен как обособленное определение либо как придаточное определительное.
В случае сложноподчиненного предложения с придаточными, выражающими атрибутивно-выделительные отношения, придаточная часть распространяет сочетание существительного с указательным местоимением «тот» и присоединяется относительными местоимениями «который», «какой», «чей», «что». Придаточное может распространять сочетание существительного с указательным местоимением «такой» и присоединяется относительным местоимением «какой», «который». Указательное местоимение может быть опущено.
База знаний модели включает продукции, позволяющие определить данные о предприятии-поставщике, ответственном за поставку изделий, а в случае задержки монтажа оборудования из-за несвоевременной поставки определить размер компенсации, исходя из времени задержки и тарифа.
Для реализации системы естественно-языкового интерфейса и самой модели экспертной системы выбран язык ПРОЛОГ. Этот язык реализует метод резолюций и алгоритмы доказательства теорем для получения выводов из совокупности правил и фактов. Программа на языке ПРОЛОГ состоит из разделов. Имеются разделы доменов, предикатов, клозов (правил), базы данных. Раздел доменов содержит определение типов переменных, раздел предикатов — перечень используемых предикатов. Раздел клозов содержит безусловные клозы (факты статической базы данных) и условные, связанные оператором «:-» (читается «если»); последние образуют базу знаний. Для создания динамической, т.е. изменяемой базы данных, используется ключевое слово «база данных». ПРОЛОГ имеет значительное количество встроенных предикатов, а также модули интерфейса с языком СИ, СУБД, пакетами обмена данных по каналам связи, использующими стандартные сетевые протоколы.
Обращение к ПРОЛОГУ с вопросом инициирует процедуру поиска в базе данных, ранее введенных в систему. Пролог ищет факты, сопоставимые с фактами, содержащимися в клозе. Два факта сопоставимы, если их предикаты одинаковы (буквенное совпадение), и их соответствующие аргументы попарно совпадают. Если ПРОЛОГ находит факт, сопоставимый с вопросом, то он ответит «true», в противном случае — «false». В ПРОЛОГЕ можно не только присваивать имена конкретным объектам, но и использовать имена вида X для обозначения объектов, которые должны быть определены ПРОЛОГ-системой. Имена такого рода называются переменными. ПРОЛОГ просматривает базу данных в поисках факта, сопоставимого с вопросом. Найдя такой факт, с помощью специального маркера отмечает место, где произошло совпадение.
Правило в ПРОЛОГЕ — это некоторое общее утверждение об объектах и отношения между ними. Правило состоит из заголовка и тела правила, которые соединяются символом «:-». Тело правила обычно описывает конъюнкцию целей, которые должны быть последовательно согласованы с базой данных, чтобы заголовок правила был истинным. Когда задаем вопрос, переменная, входящая в правило, должна быть конкретизирована некоторым значением. Таким образом, доказательство или вывод вопроса считается законченным только тогда, когда он сопоставим с фактами, хранящимися в базе данных. Если целевое утверждение не доказано, то возбуждается процесс возврата или бэктрекинга с целью поиска альтернативных путей вывода.
Программный комплекс информационно-справочной интеллектуальной системы включает в себя следующие функции:
- формирования входных экранов и сценария диалога, позволяющего осуществлять выбор режимов работы пользователем;
- считывания вопроса, выделения отдельных слов из его текста, флективного анализа слов, снятия синонимии терминов;
- сравнения слов со словарем и считывания синтаксической и семантической информации;
- распознавания наименований отношений (предикатов) и доменов реляционной базы данных;
- реализации логического вывода из фактов, извлеченных из базы данных;
- формирования синтаксически правильно построенного запроса на языке ПРОЛОГ;
- синтеза ответа по значениям атрибутов, полученных в результате поиска в базе данных;
- обнаружения неизвестных системе слов в тексте запроса и выдачи соответствующего сообщения пользователю;
- формирования экрана ввода разъяснения пользователем значения неизвестного системе символа;
- включения нового термина и(или) понятия в состав словаря системы после разъяснения его пользователем;
- получения справочной информации по системе.
Предполагается, что множество запросов на естественном языке укладывается в рамки некоторой формализованной грамматики, которая схематично, но формально описывает синтаксическую структуру предложения запроса. При анализе предложения естественного языка предложение рассматривается как цепочка, образуемая операцией конкатенации двух других цепочек.
Контекстно-свободная грамматика записывается в виде системы продукций, в качестве обозначения операции конкатенации в ней принят знак «+».
Бесконтекстная грамматика ФАЕЯЗ формальной аппроксимации естественно-языковых запросов
QSENT ->GETS + NDOM
QSENT ->GETS + NDOM + QLF
QLF ->QLFR
QLF -> QLFR + «u» + QLF
QLFR ->PRICHOB
QLFR -» PRIDOPR
PRICHOB ->RELNAME + «(« + ARGS +»)»
ARGS ->ARG + ARGS
ARGS ->ARG
PRICHOB -» RELNAME + «(« + ARGS + COMPR + «)»
ARG ->QUANT + NDOM + QLF
ARG -^NDOM + QLF
ARG->NDOM
COMPR -» CR + CONST
CR -» =l>kl>k
CONS -> число
PRIDOPR -» WHICH + RELNAME
RELNAME —» имя отношения базы данных
NDOM —> имя домена базы данных
WHICH —» который | которая | которые | которое
GETS —^выдать | сообщить
ARG -> REF
REF -» UKMEST + NDOM
UKMEST -» эта | этот | эти | это.
Работу модели поясним на следующей совокупности продукций. Головная продукция модели записывается в следующем виде:
sent_who_send (W.Z.H1, V4): = sent (W,H1,V4,D5),
snd (D5),
osnova(TT,Hl),
osnova (ET,V4),
ent_synonym (EL,ET),
send (Z,TT,EL),
qumark(XX,Hl),
write (V4,F1,XX,Z).
Здесь предикат sent (W,H1,V4,D5) содержит параметр W, который хранит текст запроса пользователя, переданный предикату из функции формирования входного экрана и считывания вопроса. Внутренние параметры HI, V4, D5 необходимы для того, чтобы передать значения атрибутов базы данных предикатам соответствующих отношений. Предикат sent_who_send() будет согласован в том случае, если будет успешно завершен синтаксический анализ текста вопроса совокупностью продукций, открываемых головным предикатом sent(). Предикат snd(D5) реализует распознавание семантического типа предложения путем сравнения со списком допустимых глаголов, выражающих понятие «поставщик». Предикат osnova() реализует упрощенный вариант морфологического анализа, приводя значение переменной реляционной базы данных к тому виду, в каком это значение записано в базе данных. Предикат ent_synonym() устанавливает синонимичность понятий, выраженных различными лексическими единицами. Предикат qumark() удаляет знак вопроса из анализируемого предложения. Наконец предикат write() обеспечивает выдачу ответа в тех же терминах, в которых был сформулирован запрос, плюс значение переменной, считанное из базы данных.
Правила синтаксического анализа записаны в виде продукций языка ПРОЛОГ с использованием встроенных предикатов concatQ — сцепление и member() — элемент множества. Приведем некоторые из этих правил:
1. sent(W,Hl ,V4,D5):-sente(W,Hl ,V4,D5).
Предложение в данном случае определяется через частный случай предложения, в котором подлежащее выражено существительным в единственном числе.
sente (W,H1,V4,D5):- npe(Y2), vp(Vl,D5), concat(Y2,Vl,W).
Предложение определяется как цепочка, полученная в результате конкатенации именной и предикативной групп, слияние которых образует исходное предложение, содержащееся в переменной. Таким образом, W = (Y2 + Y1).
3. Распознавание семантического типа осуществляется сравнением сосписком семантически сходных глаголов, которыми может быть выражено отношение «поставщик». Соответствующие правила на языке ПРОЛОГ:
snd (D5):- v_sem_type (TQ,-),
member (D5,TQ).
v_sem_type ([«высылает», «отправляет», «поставляет»], snd).
Принадлежность к списку [] с именем TQ устанавливается при помощи встроенного предиката member(), устанавливающего принадлежность элемента множеству терминов данного семантического типа.
4. Синонимичность терминов устанавливается следующими правилами: ent_synonym (ES,ENT):- synonym(ES,ENT);
ent_synonym (ES,ES).
5. Предикат send (Z,TT,EL) — заголовок правила, включающего в качестве конъюнкции ряд предикатов. Причем send() соответствует отношению «поставляет (КР, KI, KS)»; предикат IN () — отношению: «используется (KS, KI)»; предикат PR () — отношению «изготавливает (КР, KI)», предикат BL — отношению «входит в объединение (ОВ,КР)», DS — отношению «задержка монтажа (KS, КР, KI)».
send (ZZ, ТТ, V4):-
gt (A, TT),
IN (A, V4),
PR (Z,A),
BL (TT, A),
DS (TT, A, V4).
6. Предикаты osnova (TT, HI) и osnova (ET, V4) осуществляют нормализацию терминов, входящих в запрос путем выделения основы с тем, чтобы слова в нормализованном виде передать в виде параметров ТТ и V4 предикату send (), осуществляющему поиск в базе данных:
osnova (TT,NN):-concat (TT, «у ?», NN); concat (TT, «у?», NN).
7. Предикат write (V4,F1,XX,Z) печатает ответ из слов, входящих в запрос, и значение переменной Z, найденное в базе данных.
Демонстрация возможностей информационно-поисковой экспертной системы на контрольном примере показывает эффективность и естественность использования для этих целей языка ПРОЛОГ.
