Метод представления знаний с помощью фреймов предложен М.Минским. Фрейм - это структура, предназначенная для представления стереотипной ситуации. Каждый фрейм описывает один концептуальный объект, а конкретные свойства этого объекта и
293
факты, относящиеся к нему, описываются в слотах - структурных элементах данного фрейма. Все фреймы взаимосвязаны и образуют единую фреймовую систему, в которой объединены и процедурные знания.
Концептуальному представлению свойственна иерархичность, целостный образ знаний строится в виде единой фреймовой системы, имеющей иерархическую структуру. В слот можно подставить разные данные: числа или математические соотношения, тексты, программы, правила вывода или ссылки на другие слоты данного или других фреймов.
Фрейм определяется как структура следующего вида:
(ИМЯ ФРЕЙМА;
ИМЯ СЛОТА1 (ЗНАЧЕНИЕ СЛОТА1)
ИМЯ СЛОТА2 (ЗНАЧЕНИЕ СЛОТА2)
.......................................................................
ИМЯ СЛОТА N (ЗНАЧЕНИЕ СЛОТА N))
Определим, например, фрейм для объекта "Служащий":
(Служащий
ФИО (Петров И.П.)
Должность (инженер)
Категория (2)
................................... ))
Если значения слотов не определены, то фрейм называют фреймом-прототипом, в противном случае - конкретным фреймом или экземпляром фрейма.
В теории фреймов ничего не говорится о методах реализации фрейма. Вслед за появлением теории фреймов появилось целое семейство систем программирования, поддерживающих концепцию фрейм-подхода: KRL, GUS, FRL, OWL и другие.
Для большинства фреймовых языков свойственно иерархическое описание объектов предметной области с использованием типовых фреймов. При этом широко используется механизм наследования свойств одного объекта (представленных в виде значений слотов связанного с ним фрейма) другими объектами. Используются такие виды наследования, как класс - подкласс, класс - экземпляр класса. Это позволяет согласовать однотипную информацию различных объектов, а также в дальнейшем обеспечить соответствующее их поведение.