Approved
BLD
This test highlights the different behavior of forward-chaining vs. backward-chaining engines
The entailment holds, but some engines may have difficulty finding it and/or may behave badly with it. This particular test case may be hard to handle for forward-chaining engines, depending on their implementation of the func:numeric-subtract builtin. In a backward-chaining strategy, the entailment should be found. Note that a backward-chaining engine, however, might have run into non-termination problems when the same ruleset is used to test conc=ex:a(0), since there is no termination condition in the body.
Chaining_strategy_numeric-subtract_1-premise.rif
http://www.w3.org/2005/rules/test/repository/tc/Chaining_strategy_numeric-subtract_1/Chaining_strategy_numeric-subtract_1-premise.rif
)
Prefix(func )
Group (
Forall ?x ( ex:a(?x) :- ex:a(External(func:numeric-subtract(?x 1))) )
ex:a(1)
)
)
]]>
Chaining_strategy_numeric-subtract_1-conclusion.rif
http://www.w3.org/2005/rules/test/repository/tc/Chaining_strategy_numeric-subtract_1/Chaining_strategy_numeric-subtract_1-conclusion.rif