Haley's in a Nutshell

Posted by Vimarsh Ganju
Comments (3)
June 20th, 2008

CRM applications are based on various complex business processes that need to be coded in the application.They can change with time and this can be very often.Implementing the changes can have adverse effects on those parts that weren’t changed!!! Implementing Decision tress can be a nightmare through actual programming…with hundreds of If else conditions which is very difficult to maintain and foolish to code in the first place.

Haley Systems, Inc
has been the recognized global leader in rule-based programming. Haley’s Authority is a Rule authoring tool which allows you to write your Business rules in simple English, maintains them, executes them and allows testing them all in no time. Assume it as a programming language which uses simple English to code. The sentence “Set student’s grade to Distinction if he scored at least 70 in all subjects” can One needs to get back to school grammar to construct English sentences.

About Haley Authority: Mind your language (Grammar)
Get familiar with Nouns, Verbs, Adjectives, Adverbs, Prepositions, Conjunctions, Determiners, Phrases, Sentences, Subjects, Predicates and Direct & Indirect Objects.Haley adds few more terms such as Concepts, Entities, Relations, Phrasings, Statements, Conditions, Modules, Knowledge Base. With just an initial brush up on these topics you can get going with the wonderful tool.

Integrating with Siebel
Find below the Haley <- -> Siebel Integration Architecture.

Rule authoring tool

Siebel Object Importer
The concepts and relations needed to define rules on Siebel objects are created by importing the selected subset of the Siebel object model into Haley’s.

Siebel Deployment plug-in
Rule modules created in Haley Authority are compiled and stored into runtime tables
Rules Runtime Administration screen
It is used to activate, deactivate, and configure deployed rule modules.

Haley Authority knowledge base
It stores Haley Authority’s metadata, including Object Importer-created Siebel object definitions and rules

Haley inference engine
It executes rules.
Proxy Service

  • It is a proxy to the rules engine functionality at runtime.
  • It manages Haley’s runtime objects
  • It manages deployed rule modules
  • Interfaces with Siebel object manager for data
  • Interfaces with Haley’s inference engine for rule execution
  • Manages the rule execution results from Haley’s inference engine


  • All the business logic can be isolated in a separate database (Knowledge base).
  • It can reduce scripting to a great extent.
  • Flexible to change the rules, policies on the go
  • Allows testing of the Rules created in Haley before actual deployment.
  • Easy to understand/write/maintain English Statements than blocks and blocks of code.


  • Need to learn the GRAMMER. Haley Authority cannot write a poem or a play.
  • It can not replace all of your code but most of it.Remember everything is built for a purpose.
  • There’s no Check in Check out here.Maintaining a development environment where n developers are using Haley’s for constructing rules becomes difficult as only one Knowledge base per environment is supported.

Reader’s Take:

Consider the following scenario wherein an Insurance claim is to be ACCEPTED, PARTIALLY ACCEPTED, REJECTED based on the below decision tree.

Rule authoring tool
Rule authoring tool

I leave the answer to the readers to select between

  • A. Coding a mesh of 1000’s of If Else Statements
  • B. Using HBR

Comments welcome !

— Inputs from Pinank K.

Comments (3)

vishnu - April 28th, 2009

hai thank you for haley introduction, can yu provide any documents regarding haley knowledge, thank you

Quelg - September 7th, 2008

1000s of if/else statements? That tree looks complex, but is actually rather trivially implemented logically. In fact, if anything this is the sort of thing that could get unwieldy in English language rules because of the natural inclination to read off all the logical choices without consideration for the redundancy a technical programmer would find. function process_claim (smoker,drinker,heartpatient,diabetic,weight,age,gender,claim) if smoker OR drinker OR heartpatient OR age l.t. 18 then return(REJECT) if diabetic then ___ if (male AND weight g.e 60 AND claim g.e 30000 AND age l.e. 50) OR (female AND weight l.t 70 AND claim g.e. 20000 AND age l.e. 40) then return (PARTIAL) ___return (REJECT) else ___ if male AND weight g.e. 60 then return (PARTIAL) return (ACCEPT) end function

Narayan Patro - July 21st, 2008

Hi, Thanks for the valuable info on Haley. I too have a blog on Siebel (http://siebeltips.wordpress.com). I am currently working on Haley and trying to setup the knowledge center for the same. If you have any docs or info on how to set knowledge center for Haley, please advise me on the same. Regards, Narayan

Comments are closed.