我有以下数据库:
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).
我希望使用以下规则查找cK
和cS
的所有结果:
cK(S,X):- cS(O,X),cR(S,O).
cS(O,X):- cK(S,X),cW(S,O).
请注意,数据库的cK
和cS
事实仅作为初始化。
正如您所看到的,两个预测ck和cS相互依赖,这意味着第一个规则的结果将在第二个规则中使用,反之亦然。
如何修改规则以便从数据库中的那个开始获取所有cK和cS结果。断点可能是结果的冗余。
感谢。