When one defines a property P to be an owl:TransitiveProperty, this means that if a pair (x,y) is an instance of P, and the pair (y,z) is also instance of P, then we can infer the the pair (x,z) is also an instance of P.
Syntactically, a property is defined as being transitive by making it an
instance of the the built-in OWL class owl:TransitiveProperty,
which is defined as a subclass of owl:ObjectProperty.
<rdfs:Class rdf:ID="TransitiveProperty">
<rdfs:label>TransitiveProperty</rdfs:label>
<rdfs:subClassOf rdf:resource="#ObjectProperty"/>
</rdfs:Class>
Typical examples of transitive properties are properties representing certain
part-whole relations. For example, we might want to say that the
subRegionOf property between regions is transitive:
<owl:TransitiveProperty rdf:ID="subRegionOf">
<rdfs:domain rdf:resource="#Region"/>
<rdfs:range rdf:resource="#Region"/>
</owl:TransitiveProperty>
From this an OWL reasoner should be able to derive that if
ChiantiClassico, Tuscany and Italy are
regions, and ChiantiClassico is a subregion of
Tuscany, and Tuscany is a subregion of
Italy, then ChiantiClassico is also a subregion of
Italy.
Note that because owl:TransitiveProperty is a subclass of
owl:ObjectProperty, the following syntactic variant is equivalent
to the example above:
<owl:ObjectProperty rdf:ID="subRegionOf">
<rdf:type rdf:resource="&owl;TransitiveProperty"/>
<rdfs:domain rdf:resource="#Region"/>
<rdfs:range rdf:resource="#Region"/>
</owl:ObjectProperty>
OWL DL requires that for a transitive property no local or global cardinality constraints should be declared on the property itself or its superproperties, nor on the inverse of the property or its superproperties.