In-Depth

Fannie Mae's Karma helps to get to rules

The Federal National Mortgage Association (Fannie Mae), the nation's largest source of conventional home mortgages, turned to business rules to build a critical application for selling and servicing mortgages. The Knowledge Acquisition and Rule Management Assistant (Karma) application allows policy changes to be implemented quickly and provides direct ownership and management of those policies to business users. The association's set of related applications consists of four components: a business rule specification language, Karma, a Business Rule Server and a data translator.

Karma developers created a business rule specification language -- a grammar-based representation for specifying business rules. In this language, business rules are of the form IF ... AND ... THEN ... , and consist of clauses. Each rule has a right- and left-hand component. The left side represents a set of conditions and the right represents a single constraint that must be met when all of the conditions on the left-hand side are true ("If Lien Type is First Mortgage and Mortgage insurer type is not Federal Government then Current Loan-to-Value Ratio must be less than or equal to x%"). Consequently, each statement declaratively states a business rule.

Karma includes a GUI Rule Editor, underlying databases that support the rules, and a code generation component. Business users interact with the GUI Rule Editor to define new rules and modify existing rules or rule properties. Karma performs consistency checking to ensure that rules are consistent with existing rules. Executable code is generated, readable by the ART*Enterprise expert system engine from Brightware Inc., Novato, Calif., from the rule representation in the business rule database. Then the rules become available, in executable form, to the Business Rule Server component of the application.

The Business Rule Server component, a client/server application, makes the business rules available to other applications. The other applications, acting as clients, request compliance checking services of the Business Rule Server. Any application using a Fannie Mae business policy can send loan data to the Server for validation and if applicable, receive violation notification. The Business Rule Server uses control structures written in ART*Enterprise and C, the executable business rules, a remote procedure call (RPC) and the data translator facility. Loan data is passed to the Business Rule Server, translated and mapped to the knowledge base. Then the business rules fire, and any violations are passed back to the application.

The data translator maps application data models to the data models on which the business rules are based, permitting the Business Rule Server to be independent of any of its data sources or requesters. It resides between the server layer of the Business Rule Server and clients. It contains data translation rules to map the source data model to the target data model.

Karma and the Business Rule Server have streamlined the loan delivery process so that it may soon become a "lights-out" process. "Business people use it to define the rules," said Thorpe. Business rules can be entered, checked for consistency and redundancy and then modified in minutes. Implementing the business rule in the production Business Rules Server, however, still takes a few days as they must go through User Acceptance testing and the standard production migration processes.

-- Ellen Gottesdiener and Margaret Thorpe