Tuesday, September 19, 2006

Thinking about inference rules

Inference rules are interesting, because they are rules about relations. So a rule will have CSecs. These CSecs will all be of the same type, as they will be referencing only relation DUs. But there may be more than one CSec on a rule. Consider the implies rule, for all x: Father(x) => Parent(x). In this case there are then two variations of CSec, RuleSubject and RuleObject. So I'm thinking that there should be multiple RuleCSec DUs for a single class of RuleCSec Rolon.

Now consider the all implies rule, for all x: A(x) & B(x) => C(x). This rule would have two RuleSubject CSecs and one RuleObject CSec.

Each rule will have a RuleRolon and a RuleDU. Rules can be located anywhere, so long as they are in the infoset of the inference engine.

I've also been thinking that the output of the inference engine would be a table.

Some of the commands we'll need:

crRule - creates a rule from a ruleDU;
rules - lists the rules which operate on a given relation;
crInferenceTable - creates an inference engine table; and
infer - Update the inference table.

Of course, once we have an inference table, we'll want to have several query commands which operate against it.

0 Comments:

Post a Comment

<< Home