- •ПРедставление знаний с использованИем семантических сетей
- •Предложение: Билл дает Джуди подарок
- •Предложение : Билл сказал Лауре, что он дал Джуди подарок.
- •Представление знаний с использованием фреймов
- •Покупка товаров.
- •Процедурные фреймы Сценарий (Искусственный интеллект, т. 2)
- •Фреймы представление процедурных знаний Сценарии
- •Планирование решения задач. Перспективы развития эс.
- •Реализация фреймовых систем.
- •Пример использования фреймов. Язык rrl
- •Сетевые модели. Представление знаний Основные определения. Классификация.
- •Структура фрейма.
- •Основные функции.
- •Сети фреймов.
- •Запросы. (fsap)
Структура фрейма.
Каждый фрейм представляет собой списковую структуру с 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)
→
Пример: пусть база знаний ЭС содержит следующие факты.
Все модули связи с объектом могут быть выполнены в стандарте IEEE/
Все АЦП являются модулями связи с объектом и преобразуют напряжение в код.
ЦФК 710 – АЦП с диапазоном преобразования ±1В.
Создадим сеть фреймов
FASSERT(МОДУЛИ_СВЯЗИ_С_ОБЪЕКТОМ
(ВЫПОЛНЕНИЕ (@ VALUE(СТАНДАРТ КАМАК ))))
FASSERT(АЦП
(ПРЕОБРАЗОВАНИЕ (@ VALUE(НАПРЯЖЕНИЕ В КОД)))
(AKO (@ VALUE (МОДУЛИ)))0
FASSERT(ЦФК_710)
(ДИАПАЗОН_ПРЕОБРАЗОВАНИЯ (@ VALUE(±1В)))
(AKO (@ VALUE (АЦП))))