Предположим, что онтология OWL содержит следующее правило SWRL:
has_part(?x, ?y) ^ participates(?x, ?z) -> participates(?y, ?z)
и следующие утверждения свойства объекта:
o1 has_part o2
o1 participates p1
Когда я запускаю средство рассуждений Hermit в Protege, я получаю следующее утверждение свойства предполагаемого объекта:
o2 participates p1
Однако, когда я загружаю ту же онтологию с помощью owlready2 и запускаю ее модуль рассуждений Hermit, я не получаю никаких утверждений о выводимых свойствах объекта. Например:
from owlready2 import *
onto = get_ontology("test.owl").load()
sync_reasoner()
onto.o2.get_properties()
не возвращает никаких свойств.
Я сохранил онтологию в формате RDFXML и могу получить правило SWRL с помощью owlready2.
Разве owlready2 Reasoner не поддерживает такой вывод?