Lately we've been grappling with the issue of how to get a Semantic Inference Engine and a Business Rules Engine to play nice in an Enterprise Architecture. Some long dormant neuron fired and the Treaty of Tordesillas was invoked as a possible exemplar.
For those of you whose recollection of the Papal role in the age of exploration has faded, allow me to refresh your memory. The Portuguese were the first out of the blocks, in the Age of Discovery, sailing down the coast of Africa, and as a result, being granted by the Pope sovereignty over all the lands south of the Canary Islands (off the coast of Morocco, effectively giving them most of Africa, India, and Indonesia – the “East Indies”). Columbus, sailing under a Spanish flag, discovered islands in the new world (which he believed to part of the East Indies). On his return, the King of Spain petitioned the Pope (also a Spaniard) who granted Spain everything 300 miles West of the Cape Verde Islands (south and west of the Canaries, but still in the Eastern Atlantic). The Portuguese howled in protest, and in 1494 in the Spanish Town of Tordesillas, pounded out a compromise. The Treaty moved the line 800 miles further west. A few years later, figuring that the world was likely far larger than earlier estimates, continued this imaginary line through the poles and to the “anti-meridian” which effectively gave Spain an entire hemisphere, but assured Portugal's claim over the East Indies. No one had any idea at the time, but the line bisected the still undiscovered South America, eventually giving Portugal domain over Brazil, and Spain the remainder. For the most part Spain and Portugal honored this Treaty for the rest of their explorations in the new world, and people in Brazil speak Portuguese today due to the placement of a line through a continent that the line drawers had no idea existed.
So what does this have to do with Semantics and Business Rules? Glad you asked. If you've looked at a Business Rules implementation you will notice that majority of the rules being written are either rules that define new terms or that create simple inference between terms. At the same time, if you look at Semantic implementations you'll see a great deal of effort trying to describe behavior but exporting it to scripting or other programming environments to be implemented.
Rather than embark on a series of unnecessary internecine battles over which tool to use for what, we recently postulated our own Treaty of Tordesillas: all term definition and inference of class membership would be done in a Semantic Inference environment, and all assertions about relationships, all calculations and all initiation of side effects would be done in the Rule Engine environment.
As near as we can tell, we've just drawn an imaginary line in the middle of the ocean. However it seems to be a reasonable place to start. I was a speaker at the recent Business Rules Forum, and had a chance to try this out with Business Rule vendors and practitioners. The general response I got, I took to be favorable. Most questioned the need to use a separate tool for inference as the Business Rules could do that. But on reflection could see where it solves two of the Business Rules Communities problems: 1) rule implementations are getting large and unwieldy (and removing over half the rules could certainly help here) and 2) the terms and distinctions created in the Rule environment are typically not available as resources to the rest of the enterprise.
We haven't appealed to higher authority yet about this, but this is our starting point now for Enterprise Architectures: terms and inference on the Semantic side of the demarcation, calculation, property assertions and side effects on the Business Rule side. Who knows, maybe future generations will speak other languages as a result.
I'd love to hear any feedback from anyone who has been to this new world.

woshn lytw kqti ubwvy iadrvcpu lgtqy xmhv
Posted by: rmtpkqjlx rcwl | April 15, 2009 at 01:10 AM
Hi,
The idea that rules are for business computations only is naive, but predominant in the industry.
Rules could connect processes, and depict the underlying infrastructure of what makes a business application.
Virtually every act of computing comes under the domain of rules, for we human beings have built computing strictly on rigid reason.
For a vastly difference experience on this subject from what you have seen before, kindly take a look at my invention, which is now in the public domain, at :
http://www.patentdebate.com/PATAPP/20050027507
Regards,
Pilla G Patrudu.
Posted by: Pilla G Patrudu | November 30, 2006 at 10:03 PM
I like this definition of the separation but would raise an issue about using semantic tech to define things like “good customer”. Behavioural / dynamic business rules are not usually about “if customer has this characteristic we define a new property called GoldCustomer” but can be very effective when defining subclass membership rules ie how I define someone to be a good customer could change dynamically and be based on real time data.
The other point I might make is that it is not easy to write behavioral rules directly against RDF-like object models so you would want to have a tool do the business object model to RDF mapping.
Posted by: James Taylor | June 02, 2006 at 02:56 PM
Adrian,
Good analogy. Absolutely, 90% is below the surface, but first things first: we need to spot the icebergs before we slam into them.
Look forward to your presentation
Posted by: Dave mcComb | January 23, 2006 at 10:38 AM
Corrections to links in previous posting:
http://www.semantic-conference.com/program/sessions/S2.html
http://www.reengineeringllc.com/
Posted by: Adrian Walker | January 19, 2006 at 10:00 AM
I think Dave is right to bring up this issue. It's kind of an iceberg though -- 90% of it is still below the water line.
As an exploratory dive to look at that 90%, I'd say that we are only looking so far at one dimension of the semantics that is really needed.
To keep this comment short, I'll point to
www.semantic-conference.com/program/sessions/S2.html
and to
www.reengineeringllc.com/cgi-bin/IBL
for a live system with additional semantic dimensions.
Hope this makes sense. Thanks in advance for feedback.
Posted by: Adrian Walker | January 19, 2006 at 09:55 AM
Sorry, I was using some terminology as we've been using it in a class we're developing. "Assertions about relationships" was the short hand for new relationships that have to be asserted (ie: can't be inferred). The uncle relationship is one of these, I could have all the information I need to determine whether person X is person Y's uncle, but I still need to separately assert it, with a rule engine, or by a human.
Posted by: Dave McComb | January 08, 2006 at 02:40 PM
I think Dave is on the trail of something important here - if I can understand exactly what he is saying by the statement.
"all term definition and inference of class membership would be done in a Semantic Inference environment, and all assertions about relationships, all calculations and all initiation of side effects would be done in the Rule Engine environment."
I think he is saying each environment should do what it does best and focus on creating a bridge for interaction between the two, rather than having each environment attempt an inadequate implementation of "the other side of the coin". I think of the information definition and process rules as two sides of the same coin.
I know that previous attempts to use rules engines have been stymied by the total LACK of ability to establish and maintain a connection to existing metadata definitions. Even in cases where terms are defined and mediation connections established to data sources, the rules engines were not able to reuse the terms. And predictably, attempts to define and maintain totally separate terms definitions in the rules engines proved way too hard. I am not sure about the "assertions about relationships" however, as this appears an intrinsic part of terms definition so I'm interested to hear the next entry to learn more.
Posted by: marguerite ardito | January 01, 2006 at 05:09 AM