Design
Research
Resources
Contact
To run the demo, load the Individuals ontology (which can be found here) into your favorite triplestore that is able to run SPARQL queries. With the latest additions to our main ontology, some of these queries now require nontrivial reasoning. This means that they must be executed in “Snap SPARQL Query” instead of Protégé’s built-in SPARQL query feature. Additionally, we’re still investigating a problem with running Pellet on our ontology, so we recommend that you activate HermiT before executing a query.
Full screen mode is available here
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX iem: <https://tw.rpi.edu/ontology-engineering/oe2022/indoor-environment-manager/>
PREFIX ind: <https://tw.rpi.edu/ontology-engineering/oe2022/indoor-environment-manager-individuals/>
How to meet all requirements of the multiple occupants’ comfort ranges in an office room? There are three occupants who prefer temperatures in the range of 73°F to 77°F, 74°F to 78°F, and 75° to 78°F, respectively. All other factors are already ideal. The outdoor temperature is 18°F. The current HVAC thermostat setting is 75°F, which is the current indoor temperature. An electric space heater is available but is currently switched off.
This query shouldn’t return any results because in the relevant competency question, the current environment is already ideal. Therefore, no actions need to be suggested or taken.
SELECT DISTINCT ?roomComponent ?newState WHERE {
?roomComponent iem:isComponentOf ind:Question2Room .
?roomComponent iem:hasAvailableAction ?action .
?action iem:causesNewState ?newState .
?action iem:produces ?resultantEnvironment .
?resultantEnvironment iem:hasAirTemperatureSign ?airTemperatureSign .
ind:Question2EnvironmentTarget iem:hasAirTemperatureSign ?airTemperatureSign .
}
?roomComponent | ?newState |
---|---|
How should IEQ parameters, such as temperature, humidity, airflow, etc., be changed to make the multiple occupants feel comfortable in a living room during summer? The occupants’ profile is a 26-year-old daughter typing something on his laptop (metabolic rate: 1.1, Long-sleeve coveralls, t-shirt: 0.72 clo), a 59-year-old mother dancing (metabolic rate: 3.4, Long-sleeve coveralls, t-shirt: 0.72 clo), and a 32-year-old son cleaning the house (metabolic rate: 2.7, Long-sleeve coveralls, t-shirt: 0.72 clo). The outdoor weather is 89°F, relative humidity is 70%, and outdoor air quality index is 34, ‘Good’. Indoor temperature is 85°F and relative humidity is 67%. A fan and a dehumidifier are available.
This query looks for two different actions: one to change the air speed and one to change the relative humidity. Each action must be available for a particular room component that’s, in turn, part of the room individual that’s associated with the relevant competency question. The actions are selected by ensuring that they produce respective resultant environments with the same environment attribute delta signs as the target environment.
SELECT DISTINCT ?airSpeedRoomComponent ?airSpeedNewState ?relativeHumidityRoomComponent ?relativeHumidityNewState WHERE {
?airSpeedRoomComponent iem:isComponentOf ind:Question4Room .
?airSpeedRoomComponent iem:hasAvailableAction ?airSpeedAction .
?airSpeedAction iem:causesNewState ?airSpeedNewState .
?airSpeedAction iem:produces ?airSpeedResultantEnvironment .
?airSpeedResultantEnvironment iem:hasAirSpeedSign ?airSpeedSign .
ind:Question4EnvironmentTarget iem:hasAirSpeedSign ?airSpeedSign .
?relativeHumidityRoomComponent iem:isComponentOf ind:Question4Room .
?relativeHumidityRoomComponent iem:hasAvailableAction ?relativeHumidityAction .
?relativeHumidityAction iem:causesNewState ?relativeHumidityNewState .
?relativeHumidityAction iem:produces ?relativeHumidityResultantEnvironment .
?relativeHumidityResultantEnvironment iem:hasRelativeHumiditySign ?relativeHumiditySign .
ind:Question4EnvironmentTarget iem:hasRelativeHumiditySign ?relativeHumiditySign .
}
?airSpeedRoomComponent | ?airSpeedNewState | ?relativeHumidityRoomComponent | ?relativeHumidityNewState |
---|---|---|---|
ind:Question4Fan | iem:On | ind:Question4Dehumidifier | iem:On |
In a small gym, three people are working out. 22-year-old male Jason walking on a treadmill lifting 45kg bars (metabolic rate: 4.0, wearing shorts & short-sleeve shirt: 0.36 clo), 44-year-old male Bob seated with heavy limb movement (metabolic rate: 2.2, wearing typical summer indoor clothing: 0.5 clo), and 52-year-old female Sarah walking on a treadmill with 3 mph (metabolic rate: 3.8, wearing a short-sleeve shirt: 0.57 clo). How should IEQ parameters, such as temperature, humidity, airflow, etc., be changed to make the multiple occupants feel comfortable in a gym? Indoor air-speed is 0.3m/s, outdoor air-speed is 2m/s, and outdoor air quality index is 38, ‘Good’. An air conditioner is available, and windows are closed.
This query looks for a single action to change the air speed. The action must be available for a particular room component that’s, in turn, part of the room individual that’s associated with the relevant competency question. The action is selected by ensuring that it produces a resultant environment with the same air speed environment attribute delta sign as the target environment. The query also requires that the resultant environment have a “good” air quality level, which is inferred by the reasoner from the fact that opening a window must produce a resultant environment with the same air quality level as the relevant outdoor environment.
SELECT DISTINCT ?airSpeedRoomComponent ?airSpeedNewState WHERE {
?airSpeedRoomComponent iem:isComponentOf ind:Question5Room .
?airSpeedRoomComponent iem:hasAvailableAction ?airSpeedAction .
?airSpeedAction iem:causesNewState ?airSpeedNewState .
?airSpeedAction iem:produces ?airSpeedResultantEnvironment .
?airSpeedResultantEnvironment iem:hasAirQualityLevel iem:AirQualityLevelGood .
?airSpeedResultantEnvironment iem:hasAirSpeedSign ?airSpeedSign .
ind:Question5EnvironmentTarget iem:hasAirSpeedSign ?airSpeedSign .
}
?airSpeedRoomComponent | ?airSpeedNewState |
---|---|
ind:Question5Window | iem:Open |
In a room, only one occupant sits on a chair. Does this occupant feel comfortable? The occupant has a preferred temperature range of 72°F to 80°F, a preferred humidity range of 28% to 40%, and a maximum sound pressure level of 50 dBA in the room. The room temperature is 75°F, the relative humidity is 35%, and the sound pressure level is 64 dBA.
This query corresponds with competency question 6 in the use-case document. Given a specific room, it returns the occupants whose corresponding comfort ranges include the environment values and who therefore currently feel comfortable. Since there are no currently comfortable occupants in competency question 6, this query intentionally returns no results.
SELECT ?occupant WHERE {
?occupant iem:occupies ind:Question6Room .
?occupant iem:hasAirTemperatureComfortRangeLowerBound ?airTemperatureLowerBound .
?occupant iem:hasRelativeHumidityComfortRangeLowerBound ?relativeHumidityLowerBound .
?occupant iem:hasAirTemperatureComfortRangeUpperBound ?airTemperatureUpperBound .
?occupant iem:hasRelativeHumidityComfortRangeUpperBound ?relativeHumidityUpperBound .
?occupant iem:hasAcousticComfortRangeUpperBound ?soundPressureUpperBound .
ind:Question6EnvironmentCurrent iem:hasAirTemperatureValue ?airTemperatureValue .
ind:Question6EnvironmentCurrent iem:hasRelativeHumidityValue ?relativeHumidityValue .
ind:Question6EnvironmentCurrent iem:hasSoundPressureValue ?soundPressureValue .
FILTER(?airTemperatureValue <= ?airTemperatureUpperBound) .
FILTER(?airTemperatureValue >= ?airTemperatureLowerBound) .
FILTER(?relativeHumidityValue <= ?relativeHumidityUpperBound) .
FILTER(?relativeHumidityValue >= ?relativeHumidityLowerBound) .
FILTER(?soundPressureValue <= ?soundPressureUpperBound) .
}
?occupant |
---|
In a small office space with three occupants, who are currently comfortable? Occupant 1 has a preferred temperature range of 64°F to 68°F, prefers lower humidity (25% to 35%), and enjoys a light breeze (1 m/s to 2 m/s). Occupant 2 has a preferred temperature range of 70°F to 75°F, is comfortable in varied humidity (30% to 40%), and likes a light to moderate breeze (1 m/s to 3 m/s). Occupant 3 has a preferred temperature range of 68°F to 74°F, is comfortable in most humidity settings (30% to 50%), and prefers no breeze (0 m/s to 1 m/s). The office temperature is 70°F, the relative humidity is 30%, and the air speed is 2 m/s.
This query corresponds with competency question 7 in the use-case document. Given a specific room, it returns the occupants whose corresponding comfort ranges include the environment values and who therefore currently feel comfortable.
SELECT ?occupant WHERE {
?occupant iem:occupies ind:Question7Room .
?occupant iem:hasAirSpeedComfortRangeLowerBound ?airSpeedLowerBound .
?occupant iem:hasAirTemperatureComfortRangeLowerBound ?airTemperatureLowerBound .
?occupant iem:hasRelativeHumidityComfortRangeLowerBound ?relativeHumidityLowerBound .
?occupant iem:hasAirSpeedComfortRangeUpperBound ?airSpeedUpperBound .
?occupant iem:hasAirTemperatureComfortRangeUpperBound ?airTemperatureUpperBound .
?occupant iem:hasRelativeHumidityComfortRangeUpperBound ?relativeHumidityUpperBound .
ind:Question7EnvironmentCurrent iem:hasAirTemperatureValue ?airTemperatureValue .
ind:Question7EnvironmentCurrent iem:hasAirSpeedValue ?airSpeedValue .
ind:Question7EnvironmentCurrent iem:hasRelativeHumidityValue ?relativeHumidityValue .
FILTER(?airTemperatureValue <= ?airTemperatureUpperBound) .
FILTER(?airTemperatureValue >= ?airTemperatureLowerBound) .
FILTER(?airSpeedValue <= ?airSpeedUpperBound) .
FILTER(?airSpeedValue >= ?airSpeedLowerBound) .
FILTER(?relativeHumidityValue <= ?relativeHumidityUpperBound) .
FILTER(?relativeHumidityValue >= ?relativeHumidityLowerBound) .
}
?occupant |
---|
Question7Occupant2 |
In an office room, an occupant is working on a computer. Indoor luminous intensity at the desk surface is 8 foot-candles (fc), and the lighting is turned off. How should IEQ parameters be changed to make the occupant visually feel comfortable in the room?
This query looks for a single action to change the luminosity. Given a specific room whose luminosity is out of the occupant’s comfort range, the action is selected by ensuring that it produces a resultant environment with the same luminosity environment attribute delta sign as the target environment.
SELECT DISTINCT ?luminosityRoomComponent ?luminosityNewState WHERE {
?luminosityRoomComponent iem:isComponentOf ind:Question8Room .
?luminosityRoomComponent iem:hasAvailableAction ?luminosityAction .
?luminosityAction iem:causesNewState ?luminosityNewState .
?luminosityAction iem:produces ?luminosityResultantEnvironment .
?luminosityResultantEnvironment iem:hasLuminositySign ?luminositySign .
ind:Question8EnvironmentTarget iem:hasLuminositySign ?luminositySign .
}
?luminosityRoomComponent | ?luminosityNewState |
---|---|
ind:Question8Lighting | iem:On |