I have a simple ontology with a class "Person" that has 3 individuals 'A','B','C'. They are related each other by an object property named isFatherOf
, for example,
A isFatherOf B
B isFatherOf C
and I set another property hasFather
, which is an Inverse property of isFaterOf
. I expected the reasoner infer:
B hasFatherOf A
C hasFatherOf B
However, None of the built-in reasoner (FaCT++, HermiT, Pellet) didn't infer them.
Plus, I want to make a property chain of isFatherOf
, say isGrandFatherOf
:
A isGrandFatherOf C
Therfore, I set the SuperProperty like below:
isFatherOf o isFatherOf SubPropertyOf isGrandFatherOf
but it also fails.
I have the same results on Protege 4.3 and 5.0.0 (Build RC1) with HermiT 1.3.8, Pellet 2.2.0 and FaCT++ 1.6.4. I've searched docs and questions on the internet, but still can't figure out why it is happening. Here is the link for the owl file.
Possible Bug Report Added
The problem might be caused from a bug. I had the desired inference results in the environment of: Win7 64-bit, Protege 5-beta21 (and Protege 5-RC1), java 1.8.0_20.
But the problem did occur in the environment of: Win10 64-bit, Protege 5-beta21 (and Protege 5-RC1), java 1.8.0_73. I couldn't get any inference results. I've tried the inference with 3 different reasoners (HermiT 1.3.8, Pellet 2.2.0 and FaCT++ 1.6.4). Among them, only HermiT 1.3.8 shows the error message below. The log says win8 but it's actually win10.