Hello,

In 2020, there was a question to the list (see below) about inference and 
queries involving predicates that have an owl:inverseOf and I think I'm running 
into a similar issue with crm:P46_is_composed_of vs. crm:P46i_forms_part_of 
where the latter is not resolving in SPARQL queries using any of the OWL or 
RDFS Jena reasoners.

Was a ticket ever created for to investigate this further?  Is duplicating the 
inverted predicates in the data still the recommend approach?  The Jena 
documentation seems to suggest that (all?) of the built-in reasoners have 
support for owl:inverseOf although in practice is that actually the case?

I can provide a full working example with code and data for the latest Jena 
snapshot if it would help.

Thanks,

Dave Beaudet



Hello, I'm using Jena Fuseki 3.13.1 (with OWLFBRuleReasoner), and I have 
asserted (uploaded) the following triples: @prefix rdfs: 
<http://www.w3.org/2000/01/rdf-schema#<http://www.w3.org/2000/01/rdf-schema>> . 
@prefix owl: <http://www.w3.org/2002/07/owl#<http://www.w3.org/2002/07/owl>> . 
@prefix f: <http://vleo.net/family#<http://vleo.net/family>> . f:Bob f:hasWife 
f:Alice . f:Bob f:hasWife f:Alice2 . f:Alice2 f:hasHusband f:Bob2 . f:hasWife a 
owl:FunctionalProperty . f:hasWife a owl:InverseFunctionalProperty . 
f:hasHusband owl:inverseOf f:hasWife . Now, If I query and ASK { f:Alice 
owl:sameAs f:Alice2 }, I get true. However, If I ASK { f:Bob owl:sameAs f:Bob2 
}, I get false! Loading the same triples on another reasoner (owl-rl), I get 
the triple f:Bob owl:sameAs f:Bob2 inferred. I have asked this very question on 
StackOverflow 
(https://stackoverflow.com/questions/59603569/jena-fuseki-missed-inference?noredirect=1#comment105379894_59603569
 
<https://stackoverflow.com/questions/59603569/jena-fuseki-missed-inference?noredirect=1#comment105379894_59603569>),
 and I got pointed out to the owl-fb rules file. Tweaking it a bit I noticed 
that If I explicitly add the forward version of inverseOf, I get that f:Bob 
owl:sameAs f:Bob2: [inverseOf2b: (?P owl:inverseOf ?Q), (?X ?P ?Y) -> (?Y ?Q 
?X) ] Am I missing something? Best regards, Andrea Leofreddi

Reply via email to