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

Matthew Horridge matthew.horridge at cs.man.ac.uk
Tue Apr 3 08:50:35 PDT 2007


Hi Will,

> I wonder if we have any Pizza developers ie. the Manchester University
> gurus out there that cans shed some light on our queries.
>

It should be remembered that the Pizza ontology is a slightly adapted  
version of the ontology that results from completing the current  
version of the pizza ontology tutorial.  In some sense the ontology  
is therefore unfinished.  With regards to your comments, I believe it  
does make sense to make the various named pizza classes necessary and  
sufficient (Probably put these under pizza instead of named pizza).   
AmericanHot is a specific type of pizza found on a particular pizza  
menu (there aren't AmericanMild pizzas) - on this menu American and  
AmericanHot pizzas are distinct types of pizza.  If you look at the  
pizza ontology you will see that the definition of AmericanHot is  
incompatible with the definition of American.  It isn't therefore the  
case that all AmericanHot pizzas are American pizzas, hence no  
subclass axiom here.  With regards to the pizza toppings,  there  
could be other types of green pepper toppings (or many other  
toppings), which is why these classes have not been closed.

Cheers,

Matthew



> I am not sure if I fully understand item 2 of your request, but when I
> build my ontology in Protege, weather a class is primitive or  
> complete I
> use the closure axiom (\forall) across the properties that I want to
> restrict to certain classes. In the Classes GUI on the left are a
> hierarchy of classes and on the right you have property restrictions.
> right click on a \exists property for example \exists hasTopping  
> XYX and
> then scroll to option for axiom closure.
>
> Has this answered your question?
>
> Will.
>
>
> Ronald Cornet wrote:
>> William, and others (please see the question in item 2 below),
>>
>> I agree that it would make much sense to define the named pizzas  
>> as complete classes.
>>
>> There are many reasons why it makes sense.
>>
>> This also brings me to a question I have for a while....
>>
>> If I instantiate a pizza, and put some ingredients on it, I would  
>> like it to be detected as a NamedPizza, if it is.
>> So if I make a pizza with mozarella and tomatoes, I would like it  
>> to be recognized as a Margherita (I'm doing this by head, maybe  
>> the ingredients of Margherita are slightly different).
>> This requires:
>> 1. Margherita being defined as a "complete class", i.e., with  
>> necessary and sufficient conditions. I can handle that, and would  
>> prefer this in the Pizza example.
>> 2. I would have to express that the toppings I've put on my pizza  
>> are the only toppings. Does anyone know how to do that in Protégé?  
>> I.e., how can I "close the world" when I've instantiated a pizza?
>>
>> 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: william fitzgerald [mailto:wfitzgerald at tssg.org]
>>> Sent: Monday, April 02, 2007 12:30
>>> To: R.Cornet at amc.uva.nl
>>> Cc: User support for the Protege-OWL editor
>>> Subject: Re: [protege-owl] Query: Subclasses or Sibling
>>> Disjoint classes?
>>>
>>> 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
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> 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




More information about the protege-owl mailing list