28 
 
 
Figure 4.15 Domain and Range inferred by the reasoner 
 
 
 
 
It is possible to specify more than one class as the domain or range of a property.  One of the 
most common mistakes of new users is to do this and expect that the resulting domain/range is 
the union of the two classes. However, note that next to the Domain and Range in the 
Description view it says (intersection). This is because the semantics of having 2 or more classes 
as the domain or range is the intersection of those classes not the union.  E.g., if one defined the 
domain for a property to be Pizza and then added another domain IceCream that would 
mean that for something to be in the domain of that property it would have to be an instance of 
both Pizza and IceCream not (as people often expect) the union of those two sets which 
would be either the class Pizza or the class IceCream.  Also, note that the domain and range 
are for inferencing, they are not data integrity constraints. This distinction will be explained in 
more detail below in the section on SHACL.