We define the range of a property as ⊤ ⊑ ∀ r.C in DL.
I do not understand the idea behind this definition. Why is T (i.e. owl:Thing) defined as subclass of ∀ r.C? What does that mean? Is there any case where T is in fact a smaller set than ∀ r.C? Why don't we use ⊤ ≡ ∀ r.C?
Imagine I have a role: eats; whose range is my Food class. What would ⊤ ⊑ ∀ eats.Food mean, in plain natural language?
Thanks a lot in advance!
⊤ ⊑ ∀r.C means that everything that has a relation r with something must have this relation with an instance of C. ∀r.C represents the class of things such that, when they have a relation r with something, then this relation is with an instance of C. For instance, ∀hasParent
.Person
represents the things that have people as parents. There may also be things that have parents that are not people, such as cats and dogs. By making the class a superclass of ⊤, you ensure that everything that has the relation has it with a member of C. Thus, you guarantee that the range of the relation is C.
Now, we do not write ⊤ ≡ ∀r.C because the notation X ≡ Y is a shortcut for {X ⊑ Y, Y ⊑ X} and for any concept X, it is always true that X ⊑ ⊤. So, writing ⊤ ≡ ∀r.C would be redundent.
Your example with eats
and Food
is a good example. Anything that eats something, eats food. Or, said differently, in a way closer to the form of the axiom: "whenever something has a relation eats
with something, then the relation is with an element of the Food
class. Of course, in natural language, we do not express this statement in this way, as it sounds very convoluted.
Note that an equivalent way of representing range is: ∃r–.⊤ ⊑ C, where r– is the inverse role of r.