我所要做的是創建一個Prolog的實例和負載與JPL(以Java爲Prolog的接口)複製的副本。我可以想出幾種可能的方式來做到這一點,但是沒有一個能夠完全解決問題,這就是我來到這裏的原因。製作和SWI-Prolog的實例的負載副本JPL
首先,我知道我可以節省使用qsave_program/2
狀態的副本。這會創建一個我可以運行的exe文件。不過,我需要使用JPL從Java中查詢保存的實例。我試過尋找這方面的文檔,但我找不到任何(可能不是一個常見問題)。有沒有什麼辦法可以運行使用qsave_program/2
保存的實例並從JPL查詢?
第二個想法是將查詢原始實例的所有動態斷言條款。然而,我不知道所聲稱的是什麼,所以我不能直接要求那些東西,而是我必須根據它們是動態的這一事實來收集這些條款。然後,我可以簡單地從JPL啓動另一個實例並聲明這些事實以創建副本。這可能嗎?這是否會有效地創造一個州的副本?
我想到了一種可能的解決方案,但它肯定不是很漂亮。我掌控着通過JPL發送的所有查詢。我可以列出所有查詢的列表,並且每當我創建一個新實例時,都可以做出相同的查詢(並且只是忽略答案),使我處於與之前相同的狀態。 –