owlrete

OWL2 RL via RETE algorithm


I am currently trying to implement OWL2 RL via Rete algorithm. I have run into the following issue: How to implement lists needed for example in this rule: eq-diff2 (W3C reccomendation)?

Thanks.


Solution

  • I have developed this solution.

    1. Before inference construct the lists in memory. It is simple, because the elements can be easily identified.
    2. Construct RETE nodes for first m rules, which don't need "loop" construct
    3. Put an action in the last node:

      1. Add new Rete (alpha+beta) nodes for the corresponding list (you will always know which, because it's one of the "static" rules)
      2. Put corresponding WMEs into newly created alpha memories
      3. Activate Beta nodes
    4. It is probably possible to remove the whole "dynamic" branch after the final action is performed.