Prolog中的谓词依赖

时间:2017-03-28 18:23:03

标签: prolog

我有以下数据库:

sujet(carl).
sujet(bob).
sujet(alice).
objet(bank1).
objet(bank2).
objet(bank3).
objet(bank4).
data(x).
data(y).
data(w).
data(z).
cR(carl,bank2).
cR(co1,alice).
cR(alice,bank1).
cR(alice,bank3).                  
cR(bob,bank1).
cW(carl,bank4).
cW(bob,bank3).
cW(alice,bank3).
cW(bob,bank1).
cK(bob,x).
cS(bank2,w).
cS(bank4,w).
cK(alice,z).
cK(carl,z).

我希望使用以下规则查找cKcS的所有结果:

 cK(S,X):- cS(O,X),cR(S,O).
 cS(O,X):- cK(S,X),cW(S,O).

请注意,数据库的cKcS事实仅作为初始化。

正如您所看到的,两个预测ck和cS相互依赖,这意味着第一个规则的结果将在第二个规则中使用,反之亦然。

如何修改规则以便从数据库中的那个开始获取所有cK和cS结果。断点可能是结果的冗余。

感谢。

0 个答案:

没有答案