亲爱的语义网人,
我在质疑自己如何在 OWL 中定义“排除者”结构。目前我能想到的唯一解决方案是使用 disjointWith。示例代码中演示了“排除者”的含义。房屋对象是屋顶、墙壁、窗户和地板的交集。因此,如果其中一个课程错过,个人将不会成为众议院。但是推理器会进一步推理,因为特定交集的缺失类可能会成为真的。另一方面,House 类与 Tsunami 类具有脱节的关系。当我的个人是海啸班级时,我直接知道我的个人永远不会成为众议院班级。这是我在谈论“排除者”时所期望的行为。但也许其他人对此有不同的看法?
<?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>
问候, Martijn van der Plaat