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