Представление знаний с применением фреймов

1.6.1. Понятие фрейма и слота

Термин фрейм (frame — каркас, рамка) предложен М. Минским в 70-е годы. Под фреймом понимается абстрактный образ или ситуация. В психологии и философии известно понятие абстрактного образа. Например, слово «комната» вызывает образ комнаты — «жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью». Из этого описания ничего нельзя убрать, например, убрав окна, мы получим уже чулан, а не комнату. Но в нем есть «слоты», или «щели», — незаполненные значения некоторых атрибутов — количество окон, цвет стен, высота потолка, покрытие пола и др. Такой образ и называется фреймом (фреймом минимального описания). Фреймом называется также и формализованная модель этого образа.

В общем случае фрейм определяется следующим образом:

f = [( r1 , v1 ,), … ,( rn , vn )],

где f – имя фрейма; ri – имя слота; vi – значение слота.

Слот – это атрибут, связанный с узлом в системе, основанной на фреймах.

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

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

Важнейшим свойством фреймов является заимствованное из теории семантических сетей наследование свойств. И во фреймах, и в семантических сетях наследование происходит по АКО-связям (от A Kind Of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, то есть переносятся значения аналогичных слотов, причем наследование свойств может быть частичным.

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

Чаще всего со слотами связываются процедуры:

1. «ЕСЛИ - ДОБАВЛЕНО» (выполняется, когда новая информация помещается в слот);

2. «ЕСЛИ - УДАЛЕНО» (выполняется при удалении информации из слота);

3. «ЕСЛИ - НУЖНО» (выполняется, когда запрашивается информация из слота, а он пуст).

Эти процедуры могут следить за приписыванием информации к данному узлу и проверять, что при изменении значения производятся соответствующие действия.

1.6.2. Фреймовые системы и их функционирование

Для иллюстрации работы этого класса систем, основанных на знаниях, рассмотрим элементарный пример.

Требуется в рамках системы документооборота автоматизировать процесс контроля деловых отчетов компании. Пусть понятию деловой отчет соответствует два вида отчета – финансовый отчет и технический отчет.

Процесс разработки системы, основанной на фреймах, должен начаться с проработки структуры фрейма-прототипа, главного в выстраиваемой иерархии. В нашем примере – это фрейм «Отчет» (смотри рис. 1.4):

1) Определяется набор атрибутов, обеспечивающий полноценный вид моделируемой ситуации – слоты «Автор», «Тема», «Дата» и «Объем»;

2) Задаются ограничения на возможные значения для каждого слота:

· Значением слота «Автор» может выступать только значение слота «фио» из фрейма «Автор»;

3) Фиксируются имена других фреймов системы, на которые делается ссылка:

· Значение слота «Тема» соответствует имени фрейма-экземпляра «Тема».

 
 

 


Рис. 1.4. Функционирование фреймовой системы

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

1) В структуру БЗ добавляется 2 фрейма-образца («Фин. отчет» и «Техн. отчет»), наследующие структуру фрейма-прототипа «Отчет»;

2) Некоторым слотам назначается фасет «по умолчанию»:

· Слот «Автор» фрейма «Фин. отчет» – служебный текст «Руководитель проекта»;

· Слот «Объем» фрейма «Фин .отчет» – «2 страницы»;

· и т.д.

3) С некоторыми слотами связываются следующие процедуры:

· «ЕСЛИ - ДОБАВЛЕНО», связанная со слотом «Автор» – Уведомить лицо «Автор», что отчет по «Тема» объемом «Объем» представить к «Дата»;

· «ЕСЛИ - УДАЛЕНО», связанная со слотом «Автор» – Уведомить лицо «Автор», что отчет по «Тема» отменяется;

· «ЕСЛИ - ДОБАВЛЕНО», связанная со слотом «Тема» – Поместить в слот «Автор» имя руководителя проекта «Тема»;

· «ЕСЛИ - НУЖНО», связанная со слотом «Дата» – Поместить в слот «Дата» либо 30 марта, либо 30 июня, либо 30 сентября, либо 30 декабря, ближайшую за текущей датой.

Теперь, если системе задан запрос: «Мне нужен финансовый отчет о выполнении проекта по новой технологии», то интерфейсная программа анализирует его:

· вычленяется стереотипная ситуация – «финансовый отчет»;

· определяется набор атрибутов – «проект по новой технологии»,

и расширяет БЗ новым фреймом-экземпляром с уникальным именем (пусть «ФИН. ОТЧЕТ №3»), который наследует структуру фрейма-образца «ФИН. ОТЧЕТ».


Далее все происходит автоматически:

1) Вносит «проект по новой технологии» в слот «Тема» фрейма «ФИН. ОТЧЕТ №3»;

2) Процедура «ЕСЛИ - ДОБАВЛЕНО», связанная со слотом «Тема», т.к. в запросе нет атрибута «автор», осуществляет поиск руководителя этого проекта. Допустим, что его фамилия «Иванов». Процедура вписывает его фамилию в слот «Автор» финансового отчета №3. Если руководитель этой темы не будет найден, в слот «Автор» будет наследовано значение класса, а именно, текст «РУКОВОДИТЕЛЬ ПРОЕКТА».

3) Процедура «ЕСЛИ - ДОБАВЛЕНО», связанная со слотом «Автор», начинает выполняться, т.к. в слот только что было вписано новое значение. Эта процедура начинает составлять сообщение, чтобы отправить его Иванову, но обнаруживает, что в запросе нет нужной даты исполнения.

4) Тогда процедура «ЕСЛИ - ДОБАВЛЕНО», просматривая слот «Дата» и найдя его пустым, активирует процедуру «ЕСЛИ - НУЖНО», связанную с этим слотом, которая, анализируя текущую дату (например, 12.10.09), решит, что «30 декабря» ближайшее к ней, и впишет эту дату в слот «Дата».

5) Теперь процедура «ЕСЛИ - ДОБАВЛЕНО», связанная со слотом «Автор», найдет, что еще одно значение, которое нужно включить в сообщение, т.е. объем отчета, отсутствует. Слот «Объем» не связан с процедурами и ничем помочь не может. Однако процедура, применяя концепцию наследования свойств класса, использует значение объема из фрейма-образца «ФИН. ОТЧЕТ». В результате составляет следующее сообщение: «Господин Иванов С.А., подготовьте финансовый отчет по проекту новой технологии к 30 декабря объемом 2 страницы».

Если в какой-то момент фамилия Иванов будет удалена из слота «Автор», то система автоматически отправит ему сообщение, что его отчет не требуется.

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

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

Контрольные вопросы:

1. Какие из функций реализованы в интеллектуальной системе.

2. Что должна включать в свой состав любая интеллектуальная информационная система.

3. Охарактеризуйте понятие «Знания».

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

5. Что такое СУБЗ и каковы её функции.

6. Перечислите основные МПЗ.

7. Что согласно языку логики предикатов следует отнести к термам.

8. Достоинства и недостатки логических моделей представления знаний.

9. Пример типичной задачи для применения семантической сети.

10. Для чего используется база правил.

11. Покажите, как записываются фреймы и сети фреймов.


Тема 2. ЭКСПЕРТНЫЕ СИСТЕМЫ

 

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