How does Drools engine make inference of SWRL rules?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

How does Drools engine make inference of SWRL rules?

cemre
As I understand from my readings SWRL rules are not dependent to each other. They are independent rules and they can only be applied to named individuals not to inferred individuals.

I created an ontology with SWRL rules dependent to each other. In other words, I use the consequence of a rule in an antecedent of another rule and it did inference correctly. So I confused about this point, I want to understand background implementation of OWL2RL based  reasoner and Drools engine implemetation of Protege SWRLTab.


 Drools apply forward or backward chaning to make inference?   In web site of Drools engine it says it can apply both forward and backward chaining. May be you can suggest a paper for further reading to understand reasoning algorithm of Drools engine in SWRLTab. In Protege website about DroolsEngine  it only says how can we use the SWRLTab and Drools engine no further knowledge about the algorithm (May be I could not find).

https://github.com/protegeproject/swrlapi-drools-engine/wiki/SWRLDroolsTab

https://github.com/protegeproject/swrlapi/wiki/OWL2RLTab

Rules are given below,

datatoProcessTC(?x, ?p), sfIntersects(?x, ?a), processToResultsTC(?p, ?r), Building(?x), Road(?a) -> hasDataQualityResult(?x, ?r)

 hasDataQualityResult(?x, ?r), featureInfo(?x, ?k) -> featureInfoInResult(?r, ?k)
Reply | Threaded
Open this post in threaded view
|

Re: How does Drools engine make inference of SWRL rules?

Martin O'Connor-2


As I understand from my readings SWRL rules are not dependent to each other.
They are independent rules and they can only be applied to named individuals
not to inferred individuals.

Rules themselves are independent but the inferences they make can be linked.

For example, one could easily imagine the following two rules interacting: 

Person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, 17) -> Adult(?p)
Adult(?a) ^ Male(?a) -> AdultMale(?a)

So I confused about this point, I want to understand background implementation of OWL2RL based  reasoner and Drools
engine implemetation of Protege SWRLTab. Drools apply forward or backward chaning to make inference?   In web site
of Drools engine it says it can apply both forward and backward chaining.
May be you can suggest a paper for further reading to understand reasoning
algorithm of Drools engine in SWRLTab. In Protege website about DroolsEngine
it only says how can we use the SWRLTab and Drools engine no further
knowledge about the algorithm (May be I could not find).

In the SWRLAPI, Drools is used to implement an OWL 2 RL-based reasoner, which perform inference with SWRL rules and OWL axioms. The implementation uses forward chaining, but that is a detail. The semantics of reasoning are governed by the OWL 2 RL specification. This system is described here:


Martin

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev