I *would* have added something on dynamic salience when I went over the Expert manual, in 2008 (?) - if I'd only known it. Blogging is fine - but it just isn't Documentation, with a capital 'D'.

This is also a nice case in point why I'm reluctant to invest work in maintaining Drools documentation: From where the heck would I get to know what's missing or obsolete or wrong? In some areas, I have gathered sufficient experience, but there are vast areas where I'm anything between spottily witted to downright ignorant. Also, there's some furious hacking going on all the time (I presume), and how would one rein that it to get to know what's happening?

Anyway, right now I'm collecting a loose set of How-tos, as a by-product of current work, and for areas where I deem it useful. See http://members.inode.at/w.laun/ and scroll down to "Rule Based Programming" / "Drools" / "Selected Topics".

-W

On 27 August 2010 02:21, Mark Proctor <mproctor@codehaus.org> wrote:
On 27/08/2010 00:05, Michael Neale wrote:
Hahaha - yes - that is what I was thinking. 

Dyanmic salience was added some time back - but its one of those "did it and forgot about it" things. 
Also - historically salience has been "abused" more than "used" - so perhaps there is less excitement to talk about what you can do with it. 

But the case wolfgang mentioned is a good one - if you know you need it you can probably safely use it.
http://blog.athico.com/2007/05/dynamic-salience-expressions.html


On Thu, Aug 26, 2010 at 11:21 PM, Edson Tirelli <tirelli@post.com> wrote:
    Wolfgang,

    Not sure I understand what you mean, but Drools supports dynamic salience:

rule "fire in rank order 1,2,..."
      salience( -$rank )
when
      Element( $rank : rank,... )
      ...
then
     ...
end

    Edson


2010/8/26 Wolfgang Laun <wolfgang.laun@gmail.com>

Just FYI, but who knows ;-)

Our proprietary vintage RBS has a feature is (admittedly) rarely used
but could come in handy, every now and then.

Given this class

  class Element {
      int rank; // rank > 0
  }

and to fire a rule in ascending rank order, you can write (using
modified Drools syntax)

rule "fire in rank order 1,2,..."
when
      Element( $rank : rank,... )
      // ...
salience -$rank    ### <=
then
     // ...
end

The dynamically set salience does all the work. (Of course, you can
achieve the same order
in Drools easily enough.)

This is possible since salience is a value that must be carried over
into the activation.
There is at least one other rule attribute that shares this property,
but I'm not sure
whether anything useful can be done with dynamic agenda groups.

Cheers
-W
_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev



--
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com

_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev




--
Michael D Neale
home: www.michaelneale.net
blog: michaelneale.blogspot.com
_______________________________________________ rules-dev mailing list rules-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-dev


_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev