26 
 
symmetric properties. If Michelle hasSpouse Barack, then Barack hasSpouse Michelle. A 
symmetric property is its own inverse.  
An Asymmetric property is a property that can never have symmetric values. If a property P is 
asymmetric then if a is related to b via that property b cannot be related to a via that property. An example 
of an asymmetric property is hasBirthMother. If Diya hasBirthMother Fatima, then it can’t be the 
case that Fatima hasBirthMother Diya.  
4.8.5 Reflexive and Irreflexive Properties 
A reflexive property is a property that always relates an individual to itself. If a property P is reflexive 
then for all individuals a P will always relate a to a. Equality is the most common example of a reflexive 
property. For any object a, a is always equal to a. An irreflexive property is… you guessed it… a property 
that can never relate an individual to itself. The property hasBirthMother is an example of an 
irreflexive property since no person can be their own mother. Note: you should use reflexive properties 
with care. The domain of a reflexive property is always owl:Thing. The reasons are complex, see the 
W3C Owl 2 Specification in the bibliography for more details.  The important thing is that if you make a 
property reflexive that means its domain is owl:Thing. For example, if you have a reflexive property 
and declare its domain to be some class such as Person the reasoner will infer that Person is equivalent 
to owl:Thing which can cause problems.  
4.8.6 Reasoners Automatically Enforce Property Characteristics 
The reasoners that work with Protégé automatically enforce all the characteristics that are described 
above. For example, if the user enters the fact that Diya hasBirthMother Fatima and 
isBirthMotherOf is the inverse of hasBirthMother, the reasoner will infer that Fatima 
isBirthMotherOf Diya. These types of characteristics can significantly reduce the amount of effort 
needed to populate an ontology with data about individuals.  
4.9 OWL Property Domains and Ranges 
Properties may have a domain and range defined. These terms have the same meaning in OWL as they do 
in mathematics and set theory. The domain of a property is the set of all objects that can have that 
property asserted about it. The range is the set of all objects that can be the value of the property. Both the 
domain and range are optional. In general, it is a good idea to define them because doing so can catch 
modeling mistakes while defining the model rather than at run time when trying to use it. The domain for 
an object property must always be a class. For data properties the range is a simple datatype such as 
xsd:decimal. The most common predefined datatypes already exist in Protégé. It is also possible to 
define new data types although most users will seldom need to do that. For most cases if you are 
considering defining a new datatype you should probably consider making the property an object property 
instead and defining a class as the range. For people familiar with Entity-Relation modeling an object 
property is similar to a relation and a data property is similar to an attribute. For those familiar with set 
theory a property is identical to a binary relation in set theory.  
As an example, in our pizza ontology, the property hasTopping would link individuals belonging to the 
class Pizza to individuals belonging to the class PizzaTopping. The domain of hasTopping is Pizza 
and the range is PizzaTopping.  Inverse properties have their domains and range swapped. In this 
example, the inverse of hasTopping will be called isToppingOf. Thus, the domain for isToppingOf 
is the range of hasTopping (PizzaTopping) and the range for isToppingOf is the domain of 
hasTopping (Pizza).