问题描述
我使用的是根据 RealEstateCore ontology 定义的 DTDL 模型。我希望能够添加描述 ElevatorRoom
双胞胎位于建筑物中的哪个级别的数据。当前模型不包含该信息,扩展 Room
的 Space
和 ElevatorRoom
模型也不包含该信息。
我的问题是定义级别信息的最佳方法是什么?当电梯在楼层之间移动时,该数据通常会频繁更新。我可以看到至少两个我正在考虑的替代方案:
- 当前的
ElevatorRoom
已扩展,并且新的 levelId 属性已添加到扩展模型中。 levelId 可以是级别编号或对应于特定的级别孪生 ID。 -
使用 RelationShip 定义
ElevatorRoom
所在的位置。例如,ElevatorRoom
具有isPartOf
和isLocationOf
关系,可用于将其链接到与电梯当前所在层对应的某个Level
孪生对象。
那么您推荐使用哪一个,或者有比选项 1 和选项 2 更好的方法吗?
解决方法
我认为您误解了本体 - ElevatorRoom
肯定不会移动。
据我所知,Elevator
在 ElevatorShaft
中移动,作为 asset
,它已经有了 locatedIn
- 与空间的关系,例如Level
。 ElevatorRoom
可能是电梯的维修室。
您可以对它进行建模,使电梯有两个 locatedIn
-关系,一个与楼层相关,一个与电梯井道相关。或者,还有一个 serves
-Relation 你可以像这样使用 Elevator -serves-> ElevatorShaft
和 Elevator -locatedIn->Level
最好的问候 塞巴斯蒂安