How can I determine if a fact is present or can be concluded via
backward chaining? Other expert systems I've used have an operator,
typically named ASK, which will do this.
Suppose I have a two argument predicate OPPOSITE-SIDE which is
symetric, such that if (OPPOSITE-SIDE a b) is true then (OPPOSITE-SIDE
b a) is also true:
(do-backward-chaining opposite-side)
(defrule opposite-side-symetric
(need-opposite-side ?side1 ?side2)
(opposite-side ?side2 ?side1)
=>
(assert (opposite-side ?side1 ?side2)))
And I now make an assertion about two opposites:
(assert (opposite-side side-z side-y))
How can I test to make sure that
(opposite-side side-y side-z)
is true?
I tried using a query
(defquery opposite-side
(declare (variables ?x ?y))
(opposite-side ?x ?y))
(bind ?e (run-query opposite-side side-y side-z))
(while (?e hasMoreElements)
(printout t (call ?e nextElement) crlf))
but that didn't give me anything useful. It just printed FALSE.
--------------------------------------------------------------------
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]
--------------------------------------------------------------------