Определение 5.11. Синтаксис команды fact-relation
(fact-relation <определение-факта>)
В качестве определения факта, как и в описанных выше функциях, нужно использовать или переменную указатель, содержащую адрес факта, или индекс факта.
Пример 5.18. Использование функции fact-relation
(clear)
(assert (car Ford))
(fact-relation 0)
(retract 0)
(fact-relation 0)
В первом случае функция fact-relation вернет значение car, а во втором —FALSE.
Для получения имен всех слотов заданного факта в CLIPS предназначена функция fact-slot-names.
Определение 5.12. Синтаксис команды fact-slot-names
(fact- slot-names <определение-факта>)
Данная функция возвращает список имен слотов в составном поле. Для упорядоченных фактов функция возвращает значение implied (подразумеваемый), т. к., если вы помните, CLIPS представляет упорядоченные факты как неявно заданные неупорядоченные с одним составным слотом. В случае если заданный факт не найден, функция возвращает значение false.
Пример 5.19. Использование функции fact-slot-names
(clear)
(deftemplate car
(slot name)
(slot producer)
(slot type)
(slot max-speed))
(assert ( car
(name scorpio)
(producer ford)
(type sedan)
(max-speed 180)))
(fact-slot-names 0)
Если приведенный пример был набран без ошибок, то функция fact-slot-names вернет значение (name producer type max-speed).
Последней из рассмотренных в данной главе функций для работы с неупорядоченными фактами будет функция fact-slot-value.
Определение 5.13. Синтаксис команды fact-slot-value
(fact-slot-value <определение-факта> <имя-слота >)
Данная функция позволяет получать значения слота некоторого заданного факта. Если факт является упорядоченным, то для получения значения неявно определенного составного слота используется значение implied. В случае если указанный факт не существует, или имя слота указано не верно, функция возвращает значение false.
Рис. 5.16. Результат использования функции fact-slot-value
Выполните в среде CLIPS следующий пример:
Дата добавления: 2021-12-14; просмотров: 358;