Sunday, March 11, 2007

A standards based approach to natural language rules - SBVR (S Beaver) (Michael Neale)

SBVR is a OMG standard for natural language rules and vocabularies (nominally using English). We think SBVR (Semantics of Business Vocabulary and Business Rules) is an important and useful standard, which can be used for rules interchange in a "source" and human readable format (which RuleML? and RIF are not aiming to do).

From a users point of view, there are 2 main aspects to using SBVR (I am skipping the grander vision for SBVR, which goes beyond production rules, I believe, but for now, lets keep it simple, and relevant to us):

  • The SBVR vocabulary
  • The rules themselves - which are written according to the SBVR vocab.

SBVR comes under Model Driven Architecture (MDA), and is defined a "Computation Independent Model" (CIM) - what that means to you, is that SVBR is designed primarily for human consumption. However, it is defined in terms of formal logic, and detailed enough to generate models and rules for a specific platform. The next layer "lower down" to CIM in MDA is PIM (Platform Independent Model) - which is where things like RuleML come in. Lower again in MDA terms is the PSM (Platform Specific Model) - this is where rule engine specific languages kick in.

Anyway, enough of my flawed MDA tutorial (if you have followed along this far, well done !).

What brought SBVR to my attention is the work of Maurizio De Tommasi and Pierpaolo Cira, and their practical work on a SBVR plug in for eclipse called "sbeaver" - you can read more about sbeaver here.

We are working with These guys to have tooling and a SBVR framework to author rules, and manage vocabularies for JBoss Rules (narrowing SBVR down to production rules to start with). Although SBVR is a CIM (see above) - we think its possible as a format for capturing business rules, and actually generating executable rules directly (perhaps with some assumptions built in - for instance SBVR vocabularies are not strong on data type information that I am aware of).

The first steps are a proof of concept to generate DRL rules from SBVR.

I am also interestsed in the SBVR vocabulary definition "language" as a generic "business object model" for the rule engine to use (regardless of if SBVR is used) - still under investigation.

So, what can I do with SBVR?
A picture says a thousand words, so take a look at the vocabulary editor:
This is where you define concepts about the business model, and things like synonyms, all of which help SBVR understand sentences.

And the rules?
You can see content assistance is pretty critical - this is a structure language, but much more free form then templates allow, but still - smart content assistance like is being showed here is invaluable.

I look forward to working together on integrating this !

Michael.

comments