I am trying to get Pellet to propagate properties from classes down to the individuals belonging to those classes. For example, if I have Class A with Property X, and Individual B with rdf:type=Class A, I want Individual B to have Property X after running the reasoner. I'm using the technique of property chain inclusion referenced on the OWL 2 New Features page. This technique works perfectly if I use my own custom properties in the property chain, but it doesn't work if I try to use rdf:type itself. Here are some relevant snips of my RDF/XML.
Ontological Class (generated by Jena; note the "spread" property, as that is what I'm trying to propagate to the individuals of class 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" property itself (written manually by me, not generated with Jena since Jena's API doesn't support object property chains):
<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>
Before reasoning, the person Oedipus looks like this:
<rdf:Description rdf:about="http://family/Oedipus">
<rdf:type rdf:resource="http://family/person"/>
</rdf:Description>
The idea is that, after reasoning, it would look something like this:
<rdf:Description rdf:about="http://family/Oedipus">
<rdf:type rdf:resource="http://family/person"/>
<j.1:spread rdf:resource="http://spread/specificSpread"/>
</rdf:Description>
I have a feeling that referring to rdf:type as an rdf:resource is probably where things are getting screwy since I'm pretty sure it's not a resource. But I'm not sure how to fix it. I ran it through Pellet's command line lint program as well and it didn't seem to have a problem with it except that it created an explicit entry for rdf:type that looked like this:
<owl:ObjectProperty rdf:about="&rdf;type"/>
Looks a little strange to me and might also be a hint that it doesn't understand my reference to rdf:type.
Can anyone shed any light on what might be going on? I'd really appreciate any help anyone could provide.