Ограничение онтологии свойства объекта в Протеже
Я создал онтологию в Protege 5.2, и теперь я пытаюсь правильно создать свойства объекта моих соответствующих классов. Вот фрагмент моей UML-диаграммы, в соответствии с которой я построил свою онтологию: Фрагмент моей онтологии
Что касается свойства объекта isLocated, они характеризуются следующим образом: если узел X имеет значение SITE Z, и такое же значение Z появляется в SITEIST местоположения Y, тогда узел X находится в местоположении Y.
Должен ли я изучить правила SWRL или есть какой-то способ кодировать это без необходимости идти туда?
Спасибо, ребята, заранее!
1 ответ
В SWRL вы можете добиться этого просто:
locationHasSiteIst(?l, ?s) ^ nodeHasSite(?n, ?s) -> nodeLocatedInLocation(?n, ?l)
Если вы хотите сделать это в OWL, вам нужно сделать locationHasSiteIst
а также nodeHasSite
как свойства объекта, и Site
в качестве класса вместо типа данных вы можете использовать цепочку и включение свойств объекта в Protege следующим образом:
nodeHasSite o inverse(locationHasSiteIst) SubPropertyOf nodeLocatedInLocation
Последняя строка означает, что если узел n1
находится в site1
и местоположение l1
находится в s1
ну тогда n1
находится в l1
,