Christian makes the case for an interchange format: allowing to deploy the same rules in multiple places. In the “Universal Decision Engine” paradigm, that can be achieved with a decision service available to other systems. In this scenario, the main point is to be freed from vendor-locking.
In the Mortgage industry, which Christian used to illustrate his point, RIF is used to exchange information between the mortgage company and the broker. Being different entities, there is obviously no guarantee that the same technology runs on each side.
In the Steel example, the need to exchange business rules across plants was not as sound in my mind. What are the odds that they have different system, different technologies? Christian claims that they might have different systems due to acquisition. I am not as convinced that the same business rules could apply transparently… If the systems are so different, what are the odds that the data model is the same… It just sounds like a stretch.
That being said, the Mortgage use case alone might be sufficient.
For some reason, Christian got into an argument as to why RIF was better than RuleML. The argument boils down to the fact it is a Standard Standard (yes twice). There are non-standard standard-wanna-bes. This has been an area of confusion in the industry so I totally support his perspective here!
What is RIF?
RIF is a Standard XML representation for serializing business rules.
The standard is supposed to easy, verbose but easy. I must admit that, although I participated in a session or two on this representation, I have not been involved lately. Back then the representation looked like a standardization of Prolog more than business rules — the concept of RULE was not even in the specification! I assume this has been fixed since then. What worries me is that simple rule representation from simple rules engines (read: limited expressiveness) will definitely be covered by the representation but not the most complete syntax from the leading world-class vendors.
Take the example from David’s talk yesterday. I suppose that David did not use a collection expression because it was not available in his environment. Collections happen to be typically used in all real-life industry projects. Not supporting that construct in the standard would defeat the purpose of having an interchange format.
Do not misunderstand me though: I do not know if collections are covered or not. Just illustrating a point. I am sure that Christian will answer that we can either contribute to make all of those part of the standard or to create our own extension. What is the value of the standard if we all have proprietary extensions though?
I unfortunately suffered from attention-deficit-disorder when Christian started drilling into RIF-Core, RIF-PRD, RIF-BLD… More acronyms? What the Hell is TPTP syntax? Mental note for 2011: no Standard talk on the last of the show…
In the end, Christian came with 5 reasons instead of 3 (knowingly). I think the only reason that is really compelling is actually his Mortgage use case. We do not need much more than that. Well, I kind of liked the “you get bored with Drools and want to move on” argument — cute.
Christian committed to having a concrete implementation at IBM but did not want to provide a date or timeframe.
In the past I also commented on the need for a Rules Standard in this post.
Learn more about Decision Management and Sparkling Logic’s SMARTS™ Data-Powered Decision Manager