I guess I could add my own salience field to all my working memory objects, but it seems
like
overkill when I don't want to change the salience during a run. I just want to be able
to set it as
a constant salience before the rules are loaded and run.
Yuri de Wit's message received 8/17/2007 6:41 AM:
Scott,
not sure if it fits your problem, but you may also consider using
dynamic saliences. Yesterday I was able to convert 3.x rules to use it
worked very well.
In my case, I have facts of different sizes (some are collections of
other facts, some are individual facts) and in some rules I need to
find first MxN pairs (collection facts on both sides), then Mx1 or 1xN
pairs, and only then 1x1 pairs. In other rules I need to find first
1x1 pairs, then Mx1 or 1xN pairs and only then MxN.
Instead of writting a custom ConflictResolver, what I did was to use
one dynamic salience:
salience (1000 / (c.size * t.size))
for finding smallest pairs first, and
salience (-1000 / (c.size * t.size)
for finding the largest pairs first.
The 1000 is to get around the fact that saliences are integers and not
float/double (afaik)
Hope it helps,
-- yuri
On 8/17/07, Manjax23 <manjunatha.n(a)coreobjects.com> wrote:
> Salience salience = new SalienceInteger( Integer.parseInt( salienceText ) );
> rule.setSalience( salience );
>
> Cheers,
> manjax23
>
>
> Scott Reed-4 wrote:
>> My 3.1 app has a mechanism that allowed the user to change the salience of
>> some rules before running
>> them, before loading up WorkingMemory. This was quite simple,
>> rule.getSalience() returned a rule's
>> int salience value and rule.setSalience(int) set it. Now in 4.0 I see
>> salience is no longer just an
>> int, but a Salience object with a simple constructor and complicated
>> getValue(Tuple,WorkingMemory)
>> method to access the int value.
>>
>> It appears to be still easy to set the salience of a rule:
>> rule.setSalience( new
>> SalienceInteger(int)) but getting the int salience from a Salience object
>> seems to have been removed
>> from joe-blow coder's reach.
>>
>> I would be very grateful if someone would provide me with an example that
>> gets the int salience
>> associated with a rule. I have no idea where or why I need to get the
>> Tuple and WorkingMemory. Can I
>> just pass nulls in for those two arguments?
>>
>> Thanks,
>> Scott
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
> --
> View this message in context:
http://www.nabble.com/programmatic-manipulation-of-4.0-salience--tf428373...
> Sent from the drools - user mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users