I am creating an ontology in Protégé modelling desserts. There are two main base classes Dessert and Ingredient and a hasIngredient property to connect them. An example of a dessert looks as follows;
NeapolitanIceCream subclass of Dessert
hasIngredient exactly 1 IceCream
hasIngredient exactly 1 wafers
hasIngredient only (IceCream or Wafers)
And I have 2 primitive classes SimpleDessert and ComplexDessert
SimpleDessert subclass of Dessert and (hasIngredient max 3 Ingredient)
ComplexDessert subclass of Dessert and (hasIngredient min 5 Ingredient)
SimpleDessert(min) performs as expected but ComplexDessert(max) has no subclasses when I run the reasoner. My understanding of the Open World Principle thought that the exactly 1 clauses and the only clause make it clear that there are only these two possible ingredients and the quantity is clear. I'm probably missing something obvious but would love any help here.