Мыслитцы-протеже не могут вывести обратное свойство
У меня есть простая онтология с классом "Человек", в которой есть 3 человека: "А", "В", "С". Они связаны друг с другом свойством объекта с именем isFatherOf
, например,
A isFatherOf B
B isFatherOf C
и я установил другое свойство hasFather
, которое является обратным свойством isFaterOf
, Я ожидал, что умозаключение сделает вывод:
B hasFatherOf A
C hasFatherOf B
Однако ни один из встроенных рассуждений (FaCT++, HermiT, Pellet) их не выводил.
Кроме того, я хочу сделать цепочку собственности isFatherOf
, сказать isGrandFatherOf
:
A isGrandFatherOf C
Поэтому я установил SuperProperty, как показано ниже:
isFatherOf o isFatherOf SubPropertyOf isGrandFatherOf
но это также не удается.
У меня такие же результаты на Protege 4.3 и 5.0.0 (Build RC1) с HermiT 1.3.8, Pellet 2.2.0 и FaCT++ 1.6.4. Я искал документы и вопросы в Интернете, но до сих пор не могу понять, почему это происходит. Вот ссылка на файл совы.
Добавлено сообщение об ошибке
Проблема может быть вызвана ошибкой. У меня были желаемые результаты вывода в среде: Win7 64-bit, Protege 5-beta21 (и Protege 5-RC1), java 1.8.0_20.
Но проблема действительно возникла в среде: Win10 64-bit, Protege 5-beta21 (и Protege 5-RC1), java 1.8.0_73. Я не мог получить никаких результатов логического вывода. Я попытался сделать вывод с помощью трех разных рассуждений (HermiT 1.3.8, Pellet 2.2.0 и FaCT++ 1.6.4). Среди них только HermiT 1.3.8 показывает сообщение об ошибке ниже. В журнале написано win8, но на самом деле это win10.