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] Inconsistency due to Multiple Inheritance

Thomas Russ tar at ISI.EDU
Tue Jan 8 09:29:02 PST 2008


On Jan 8, 2008, at 1:07 AM, Christian Beckel wrote:

> Hello everybody,
>
> I've got a design question which can be transferred to the pizza  
> ontology
> pretty well:
>
> Following the "Conceptual Lego" principle, I'd like to connect two  
> named
> pizzas to one single class such that this new class inherits the  
> restrictions
> from both of them. For example, I want to create a class  
> SalamiHamPizza which
> inherits both the salami restriction and the ham restriction from its
> superclasses.
>
> However, of course, since Salami and Ham Pizza are disjoint classes  
> this leads
> to an inconsistent ontology. On the other hand, all I need  
> SalamiHamPizza for
> is subclass inference rather than actually instantiating individuals.
>
> What's the solution to this problem? Is it really a bad thing to  
> have an
> ontology which has some inconsistent classes?

That depends.  If the inconsistent classes arise because they are  
classes that in your  model of the world CANNOT have any individuals,  
then there isn't any problem.  So, for example, a "Grey Pink Elephant"  
would be an inconsistent class that would be fine, because such a  
thing can't exist.

To have inconsistent classes when you expect to have individuals  
belonging to those classes is a problem, since that means you haven't  
modeled the domain properly.

> Is there another way to model
> SalamiHamPizza? Of course I could just copy the restrictions from  
> SalamiPizza
> and HamPizza without using inheritance,

That is really what you need to do.  See below.

> but I guess there must be a more
> elegant solution.

The key to this is to make sure you are absolutely clear on the  
semantics of the classes that you define, since the real benefit to  
using a formal logical modeling technique is that it does have well- 
founded formal semantics.

For starters one needs to distinguish between the following possible  
statements involving ham toppings for pizzas:

    "This pizza has ham as one of its toppings"   [A]
    "This pizza only has ham as its topping"      [B]

Statement A can be used as a superclass of the Ham & Salami pizza,  
whereas statement B cannot.  It does not make sense to say:

    A ham and salami pizza is a special type of pizza that only has ham.

and that is what the reasoner is telling you when it indicates the  
class is inconsistent.





More information about the protege-owl mailing list