내가하려는 것은 Prolog 인스턴스의 복사본을 만들고 JPL (Java-Prolog Interface)로 해당 복사본을로드하는 것입니다. 나는 이것을 할 수있는 몇 가지 가능한 방법을 생각할 수 있지만, 그것들 중 어느 것도 완벽하게 해결되지 않았고, 그래서 내가 여기에 온 이유입니다.JPL로 SWI-Prolog 인스턴스의 복사본 만들기 및로드
우선, qsave_program/2
을 사용하여 상태의 사본을 저장할 수 있음을 알고 있습니다. 이것은 실행할 수있는 exe 파일을 만듭니다. 그러나 JPL을 사용하여 Java에서이 저장된 인스턴스를 쿼리해야합니다. 나는 이것에 대한 문서를 찾으려고했지만 어떤 것도 발견하지 못했다. qsave_program/2
을 사용하여 저장된 인스턴스를 실행하고 JPL에서 쿼리 할 수있는 방법이 있습니까?
두 번째 아이디어는 모든 동적으로 선언 된 절에 대해 원래 인스턴스를 쿼리하는 것입니다. 그러나 나는 무엇이 주장되었는지 알 수 없기 때문에 직접적으로 그러한 것들을 요구할 수는 없지만 오히려 역동적이라는 사실에 근거하여이 절들을 수집해야합니다. 그런 다음 JPL에서 다른 인스턴스를 시작하고 이러한 사실을 주장하여 사본을 만들 수 있습니다. 이것이 가능한가? 그리고 이것은 효과적으로 국가의 사본을 만들 것입니까?
확실히 가능한 것은 아니지만 한 가지 해결책을 생각했습니다. JPL을 통해 전송되는 모든 쿼리를 제어합니다. 모든 쿼리에 대한 목록을 만들 수 있고, 새 인스턴스를 만들 때마다 이전 쿼리와 동일한 쿼리를 사용하여 응답을 무시할 수 있습니다. –