我想讓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