Reputation: 1245
I simply do not understand what either rdfs:domain
and rdfs:range
mean.
I have read what is says here, but it isn't clear enough.
If someone could explain it with an example, that would be great.
Upvotes: 2
Views: 1147
Reputation: 89
I think the previous answers - while being correct - do not perhaps reflect the intuitive meaning of what the domain and range statements mean when imposed upon individuals as subjects or objects of a triple.
You can think of them being sufficient conditions for being an individual of the stated class, while the class restrictions defined inside an OWL class are necessary conditions.
If i have a property ex:hasVehicleIdentificationNumber
that has a rdfs:domain
of ex:Vehicle
, then any subject in triples using that predicate will be inferred (in most reasoners) to be individuals of ex:Vehicle
, regardless of whether they fulfill some property restrictions expressed in ex:Vehicle
(like vehicle needing to have tires, steering wheel or an engine to qualify as a vehicle).
In some older W3C docs domain and range are stated to be purely informal guides on how to restrict the usage of properties, but in newer docs they do have axioms making them more than just annotations when doing inferencing.
Upvotes: 1
Reputation: 4787
If you have an object property related
with domain Class1
and range Class2
, it will infer that whenever 2 individuals x
,y
are related via related
, then x
will be inferred to be of type Class1
and y
will be inferred to be of type Class2
.
DomainRangeExample:related rdf:type owl:ObjectProperty ;
rdfs:domain DomainRangeExample:Class1 ;
rdfs:range DomainRangeExample:Class2 .
DomainRangeExample:Class1 rdf:type owl:Class .
DomainRangeExample:Class2 rdf:type owl:Class .
DomainRangeExample:x rdf:type owl:NamedIndividual ;
DomainRangeExample:related DomainRangeExample:y .
DomainRangeExample:y rdf:type owl:NamedIndividual .
Upvotes: 4