For ontologies in which the unique-names assumption holds, the use of
owl:differentFrom is likely to lead to a large number of
statements, as all individuals have to be declared pairwise disjoint. For such
situations OWL provides a special idiom in the form of the construct owl:AllDifferent.
This is a special built-in OWL class, for which the
property owl:distinctMembers
is defined, which links
an instance of owl:AllDifferent to a list of individuals. The
intended meaning of such a statement is that all individuals in the list are all
different from each other. owl:distinctMembers is a special syntactical construct added for
convenience and should always be used with an owl:AllDifferent
individual as its subject.
owl:distinctMembers has owl:AllDifferent as domain, and rdf:List as range
EXAMPLE:
<rdf:Property rdf:ID="distinctMembers">
<rdfs:label>distinctMembers</rdfs:label>
<rdfs:domain rdf:resource="#AllDifferent"/>
<rdfs:range rdf:resource="&rdf;List"/>
</rdf:Property>
<owl:AllDifferent>
<owl:distinctMembers rdf:parseType="Collection">
<Opera rdf:about="#Don_Giovanni"/>
<Opera rdf:about="#Nozze_di_Figaro"/>
<Opera rdf:about="#Cosi_fan_tutte"/>
<Opera rdf:about="#Tosca"/>
<Opera rdf:about="#Turandot"/>
<Opera rdf:about="#Salome"/>
</owl:distinctMembers>
</owl:AllDifferent>
This states that these six URI references all point to different operas.