Azure / opendigitaltwins-building

Open Digital Twins Definition Language (DTDL) RealEstateCore Ontology
MIT License
155 stars 44 forks source link

Creating Occupancy Zone in the REC ontology #33

Closed akshayj-MSFT closed 3 years ago

akshayj-MSFT commented 3 years ago

Just like HVAC Zone, we need Occupancy Zone in Real Estate Core ontology

erikoskarwallin commented 3 years ago

@akshayj-MSFT What is an "Occupancy Zone"? What are you trying to describe? A zone that is occupied (state)?

rszcodronski commented 3 years ago

@erikoskarwallin Occupancy Zone is a spatial area where devices are monitoring or reporting on the concept of Occupancy (motion sensors, people counters, cameras, etc.). Very much like HVAC Zones, Occupancy zones have a many-to-many relationship with Rooms so you could have OccupancyZone isPartOf Room or Room isPartOf OccupancyZone.

akshayj-MSFT commented 3 years ago

@akshayj-MSFT What is an "Occupancy Zone"? What are you trying to describe? A zone that is occupied (state)?

Occupancy Zone are defined by People occupying a space. So "Lobby Area" is an occupancy zone. The space outside an Elevator is an Occupancy Zone where the building owner wants to measure wait time..

erikoskarwallin commented 3 years ago

@rszcodronski - I would suggest that we use Zone and attach state=occupied (when we nail down exactly what we will call the different states). And if you need more precision, model the area that an occupancy sensor is covering (OccupancySensor#ID observes Zone#ID or Room#ID or Geometry, etc). Wouldn't you need very many different subclasses of Zone? HeatingZone, CleaningZone, etc. Do we not get a fragmented approach where we cover just the Zone types that we have at hand right now? What would the use case be of OccupancyZone in an application on top of ADT - 1. That we have an observation "occupancy" as a binary state for a specific zone. Then we need to have the OccupancyZone specified (as you say as an aggregate of several rooms or part of a room). What do we gain by using the specific OccupancyZone compared to use the Zone? (if we however needs to attach an observation to the OccupancyZone). Could you explain what how it should be used in an application?

erikoskarwallin commented 3 years ago

@akshayj-MSFT "Occupancy Zone are defined by People occupying a space. So "Lobby Area" is an occupancy zone. The space outside an Elevator is an Occupancy Zone where the building owner wants to measure wait time.."

Then you need to define every room in a building as OccupancyZone where you have a sensor? Isn't that very much extra job? What would you gain?

Why wouldn't you attribute to Room (or Zone) hasState Occupied (note: we need to sort out state usage). Same for wait/dwell-time, numberOfPeople, ...

But I think it makes it hard for a developer to understand that you should use/define an OccupancyZone when you are measuring Occupancy and why you wouldn’t add that state to a room or [any] Zone. My experience is that the one’s consuming the data from a digital twin platform are software developers with little or no insight into the legacy BMS-world.

This is not a hill I want to die on :-) I will not oppose adding OccupancyZone as a subclass to Zone if that is very important to you.

akshayj-MSFT commented 3 years ago

@erikoskarwallin - it might be worth getting on a quick call about this. OccupancyZone is not a not a "state" - its a Space interface that is not covered by Zone , and is needed because vendors like Vergesense and Innerspace have that concept when they report people count information about a certain space (which is defined by their "Space Partitions").

We need to have a mapping of what they send data for in our ontology.