R2ML -- The REWERSE I1 Rule Markup Language

R2ML is a comprehensive and user-friendly XML rule format that allows

  • interchanging rules between different systems and tools,
  • enriching ontologies by rules,
  • connecting your rule system with (our) R2ML-based tools for visualization, verbalization, verification and validation.

R2ML is comprehensive in the sense that it integrates

the Object Constraint Language (OCL)
a standard used in information systems engineering and software engineering,
the Semantic Web Rule Language (SWRL)
a proposal to extend the Semantic Web ontology language OWL by adding implication axioms,
the Rule Markup Language (RuleML)
a proposal based on Datalog/Prolog,

and it includes four rule categories: derivation rules, production rules, integrity rules and ECA/reaction rules.

"For enriching ontologies with rules, use R2ML rather than SWRL because it's more powerful." [Gerd Wagner, co-ordinator of the Rule Modeling and Markup research project REWERSE I1]

R2ML is a usable language in the sense that it allows structure-preserving markup and does not force users to translate their rule expressions into a different language paradigm such as having to transform a derivation rule into a FOL axiom, an ECA rule into a production rule, a function into a predicate, or a typed atom into an untyped atom.

Notice that R2ML, like OCL and OWL/SWRL, provides a rich syntax for expressing rules supporting conceptual distinctions, e.g. between different types of terms and different types of atoms, which are not present in standard predicate logic. However, you don't have to be familiar with all of R2ML's language elements in order to use it productively.

A Basic Architecture for Rule Interchanging


During the last years the business rules industry had a considerable growth. An important number of customers consider rule systems as a suitable solution for a large number of applications. However, actually there is a lack of interoperability between different rule systems and this creates difficulties to align rule bases to different existent systems and applications. Rule interchange or rule interoperability can use R2ML as an interchange format for rules. Source and target languages will implement translators from/to R2ML.


  1. Scope
  2. Design principles
  3. References
  4. Current Release
  5. Old Releases
  6. Open Issues
  7. Acknowledgements


  • An XML based rule language;
  • Support for: Integrity Rules, Derivation Rules, Production Rules and Reaction rules;
  • Integrate functional languages (such as OCL) with Datalog languages (such as SWRL);
  • Serialization and interchange of rules by specific software tools;
  • Integrating rule reasoning with actual server side technologies;
  • Deploying, publishing and communicating rules in a network.

Design principles

  • Modeled using MDA;
  • Rule concepts defined with the help of MOF/UML;
  • Required to accommodate:
    • Web naming concepts, such as URIs and XML namespaces;
    • The ontological distinction between objects and data values;
    • The datatype concepts of RDF and user-defined datatypes;
  • Actions (following OMG PRR submission);
  • Events.
  • EBNF abstract syntax;
  • XML based concrete syntax validated by an XML Schema;
  • Allowing different semantics for rules.


See the publications page of REWERSE I1 Working Group.

Current Release

The current R2ML Release is 0.5 (Release Date: August 23, 2007). XML Schema and examples are available. R2ML example rule set provides markup for rules written in various languages like: Prolog, F-Logic, SQL, OCL, Jena, Jess, IRL, RuleML, SWRL.

Old Releases

  1. R2ML v 0.4 (Release date: 20060824)
  2. R2ML 0.3 (Release date: 20060710)  Examples.
  3. R2ML 0.2 (Release date: 20060511)  Examples  API (r2mlapi_0.2_libs.zip, 4.4 MB).
  4. R2ML 0.1 (Release date: 20060411)  Examples.


While R2ML has been mainly designed by Gerd Wagner and Adrian Giurca, its development has benefited a lot from discussions with, and the advice of, Dragan Gasevic, Sergey Lukichev and Milan Milanovic.

Copyright © 2005 - 2007 Some rights reserved.

This page is maintained by Adrian Giurca. Last update January 14, 2008