2012-05-30 16 views

Respuesta

14

No estoy seguro si entiendo su pregunta, pero utilizando una combinación de grupos de activación y las estrategias de resolución de conflictos tradicionales podría lograr lo que necesita. Por ejemplo, supongamos que tiene 3 reglas, A, B y C. Desea usar, digamos, relevancia para darles prioridad de ejecución en ese orden, y una vez que se ejecuta una, no debe ejecutarse ninguna otra regla en ese grupo. . Se puede definir como esto:

rule A 
    salience 30 
    activation-group "x" 
... 

rule B 
    salience 20 
    activation-group "x" 
... 

rule C 
    salience 10 
    activation-group "x" 
... 

La prominencia garantiza que si A activa, que se disparará en primer lugar, seguido de B, seguido de C si se activaron. El Grupo de Activación garantiza que una vez que una de las reglas se active, todas las demás reglas activadas en ese grupo serán canceladas. Entonces, digamos que en su sesión, las reglas B y C se activan, pero no A, luego B disparará y C se cancelará.

Tenga en cuenta que los grupos de activación no impiden que las reglas se vuelvan a activar más tarde. Simplemente cancela cualquier activación actualmente en la agenda en el momento de una de las reglas en el grupo de fuego.

Cuestiones relacionadas