我正在寻找Datalog的Jave实现,该实现不会评估不必要的规则。我看着IRIS reasoner这似乎是最稳定的。
但是,它评估所有规则,而不是仅评估正在使用的规则。
举个例子:
parent('homer', 'bart').
parent('abe', 'homer').
ancestor(?a, ?b) :- parent(?a, ?b).
ancestor(?a, ?b) :- ancestor(?a, ?c), ancestor(?c, ?b).
// query.. find all parent-child pairs.
?-parent(?x, ?y).
我发现IRIS可以计算关系
ancestor
,即使它从未使用过。Java还有哪些其他实现?有没有人执行此优化?
最佳答案
OP链接到的IRIS网站的报价:
支持以下程序优化:
-规则过滤(删除对回答问题没有帮助的规则
查询)
-魔术套和横向信息传递策略(SIPS)