Язык FRL поддерживает сеть фреймов. Фреймы связываются между собой в иерархическую сеть обобщений связями AKO (a kind of) (ISA) является видом автомобиль грузовой является видом автомобиль.
Общая информация собирается во фрейм – прототип (род) более высокого уровня иерархии и хранится в единственном экземпляре. Это позволяет существенно уменьшить объем хранимых данных.
Фреймы более низкого уровня являются фреймами примерами. Для связи и наследования свойств во фреймы более низкого уровня вводится специальный слот ISA (AKO) с аспектом @ VALUE – вышележащего фрейма.
Пример:
Фрейм может иметь несколько значений слота AKO использовавший первое данное по AKO-связи (первый уровень ссылок).
Исключение примечание FINHERIT: CONTINUE (inherit - наследовать).
В этом случае поиск продолжается вдоль всех AKO-связей текущего фрейма.
FASSERT (ПЕТРОВ
(ИМЯ) (@ VALUE (АЛЕКСЕЙ)))
(АДРЕС (@ VALUE (комната 72 (FINHERIT: CONTINUE))))
(AKO (@ VALUE (ГР 2) (АДР 2)))
FGET (ПЕТРОВ АДРЕС @ VALUE )
→
Пример: пусть база знаний ЭС содержит следующие факты.
1. Все модули связи с объектом могут быть выполнены в стандарте IEEE/
2. Все АЦП являются модулями связи с объектом и преобразуют напряжение в код.
3. ЦФК 710 – АЦП с диапазоном преобразования ± 1В.
Создадим сеть фреймов
FASSERT (МОДУЛИ_СВЯЗИ_С_ОБЪЕКТОМ
(ВЫПОЛНЕНИЕ (@ VALUE (СТАНДАРТ КАМАК ))))
FASSERT (АЦП
(ПРЕОБРАЗОВАНИЕ (@ VALUE (НАПРЯЖЕНИЕ В КОД)))
(AKO (@ VALUE (МОДУЛИ)))0
FASSERT (ЦФК_710)
(ДИАПАЗОН_ПРЕОБРАЗОВАНИЯ (@ VALUE (±1В)))
(AKO (@ VALUE (АЦП))))