◷ Reading Time: 4 minutes
In this article, we going to implement Insurance Underwriting Business Rules in three different ways using Decision Tables, Natural Language Documents, Business Glossaries and Fact Concept.
Sample Business Logic as follows:

In order to define structure, relationships, and constraints related to the implementation, we have created a Fact Concept document as follows. This Fact Concept Document will be used commonly across the different implementations.

We are going to implement the above-mentioned set of logic in three different ways:
- Decision Table with Multiple Criteria
- Decision Table with Vertical Expression Build (Builder Pattern in Decision Table)
- Natural Language Implementation
Decision Table with Multiple Criteria
In this approach, we have created a Decision Table(TraditionalDecisionTable.xml) with multiple criteria (One condition for each business rule).

There is a Business Glossary which is referred to this Decision Table, which has business terms for each condition of the Decision Table.

Decision Table with Vertical Expression Build (Builder Pattern in Decision Table)
In this approach, we have created a Decision Table(DetermineDeclineReason.xml) to build the expressions as rows. These expressions are created during the execution time.

There is a Business Glossary referred to this Decision Table, which has business terms for Decline Reason, Operator and Web Page. Each business term has multiple options as follows.

Based on the value provided in the Value column in the Decision table, expressions of the business rules will be built using the expression:
$cell(UW decline reason) $cell(Operator) $value
- UW decline reason: The input parameter
- Operator: The Operator of the expression
- Value: The value of the cell
Natural Language Implementation
In this approach, we have created a Natural Language Document(NaturalLanguage.xml) with set of business rules and logic.

This Natural language Document is referred to the same Business Glossary which has business terms for each condition.

Output
Output of these each implementations will be a notification which displays under notification window.
