I'm reading through an ontology (the HL7 FHIR ontology) and trying to understand why certain choices were made. I've distilled my question down to a basic example:
ex:Pet a owl:Class .
ex:hasPet
a owl:ObjectProperty ;
rdfs:domain ex:Person ;
rdfs:range ex:Pet .
ex:Person
a owl:Class;
rdfs:subClassOf [ a owl:Restriction ;
owl:allValuesFrom ex:Pet ;
owl:onProperty ex:hasPet
] .
The way I understand universal quantification (ObjectAllValuesFrom), the subclass statement above means that IF an instance of ex:Person connects through ex:hasPet to some other instance, then that instance is of the class ex:Pet. This seems redundant, though, because the domain and range of ex:Pet are defined that way to begin with. Am I missing something, or are these statements redundant?