29 
 
Exercise 12: Define the domain and range for the hasBase property 
_____________________________________________________________________________________ 
1. Now we are going to repeat the same activities as in the previous exercise but for another property: 
hasBase. Make sure you are still on the Object  properties tab. Select the hasBase property.   
2. Click on the Add icon (+) next to Domains (intersection) in the Description view for hasBase. Select 
the ClassHierarchy tab. Then select Pizza from the class hierarchy..  
3. Repeat step 2 but this time start by using the (+) icon next to the Ranges (intersection) in the 
Description for hasBase. This time select the class PizzaBase as the range.   
4. Synchronize the reasoner. Now select isBaseOf You should see that the Domain and Range for 
isBaseOf have been filled in by the reasoner.  
_____________________________________________________________________________________ 
4.10 Describing and Defining Classes 
Now that we have defined some properties, we can use these properties to define some more interesting 
classes. There are 3 types of classes in OWL: 
1. Primitive classes. These are classes that are defined by conditions that are necessary (but not 
sufficient) to hold for any individuals that are instances of that class or its subclasses. The 
condition may be as simple as: Class A is a subclass of class B. To start with we will define 
primitive classes first and then defined classes. When the reasoner encounters an individual that is 
an instance of a primitive class it infers that all the conditions defined for that class must hold for 
that individual.  
2. Defined classes. These are classes that are defined by both necessary and sufficient conditions. 
When the reasoner encounters an individual that satisfies all the conditions for a defined class it 
will make the inference that the individual is an instance of that class. The reasoner can also use 
the conditions defined on classes to change the class hierarchy, e.g., to infer that Class A is a 
subclass of Class B. We will see examples of this later in the tutorial.  
3. Anonymous classes. These are classes that you won’t encounter much and that won’t be 
discussed much in this tutorial, but it is good to know about them. They are created by the 
reasoner when you use class expressions. For example, if you define the range of a property to be 
PizzaTopping or PizzaBase then the reasoner will create an anonymous class representing 
the intersection of those two classes.  
4.10.1 Property restrictions 
In OWL properties define binary relations with the same semantics and characteristics as binary relations 
in First Order Logic. There are two types of OWL properties for describing a domain: Object properties 
and Data properties. Object properties have classes as their domain and range. Data properties have 
classes as their domain and simple datatypes such as xsd:string or xsd:dateTime as their range. In 
figure 3.3 the individual Michael is related to the individual USA by the property livesIn. Consider all 
the individuals who are an instance of Person and also have the same relation, that each livesIn the 
USA. This group is a set or OWL class such as USAResidents. In OWL a class can be defined by 
describing the various properties and values that hold for all individuals in the class. Such definitions are 
called restrictions in OWL.