In protege a reflexive property is assigned to all individuals relgardless of domain and range and the class to which individuals belongs.
so what is the use of this restriction?
P.S: lets say there is three individuals:
NamedIndividual( :John )
NamedIndividual( :alex )
NamedIndividual( :BMW )
and an object proeprty:
ObjectProperty( :hasFriend )
ReflexiveObjectProperty(:hasFriend)
running pellet deduce that :
BMW hasFriend BMW
This inference is conceptually meaningless
Papers like The even more irresistible SROIQ and Foundations of Description Logics point out that reflexive and irreflexive properties are closely related to the exists r.Self
concept. I.e. Narcissist
can be defined as Narcissist \sqsubseteq loves.Self
.
The SROIQ paper actually mentions that the main use cases for reflexive and irreflexive properties are limited and only make sense when used along with cardinality restrictions. I.e. if you define PopularPerson
as someone with at least 2 friends, and hasFriend
is reflexive, then by asserting an individual has 1 known friend will result in that individual being classified as a PopularPerson
because the individual is already assumed to be its own friend.
Interestingly, the paper also mentions that reflexive(r)
is equivalent to adding the GCI top \sqsubseteq exists r.Self
to the TBox. Personally for me this is more intuitive and provides the control I think you seem to want to achieve. In particular this allows you to replace \top
with whatever class of your choice. A similar equivalent exists for irreflexive properties.