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-owl] Query: Subclasses or Sibling Disjoint classes?

william fitzgerald wfitzgerald at tssg.org
Mon Apr 2 03:30:10 PDT 2007


Hi Ronald,

yes you are correct, i would not be happy getting the mouth burnt off me :-)

Ok, so there seems to be a reason to create sibling classes as opposed 
to subclasses in the case of the Pizza ontology.

However, the question that still begs to be answered is why have we not 
defined the named pizza's as complete classes, given that we are happy 
with the membership constraints over them?

To counter what you have said about our creative pizzaman we could avoid 
getting the wrong pizza by stating i will have a regular American pizza 
or i'll have a AmericanMild pizza or AmericanHot pizza.

they are all kinds of American pizza but are also specalised in their 
own right.

So in OWL-DL you would have for example:
NamedPizza
                    <--- AmericanPizza (hasTopping only (hasTopping only 
(MozzarellaTopping or PeperoniSausageTopping or TomatoTopping))
                                                    <--- AmericanRegular 
(in fact this class is really redundant but just added it anyway)
                                                    <--- AmericanHot 
(hasTopping only ( HotGreenPepperTopping or JalapenoPepperTopping))
                                                    <--- AmericanMild 
(hasTopping only (HotGreenPepperTopping))

Notice for space reasons i have not included the Existential 
restrictions but you get the idea. i realise that the reasoner would 
throw and error due to the closure axioms. my point is just to highlight 
that in a tree like structure it also appears that having SUBCLASSES 
makes sense rather than DISJOINT SIBLINGS.

And why not make these classes COMPLETE! I think once we start applying 
closure axioms you are getting very specific in what you want.

In java this may be done like this:
class AmericaPizza{//properties}
class AmericaPizzaMild extends AmericanPizza{//inherit parent properties 
and overide methods if needed}
class AmericaPizzaHot extends AmericanPizza{}
class AmericaPizzaRegular extends AmericanPizza{}


However sticking with the disjoint siblings method in java you don't 
optimize your code reuse:
class AmericaPizza{}
class AmericaPizzaMild{}
class AmericaPizzaHot{}

I suppose what it boils down to is in my root original email,  I 
compared what we are discussing now with HotGreenPepperTopping and 
GreenPepperTopping whereby SUBCLASSING comes into play and not DISJOINT 
SIBLINGS.

Why is it one way for one concept and another for a different concept!!!

That is, why have we not defined HotGreenPepperTopping and 
GreenPepperTopping as DISJOINT SIBLINGS. Back to your "experimental 
pizzaman" what if i order GreenPepperToppings but he adds 
HotGreenPepperToppings? So why have we not "disjoint sibling" these classes?

Its puzzling isn't it, or at least it is too me.

regards,
Will.


Ronald Cornet wrote:
> Will,
>
> Thanks for raising these issues.
> I've been playing with the pizza ontology, and also ran into some issues, which I do have to write down however.
>
> I want to counter your "AmericanHot isa American" suggestion.
>
> Support you order an American pizza (thinking you get the mild one), but the creative pizzaman decides to give you an AmericanHot, he will, in your model, satisfy your request, although I'm quite sure you will not be satisfied by what you get...
>
> Am I right?
>
> Regards, Ronald
>
> ###############################################################
> Ronald Cornet, PhD                    email: R.Cornet at amc.uva.nl
> dept. of Medical Informatics          phone: +31 (0)20 566 5188
> Academic Medical Center, Room J1B-115 fax:   +31 (0)20 691 9840
> P.O.Box 22700                         www: http://kik.amc.uva.nl/home/rcornet/
> 1100 DE  Amsterdam
> The Netherlands                       'The truth is out there' 
>
>   
>> -----Original Message-----
>> From: protege-owl-bounces at mailman.stanford.edu 
>> [mailto:protege-owl-bounces at mailman.stanford.edu] On Behalf 
>> Of william fitzgerald
>> Sent: Monday, April 02, 2007 11:33
>> To: User support for the Protege-OWL editor
>> Subject: Re: [protege-owl] Query: Subclasses or Sibling 
>> Disjoint classes?
>>
>> Dear Timothy and OWL users,
>>
>> 1) I agree with your first point entirely and the whole point 
>> of using OWL-DL is to have poly-hierarchies sorted 
>> automatically via the reasoner.
>>
>> 2) You are spotting some issues with the NamedPizza layout 
>> also. I just fired up protege and made all these NamedPizza's 
>> complete classes. there is no major difference in the outcome 
>> ( alot of classes now defined under UnClosedPizza of course) 
>> and in fact the hierarchy looks more complete.
>>
>> 3) yep you are correct. I was only referring to the idea of 
>> having a AmericanHot defined as a subclass of American but i 
>> didn't bother thinking about the restrictions. Placing 
>> AmericanHot under American will cause an error due to the 
>> fact that the restrictions (hasTopping) on the now parent 
>> class American will kick in under the reasoner.
>>
>> So what we conclude?
>>
>> Question 1: it seems that all these NamedPizza's are in 
>> themselves closed for finalized (disjoint siblings and 
>> specific restrictions) to what they are made up of, so why 
>> not make them complete classes?
>>
>> It seems that an AmericanHot pizza is infact quite different 
>> in the ontology model to American pizza despite the fact they 
>> share a lot of the same principles! it seems natural and more 
>> likely in a programming environment to have a class American 
>> and a more specialised class called AmericanHot which 
>> inherits its parents qualities plus its own and possibly 
>> overrides some of the parent restrictions.
>>
>> Question 2: hence in OWL-DL, can a sublcass override parent 
>> classes restrictions in Protege etc.?
>>
>> it seems the answer is no, and hence why the Pizza developers 
>> make both American and AmericanHot disjoint sibling classes. 
>> However given question 2 is probably a NO, then why was 
>> Question 1 not applied?
>>
>> maybe alot of the design issues are down to OWL-DL 
>> limitations and a complete mapping to OO programing does not 
>> overlap in a precise way (code optimzation).
>>
>> hence in java you would have a 2 separate java classes 
>> American and AmericanHot driven by the Pizza Ontology rather 
>> than having 2 classes American and AmericanHot with 
>> AmericanHot as a subclass of American and having AmericanHot 
>> override properties of its parent class if required.
>>
>> that is:
>> class American{ //class desription}
>> class AmericanHot {//class description}
>>
>> rather than:
>> class American{ //class desription}
>> class AmericanHot extends American {//class description}
>>
>> I welcome any comments in relation to this or any other 
>> features that may come to mind?
>>
>> All I am trying to do is get into the mind set of correct 
>> modeling using DL and OWL-DL, and in a correct and formal 
>> way. I would like to be able to stand over any model I 
>> develop and have exact answers to why its modeled in a particular way.
>>
>> regards,
>> Will.
>>
>>
>>
>> Timothy Redmond wrote:
>>     
>>> I see three issues.  The first thing is that in OWL we 
>>>       
>> shouldn't need 
>>     
>>> to build all possible subclass relationships when we write the 
>>> ontology because the inference engine will calculate them 
>>>       
>> for us.  I 
>>     
>>> am not a modeling expert but this seems like this is a good 
>>>       
>> principle 
>>     
>>> for OWL modeling.  This doesn't help with primitive 
>>>       
>> concepts but for 
>>     
>>> defined concepts this may be useful.
>>>
>>> Second, I have a little trouble with the NamedPizza 
>>>       
>> hierarchy.  It is 
>>     
>>> interesting that all of these guys are primitive - none of them are 
>>> defined.  This means that there is something about a pizza 
>>>       
>> that makes 
>>     
>>> it an american pizza that is not defined in the ontology.  
>>>       
>> Thus it is 
>>     
>>> unclear whether american pizza's and american hot pizza's should be 
>>> disjoint because it is not clear to me what is being 
>>>       
>> captured in this 
>>     
>>> distinction.
>>>
>>> Finally, and you might view this as nitpicking, even if you 
>>>       
>> ignore the 
>>     
>>> disjointness axioms attached to the american pizza and the american 
>>> hot pizza, it is impossible for these two types of pizzas to
>>> intersect.   The american pizza has a restriction axiom that states
>>> that it can only have mozzarella, peperoni sausage and tomato 
>>> toppings.  But the american hot pizza has a restriction axiom that 
>>> states that it must have a JalapenoPepper topping.
>>>
>>> -Timothy
>>>
>>>
>>>
>>> On Mar 30, 2007, at 6:19 AM, william fitzgerald wrote:
>>>
>>>       
>>>> Dear OWL Gurus,
>>>>
>>>> In developing my own OWL-DL ontology similar in structure to the 
>>>> PIZZA OWL-DL ontology, I find myself faced with a question 
>>>>         
>> as to why 
>>     
>>>> certain classes have not been defined as subclasses.
>>>>
>>>> For example in the NamedPizza class we have 2 subclass siblings 
>>>> called American and AmericanHot.
>>>>
>>>> Clearly the AmericanHot is a more specialized class to that of the 
>>>> American. So why has it not been classed as a subset of 
>>>>         
>> AmericanPizza?
>>     
>>>> One argument is that a hot American pizza is not an American pizza 
>>>> (because one will burn the mouth off you and the other will not) 
>>>> hence the reason for not subclassing!
>>>>
>>>> However if we take another example we can see that under Vegetable 
>>>> toppings we have defined HotGreenPepperTopping as been a subset of 
>>>> GreenPepperTopping. In this case we do not create sibling 
>>>>         
>> classes but 
>>     
>>>> rather we subclass.
>>>>
>>>> So do you see my predicament!!!
>>>>
>>>> Is there a hint of a flaw in the ontology (remembering of 
>>>>         
>> course that 
>>     
>>>> the pizza ontology is only for demonstration purposes) or is there 
>>>> valid reasons for subclassing in one area and making disjoint 
>>>> siblings in another?
>>>>
>>>> I realize that the structure of the pizza ontology is very 
>>>>         
>> intuitive 
>>     
>>>> and very close to how we naturally visualize the make up 
>>>>         
>> of Pizza's 
>>     
>>>> but taking these principles to other domains can often be trickier.
>>>>
>>>> regards,
>>>> Will.
>>>>
>>>> --William M. Fitzgerald,
>>>> PhD Student,
>>>> Telecommunications Software & Systems Group, Waterford 
>>>>         
>> Institute of 
>>     
>>>> Technology, Cork Rd.
>>>> Waterford.
>>>> Office Ph: +353 51 302937
>>>> Mobile Ph: +353 87 9527083
>>>>
>>>> _______________________________________________
>>>> protege-owl mailing list
>>>> protege-owl at lists.stanford.edu
>>>> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>>>>
>>>> Instructions for unsubscribing:
>>>> http://protege.stanford.edu/doc/faq.html#01a.03
>>>>         
>> --
>> William M. Fitzgerald,
>> PhD Student,
>> Telecommunications Software & Systems Group, Waterford 
>> Institute of Technology, Cork Rd.
>> Waterford.
>> Office Ph: +353 51 302937
>> Mobile Ph: +353 87 9527083
>>
>> _______________________________________________
>> protege-owl mailing list
>> protege-owl at lists.stanford.edu
>> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>>
>> Instructions for unsubscribing: 
>> http://protege.stanford.edu/doc/faq.html#01a.03
>>
>>
>>     
>
>   

-- 
William M. Fitzgerald,
PhD Student,
Telecommunications Software & Systems Group,
Waterford Institute of Technology,
Cork Rd.
Waterford.
Office Ph: +353 51 302937
Mobile Ph: +353 87 9527083 




More information about the protege-owl mailing list