An owl:complementOf property links a class to precisely one class description.

An owl:complementOf statement describes a class for which the class extension contains exactly those individuals that do not belong to the class extension of the class description that is the object of the statement.

owl:complementOf is analogous to logical negation: the class extension consists of those individuals that are NOT members of the class extension of the complement class.

owl:complementOf has owl:Class as domain and as range.


    <rdf:Property rdf:ID="complementOf">


        <rdfs:domain rdf:resource="#Class"/>

        <rdfs:range rdf:resource="#Class"/>


Example listing


    og:NonConsumableThing   owl:complementOf   og:ConsumableThing .  , where og: is (here) the namespace for the Owl Guide ontology.


The expression "non-consumable" could be written as:

    <owl:Class rdf:ID="ConsumableThing" />

    <owl:Class rdf:ID="NonConsumableThing">

        <owl:complementOf rdf:resource="#ConsumableThing" />


The extension of this class description contains all individuals that do not belong to the class ConsumableThing.

More complex:

    <owl:Class rdf:ID="NonFrenchWine">

        <owl:intersectionOf rdf:parseType="Collection">

            <owl:Class rdf:about="#Wine"/>




                        <owl:onProperty rdf:resource="#locatedIn" />

                        <owl:hasValue rdf:resource="#FrenchRegion" />






This defines the class NonFrenchWine to be the intersection of Wine with the set of all things not located in France.

Other information

NOTE: owl:complementOf is not part of OWL Lite.

Use in ISO 15926