На самом деле это пример n-арного отношения . В таком случае отношение моделируется как класс, а не как свойство. Для этого предположим, что мы вводим класс DistanceBetweenTwoCities
. Следовательно, один из способов смоделировать это следующим образом:
Class: City
Class: DistanceBetweenTwoCities
ObjectProperty: hasCity1
Domain: DistanceBetweenTwoCities
Range: City
ObjectProperty: hasCity2
Domain: DistanceBetweenTwoCities
Range: City
DataProperty: hasDistance
Domain: DistanceBetweenTwoCities
Range: xsd:integer
Чтобы указать расстояние между Лондоном и Манчестером:
Individual: distanceLondonToManchester
Types:
DistanceBetweenTwoCities
Facts:
hasCity1 london,
hasCity2 manchester,
hasDistance 335
Individual: london
Types: City
Individual: manchester
Types: City
Примечание: Строго говоря, нет необходимости вводить два разных свойства hasCity1
и hasCity2
. Мы могли бы использовать только hasCity
. Я только ввел 2 свойства, чтобы сделать n-арное отношение немного более очевидным.
Обновление 20190320
Если у вас есть другое расстояние, которое вы должны представить, вы можете добавить еще одного человека типа DistanceBetweenTwoCities
:
Individual: distanceLondonToAthens
Types:
DistanceBetweenTwoCities
Facts:
hasCity1 london,
hasCity2 athens,
hasDistance 3000
Individual: athens
Types: City