我要表达这一点:
曼彻斯特到伦敦的距离是335公里。
我已经创建了班级城市,现在我正在考虑使用Domain City和Range City创建和对象属性具有距离。
但是我在哪里可以声明它的真实距离?
答案 0 :(得分:2)
这实际上是n-ary relation的一个示例。在这种情况下,关系被建模为类而不是属性。为此,让我们假设我们引入了一个类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