Шаг 61.
Основы логического программирования.
Использование внутренних баз фактов

    На этом шаге мы рассмотрим использование внутренних баз фактов.

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

Доступ к внутренней базе фактов

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

   domains
      name=string
      sex=char
   database
      person(name,sex) 
   clauses
      person("Helen",'F').
      person ("Maggie",'F').
      person("Suzanne",'F').
      person("Per",'M').

вы можете вызвать person с целью person (Name,'F') для нахождения всех женщин, или person ("Maggie",'F') для проверки того, что женщина по имени Maggie существует в вашей базе данных.

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

    На следующем шаге мы рассмотрим объявление внутренней базы фактов.




Предыдущий шаг Содержание Следующий шаг