Фреймовая модель представления знаний — это модель, описывающая человеческие знания в форме связанного набора больших структурных образований, каждое из которых включает данные, способные описать определенную ситуацию.
Введение
Фреймовую модель представления знаний предложил М. Минский в 1979-ом году, как структуру знаний, предназначенную для восприятия пространственных сцен. Данная модель, подобно семантической сети, обладает глубоким психологическим обоснованием. В психологии и философии используется понятие абстрактных образов. К примеру, слово «комната» способно вызвать у услышавших его образ комнаты, то есть, например, образ жилого помещения, имеющего четыре стены, пол, потолок, окна и двери, площадь от шести до двадцати квадратных метров.
Из данного описания ничего невозможно убрать, к примеру, если убрать окна, то тогда получится уже чулан, а не комната. Но в этом описании имеются и пробелы («дырки» или «слоты»), а именно, это незаполненные значения отдельных атрибутов, таких как, количество окон, цвет стен, высота потолка, покрытие пола и другие. В этой теории подобный абстрактный образ принято называть фреймом. Фреймом также принято называть и формализованную модель для отображения образа.
Фреймовая модель представления знаний
В качестве идентификатора фрейму необходимо присвоить имя. Данное имя обязано быть единственным во всей фреймовой системе. Фрейм обладает определенной внутренней структурой, состоящей из большого количества компонентов, именуемых слотами, которым тоже должны быть присвоены имена. За слотами идут шпации, в которые помещаются данные, отображающие текущие значения слотов. Все слоты в свою очередь представляются некоторой структурой данных. В значение слота должна подставляться конкретная информация, которая относится к объекту, описываемому данным фреймом.
Структура фрейма может быть представлена следующим образом:
- Имя фрейма.
- Имя первого слота и значение первого слота.
- Имя второго слота и значение второго слота.
N. Имя N-го слота и значение N-гo слота.
Значением слота может быть имя другого фрейма, таким образом, могут формироваться сети фреймов. Следует различать фреймы-образцы, или прототипы, которые хранятся в базе знаний, и фреймы-экземпляры, создаваемые, для того чтобы отображать реальные ситуации на базе поступающих данных.
Модель фрейма может считаться достаточно универсальной, так как она может позволить отображать все многообразие знаний о мире:
- Через фреймы-структуры можно обозначать объекты и понятия, такие как, например, заем, залог, вексель.
- Через фреймы-роли можно обозначать, например, такие роли как менеджер, кассир, клиент.
- Через фреймы-сценарии можно обозначать, например, банкротство, собрание акционеров, празднование именин.
- Через фреймы-ситуации можно обозначать, например, тревогу, аварию, рабочий режим устройства и другое.
Самым важным свойством теории фреймов считается наследование свойств, которое заимствовано из теории семантических сетей. Во фреймах, так же как и в семантических сетях, наследование осуществляется по AKO-связям (A-Kind-Of = это). Слот АКО должен указывать на фрейм более высокого уровня иерархии, из которого в неявной форме могут наследоваться, то есть, переноситься, значения аналогичных слотов.
Значением слота может являться фактически все что угодно, а именно, числа, формулы, тексты на естественных языках или программы, правила вывода или ссылки на другие слоты данного фрейма или иных фреймов. Значением слота может быть совокупность слотов более низкого уровня, что может позволить осуществлять во фреймовых представлениях «принцип матрешки». Связи среди фреймов могут задаваться значениями специального слота, именуемого как «Связь».
В общем случае структура данных фрейма способна обладать более широким набором информации, в который должны входить следующие атрибуты:
- Имя фрейма.
- Имя слота.
- Указатели наследования.
- Указатель типа данных.
- Значение слота.
- Демоны.
- Присоединенная процедура.
Имя фрейма должно служить для идентификации фрейма в системе и обязано являться уникальным. Фрейм выступает как набор слотов, количество которых может быть произвольным.
Имя слота также обязано быть уникальным в границах фрейма. Как правило, имя слота является идентификатором, наделенным некоторой семантикой. Именем слота может являться произвольная совокупность текста. К примеру, такая конструкция:
∠Имя слота> = Главный герой романа Ф. М. Достоевского «Идиот»,
∠Значение слота>= Князь Мышкин.
Указатели наследования призваны показать, какую информацию об атрибутах слотов из фрейма верхнего уровня будут наследовать слоты с аналогичными именами в данном фрейме. Указатели наследования являются характерными для фреймовых систем иерархического типа, которые основаны на отношениях типа «абстрактное — конкретное».
Указатель типа данных должен показать тип значения слота. Самыми употребляемыми типами являются следующие:
- тип frame, который является указателем на фрейм,
- тип real, который является вещественным числом,
- тип integer, который является целым числом,
- тип boolean, который является логическим типом,
- тип text, который является фрагментом текста,
- тип list, который является списком,
- тип table, который является таблицей,
- тип expression, который является выражением,
- тип lisp, который является связанной процедурой и так далее.
Значение слота должно соответствовать указанному типу данных и условию наследования.
Демоном именуется процедура, которая автоматически запускается при исполнении определенного условия. Демоны должны автоматически запускаться при обращении к соответствующему слоту. Типы демонов должны иметь связь с условием запуска процедуры. Демон, имеющий условие IF-NEEDED, должен запускаться, если в момент обращения к слоту его значение не было установлено.
Присоединенная процедура должна запускаться по сообщению, которое передано из другого фрейма.