Actually, I did find that and forgot to include it in my notes :-)  Grrr.
That's why I changed the variable names and added the anon variables.
The dangers of late night Jess list-surfing.  :-)


On Tue, Aug 26, 2008 at 10:26 AM, Jason Morris <[EMAIL PROTECTED]>wrote:

> Whoops!  Tis true.  I admit it.
>
>
> On Tue, Aug 26, 2008 at 10:23 AM, Ernest Friedman-Hill <[EMAIL PROTECTED]
> > wrote:
>
>> On Aug 25, 2008, at 1:26 PM, Marcin Krol wrote:
>>
>>
>> I'm new to Jess and struggling with making one example work, based on
>> problem from http://en.wikipedia.org/wiki/Backward_chaining
>>
>>
>>
>> (defrule frog-color
>>  (need-color ?name ?)
>>  (kind ?name frog)
>> ...
>>
>>
>> This is the problem here. You've used the variable "?name" in both
>> patterns. That tells Jess that the "need-color" goal and the "kind" fact
>> should both contain the same value in that slot. But the need-color goal is
>> generated based on the failure of this rule to match:
>>
>> (defrule print-Fritz-color
>>  (color ?name ?val) ...
>>
>>
>> And since "color" is the first pattern in the rule, there's no indication
>> what the value of "?name" should be. So the goal need-color contains "nil"
>> in that position. "nil" doesn't match "Fritz" (or whatever the user types
>> in) so the "kind" and "need-color" facts don't match, and so the rule
>> doesn't fire.
>>
>> Jason's version works because he used an anonymous variable to match the
>> names, but he doesn't mention this as having been the problem. The anonymous
>> variables aren't constrained to having the same value.
>>
>> Another way to fix the program is to embed the name information in the
>> need-color goal; you can do this by matching the "kind" fact in the
>> print-Fritz-color rule, since, as I said, that's the rule that forces the
>> backwards chaining to happen:
>>
>> (defrule print-Fritz-color
>>  (kind ?name ?type)
>>  (color ?name ?val) =>
>>  (printout t "Color of " ?name " is " ?val crlf)
>> )
>>
>>
>>
>>
>> ---------------------------------------------------------
>>
>> Ernest Friedman-Hill
>> Informatics & Decision Sciences, Sandia National Laboratories
>> PO Box 969, MS 9012, Livermore, CA 94550
>> http://www.jessrules.com
>>
>>
>>
>>
>>
>>
>>
>
>
> --
> -----------------------------------------------------------
> Jason Morris
> Morris Technical Solutions LLC
> [EMAIL PROTECTED]
> (517) 304-5883
>



--
-----------------------------------------------------------
Jason Morris
Morris Technical Solutions LLC
[EMAIL PROTECTED]
(517) 304-5883

Reply via email to