DroolsExpert(Drools分析师)
Drools分析师是声明性的,规则的基础,编码的环境。在这里可以让你把重点放在“什么事你想做的是”,而不是“如何做到这一点”。
下面是一个简单的“反应”监控的案例,每隔几个小时报警时,发送一个消息。日历属性,可以确保该规则实在平日执行。监控像这样的例子,将是一个长期运行的应用程序。
Eg:
rule "Weekday Alarm Response" timer(int 4h) calendar "weekday"when
a : Alarm( )
then
sendMessage( "There is analert" + a);
end
这是另一个例子,说明申请驾驶照的处理过程。例子disqalifies任何申请人是18岁或者以上。数据处理这样的例子会考虑短期运行的应用程序
Eg :
rule "Person must be over 18 for Driving License" when
$a : Application( person.age < 18)
then
modify( $a ) { valid = false }
end
声明的规则是基础的方法是适合于各种各样的问题,甚至是游戏,如在以下两个推荐视频所示。记住要选择“720”设置在YouTube,提供最好的质量,建立在13分钟与Jboss Drools的,与JBoss Drools的,在20分钟内建立一个图形冒险游戏。
下面是例子片段
Eg:
Person(age > 30 && < 40|| hair == "black")
---
Person(pets["rover"].type =="dog")
---
forall(Bus (color=="red"))
---
$owner : Person( name == "mark") Pet( name == "rover" ) from$owner.pets
---
$zipCode : ZipCode() Person( ) from$hbn.getNamedQuery("Find People")
.setParameters( [ "zipCode" : $zipCode ] )
---
accumulate( bus : Bus( color =="red" ); s : sum( bus.takings); s > 100 )
---
zipCode : ZipCode()
accumulate( bus : Bus( color =="red") from $hbn.getNamedQuery("Find Buses")
.setParameters([ "zipCode", zipCode ] ) .list();
s : sum( but.takings );
s > 100 )
Eclipse的编辑和DSL代码的完成
并排规则流创建啦规则
交互式调试
引导编辑器
决策表
译文:http://www.jboss.org/drools/drools-expert