Как навсегда сохранить изменения динамических предикатов в файл .pl?(Тау-Пролог) - PullRequest
0 голосов
/ 05 февраля 2019

Вопрос - Утвержденные динамические предикаты не сохраняются постоянно, после создания нового сеанса они отсутствуют.Как сохранить их навсегда?

Я использую
Тау Пролог: интерпретатор Пролога в JavaScript.

Я загружаю код пролога изв HTML-файл, потому что мне не удалось загрузить его из внешнего файла PL.

В файле .js я использую следующий код:

session = pl.create();
if(session){
session.consult( "baza.pl" );

    //var query ="consult('baza.pl').";
    //session.query( query );
    //also consults this way
}

Затем я запрашиваю тот же сеанс и вставляю новые динамические предикаты с помощью assertz.Все в порядке, пока я не перезагружаю страницу (когда новый сеанс создает, есть только оригинальные предикаты, но нет новых).

Я пробовал также

session.consult( "baza.pl" );
// consulting prolog code from external file but never succeeded.
var query ="load_dyn('baza.pl')"; 
//loads from internal script tag but not from external file 
var query =":- use_module('baza.pl')."; 
// I think this didn't succeed anyway

1 Ответ

0 голосов
/ 08 февраля 2019

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

Метод toString из прототипа Session создает текстовое представление программы Prolog со всеми пунктами и модулями, которые имеютбыл загружен в сессию.Вы можете отправить этот текст на ваш сервер и записать его в файл.

Чтобы загрузить программу из внешнего файла, вы можете отправить асинхронный запрос на ваш сервер, чтобы получить его содержимое.Затем вы можете загрузить программу методом consult.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...