Функции сохранения и загрузки списка фактов

Как можно заметить, наполнение списка фактов в CLIPS довольно кропот­ливое и длительное занятие. Если фактов достаточно много, этот процесс может растянуться на несколько часов, или даже дней. Так как список фак­тов хранится в оперативной памяти компьютера, теоретически, из-за сбоя компьютера или, например, неожиданного отключения питания, список фактов можно безвозвратно потерять. Чтобы этого не произошло, а так же для того чтобы сделать работу по наполнению базы знаний фактами более удобной, CLIPS предоставляет команды сохранения и загрузки списка фак­тов в файл — save-facts и load-facts соответственно.

Определение 5.14. Синтаксис команды save-facts

(save-facts <имя-файла> [<границы-видимости> <список-шаблонов >])

<границы-видимости>::= visible|local

Команда save-facts сохраняет факты из текущего списка фактов в тексто­вый файл. На каждый факт отводится одна строчка. Неупорядоченные фак­ты сохраняются вместе с именами слотов. В функции существует возмож­ность ограничить область видимости сохраняемых фактов. Для этого ис­пользуется аргумент <границы-видимости>. Он может принимать значение local или visible. В случае если этот аргумент принимает значение visible, то сохраняются все факты, присутствующие в данный момент в системе. Если в качестве аргумента используется ключевое слово local, то сохраняются только факты из текущего модуля. О модулях речь пойдет в гл. 12. По умолчанию аргумент <границы-видимости> принимает значение local. После аргумента <границы-видимости> может следовать список опреде­ленных в системе шаблонов. В этом случае будут сохранены только те фак­ты, которые связаны с указанными шаблонами.

Пример 5.21. Использование функции save-facts

(clear)

(deftemplate template

(slot a)

(slot b))

(assert (template (a 1) (b 2)))

(assert (simple-factl) (simple-fact2))

(save-facts fl local template simple-factl)

Последовательность действий, приведенная в данном примере, сохраняет в файл f1, находящийся в текущем каталоге, все факты, видимые в текущем модуле и связанные с шаблонами template и simple-factl (как вы помните, после добавления факта simple-factl CLIPS определяет неявно созданный шаблон simple-factl). В результате будет получен текстовый файл со следующим содержанием:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: