2012-04-08 7 views
5

모든 데이터를 삽입하는 데 사용되는 Prolog 데이터베이스 파일 (test_inserts.p)이 있습니다.간단한 PROLOG 문제 : Prolog 데이터베이스에 대해 여러 쿼리를 어떻게 테스트합니까?

필자는 데이터베이스에서 특정 정보를 수신하기 위해 쓴 모든 Prolog 쿼리가있는 Prolog 쿼리 파일 (test_queries.pl)도 가지고 있습니다.

gprolog를 사용할 때 내 test_inserts.p 데이터베이스 파일에 대해 실제로 test_queries.pl 쿼리를 사용하는 방법이 궁금합니다. 동시에로드 할 수있는 방법이있을 것이라고 기대하고 있었고 실행하려는 각 쿼리를 다시 입력해야하는 대신 실행할 쿼리를 어떻게 든 명령 할 수있었습니다.

답변

5

나는 initialization/1 ISO 지침을 test_queries.pl에 사용하여 하단에 표시되는 효과를 얻었습니다.

test_queries.pl

test :- 
     findall(_, (a(X,Y), format('~w ~w~n', [X,Y])), _). 

:- initialization([test_inserts]). 
:- initialization(test). 

test_inserts.pl

a(X,Y) :- append(X,Y,[1,2,3]). 

--consult-file

gprolog --consult-file test_queries.pl 
GNU Prolog 1.4.0 
By Daniel Diaz 
Copyright (C) 1999-2011 Daniel Diaz 
compiling /home/carlo/test_queries.pl for byte code... 
/home/carlo/test_queries.pl compiled, 5 lines read - 659 bytes written, 28 ms 
compiling /home/carlo/test_inserts.pl for byte code... 
/home/carlo/test_inserts.pl compiled, 2 lines read - 379 bytes written, 30 ms 
[] [1,2,3] 
[1] [2,3] 
[1,2] [3] 
[1,2,3] [] 
| ?- 
+0

+1로 gprolog 호출합니다. BTW, [GNU Prolog 1.4.1] (http://gprolog.univ-paris1.fr/unstable/?C=M;O=D) – false

+0

@false : 저는 방금 오늘 출처에서 설치했습니다. 얼마나 빨리 움직이는 지 ... – CapelliC