On 03/07/12 14:51, [email protected] wrote:
When I want to make sure that a certain rules is executed before another
one I am storing them in seperate rules files, instatiate a RuleReasoner
per file and pass the inferred model on to next reasoner.

Therefore I'd like to know if it is possible to define rules that, only
if true, invoke other rules or to define nested rules (in forward
chaining mode) like this:

[rule: (?x :hasY ?y) (?y :hasZ ?z)

           ->
           (?x :hasZ ?z)

         [rule2:
                 (?x :hasP ?p) (?p :hasA ?a)
                 ->
                 (?x :hasA ?a)
         ]
]


No there's no built-in support for general rule stratification, layering or conditional chaining.

If you only have two layers you can make one layer forward rules and the other layer backward.

Beyond that you have to cascade infmodels together as you are doing.

Dave

[Sorry for slow reply, been largely off-grid for a week.]

Reply via email to