owl:disjointWith is a built-in OWL property with a class description as domain and range.
Each
owl:disjointWith statement asserts that the class extensions of the two class descriptions
involved have no individuals in common. Like axioms with
rdfs:subClassOf, declaring two classes to be disjoint is a partial
definition: it imposes a necessary but not sufficient condition on the
class.
In order to assert that a set of classes is mutually disjoint, there must be an owl:disjointWith assertion for every pair.
<rdf:Property rdf:ID="disjointWith">
<rdfs:label>disjointWith</rdfs:label>
<rdfs:domain rdf:resource="#Class"/>
<rdfs:range rdf:resource="#Class"/>
</rdf:Property>
This is a popular example of class disjointness:
<owl:Class rdf:about="#Man">
<owl:disjointWith rdf:resource="#Woman"/>
</owl:Class>
Whether this is actually true is a matter for biologists to decide.
AXIOM SCHEMA: class description owl:disjointWith class description
A class axiom may also contain (multiple) owl:disjointWith statements.
The following example shows a common use of class disjointness in subclass hierarchies:
<owl:Class rdf:about="#MusicDrama">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Opera"/>
<owl:Class rdf:about="#Operetta"/>
<owl:Class rdf:about="#Musical"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:about="#Opera">
<rdfs:subClassOf rdf:resource="#MusicDrama"/>
</owl:Class>
<owl:Class rdf:about="#Operetta">
<rdfs:subClassOf rdf:resource="#MusicDrama"/>
<owl:disjointWith rdf:resource="#Opera"/>
</owl:Class>
<owl:Class rdf:about="#Musical">
<rdfs:subClassOf rdf:resource="#MusicDrama"/>
<owl:disjointWith rdf:resource="#Opera"/>
<owl:disjointWith rdf:resource="#Operetta"/>
</owl:Class>
Here, owl:disjointWith statements are used together with owl:unionOf in order to define a set of
mutually disjoint and complete subclasses of a superclass. In natural language:
every MusicDrama is either an opera, an Operetta, or a
Musical (the subclass partitioning is complete) and individuals
belonging to one subclass, e.g., Opera, cannot belong to
another subclass, e.g., Musical (disjoint or
non-overlapping subclasses). This is a common modelling notion used in many
data-modelling notations.
NOTE: OWL Lite does not allow the use of owl:disjointWith.