OWL 2 рассуждения с правилами SWRL

Я пытаюсь использоватьHermiT мыслитель чтобы вычислить выводы для онтологии, которая содержит набор аксиом OWL и правило SWRL:

Ontology(
  ClassAssertion( :Student :Bob )
  ClassAssertion( :Professor :DrBoffin )
  ClassAssertion( :University :UF )
  ObjectPropertyAssertion( :supervises :DrBoffin :Bob )
  ObjectPropertyAssertion( :worksAt :DrBoffin :UF )

  EquivalentClasses( :Student ObjectHasSelf( :r1 ))
  EquivalentClasses(
    ObjectHasSelf( :r2 )
    ObjectSomeValuesFrom( :worksAt :University ))
  SubObjectPropertyOf(
    ObjectPropertyChain( :r2 :supervises :r1 ) :professorOf )

  DLSafeRule(Body(ObjectPropertyAtom( :professorOf Variable( ?x ) Variable( ?y )))
             Head(ObjectPropertyAtom( :instructorOf Variable( ?x ) Variable( ?y ))))
)

По сути, часть OWL пытается выразить такое правило:

worksAt(x, y), University(y), supervises(x, z), Student(z) -> professorOf(x, z)

используя цепочку собственности иrolification методы:

Часть SWRL является:

professorOf(x, y) -> instructorOf(x, y)

Ожидаемый результат должен содержать какObjectPropertyAssertion( :professorOf :DrBoffin :Bob ) а такжеObjectPropertyAssertion( :instructorOf :DrBoffin :Bob ), Тем не менее, фактический вывод (показывает только свойства объекта)

ObjectPropertyAssertion( :r1 :Bob :Bob )
ObjectPropertyAssertion( :professorOf :DrBoffin :Bob )
ObjectPropertyAssertion( :r2 :DrBoffin :DrBoffin )
ObjectPropertyAssertion( :supervises :DrBoffin :Bob )
ObjectPropertyAssertion( :worksAt :DrBoffin :UF)

Почему не отображается ожидаемый результат SWRL? Какие-либо предложения?

Ответы на вопрос(1)

Ваш ответ на вопрос