Skip to content

Instantly share code, notes, and snippets.

@gtfierro
Created May 11, 2021 23:08
Show Gist options
  • Save gtfierro/9ffa1b5a4a4fc41bd5a58bf979a0bac2 to your computer and use it in GitHub Desktop.
Save gtfierro/9ffa1b5a4a4fc41bd5a58bf979a0bac2 to your computer and use it in GitHub Desktop.
@prefix bot: <https://w3id.org/bot#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
:room1 a brick:Conference_Room .
:room2 a brick:Kitchen .
:room3 a brick:Office .
:luminaire1 a brick:Luminaire ;
brick:feeds :zone1 .
:luminaire2 a brick:Luminaire ;
brick:feeds :zone1 .
:luminaire3 a brick:Luminaire ;
brick:feeds :zone1 .
:zone1 a brick:Lighting_Zone ;
brick:hasPart :room1, :room2 ;
bot:intersectsZone :room3 ;
.
:occ_sensor_1 a brick:Occupancy_Sensor ;
brick:isPointOf :luminaire1, :room1, :zone1 ;
.
:occ_sensor_2 a brick:Occupancy_Sensor ;
brick:isPointOf :luminaire1, :room1, :zone1 ;
.
# OPTION 1: representing control schedule
brick:Occupancy_Lighting_Zone rdfs:subClassOf brick:Lighting_Zone . # inside Brick
:zone2 a brick:Occupancy_Lighting_Zone ;
brick:hasPart :room1 ;
.
# OPTION 2:
:zone3 a brick:Lighting_Zone ;
brick:hasPart :room2 ;
brick:controlSchedule "some text string of the control logic?" ;
brick:controlSchedule <reference to another entity in the graph that represents the schedule>;
brick:triggeredBy :occ_sensor_1 ;
.
:room1 a brick:Conference_Room .
:zone1 a brick:Lighting_Zone ;
brick:hasPart :room1 .
:luminaire1 a brick:Luminaire ;
brick:hasPoint :occ_sensor_1 ;
brick:hasLocation :room1 ;
brick:feeds :zone1 ;
.
:occ_sensor_1 a brick:Occupancy_Sensor ;
brick:isPointOf :room1 .
:luminaire2 a brick:Luminaire ;
brick:hasPoint :occ_sensor_2 ;
brick:hasLocation :room1 ;
brick:feeds :zone1 ;
.
:occ_sensor_2 a brick:Occupancy_Sensor ;
brick:isPointOf :room1 ;
.
:occ_sensor_3 a brick:Occupancy_Sensor ;
brick:isPointOf :room1 .
# option 1:
:luminaire1 brick:hasPoint :occ_sensor_1, :occ_sensor_2 ;
brick:feeds :zone1 ;
brick:hasLocation :room1 .
:luminaire2 brick:hasPoint :occ_sensor_1, :occ_sensor_2 ;
brick:feeds :zone1 ;
brick:hasLocation :room1 .
# option 2:
:zone1 brick:hasPoint :occ_sensor_1, :occ_sensor_2 ;
brick:isFedBy :luminaire1, :luminaire2 .
:luminaire1 brick:hasLocation :room1 .
:luminaire2 brick:hasLocation :room1 .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment