Protege: ограничения домена собственности, используя другие свойства - PullRequest
0 голосов
/ 06 мая 2018

Я создаю свою первую онтологию с помощью Protege 5.2, и у меня возникают некоторые проблемы.

Допустим, у меня есть следующие классы:

Gender с подклассами Female и Male

Human с подклассами Patient и Doctor

Disease с подклассом Cancer с подклассом Prostate_Cancer

и свойства:

hasDisease (домен: Patient, диапазон: Disease)

hasGender (домен: Patient, диапазон: Gender)

Теперь я хочу указать, что Patient, кто hasDisease Prostate_Cancer, является Patient, который также hasGender Male.

Возможно ли это без создания новых классов?

1 Ответ

0 голосов
/ 07 мая 2018

В 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, называются анонимными классами и не отображаются как выводы.

...