我想让Pellet将属性从类传播到属于这些类的个人。例如,如果我有属性X的属性A和属性为rdf:type =属性A的属性B,我希望个人B在运行推理器后拥有属性X.我正在使用OWL 2 New Features页面上引用的属性链包含技术。如果我在属性链中使用自己的自定义属性,该技术完美工作,但如果我尝试使用rdf:type本身,则此方法无效。这里是我的RDF/XML的一些相关剪辑。rdf上的属性链推理:类型
本体类(由耶拿产生;注意“传播”属性,因为这是我试图传播到Person类的个人):
<rdf:Description rdf:about="http://family/person">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<owl:sameAs rdf:resource="http://family/person"/>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
<owl:equivalentClass rdf:resource="http://family/person"/>
<owl:disjointWith rdf:resource="http://www.w3.org/2002/07/owl#Nothing"/>
<j.1:spread rdf:resource="http://spread/specificSpread"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</rdf:Description>
“传播”属性本身(书面手动我,不与耶拿产生自耶拿的API不支持对象属性链):
<rdf:Description rdf:about="http://spread/generalSpread">
<owl:propertyChainAxiom rdf:parseType="Collection">
<owl:ObjectProperty rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"/>
<owl:ObjectProperty rdf:about="http://spread/generalSpread"/>
</owl:propertyChainAxiom>
</rdf:Description>
推理之前,人俄狄浦斯看起来是这样的:
<rdf:Description rdf:about="http://family/Oedipus">
<rdf:type rdf:resource="http://family/person"/>
</rdf:Description>
的想法是,推理之后,它会是这个样子:
<rdf:Description rdf:about="http://family/Oedipus">
<rdf:type rdf:resource="http://family/person"/>
<j.1:spread rdf:resource="http://spread/specificSpread"/>
</rdf:Description>
我有提到RDF一种感觉:类型为RDF:资源可能是那里的东西越来越扭曲,因为我很确定这不是一种资源。但我不知道如何解决它。我跑了通过粒料的命令行lint程序以及和它似乎没有与它的问题,只是它创造了RDF明确的条目:类型是这样的:
<owl:ObjectProperty rdf:about="&rdf;type"/>
看起来有点怪对我来说也可能暗示它不理解我对rdf:type的引用。
任何人都可以阐明可能发生的事情吗?我真的很感谢任何人可以提供的帮助。
完美的问题semanticoverflow.com – harschware 2011-03-10 22:33:16
在我问这个问题的时候并不存在。 – 2011-03-11 01:52:50
这只是一个只有3个月的宝贝,并不为人所知:-)但是,我对这个问题的读者发表了更多评论。和(+1)好问题。 – harschware 2011-03-11 03:08:11