Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-discussion] SWRL Disjonction

narjess touzani narjess_tz at
Thu Apr 2 22:59:00 PDT 2009

I use SWRL rules in oder to infer knwoledge. I have to model pedagogical knowledge, then infer them to provide assistance. 
So, if i had understand right, there is no need to write SWRL rules? and only from resonnig ontology i can extract whatever information I want?
Anotehr question, I want to know when must I use class or instance? how can I decide to use the one or the other? Because in my example, I used "case_study" and "analysis" as instances of the class "Activity" , and "Production" instance of the class "activity_type". In your mail you propose me a different hierarchy:  
where all of them are classes. What is the difference?
I thought that in an ontology, i must specify class instances. furthermore, by specifying instances I will be able to write SWRL rules, that is?
Best regards

--- En date de : Jeu 2.4.09, Thomas Russ <tar at ISI.EDU> a écrit :

De: Thomas Russ <tar at ISI.EDU>
Objet: Re: [protege-discussion] SWRL Disjonction
À: "User support for Core Protege and the Protege-Frames editor" <protege-discussion at>
Date: Jeudi 2 Avril 2009, 18h21

On Apr 2, 2009, at 1:46 AM, narjess touzani wrote:

> Dear Mr.Thomas,
> Thank you for your response.
> I am modelling pedagogical knowledge. And I want to express and  
> infer rules on these knowledge. So I want to express rules like :
> if activity_type is "production" then activity can be a "case study"  
> one OR an "Analysis" one. If we write this rule in SWRL:
> activity_type(Production) --> Activity(case_Study) OR  
> Activity(analysis)
>  So, in this case I need the disjonction operator.

OK.  So how does it help you in further reasoning?

There isn't anything you can conclude based on the results of this  
rule.  So what do you want this to be able to tell you?  If you asked  
if the activity is a "case study", any logical reasoner would have to  
return unknown (or even worse false if you used a closed world  
reasoning system).

Now, if what you are trying to do is narrow things down a bit, then  
you either need to make assertions about the activity being in the  
complement of those types which it is now known NOT to be.   
Alternately, you would need to introduce another class which is the  
union of the case_study and analysis classes, and write your rule to  
assert membership in that class:

    Analytical_Activity <=>  unionOf case_study analysis

By introducing this disjunctive parent of case_study and analysis, you  
can introduce a controlled measure of disjunction, but in a positive  
way that allows you to use the information in further reasoning.

It also seems a bit odd to be using a relation for noting type  
information.  In Frames or OWL, it would be more natural to model  
types as classes and have the built-in class and type reasoning  
mechanisms available to you.  In fact, from your example rule, I'm  
wondering why you don't just build a class hierarchy like:


and not even bother with SWRL rules at all.

protege-discussion mailing list
protege-discussion at

Instructions for unsubscribing: 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the protege-discussion mailing list