Hello. I have as theme for a project to implement a reasoning algorithm that perform operations over a knowledge base constituted of facts, rules and negative constraints. The main goal of the system is to apply the set of rules on the facts to perform the deduction of all implicit knowledge. How do I implement this in an OO language? I thought of the idea to represent the logical KR formalisms (facts, rules, constraints) as classes in my system, and he knowledge base is constituted of 3 collections of objects of these classes. Then I must create the necessary algorithm to process these collections in order to perform the desired inference process. Is this idea correct? I personally do not see other way to make these operations over a logical knowledge base, other than this what I thought of. Or is there a special framework in Java for working with rules that I can use for my system, in order not to implement my structure of classes and collections? But I personally doubt about that. The only framework I know is Jess, but it is for other purposes. Many thanks!