Did you check the return value from assertFact()? It might be failing. alan __________________ Bleib immer locker
________________________________ From: [EMAIL PROTECTED] on behalf of Matthew Hutchinson Sent: Fri 4/15/2005 8:28 AM To: [email protected] Subject: JESS: Rule not firing Hi everyone, To get used to Jess, I have been executing commands at the Jess prompt, and then trying the same commands using the API. After doing all the usual things (new rete engine, creating a deftemplate, populating the slots and adding the template) everything works fine when asserting a particular fact using executeCommand - and my rule fires. However, when I try and assert the fact using the API (same slot values, head name etc.), the rule does not fire. This code works: engine.executeCommand("(assert (conventionalAddress (number_prefix NIL) (street_number 48) (street_name Marlow) (street_type Street) (suburb_name Wembley) (city_name Perth) (state_name WA) (post_code 6014) ))"); but the API equivalent does not: Fact f = new Fact("conventionalAddress", engine); f.setSlotValue("number_prefix", new Value("", RU.STRING) ); f.setSlotValue("street_number", new Value("48", RU.STRING) ); f.setSlotValue("street_name", new Value("Marlow", RU.STRING) ); f.setSlotValue("street_type", new Value("Street", RU.STRING) ); f.setSlotValue("suburb_name", new Value("Wembley", RU.STRING) ); f.setSlotValue("city_name", new Value("Perth", RU.STRING) ); f.setSlotValue("state_name", new Value("WA", RU.STRING) ); f.setSlotValue("post_code", new Value("6014", RU.STRING) ); engine.assertFact(f); Regardless of which is used, this is the rule I'm trying to fire: engine.executeCommand("(defrule find-suburb (conventionalAddress (post_code 6014) (suburb_name ?s) ) => (store RESULT ?s ) )"); I just can't see how the fact is any different when done via the API! Thanks, and I hope I haven't been posting the mailing list too much. (!) Best wishes, Matt -- Matthew Hutchinson Ph.D. Candidate Department of Spatial Sciences Curtin University of Technology GPO Box U1987 Perth, Western Australia 6845 -------------------------------------------------------------------- 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] --------------------------------------------------------------------
<<winmail.dat>>
