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:subClassOf rdf:resource="#ObjectProperty"/>


Example listing




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"/>


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"/>


Other information

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.

Use in ISO 15926