2015-08-17 2 views
4

Я создал онтологию с использованием Protege 5-beta-17. В моей онтологии У меня есть несколько классов:Добавление нескольких доменов в objectProperty в Protege 5

Mountain, Lake, Location etc... 

У меня также есть свойство объекта:

hasLocation. 

Для этого свойства объекта я установить диапазон класс «Location» и домен " Горы "и" Озеро ".

При попытке просмотреть онтологию с помощью инструмента CMAP это показывает, что только

"Mountain" "hasLocation" "Location". 

Класс «Озеро» представлен без «hasLocation» объекта недвижимости.

Я сделал что-то не так? Руда, я делаю что-то еще в Протеге?

+0

Был ли у вас взгляд на OWL/XML (или что бы вы его не сохранили) и проверил, существуют ли там два домена? –

+1

Да, я видел файл. Домены, где есть. – whitefang1993

+1

Но в Cmap только один из них появляется. – whitefang1993

ответ

7

Я выяснил, в чем проблема.

При добавлении домена/диапазон на объект недвижимости в протеже вы должны нажать следующие кнопки и выбрать один из классов:

enter image description here

Если вы хотите добавить еще один домен/диапазон, просто нажмите одну из кнопок снова и добавить другой класс. Если вы делаете это так, рассказываете Protege, что домен/диапазон вашего свойства объекта является ИНТЕРЕСОМ из двух классов. Это означает, что человек, который займет область/диапазон, - это ИНСТАНЦИЯ ОБОИХ КЛАССОВ И НЕ ИСКЛЮЧИТЕЛЬНО ОДНОГО ИЗ ИХ. Это была моя ошибка. Я добавлял классы в домен неправильно.

Итак ... Правильный способ для добавления нескольких отдельных доменов для свойства объекта заключается в следующем:

Просто нажмите кнопку домена/диапазон снова и выберите вкладку «Редактор выражений класса»: enter image description here

И в «Редакторе выражения класса» введите в своих классах следующее: «ClassA или ClassB или ClassC или ...».

В моем случае это была «Гора или озеро».

После этого нажмите «ОК» и это.

+0

Да, это правильная процедура. – Ignazio

+2

Это правильный способ выполнить то, что вы пытаетесь сделать, но я бы придумал описание. Если свойство P имеет класс D в качестве области, то всякий раз, когда мы имеем утверждение P (x, y), мы можем заключить, что x является экземпляром D. Если P имеет несколько доменов, скажем D1 и D2, то из P (x, y) мы можем заключить, что x является одновременно D1 и является D2. Это то, что происходит, если P имеет несколько доменов. То, что вы на самом деле пытаетесь сделать, это добавить * single * domain, который является классом union. Если P имеет союзный класс «(D1 или D2)» как область, то из P (x, y) мы можем заключить, что x является «(D1 или D2)». Это * единый * домен. –