logo
Раздел описания предикатов внутренней базы данных

2.2.1 Раздел описания предикатов внутренней базы данных

Внутренние базы данных так называются потому, что они обрабатываются исключительно в оперативной памяти компьютера.

Внутренняя база данных состоит из фактов, которые можно динамически, в процессе выполнения программы, добавлять в базу данных и удалять из нее, сохранять в файле, загружать факты из файла в базу данных. Эти факты могут использовать только предикаты, описанные в разделе описания предикатов базы данных.

Если раздел описания предикатов базы данных в программе только один, то он может не иметь имени. В этом случае он автоматически получает стандартное имя dbasedom.

Описание предикатов базы данных совпадает с их описанием в разделе описания предикатов predicates.

В базе данных могут содержаться только факты, а не правила вывода, причем факты базы данных не могут содержать свободных переменных. Есть существенное преимущество в использовании таких баз данных. Дело в том, что факты, использующие предикаты, заданные в разделе database, могут добавляться и удаляться во время выполнения программы.

Для добавления фактов во внутреннюю базу данных в нашей ЭС использовались встроенные предикаты asserta и assertz.

Разница между этими предикатами заключается в том, что предикат asserta добавляет факт перед другими фактами (в начало внутренней базы данных), а предикат assertz добавляет факт после других фактов (в конец базы данных).

В качестве параметра у этих предикатов указывается добавляемый факт.

Для удаления фактов из базы данных служат предикат retract.

Предикат retract удаляет из внутренней базы данных первый с начала факт, который может быть отождествлен с его первым параметром.