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

3 comments:

  1. Michael,

    a year has passed and I am interested to hear how the integration of the sbeaver tool with Drools is getting along.
    Can you give us an update, please?

    Thanks a lot!

    Ingmar

    ReplyDelete
  2. Unfortunately there has been no real progress at integration. Mostly due to time constraints and priorities more then anything else.

    ReplyDelete
  3. Hi Guys,
    I had first read a draft on a direct SBVR2DRL transformation that was written by deTommasi and I was asking myself if a direct transformation that overjumps the PIM directly into DRL would be the best one could do. Then I stumbled on this post which is older that the draft by deTommasi and I see that Michael has the same observation. I have proposed to deTomamsi to work with him on this transformation (as I am also a researcher on BRM). I am still waiting for his answer but I wanted to let you know guys that I would be interested to take part in this project for Drools. I would be very glad to make things go quicker for drools.

    Marwane

    ReplyDelete