«Игнорирование транзитивности и/или сложных аксиом подсвойств»

Я пытаюсь смоделировать свойство, которое является транзитивным, асимметричным и иррефлексивным. Я понимаю, что рассуждения OWL не поддерживают эту сложную взаимосвязь.

Однако есть ли способ «обмануть» мыслителя? Я хочу использовать это для целей проверки, поэтому я также пробую правила SWRL (1), но правило не работает (что имеет смысл, причина та же).

(1) isBaseFor(?y1, ?y2) ^ isBaseFor(?y2, ?y3) -> isBaseFor(?y2, ?y3)

Я подумываю об использовании SQWRL, однако это проверка, аналогичная SHACL или SPARQL (это означает, что мне нужно запускать запрос проверки отдельно, чего я пытаюсь избежать).

Есть идеи?

1 ответ

«Хитрость» заключается в том, чтобы создатьisBaseForкак иррефлексивный и асимметричный (без переходной характеристики) и добавьте правило SWRL для переходной характеристики. Вот манчестерский синтаксис:

      ObjectProperty: isBaseFor
    Characteristics: 
    Irreflexive,
    Asymmetric
       
Individual: y1
    Facts:  
     isBaseFor  y2
    
Individual: y2
    Facts:  
     isBaseFor  y3
   
Individual: y3

    
DifferentIndividuals: 
    y1,y2,y3

Rule: 
    isBaseFor(?y1, ?y2), isBaseFor(?y2, ?y3) - isBaseFor(?y1, ?y3)

Это правильно выдаст несоответствия для:

  • иisBaseFor(y2, y1)из-за асимметричной характеристики.
  • isBaseFor(y3, y3)из-за иррефлексивной характеристики.

Он правильно выведет транзитивное отношение на основе правила SWRL с учетом утверждений.isBaseFor(y1, y2)иisBaseFor(y2, y3).

Другие вопросы по тегам