クラスからそれらのクラスに属する個体までプロパティを伝播するペレットを取得しようとしています。たとえば、プロパティ X を持つクラス A と rdf:type=Class A を持つ個人 B がある場合、推論を実行した後、個人 B にプロパティ X を持つようにします。私は、OWL 2 新機能ページで参照されているプロパティ チェーンを含める手法を使用しています。この手法は、プロパティ チェーンで独自のカスタム プロパティを使用すると完全に機能しますが、rdf:type 自体を使用しようとすると機能しません。ここに、私の RDF/XML の関連する切り抜きをいくつか示します。
存在論的クラス (Jena によって生成されます。「spread」プロパティに注意してください。これは、クラス 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>
「Spread」プロパティ自体 (Jena の API はオブジェクト プロパティ チェーンをサポートしていないため、Jena で生成されたものではなく、私が手動で作成しました):
<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:type を rdf:resource として参照することは、おそらくそれがリソースではないことを確信しているため、物事がおかしくなっていると感じています。しかし、それを修正する方法がわかりません。Pellet のコマンド ライン lint プログラムでも実行しましたが、次のような rdf:type の明示的なエントリが作成されたことを除いて、問題はないようでした。
<owl:ObjectProperty rdf:about="&rdf;type"/>
私には少し奇妙に見えますが、rdf:type への参照が理解されていないことを示している可能性もあります。
何が起こっているのか、誰にも光を当てることができますか? 誰かが提供できる助けを本当に感謝します。