我有一个包含一些事实的数据库和一个包含我定义的谓词的文件。
/* facts.pl */
person(dan).
dog_person(dan).
dog(spot).
/* predicates.pl with facts imported */
:- [facts].
has_dog(X,Y) :- (person(X),dog_person(X),dog(Y)).
whatever(X,Y) :- (something(X),something_else(Y)).
... many more
为了测试我定义的谓词,我需要针对我的db运行一个查询列表。我想知道是否有另一种方法可以做到这一点,我不必逐个输入每个查询。
/* Query */
?- hasdog(X,dan). %(click)
/* Out would be something like */
X = dog. %(click)
... many more
例如,有没有办法将查询抽象到自己的文件/函数中,以便我可以不停止地循环它们?
> swipl predicates.pl queries.pl
/* Query */
?- hasdog(X,dan).
X = dog.
/* Query */
?- hasdog(X,dan).
X = dog.
...
Done.