Я строю онтологию в Протеже.В этом примере у меня есть 7 человек класса "City" (от "City_A" до "City_G" (с севера на юг)).Я хочу создать классы ('CitysNorthOf_D'), в которых будут отображаться только отдельные лица StartCity (это подкласс City) и все лица, расположенные к северу (выше) от StartCity (City_E, City_F и City_G).В настоящей онтологии у меня больше городов и свойств.Это только один пример, показывающий проблему:
Примеры свойств объекта:
- 'дорога': переходная + симметричная (но для этой проблемы нет цели)
- 'юг': Переходный (связь одного отдельного «города» с индивидуальным «городом» под текущим индивидуумом. Например, «Город_А» имеет: юг = город_Б.
- «север»: переходный (то же самое, что и «юг», но связывает город выше)..
То, что я хочу сделать, - это разные классы, которые ищут города в разных условиях (аксиомы). Все они используют Transitive в свойствах, чтобы связать города вместе, и все классы «запускаются» из индивидуума, который имеетподкласс 'StartCity' (из 'City'). С помощью свойств, которые связывают различные города вместе (например, для свойств ссылок: юг, север, тип дороги, расстояние и т. д., а также для городов: размер, тип (город, деревня, пригород)и т. д.).
Примеры классов и их условияns:
- Все города, расположенные к северу от стартового города. *
- То же, что и выше, но только в два этапа (все города расположены в двух или менее городах к северу от стартового города. *
- Все города, в которые можно добраться по автомагистрали (в этом примере не добавлен тип дороги). *
- Все города, в которые можно добраться, не проходя через большой город (размер).*
* = Все классы начинаются с начальный город , помеченный подклассом для города с именем 'Start_City'
Хотите, чтобы эти классы работали независимо друг от друга.Но когда я делаю два класса со следующим в «Эквивалентном»: «StartCity или Город, который южнее некоторого StartCity», работает только один класс (последний).
Я попробовал выполнить следующее в «Эквивалент»:
StartCity or City that south some StartCity
Показывает нужных лиц в списке «Экземпляры» представления «Описание» для класса.
Но ... Если я добавлю новый класс с точно такой же аксиомой.Оба класса не работают.Только последний.Класс работает отдельно, но не тогда, когда существуют другие подобные классы.
Я просто хочу использовать аксиомы в классах, чтобы сделать это.
Что я не так?Является ли это возможным?Или я неправильно понял, как использовать аксиомы в классах, или я должен проверить класс по-другому?