On Nov 24, 2008, at 7:01 PM, Ken Banks wrote:


1.  Is a rule based engine such as jess an appropriate solution given
the type of problem that I am trying to solve

Yes, I think it's very well suited, actually.



2.  What mechanism is in place to control the order of priority of
rules?  I know that I can manually specify a salience for my rules but
is there a better way of doing things?



Salience controls firing order, and it's appropriate for real-time or pseudo-real-time control systems and other environments where the rule that fires first is the one that counts. A more nuanced way of handling this would just be to define a "play" template that described a possible play based on the current hand, and give that template an explicit "priority" slot. Each rules could, when it fires, create a play with an associated priority -- i.e.,

(defrule raise-on-pocket-aces
(holding pocket aces) ;; I apologize, I don't know what that means, so I can't show a better pattern here!
   =>
   (assert (play (action raise) (priority 10))))

(defrule call-on-pocket-aces
   (holding pocket aces)
   (opponent (is-bluffer TRUE))
   =>
   (assert (play (action call) (priority 20))))

and so on. Your system can let many rules fire, creating any number of different plays; then a final rule (one with low salience, so it fires last!) can choose the play with the highest priority, and use it.


---------------------------------------------------------
Ernest Friedman-Hill
Informatics & Decision Sciences, Sandia National Laboratories
PO Box 969, MS 9012, 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]
--------------------------------------------------------------------

Reply via email to