There's a subtle point here: as written, this rule will match for each
friend that is not disliked. I think we want to match only once, if
there are no friends that are disliked, which is a different thing. I
think we want something like
(defrule check
(person (name ?name))
(not (and (person (name ?name) (friend $? ?f $?))
(dislike ?x)))
=>
(assert (allow ?name))
)
On Mar 7, 2009, at 3:57 PM, Wolfgang Laun wrote:
The binding for some element ?x anywhere in a multislot
is written like this
(ms $? ?x $?)
where $? matches "zero or more elments". Therefore,
(defrule check
(person (name ?name) (friend $? ?fx $?))
(not (dislike ?x))
=>
(assert (allow ?name))
)
asserts (allow ?name) iff there is no disliked ?x in ?name's friend
list.
-W
On Sat, Mar 7, 2009 at 8:57 PM, NehaP <[email protected]> wrote:
To make it more clear, if my person template had two slots instead
of a
multislot,
(deftemplate person
(slot name)
(slot friend))
I would write the rule like this
(defrule check
(person (name ?name) (friend ?friend))
(not (dislike ?friend))
=>
(assert (allow ?name))
)
However, my problem is that friend is a multislot and not a slot. So
I would
like to check if a fact exists for each member of the multislot
friend. How
do I do this?
Thanks,
Neha.
--
View this message in context:
http://www.nabble.com/JESS%3A-Check-assertion-of-multi-slot-values-in-LHS-of-rule-tp22388880p22391255.html
Sent from the Jess mailing list archive at Nabble.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]
.
--------------------------------------------------------------------
---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences Phone: (925) 294-2154
Sandia National Labs
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].
--------------------------------------------------------------------