SWI-Prolog
Материал из GedeminWiki
Версия от 13:57, 1 июля 2015; Latunov (обсуждение | вклад)
Содержание |
Система логического программирования на встроенном SWI‑Prolog
Файлы и ресурсы
Расположение файлов см. Список файлов дистрибутива платформы Гедымин
Для новой версии выполняемого модуля платформы Гедымин, папка для размещения временных отладочных файлов SWI-Prolog находится по пути C:\Users\%username%\AppData\Local\Gedemin\swipl\temp
Системные файлы DLL
| Имя | Описание | Примечание |
|---|---|---|
| libswipl.dll | библиотека ядра | The Prolog kernel |
| pthreadGC2.dll | библиотека потоков выполнения | POSIX thread runtime library (32-bits) |
| libgmp-10.dll | библиотека арифметики повышенной точности | The GNU Multiple Precision Arithmetic Library |
Файлы DLL для расширения системы (плагины)
| Имя | Описание | Примечание |
|---|---|---|
| memfile.dll | библиотека временных файлов в памяти | Memory files |
| readutil.dll | библиотека утилиты быстрого чтения | Reading lines, streams and files |
Ресурсные архивы
| Имя | Описание | Примечание |
|---|---|---|
| gd_pl_state.dat | файл сохраненного состояния | Generating Runtime Applications |
Для разработчиков
| Ссылка на ресурс | Описание |
|---|---|
| gd_pl.pl | генерация файла сохраненного состояния |
| gd_pl_state | папка с файлами, не входящими в стандартную поставку SWI-Prolog |
PL-классы
Под термином PL-класс понимается класс, предназначенный на для взаимодействия со встроенным SWI‑Prolog.
Соответственно, экземпляр PL-класса будет называться PL‑объект.
TgsPLClient
Класс клиента SWI-Prolog.
- Иерархия
TObject
- Методы
Initialise(AParams: String): Boolean
- Инициализация SWI-Prolog.
IsInitialised: Boolean
- Проверка инициализации SWI-Prolog.
Call(APredicateName: String; AParams: TgsPLTermv): Boolean
- Краткая форма для OpenQuery, NextSolution, Cut объекта TgsPLQuery, порождающая одно решение.
Call2(AGoal: String): Boolean
- Выполнение терма (аналог предиката once/1).
Compound(AGoal: Unsigned short; AFunctor: String; ATermv: TgsPLTermv)
- Компоновка терма из функтора (имени терма) и аргументов (вектора термов).
LoadScript(AScriptID: Integer): Boolean
- Загрузка Пролог-скрипта по идентификатору.
LoadScriptByName(AScriptName: String): Boolean
- Загрузка Пролог-скрипта по имени.
ExtractData(ADataSet: TClientDataSet; APredicateName: String; ATermv: TgsPLTermv)
- Извлечение данных Пролог-запроса в клиентский набор данных.
MakePredicatesOfSQLSelect(ASQL: String; ATr: TIBTransaction; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
- Формирование Пролог-фактов на основе SQL-запроса.
MakePredicatesOfDataSet(ADataSet: TDataSet; AFieldList: String; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
- Формирование Пролог-фактов на основе клиентского набора данных.
SavePredicatesToFile(APredicateName: String; ATermv: TgsPLTermv; AFileName: String)
- Выгрузка данных Пролог-запроса в файл.
- Свойства
Debug: Boolean
- Режим отладки.