Представление знаний фреймами
В сложных семантических сетях, включающих множество понятий, процесс обновления узлов и контроль связей между ними становится затруднительным. При этом количество опосредованных родовидовых связей между понятиями резко возрастает.
Основная идея фреймового подхода к представлению знаний заключается в том, что все, что касается понятия или ситуации, не «размывается по сети», а представляется во фрейме.
Фреймомназывается структура для описания понятия или ситуации, состоящая из характеристик этой ситуации и их значений.
Фрейм можно рассматривать как фрагмент семантической сети, предназначенный для описания понятий со всей совокупностью присущих им свойств.
Понятие о деловом отчете в системе, основанной на фреймах, может иметь следующий вид (рис. 6.1).
Рис. 6.1 - Деловой отчет в системе, основанной на фреймах
Графически это выглядит аналогично семантической сети, но принципиальное отличие состоит в том, что каждый узел во фреймовой системе имеет вид, показанный на рис. 6.2.
Рис. 6.2 - Фрейм
Фрейм - это структура данных, представляющая стереотипную ситуацию, вроде присутствия внутри жилой комнаты или сбора на вечеринку. К каждому фрейму присоединяется несколько видов информации. Часть информации о том, как использовать фрейм. Часть о том, чего можно ожидать далее. Часть о том, что следует делать, если ожидания не подтвердятся.
В каждом узле понятия определяются набором атрибутов и их значениями, которые содержатся в слотах фрейма.
Слот - это атрибут, связанный с узлом в системе, основанной на фреймах.
Слот является составляющей фрейма. Имя слота соответствует типу атрибута, значением слота может быть экземпляр атрибута, другой фрейм или фасет.
С каждым слотом может быть связана одна или несколько процедур, которые выполняются, когда изменяются значения слотов.
Чаще всего со слотами связываются следующие процедуры.
1. ЕСЛИ - ДОБАВЛЕНО (выполняется, когда новая информация помещается в слот).
2. ЕСЛИ - УДАЛЕНО (выполняется при удалении информации из слота).
3. ЕСЛИ - НУЖНО (выполняется, когда запрашивается информация из слота, а он пуст).
Эти процедуры могут следить за приписыванием информации к данному узлу и проверять, что при изменении значения производятся соответствующие действия.