Try 6.1a4 (just out). You're probably tickling a bug in 6.1a3 that was
fixed in the new release.


I think Igor Gorbunov wrote:
> Hello Ernest and all,
> 
> I'm unable to resolve my problem with (not) CE, and I
> really need this functionality ASAP, so I would
> appreciate any advice you could provide. Here's the
> situation:
> 
> I use backward-chaining to assert (count) facts to the
> engine while it runs. Rules, which require (count)
> facts to be calculated and asserted, may have
> different patterns. One example of such a pattern
> would be (count 0). Unfortunately, logic which
> calculates and asserts (count) facts does not assert
> any fact if the count is <1. 
> 
> So I need to modify my rules so, that in case (count
> 0) is required by rule pattern, I also use "absence of
> (count) fact" criteria as a part of rule LHS:
> 
> (defrule myrule
>     (or (not (count ?)) ((count ?X) (test (eq ?X 0))))
> =>
> ...
> 
> Right?
> 
> Unfortunately, this (not (count ?)) kind of pattern 
> does not work for me. Here's real debug information,
> so you can see what actually happens:
> 
> <attached file>
> 
> As you can see, there is two matches even though I
> expected just one, for "john.smith". On the other
> hand, if I remove (not) CE and use just (count ?)
> pattern, it does match just one person:
> "igor.gorbunov".
> 
> Could you tell me why (not) doesn't work as I expect?
> 
> Thank you very much,
> Igor
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Finance - Get real-time stock quotes
> http://finance.yahoo.com
Content-Description: jesshelp.txt

> (defrule rule_name_IDS_58_42 ?F_33<-(USER_TEMPLATE (USER_GENDER ?GENDER) 
>(USER_FIRSTNAME ?FIRSTNAME) (USER_ID ?USERID) (USER_DOB ?DOB) (USER_ZIPCODE ?ZIPCODE) 
>(USER_SUBSCRIPTIONS $?U_S) (USER_ETHNICITY ?ETHNICITY) (LOCATION_ID ?LOCATION) 
>(DEPENDENT_FLAG ?DEPENDENT_FLAG) (USER_ACTIVE_STATUS ?ACTIVE_FLAG) ) (test (member$ 
>58 $?U_S))    
>  (test  (and (neq ?GENDER  "sfdhj" ) (eq ?GENDER  "M" ) ) )
>  (not (count (userID ?USERID) (messageID 42) (since "08/08/1990") (till 
>"(current_date)") (count ?))) 
>  => (assert (MessageMatch ?USERID 42)) )
> 
> ***(facts) before:
> DUMPING FACTS:
> f-0   (MAIN::initial-fact)
> f-1   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
>(USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith") (USER_GENDER "F") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22554") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 31 58))
> f-2   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
>nil) (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra") (USER_GENDER "F") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "20102") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 49 58))
> f-3   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
>(USER_FIRSTNAME "John") (USER_LASTNAME "Smith") (USER_GENDER "M") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22767") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 58))
> f-4   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
>nil) (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov") (USER_GENDER "M") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "21122") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 38 58))
> f-5   (MAIN::need-count (class nil) (count nil) (messageID 42) (since "08/08/1990") 
>(till "(current_date)") (userID "[EMAIL PROTECTED]") (OBJECT nil))
> f-6   (MAIN::need-count (class nil) (count nil) (messageID 42) (since "08/08/1990") 
>(till "(current_date)") (userID "[EMAIL PROTECTED]") (OBJECT nil))
> For a total of 7 facts.
> 
> ***RUN...
> ***calculating and asserting count fact
> 
> Dumping count fact...
> UserID: [EMAIL PROTECTED]
> MessageID: 42
> Count: 1
> Since: 08/08/1990
> Till: (current_date)
> 
> ***(facts) after:
> f-0   (MAIN::initial-fact)
> f-1   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
>(USER_FIRSTNAME "Jane") (USER_LASTNAME "Smith") (USER_GENDER "F") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22554") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 31 58))
> f-2   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
>nil) (USER_FIRSTNAME "Priya") (USER_LASTNAME "Chandra") (USER_GENDER "F") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "20102") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 49 58))
> f-3   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID nil) 
>(USER_FIRSTNAME "John") (USER_LASTNAME "Smith") (USER_GENDER "M") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "22767") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 58))
> f-4   (MAIN::USER_TEMPLATE (USER_ID "[EMAIL PROTECTED]") (JOB_CLASS_ID 
>nil) (USER_FIRSTNAME "Igor") (USER_LASTNAME "Gorbunov") (USER_GENDER "M") (USER_DOB 
><External-Address:java.sql.Timestamp>) (USER_SSN nil) (USER_ZIPCODE "21122") 
>(USER_EMAIL "[EMAIL PROTECTED]") (USER_PHONE_NO nil) (USER_ETHNICITY nil) 
>(PLAN_ID nil) (LOCATION_ID nil) (USER_CONSENT nil) (DEPENDENT_FLAG nil) 
>(USER_ACTIVE_STATUS "0") (PROFILE_UPDATE_FLAG nil) (USER_SUBSCRIPTIONS 38 58))
> f-5   (MAIN::need-count (class nil) (count nil) (messageID 42) (since "08/08/1990") 
>(till "(current_date)") (userID "[EMAIL PROTECTED]") (OBJECT nil))
> f-6   (MAIN::need-count (class nil) (count nil) (messageID 42) (since "08/08/1990") 
>(till "(current_date)") (userID "[EMAIL PROTECTED]") (OBJECT nil))
> f-7   (MAIN::MessageMatch "[EMAIL PROTECTED]" 42)
> f-8   (MAIN::MessageMatch "[EMAIL PROTECTED]" 42)
> f-9   (MAIN::count (class <External-Address:java.lang.Class>) (count 1) (messageID 
>42) (since "08/08/1990") (till "(current_date)") (userID 
>"[EMAIL PROTECTED]") (OBJECT 
><External-Address:com.vitalspring.broadcaster.core.CountFact>))
> For a total of 10 facts.
> # of matches produced: 2



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

Reply via email to