Hi! I have a special case where I want to infer properties inherited from parent entities. Looking at a similar case, where inference results were showing in protege but not in stardog. I am using stardog cloud and cannot read the logs to debug the property chain axiom. Also tried with stardog rules to no avail. I made a demo example of my scenario.
cat-demo.ttl (3.7 KB)
The specific rule:
### http://example.com#hasFeature
:hasFeature rdf:type owl:ObjectProperty ;
rdfs:subPropertyOf owl:topObjectProperty ;
owl:inverseOf :isFeatureOf ;
rdfs:domain :Order ;
rdfs:range :Feature ;
owl:propertyChainAxiom ( :inheritsFrom
:hasFeature
) .
Example query - it is only returning features from 'cat' but ignoring 'feline' and 'mammal' features. While I can achieve the same with traversal, the idea is to simplify it by just asking for features and get all the inherited ones.
PREFIX example: <http://example.com#>
SELECT ?feature ?featureValue
WHERE {
example:Cat example:hasFeature ?feature .
?feature example:value ?featureValue .
}
What am I missing here?
Thanks for the support, Pura Vida!