SWI-Prolog

Материал из GedeminWiki
Перейти к: навигация, поиск

Содержание



Система логического программирования на встроенном SWI‑Prolog

Файлы и ресурсы

Расположение файлов см. Список файлов дистрибутива платформы Гедымин

Системные файлы 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).
Cleanup: Boolean
Очистка SWI-Prolog (деинициализация).
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
Режим отладки.

TgsPLQuery

Класс запроса SWI-Prolog.
Иерархия
TObject
Методы
Close
Закрытие Пролог-запроса.
Cut
Отсечение следующих решений Пролог-запроса (выполнения предиката).
NextSolution
Поиск следующего решения Пролог-запроса (выполнения предиката).
OpenQuery
Открытие Пролог-запроса и поиск первого решения (выполнение предиката).
Свойства
Eof: Boolean
Признак поиска решения Пролог-запроса (выполнения предиката).
PredicateName: String
Имя предиката (функтор).
Termv: TgsPLTermv
Аргументы предиката (вектор термов).

TgsPLTermv

Класс вектора термов SWI‑Prolog.
Иерархия
TObject
Методы
PutAtom(Idx: Unsigned short; AValue: String)
Передача по ссылке в терм данных типа Atom.
PutDate(Idx: Unsigned short; AValue: Date)
Передача по ссылке в терм данных типа Date.
PutDateTime(Idx: Unsigned short; AValue: Date)
Передача по ссылке в терм данных типа DateTime.
PutFloat(Idx: Unsigned short; AValue: Real)
Передача по ссылке в терм данных типа Float.
PutInt64(Idx: Unsigned short; AValue: Int64)
Передача по ссылке в терм данных типа Int64.
PutInteger(Idx: Unsigned short; AValue: Integer)
Передача по ссылке в терм данных типа Integer.
PutString(Idx: Unsigned short; AValue: String)
Передача по ссылке в терм данных типа String.
PutVariable(Idx: Unsigned short)
Передача по ссылке в терм данных типа Variable (сброс ссылки в изначальное состояние).
ReadAtom(Idx: Unsigned short): String
Считывание по ссылке из терма данных типа Atom.
ReadDate(Idx: Unsigned short): Date
Считывание по ссылке из терма данных типа Date.
ReadDateTime(Idx: Unsigned short): Date
Считывание по ссылке из терма данных типа DateTime.
ReadFloat(Idx: Unsigned short): Real
Считывание по ссылке из терма данных типа Float.
ReadInt64(Idx: Unsigned short): Int64
Считывание по ссылке из терма данных типа Int64.
ReadInteger(Idx: Unsigned short): Integer
Считывание по ссылке из терма данных типа Integer.
ReadString(Idx: Unsigned short): String
Считывание по ссылке из терма данных типа String.
Reset
Сброс вектора термов (выполнение метода PutVariable для всего вектора термов).
ToString(Idx: Unsigned short): String
Считывание по ссылке терма и преобразование к строке.
ToTrimQuotesString(Idx: Unsigned short): String
Считывание по ссылке терма и преобразование к строке без обрамляющих кавычек.
Свойства
DataType(Idx: Unsigned short): Integer
Тип данных.
Size: Unsigned short
Размер вектора термов.
Term(Idx: Unsigned short): Unsigned short
Ссылка на терм.

Пролог-скрипты

Pl_Examples_Script.png

Примеры использования PL-объектов

Pl_Examples.png

Учебный пример. Игра крестики-нолики

Xo_game15o9.png

Средства разработки

SWI-Prolog Editor

SWI-Prolog_Editor.png

SWI-Prolog graphical tracer

Swi_graphical_tracer.png

SWI-Prolog profiler

Swi_profiler.png



Литература по языку Пролог

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты