However, isn't RU.ATOM deprecated?

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of [EMAIL PROTECTED]
Sent: Friday, April 15, 2005 9:41 AM
To: jess-users@sandia.gov
Subject: Re: JESS: Rule not firing

I think Matthew Hutchinson wrote:
> 
> 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);

These are totally different facts. The contents of every single slot
differ between the two! The symbol NIL is not the same as the String
"", the integer 48 is not the same as the String "48", the symbol
Marlow is not the same as the String "Marlow", etc. For the first
slot, note that Jess's equivalent of Java's "null" is the lower-case
symbol nil. 

This code should produce the same fact as your "assert" call:

Fact f = new Fact("conventionalAddress", engine);
f.setSlotValue("number_prefix", new Value("NIL", RU.ATOM );
f.setSlotValue("street_number", new Value(48, RU.INTEGER) );
f.setSlotValue("street_name", new Value("Marlow", RU.ATOM) );
f.setSlotValue("street_type", new Value("Street", RU.ATOM) );
f.setSlotValue("suburb_name", new Value("Wembley", RU.ATOM) );
f.setSlotValue("city_name", new Value("Perth", RU.ATOM) );
f.setSlotValue("state_name", new Value("WA", RU.ATOM) );
f.setSlotValue("post_code", new Value(6014, RU.INTEGER) );
engine.assertFact(f);


---------------------------------------------------------
Ernest Friedman-Hill  
Advanced Software Research          Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

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

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