Organizing a Set of Rules

Silvie   Spreeuwenberg
Silvie Spreeuwenberg Founder / Director, LibRT Read Author Bio || Read All Articles by Silvie Spreeuwenberg

This column is the next in a series that provides the reader with best practices on using or choosing a rules engine.  The target audience for this series is typically the user of a rule engine, i.e., a programmer or someone with programming skills.  All coding examples should be read as pseudo-code and should be easily translated to a specific target syntax for a rule engine that supports backward and forward chaining in an object-oriented environment.

We will discuss recommendations on how to organize rules in rule sets.  In this description the following concepts are important:

  • Rule set:  a collection of rules (or rule sets) that are grouped
        The grouping can be done in various ways.

  • Infer block:  a construct that uses rules to solve a problem
        The solution algorithm may be goal driven (backward chaining) or data driven (forward chaining).

  • Inference Task:  a set of methods that are used to perform a task, using one or more infer blocks
        Besides the execution of the infer block it also takes care of the preparation and the processing of the results of the infer block.

  • Rule service:  the collection of inferences, rule sets and rules that make up a service

Infer blocks should be associated with a solution (or sub-solution) of your application.  But, although there may be a many-to-many relationship between rule sets and infer blocks, this does not mean that rule sets have to be task- or solution-oriented!

As a matter of fact, it is essential that there be a clear distinction between POSTING rules and EVALUATING rules.  This gives us the opportunity to organize rules in a task- or solution-independent way.

I know that, in most projects, the rules are derived in a task-oriented way, so it would be quite awkward to think of another way to group rules than in the way you are doing now in your functional design.  Sometimes you can ask your experts to come up with some kind of grouping mechanism.  You should always use the grouping mechanism that 'comes natural' with your own work.

My recommendation is to organize rules in rule sets (rule groups) in a way that they can be easily mapped to your functional documentation.  For example, if your documentation has paragraphs or sections with 'related' rules, you can create rule sets in the same way.

In general you can group rules according to how they are delivered (legislation, contracts, departments, etc.) or how the rules are used (applications, tasks, processes, departments, etc.).

By the way, rule sets may refer to other (sub) rule sets if you wish.  It gives you a little more organizational flexibility.

# # #

Standard citation for this article:


citations icon
Silvie Spreeuwenberg , "Organizing a Set of Rules" Business Rules Journal Vol. 9, No. 7, (Jul. 2008)
URL: http://www.brcommunity.com/a2008/b428.html

About our Contributor:


Silvie   Spreeuwenberg
Silvie Spreeuwenberg Founder / Director, LibRT

Silvie Spreeuwenberg has a background in artificial intelligence and is the co-founder and director of LibRT. With LibRT, she helps clients draft business rules in the most efficient and effective way possible. Her clients are characterized by a need for agility and excellence in executing their unique business strategy or policy. Silvie's experience has resulted in the development of tools and techniques to increase the quality of business rules. She writes, "We believe that one should focus on quality management of business rules to make full profit of the business rules approach." LibRT is located in the Netherlands; for more information visit www.silviespreeuwenberg.com & www.librt.com

Read All Articles by Silvie Spreeuwenberg

Online Interactive Training Series

In response to a great many requests, Business Rule Solutions now offers at-a-distance learning options. No travel, no backlogs, no hassles. Same great instructors, but with schedules, content and pricing designed to meet the special needs of busy professionals.