我想要做的是创建一个 Prolog 实例的副本并使用 JPL(Java-Prolog 接口)加载该副本。我可以想到几种可能的方法来做到这一点,但没有一个是完全解决的,这就是我来这里的原因。
首先,我知道我可以使用qsave_program/2
. 这将创建一个我可以运行的 exe 文件。但是,我需要使用 JPL 从 Java 中查询这个保存的实例。我已经尝试为此寻找文档,但找不到任何文档(可能不是常见问题)。有什么方法可以运行使用保存的实例qsave_program/2
并从 JPL 查询它?
第二个想法是查询所有动态断言子句的原始实例。但是,我不知道断言了什么,所以我不能直接要求这些东西,而是我必须根据它们是动态的事实来收集这些子句。然后我可以简单地从 JPL 启动另一个实例并断言这些事实来创建一个副本。这可能吗?这会有效地创建状态的副本吗?