Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети_фреймы.doc
Скачиваний:
12
Добавлен:
16.03.2015
Размер:
258.05 Кб
Скачать

Структура фрейма.

Каждый фрейм представляет собой списковую структуру с maxстепенью вложенности 5.

(Имя фрейма

(имя первого слота

(имя первого аспекта

(первое данное

(первый комментарий сообщения)

(l-й комментарий сообщения))

(второе данное

(первый комментарий сообщения)

(m-й комментарий сообщения))

(j-е данное

(первый комментарий сообщения)

(mj-й комментарий сообщения)))

(имя второго аспекта

(…))))

(имя второго слота

(…))))

(имя n-го слота)))))

В этой структуре могу отсутствовать некоторые уровни. Например, может отсутствовать сообщение/комментарий. С каждым слотом могут быть связаны несколько типов процедур: IF_ADDEDIF_DELETEDIF_NEEDED(запрос)

Имена аспектов указывают на типы данных (значений слотов) и процедур. Перед именами аспектов ставится знак «жучок» @.

Фреймы могут быть связаны в сети (иерархические) ISA– отношениями или обратнымиFKO(aKindof) – род / вид.

Основные функции.

Для создания фреймов используется функция FASSERT. Например, фрейм Иванов создается так:FASSERT(ИВАНОВ

(ИМЯ (@ VALUE(ПЕТР)))

(АДРЕС (@ VALUE(ОБЩЕЖИТИЕ № 1_КОМНАТА 71)))

(ФАКУЛЬТЕТ (@ VALUE(№ 6)))

(ГРУППА (@ VALUE(651)))

(ХОББИ (@ VALUE(СПОРТ))))

Тип @ FALLUE– значение – задает условие, что данные в слотах нужно интерпретировать в обычном смысле.

Функция FASSERTсоздает и заносит фрейм ИВАНОВ в базу знаний.

FPUTдобавляет новую информацию во фрейм.

Например, FPUT(ИВАНОВ ХОББИ @FALUEМУЗЫКА)

(ХОББИ (@ VALUE(СПОРТ)

(МУЗЫКА)))

Извлечение информации из фрейма осуществляется по FGET.

Например, FGET(ИВАНОВ (имя фрейма) ГРУППА (имя слота) @VALUE(тип данного))

→ 651

FGET(ИВАНОВ ХОББИ @VALUE)

→СПОРТ МУЗЫКА

Исключение информации из фрейма по FREMOVE.

Например, FREMOVE(ИВАНОВ ХОББИ @FALUEСПОРТ)

FREMOVE(ИВАНОВ) – удаляется целиком фрейм.

Вывод на печать FPRINT

Например, FPRINT((F1,F2,F3)) – на печать выводятся фреймыF1,F2,F3.

Тип @ VALUEозначает, что данные постоянны и не изменяются при формирование ответа на запрос.

Аспект @ DEFAULTозначает значение по умолчанию, т. е. если нет значения @VALUE, то выбирается «запасное» значение по умолчанию.

Например, FPUT(ИВАНОВ ХОББИ @DEFALUTНЕ_ЗАНИМАЕТСЯ)

(ХОББИ (@ VALUE(СПОРТ)

(МУЗЫКА))

(DEFALUT(НЕ_ЗАНИМАЕТСЯ))

Увлекается ли ИВАНОВ спортом?

FGET(ИВАНОВ ХОББИ @VALUEСПОРТ)

→ Т

Увлекается ли ИВАНОВ вырезанием по дереву?

FGET(ИВАНОВ ХОББИ @VALUEВЫРЕЗАНИЕ_ПО_ДЕРЕВУ)

→ НЕ_ЗАНИМАЕТСЯ

Сети фреймов.

Язык FRLподдерживает сеть фреймов. Фреймы связываются между собой в иерархическую сеть обобщений связямиAKO(akindof) (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 (АЦП))))

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]