There exist several rule management systems that can infer facts based on the current facts and rules in their knowledge base. The objective of this project is to extend this idea with methods that enforce consistency and completeness. To make it accessible to domain experts, I provide an English-like domain specific language that can be used to describe rules.
A natural-language-like rule definition language with well-defined syntax and semantics, with language constructs that make automatic loophole and contradiction detection possible, is specified.
The criteria for completeness and consistency is defined, and concrete implementations for the algorithms for loophole detection and contradiction detection are provided. The knowledge base used for storing the knowledge is guaranteed to be in a consistent state. If any loophole is found, the system’s user is warned.
A deduction engine is implemented.
An interactive interface for adding facts to the knowledge base is provided. The newly deducted knowledge is provided to the user.
An algorithm for identifying fact-sets that could make the system inconsistent is also implemented. This points out contradictions that can be infused in particular circumstances.
I illustrate the usage of the whole system with a real world example.