Hi,

Is there any update on this issue?
Since I did not get any answer to my last question in the previous
e-mail (below), I am asking again:
- Is there a way to stop Jess from transforming rules and keep the
original coding, possibly with some loss of performance?
Or even better: is the bug solved?

Thanks,

Henrique



Henrique Lopes Cardoso wrote:
> Hi again,
>
> In the sequel of this problem, I've fond another (possibly related)
> situation where the rule does not seem to compile correctly.
> I managed to simplify the example to the following rule:
>
>     (defrule r3
>         (s)
>         (or (not (a))
>             (and ?x <- (a)
>                  (b ?x) ) )
>         (test (= qwe asd))   ; stupid test, just to expose the problem
>         =>
>         (printout t "tssss!" crlf) )
>
> Using (ppdefrule), we see that this rule compiles to:
>
>     (defrule MAIN::r3
>        (or
>          (and
>            (s)
>            (not (a)))
>          (and
>            (s)
>            ?x <- (a)
>            (and (b ?x)
>             (test (= qwe asd)))))
>        =>
>        (printout t "tssss!" crlf))
>
> Therefore, the test is not done in the first branch of (or).
>
> Is there a way to stop Jess from transforming rules and keep the
> original coding, possibly with some loss of performance? The point here
> is to avoid the apparently buggy transformations that are being made.
>
> Thanks.
>
> Henrique
>
>
> Ernest Friedman-Hill wrote:
>   
>> Indeed, the rule doesn't seem to compile correctly; the two ?x's are
>> not merged.
>>
>> Jess> (ppdefrule r)
>> "(defrule MAIN::r
>>    (initial-fact)
>>    (not ?x <- (and ?x <- (a ?_021__blank_2) (not (b ?_0022_x))))
>>    =>
>>    (printout t \"sure thing!\" crlf))"
>>
>>
>> On Jul 20, 2010, at 4:04 PM, Henrique Lopes Cardoso wrote:
>>
>>     
>>> Actually, asserts do work, because (deffacts) are added to working
>>> memory by a call to (reset). This is wy I am calling (facts) before
>>> (run), to make sure facts are in working memory as intended.
>>>
>>> Anyway, I tried (assert)ing them one by one and it still does not work
>>> as expected.
>>>
>>> It must be something else.
>>>
>>> Henrique


--------------------------------------------------------------------
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].
--------------------------------------------------------------------

Reply via email to