I think ROSSEL, Olivier (CIMPA) wrote: > I am using Jess with Protege. I want to write a rule that says: run > when you get an oject FOO with a non-empty slot called 'name' and > where there is no fact foo with property bar equal to the slot > value. I would intuitively wirte that this way:
(defrule doStuff "" ?o <- (object (is-a FOO) (name ?name&~nil)) (not (foo (bar ?name))) => ... ) > Is it a correct syntax? There were some extra close-parentheses, which I've removed. I also added a "not nil" condition to meet the "non-empty" requirement, assuming that nil is the default value for that slot. Other than that's it's fine as far as I know -- whether it's actually correct or not depends on the "object" and "foo" templates. --------------------------------------------------------- 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] --------------------------------------------------------------------