41 
 
4.12 Universal Restrictions 
All of the restrictions we have created so far have been existential restrictions (defined using the some 
DL keyword). Existential restrictions specify the existence of at least one relationship along a given 
property to an individual that is a member of a specific class (specified by the filler). However, existential 
restrictions do not mandate that the only relationships for the given property that can exist must be to 
individuals that are members of the specified filler class. 
For example, we could use an existential restriction hasTopping some MozzarellaTopping to 
describe the individuals that have at least one relationship along the property hasTopping to an 
individual that is a member of the class MozzarellaTopping. This restriction does not imply that all of 
the hasTopping relationships must be to a member of the class MozzarellaTopping. To restrict the 
relationships for a given property to individuals that are members of a specific class we must use a 
universal restriction. Universal restrictions correspond to the symbol ∀ in First Order Logic. They 
constrain the relationships along a given property to individuals that are members of a specific class. For 
example, the universal restriction ∀ hasTopping VegetableTopping describes the individuals all of 
whose hasTopping relationships are to members of the class VegetableTopping — the individuals do 
not have a hasTopping relationship to individuals that aren’t members of the class 
VegetableTopping. 
 
Suppose we want to create a class called VegetarianPizza. Individuals that are members of this class 
can only have toppings that are a CheeseTopping or VegetableTopping. To do this we can use a 
universal restriction: 
Exercise 22: Create a Defined Class called VegetarianPizza 
_____________________________________________________________________________________ 
1. Select the Pizza  in the Classes tab.  Create a subclass of Pizza and name it VegetarianPizza. 
2. Make sure VegetarianPizza is selected. Click on the Add icon (+) next to the SubClass Of field in the 
Description view. 
3. Select the Class expression editor tab from the pop-up window.  Type in the Description Logic axiom: 
hasTopping only (VegetableTopping or CheeseTopping). Click on OK.  
4. Make sure VegetarianPizza is still selected. Run the Edit>Convert to defined class command.  
5. VegetarianPizza should now have three horizontal lines through it just as CheesyPizza does. 
Also, the Equivalent To field in the Description view should have: Pizza and (hasTopping only 
(CheeseTopping or VegetableTopping)). Note that another way to create defined classes is to enter the 
Description Logic axiom directly into the Equivalent To field.  
6. Synchronize the reasoner.  
_____________________________________________________________________________________ 
 
 
 
This means that if something is a member of the class VegetarianPizza it is necessary for it 
to be a kind of Pizza and it is necessary for it to only (∀ universal quantifier) have toppings that 
are kinds of CheeseTopping or kinds of VegetableTopping. In other words, all 
hasTopping relationships that individuals which are members of the class VegetarianPizza 
participate in must be to individuals that are either members of the class CheeseTopping or 
VegetableTopping. The class VegetarianPizza also contains individuals that are Pizzas 
and do not participate in any hasTopping relationships.