SWRL rule activation

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

SWRL rule activation

Doug Eddy

Has anybody been able to execute SWRL rules to automatically assert instances based on existing property and instance relationships? 

 

For example, I was able to assign and enable a SWRL rule as:

isPowered(?x, Powered) isDifferentiatedFromCompetition(?x, Differentiated)

isLiftingFromUnderneath(?x, LiltsFromUnderneath)

isStableWhenExtended(?x, NoMoreThan20InchesOfSwayWhenFullyExtended)

doesNotDependUponComponentFatigueLife(?x, NotReliantOnComponentFatigueLife) →

isWorthyOfSWRLConsideration(?x, Worthy_ofSWRLNextStep)

 

Everything outside the parenthesis is an object property and everything within the parenthesis is an instance within the range of that property.  So if I understand correctly, every instance x that has all of the antecedent properties populated with the corresponding correct instances should automatically assert the population of the consequent property isWorthyOfSWRLConsideration with the instance Worthy_ofSWRLNextStep. 

 

But that doesn’t happen after I run the Pellet direct reasoner on v3.4.4.  Am I doing something wrong?  Do I have to somehow define every potential variable instance x to be considered?

 

 


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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: SWRL rule activation

Alex Macfie
On 13/03/11 14:40, Doug Eddy wrote:

Has anybody been able to execute SWRL rules to automatically assert instances based on existing property and instance relationships? 

No. That is not how SWRL works.
But that doesn’t happen after I run the Pellet direct reasoner on v3.4.4.  Am I doing something wrong?  Do I have to somehow define every potential variable instance x to be considered?
Yes, you do.

Having previously used Prolog, I also assumed that SWRL would behave as you descibe above. But SWRL does not create new instances. It can only reason upon existing instances. So you have to define every potential relationship that may be inferred by your SWRL rules. When I realized this, I found there were hundreds or even thousands of them. So I created the appropriate instances in OWL using a Perl script!

Alex
-- 
Alex Macfie, [hidden email]
http://www.cgce.net/

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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reply | Threaded
Open this post in threaded view
|

Re: SWRL rule activation

Thomas Russ
In reply to this post by Doug Eddy

On Mar 13, 2011, at 7:40 AM, Doug Eddy wrote:

> Has anybody been able to execute SWRL rules to automatically assert instances based on existing property and instance relationships?
>  
> For example, I was able to assign and enable a SWRL rule as:
> isPowered(?x, Powered) ∧ isDifferentiatedFromCompetition(?x, Differentiated) ∧
> isLiftingFromUnderneath(?x, LiltsFromUnderneath) ∧
> isStableWhenExtended(?x, NoMoreThan20InchesOfSwayWhenFullyExtended) ∧
> doesNotDependUponComponentFatigueLife(?x, NotReliantOnComponentFatigueLife) →
> isWorthyOfSWRLConsideration(?x, Worthy_ofSWRLNextStep)

As an aside, I would note that you could, in fact, create an OWL definition that would accomplish this particular example, using the hasValue restriction.  You would do that by making the antecedent items be necessary and sufficient conditions and making the consequent be only a necessary condition.


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

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03