【发布时间】:2014-06-10 08:56:51
【问题描述】:
我正在寻找不评估不必要规则的 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 的实现?是否有任何执行此优化?
【问题讨论】: