В Protege вы можете достичь этого, добавив аксиому общего класса:
hasDisease some Prostate_Cancer SubClassOf: Male
Тогда всякий раз, когда у вас есть человек с заболеванием, которым является рак простаты, рассуждатель будет делать вывод, что этот человек является Male
.
Вы можете смоделировать это как
hasDisease some Prostate_Cancer SubClassOf: hasGender some Male
, как предположил @StanislavKralin, но тогда рассуждатель не будет делать вывод, что человек Male
, когда у него рак простаты. Причина этого в два раза:
(1) Ограничения домена и диапазона просто указывают, что всякий раз, когда через это свойство связаны два человека, первый человек будет иметь тип того, что указано в домене, а второй - того типа, который указан как диапазон.
(2) На самом деле онтология имеет бесконечно много выводов. Быть пригодными для использования инструментами не может обеспечить бесконечные выводы. Следовательно, такие инструменты, как Protege, предоставляют только выводы, для которых существуют именованные классы, например, Male
. Такие классы, как hasGender some Male
, называются анонимными классами и не отображаются как выводы.