In Jess, the pattern (not (q)) means there is no fact (q).
In Jess's backward chaining, you write a special kind of rule that can
generate (q), and it is triggered when a (q) fact would be matched but
there isn't one -- i.e., when (not (q)) is true. The other premises of
this special rule would collectively be 'p' in your example.
So if something is interested in (q), but there is no (q), the special
rule is triggered -- but it will only fire if (p) is true. Therefore
in a real sense, (p) implies (q), and (not (q)) implies (not (p)) --
i.e., if (q) can't be created, it is because (not (p)).
So I think what Jess does matches your textbook description rather
well, given the forward-chaining framework in which it works.
I think Patrick Tang wrote:
> Hi,
>
> I want to ask a general question on backward chaining in rule system,
>
> I have found some books on logic and they have definition on backward
> chaining as follows,
>
> given a rule, p implies q,
> then by backward chaining, it need to start with (negation q), to
> imply (negation p),
> i.e. ~q implies ~p, that is their definition on backward chaining.
>
> But in many rule systems Jess, they perform backward chaining without
> any negation,
> why are the differences ?
>
> Thanks
>
> Patrick
>
---------------------------------------------------------
Ernest Friedman-Hill
Distributed Systems Research Phone: (925) 294-2154
Sandia National Labs FAX: (925) 294-2234
Org. 8920, MS 9012 [EMAIL PROTECTED]
PO Box 969 http://herzberg.ca.sandia.gov
Livermore, CA 94550
---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list (use your own address!) List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------