A fact in working memory is a real, physical Java object; it's either
there, or it's not there. There's no way of saying "sort-of, partly
assert this fact."
The most straightforward way to represent this would just be as a fact
called something like "has-one-or-more-of", containing the list of
possibly associated facts.
On May 23, 2008, at 3:58 PM, Jean-Francois Lassonde wrote:
Hi,
I'm not sure if it's even possible to do this...
I would like to define a rule that when matched, will add a fact to
the KB that says "Paul have-object A or B or C"... I tried several
syntaxes
(defrule person-have-at-least-1-of-these-objects
...
=>
(assert
...My ATLEAST fact here...
)
First, with an OR. This does not work because "person-have-object"
is a fact and not a function which is what "or" expect.
(assert
(or
(person-have-object ?person ?object1)
(person-have-object ?person ?object2)
(person-have-object ?person ?object3)
)
)
Switching the or and assert is not really what I need either because
it will assert all three facts.
(or
(assert
(person-have-object ?person ?object1)
(person-have-object ?person ?object2)
(person-have-object ?person ?object3)
)
)
An "or" on 3 asserts will just take the first fact and add it to the
KB. This is not what I want.
(or
(assert (person-have-object ?person ?object1))
(assert (person-have-object ?person ?object2))
(assert (person-have-object ?person ?object3))
)
How can I explicitly state that ?person have ?object1 OR ?object2
OR ?object3?
Is there a way to do 3 assert and negating them with (not)? Or do I
need to add a "special fact" that takes 3 arguments?
Thank you very much,
--
Jean-Francois Lassonde
---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences Phone: (925) 294-2154
Sandia National Labs FAX: (925) 294-2234
PO Box 969, MS 9012 [EMAIL PROTECTED]
Livermore, CA 94550 http://www.jessrules.com
--------------------------------------------------------------------
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]
--------------------------------------------------------------------