gpt4 book ai didi

prolog - 如何将动态谓词的更改永久保存到 .pl 文件? (Tau 序言)

转载 作者:行者123 更新时间:2023-12-01 03:08:15 25 4
gpt4 key购买 nike

问题 - 断言的动态谓词不会永久保存,在创建新 session 后它们丢失了。如何永久保存它们?

我正在使用
Tau Prolog:JavaScript 中的 Prolog 解释器。

我正在加载序言代码
在 html 文件中,因为我没有成功从外部 pl 文件加载它。

在 .js 文件中,我使用以下代码:

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

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

然后我稍后查询同一个 session 并使用 assertz 插入新的动态谓词。在我重新加载页面之前一切都很好(当新 session 产生时,只有原始谓词但没有新谓词)。

我也试过
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

最佳答案

Tau Prolog 没有保存 session 的方法。您应该手动保存所有事实并在每次加载页面时查阅它们。
toString来自 Session 的方法原型(prototype)生成 Prolog 程序的文本表示,其中包含已加载到 session 中的所有子句和模块。您可以将此文本发送到您的服务器并将其写入文件。

要从外部文件加载程序,您可以向服务器发送异步请求以获取其内容。然后,您可以使用 consult 加载程序方法。

关于prolog - 如何将动态谓词的更改永久保存到 .pl 文件? (Tau 序言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com