Hi Semantic Web人员,
在推断下面的OWL代码之后,我不希望在NamedIndividual:instance_Dromen中有<rdf:type rdf:resource='#Tsunami'>
。
不知何故,#Huis和#Auto之间的脱节有什么问题,或者我可能不会以正确的方式使用complementOf?在推理器的结果中,NamedIndividual:instance_Dromen具有以下输出:
-
<rdf:Description rdf:about="http://www.almfluss.com/rdf/0.1/Ontology.owl#instance_Dromen">
<owl:sameAs rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#instance_Dromen"/>
<rdf:type rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#Wielen"/>
<rdf:type rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#Auto"/>
<rdf:type rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#Onderstel"/>
<rdf:type rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#Tsunami"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<rdf:type rdf:resource="http://www.almfluss.com/rdf/0.1/Ontology.owl#Dromen"/>
</rdf:Description>
我用作推理器输入的OWL代码是:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY swrl "http://www.w3.org/2003/11/swrl#" >
<!ENTITY swrlb "http://www.w3.org/2003/11/swrlb#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
<!ENTITY Ontology201210 "http://www.almfluss.com/rdf/0.1/Ontology.owl#" >
]>
<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:Ontology201210="http://www.almfluss.com/rdf/0.1/Ontology.owl#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xml:base="http://www.almfluss.com/rdf/0.1/Ontology.owl#">
<owl:DatatypeProperty rdf:about="#hasValue"/>
<owl:Class rdf:about="#Dromen">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="#Huis"/>
<rdf:Description rdf:about="#Auto"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
<owl:equivalentClass>
<owl:Class>
<owl:complementOf rdf:resource="#Werkloos"/>
</owl:Class>
</owl:equivalentClass>
<owl:equivalentClass>
<owl:Class>
<owl:complementOf rdf:resource="#Arbeidsongeschikt"/>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:NamedIndividual rdf:about="#instance_Dromen">
<rdf:type rdf:resource="#Wielen"/>
<rdf:type rdf:resource="#Onderstel"/>
</owl:NamedIndividual>
<owl:Class rdf:about="#Huis">
<owl:equivalentClass>
<owl:Class>
<owl:complementOf rdf:resource="#Tsunami"/>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:NamedIndividual rdf:about="#instance_Huis"/>
<owl:Class rdf:about="#Auto">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="#Wielen"/>
<rdf:Description rdf:about="#Onderstel"/>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<owl:disjointWith rdf:resource="#Huis"/>
</owl:Class>
<owl:NamedIndividual rdf:about="#instance_Auto"/>
<owl:Class rdf:about="#Werkloos">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="#ZelfOntslag"/>
<rdf:Description rdf:about="#Ontslagen"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:NamedIndividual rdf:about="#instance_Werkloos"/>
<owl:Class rdf:about="#Arbeidsongeschikt"/>
<owl:NamedIndividual rdf:about="#instance_Arbeidsongeschikt"/>
<owl:Class rdf:about="#Wielen"/>
<owl:NamedIndividual rdf:about="#instance_Wielen"/>
<owl:Class rdf:about="#Onderstel"/>
<owl:NamedIndividual rdf:about="#instance_Onderstel"/>
<owl:Class rdf:about="#Ontslagen"/>
<owl:NamedIndividual rdf:about="#instance_Ontslagen"/>
<owl:Class rdf:about="#ZelfOntslag"/>
<owl:NamedIndividual rdf:about="#instance_ZelfOntslag"/>
<owl:Class rdf:about="#Tsunami"/>
<owl:NamedIndividual rdf:about="#instance_Tsunami"/>
</rdf:RDF>
我希望有人可以帮助我。
提前致谢。
此致 Martijn van der Plaat
答案 0 :(得分:3)
你的本体论非常混乱,例如,你说过,自动与Huis脱节,但是Dromen相当于Huis&amp; amp;汽车。
如果您是手写,请停止。得到Protege 4并用它来创作你的本体。除了更容易编写本体之外,它还与各种reasoners集成,因此您可以检查一致性和&amp; GUI中的可满足性。并且您还可以使用解释工具来告诉您为何进行了特定的推断。
最后,几乎总是需要subClassOf而不是equivalentTo。等价在关系中是双向的,这通常不是作者的意图。
答案 1 :(得分:1)
我同意@Michael所写的内容。关于将OWL代码作为(Stackoverflow)问题的一部分呈现的一些一般观点:
完成这些更改之后,您可能只需要几行代码,而且问题可能会立即显现......
答案 2 :(得分:1)
您的instance_Dromen
(从现在开始称之为i
,为简洁起见)定义为Wielen
类型和Onderstel
类型。导致它为Tsunami
类型的推理如下:
Auto
定义为等同于Wielen
和Onderstel
的交集,因此推断i
属于Auto
类型。 i
的类型为Auto
,我们知道它不是Huis
类型(因为这两个类被定义为不相交)。Tsunami
被定义为Huis
的补充(即,Huis
的所有内容都是Tsunami
),i
是不属于Huis
类型,我们可以推断i
是Tsunami
。更简洁地说,你的本体建模方式导致每Auto
为Tsunami
。