Для создания фреймов используется функция 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 ВЫРЕЗАНИЕ_ПО_ДЕРЕВУ)
→ НЕ_ЗАНИМАЕТСЯ