<p>A set of classes used to demonstrate common errors made while modelling, including: <ol> <li>Over-constraining domains on properties</li> <li>Misinterpretation of functional properties</li> <li>Descriptions of VegetarianPizza that:<ol> <li>can be trivially satisfied</li> <li>can subsume unclosed pizzas</li> <li>use restrictions that do not mean anything</li> <li>use intersection incorrectly</li> <li>use inappropriate disjoints</li> </ol> </li> </ol> VegePizzas have been left as primitives to simplify viewing the classification. Convert each of these, one at a time or in small groups, to a defined class (using the right-click menu) before classifying. </p>
version 1.0
Defined classes are generally not disjoint.
They definitely cannot be disjoint with classes they are designed to subsume - this will cause an inconsistency
This class will become inconsistent when VegePizzaWithAccidentalDisjoint is converted to a defined class (which tries to subsume it) because it is disjoint from this class through TestPizza
CONVERT TO DEFINED BEFORE CLASSIFYING
This is correct, with respect to our PizzaToppings
Cannot be empty
(will not subsume open pizzas)
CONVERT TO DEFINED BEFORE CLASSIFYING
The intersection of Meat and Fish is empty because they are disjoint.
So we only have toppings that are (not owl:Nothing)
Therefore, we only have toppings that are (owl:Thing)
This statement is meaningless.
This class is equivalent to Pizza
Pizzas that have been closed to limit what toppings they can have
0
This pizza exists to test trivial satisfaction - members of this class cannot have any toppings.
This should classify under VegePizza02
Pizzas that could be extended - they have the given toppings, but could also have other, unspecified toppings
CONVERT TO DEFINED BEFORE CLASSIFYING
Has at least one topping (of any class but not meat or fish)
No toppings can be meat or fish
(will not subsume open pizzas)
We have not asserted that all pizzas must have at least 1 topping
The MaterialStates should be disjoint, but this has been left out - see LiquidSolidIceCream
CONVERT TO DEFINED BEFORE CLASSIFYING
only (Universal) does not state some
Trivially satisfied by Pizzas with no toppings
Can only have VegetarianToppings or be empty
(will not subsume open pizzas)
A class that uses a functional property (hasMaterialState) twice. This is not inconsistent unless MaterialStates have been declared disjoint
CONVERT TO DEFINED BEFORE CLASSIFYING
some (Existential) does not state only
Not Closed
Has at least one VegetarianTopping, but could also have toppings of anything else
(will subsume open pizzas)
CONVERT TO DEFINED BEFORE CLASSIFYING
The intersection of Meat and Fish is empty because they are disjoint.
So we have toppings that are (not owl:Nothing)
Therefore, we have toppings that are (owl:Thing)
Has at least 1 topping of any class
(will subsume open pizzas)
CONVERT TO DEFINED BEFORE CLASSIFYING
Can have anything as a topping (even non toppings) except meat or fish.
Trivially satisfied - Does not have to have any toppings
Equivalent to VegePizza05
(will not subsume open pizzas)
1
CONVERT TO DEFINED BEFORE CLASSIFYING
Has at least 1 topping (any class)
Equivalent to VegePizza08 - the Universal restr is ignored (see VegePizza06)
(will subsume open pizzas)
CONVERT TO DEFINED BEFORE CLASSIFYING
Has at least one topping (of any class except meat or fish)
Could have other toppings (including meat and fish)
(will subsume open pizzas)
All IceCreams must have at least 1 topping.
Any individual that has a topping must be a Pizza.
Therefore all IceCreams must be Pizzas.
Icecream is inferred to be a subclass of Pizza.
A m
CONVERT TO DEFINED BEFORE CLASSIFYING
Can have anything as a topping (even non toppings) except meat or fish.
Trivially satisfied - Does not have to have any toppings
Equivalent to VegePizza04
(will not subsume open pizzas)