On 09/11/12 20:32, dew dew wrote:
Hello all,
I have an understanding problem for general rule reasoner in Jena.
First, I see that Jena rule language looks like first-order logic, where I can
"imagine" triple predicate when dealing with RDF triples.
It's datalog with builtins, not first-order logic.
Let's consider forward chaining engine. Rules there are of the form A /\ B -> C. This
looks like definite clause, if there is no negation. If I have a rule A /\ B -> C /\ D,
this one can actually be decomposed for definite clauses : A /\ B -> C and A /\ B
-> D.
It is known that forward inference procedure for first-order logic definite
clause knowledge bases is sound and complete. Can I assume if my forward Jena
rules do not have negations, then the Jena forward reasoning in my application
is sound and complete?
In the absence of builtins, yes.
Once you start using the builtins this is no longer true, because (even
ignoring the non-logical builtins like noValue) they include arithmetic
so you can write rule sets which don't iterate to a fixed-point.
I have a similar question about backward chaining inference in Jena. As rules
are like datalog, which inferences are sound and complete.
Ditto.
Dave