Traditional programming systems are sequential and follow a fixed execution path: step 1… step 2… etc. In Rules-Based Inference Systems the knowledge within the system determines the next rule to execute. This allows the user to express their knowledge in a pure form and the applicable rule will be invoked when necessary to satisfy the objective. This is an ideal way to program a knowledge system.

Simulating Human Thought Process

The key to simulating human thought is rule chaining, utilizing the knowledge within the ontology. Chaining rules creates inference in two ways: The system either has an objective and works backwards to justify the objective with facts (backward chaining), or the system starts with facts and works forward to achieve a goal (forward chaining). For example, it is too difficult to start a game of chess with all possible checkmate (goal) positions and work backwards to the original pre-set board of pieces. Therefore, the system must perform forward inference, where it begins with the current chess board position (facts), and works forward by applying the rules of piece movement in a goal-directed way to attempt to checkmate the opponent. In backward chaining the user starts with an objective—for example, “I want to eat cake.” The system then reasons backward to figure out how to satisfy that objective. Oh… so if you want to eat a cake, you must have a cake. To have a cake, you must either make it or buy it. To buy the cake, you must have money, a store to purchase the cake, and a transportation method to get to the store. In this case, the system attempts to satisfy the objective with other rules and data to determine that you indeed have money, a car, and a store that sells cake one mile away from your location, so we can now conclude that you can now buy and eat cake.

Managing Conflicts

The Enterra Rules-Based Inference System has many more advanced capabilities, including the ability to deal with conflicting information. For example, a general rule like “birds fly” and other conflicting rules such as “chickens don’t fly” is not a problem for Enterra’s system. Other key features include the ability to explain why the Inference Engine deduced its conclusions in common English (natural language).

The lack of Common Sense Rules proved to be a major limitation for early rules-based inference systems (also referred to as Expert Systems). All the common assumptions humans take for granted such as “when I move my body, all my limbs move with me” is obvious to a human, but not obvious to a computer. Therefore, Enterra utilizes the world’s largest common sense knowledge base to allow our system to reason more like a human being.