38 
 
Figure 4.20 Explanation for why ProbeInconsistentTopping is equivalent to owl:Nothing 
 
4.11 Primitive and Defined Classes (Necessary and Sufficient Axioms) 
All of the classes that we have created so far have only used necessary axioms to describe them. 
Necessary axioms can be read as, If something is a member of this class then it is necessary to fulfil these 
conditions. With necessary axioms alone, we cannot say that: If something fulfils these conditions then it 
must be a member of this class. 
Let’s illustrate this with an example. We will create a subclass of Pizza called CheesyPizza, which 
will be a Pizza that has at least one kind of CheeseTopping.  
Exercise 20: Create the CheesyPizza class 
_____________________________________________________________________________________ 
1. Select Pizza in the class hierarchy on the Classes tab.  
2. Select the Add Subclass icon (see figure 4.4). Name the new subclass CheesyPizza.  
3. Make sure CheesyPizza is selected. Click on the Add icon (+) next to the SubClass Of field in the 
Description view. 
4. Select the Class expression editor tab. Type in the new axiom: hasTopping some CheeseTopping. 
Remember you can use <control><space> to auto-complete each word in the axiom, e.g., type hasT and 
then <control><space> to auto-complete the rest. If you haven’t typed enough for Protégé to 
unambiguously choose one entity or Description Logic keyword you will be prompted with a menu of 
possible completions. Click OK to enter the new restriction axiom.  
_____________________________________________________________________________________