Can someone explain the relation of Rules Tab and the SWRLTAB?

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

Can someone explain the relation of Rules Tab and the SWRLTAB?

刘栋在线
Hi,
I now can see that if I define rules in SWRLTAB, the Rules Tab will duplicate the rules to its content. But the rules of swrlb namespace can not be parsed in Rules Tab. What's more, if I define rules about object property, the inferred result will be update as soon as I synchronize the reasoned. But if I define a rule like
dataprop1(?p, ?dataprop) ^ swrlb:add(?x, ?dataprop, 10) -> dataprop2(?p, ?x)
it seems I have to press the buttons OWL+SWRL->Drools, Run Drools, Drools->OWL consequently so that I can see the inferred data property "dataprop2" shown in the result. What puzzled me is that the following rule can be inferred instantly without the drools step.
person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, "17"^^xsd:int) -> Adult(?p)
 
Thanks.
Dong Liu
Wuhan University

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
Reply | Threaded
Open this post in threaded view
|

Re: Can someone explain the relation of Rules Tab and the SWRLTAB?

Lorenz Buehmann
The Rules Tab uses the OWL reasoner, e.g. Pellet. This has to be forced by "synchronize reasoner" menu item click

The SWRL Tab uses the Drools engine and applies forward chaining, this has to be forced by a button click.

Hi,
I now can see that if I define rules in SWRLTAB, the Rules Tab will duplicate the rules to its content. But the rules of swrlb namespace can not be parsed in Rules Tab. What's more, if I define rules about object property, the inferred result will be update as soon as I synchronize the reasoned. But if I define a rule like
dataprop1(?p, ?dataprop) ^ swrlb:add(?x, ?dataprop, 10) -> dataprop2(?p, ?x)
it seems I have to press the buttons OWL+SWRL->Drools, Run Drools, Drools->OWL consequently so that I can see the inferred data property "dataprop2" shown in the result. What puzzled me is that the following rule can be inferred instantly without the drools step.
person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, "17"^^xsd:int) -> Adult(?p)
 
Thanks.
Dong Liu
Wuhan University


_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
Reply | Threaded
Open this post in threaded view
|

Re: Can someone explain the relation of Rules Tab and the SWRLTAB?

Martin O'Connor-2

The SWRL Tab uses the Drools engine and applies forward chaining, this has to be forced by a button click.

To elaborate slightly: the SWRLTab uses an OWL 2 RL-based reasoner [1], which is implemented using Drools in Protege 5 (though also had a Jess implementation in earlier versions of Protege). The forward chaining characteristic is an implementation detail only (as is Drools). Reasoning is governed by the OWL 2 RL profile.

Unfortunately, this reasoner is not full integrated into Protege’s reasoning framework so cannot be used standalone in the way that other third party reasoners can.

Martin



Hi,
I now can see that if I define rules in SWRLTAB, the Rules Tab will duplicate the rules to its content. But the rules of swrlb namespace can not be parsed in Rules Tab. What's more, if I define rules about object property, the inferred result will be update as soon as I synchronize the reasoned. But if I define a rule like
dataprop1(?p, ?dataprop) ^ swrlb:add(?x, ?dataprop, 10) -> dataprop2(?p, ?x)
it seems I have to press the buttons OWL+SWRL->Drools, Run Drools, Drools->OWL consequently so that I can see the inferred data property "dataprop2" shown in the result. What puzzled me is that the following rule can be inferred instantly without the drools step.
person(?p) ^ hasAge(?p, ?age) ^ swrlb:greaterThan(?age, "17"^^xsd:int) -> Adult(?p)
 
Thanks.
Dong Liu
Wuhan University


_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center
_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev


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