Dear Semantic Web folks,
I'm questioning myself how I could define an "Excluded by" construction in OWL. For now the only solution I can think of is using disjointWith. What I mean with "Excluded by" is demonstrated in the example code. The House object is an intersection of Roof, Wall, Windows, and Floor. So if one of these classes miss, the individual will not become a House. But the inferencer will go further with reasoning because maybe the missing Classes for the particular intersection become true. On the other hand the House class has a disjointWith relationship with the Tsunami class. When my individual is a Tsunami class I know directly that my individual will never become a House class. This is behaviour I would expect when I talk about "Excluded by". But maybe somebody else has a different opinion on this?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.almfluss.com/rdf/0.1/Ontology.owl#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Class rdf:about="#House">
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="#Roof"/>
<rdf:Description rdf:about="#Wall"/>
<rdf:Description rdf:about="#Windows"/>
<rdf:Description rdf:about="#Floor"/>
</owl:intersectionOf>
<owl:disjointWith rdf:resource="#Tsunami"/>
</owl:Class>
<owl:NamedIndividual rdf:about="#instance_House">
<rdf:type rdf:resource="#Roof"/>
<rdf:type rdf:resource="#Wall"/>
<rdf:type rdf:resource="#Windows"/>
<rdf:type rdf:resource="#Floor"/>
<rdf:type rdf:resource="#Tsunami"/>
</owl:NamedIndividual>
<owl:Class rdf:about="#Roof"/>
<owl:Class rdf:about="#Wall"/>
<owl:Class rdf:about="#Windows"/>
<owl:Class rdf:about="#Floor"/>
<owl:Class rdf:about="#Tsunami"/>
</rdf:RDF>
Regards, Martijn van der Plaat