1
votes

How can I make conditional rule in CLIPS to find the output

For example

(deftemplate holiday
(slot hotel (allowed-symbols nice good poor))
(slot weather (allowed-symbols sunny raining))
)
(deftemplate output
(slot option (allowed-symbols go plan stay))
)

Whith this this, how do we create a rule like

if hotel = poor then stay
if hotel = poor and weather = raining then stay
if (hotel = poor and weather = sunny) or (hotel = good and weather = raining) then plan

Thanks

1

1 Answers

1
votes
 (defrule hotel-rule1
       (holiday (hotel ?hotel&:(eq ?hotel poor)))
       =>
       (assert (output (option stay)))
    )

(defrule hotel-rule2
       (holiday (hotel ?hotel&:(eq ?hotel poor)) (weather ?weather&:(eq ?weather raining)))
       =>
       (assert (output (option stay)))
    )

I would split the "or" condition of your last rule in two different rules, similar to the examples I wrote.

Bye Nic