Как заставить разум "начать" с города А и получить остальные города, которые связаны переходной собственностью - PullRequest
0 голосов
/ 16 января 2019

Я строю онтологию в Протеже.В этом примере у меня есть 7 человек класса "City" (от "City_A" до "City_G" (с севера на юг)).Я хочу создать классы ('CitysNorthOf_D'), в которых будут отображаться только отдельные лица StartCity (это подкласс City) и все лица, расположенные к северу (выше) от StartCity (City_E, City_F и City_G).В настоящей онтологии у меня больше городов и свойств.Это только один пример, показывающий проблему:

Class view

Property view

Individuals view

Примеры свойств объекта:

  1. 'дорога': переходная + симметричная (но для этой проблемы нет цели)
  2. 'юг': Переходный (связь одного отдельного «города» с индивидуальным «городом» под текущим индивидуумом. Например, «Город_А» имеет: юг = город_Б.
  3. «север»: переходный (то же самое, что и «юг», но связывает город выше)..

То, что я хочу сделать, - это разные классы, которые ищут города в разных условиях (аксиомы). Все они используют Transitive в свойствах, чтобы связать города вместе, и все классы «запускаются» из индивидуума, который имеетподкласс 'StartCity' (из 'City'). С помощью свойств, которые связывают различные города вместе (например, для свойств ссылок: юг, север, тип дороги, расстояние и т. д., а также для городов: размер, тип (город, деревня, пригород)и т. д.).

Примеры классов и их условияns:

  1. Все города, расположенные к северу от стартового города. *
  2. То же, что и выше, но только в два этапа (все города расположены в двух или менее городах к северу от стартового города. *
  3. Все города, в которые можно добраться по автомагистрали (в этом примере не добавлен тип дороги). *
  4. Все города, в которые можно добраться, не проходя через большой город (размер).*

* = Все классы начинаются с начальный город , помеченный подклассом для города с именем 'Start_City'

Хотите, чтобы эти классы работали независимо друг от друга.Но когда я делаю два класса со следующим в «Эквивалентном»: «StartCity или Город, который южнее некоторого StartCity», работает только один класс (последний).

Я попробовал выполнить следующее в «Эквивалент»:

StartCity or City that south some StartCity

Показывает нужных лиц в списке «Экземпляры» представления «Описание» для класса.

Но ... Если я добавлю новый класс с точно такой же аксиомой.Оба класса не работают.Только последний.Класс работает отдельно, но не тогда, когда существуют другие подобные классы.

Я просто хочу использовать аксиомы в классах, чтобы сделать это.

Что я не так?Является ли это возможным?Или я неправильно понял, как использовать аксиомы в классах, или я должен проверить класс по-другому?

...