漫话规则引擎(3): 规则描述语言

本文最新版已更新至: http://thinkinside.tk/2012/12/06/rule_language.html

在规则引擎中,通常会使用某种表述性的语言(而不是编程语言)来描述规则。所以规则描述语言也是规则引擎的一个重要组成部分。

目前在规则描述语言方面,并没有一个通用的标准获得规则引擎厂商的广泛支持,大部分规则描述语言都是厂商私有的。

大体来说,规则语言可以分为结构化的(Structured)和基于标记的(Markup,通常为xml)。

常见的规则描述语言包括:

 
语言类型厂商
srl(Structured Rule Language)结构化Fair Isaac(以前是Blaze Software)
drl(Drools Rule Language)结构化Jboss(以前是drools.org)
RuleML(Rule Markup Language)xmlwww.ruleml.org
SRML(Simple Rule Markup Language)xml
BRML(Business Rules Markup Language)xml
SWRL(A Semantic Web Rule Language)xmlwww.daml.org

不管是哪种规则描述语言,都需要描述一组条件以及在此条件下执行的操作(即规则)。

下面是一个drl的例子:

package com.sample
 
import com.sample.DroolsTest.Message;
 
rule "Hello World"
    when
        m : Message( status == Message.HELLO, myMessage : message )
    then
        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( myMessage );
end

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值