Поддерживает ли SWRL классическое отрицание в Protege? - PullRequest
0 голосов
/ 18 января 2020

Я хотел попробовать следующее правило:

(not Person)(?x) -> NonHuman(?x), которое предоставлено здесь - https://github.com/protegeproject/swrlapi/wiki/SWRLLanguageFAQ#does -swrl-support-classic-negation

и я получил это: enter image description here

Поддерживается ли классическое отрицание в Protege 5.5.0? Если да, как я могу сделать следующее правило в порядке? Заранее спасибо!

1 Ответ

2 голосов
/ 19 января 2020

С https://github.com/protegeproject/swrlapi/issues/63:

К сожалению, синтаксический анализатор SWRLAPI не поддерживает выражения класса OWL в правилах.
Нет временной шкалы для их включения.

К счастью, можно использовать представление «Правила» (Windows> Представления> Представления онтологий> Правила ):

Rule: (not Person)(?x) -> NonHuman(?x) анализируется правильно и работает как задумано .


На самом деле вам не нужен SWRL в этом частном случае. Просто напишите (not Person) SubClassOf NonHuman в разделе Общие аксиомы класса или сначала определите NonPerson, если вам не нравятся аксиомы GCI.

Не забудьте о OWA.

...