Reaction Rules for the Rule Markup Language
Reaction RuleML Home
Reaction RuleML

Reaction RuleML 0.1

Adrian Paschke, Alexander Kozlenkov, Harold Boley, Michael Kifer, Said Tabet, Mike Dean, Keara Barrett

Version history:
2006-10-12 - Reaction RuleML 0.1

Quick Links:

Syntax, Schema, Examples, Glossary


Reaction RuleML is a general, practical, compact and user-friendly XML-serialized language for the family of reaction rules. It incorporates different kinds of production, action, reaction, and KR temporal/event/action logic rules into the native RuleML syntax using a system of step-wise extensions. In particular, the approach covers different kinds of reaction rules from various domains such as active-database ECA rules and triggers, forward-directed production rules, backward-reasoning temporal-KR event/action/process logics, event notification & messaging and active update, transition and transaction logics. It covers different execution styles for processing them such as active, where the reaction rules actively pull or detect the events possibly clocked by a monitoring/validity time function, passive, where the reaction rules passively wait (listen) on matching event instances, e.g. incoming event messages, which match with the define event definition patterns, and reasoning, where the focus is on the formalization of events and actions and reasoning on their effects on changeable knowledge states (fluents). Reaction rules can be specified on a global level in a tight combination with other rule types such as derivation rules or integrity constraints or locally, i.e. nested within other derivation or reaction rules. There are different evaluation styles for reaction rules such as strong and weak interpretation which are used to manage the "justification lifecycle" of local reaction rules in the derivation process of the outer rules. Reaction RuleML supports procedural calls on external procedures with side effects and enables expressive transactional OID-based updates on the extensional and intensional knowledge base, i.e. on facts and rules. Sophisticated postconditional verification, validation and integrity tests (V&V&I) using integrity constraints or test cases can be applied as post-conditional tests, which possibly might lead to roll-backs of the update actions. Complex events and actions can be expressed in terms of complex event / action algebra operators and different selection and consumption policies can be configured.

Reaction RuleML Home

XSD Schema



Int. RuleML Symposium on Rule Interchange and Applications (RuleML-2007), 2007-10-25/26, co-located with the 10th International Business Rules Forum (CfP)

Reaction RuleML Tutorial at RuleML'06, 2006-11-12 (slides)

Special Event on Reaction RuleML at RuleML'06 / ISWC'06, 2006-11-09 (info)

Reaction RuleML 0.1 Release, 2006-11-07 (xsd)

Technical Telephone Conference, 2006-10-19 (slides)


all news>>


Reaction RuleML List


post a message:



Reaction RuleML Tutorial at RuleML'06 (slides)

Reaction RuleML Poster at RuleML 2006 (pdf)

Position Paper at Business Rules Forum 2006 (pdf)

Reaction RuleML Consensual Presentation (RRCP)

all publications>>


Members Section




Reaction RuleML covers constructs for (complex) events, actions and states/fluents/transition (changeable properties and transitions) definition and processing/reasoning according to the Reaction RuleML Classification of the Event / Action / State Definition and Processing Space



Reaction RuleML follows the design priciple of RuleML and defines new constructs within seperated modules which are added to the RuleML familiy as additional layers on top of the hornlog layer of RuleML. The layers are not organized around complexity, but add different modelling expressiveness to the RuleML core for the representation of behavioural (re)action and KR event/action logic. The language fulfils typical criteria for good language design such as minimality, symmetry and orthogonality. With minimality we mean that Reaction RuleML provides only a small set of needed language constructs in addition to the existing constructs in RuleML, i.e., the same meaning cannot be expressed by different language constructs. Symmetry is fulfilled in so far as the same language constructs always expresses the same semantics regardless of the context they are used in. Orthogonality permits every meaningful combination of a language constructs to be applicable. Moreover, Reaction RuleML satisfies typical knowledge representation adequacy criteria such as epistemological adequacy w.r.t. the various application domains of reaction/action/production rules and KR event / action logics:

"A representation is called epistemologically adequate for a person or a machine if it can be used practically to express the facts that one actually has about the aspects of the world.„

McCarthy/Hayes 1969



Reaction RuleML examples


XSD Schemas

A stable XML Schema specification of Reaction RuleML 0.1 has been created.



Core Reaction Rule 0.1 Syntax:

Reaction ::= [oid,] [event,] [body,] [action] [,postcond] [,alternative]
event ::= Naf | Neg | Atom | Message | Reaction
body ::= Naf | Neg | Atom | And | Or
action ::= Atom | Assert | Retract | Message
postcond ::= Naf | Neg | Atom | And | Or
alternative ::= Atom | Assert | Retract

complete syntax and content models>>



Small glossary with basic constructs/tags - a more detailed description will follow soon:

  • Reaction: General reaction rule construct
  • @exec: Denotes execution style of the reaction rule: "active | passive | reasoning"; default = "passive"
  • @kind: Required attribute denoting the kind of the reaction rule, i.e. the rule pattern which defines the constituent parts of the reaction rule
  • @eval: Attribute denoting the interpretation of the reaction rule: "strong | weak"; default="strong"
  • event, body, action, postcond, alternative: Role tags for the reaction rule parts which might be omitted (see RuleML role and type tags)
  • Message: Defines an inbound or outbound message
  • @mode: Attribute denoting the mode (inbound or outbound) of a message event/action: "inbound/outbound"
  • @directive: A directive, e.g. a FIPA ACL performative such as "ACL:inform" or "ACL:confirm"
  • Assert, Retract: OID-based update primitives to update the intensional and extensional KB
  • @safety: Attribute denoting whether the update is transactional or not, i.e. might be rolled-back resp. comitted: "transactional | normal"; default = "normal"
  • Initiates, Terminates: KR event/action logics construct initiating or terminating a state (a.k.a. fluent)
  • state: Role tag for fluents/states in KR event / action logics



You can validate your Reaction RuleML XML documents online with the Reaction RuleML Validator



You can translate your Reaction RuleML XML documents with the Reaction RuleML Translators



Site Contact: Adrian Paschke - Last Update 2006-10-19