A Configurable Rete-OO Engine for Reasoning with Different Types of Imperfect Information