Utilisateur:Pjlross
Apparence
MVEL (MVFLEX Expression Language) est un puissant parseur LALR plus simple et plus performant que OGNL, utilisé dans les applications Java qui nécessitent l'intégration d'un langage de scripting. Le très connu moteur de règles DROOLS (servant notamment à l’implémentation de systèmes experts) utilise le langage MVEL (en plus de Java) comme dialecte pour l’écriture de règles dans sa base de connaissance.
- Exemple de contenu d'un fichier de règles MVEL utilisé dans DROOLS (Fibonacci.drl) :
package org.drools.examples
import org.drools.examples.FibonacciExample.Fibonacci;
dialect "mvel"
rule Recurse
salience 10 when not ( Fibonacci ( sequence == 1 ) ) f : Fibonacci ( value == -1 ) then insert( new Fibonacci( f.sequence - 1 ) ); System.out.println( "recurse for " + f.sequence );
end
rule Bootstrap
when f : Fibonacci( sequence == 1 || == 2, value == -1 ) // this is a multi-restriction || on a single field then modify ( f ){ value = 1 }; System.out.println( f.sequence + " == " + f.value );
end
rule Calculate
when f1 : Fibonacci( s1 : sequence, value != -1 ) // here we bind sequence f2 : Fibonacci( sequence == (s1 + 1 ), value != -1 ) // here we don't, just to demonstrate the different way bindings can be used f3 : Fibonacci( s3 : sequence == (f2.sequence + 1 ), value == -1 ) then modify ( f3 ) { value = f1.value + f2.value }; System.out.println( s3 + " == " + f3.value ); // see how you can access pattern and field bindings
end