@prefix :      <http://elite.polito.it/ontologies/dogont.owl#> .
@prefix protege: <http://protege.stanford.edu/plugins/owl/protege#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix xsp:   <http://www.owl-ontologies.com/2005/08/07/xsp.owl#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix swrl:  <http://www.w3.org/2003/11/swrl#> .
@prefix owl2xml: <http://www.w3.org/2006/12/owl2-xml#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix swrlb: <http://www.w3.org/2003/11/swrlb#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix gr:    <http://purl.org/goodrelations/v1#> .
@prefix cc:    <http://creativecommons.org/ns#> .

:Fridge  a                owl:Class ;
        rdfs:comment      "A refrigerator in which the coolant is pumped around by an electric motor"^^xsd:string ;
        rdfs:label        "Fridge"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperCoolingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperCoolingNotificationFunctionality
                          ] ;
        owl:disjointWith  :WashingMachine , :Stove , :Oven .

:AccessControlSystem  a   owl:Class ;
        rdfs:comment      "System that provides security about access"^^xsd:string ;
        rdfs:label        "AccessControlSystem"^^xsd:string ;
        rdfs:subClassOf   :SecuritySystem ;
        owl:disjointWith  :GasSystem , :FloodSystem , :FireSystem .

:Get3PhaseCurrentCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getElectricCurrentValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] .

:Computer  a              owl:Class ;
        rdfs:comment      "A machine for performing calculations automatically, work and play"^^xsd:string ;
        rdfs:label        "Computer"^^xsd:string ;
        rdfs:subClassOf   :BrownGoods ;
        owl:disjointWith  :Printer , :Fan , :Entertainment .

:InstallApplianceCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "applianceId^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "installAppliance"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:ColorStateHSB  a        owl:Class ;
        rdfs:subClassOf  :ColorState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :BrightnessStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :SaturationStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :HueStateValue
                         ] .

:Get1PhaseCurrentCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getElectricCurrentValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:DisableGasCommand  a    owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disableGas"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:ThreePhaseApparentPowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseApparentPowerMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseApparentPowerMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseApparentPowerMeasurementNotificationFunctionality
                         ] .

:ClimateScheduleFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetClimateScheduleCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetDailyClimateScheduleCommand
                         ] .

:CameraPictureImageControlFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :IncreaseColorCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DecreaseLuminosityCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DecreaseContrastCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DecreaseColorCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :IncreaseContrastCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :IncreaseLuminosityCommand
                          ] ;
        owl:disjointWith  :ThermostatControlFunctionality , :TimeRegulationFunctionality , :ShutterRegulationFunctionality , :LevelControlFunctionality , :FanControlFunctionality , :ColorControlFunctionality , :CameraPictureQualityControlFunctionality , :CameraPictureZoomPanControlFunctionality , :TunerFunctionality .

:MultiTariffSinglePhaseActiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseActiveEnergyMeasurementNotification
                         ] .

:VerticalMovementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MovingDownNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MovingUpNotification
                         ] .

:OccupancySensor  a       owl:Class ;
        rdfs:comment      "The Occupancy Sensor device reports the occupancy state of an area. Derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf   :Sensor ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PresenceNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OccupancyState
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OccupancySensingFunctionality
                          ] ;
        owl:disjointWith  :SmokeSensor , :PressureSensor , :WindowSensor , :SingleFlowSensor .

:SinglePhaseActivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseActivePowerMeasurementNotification
                         ] .

:SinglePhaseVoltageMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "lnVoltage^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newPhaseNeutralVoltageValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Floor  a                 owl:Class ;
        rdfs:comment      "The inside lower horizontal surface of a room"^^xsd:string ;
        rdfs:label        "Floor"^^xsd:string ;
        rdfs:subClassOf   :Horizontal ;
        owl:disjointWith  :Terrace .

:NetworkComponent  a     owl:Class ;
        rdfs:comment     "The manufacturers of the domotic component"^^xsd:string ;
        rdfs:label       "NetworkComponent"^^xsd:string ;
        rdfs:subClassOf  :Controllable .

:SingleValuedFunctionality
        a                 owl:Class ;
        rdfs:comment      "Discrete functionalities with exactly one value"^^xsd:string ;
        rdfs:label        "SingleValuedFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DiscreteControlFunctionality ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasCommand
                          ] ;
        owl:disjointWith  :TripleValuedFunctionality .

:pluggedIn  a               owl:ObjectProperty ;
        rdfs:domain         :Appliances ;
        rdfs:range          :PowerDelivery ;
        rdfs:subPropertyOf  owl:topObjectProperty .

rdfs:comment  a  owl:AnnotationProperty .

:PressureMeasurementNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "newPressureValue"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "pressureValue^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification , :SimpleNoMovementNotification , :SimpleMovementNotification .

:SinglePhaseCurrentMeter
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseCurrentState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseCurrentMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseCurrentMeasurementNotificationFunctionality
                         ] .

:MultipleTemperatureMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "Notifies the measurment of a temperature, through a proper temperature sensor"@en ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :TemperatureMeasurementMNotification
                         ] .

:Get3PhaseLNVoltageCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getLNVoltageValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:SinglePhaseCurrentMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseCurrentCommand
                         ] .

:StoppedHeatingCycleNotification
        a                owl:Class ;
        rdfs:subClassOf  :WashingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedHeatingCycle"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ActivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementNotificationFunctionality .

:HumiditySensor  a       owl:Class ;
        rdfs:subClassOf  :Sensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :HumidityMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :HumidityMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :HumidityMeasurementState ;
                           owl:onProperty            :hasState ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :HumidityMeasurementState
                         ] .

:SourceSelectionState
        a                 owl:Class ;
        rdfs:subClassOf   :DiscreteState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :CDStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :TunerStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :PhonoStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :AuxStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :Tape1StateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :Tape2StateValue
                          ] ;
        owl:disjointWith  :TripleValuedState .

:SinglePhaseVoltageMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseVoltageCommand
                         ] .

:SingleTariffEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeter .

:ShutterActuator  a       owl:Class ;
        rdfs:comment      "A mechanism that allow automatic control about shutter"^^xsd:string ;
        rdfs:label        "ShutterActuator"^^xsd:string ;
        rdfs:subClassOf   :Actuator ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :UpDownRestFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :ShutterState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :VerticalNoMovementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :VerticalMovementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Shutter ;
                            owl:onProperty     :actuatorOf
                          ] ;
        owl:disjointWith  :WindowActuator .

:Siren  a                owl:Class ;
        rdfs:comment     "A device in which compressed air or steam is driven against a rotating perforated disk to create a loud, often wailing sound as a signal or warning.\n\nAn electronic device producing a similar sound as a signal or warning: a police car siren."^^xsd:string ;
        rdfs:label       "Siren"^^xsd:string ;
        rdfs:subClassOf  :Acoustic ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] .

:DoorSensor  a            owl:Class ;
        rdfs:comment      "Sensor that controls if a door is closed"^^xsd:string ;
        rdfs:label        "DoorSensor"^^xsd:string ;
        rdfs:subClassOf   :AntiIntrusionSystem , :Sensor ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OpenCloseState
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Door ;
                            owl:onProperty     :sensorOf
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :sensorOf
                          ] ;
        owl:disjointWith  :WindowSensor , :SingleFlowSensor , :InfraredSensor , :SmokeSensor , :FloodSensor , :OccupancySensor , :SurveillanceCamera , :PressureSensor , :GasSensor .

:groupAddress  a            owl:DatatypeProperty ;
        rdfs:comment        "The address of the group of the component"^^xsd:string ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :KNXNetIPComponent :KonnexCommand :KonnexComponent :KonnexNotification )
                            ] ;
        rdfs:label          "groupAddress"^^xsd:string ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :KonnexProperty .

[ a            owl:AllDisjointProperties ;
  owl:members  ( :groupAddress :hexValue :individualAddress )
] .

:HumidityMeasurementNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedRelativeHumidity"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "relativeHumidity^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification , :SimpleMovementNotification , :LevelStepUpNotification , :SimpleNoMovementNotification , :PressureMeasurementNotification , :LevelStepDownNotification .

:PlayNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :LevelNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PlayNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :TrackControlNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ForwardNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StopPlaybackNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PausePlaybackNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :RewindNotification
                         ] .

:NetworkSpecificNotification
        a                owl:Class ;
        rdfs:subClassOf  :Notification .

:NetworkOpenedNotification
        a                owl:Class ;
        rdfs:subClassOf  :ZigBeeNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "open"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :Bathroom :Bedroom :DiningRoom :Kitchen :LivingRoom :Lobby :StorageRoom )
] .

:Get3PhaseReactiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:ThreePhaseApparentPowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newApparentPowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:Heater  a               owl:Class ;
        rdfs:comment     "Device that heats water or supplies warmth"^^xsd:string ;
        rdfs:label       "Heater"^^xsd:string ;
        rdfs:subClassOf  :HeatingSystem .

owl:topDataProperty  a  owl:DatatypeProperty .

:EnableGasCommand  a     owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disableGas"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:EventNotification  a    owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "event^^Object"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newEvent"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SinglePhaseReactiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseReactiveEnergyMeasurementNotification
                         ] .

:EchelonNetworkComponent
        a                owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:SourceSelectionFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :SingleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SelectSourceCommand
                          ] ;
        owl:disjointWith  :ToggleFunctionality , :TimedOnFunctionality .

:MovementAndTemperatureSensor
        a                owl:Class ;
        rdfs:subClassOf  :SingleTemperatureSensor , :MovementSensor .

:HeatingEnergyStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:Table  a                 owl:Class ;
        rdfs:comment      "A piece of furniture having a smooth flat top that is usually supported by one or more vertical legs"^^xsd:string ;
        rdfs:label        "Table"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Wardrobe .

:CloseCommand  a          owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "close"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StopHeatingCoolingCommand , :GetCommand , :DeleteGroupCommand , :PreviousTrackCommand , :SetHourCommand , :DecreaseQualityCommand , :StandBy , :OffCommand , :SetTimeoutCommand , :GetOccupancyCommand , :RewindCommand , :PanUpCommand , :PlayCommand , :IncreaseColorCommand , :NextTrackCommand , :GoToTrackCommand , :ForwardCommand , :StoreSceneCommand , :OnFlashingCommand , :UpCommand , :IncreaseContrastCommand , :GetPressureCommand , :OnCommand , :StopPlayingCommand , :GetFlowRateCommand , :ZoomInCommand , :SetChannelCommand , :DownCommand , :RestCommand , :SetCommand , :StoreGroupCommand , :HeatCommand , :SetMinutesCommand , :GetRelativeHumidityCommand , :SetDesiredTemperature , :GrabPictureCommand , :SetSpeedCommand , :CoolCommand , :PanDownCommand , :ZoomOutCommand , :DecreaseContrastCommand , :PanLeftCommand , :StepDownCommand , :SetSecondsCommand , :StepUpCommand , :PauseCommand , :SetVolumeCommand , :TimedOnCommand , :SpeedDownCommand , :ToggleCommand , :OpenCommand , :GetTemperatureCommand , :DeleteSceneCommand , :OffFlashingCommand , :SpeedUpCommand , :IncreaseQualityCommand , :DecreaseColorCommand , :DecreaseLuminosityCommand , :PanRightCommand , :IncreaseLuminosityCommand .

:ElectricalSystem  a     owl:Class ;
        rdfs:comment     "Utility that provides electricity"^^xsd:string ;
        rdfs:label       "ElectricalSystem"^^xsd:string ;
        rdfs:subClassOf  :HousePlants .

:OccupancySensingFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionality for getting the occupancy state of a given room"@en ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GetOccupancyCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality , :PressureMeasurementFunctionality , :PictureGrabFunctionality .

:CurrentMeter  a         owl:Class ;
        rdfs:subClassOf  :ElectricityMeter .

:StopSuperHeatingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stopSuperHeating"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:hasMeter  a                owl:ObjectProperty ;
        rdfs:domain         :Controllable ;
        rdfs:range          :Meter ;
        rdfs:subPropertyOf  owl:topObjectProperty ;
        owl:inverseOf       :meterOf .

:ConfigurationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetConfigurationCommand
                         ] .

:FailureStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "failure"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Storey  a               owl:Class ;
        rdfs:subClassOf  :BuildingEnvironment ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :contains ;
                           owl:someValuesFrom  :Room
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :contains ;
                           owl:someValuesFrom  :Flat
                         ] .

:MultiTariffSinglePhaseReactiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseReactiveEnergyMeasurementNotification
                         ] .

:QueryFunctionality  a   owl:Class ;
        rdfs:comment     "Capability of a controllable building thing that must reply to an interrogation about its state"^^xsd:string ;
        rdfs:label       "QueryFunctionality"^^xsd:string ;
        rdfs:subClassOf  :Functionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasCommand
                         ] .

:DoubleValuedNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Discrete notification with exactly two values"^^xsd:string ;
        rdfs:label        "DoubleValuedNotificationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DiscreteNotificationFunctionality ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onClass               :Notification ;
                            owl:onProperty            :hasNotification ;
                            owl:qualifiedCardinality  "2"^^xsd:nonNegativeInteger
                          ] ;
        owl:disjointWith  :SingleValuedNotificationFunctionality , :NetworkNotificationFunctionality .

:SinglePhaseCurrentMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newCurrentValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:MicrowaveOven  a        owl:Class ;
        rdfs:comment     "Microwave oven"^^xsd:string ;
        rdfs:label       "MicrowaveOven"^^xsd:string ;
        rdfs:subClassOf  :Oven ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MicrowaveEmissionState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MicrowaveEmissionNotificationFunctionality
                         ] .

:SpeedNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :LevelNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SpeedStepUpNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SpeedStepDownNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SpeedControlNotification
                         ] .

:ThreePhaseApparentPowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseApparentPowerCommand
                         ] .

:LivingRoom  a           owl:Class ;
        rdfs:comment     "A room where people can sit and talk and relax"^^xsd:string ;
        rdfs:label       "LivingRoom"^^xsd:string ;
        rdfs:subClassOf  :Room .

:NotDetectedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notDetected"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:GasM3MeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newConsumedM3GasValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "consumedGasCubeMeters^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:OnOffFunctionality  a    owl:Class ;
        rdfs:comment      "Functionality: turn on - turn off"^^xsd:string ;
        rdfs:label        "OnOffFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OnCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OffCommand
                          ] ;
        owl:disjointWith  :UpDownFunctionality , :StepFunctionality , :OpenCloseFunctionality .

:ActivePushLinkAuthenticationStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "authenticating"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:SinglePhaseActiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ActiveEnergyStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] .

:OffNotification  a      owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "off"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GasMeasurementState  a  owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :GasStateValue
                         ] .

:CoolCommand  a           owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "cool"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :GetPressureCommand , :OnCommand , :PauseCommand , :SetSecondsCommand , :GetCommand , :DownCommand , :DecreaseQualityCommand , :DecreaseColorCommand , :SetTimeoutCommand , :StepDownCommand , :RestCommand , :GrabPictureCommand , :IncreaseLuminosityCommand , :SetCommand , :NextTrackCommand , :IncreaseQualityCommand , :IncreaseColorCommand , :ZoomInCommand , :StepUpCommand , :OpenCommand , :UpCommand , :GoToTrackCommand , :ZoomOutCommand , :OffFlashingCommand , :SetHourCommand , :StoreSceneCommand , :DecreaseContrastCommand , :OnFlashingCommand , :SetMinutesCommand , :RewindCommand , :StopHeatingCoolingCommand , :DecreaseLuminosityCommand , :PreviousTrackCommand , :SetDesiredTemperature , :SpeedDownCommand , :SetChannelCommand , :SetVolumeCommand , :ForwardCommand , :SetSpeedCommand , :PanDownCommand , :IncreaseContrastCommand , :SpeedUpCommand , :GetOccupancyCommand , :TimedOnCommand , :OffCommand , :DeleteSceneCommand , :StoreGroupCommand , :GetFlowRateCommand , :PanLeftCommand , :HeatCommand , :StandBy , :StopPlayingCommand , :PanUpCommand , :PlayCommand , :GetRelativeHumidityCommand , :GetTemperatureCommand , :PanRightCommand , :ToggleCommand , :DeleteGroupCommand .

:ThreePhaseActiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ActiveEnergyStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

:NonVoidCommand  a        owl:Class ;
        rdfs:subClassOf   :Command ;
        owl:disjointWith  :VoidCommand .

:ActivePowerMeter  a     owl:Class ;
        rdfs:subClassOf  :PowerMeter .

:MultipleTemperatureSensor
        a                owl:Class ;
        rdfs:comment     "Sensor that detects the temperature of the atmosphere"^^xsd:string ;
        rdfs:label       "TemperatureSensor"^^xsd:string ;
        rdfs:subClassOf  :HVACSystem , :TemperatureSensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleTemperatureMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleTemperatureMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultipleTemperatureState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasState
                         ] .

:TexasInstrumentsGateway
        a                owl:Class ;
        rdfs:subClassOf  :TexasInstrumentsComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :port
                         ] .

:StoreSceneNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification , :NetworkNotification ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "storedScene"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sceneNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementMNotification .

:Balcony  a               owl:Class ;
        rdfs:comment      "A platform projecting from the wall of a building and surrounded by a balustrade or railing or parapet"^^xsd:string ;
        rdfs:label        "Balcony"^^xsd:string ;
        rdfs:subClassOf   :Horizontal ;
        owl:disjointWith  :Terrace , :Floor , :Ceiling .

:VerticalNoMovementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :RestNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :RestUpNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :RestDownNotification
                         ] .

:MultipleFlowRateState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :MultipleFlowRateStateValue
                         ] .

:FrequencyMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :FrequencyStateValue
                         ] .

:EnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality .

:ApparentPowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementNotificationFunctionality .

:PressureMeasurementFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GetPressureCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality .

:ChannelStateValue  a     owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :LevelStateValue , :CurrentStateValue , :FlowRateStateValue , :PressureStateValue , :HumidityStateValue , :TemperatureStateValue , :ReactiveEnergyStateValue , :ShadeStateValue .

:HeatingStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "heating"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:probeID  a          owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :MultipleFlowRateStateValue :MultiplePressureStateValue :MultipleTemperatureStateValue )
                     ] ;
        rdfs:range   xsd:string .

:GasStateValue  a        owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

cc:license  a   owl:AnnotationProperty .

:GroupFunctionality  a    owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :NetworkFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StoreGroupCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DeleteGroupCommand
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasCommand
                          ] ;
        owl:disjointWith  :SceneFunctionality , :IdentificationFunctionality .

:GetFlowRateMCommand  a   owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorURI^^String"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getFlowRateFrom"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :SelectSourceCommand , :GetPressureCommand , :StoreGroupCommand , :SetTimeoutCommand , :SetSpeedCommand , :SetSecondsCommand , :SetHourCommand , :GetTemperatureMCommand , :SetCommand , :GetLuminanceCommand , :GetTemperatureCommand , :SetMinutesCommand , :GetRelativeHumidityCommand , :SetVolumeCommand , :GrabPictureCommand , :GoToTrackCommand , :TimedOnCommand , :GetRelativeHumidityMCommand , :SetChannelCommand , :StoreSceneCommand , :SetDesiredTemperature , :GetPressureMCommand , :GetOccupancyCommand .

:Wall   a                 owl:Class ;
        rdfs:comment      "An architectural partition used to divide or enclose an area or to support another structure."^^xsd:string ;
        rdfs:label        "Wall"^^xsd:string ;
        rdfs:subClassOf   :Vertical ;
        owl:disjointWith  :WallOpening .

:levelFromGround  a  owl:DatatypeProperty ;
        rdfs:domain  :Storey ;
        rdfs:range   xsd:integer .

:ColdWaterM3MeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newColdWaterAmountInM3"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "m3OfColdWater^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:WaterCloset  a          owl:Class ;
        rdfs:comment     "A plumbing fixture for defecation and urination"^^xsd:string ;
        rdfs:label       "WaterCloset"^^xsd:string ;
        rdfs:subClassOf  :SanitaryFixtures .

:ZWaveGateway  a         owl:Class ;
        rdfs:subClassOf  :ZWaveComponent ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :AssociateFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :AssociationNotificationFunctionality
                         ] .

:SetCommand  a            owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "set"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "value^^Object"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :ZoomInCommand , :ZoomOutCommand , :SetSecondsCommand , :TimedOnCommand , :SetHourCommand , :SetMinutesCommand , :StoreGroupCommand , :SetVolumeCommand , :SpeedUpCommand , :UpCommand , :SetTimeoutCommand , :SetDesiredTemperature , :StepDownCommand , :ToggleCommand , :StoreSceneCommand , :StepUpCommand , :SetSpeedCommand , :SpeedDownCommand .

:OnOffFlashingFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionality to switch on and off an object with a given switching period"^^xsd:string ;
        rdfs:label        "OnOffFlashingFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OnFlashingCommand
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :flashingTime
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OffFlashingCommand
                          ] ;
        owl:disjointWith  :OpenCloseFunctionality , :UpDownFunctionality , :StepFunctionality , :OnOffFunctionality .

:EchelonIlon100Gateway
        a                owl:Class ;
        rdfs:subClassOf  :EchelonNetworkComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :endpointAddress
                         ] .

:nodeId  a                  owl:DatatypeProperty ;
        rdfs:domain         :ZWaveComponent ;
        rdfs:range          xsd:int ;
        rdfs:subPropertyOf  :ZWaveProperty .

:TunerState  a           owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ChannelStateValue
                         ] .

:RestDownNotification
        a                owl:Class ;
        rdfs:subClassOf  :NoMovementNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "restingDown"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ThermostatNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "The thermostat request notification, requires a device having the thermostat control functionality to increase, set or decrease the current temperature. Derives from ZigBee HA (slightly modified...)"@en ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ChangedDesiredTemperatureNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :CoolNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :HeatNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StopHeatingCoolingNotification
                         ] .

:OpenCloseNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Notification: open - close"^^xsd:string ;
        rdfs:label        "OpenCloseNotification"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :CloseNotification
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :OpenNotification
                          ] ;
        owl:disjointWith  :UpDownNotificationFunctionality , :PresenceNotificationFunctionality .

:NotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Capability of a controllable building thing that notifies information,e.g.door sensor notifies \"open\"-\"close\""^^xsd:string ;
        rdfs:label        "NotificationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :Functionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasNotification
                          ] ;
        owl:disjointWith  :QueryFunctionality .

:MultiTariffThreePhaseReactiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultiTariffThreePhaseReactiveEnergyMeasurementNotification
                         ] .

:SinglePhaseCurrentState
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :CurrentStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :CurrentStateValue
                         ] .

:ColorDimmableLight  a   owl:Class ;
        rdfs:comment     "The Color Dimmable Light device can be switched on and off, and its luminance, hue and saturation levels may be controlled, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf  :DimmableLight ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ColorState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ColorControlFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ColorNotificationFunctionality
                         ] .

:FreezingApplianceState
        a                owl:Class ;
        rdfs:subClassOf  :GenericApplianceState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :SuperFreezingStateValue
                         ] .

:ZWaveNotification  a    owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:OnOffStandbyNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :OnNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :OffNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StandByNotification
                         ] .

:TemperatureMeasurementFunctionality
        a                owl:Class ;
        rdfs:comment     "The capability of measuring temperatures"@en ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetTemperatureCommand
                         ] .

:TemperatureMeasurementMNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "sensorID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedTemperatureAt"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "temperatureValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:hexValue  a                owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :KonnexCommand :KonnexNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :KonnexProperty .

:Nightstand  a            owl:Class ;
        rdfs:comment      "A small table or stand placed at a bedside."@en ;
        rdfs:label        "Nightstand"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Shade , :Table , :SanitaryFixtures , :Shutter , :Wardrobe , :Sofa .

:TripleValuedState  a    owl:Class ;
        rdfs:comment     "Discrete states with exactly three values"^^xsd:string ;
        rdfs:label       "TripleValuedState"^^xsd:string ;
        rdfs:subClassOf  :DiscreteState ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasStateValue
                         ] .

:PushLinkAuthenticationState
        a                  owl:Class ;
        rdfs:subClassOf    :DiscreteState ;
        rdfs:subClassOf    [ a                   owl:Restriction ;
                             owl:onProperty      :hasStateValue ;
                             owl:someValuesFrom  :NeedingAuthenticationStateValue
                           ] ;
        rdfs:subClassOf    [ a                   owl:Restriction ;
                             owl:onProperty      :hasStateValue ;
                             owl:someValuesFrom  :ActivePushLinkAuthenticationStateValue
                           ] ;
        rdfs:subClassOf    [ a                   owl:Restriction ;
                             owl:onProperty      :hasStateValue ;
                             owl:someValuesFrom  :AuthenticatedStateValue
                           ] ;
        terms:description  "Describes the possible states in which the push-link authentication process can be, which are either active, i.e., the manager is registering access credentials on the bridge whose push-button has been pressed by the user, or idle, i.e., doing nothing"@en .

:ReactiveEnergyStateValue
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :phaseID
                          ] ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue .

:ActiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementFunctionality .

:MultiTariffThreePhaseActiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultiTariffThreePhaseActiveEnergyMeasurementNotification
                         ] .

:DetectedStateValue  a   owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "detected"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:GetCo2ConcentrationCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getCo2Concentration"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:PlayCommand  a           owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "play"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StepDownCommand , :StopHeatingCoolingCommand , :SpeedUpCommand , :ZoomInCommand , :StopPlayingCommand , :SpeedDownCommand , :RestCommand , :ToggleCommand , :RewindCommand , :UpCommand , :StandBy , :StepUpCommand , :PreviousTrackCommand , :ZoomOutCommand .

:LevelStateValue  a       owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue , :ReactiveEnergyStateValue , :PressureStateValue .

:SetTimeoutCommand  a     owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setTimeout"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "timeout^^Measure"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :SpeedDownCommand , :StepUpCommand , :StepDownCommand , :UpCommand , :ZoomInCommand , :ToggleCommand , :SetVolumeCommand , :StoreGroupCommand , :SpeedUpCommand , :StoreSceneCommand , :ZoomOutCommand , :TimedOnCommand .

:DiningRoom  a           owl:Class ;
        rdfs:comment     "A room used for dining"^^xsd:string ;
        rdfs:label       "DiningRoom"^^xsd:string ;
        rdfs:subClassOf  :Room .

:SetSecondsCommand  a     owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setSeconds"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "seconds^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :StepDownCommand , :ToggleCommand , :ZoomOutCommand , :UpCommand , :SetTimeoutCommand , :StoreGroupCommand , :SpeedDownCommand , :SetVolumeCommand , :SetSpeedCommand , :ZoomInCommand , :StepUpCommand , :TimedOnCommand , :StoreSceneCommand , :SpeedUpCommand .

:StopHeatingCoolingCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stopHeatingOrCooling"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :ZoomInCommand , :UpCommand , :ToggleCommand , :StopPlayingCommand .

:Co2MeasurementStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:ForwardCommand  a        owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "fwd"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ToggleCommand , :SpeedUpCommand , :SpeedDownCommand , :GrabPictureCommand , :PanUpCommand , :StopPlayingCommand , :PlayCommand , :RestCommand , :StepDownCommand , :PreviousTrackCommand , :GetFlowRateCommand , :NextTrackCommand , :OffFlashingCommand , :GetOccupancyCommand , :PauseCommand , :GetTemperatureCommand , :OffCommand , :RewindCommand , :UpCommand , :OnFlashingCommand , :OpenCommand , :OnCommand , :ZoomInCommand , :IncreaseColorCommand , :StepUpCommand , :GetRelativeHumidityCommand , :GetCommand , :PanLeftCommand , :StandBy , :GetPressureCommand , :IncreaseQualityCommand , :ZoomOutCommand , :PanRightCommand , :PanDownCommand , :IncreaseLuminosityCommand , :HeatCommand , :IncreaseContrastCommand , :StopHeatingCoolingCommand .

:SuperHeatingNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartedSuperHeatingNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoppedSuperHeatingNotification
                         ] .

:PushLinkNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PushLinkAuthenticationIdleNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PushLinkAuthenticationActiveNotification
                         ] .

:GetPressureMCommand  a   owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorURI^^String"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getPressureFrom"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :StoreSceneCommand , :SetVolumeCommand , :SetSecondsCommand , :GetRelativeHumidityCommand , :SetHourCommand , :SetChannelCommand , :GetTemperatureMCommand , :StoreGroupCommand , :SelectSourceCommand , :SetSpeedCommand , :SetCommand , :TimedOnCommand , :SetMinutesCommand , :GrabPictureCommand , :SetDesiredTemperature , :GetTemperatureCommand , :GetRelativeHumidityMCommand , :SetTimeoutCommand , :GoToTrackCommand .

:sensorOf  a           owl:ObjectProperty ;
        rdfs:comment   "Association between a sensor and its sensed object"^^xsd:string ;
        rdfs:domain    [ a            owl:Class ;
                         owl:unionOf  ( :DoorSensor :WindowSensor )
                       ] ;
        rdfs:label     "isSensorOf"^^xsd:string ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( :FenceOpening :WallOpening )
                       ] ;
        owl:inverseOf  :hasSensor .

:GetPowerFactorCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getPowerFactor"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:LightRegulationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionalities for the regulation of ligth"^^xsd:string ;
        rdfs:label        "LightRegulationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :LevelControlFunctionality ;
        owl:disjointWith  :VolumeRegulationFunctionality .

:timeToOff  a         owl:DatatypeProperty ;
        rdfs:comment  "The time in seconds during which the object is turned on"^^xsd:string ;
        rdfs:domain   :TimedOnFunctionality ;
        rdfs:label    "timeToOff"^^xsd:string ;
        rdfs:range    [ a          rdfs:Datatype ;
                        owl:oneOf  [ a          rdf:List ;
                                     rdf:first  "0.5"^^xsd:float ;
                                     rdf:rest   [ a          rdf:List ;
                                                  rdf:first  "120.0"^^xsd:float ;
                                                  rdf:rest   [ a          rdf:List ;
                                                               rdf:first  "180.0"^^xsd:float ;
                                                               rdf:rest   [ a          rdf:List ;
                                                                            rdf:first  "240.0"^^xsd:float ;
                                                                            rdf:rest   [ a          rdf:List ;
                                                                                         rdf:first  "30.0"^^xsd:float ;
                                                                                         rdf:rest   [ a          rdf:List ;
                                                                                                      rdf:first  "300.0"^^xsd:float ;
                                                                                                      rdf:rest   [ a          rdf:List ;
                                                                                                                   rdf:first  "60.0"^^xsd:float ;
                                                                                                                   rdf:rest   [ a          rdf:List ;
                                                                                                                                rdf:first  "900.0"^^xsd:float ;
                                                                                                                                rdf:rest   ()
                                                                                                                              
                                                                                                                              ]
                                                                                                                 ]
                                                                                                    ]
                                                                                       ]
                                                                          ]
                                                             ]
                                                ]
                                   ]
                      ] .

:PressureStateValue  a    owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue , :ReactiveEnergyStateValue .

:ConsumedWaterStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:MovementNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :MovingDownNotification :MovingUpNotification :SimpleMovementNotification ) .

:Get1PhaseApparentPowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getApparentPower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:hasState  a          owl:ObjectProperty ;
        rdfs:comment  "Provide the actual state to controllable things"^^xsd:string ;
        rdfs:domain   :Controllable ;
        rdfs:label    "hasState"^^xsd:string ;
        rdfs:range    :State .

:MultiTariffReactiveEnergyStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :tariffID
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] .

:Vertical  a             owl:Class ;
        rdfs:comment     "The vertical architectural component of a building"^^xsd:string ;
        rdfs:label       "Vertical"^^xsd:string ;
        rdfs:subClassOf  :Architectural .

:FrequencyStateValue  a  owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:MultipleAlertNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :SingleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultipleAlertNotification
                         ] .

:UpTripleStateValue  a   owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "up"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ZWaveProperty  a    owl:DatatypeProperty ;
        rdfs:domain  :ZWaveComponent ;
        rdfs:range   xsd:int .

:ConnectionState  a      owl:Class ;
        rdfs:subClassOf  :DoubleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ConnectedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :DisconnectedStateValue
                         ] .

:SetColorRGBCommand  a   owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setColorRGB"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "colorRGB^^RGBColor"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:ToggleCommand  a         owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "toggle"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :ZoomInCommand , :UpCommand .

:HeatingEnergyMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :HeatingEnergyStateValue
                         ] .

:ZoomOutCommand  a       owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "zoomOut"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiplePressureSensor
        a                owl:Class ;
        rdfs:comment     "The Pressure Sensor device measures and periodically reports the pressure of a liquid (typically water)"@en ;
        rdfs:subClassOf  :Sensor , :HVACSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :PressureState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiplePressureMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiplePressureMeasurementFunctionality
                         ] .

:SceneFunctionality  a   owl:Class ;
        rdfs:comment     "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StoreSceneCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DeleteSceneCommand
                         ] .

:ReleasedMNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "released"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "buttonID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:StartedWashingNotification
        a                owl:Class ;
        rdfs:subClassOf  :WashingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startedWashOrRinseCycle"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:PressureState  a         owl:Class ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :PressureStateValue
                          ] ;
        owl:disjointWith  :TunerState , :TemperatureState , :ShadeState .

:FlowSensor  a           owl:Class ;
        rdfs:subClassOf  :Sensor .

:hasCeiling  a         owl:ObjectProperty ;
        rdfs:domain    [ a            owl:Class ;
                         owl:unionOf  ( :Garage :Room )
                       ] ;
        rdfs:range     :Ceiling ;
        owl:inverseOf  :ceilingOf .

:WallOpening  a          owl:Class ;
        rdfs:comment     "An opening in a Wall"^^xsd:string ;
        rdfs:label       "WallOpening"^^xsd:string ;
        rdfs:subClassOf  :Vertical ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :isInWall
                         ] .

:BatteryLevelNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :BatteryLevelNotification
                         ] .

:HeatCommand  a           owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "heat"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :NextTrackCommand , :PlayCommand , :RestCommand , :PanUpCommand , :StopHeatingCoolingCommand , :PreviousTrackCommand , :StoreSceneCommand , :IncreaseQualityCommand , :SetSpeedCommand , :ZoomOutCommand , :IncreaseContrastCommand , :OnCommand , :SetSecondsCommand , :SetMinutesCommand , :SetChannelCommand , :PanLeftCommand , :OffFlashingCommand , :OnFlashingCommand , :StandBy , :SpeedDownCommand , :StepDownCommand , :SetDesiredTemperature , :PanRightCommand , :RewindCommand , :IncreaseLuminosityCommand , :SetTimeoutCommand , :IncreaseColorCommand , :SetHourCommand , :ToggleCommand , :StopPlayingCommand , :TimedOnCommand , :SpeedUpCommand , :StepUpCommand , :PauseCommand , :OpenCommand , :OffCommand , :SetVolumeCommand , :UpCommand , :SetCommand , :PanDownCommand , :StoreGroupCommand , :ZoomInCommand .

:SetDesiredTemperature
        a                 owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "temperature^^Measure"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setTemperatureAt"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :UpCommand , :StoreGroupCommand , :SetSecondsCommand , :StepDownCommand , :ZoomOutCommand , :ZoomInCommand , :ToggleCommand , :SetHourCommand , :SetMinutesCommand , :SpeedDownCommand , :SetTimeoutCommand , :SetSpeedCommand , :StepUpCommand , :TimedOnCommand , :StoreSceneCommand , :SpeedUpCommand , :SetVolumeCommand .

:MultiTariffThreePhaseReactiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String" ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    3 ;
                           owl:onProperty  :nParams
                         ] .

:PlayState  a             owl:Class ;
        rdfs:subClassOf   :DiscreteState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :PlayStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :RewindStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :PauseStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :StopStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :ForwardStateValue
                          ] ;
        owl:disjointWith  :TripleValuedState , :SourceSelectionState .

:ThermostatQueryFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality .

:Bathtub  a               owl:Class ;
        rdfs:comment      "A relatively large open container that you fill with water and use to wash the body"^^xsd:string ;
        rdfs:label        "Bathtub"^^xsd:string ;
        rdfs:subClassOf   :SanitaryFixtures ;
        owl:disjointWith  :WaterCloset , :Washbasin , :Shower , :Bidet .

:BrownGoods  a            owl:Class ;
        rdfs:comment      "Small household electrical entertainment appliances"^^xsd:string ;
        rdfs:label        "BrownGoods"^^xsd:string ;
        rdfs:subClassOf   :Appliances ;
        owl:disjointWith  :WhiteGoods .

:phaseID  a          owl:DatatypeProperty ;
        rdfs:domain  :StateValue ;
        rdfs:range   xsd:string .

:SpeedStepUpNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricLevelNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "speedUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:datapoinId  a              owl:DatatypeProperty ;
        rdfs:comment        "The ILON id of a given datapoint associated to the command or notification of a given echelon-managed device"@en ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :EchelonCommand :EchelonNetworkComponent :EchelonNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :EchelonIlon100Property .

:NetworkManagementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :CloseNetworkCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :OpenNetworkCommand
                         ] .

:BlueStateValue  a       owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:GreenStateValue  a      owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

<http://elite.polito.it/ontologies/dogont.owl>
        a                              owl:Ontology ;
        cc:license                     "Copyright (c) 2008-2014 Dario Bonino\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License"^^xsd:string ;
        terms:contributor              "Luigi De Russis (luigi.derussis@polito.it, luigidr@gmail.com)"^^xsd:string ;
        terms:creator                  "Dario Bonino (dario.bonino@polito.it, dario.bonino@gmail.com)"^^xsd:string ;
        terms:description              "DogOnt is a novel modeling language for IDEs (Intelligent Domotic Environment), based on Semantic Web technologies. By adopting well known representations such as ontologies and by providing suitable reasoning facilities, DogOnt is able to face interoperation issues allowing to describe:\n\n- where a domotic device is located;\n- the set of capabilities of a domotic device;\n- the technology-specific features needed to interface the device;\n- the possible configurations that the device can assume;\n- how the home environment is composed;\n- what kind of architectural elements and furniture are placed inside the home.\n\nThis information can then be leveraged by inference-based intelligent systems to provide advanced functionality required in Intelligent Domotic Environments. DogOnt is composed of two elements: the DogOnt ontology, expressed in OWL, which allows to formalize all the aspects of a IDE, and the DogOnt rules, which ease the modeling process by automatically generating proper states and functionalities for domotic devices, and by automatically associating them to the corresponding device instances through semantic relationships. DogOnt is currently adopted to provide house modeling and reasoning capabilities to a domotic gateway called DOG (Domotic OSGi Gateway), which is under development in the authors’ research group and that will be distributed as open source toolkit for building IDEs running on low cost PCs. In this context, a third component of DogOnt, namely DogOnt queries, not presented in this paper, supports runtime control of the IDE."^^xsd:string ;
        terms:issued                   "2008-01-01"^^xsd:string ;
        terms:modified                 "2014-09-24"^^xsd:string ;
        terms:rights                   "Copyright(c) 2008-2014 Dario Bonino"^^xsd:string ;
        terms:title                    "DogOnt: Ontology Modeling for Intelligent Domotic Environments"^^xsd:string ;
        vann:preferredNamespacePrefix  "dogont"^^xsd:string ;
        vann:preferredNamespaceUri     "http://elite.polito.it/ontologies/dogont"^^xsd:string ;
        owl:imports                    <http://purl.oclc.org/NET/muo/ucum/> ;
        owl:priorVersion               "3.2.10"^^xsd:string ;
        owl:versionInfo                "3.2.11"^^xsd:string ;
        foaf:primaryTopic              "Domotic Systems"^^xsd:string .

:GetRelativeHumidityCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getRelativeHumidity"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StepDownCommand , :StopHeatingCoolingCommand , :StopPlayingCommand , :GetRelativeHumidityMCommand , :OpenCommand , :StepUpCommand , :SpeedUpCommand , :RestCommand , :RewindCommand , :IncreaseContrastCommand , :PauseCommand , :PlayCommand , :PanLeftCommand , :StandBy , :OffCommand , :GrabPictureCommand , :NextTrackCommand , :UpCommand , :HeatCommand , :OffFlashingCommand , :OnFlashingCommand , :ToggleCommand , :IncreaseLuminosityCommand , :IncreaseColorCommand , :GetTemperatureMCommand , :ZoomInCommand , :PreviousTrackCommand , :ZoomOutCommand , :OnCommand , :SpeedDownCommand , :PanRightCommand , :GetTemperatureCommand , :PanDownCommand , :IncreaseQualityCommand , :PanUpCommand .

:NetworkNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :DiscreteNotificationFunctionality ;
        owl:disjointWith  :SingleValuedNotificationFunctionality .

:OnFlashingCommand  a     owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "onFlashing"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreGroupCommand , :PauseCommand , :PanLeftCommand , :RestCommand , :PlayCommand , :StopHeatingCoolingCommand , :StandBy , :SetSecondsCommand , :RewindCommand , :StepUpCommand , :SetHourCommand , :SetMinutesCommand , :SpeedUpCommand , :PreviousTrackCommand , :PanRightCommand , :PanDownCommand , :SetVolumeCommand , :SetChannelCommand , :UpCommand , :ZoomOutCommand , :StoreSceneCommand , :SetDesiredTemperature , :StopPlayingCommand , :ToggleCommand , :PanUpCommand , :StepDownCommand , :SetSpeedCommand , :ZoomInCommand , :SpeedDownCommand , :TimedOnCommand , :SetTimeoutCommand , :OpenCommand , :SetCommand .

:Button  a                owl:Class ;
        rdfs:comment      "A monostable electrical switch operated by pressing a button"^^xsd:string ;
        rdfs:label        "Button"^^xsd:string ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ButtonNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        owl:disjointWith  :Thermostat , :SceneSelector , :SingleScenarioControl , :ShadeController , :Knob , :HeatingAndCoolingUnit , :ToggleRelay , :RemoteControl , :Switch , :PumpController .

:KNXNetIPComponent  a    owl:Class ;
        rdfs:subClassOf  :NetworkComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :individualAddress
                         ] .

:DeviceAssociationState
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :IdleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :AssociatingStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :DisassociatingStateValue
                         ] .

:CycleTimingNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :RemainingTimeChangedNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartTimeChangedNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :EndTimeChangedNotification
                         ] .

:TrackControlNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricLevelNotification ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "trackId^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedTrack"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:PowerFactorMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PowerFactorMeasurementNotification
                         ] .

:GetRemainingTimeCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getRemainingTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:WeeklyClimateScheduleNotification
        a                owl:Class ;
        rdfs:subClassOf  :ClimateScheduleNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedWeeklyClimateSchedule"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "dailySchedules^^DailyClimateSchedule[]"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] .

:ZWaveComponent  a       owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:WhiteGoods  a           owl:Class ;
        rdfs:comment     "Major household appliances.\n\nIt mus be noticed that the functionality modeling uses existential quantifiers for functionalities that can be optional, this is only for the sake of easier interpretation and should be improved in future releases"^^xsd:string ;
        rdfs:label       "WhiteGoods"^^xsd:string ;
        rdfs:subClassOf  :Appliances ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :AlertNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :RunState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CycleTimingNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :FaultState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CycleTimingQueryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandByFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :EventsAndAlertsQueryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleAlertNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ProgramState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ConnectionState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :EventNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleEventNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CycleTimingControlFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :StandByOnOffState
                         ] .

:hasWallOpening  a     owl:ObjectProperty ;
        rdfs:comment   "Association between a wall and its opening like door,window"^^xsd:string ;
        rdfs:domain    :Wall ;
        rdfs:label     "hasWallOpening"^^xsd:string ;
        rdfs:range     :WallOpening ;
        owl:inverseOf  :isInWall .

:StoppedSuperHeatingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperHeatingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedSuperHeating"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MultipleFlowSensor  a   owl:Class ;
        rdfs:comment     "The Flow  Sensor device measures and periodically reports the flow rate of a liquid (typically water)"@en ;
        rdfs:subClassOf  :HVACSystem , :FlowSensor ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleFlowMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultipleFlowMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultipleFlowRateState
                         ] .

:SimpleLevelNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Notification functionality for controlling continuously adjustable device, e.g. dimmers, derives from ZigBee Home Automation specifications"@en ;
        rdfs:subClassOf   :LevelNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :LevelControlNotification
                          ] ;
        owl:disjointWith  :ThermostatNotificationFunctionality , :TemperatureMeasurementNotificationFunctionality .

:EchelonCommand  a       owl:Class ;
        rdfs:subClassOf  :NetworkSpecificCommand .

:physicalAddress  a               owl:DatatypeProperty ;
        rdfs:comment              "The address of the component"^^xsd:string ;
        rdfs:domain               :BTicinoComponent ;
        rdfs:label                "physicalAddress"^^xsd:string ;
        rdfs:range                xsd:string ;
        rdfs:subPropertyOf        :BTicinoProperty ;
        owl:propertyDisjointWith  :physicalType .

:EventsAndAlertsQueryFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetEventsAndAlertsCommand
                         ] .

:NotDetectedNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notDetected"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ElectricPowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality .

:ColorState  a           owl:Class ;
        rdfs:subClassOf  :ContinuousState .

:HousePlants  a          owl:Class ;
        rdfs:comment     "All plants of the house, e.g. Electrical system, Hydraulic system"^^xsd:string ;
        rdfs:label       "HousePlants"^^xsd:string ;
        rdfs:subClassOf  :Controllable .

:PhonoStateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phono"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Bedroom  a              owl:Class ;
        rdfs:comment     "A room used primarily for sleeping"^^xsd:string ;
        rdfs:label       "Bedroom"^^xsd:string ;
        rdfs:subClassOf  :Room .

:LevelControlSwitch  a   owl:Class ;
        rdfs:comment     "Level control switch, derives from the ZigBee Home Automation specification"@en ;
        rdfs:subClassOf  :Switch ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :NetworkNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :LevelControlNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :LevelState
                         ] .

:Co2MeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedCo2Concentration"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "co2Concentration^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:ContinuousState  a       owl:Class ;
        rdfs:comment      "States continuous in time or space"^^xsd:string ;
        rdfs:label        "ContinuousState"^^xsd:string ;
        rdfs:subClassOf   :State ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :ContinuousValue ;
                            owl:onProperty     :hasStateValue
                          ] ;
        owl:disjointWith  :DiscreteState .

:SinglePhaseReactivePowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseReactivePowerMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseReactivePowerMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseReactivePowerMeasurementState
                         ] .

:DoubleValuedState  a     owl:Class ;
        rdfs:comment      "Discrete states with exactly two values"^^xsd:string ;
        rdfs:label        "DoubleValuedState"^^xsd:string ;
        rdfs:subClassOf   :DiscreteState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasStateValue
                          ] ;
        owl:disjointWith  :TripleValuedState , :SourceSelectionState , :PlayState , :HeatingAndCoolingUnitState .

:Architectural  a         owl:Class ;
        rdfs:comment      "All the architectural elements that compose the environment"^^xsd:string ;
        rdfs:label        "Architectural"^^xsd:string ;
        rdfs:subClassOf   :UnControllable ;
        owl:disjointWith  :Furniture .

:ColorStateRGB  a        owl:Class ;
        rdfs:subClassOf  :ColorState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :GreenStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :BlueStateValue
                         ] .

:OverloadPauseCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "overloadPause"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:DownTripleStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "down"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Door   a                 owl:Class ;
        rdfs:comment      "A swinging or sliding barrier that will close the entrance to a room or building."^^xsd:string ;
        rdfs:label        "Door"^^xsd:string ;
        rdfs:subClassOf   :WallOpening ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasActuator
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :DoorSensor ;
                            owl:onProperty     :hasSensor
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :DoorActuator ;
                            owl:onProperty     :hasActuator
                          ] ;
        owl:disjointWith  :Window .

:EchelonIlon100Property
        a                   owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :EchelonCommand :EchelonNetworkComponent :EchelonNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :EchelonProperty .

:Hotplate  a             owl:Class ;
        rdfs:comment     "A portable electric appliance for heating or cooking or keeping food warm"^^xsd:string ;
        rdfs:label       "Hotplate"^^xsd:string ;
        rdfs:subClassOf  :Cooker .

:StoppedSuperFreezingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperFreezingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedSuperFreezing"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ThermostatControlFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionalities for the regulation of temperature"^^xsd:string ;
        rdfs:label        "TemperatureRegulationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetDesiredTemperature
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :HeatCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :CoolCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StopHeatingCoolingCommand
                          ] ;
        owl:disjointWith  :TimeRegulationFunctionality , :TunerFunctionality .

:MovingUpDownState  a    owl:Class ;
        rdfs:subClassOf  :MovementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RaisingStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :LoweringStateValue
                         ] .

:ModbusCommand  a        owl:Class ;
        rdfs:subClassOf  :NetworkSpecificCommand .

:MultiplePressureStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :probeID
                         ] .

:StartPushLinkAuthenticationCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startPushLinkAuth"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:OccupancyState  a        owl:Class ;
        rdfs:subClassOf   :DoubleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OccupiedStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :FreeStateValue
                          ] ;
        owl:disjointWith  :SensingState , :PresenceState , :OpenCloseState , :OnOffState .

:PelletHeater  a         owl:Class ;
        rdfs:comment     "Heater that combusts wood-pellet"^^xsd:string ;
        rdfs:label       "PelletHeater"^^xsd:string ;
        rdfs:subClassOf  :Heater ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :HeaterState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandByFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :FireHeatCoolNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :StandByOnOffState
                         ] .

:TemperatureStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

[ a            owl:AllDisjointProperties ;
  owl:members  ( :registerAddress :registerType :scaleFactor :slaveId )
] .

:ShutterRegulationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionalities for the regulation of shutter"^^xsd:string ;
        rdfs:label        "ShutterRegulationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :RestCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :UpCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DownCommand
                          ] ;
        owl:disjointWith  :ThermostatControlFunctionality , :TimeRegulationFunctionality , :TunerFunctionality .

:flashingTime  a      owl:DatatypeProperty ;
        rdfs:comment  "The flashing period duration in seconds"^^xsd:string ;
        rdfs:domain   :OnOffFlashingFunctionality ;
        rdfs:label    "flashingTime"^^xsd:string ;
        rdfs:range    xsd:float .

:MultipleAlertNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newAlertSet"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "alerts^^Object[]"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:BrightnessStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:SuperFreezingFunctionality
        a                owl:Class ;
        rdfs:comment     "Describes the ability of a device to start/stop a super freezing cycle, tipically defined for fridges, refrigerators and freezers. Derives from the energy@home zigbee extension and from the EN50523 standard"^^xsd:string ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopSuperFreezingCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartSuperFreezingCommand
                         ] .

:ColorRGBNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedColorRGB"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "colorRGB^^RGBColor"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:MultiTariffThreePhaseActiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    3 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:Jacuzzi  a              owl:Class ;
        rdfs:comment     "A large whirlpool bathtub with underwater jets that massage the body"^^xsd:string ;
        rdfs:label       "Jacuzzi"^^xsd:string ;
        rdfs:subClassOf  :Bathtub .

:GroupNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :NetworkNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :JoinGroupNotification
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :LeaveGroupNotification
                          ] ;
        owl:disjointWith  :SceneNotificationFunctionality , :IdentificationNotificationFunctionality .

:RestTripleStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "rest"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:StartedHeatingCycleNotification
        a                owl:Class ;
        rdfs:subClassOf  :WashingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startedHeatingCycle"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GetFrequencyCommand  a  owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getFrequency"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:NextTrackCommand  a      owl:Class ;
        rdfs:subClassOf   :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "next"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :RewindCommand , :PanDownCommand , :StopPlayingCommand , :StepUpCommand , :PanLeftCommand , :StandBy , :ZoomOutCommand , :ToggleCommand , :OnCommand , :PreviousTrackCommand , :OnFlashingCommand , :OpenCommand , :UpCommand , :PlayCommand , :OffCommand , :StopHeatingCoolingCommand , :SpeedUpCommand , :StepDownCommand , :ZoomInCommand , :PauseCommand , :OffFlashingCommand , :PanRightCommand , :SpeedDownCommand , :PanUpCommand , :RestCommand .

:DecreaseContrastCommand
        a                 owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "decreaseContrast"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :SetSecondsCommand , :NextTrackCommand , :TimedOnCommand , :PanDownCommand , :SetSpeedCommand , :IncreaseQualityCommand , :SetTimeoutCommand , :SetMinutesCommand , :DecreaseLuminosityCommand , :GetOccupancyCommand , :PlayCommand , :StoreSceneCommand , :IncreaseLuminosityCommand , :SetCommand , :StepDownCommand , :ZoomInCommand , :PreviousTrackCommand , :HeatCommand , :OpenCommand , :GrabPictureCommand , :DeleteSceneCommand , :SpeedUpCommand , :OnFlashingCommand , :GetRelativeHumidityCommand , :DownCommand , :GetPressureCommand , :ZoomOutCommand , :IncreaseContrastCommand , :SetHourCommand , :ToggleCommand , :PanRightCommand , :UpCommand , :GetCommand , :RewindCommand , :StoreGroupCommand , :SetDesiredTemperature , :IncreaseColorCommand , :StopPlayingCommand , :StepUpCommand , :PanUpCommand , :StandBy , :OnCommand , :StopHeatingCoolingCommand , :SetVolumeCommand , :DecreaseQualityCommand , :RestCommand , :OffCommand , :DeleteGroupCommand , :SpeedDownCommand , :SetChannelCommand , :ForwardCommand , :PauseCommand , :OffFlashingCommand , :PanLeftCommand , :GetTemperatureCommand , :GetFlowRateCommand , :GoToTrackCommand .

:AlertNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :SingleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :AlertNotification
                         ] .

:EnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality .

:individualAddress  a       owl:DatatypeProperty ;
        rdfs:comment        "The individual address of the component"^^xsd:string ;
        rdfs:domain         :KonnexComponent ;
        rdfs:label          "individualAddress"^^xsd:string ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :KonnexProperty .

:IdentifyNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification , :NetworkNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "identifyMe"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:hasCommand  a       owl:ObjectProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :ControlFunctionality :QueryFunctionality )
                     ] ;
        rdfs:range   :Command .

:WashingNotification  a      owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :StartedHeatingCycleNotification :StartedWashingNotification :StoppedHeatingCycleNotification :StoppedWashingNotification ) .

:PausePlaybackNotification
        a                owl:Class ;
        rdfs:subClassOf  :PlaybackNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pause"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

:ZigBeeComponent  a      owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:GasMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetConsumedM3Gas
                         ] .

:SinglePhaseReactivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseReactivePowerMeasurementNotification
                         ] .

:ToggleRelay  a          owl:Class ;
        rdfs:subClassOf  :Control ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ToggleFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] .

:DimmerSwitch  a         owl:Class ;
        rdfs:comment     "Switch for controlling dimmable lights, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf  :LevelControlSwitch ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :DimmerLamp ;
                           owl:onProperty     :controlledObject
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :LightIntensityState
                         ] .

:UpDownRestState  a      owl:Class ;
        rdfs:comment     "State: up - down - rest"^^xsd:string ;
        rdfs:label       "UpDownRestState"^^xsd:string ;
        rdfs:subClassOf  :TripleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :UpTripleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RestTripleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :DownTripleStateValue
                         ] .

:SimpleNoMovementNotification
        a                 owl:Class ;
        rdfs:subClassOf   :NoMovementNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "ceasedMovement"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification .

:WashingApplianceState
        a                owl:Class ;
        rdfs:subClassOf  :GenericApplianceState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :HeatingStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RinseHoldStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :WashRinseStateValue
                         ] .

:HeatingCycleNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoppedHeatingCycleNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartedHeatingCycleNotification
                         ] .

:StoppedWashingNotification
        a                owl:Class ;
        rdfs:subClassOf  :WashingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedWashOrRinseCycle"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:StateValue  a           owl:Class ;
        rdfs:subClassOf  owl:Thing ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :realStateValue
                         ] .

:ShadeActuator  a         owl:Class ;
        rdfs:comment      "The Shade Actuator device provides the ability to open or close window coverings, including setting partially open or partially closed states. This device type includes roller shades, drapes and tilt-only blinds actuators. Derives from ZigBee HA specifications (Shade device)"@en ;
        rdfs:label        "Shade"@en ;
        rdfs:subClassOf   :Actuator ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :ShadeState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :MovementState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :QueryFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :MovementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Shade ;
                            owl:onProperty     :actuatorOf
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlFunctionality
                          ] ;
        owl:disjointWith  :WindowActuator , :ShutterActuator .

:hasStateValue  a    owl:ObjectProperty ;
        rdfs:domain  :State ;
        rdfs:range   :StateValue .

:SurveillanceCamera  a    owl:Class ;
        rdfs:comment      "Camera of video surveillance"^^xsd:string ;
        rdfs:label        "SurveillanceCamera"^^xsd:string ;
        rdfs:subClassOf   :AntiIntrusionSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        owl:disjointWith  :WindowSensor .

:ThreePhaseReactivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseReactivePowerMeasurementNotification
                         ] .

:SensingNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DetectedNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :NotDetectedNotification
                         ] .

:StandByStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "standBy"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:generateCommand  a  owl:ObjectProperty ;
        rdfs:domain  :Notification ;
        rdfs:range   :Command .

:StopCommand  a          owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stop"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:EnergyAndPowerMeter  a  owl:Class ;
        rdfs:subClassOf  :SinglePhaseEnergyMeter , :SinglePhaseActivePowerMeter .

:TunerFunctionality  a   owl:Class ;
        rdfs:subClassOf  :ContinuousControlFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :UpCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetChannelCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DownCommand
                         ] .

:PresenceState  a         owl:Class ;
        rdfs:subClassOf   :DoubleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :PresentStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :NotPresentState
                          ] ;
        owl:disjointWith  :SensingState .

:LightIntensityState  a   owl:Class ;
        rdfs:comment      "Models the state of the object that illuminates"^^xsd:string ;
        rdfs:label        "LightIntensityState"^^xsd:string ;
        rdfs:subClassOf   :LevelState ;
        owl:disjointWith  :VolumeLevelState .

:PlayNotification  a     owl:Class ;
        rdfs:subClassOf  :PlaybackNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "play"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:TimedOnCommand  a        owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "timedOn"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "timeToOff^^Measure"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :ToggleCommand , :ZoomInCommand , :UpCommand , :ZoomOutCommand .

:LoweringStateValue  a   owl:Class ;
        rdfs:subClassOf  :MovingStateValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "lowering"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ActiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementNotificationFunctionality .

:ThreePhaseCurrentMeter
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseCurrentState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseCurrentMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseCurrentMeasurementFunctionality
                         ] .

:RunState  a             owl:Class ;
        rdfs:subClassOf  :TripleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :IdleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :PauseStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RunningStateValue
                         ] .

:Controllable  a             owl:Class ;
        rdfs:comment         "All building things that can be controlled by domotic system"^^xsd:string ;
        rdfs:label           "Controllable"^^xsd:string ;
        rdfs:subClassOf      :BuildingThing ;
        rdfs:subClassOf      [ a                 owl:Class ;
                               owl:complementOf  :UnControllable
                             ] ;
        rdfs:subClassOf      [ a                   owl:Restriction ;
                               owl:onProperty      :hasFunctionality ;
                               owl:someValuesFrom  :QueryFunctionality
                             ] ;
        rdfs:subClassOf      [ a                   owl:Restriction ;
                               owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                               owl:onProperty      :hasFunctionality
                             ] ;
        owl:disjointWith     :UnControllable ;
        owl:equivalentClass  <http://purl.oclc.org/NET/ssnx/ssn#Device> .

:LevelControlNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :LevelNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :LevelStepDownNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :LevelControlNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :LevelStepUpNotification
                         ] .

:SmokeSensor  a           owl:Class ;
        rdfs:comment      "Sensor that detects the presence of smoke"^^xsd:string ;
        rdfs:label        "SmokeSensor"^^xsd:string ;
        rdfs:subClassOf   :Sensor , :FireSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :SensingState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        owl:disjointWith  :WindowSensor .

:IdentificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :NetworkFunctionality ;
        owl:disjointWith  :SceneFunctionality .

:ApplianceCycleTimingNotification
        a                    owl:Class ;
        rdfs:subClassOf      :ParametricNotification ;
        owl:disjointUnionOf  ( :EndTimeChangedNotification :RemainingTimeChangedNotification :StartTimeChangedNotification ) .

:notificationOf  a     owl:ObjectProperty ;
        rdfs:domain    :Notification ;
        rdfs:range     :NotificationFunctionality ;
        owl:inverseOf  :hasNotification .

:GateActuator  a          owl:Class ;
        rdfs:comment      "A mechanism that allow automatic opening and closing about gate"^^xsd:string ;
        rdfs:label        "GateActuator"^^xsd:string ;
        rdfs:subClassOf   :Actuator ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :MovementState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OpenCloseState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Gate ;
                            owl:onProperty     :actuatorOf
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :MovementNotificationFunctionality
                          ] ;
        owl:disjointWith  :ShadeActuator , :Pump , :ShutterActuator , :WindowActuator .

:SinglePhaseReactivePowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "powerValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactivePowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Window  a               owl:Class ;
        rdfs:comment     "A framework that contains a glass windowpane and is built into a wall or roof to admit light or air"^^xsd:string ;
        rdfs:label       "Window"^^xsd:string ;
        rdfs:subClassOf  :WallOpening ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :WindowActuator ;
                           owl:onProperty     :hasActuator
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasActuator
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :WindowSensor ;
                           owl:onProperty     :hasSensor
                         ] .

:StandByNotification  a  owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "standby"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ChannelControlNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricLevelNotification ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "channelId^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedChannel"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MainsPowerOutlet  a     owl:Class ;
        rdfs:subClassOf  :OnOffOutput .

:VoltageStateValue  a    owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] .

:EnergyMeteringPowerOutlet
        a                owl:Class ;
        rdfs:subClassOf  :SinglePhaseEnergyMeter , :MainsPowerOutlet .

:Dvd    a                 owl:Class ;
        rdfs:comment      "Appliance thar read dvd"^^xsd:string ;
        rdfs:label        "Dvd"^^xsd:string ;
        rdfs:subClassOf   :Entertainment ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :PlayState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :StandByOnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PlayNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandByFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :VolumeRegulationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :VolumeLevelState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PlayFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                          ] ;
        owl:disjointWith  :Radio , :HiFi , :Tv .

:AssociatingStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "associating"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:PushLinkAuthenticationIdleNotification
        a                owl:Class ;
        rdfs:subClassOf  :HueNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "deactivatedPushLinkAuth"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MultipleTemperatureState
        a                owl:Class ;
        rdfs:comment     "Models the temperature value"^^xsd:string ;
        rdfs:label       "MultipleTemperatureState"^^xsd:string ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :MultipleTemperatureStateValue
                         ] .

:MultiTariffThreePhaseEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :MultiTariffEnergyMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultiTariffThreePhaseReactiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultiTariffThreePhaseActiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffThreePhaseActiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffThreePhaseActiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffThreePhaseReactiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffThreePhaseReactiveEnergyMeasurementFunctionality
                         ] .

:LevelControllableOutput
        a                 owl:Class ;
        rdfs:comment      "Output device whose output level can be controlled continuously, by means of a level-control command (notification), derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf   :PowerDelivery ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :LevelState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        owl:disjointWith  :OnOffOutput .

:FanControlFunctionality
        a                 owl:Class ;
        rdfs:comment      "Models the capability of controlling the speed of a cooling/heating fan. Derives from ZigBee HA"@en ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SpeedUpCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SpeedDownCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetSpeedCommand
                          ] ;
        owl:disjointWith  :ShutterRegulationFunctionality , :LevelControlFunctionality , :TimeRegulationFunctionality , :TunerFunctionality , :ThermostatControlFunctionality .

:ToggleFunctionality  a  owl:Class ;
        rdfs:subClassOf  :SingleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :ToggleCommand
                         ] .

:commandParamValue  a  owl:DatatypeProperty ;
        rdfs:domain  :ParametricCommand ;
        rdfs:range   xsd:string .

:StopSupercoolingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stopSuperCooling"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultipleEventNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "events^^Object[]"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newEventSet"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] .

:AntiIntrusionSystem  a  owl:Class ;
        rdfs:comment     "System that provides security about intrusion"^^xsd:string ;
        rdfs:label       "AntiIntrusionSystem"^^xsd:string ;
        rdfs:subClassOf  :AccessControlSystem .

:TunerStateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tuner"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

foaf:primaryTopic  a  owl:AnnotationProperty .

:DoubleBed  a             owl:Class ;
        rdfs:subClassOf   :Bed ;
        owl:disjointWith  :SingleBed .

:CameraPictureQualityControlFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :DecreaseQualityCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :IncreaseQualityCommand
                          ] ;
        owl:disjointWith  :CameraPictureZoomPanControlFunctionality , :ShutterRegulationFunctionality , :ThermostatControlFunctionality , :ColorControlFunctionality , :LevelControlFunctionality , :TimeRegulationFunctionality , :FanControlFunctionality , :TunerFunctionality .

:OnStateValue  a         owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "on"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:CDStateValue  a         owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "cd"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:PictureGrabFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GrabPictureCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality , :PressureMeasurementFunctionality .

:SinglePhaseActivePowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActivePowerMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActivePowerMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseActivePowerMeasurementState
                         ] .

:ReactivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :PowerMeasurementFunctionality .

:ColorControlFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetColorHSBCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetColorRGBCommand
                          ] ;
        owl:disjointWith  :ShutterRegulationFunctionality , :TimeRegulationFunctionality , :FanControlFunctionality , :ThermostatControlFunctionality , :TunerFunctionality , :LevelControlFunctionality .

:Drawer  a                owl:Class ;
        rdfs:comment      "A boxlike container in a piece of furniture; made so as to slide in and out"^^xsd:string ;
        rdfs:label        "Drawer"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Shade , :Table , :Sofa , :Wardrobe , :Shutter , :SanitaryFixtures , :Nightstand .

:NetworkFunctionality
        a                 owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :DiscreteControlFunctionality ;
        owl:disjointWith  :TripleValuedFunctionality , :SingleValuedFunctionality , :PlayFunctionality .

:LightSensingFunctionality
        a                 owl:Class ;
        rdfs:comment      "The capability of sensing the luminance of the environment in which a device is located accepts only the get command, with 1 parameter, i.e. the luminance value. Derives from ZigBee specifications"@en ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GetLuminanceCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality , :PressureMeasurementFunctionality , :PictureGrabFunctionality , :OccupancySensingFunctionality .

:ThreePhaseActivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseActivePowerMeasurementNotification
                         ] .

:notificationParamName
        a            owl:DatatypeProperty ;
        rdfs:domain  :ParametricNotification ;
        rdfs:range   xsd:string .

:WindowActuator  a       owl:Class ;
        rdfs:comment     "A mechanism that allow automatic opening and closing about window"^^xsd:string ;
        rdfs:label       "WindowActuator"^^xsd:string ;
        rdfs:subClassOf  :Actuator ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MovementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OpenCloseFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OpenCloseState
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Window ;
                           owl:onProperty     :actuatorOf
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OpenCloseNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MovementState
                         ] .

:BTicinoProperty  a  owl:DatatypeProperty ;
        rdfs:domain  :BTicinoComponent ;
        rdfs:range   xsd:string .

:Meter  a                owl:Class ;
        rdfs:subClassOf  :ElectricalSystem .

:PressureSensor  a        owl:Class ;
        rdfs:comment      "The Pressure Sensor device measures and periodically reports the pressure of a liquid (typically water)"@en ;
        rdfs:subClassOf   :HVACSystem , :Sensor ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PressureMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :PressureState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PressureMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        owl:disjointWith  :SmokeSensor , :VentilatingSystem , :Thermostat , :SingleFlowSensor , :Pump , :WindowSensor , :PumpController .

:FlashingLamp  a          owl:Class ;
        rdfs:comment      "Lamp that emits light in sudden short or intermittent bursts"^^xsd:string ;
        rdfs:label        "FlashingLamp"^^xsd:string ;
        rdfs:subClassOf   :SimpleLamp ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :QueryFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFlashingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :OnOffState ;
                            owl:onProperty     :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        owl:disjointWith  :OnOffLight .

:MultipleFlowMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :FlowRateMeasurementMNotification
                         ] .

:Boiler  a                owl:Class ;
        rdfs:comment      "Sealed vessel where water is warm up"^^xsd:string ;
        rdfs:label        "Boiler"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperHeatingNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperHeatingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :HeatingApplianceState
                          ] ;
        owl:disjointWith  :Cooker , :DeepFreezer , :WashingMachine , :Oven , :Fridge , :Dishwasher , :Stove .

:GetPressureCommand  a    owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getPressure"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        owl:disjointWith  :PanUpCommand , :IncreaseColorCommand , :StepDownCommand , :IncreaseLuminosityCommand , :UpCommand , :GrabPictureCommand , :GetTemperatureMCommand , :GetTemperatureCommand , :ZoomOutCommand , :RewindCommand , :StandBy , :PanLeftCommand , :IncreaseContrastCommand , :IncreaseQualityCommand , :StepUpCommand , :PlayCommand , :ZoomInCommand , :OnFlashingCommand , :ToggleCommand , :OffCommand , :StopPlayingCommand , :OffFlashingCommand , :HeatCommand , :PanRightCommand , :StopHeatingCoolingCommand , :PauseCommand , :OnCommand , :GetPressureMCommand , :PanDownCommand , :OpenCommand , :SpeedUpCommand , :NextTrackCommand , :GetRelativeHumidityCommand , :PreviousTrackCommand , :RestCommand , :SpeedDownCommand , :GetRelativeHumidityMCommand .

:DiscreteState  a        owl:Class ;
        rdfs:comment     "States not continuous, with fixed values"^^xsd:string ;
        rdfs:label       "DiscreteState"^^xsd:string ;
        rdfs:subClassOf  :State ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :DiscreteValue ;
                           owl:onProperty     :hasStateValue
                         ] .

:NotProgrammedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notProgrammed"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:NetworkClosedNotification
        a                owl:Class ;
        rdfs:subClassOf  :ZigBeeNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "close"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:controlledObject  a  owl:ObjectProperty ;
        rdfs:comment  "Association between a controller and the controlled object"^^xsd:string ;
        rdfs:domain   :Control ;
        rdfs:label    "controlledObject"^^xsd:string ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( :Acoustic :Actuator :Control :Lighting :PowerDelivery )
                      ] .

:RunningStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "running"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ThreePhaseReactivePowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseReactivePowerMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseReactivePowerMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseReactivePowerMeasurementState
                         ] .

owl:topObjectProperty
        a       owl:ObjectProperty .

:OpenCommand  a           owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "open"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StopHeatingCoolingCommand , :StoreGroupCommand , :StopPlayingCommand , :SetDesiredTemperature , :UpCommand , :ToggleCommand , :SpeedDownCommand , :SetSpeedCommand , :SetTimeoutCommand , :ZoomOutCommand , :RewindCommand , :PanUpCommand , :PanDownCommand , :SetMinutesCommand , :RestCommand , :PreviousTrackCommand , :ZoomInCommand , :SetSecondsCommand , :StandBy , :SetChannelCommand , :SpeedUpCommand , :PanRightCommand , :SetHourCommand , :PauseCommand , :TimedOnCommand , :SetCommand , :StepDownCommand , :SetVolumeCommand , :StoreSceneCommand , :StepUpCommand , :PlayCommand , :PanLeftCommand .

:FloodSystem  a           owl:Class ;
        rdfs:comment      "System that detects the presence of flood"^^xsd:string ;
        rdfs:label        "FloodSystem"^^xsd:string ;
        rdfs:subClassOf   :SecuritySystem ;
        owl:disjointWith  :GasSystem .

:OffCommand  a            owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "off"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :RestCommand , :OnFlashingCommand , :SetChannelCommand , :PanRightCommand , :PanLeftCommand , :ZoomInCommand , :SetMinutesCommand , :StoreSceneCommand , :PanDownCommand , :SetVolumeCommand , :PauseCommand , :SetSpeedCommand , :UpCommand , :StopHeatingCoolingCommand , :OnCommand , :PreviousTrackCommand , :StopPlayingCommand , :StepDownCommand , :RewindCommand , :ZoomOutCommand , :OffFlashingCommand , :SetDesiredTemperature , :SetHourCommand , :StandBy , :SpeedDownCommand , :SetCommand , :OpenCommand , :PlayCommand , :SpeedUpCommand , :TimedOnCommand , :SetTimeoutCommand , :StepUpCommand , :SetSecondsCommand , :PanUpCommand , :StoreGroupCommand , :ToggleCommand .

:StopHeatingCoolingNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedHeatingOrCooling"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MultipleEventNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :SingleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :MultipleEventNotification
                         ] .

:PanLeftCommand  a        owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "panLeft"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :SetTimeoutCommand , :StopHeatingCoolingCommand , :StoreGroupCommand , :UpCommand , :StepUpCommand , :ZoomOutCommand , :SetSecondsCommand , :SetVolumeCommand , :RewindCommand , :StandBy , :PlayCommand , :ToggleCommand , :SpeedDownCommand , :SetCommand , :PanRightCommand , :StopPlayingCommand , :StoreSceneCommand , :PanUpCommand , :ZoomInCommand , :SetHourCommand , :PreviousTrackCommand , :SetMinutesCommand , :PauseCommand , :SetDesiredTemperature , :RestCommand , :SetSpeedCommand , :SetChannelCommand , :SpeedUpCommand , :StepDownCommand , :TimedOnCommand .

:FenceOpening  a          owl:Class ;
        rdfs:comment      "An opening in a Fence"^^xsd:string ;
        rdfs:label        "FenceOpening"^^xsd:string ;
        rdfs:subClassOf   :Vertical ;
        owl:disjointWith  :WallOpening , :Wall .

:SinglePhaseActiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseActiveEnergyCommand
                         ] .

:SetClimateScheduleCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    1 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setClimateSchedule"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "dailySchedules^^DailyClimateSchedule[]"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:CycleTimingControlFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetRemainingTimeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetStartTimeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetEndTimeCommand
                         ] .

:ceilingOf  a        owl:ObjectProperty ;
        rdfs:domain  :Ceiling ;
        rdfs:range   [ a            owl:Class ;
                       owl:unionOf  ( :Garage :Room )
                     ] .

:MovingDownNotification
        a                owl:Class ;
        rdfs:subClassOf  :MovementNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "movingDown"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SinglePhaseActiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyMeasurementNotification
                         ] .

:Furniture  a            owl:Class ;
        rdfs:comment     "Furnishings that make a room or other area ready for occupancy"^^xsd:string ;
        rdfs:label       "Furniture"^^xsd:string ;
        rdfs:subClassOf  :UnControllable ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :isIn
                         ] .

:OnCommand  a             owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "on"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :TimedOnCommand , :SpeedDownCommand , :RewindCommand , :SetSpeedCommand , :OnFlashingCommand , :StandBy , :ToggleCommand , :PlayCommand , :ZoomInCommand , :SetMinutesCommand , :SetDesiredTemperature , :SetChannelCommand , :PanUpCommand , :OpenCommand , :PauseCommand , :StepUpCommand , :StoreGroupCommand , :StopPlayingCommand , :UpCommand , :SetHourCommand , :RestCommand , :SetCommand , :SpeedUpCommand , :ZoomOutCommand , :SetSecondsCommand , :PanLeftCommand , :SetTimeoutCommand , :PreviousTrackCommand , :StopHeatingCoolingCommand , :StoreSceneCommand , :PanRightCommand , :SetVolumeCommand , :PanDownCommand , :StepDownCommand .

:ReactivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementState .

:StoreSceneCommand  a     owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sceneNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "storeScene"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :UpCommand , :ZoomInCommand , :ToggleCommand , :ZoomOutCommand , :TimedOnCommand .

terms:description  a  owl:AnnotationProperty .

:CurrentMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality .

:OpenStateValue  a       owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "open"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:GasCooker  a             owl:Class ;
        rdfs:comment      "Gas Cooker"^^xsd:string ;
        rdfs:label        "GasCooker"^^xsd:string ;
        rdfs:subClassOf   :Cooker ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :EnableDisableGasFunctionality
                          ] ;
        owl:disjointWith  :Hotplate .

:CoolingApplianceState
        a                owl:Class ;
        rdfs:subClassOf  :GenericApplianceState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :SuperCoolingStateValue
                         ] .

:IncreaseVolumeCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "increaseVolume"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:stepValue  a        owl:DatatypeProperty ;
        rdfs:domain  :ContinuousControlFunctionality ;
        rdfs:range   xsd:double .

:FireSystem  a            owl:Class ;
        rdfs:comment      "System that detects the presence of fire"^^xsd:string ;
        rdfs:label        "FireSystem"^^xsd:string ;
        rdfs:subClassOf   :SecuritySystem ;
        owl:disjointWith  :GasSystem , :FloodSystem .

:Ventilator  a           owl:Class ;
        rdfs:comment     "A device that circulates fresh air and expels stale or foul air."@en ;
        rdfs:label       "Ventilator"^^xsd:string ;
        rdfs:subClassOf  :VentilatingSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SpeedNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :FanControlFunctionality
                         ] .

:Partition  a            owl:Class ;
        rdfs:comment     "A vertical structure that divides or separates"^^xsd:string ;
        rdfs:label       "Partition"^^xsd:string ;
        rdfs:subClassOf  :Wall .

:isInWall  a          owl:ObjectProperty ;
        rdfs:comment  "Association between a wallopening(door or window) and the wall opening where it is"^^xsd:string ;
        rdfs:domain   :WallOpening ;
        rdfs:label    "isInWall"^^xsd:string ;
        rdfs:range    :Wall .

:PushLinkFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartPushLinkAuthenticationCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopPushLinkAuthenticationCommand
                         ] .

:PlayStateValue  a       owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "playing"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:MultiplePressureState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :MultiplePressureStateValue
                         ] .

:WirelessPhone  a        owl:Class ;
        rdfs:comment     "Phone with no wire"^^xsd:string ;
        rdfs:label       "WirelessPhone"^^xsd:string ;
        rdfs:subClassOf  :Phone .

:StartSuperFreezingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startSuperFreezing"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:GoToTrackCommand  a      owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "trackNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "goToTrack"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :SetSecondsCommand , :ToggleCommand , :StoreSceneCommand , :IncreaseColorCommand , :TimedOnCommand , :ZoomInCommand , :OffFlashingCommand , :SetHourCommand , :PanDownCommand , :StoreGroupCommand , :IncreaseLuminosityCommand , :SetDesiredTemperature , :SetCommand , :OffCommand , :PanRightCommand , :OnFlashingCommand , :PanUpCommand , :SpeedDownCommand , :PanLeftCommand , :RestCommand , :OpenCommand , :StepDownCommand , :SetChannelCommand , :IncreaseContrastCommand , :SetMinutesCommand , :UpCommand , :SetSpeedCommand , :SetTimeoutCommand , :HeatCommand , :ZoomOutCommand , :StepUpCommand , :SetVolumeCommand , :OnCommand , :SelectSourceCommand , :SpeedUpCommand , :IncreaseQualityCommand .

:MultiTariffSinglePhaseReactiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetMultiTariff1PhaseReactiveEnergyCommand
                         ] .

:EmittingMicrowavesStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "emittingMicrowaves"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ThreePhaseCurrentState
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :CurrentStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

owl:Thing  a    owl:Class .

:EnergyMeter  a          owl:Class ;
        rdfs:subClassOf  :ElectricityMeter .

:LevelControlNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricLevelNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "newLevel^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedLevel"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :TemperatureMeasurementMNotification , :StoreSceneNotification , :PressureMeasurementMNotification .

:NonParametricCommand
        a                 owl:Class ;
        rdfs:subClassOf   :Command ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "0"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :ParametricCommand .

:OverloadWarningCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "warningEvent^^int"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "overloadWarning"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:StartStopPauseNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PauseApplianceNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StopApplianceNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartApplianceNotification
                         ] .

:Get1PhaseReactivePowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactivePower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:VoidCommand  a          owl:Class ;
        rdfs:subClassOf  :Command .

:Ceiling  a               owl:Class ;
        rdfs:comment      "The overhead upper surface of a room"^^xsd:string ;
        rdfs:label        "Ceiling"^^xsd:string ;
        rdfs:subClassOf   :Horizontal ;
        owl:disjointWith  :Terrace , :Floor .

:StartTimeChangedNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceCycleTimingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedStartTime"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startTime^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:Chair  a                 owl:Class ;
        rdfs:comment      "A seat for one person, with a support for the back."^^xsd:string ;
        rdfs:label        "Chair"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Closet , :Desk , :Drawer , :Wardrobe , :Nightstand , :Table , :Shade , :Shutter , :SanitaryFixtures , :Sofa , :Cupboard .

:ApparentPowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementState .

:MeteringPowerOutlet  a  owl:Class ;
        rdfs:subClassOf  :PowerMeteringPowerOutlet , :PowerFactorMeter , :EnergyMeteringPowerOutlet .

:TimeRegulationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionalities for the regulation of timer"^^xsd:string ;
        rdfs:label        "TimeRegulationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetMinutesCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetSecondsCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetHourCommand
                          ] ;
        owl:disjointWith  :TunerFunctionality .

:HeatingEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :HeatingEnergyMeasurementNotification
                         ] .

:IPAddress  a         owl:DatatypeProperty ;
        rdfs:comment  "The IP address of the gateway"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :EchelonIlon100Gateway :KNXNetIPGateway :KonnexGateway :ModbusGateway )
                      ] ;
        rdfs:label    "IPAddress"^^xsd:string ;
        rdfs:range    [ a            rdfs:Datatype ;
                        owl:unionOf  ( xsd:anyURI xsd:string )
                      ] .

:HeatingAndCoolingUnitState
        a                 owl:Class ;
        rdfs:subClassOf   :DiscreteState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :HeatingStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :AutoRegulationStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OffStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :CoolingStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OnStateValue
                          ] ;
        owl:disjointWith  :SourceSelectionState , :TripleValuedState , :PlayState .

:SinglePhaseReactiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseReactiveEnergyCommand
                         ] .

:PowerMeter  a           owl:Class ;
        rdfs:subClassOf  :ElectricityMeter .

:DailyClimateScheduleNotification
        a                owl:Class ;
        rdfs:subClassOf  :ClimateScheduleNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedDailyClimateSchedule"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "daySchedule^^DailyClimateSchedule"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:KonnexGateway  a        owl:Class ;
        rdfs:comment     "A Konnex Gateway"^^xsd:string ;
        rdfs:label       "KonnexGateway"^^xsd:string ;
        rdfs:subClassOf  :KonnexComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :connectionTimeOut
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :sleepTime
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :pollingInterval
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :connectionTrials
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :IPAddress
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :multicastIP
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :port
                         ] .

:KonnexProperty  a   owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :KNXNetIPComponent :KonnexCommand :KonnexComponent :KonnexNotification )
                     ] ;
        rdfs:range   xsd:string .

:NoMovementNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :RestDownNotification :RestNotification :RestUpNotification :SimpleNoMovementNotification ) .

:GetHotWaterM3Command
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getAmountOfHotWaterInM3"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:MultiTariffSinglePhaseActiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] .

:WashingCycleNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartedWashingNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoppedWashingNotification
                         ] .

:HeatingEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetHeatingEnergyCommand
                         ] .

:ProgrammedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "programmed"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:GasoilHeater  a          owl:Class ;
        rdfs:comment      "Heater that combusts gasoil"^^xsd:string ;
        rdfs:label        "GasoilHeater"^^xsd:string ;
        rdfs:subClassOf   :Heater ;
        owl:disjointWith  :PelletHeater .

:FireHeatCoolNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :CoolNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :FiringUpNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :HeatNotification
                         ] .

:scaleFactor  a             owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :ModbusCommand :ModbusNotification )
                            ] ;
        rdfs:range          xsd:float ;
        rdfs:subPropertyOf  :ModBusProperty .

:RewindStateValue  a     owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "rewind"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ThreePhaseEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :SingleTariffEnergyMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseReactiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseReactiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseActiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseActiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseReactiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseActiveEnergyMeasurementFunctionality
                         ] .

:Armchair  a              owl:Class ;
        rdfs:comment      "Chair with a support on each side for arms"^^xsd:string ;
        rdfs:label        "Armchair"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Awning , :Wardrobe , :Closet , :Sofa , :Cupboard , :Shade , :Chair , :Bed , :Shutter , :Nightstand , :Desk , :SanitaryFixtures , :Drawer , :Table .

:StopPlaybackNotification
        a                owl:Class ;
        rdfs:subClassOf  :PlaybackNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stop"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MicrowaveEmissionNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :NotEmittingMicrowavesNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :EmittingMicrowavesNotification
                         ] .

:State  a             owl:Class ;
        rdfs:comment  "Models the states of the controllable objects"^^xsd:string ;
        rdfs:label    "State"^^xsd:string .

:Cooker  a                owl:Class ;
        rdfs:comment      "A utensil for cooking"^^xsd:string ;
        rdfs:label        "Cooker"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        owl:disjointWith  :Oven , :Stove , :WashingMachine , :Fridge , :DeepFreezer , :Dishwasher .

:DownCommand  a           owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "down"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :UpCommand , :SetSpeedCommand , :OnFlashingCommand , :StepUpCommand , :PanLeftCommand , :IncreaseLuminosityCommand , :PreviousTrackCommand , :PlayCommand , :StoreSceneCommand , :TimedOnCommand , :GoToTrackCommand , :SetMinutesCommand , :GetCommand , :ZoomInCommand , :SetHourCommand , :IncreaseQualityCommand , :OffCommand , :SetChannelCommand , :SpeedDownCommand , :ForwardCommand , :OnCommand , :SetVolumeCommand , :GetOccupancyCommand , :SetTimeoutCommand , :ZoomOutCommand , :RestCommand , :StopPlayingCommand , :OffFlashingCommand , :SetDesiredTemperature , :GetTemperatureCommand , :IncreaseContrastCommand , :RewindCommand , :SetCommand , :GetPressureCommand , :StopHeatingCoolingCommand , :OpenCommand , :StandBy , :StepDownCommand , :PauseCommand , :StoreGroupCommand , :SetSecondsCommand , :PanUpCommand , :GetFlowRateCommand , :GetRelativeHumidityCommand , :GrabPictureCommand , :PanRightCommand , :HeatCommand , :IncreaseColorCommand , :NextTrackCommand , :SpeedUpCommand , :ToggleCommand , :PanDownCommand .

:DeleteApplianceCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "applianceId^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "deleteAppliance"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:PressedNotification  a  owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pressed"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:NotEmittingMicrowavesNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notEmittingMicrowaves"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ThreePhaseReactiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseReactiveEnergyCommand
                         ] .

:HeaterState  a          owl:Class ;
        rdfs:subClassOf  :TripleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :CoolingStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :FireUpStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :HeatingStateValue
                         ] .

:StartSuperHeatingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startSuperHeating"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:Entertainment  a         owl:Class ;
        rdfs:comment      "A diversion that holds the attention"^^xsd:string ;
        rdfs:label        "Entertainment"^^xsd:string ;
        rdfs:subClassOf   :BrownGoods ;
        owl:disjointWith  :Printer , :Fan .

:physicalType  a            owl:DatatypeProperty ;
        rdfs:comment        "The category of the component"^^xsd:string ;
        rdfs:domain         :BTicinoComponent ;
        rdfs:label          "physicalType"^^xsd:string ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :BTicinoProperty .

:Appliances  a            owl:Class ;
        rdfs:comment      "Durable goods for home or office use"^^xsd:string ;
        rdfs:label        "Appliances"^^xsd:string ;
        rdfs:subClassOf   :Controllable ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :isIn
                          ] ;
        owl:disjointWith  :HousePlants .

:Washbasin  a             owl:Class ;
        rdfs:comment      "A basin for washing the hands"^^xsd:string ;
        rdfs:label        "Washbasin"^^xsd:string ;
        rdfs:subClassOf   :SanitaryFixtures ;
        owl:disjointWith  :WaterCloset .

:OnOffLight  a           owl:Class ;
        rdfs:comment     "Simple lamp that can be just turn on or turn off"^^xsd:string ;
        rdfs:label       "SimpleLamp"^^xsd:string ;
        rdfs:subClassOf  :SimpleLamp ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :OnOffState ;
                           owl:onProperty     :hasState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :QueryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneFunctionality
                         ] .

:PowerFactorMeter  a     owl:Class ;
        rdfs:subClassOf  :ElectricityMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PowerFactorMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :PowerFactorMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PowerFactorMeasurementNotificationFunctionality
                         ] .

:PresenceSensor  a       owl:Class ;
        rdfs:subClassOf  :Sensor , :AccessControlSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :PresenceState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PresenceNotificationFunctionality
                         ] .

:SinglePhaseReactiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Co2MeasurementState  a  owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :Co2MeasurementStateValue
                         ] .

:Flat   a                 owl:Class ;
        rdfs:subClassOf   :BuildingEnvironment ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :contains
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :contains ;
                            owl:someValuesFrom  :Room
                          ] ;
        owl:disjointWith  :Room , :Garden , :Garage .

:SetRemainingTimeCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "remainingTime^^Measure"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setStartTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiTariffActiveEnergyStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :tariffID
                         ] .

:GetRelativeHumidityMCommand
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getRelativeHumidityFrom"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorURI^^String"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        owl:disjointWith  :TimedOnCommand , :SetHourCommand , :StoreGroupCommand , :SelectSourceCommand , :StoreSceneCommand , :GoToTrackCommand , :GetTemperatureMCommand , :SetSecondsCommand , :SetTimeoutCommand , :SetChannelCommand , :SetCommand , :GrabPictureCommand , :SetMinutesCommand , :SetSpeedCommand , :GetTemperatureCommand , :SetVolumeCommand , :SetDesiredTemperature .

:WaterMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ConsumedWaterStateValue
                         ] .

:FloodSensor  a           owl:Class ;
        rdfs:comment      "Sensor that detects the presence of flood"^^xsd:string ;
        rdfs:label        "FloodSensor"^^xsd:string ;
        rdfs:subClassOf   :FloodSystem , :Sensor ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :SensingState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        owl:disjointWith  :SingleFlowSensor , :PressureSensor , :WindowSensor , :SmokeSensor , :GasSensor , :OccupancySensor , :InfraredSensor .

:FlowRateMeasurementMNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "flowRateValue^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorID^^String"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedFlowRateAt"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementMNotification , :LeaveGroupNotification , :LevelControlNotification , :StoreSceneNotification , :HumidityMeasurementMNotification , :PressureMeasurementMNotification , :JoinGroupNotification .

:GetMultiTariff1PhaseReactiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    1 ;
                           owl:onProperty  :nParams
                         ] .

:ThreePhaseActiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseActiveEnergyMeasurementNotification
                         ] .

:OnOffLightSwitch  a     owl:Class ;
        rdfs:comment     "OnOffSwitch for Lights only, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf  :OnOffSwitch ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Lighting ;
                           owl:onProperty     :controlledObject
                         ] .

:EventNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :SingleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :EventNotification
                         ] .

:DisplayFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteOutputFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DisplayCommand
                         ] .

:SourceSelectionNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :SingleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SourceSelectionNotification
                         ] .

:HumidityStateValue  a    owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue , :ReactiveEnergyStateValue , :PressureStateValue , :LevelStateValue .

:FrequencyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :FrequencyMeasurementNotification
                         ] .

:VolumeLevelState  a     owl:Class ;
        rdfs:comment     "Models the volume value"^^xsd:string ;
        rdfs:label       "VolumeLevel"^^xsd:string ;
        rdfs:subClassOf  :LevelState .

:ThreePhaseActivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ActivePowerStateValue
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ActivePowerStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

:ProgramInterruptedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "programInterrupted"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:IdleNotification  a     owl:Class ;
        rdfs:subClassOf  :ZWaveNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "idle"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ZigBeeNotification  a   owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:EchelonProperty  a  owl:DatatypeProperty ;
        rdfs:domain  :EchelonNetworkComponent ;
        rdfs:range   xsd:string .

:ThermostaticRadiatorValve
        a                owl:Class ;
        rdfs:subClassOf  :Actuator , :HVACSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThermostatNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ClimateScheduleQueryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThermostatControlFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ClimateScheduleNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ClimateScheduleFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThermostatQueryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ClimateScheduleState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :TemperatureState
                         ] .

:IncreaseContrastCommand
        a                 owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "increaseContrast"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :OpenCommand , :OnCommand , :PlayCommand , :SetVolumeCommand , :StopPlayingCommand , :IncreaseLuminosityCommand , :StopHeatingCoolingCommand , :StoreSceneCommand , :ZoomOutCommand , :SetDesiredTemperature , :StandBy , :StepUpCommand , :ZoomInCommand , :SetHourCommand , :PanLeftCommand , :StoreGroupCommand , :PanUpCommand , :SpeedDownCommand , :TimedOnCommand , :OffFlashingCommand , :StepDownCommand , :OnFlashingCommand , :RewindCommand , :RestCommand , :PanRightCommand , :SetCommand , :PanDownCommand , :SetSecondsCommand , :PauseCommand , :PreviousTrackCommand , :UpCommand , :SetChannelCommand , :IncreaseQualityCommand , :SetMinutesCommand , :SpeedUpCommand , :ToggleCommand , :SetSpeedCommand , :OffCommand , :SetTimeoutCommand , :NextTrackCommand .

:MultipleFlowMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetFlowRateMCommand
                         ] .

:SpeedControlNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricLevelNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedSpeed"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newSpeed^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:WindowSensor  a         owl:Class ;
        rdfs:comment     "Sensor that controls if a window is closed"^^xsd:string ;
        rdfs:label       "WindowSensor"^^xsd:string ;
        rdfs:subClassOf  :AntiIntrusionSystem , :Sensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OpenCloseState
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Window ;
                           owl:onProperty     :sensorOf
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :sensorOf
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OpenCloseNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasFunctionality
                         ] .

:HueStateValue  a        owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:Wardrobe  a             owl:Class ;
        rdfs:comment     "A tall piece of furniture that provides storage space for clothes"^^xsd:string ;
        rdfs:label       "Wardrobe"^^xsd:string ;
        rdfs:subClassOf  :Furniture .

:SuperHeatingFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartSuperHeatingCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopSuperHeatingCommand
                         ] .

:RestCommand  a           owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "rest"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreSceneCommand , :StandBy , :SpeedDownCommand , :StepUpCommand , :RewindCommand , :SetSpeedCommand , :StoreGroupCommand , :SetDesiredTemperature , :SetVolumeCommand , :ZoomOutCommand , :ZoomInCommand , :StepDownCommand , :StopPlayingCommand , :SetTimeoutCommand , :SetSecondsCommand , :TimedOnCommand , :SetMinutesCommand , :SetCommand , :UpCommand , :SpeedUpCommand , :SetChannelCommand , :ToggleCommand , :StopHeatingCoolingCommand , :SetHourCommand .

:LuminosityNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :LuminosityMeasurementNotification
                         ] .

:IncreaseQualityCommand
        a                 owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "increaseQuality"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :PanUpCommand , :SetVolumeCommand , :PanLeftCommand , :TimedOnCommand , :UpCommand , :OffCommand , :SpeedDownCommand , :StoreSceneCommand , :ToggleCommand , :RestCommand , :PauseCommand , :OpenCommand , :SetSecondsCommand , :SetSpeedCommand , :StandBy , :SetTimeoutCommand , :SetMinutesCommand , :StepUpCommand , :OnFlashingCommand , :SetChannelCommand , :OffFlashingCommand , :RewindCommand , :PreviousTrackCommand , :SetHourCommand , :PanDownCommand , :StopHeatingCoolingCommand , :StopPlayingCommand , :PlayCommand , :PanRightCommand , :SpeedUpCommand , :NextTrackCommand , :OnCommand , :ZoomOutCommand , :StepDownCommand , :StoreGroupCommand , :ZoomInCommand , :SetDesiredTemperature , :SetCommand .

:UpCommand  a             owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "up"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :ZoomInCommand .

:DiscoveryState  a         owl:Class ;
        rdfs:subClassOf    :DiscreteState ;
        rdfs:subClassOf    [ a                   owl:Restriction ;
                             owl:onProperty      :hasStateValue ;
                             owl:someValuesFrom  :IdleStateValue
                           ] ;
        rdfs:subClassOf    [ a                   owl:Restriction ;
                             owl:onProperty      :hasStateValue ;
                             owl:someValuesFrom  :ActiveDiscoveryStateValue
                           ] ;
        terms:description  "Describes the state of the device discovery process, i.e., of the process charged to discover new devices on a Home Area network. It can either be active, if the discovery process is on going, or idle, if not."@en .

:VentilatingSystem  a    owl:Class ;
        rdfs:subClassOf  :HVACSystem .

:AssociationNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :AssociatingDeviceNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :IdleNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DisassociatingDeviceNotification
                         ] .

:Command  a              owl:Class ;
        rdfs:subClassOf  owl:Thing ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :realCommandName
                         ] .

:MultiTariffEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeter .

:ElectricityMeter  a     owl:Class ;
        rdfs:subClassOf  :Meter .

:StopPushLinkAuthenticationCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stopPushLinkAuth"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:AwningActuator  a        owl:Class ;
        rdfs:comment      "A mechanism that allow automatic control about awning"^^xsd:string ;
        rdfs:label        "AwningActuator"^^xsd:string ;
        rdfs:subClassOf   :Actuator ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Awning ;
                            owl:onProperty     :actuatorOf
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OpenCloseState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :MovementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :MovementState
                          ] ;
        owl:disjointWith  :WindowActuator , :DoorActuator , :GateActuator , :ShadeActuator , :ShutterActuator , :Pump .

:ThreePhaseCurrentMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newCurrentValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] .

terms:modified  a  owl:AnnotationProperty .

:OnOffOutput  a          owl:Class ;
        rdfs:comment     "Models a binary output which can be only in on or off state (OnOffState), compatible with the ZigBee HA specifications"@en ;
        rdfs:subClassOf  :PowerDelivery ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasFunctionality
                         ] .

:StoppedSuperCoolingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperCoolingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stoppedSuperCooling"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GasMeter  a             owl:Class ;
        rdfs:subClassOf  :Meter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :GasMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GasMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GasMeasurementFunctionality
                         ] .

:Bidet  a                 owl:Class ;
        rdfs:comment      "A basin for washing genitals and anal area"^^xsd:string ;
        rdfs:label        "Bidet"^^xsd:string ;
        rdfs:subClassOf   :SanitaryFixtures ;
        owl:disjointWith  :WaterCloset , :Washbasin , :Shower .

:returnType  a       owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :NonVoidCommand :ParametricNotification )
                     ] ;
        rdfs:range   [ a          rdfs:Datatype ;
                       owl:oneOf  [ a          rdf:List ;
                                    rdf:first  "Boolean"^^xsd:string ;
                                    rdf:rest   [ a          rdf:List ;
                                                 rdf:first  "DeviceStatus"^^xsd:string ;
                                                 rdf:rest   [ a          rdf:List ;
                                                              rdf:first  "Double"^^xsd:string ;
                                                              rdf:rest   [ a          rdf:List ;
                                                                           rdf:first  "Float"^^xsd:string ;
                                                                           rdf:rest   [ a          rdf:List ;
                                                                                        rdf:first  "Image"^^xsd:string ;
                                                                                        rdf:rest   [ a          rdf:List ;
                                                                                                     rdf:first  "Integer"^^xsd:string ;
                                                                                                     rdf:rest   [ a          rdf:List ;
                                                                                                                  rdf:first  "Long"^^xsd:string ;
                                                                                                                  rdf:rest   [ a          rdf:List ;
                                                                                                                               rdf:first  "Measure"^^xsd:string ;
                                                                                                                               rdf:rest   [ a          rdf:List ;
                                                                                                                                            rdf:first  "Object"^^xsd:string ;
                                                                                                                                            rdf:rest   [ a          rdf:List ;
                                                                                                                                                         rdf:first  "Object[]"^^xsd:string ;
                                                                                                                                                         rdf:rest   [ a          rdf:List ;
                                                                                                                                                                      rdf:first  "Set"^^xsd:string ;
                                                                                                                                                                      rdf:rest   ()
                                                                                                                                                                    
                                                                                                                                                                    ]
                                                                                                                                                       ]
                                                                                                                                          ]
                                                                                                                             ]
                                                                                                                ]
                                                                                                   ]
                                                                                      ]
                                                                         ]
                                                            ]
                                               ]
                                  ]
                     ] .

:SimpleMovementNotification
        a                 owl:Class ;
        rdfs:subClassOf   :MovementNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "startedMovement"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification , :SimpleNoMovementNotification .

:StopSuperFreezingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stopSuperFreezing"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:VolumeRegulationFunctionality
        a                owl:Class ;
        rdfs:comment     "Functionalities for the regulation of volume"^^xsd:string ;
        rdfs:label       "VolumeRegulationFunctionality"^^xsd:string ;
        rdfs:subClassOf  :ContinuousControlFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :IncreaseVolumeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :SetVolumeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DecreaseVolumeCommand
                         ] .

:Dishwasher  a            owl:Class ;
        rdfs:comment      "A machine for washing dishes"^^xsd:string ;
        rdfs:label        "Dishwasher"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :StartStopPauseFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :StartStopPauseNotificationFunctionality
                          ] ;
        owl:disjointWith  :Oven , :Stove , :Fridge , :WashingMachine .

:GasMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :GasM3MeasurementNotification
                         ] .

:CoolNotification  a     owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "cool"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:PowerFactorMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetPowerFactorCommand
                         ] .

:EndTimeChangedNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceCycleTimingNotification ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "endTime^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedEndTime"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MultiTariffSinglePhaseEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :MultiTariffEnergyMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseReactiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseReactiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseActiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseReactiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseActiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MultiTariffSinglePhaseActiveEnergyMeasurementNotificationFunctionality
                         ] .

:EndProgrammedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "endProgrammed"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:BuildingThing  a     owl:Class ;
        rdfs:comment  "All things that creates a Building, it is intended as root of all building components"^^xsd:string ;
        rdfs:label    "BuildingThing"^^xsd:string .

:GenericApplianceState
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteState .

:PreviousTrackCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "prev"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomInCommand , :RestCommand , :ToggleCommand , :StopHeatingCoolingCommand , :ZoomOutCommand , :StepUpCommand , :StopPlayingCommand , :SpeedDownCommand , :StepDownCommand , :StandBy , :UpCommand , :SpeedUpCommand , :RewindCommand .

:SimpleLamp  a           owl:Class ;
        rdfs:comment     "Simple lamp that can be just turn on or turn off"^^xsd:string ;
        rdfs:label       "SimpleLamp"^^xsd:string ;
        rdfs:subClassOf  :Lamp ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :QueryFunctionality
                         ] .

:ContinuousValue  a       owl:Class ;
        rdfs:subClassOf   :StateValue ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onClass                  <http://purl.oclc.org/NET/muo/muo#UnitOfMeasurement> ;
                            owl:onProperty               :unitOfMeasure
                          ] ;
        owl:disjointWith  :DiscreteValue .

:Closet  a                owl:Class ;
        rdfs:comment      "Confine to a small space."^^xsd:string ;
        rdfs:label        "Closet"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :SanitaryFixtures , :Shutter , :Sofa , :Drawer , :Nightstand , :Wardrobe , :Table , :Cupboard , :Desk , :Shade .

:SinglePhaseReactiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ReactiveEnergyStateValue
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ReactiveEnergyStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] .

:UpDownNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PressedDownNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PressedUpNotification
                         ] .

:SetHourCommand  a        owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setHour"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "hour^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :SpeedUpCommand , :TimedOnCommand , :SetMinutesCommand , :StoreSceneCommand , :StepUpCommand , :SpeedDownCommand , :UpCommand , :SetSpeedCommand , :SetTimeoutCommand , :ZoomInCommand , :SetVolumeCommand , :ToggleCommand , :StoreGroupCommand , :ZoomOutCommand , :StepDownCommand , :SetSecondsCommand .

:Tv     a                owl:Class ;
        rdfs:comment     "A receiver that displays television images"^^xsd:string ;
        rdfs:label       "Tv"^^xsd:string ;
        rdfs:subClassOf  :Entertainment ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :TunerState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :VolumeRegulationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :VolumeLevelState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TunerFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TunerNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :StandByOnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffStandByFunctionality
                         ] .

:Get1PhaseReactiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:DeleteSceneCommand  a    owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sceneNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "deleteScene"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :IncreaseLuminosityCommand , :GetRelativeHumidityMCommand , :SetHourCommand , :OffCommand , :SetTimeoutCommand , :UpCommand , :SelectSourceCommand , :DownCommand , :SetChannelCommand , :SetDesiredTemperature , :PanUpCommand , :SetCommand , :GetFlowRateMCommand , :SpeedDownCommand , :IncreaseQualityCommand , :StoreSceneCommand , :GoToTrackCommand , :SpeedUpCommand , :ToggleCommand , :IncreaseColorCommand , :StoreGroupCommand , :StepUpCommand , :GetPressureMCommand , :PanRightCommand , :StepDownCommand , :OpenCommand , :TimedOnCommand , :OnFlashingCommand , :RestCommand , :HeatCommand , :ZoomInCommand , :OnCommand , :SetSpeedCommand , :OffFlashingCommand , :SetVolumeCommand , :ZoomOutCommand , :GetTemperatureMCommand , :PanDownCommand , :SetMinutesCommand , :SetSecondsCommand , :IncreaseContrastCommand , :PanLeftCommand , :GetLuminanceCommand .

:SingleScenarioControl
        a                 owl:Class ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        owl:disjointWith  :ToggleRelay , :Thermostat , :Switch .

:ParametricLevelNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification .

:Communication  a         owl:Class ;
        rdfs:comment      "Appliances for communicate"^^xsd:string ;
        rdfs:label        "Communication"^^xsd:string ;
        rdfs:subClassOf   :BrownGoods ;
        owl:disjointWith  :Printer , :Fan , :Entertainment , :Computer .

:Pump   a                 owl:Class ;
        rdfs:comment      "The Pump device is a pump that may have variable speed. It may have optional built-in sensors and a regulation mechanism. It is typically used for pumping water. Derives from ZigBee HA specifications."@en ;
        rdfs:subClassOf   :HVACSystem , :Actuator ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PressureMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :PressureState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :FlowRateState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FlowMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TemperatureMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :QueryFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FlowMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :TemperatureState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TemperatureMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PressureMeasurementNotificationFunctionality
                          ] ;
        owl:disjointWith  :PumpController , :SingleFlowSensor , :WindowActuator , :VentilatingSystem , :ShadeActuator , :Thermostat , :ShutterActuator .

:Fax    a                 owl:Class ;
        rdfs:comment      "Appliance that send text and document"^^xsd:string ;
        rdfs:label        "Fax"^^xsd:string ;
        rdfs:subClassOf   :Communication ;
        owl:disjointWith  :Phone , :Interphone .

:NonParametricLevelNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :LevelStepDownNotification :LevelStepUpNotification :SpeedStepDownNotification :SpeedStepUpNotification :TuningStepDownNotification :TuningStepUpNotification ) .

:KonnexNotification  a   owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:ModbusComponent  a      owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:VoltageMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState .

:RaisingStateValue  a    owl:Class ;
        rdfs:subClassOf  :MovingStateValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "raising"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:DetectedNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "detected"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:FaultState  a           owl:Class ;
        rdfs:subClassOf  :DoubleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :FailureStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :NoFailureStateValue
                         ] .

:ThreePhaseReactiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ReactiveEnergyStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

<http://purl.oclc.org/NET/ssnx/ssn#Sensor>
        a       owl:Class .

:OverloadPauseResumeCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "overloadPauseResume"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiTariffThreePhaseReactiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetMultiTariff3PhaseReactiveEnergyCommand
                         ] .

:GetColdWaterM3Command
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getAmountOfColdWaterInM3"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:RinseHoldStateValue  a  owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "rinseHold"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:PauseCommand  a          owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "pause"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :RewindCommand , :PreviousTrackCommand , :UpCommand , :ToggleCommand , :StepUpCommand , :ZoomOutCommand , :StopHeatingCoolingCommand , :SpeedUpCommand , :PlayCommand , :StandBy , :StopPlayingCommand , :StepDownCommand , :SpeedDownCommand , :ZoomInCommand , :RestCommand .

:multicastIP  a             owl:DatatypeProperty ;
        rdfs:comment        "The multicast address of the gateway"^^xsd:string ;
        rdfs:domain         :KonnexGateway ;
        rdfs:label          "multicastIP"^^xsd:string ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :KonnexProperty .

:RemoteControl  a         owl:Class ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        owl:disjointWith  :ToggleRelay , :SceneSelector , :SingleScenarioControl , :ShadeController , :Thermostat , :Switch .

:ApparentPowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :PowerMeasurementFunctionality .

:SuperCoolingStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "superCooling"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:GetMultiTariff3PhaseActiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiTariffSinglePhaseReactiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:HueManager  a           owl:Class ;
        rdfs:subClassOf  :HueComponent ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :DiscoveryFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :DiscoveryNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :DiscoveryState
                         ] .

:ReactivePowerStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] .

:GetMultiTariff1PhaseActiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    1 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:DecreaseVolumeCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "decreaseVolume"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:HumidityMeasurementState
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :HumidityStateValue
                          ] ;
        owl:disjointWith  :TunerState , :TemperatureState , :ShadeState , :PressureState , :LevelState .

:SaturationStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:ThreePhaseActivePowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseActivePowerMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseActivePowerMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseActivePowerMeasurementFunctionality
                         ] .

:Garden  a                owl:Class ;
        rdfs:comment      "The garden of the building"^^xsd:string ;
        rdfs:label        "Garden"^^xsd:string ;
        rdfs:subClassOf   :BuildingEnvironment ;
        owl:disjointWith  :Room .

:actuatorOf  a         owl:ObjectProperty ;
        rdfs:domain    :Actuator ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( :Awning :Door :Gate :Shutter :Window )
                       ] ;
        owl:inverseOf  :hasActuator .

:Fan    a                 owl:Class ;
        rdfs:comment      "A device for creating a current of air"^^xsd:string ;
        rdfs:label        "Fan"^^xsd:string ;
        rdfs:subClassOf   :BrownGoods ;
        owl:disjointWith  :Printer .

:MultiTariffThreePhaseActiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetMultiTariff3PhaseActiveEnergyCommand
                         ] .

:DecreaseColorCommand
        a                 owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "decreaseColor"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :OnCommand , :StoreGroupCommand , :ZoomInCommand , :SetVolumeCommand , :PauseCommand , :UpCommand , :PanRightCommand , :HeatCommand , :IncreaseColorCommand , :IncreaseLuminosityCommand , :DecreaseQualityCommand , :DownCommand , :SetSecondsCommand , :SetTimeoutCommand , :SetCommand , :SetSpeedCommand , :SpeedDownCommand , :StandBy , :OffFlashingCommand , :SetHourCommand , :GetCommand , :OnFlashingCommand , :TimedOnCommand , :GoToTrackCommand , :GetTemperatureCommand , :PlayCommand , :SetMinutesCommand , :GetOccupancyCommand , :PreviousTrackCommand , :PanLeftCommand , :ToggleCommand , :ZoomOutCommand , :DecreaseLuminosityCommand , :GetRelativeHumidityCommand , :StepUpCommand , :DecreaseContrastCommand , :SetDesiredTemperature , :DeleteSceneCommand , :RestCommand , :DeleteGroupCommand , :ForwardCommand , :PanDownCommand , :IncreaseQualityCommand , :GetPressureCommand , :StepDownCommand , :GrabPictureCommand , :StopPlayingCommand , :PanUpCommand , :StoreSceneCommand , :RewindCommand , :SpeedUpCommand , :GetFlowRateCommand , :NextTrackCommand , :IncreaseContrastCommand , :StopHeatingCoolingCommand , :OpenCommand , :OffCommand , :SetChannelCommand .

:FireUpStateValue  a     owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "firingUp"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:CurrentStateValue  a     owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :phaseID
                          ] ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue , :LevelStateValue , :FlowRateStateValue , :HumidityStateValue , :ReactiveEnergyStateValue , :PressureStateValue .

:ThreePhaseReactivePowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactivePowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] .

:OpenNotification  a     owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "open"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:LevelNotificationFunctionality
        a                    owl:Class ;
        rdfs:subClassOf      :ContinuousNotificationFunctionality ;
        owl:disjointUnionOf  ( :PlayNotificationFunctionality :SimpleLevelNotificationFunctionality :SpeedNotificationFunctionality :TunerNotificationFunctionality ) .

:SinglePhaseActivePowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActivePowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "powerValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:EnergyMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState .

:StartStopPauseFunctionality
        a                owl:Class ;
        rdfs:comment     "A functionality describing the ability of a device, tipically an appliance, to start, stop or pause its current cycle."^^xsd:string ;
        rdfs:subClassOf  :TripleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :PauseCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopCommand
                         ] .

:GetHeatingEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getHeatingEnergy"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:SetDailyClimateScheduleCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "daySchedule^^DailyClimateSchedule"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    1 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setDailyClimateSchedule"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:ThreePhaseLLVoltageMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newPhasePhaseVoltageValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:OffFlashingCommand  a    owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "offFlashing"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :SetTimeoutCommand , :OnFlashingCommand , :PanLeftCommand , :OnCommand , :StepUpCommand , :StandBy , :StepDownCommand , :PanUpCommand , :PauseCommand , :TimedOnCommand , :StopPlayingCommand , :SetHourCommand , :OpenCommand , :RestCommand , :PanDownCommand , :StopHeatingCoolingCommand , :SpeedUpCommand , :ZoomOutCommand , :SetSpeedCommand , :SetMinutesCommand , :SetCommand , :StoreSceneCommand , :SpeedDownCommand , :SetDesiredTemperature , :PreviousTrackCommand , :PanRightCommand , :RewindCommand , :SetChannelCommand , :PlayCommand , :StoreGroupCommand , :ZoomInCommand , :ToggleCommand , :UpCommand , :SetVolumeCommand , :SetSecondsCommand .

:PauseApplianceNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceRunNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pause"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SinglePhaseApparentPowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseApparentPowerMeasurementNotification
                         ] .

:LevelStepDownNotification
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricLevelNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stepDown"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification , :SimpleNoMovementNotification , :SimpleMovementNotification , :PressureMeasurementNotification , :LevelStepUpNotification .

:hasNotification  a  owl:ObjectProperty ;
        rdfs:domain  :NotificationFunctionality ;
        rdfs:range   :Notification .

:UpDownRestFunctionality
        a                owl:Class ;
        rdfs:comment     "Functionality: up - down - rest"^^xsd:string ;
        rdfs:label       "UpDownRestFunctionality"^^xsd:string ;
        rdfs:subClassOf  :TripleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :RestCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DownCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :UpCommand
                         ] .

:StepDownCommand  a       owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stepDown"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreSceneCommand , :StoreGroupCommand , :TimedOnCommand , :ToggleCommand , :StepUpCommand , :ZoomOutCommand , :ZoomInCommand , :UpCommand , :StopPlayingCommand , :StopHeatingCoolingCommand .

:GetCommand  a            owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getState"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "DeviceStatus"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        owl:disjointWith  :PanLeftCommand , :OffCommand , :GrabPictureCommand , :GetFlowRateMCommand , :ToggleCommand , :StepDownCommand , :PreviousTrackCommand , :PanDownCommand , :GetRelativeHumidityMCommand , :PanUpCommand , :ZoomInCommand , :PlayCommand , :GetFlowRateCommand , :RestCommand , :PanRightCommand , :IncreaseContrastCommand , :NextTrackCommand , :GetOccupancyCommand , :UpCommand , :OnCommand , :IncreaseLuminosityCommand , :IncreaseColorCommand , :ZoomOutCommand , :StandBy , :GetRelativeHumidityCommand , :GetPressureMCommand , :IncreaseQualityCommand , :StopPlayingCommand , :GetPressureCommand , :StopHeatingCoolingCommand , :OnFlashingCommand , :PauseCommand , :OffFlashingCommand , :StepUpCommand , :RewindCommand , :GetTemperatureMCommand , :GetLuminanceCommand , :SpeedDownCommand , :OpenCommand , :GetTemperatureCommand , :SpeedUpCommand , :HeatCommand .

:datapointAlias  a          owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :EchelonCommand :EchelonNetworkComponent :EchelonNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :EchelonIlon100Property .

:ModBusProperty  a   owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :ModBusStateValue :ModbusCommand :ModbusComponent :ModbusNotification )
                     ] ;
        rdfs:range   rdfs:Literal .

:ContinuousNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Notification of continuous values"^^xsd:string ;
        rdfs:label        "ContinuousNotificationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :NotificationFunctionality ;
        owl:disjointWith  :DiscreteNotificationFunctionality .

:DoubleValuedFunctionality
        a                 owl:Class ;
        rdfs:comment      "Discrete functionalities with exactly two values"^^xsd:string ;
        rdfs:label        "DoubleValuedFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DiscreteControlFunctionality ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasCommand
                          ] ;
        owl:disjointWith  :TripleValuedFunctionality , :SingleValuedFunctionality , :PlayFunctionality , :NetworkFunctionality .

:Kitchen  a              owl:Class ;
        rdfs:comment     "A room equipped for preparing meals"^^xsd:string ;
        rdfs:label       "Kitchen"^^xsd:string ;
        rdfs:subClassOf  :Room .

:DimmableLight  a        owl:Class ;
        rdfs:comment     "The Dimmable Light device is a light that can be switched on and off, and whose luminance level may be controlled, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf  :DimmerLamp ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SceneNotificationFunctionality
                         ] .

:ThreePhaseApparentPowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseApparentPowerMeasurementNotification
                         ] .

:ParametricNotification
        a                owl:Class ;
        rdfs:subClassOf  :Notification ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onClass                  <http://purl.oclc.org/NET/muo/muo#UnitOfMeasurement> ;
                           owl:onProperty               :unitOfMeasure
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :nParams
                         ] .

:PowerDelivery  a         owl:Class ;
        rdfs:subClassOf   :ElectricalSystem ;
        owl:disjointWith  :Sensor .

:LuminosityMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "luminosityValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newLuminosityValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SetVolumeCommand  a      owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setVolume"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "volume^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :SpeedDownCommand , :StoreGroupCommand , :ZoomOutCommand , :SpeedUpCommand , :StepUpCommand , :ZoomInCommand , :StoreSceneCommand , :ToggleCommand , :StepDownCommand , :TimedOnCommand , :UpCommand .

:HeatingEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newHeatingEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "heatingEnergy^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:SourceSelectionNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedSource"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "sourceId^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:DiscoveryIdleNotification
        a                owl:Class ;
        rdfs:subClassOf  :HueNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "deactivatedDiscovery"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:AutoRegulationStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "auto"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Actuator  a              owl:Class ;
        rdfs:comment      "A mechanism that puts something into automatic action"^^xsd:string ;
        rdfs:label        "Actuator"^^xsd:string ;
        rdfs:subClassOf   :ElectricalSystem ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :isIn
                          ] ;
        owl:disjointWith  :Sensor , :PowerDelivery , :Lighting .

:ForwardStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "forward"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:IncreaseLuminosityCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "increaseLuminosity"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :PanUpCommand , :StepDownCommand , :OnFlashingCommand , :NextTrackCommand , :StopPlayingCommand , :ZoomOutCommand , :PlayCommand , :TimedOnCommand , :SetChannelCommand , :StepUpCommand , :PanLeftCommand , :SetMinutesCommand , :RewindCommand , :IncreaseQualityCommand , :StopHeatingCoolingCommand , :OffFlashingCommand , :SetSpeedCommand , :RestCommand , :ToggleCommand , :SetCommand , :SetVolumeCommand , :StoreGroupCommand , :OpenCommand , :SetSecondsCommand , :StandBy , :SetTimeoutCommand , :SetHourCommand , :PanRightCommand , :PauseCommand , :UpCommand , :ZoomInCommand , :PreviousTrackCommand , :StoreSceneCommand , :OffCommand , :SpeedDownCommand , :SetDesiredTemperature , :PanDownCommand , :OnCommand , :SpeedUpCommand .

:PowerFactorStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:DisconnectedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disconnected"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:StepFunctionality  a     owl:Class ;
        rdfs:subClassOf   :DoubleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StepUpCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StepDownCommand
                          ] ;
        owl:disjointWith  :UpDownFunctionality .

:VoltageMeter  a         owl:Class ;
        rdfs:subClassOf  :ElectricityMeter .

:Get3PhaseApparentPowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getApparentPower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:contains  a          owl:ObjectProperty ;
        rdfs:comment  "Indicates which object are contained in a building environment, e.g. the kitchen contains Lamp1,Lamp2..."^^xsd:string ;
        rdfs:domain   :BuildingEnvironment ;
        rdfs:label    "contains"^^xsd:string ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( :Appliances :BuildingEnvironment :Furniture :HousePlants )
                      ] .

:connectionTrials  a  owl:DatatypeProperty ;
        rdfs:comment  "Number of connection trials before failure"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :KonnexGateway )
                      ] ;
        rdfs:label    "connectionTrials"^^xsd:string ;
        rdfs:range    xsd:int .

:GetStartTimeCommand  a  owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getStartTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:DiscoveryFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopDiscoveryCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartDiscoveryCommand
                         ] .

:PanRightCommand  a       owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "panRight"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :PanUpCommand , :StopPlayingCommand , :PreviousTrackCommand , :TimedOnCommand , :ZoomOutCommand , :StopHeatingCoolingCommand , :StoreGroupCommand , :PlayCommand , :SpeedDownCommand , :SpeedUpCommand , :StandBy , :SetHourCommand , :RestCommand , :SetCommand , :ZoomInCommand , :PauseCommand , :SetTimeoutCommand , :SetMinutesCommand , :StepDownCommand , :SetSecondsCommand , :SetVolumeCommand , :RewindCommand , :SetChannelCommand , :SetSpeedCommand , :UpCommand , :StoreSceneCommand , :ToggleCommand , :SetDesiredTemperature , :StepUpCommand .

:DisassociatingDeviceNotification
        a                owl:Class ;
        rdfs:subClassOf  :ZWaveNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disassociating"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:StandBy  a               owl:Class ;
        rdfs:subClassOf   :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "standBy"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StepUpCommand , :StepDownCommand , :StopHeatingCoolingCommand , :StopPlayingCommand , :UpCommand , :ZoomInCommand , :ZoomOutCommand , :ToggleCommand .

:AuxStateValue  a        owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "aux"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Lobby  a                owl:Class ;
        rdfs:comment     "A large entrance"^^xsd:string ;
        rdfs:label       "Lobby"^^xsd:string ;
        rdfs:subClassOf  :Room .

:TemperatureMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "temperatureValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newTemperatureValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:MultipleTemperatureStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :probeID
                         ] .

:ContinuousControlFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionalities continuous in time or space"^^xsd:string ;
        rdfs:label        "ContinuousFunctionality"^^xsd:string ;
        rdfs:subClassOf   :ControlFunctionality ;
        owl:disjointWith  :DiscreteControlFunctionality .

:PowerFactorMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :PowerFactorStateValue
                         ] .

:NotMovingStateValue  a  owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notMoving"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:OpenCloseState  a        owl:Class ;
        rdfs:comment      "State: open - close"^^xsd:string ;
        rdfs:label        "OpenCloseState"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OpenStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :CloseStateValue
                          ] ;
        owl:disjointWith  :SensingState , :PresenceState .

:LampHolder  a           owl:Class ;
        rdfs:subClassOf  :OnOffOutput .

:ColorNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ColorHSBNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ColorRGBNotification
                         ] .

:HiFi   a                 owl:Class ;
        rdfs:comment      "Equipment for the reproduction of sound with high fidelity"^^xsd:string ;
        rdfs:label        "HiFi"^^xsd:string ;
        rdfs:subClassOf   :Entertainment ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TimedOnFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SourceSelectionFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TunerFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PlayFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandByFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :TunerState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :PlayState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :VolumeRegulationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PlayNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :VolumeLevelState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :StandByOnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TunerNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :SourceSelectionState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SourceSelectionNotificationFunctionality
                          ] ;
        owl:disjointWith  :Radio , :Tv .

:ThreePhaseActiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseActiveEnergyCommand
                         ] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :ActiveDiscoveryStateValue :ActivePushLinkAuthenticationStateValue :AssociatingStateValue :AuthenticatedStateValue :AutoRegulationStateValue :AuxStateValue :CDStateValue :ClimateScheduleStateValue :CloseStateValue :ConnectedStateValue :CoolingStateValue :DetectedStateValue :DisassociatingStateValue :DisconnectedStateValue :DownTripleStateValue :EmittingMicrowavesStateValue :EndProgrammedStateValue :FailureStateValue :FireUpStateValue :ForwardStateValue :FreeStateValue :HeatingStateValue :IdleStateValue :MovingStateValue :NeedingAuthenticationStateValue :NoFailureStateValue :NotDetectedStateValue :NotEmittingMicrowavesStateValue :NotMovingStateValue :NotPresentState :NotProgrammedStateValue :OccupiedStateValue :OffStateValue :OnStateValue :OpenStateValue :PauseStateValue :PhonoStateValue :PlayStateValue :PresentStateValue :ProgramInterruptedStateValue :ProgrammedAndWaitingToStartStateValue :ProgrammedStateValue :RestTripleStateValue :RewindStateValue :RinseHoldStateValue :RunningStateValue :StandByStateValue :StopStateValue :SuperCoolingStateValue :SuperFreezingStateValue :SuperHeatingStateValue :Tape1StateValue :Tape2StateValue :TunerStateValue :UpTripleStateValue )
] .

:OnOffSwitch  a          owl:Class ;
        rdfs:comment     "Generic OnOff switch, derives from the ZigBee Home Automation specification"@en ;
        rdfs:subClassOf  :Switch ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :NetworkFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :OnOffState ;
                           owl:onProperty     :hasState
                         ] .

:ThreePhaseActiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:CycleTimingQueryFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetStartTimeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetRemainingTimeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetEndTimeCommand
                         ] .

:ActivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementState .

:WaterMeasurementFuctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetColdWaterM3Command
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetHotWaterM3Command
                         ] .

:PushLinkAuthenticationActiveNotification
        a                owl:Class ;
        rdfs:subClassOf  :HueNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "activatedPushLinkAuth"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ModBusStateValue  a     owl:Class ;
        rdfs:subClassOf  :NetworkSpecificStateValue .

:ApparentPowerStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] .

:Phone  a                owl:Class ;
        rdfs:comment     "Appliance to comunicate with other person"^^xsd:string ;
        rdfs:label       "Phone"^^xsd:string ;
        rdfs:subClassOf  :Communication .

:DiscoveryNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DiscoveryIdleNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DiscoveryActiveNotification
                         ] .

:Terrace  a              owl:Class ;
        rdfs:comment     "Outdoor area adjoining a residence"^^xsd:string ;
        rdfs:label       "Terrace"^^xsd:string ;
        rdfs:subClassOf  :Horizontal .

:SpeedStepDownNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricLevelNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "speedDown"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:DiscreteValue  a        owl:Class ;
        rdfs:subClassOf  :StateValue .

:nParams  a          owl:FunctionalProperty , owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :ParametricCommand :ParametricNotification )
                     ] ;
        rdfs:range   xsd:int .

:EnergyAndPowerMeteringLevelControllableOutput
        a                owl:Class ;
        rdfs:subClassOf  :SinglePhaseActivePowerMeter , :SinglePhaseActiveEnergyMeter , :LevelControllableOutput .

:Get3PhaseActiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:ApparentPowerMeter  a   owl:Class ;
        rdfs:subClassOf  :PowerMeter .

:Co2Sensor  a            owl:Class ;
        rdfs:subClassOf  :Sensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :Co2MeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :Co2MeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :Co2MeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :Co2MeasurementState ;
                           owl:onProperty            :hasState ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] .

:SinglePhaseCurrentMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseCurrentMeasurementNotification
                         ] .

:Get1PhaseActiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:BTicinoGateway  a        owl:Class ;
        rdfs:comment      "A BTIcino Gateway"^^xsd:string ;
        rdfs:label        "BTicinoGateway"^^xsd:string ;
        rdfs:subClassOf   :BTicinoComponent ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :port
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :IPAddress
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :connectionTrials
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :sleepTime
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :connectionTimeOut
                          ] ;
        owl:disjointWith  :KonnexGateway , :EliteGateway .

:VoltageMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality .

:OccupiedStateValue  a   owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "personInside"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Building  a              owl:Class ;
        rdfs:subClassOf   :BuildingEnvironment ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :contains ;
                            owl:someValuesFrom  :Garden
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :contains ;
                            owl:someValuesFrom  :Flat
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :contains ;
                            owl:someValuesFrom  :Storey
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :contains
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :contains ;
                            owl:someValuesFrom  :Garage
                          ] ;
        owl:disjointWith  :Room , :Garden , :Flat , :Garage .

:MultiTariffSinglePhaseActiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:minQualifiedCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onClass                  :MultiTariffActiveEnergyStateValue ;
                           owl:onProperty               :hasStateValue
                         ] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :ApplianceRunNotification :CloseNotification :CoolNotification :DetectedNotification :EmittingMicrowavesNotification :FiringUpNotification :HeatNotification :IdentifyNotification :IsPresentNotification :MovementNotification :NoMovementNotification :NonParametricLevelNotification :NotDetectedNotification :NotEmittingMicrowavesNotification :NotPresentNotification :OffNotification :OnNotification :OpenNotification :PlaybackNotification :PressedDownNotification :PressedNotification :PressedUpNotification :ReleasedNotification :StandByNotification :StopHeatingCoolingNotification :SuperCoolingNotification :SuperFreezingNotification :SuperHeatingNotification :WashingNotification )
] .

:StepShutterActuator  a  owl:Class ;
        rdfs:subClassOf  :ShutterActuator ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :StepFunctionality
                         ] .

:ElectricPowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState .

:ShutterButton  a        owl:Class ;
        rdfs:subClassOf  :Control ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :UpDownNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :UpDownRestState
                         ] .

:EliteComponent  a        owl:Class ;
        rdfs:comment      "Emulated component"^^xsd:string ;
        rdfs:label        "EliteComponent"^^xsd:string ;
        rdfs:subClassOf   :NetworkComponent ;
        owl:disjointWith  :ZigBeeComponent , :KonnexComponent .

:ReleasedNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "released"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:OffStateValue  a        owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "off"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Cupboard  a              owl:Class ;
        rdfs:comment      "A small room (or recess) or cabinet used for storage space"^^xsd:string ;
        rdfs:label        "Cupboard"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :SanitaryFixtures , :Wardrobe , :Drawer , :Sofa , :Shade , :Table , :Nightstand , :Desk , :Shutter .

:BTicinoComponent  a      owl:Class ;
        rdfs:comment      "Components manufactured by Bticino"^^xsd:string ;
        rdfs:label        "BTicinoComponent"^^xsd:string ;
        rdfs:subClassOf   :NetworkComponent ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :physicalType
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :physicalAddress
                          ] ;
        owl:disjointWith  :ZigBeeComponent , :KonnexComponent , :EliteComponent .

:ClimateScheduleStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onDataRange           xsd:string ;
                           owl:onProperty            :weekDay ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] .

:SetEndTimeCommand  a    owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setStartTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "endTime^^Measure"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:PanDownCommand  a        owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "panDown"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :PlayCommand , :SetTimeoutCommand , :StepUpCommand , :SpeedDownCommand , :StepDownCommand , :UpCommand , :PanRightCommand , :SetVolumeCommand , :SetSpeedCommand , :StoreSceneCommand , :SpeedUpCommand , :SetChannelCommand , :ZoomInCommand , :RewindCommand , :StopHeatingCoolingCommand , :StoreGroupCommand , :SetSecondsCommand , :PanUpCommand , :PreviousTrackCommand , :SetMinutesCommand , :RestCommand , :PauseCommand , :ZoomOutCommand , :SetHourCommand , :StandBy , :SetCommand , :SetDesiredTemperature , :PanLeftCommand , :ToggleCommand , :TimedOnCommand , :StopPlayingCommand .

:SinglePhaseApparentPowerMeter
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseApparentPowerMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseApparentPowerMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseApparentPowerMeasurementState
                         ] .

:SelfClosingDoorActuator
        a                owl:Class ;
        rdfs:subClassOf  :DoorActuator ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TimedOnFunctionality
                         ] .

rdfs:label  a   owl:AnnotationProperty .

:PresentStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "present"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Bed    a                 owl:Class ;
        rdfs:comment      "Piece of furniture that provides a place to sleep."^^xsd:string ;
        rdfs:label        "Bed"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Desk , :SanitaryFixtures , :Shutter , :Sofa , :Shade , :Nightstand , :Chair , :Closet , :Wardrobe , :Cupboard , :Drawer , :Table .

:hasActuator  a       owl:ObjectProperty ;
        rdfs:comment  "Association between a mobile uncontrollable object and its actuator"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :Awning :Door :Gate :Shutter :Window )
                      ] ;
        rdfs:label    "hasActuator"^^xsd:string ;
        rdfs:range    :Actuator .

:InfraredSensor  a        owl:Class ;
        rdfs:comment      "Sensor that detects the presence of a living entity in the sensor's range"^^xsd:string ;
        rdfs:label        "InfraredSensor"^^xsd:string ;
        rdfs:subClassOf   :Sensor , :AntiIntrusionSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :SensingState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SensingNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        owl:disjointWith  :OccupancySensor , :SurveillanceCamera , :PressureSensor , :WindowSensor , :SingleFlowSensor , :SmokeSensor .

:Shade  a                 owl:Class ;
        rdfs:comment      "Shade object, the name includes an underscore sign only for distinguishing the name from the shade actuator, whose name is directly mapped from ZigBee"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Wardrobe , :Table , :Sofa , :Shutter .

:NetworkSpecificCommand
        a                owl:Class ;
        rdfs:subClassOf  :Command .

:ActivePowerStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :phaseID
                         ] .

:HeatNotification  a     owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "heat"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:OnOffState  a            owl:Class ;
        rdfs:comment      "State: on - off"^^xsd:string ;
        rdfs:label        "OnOffState"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OffStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OnStateValue
                          ] ;
        owl:disjointWith  :SensingState , :PresenceState , :OpenCloseState .

:DiscreteNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "Notification of fixed values"^^xsd:string ;
        rdfs:label       "DiscreteNotificationFunctionality"^^xsd:string ;
        rdfs:subClassOf  :NotificationFunctionality .

:EchelonNotification  a  owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:eZ430Chronos  a         owl:Class ;
        rdfs:subClassOf  :Clock ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SoundFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :DisplayFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ButtonMNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TridimensionalAccelerationNotificationFunctionality
                         ] .

:PressedMNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "buttonID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pressed"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ActiveEnergyStateValue
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :phaseID
                          ] ;
        owl:disjointWith  :ChannelStateValue , :PressureStateValue , :TemperatureStateValue , :FlowRateStateValue , :ShadeStateValue , :HumidityStateValue , :CurrentStateValue , :ReactiveEnergyStateValue , :LevelStateValue .

:TripleValuedNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteNotificationFunctionality ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :Notification ;
                           owl:onProperty            :hasNotification ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

:SetChannelCommand  a     owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "channel^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setChannel"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreGroupCommand , :StepUpCommand , :SetCommand , :ZoomInCommand , :SetDesiredTemperature , :ZoomOutCommand , :SpeedUpCommand , :SetSecondsCommand , :SetMinutesCommand , :SetVolumeCommand , :StepDownCommand , :SetSpeedCommand , :SetHourCommand , :TimedOnCommand , :StoreSceneCommand , :UpCommand , :SpeedDownCommand , :ToggleCommand , :SetTimeoutCommand .

:LightSensor  a          owl:Class ;
        rdfs:comment     "The Light Sensor device reports the illuminance of an area"@en ;
        rdfs:subClassOf  :Sensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :LightSensingFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :LightIntensityState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :LuminosityNotificationFunctionality
                         ] .

:QuadSensor  a           owl:Class ;
        rdfs:subClassOf  :SingleTemperatureSensor , :MovementSensor , :LightSensor , :HumiditySensor .

:PowerMeteringPowerOutlet
        a                owl:Class ;
        rdfs:subClassOf  :SinglePhaseActivePowerMeter , :MainsPowerOutlet .

:MovingUpNotification
        a                owl:Class ;
        rdfs:subClassOf  :MovementNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "movingUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:hasFunctionality  a  owl:ObjectProperty ;
        rdfs:comment  "Provide functionalities to controllable things"^^xsd:string ;
        rdfs:domain   :Controllable ;
        rdfs:label    "hasFunctionality"^^xsd:string ;
        rdfs:range    :Functionality .

:SetMinutesCommand  a     owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setMinutes"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "minutes^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :StoreGroupCommand , :TimedOnCommand , :SpeedUpCommand , :SetSecondsCommand , :SpeedDownCommand , :SetSpeedCommand , :StepUpCommand , :SetTimeoutCommand , :ZoomInCommand , :SetVolumeCommand , :StoreSceneCommand , :ZoomOutCommand , :StepDownCommand , :UpCommand , :ToggleCommand .

:StartDiscoveryCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startDiscovery"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:NetworkSpecificStateValue
        a                owl:Class ;
        rdfs:subClassOf  :StateValue .

:plugOf  a                  owl:ObjectProperty ;
        rdfs:domain         :PowerDelivery ;
        rdfs:range          :Appliances ;
        rdfs:subPropertyOf  owl:topObjectProperty ;
        owl:inverseOf       :pluggedIn .

:meterOf  a                 owl:ObjectProperty ;
        rdfs:domain         :Meter ;
        rdfs:range          :Controllable ;
        rdfs:subPropertyOf  owl:topObjectProperty .

:StartedSuperHeatingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperHeatingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startedSuperHeating"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Clock  a                owl:Class ;
        rdfs:subClassOf  :BrownGoods .

:KonnexCommand  a        owl:Class ;
        rdfs:subClassOf  :NetworkSpecificCommand .

:NoFailureStateValue  a  owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "noFailure"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:LevelState  a            owl:Class ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :LevelStateValue
                          ] ;
        owl:disjointWith  :TunerState , :TemperatureState , :ShadeState , :PressureState .

:Get1PhaseVoltageCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getPhaseNeutralVoltageValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:OpenNetworkCommand  a   owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "openNetwork"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:DiscoveryActiveNotification
        a                owl:Class ;
        rdfs:subClassOf  :HueNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "activatedDiscovery"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:commandOf  a          owl:ObjectProperty ;
        rdfs:domain    :Command ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( :ControlFunctionality :QueryFunctionality )
                       ] ;
        owl:inverseOf  :hasCommand .

:hasSensor  a         owl:ObjectProperty ;
        rdfs:comment  "Association between an object and its sensor"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :FenceOpening :WallOpening )
                      ] ;
        rdfs:label    "hasSensor"^^xsd:string ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( :DoorSensor :WindowSensor )
                      ] .

:Acoustic  a              owl:Class ;
        rdfs:subClassOf   :ElectricalSystem ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :isIn
                          ] ;
        owl:disjointWith  :Sensor , :PowerDelivery , :Lighting , :Control , :Actuator .

:SingleTemperatureSensor
        a                owl:Class ;
        rdfs:comment     "Sensor that detects the temperature of the atmosphere"^^xsd:string ;
        rdfs:label       "TemperatureSensor"^^xsd:string ;
        rdfs:subClassOf  :TemperatureSensor , :HVACSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :GroupNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :TemperatureState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TemperatureMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :TemperatureMeasurementNotificationFunctionality
                         ] .

:Room   a                owl:Class ;
        rdfs:comment     "A room of the building"^^xsd:string ;
        rdfs:label       "Room"^^xsd:string ;
        rdfs:subClassOf  :BuildingEnvironment ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasCeiling
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasFloor
                         ] .

:LeaveGroupNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification , :NetworkNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "leftGroup"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "groupNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :LevelControlNotification , :PressureMeasurementMNotification , :StoreSceneNotification , :TemperatureMeasurementMNotification .

:SinglePhaseActivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ActivePowerStateValue
                         ] .

:StoreGroupCommand  a     owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "storeGroup"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "groupID^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :ZoomInCommand , :ToggleCommand , :UpCommand , :StoreSceneCommand , :TimedOnCommand .

:HeatingAndCoolingUnit
        a                 owl:Class ;
        rdfs:comment      "The Heating and Cooling Unit device can heat or cool a space in a house. It is not mandatory to provide both functionalities. It may be an indoor air handler. Derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf   :HVACSystem , :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SpeedNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FanControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :HeatingAndCoolingUnitState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :QueryFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlFunctionality
                          ] ;
        owl:disjointWith  :VentilatingSystem , :Thermostat , :SceneSelector , :Knob , :PumpController , :RemoteControl , :ToggleRelay , :Switch , :SingleScenarioControl , :ShadeController , :Pump , :HeatingSystem , :PressureSensor , :SingleFlowSensor .

:PlayFunctionality  a     owl:Class ;
        rdfs:subClassOf   :DiscreteControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GoToTrackCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PreviousTrackCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StopPlayingCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :NextTrackCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PauseCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :RewindCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PlayCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :ForwardCommand
                          ] ;
        owl:disjointWith  :TripleValuedFunctionality , :SingleValuedFunctionality .

:hasControl  a         owl:ObjectProperty ;
        rdfs:comment   "Association between an object and its controller,e.g.switch,button,knob"^^xsd:string ;
        rdfs:domain    [ a            owl:Class ;
                         owl:unionOf  ( :Acoustic :Actuator :Control :Lighting :PowerDelivery )
                       ] ;
        rdfs:label     "hasControl"^^xsd:string ;
        rdfs:range     :Control ;
        owl:inverseOf  :controlledObject .

:OnOffStandByFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :TripleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StandBy
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OffCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OnCommand
                          ] ;
        owl:disjointWith  :UpDownRestFunctionality .

:ProgrammedAndWaitingToStartStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "programmedAndWaitingToStart"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

terms:rights  a  owl:AnnotationProperty .

:GetTemperatureMCommand
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorURI^^String"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getTemperatureFrom"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :SetTimeoutCommand , :TimedOnCommand , :SetMinutesCommand , :SetVolumeCommand , :SetCommand , :SetSpeedCommand , :StoreGroupCommand , :SetSecondsCommand , :GoToTrackCommand , :SetDesiredTemperature , :GrabPictureCommand , :StoreSceneCommand , :SetChannelCommand , :SetHourCommand , :SelectSourceCommand .

:ColorDimmerSwitch  a    owl:Class ;
        rdfs:comment     "The Color Dimmer Switch device can turn a light on and off, and control the luminance, hue and saturation levels of a multicolor light, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf  :DimmerSwitch ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ColorDimmableLight ;
                           owl:onProperty     :controlledObject
                         ] .

:Get3PhaseLLVoltageCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getLLVoltageValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID1^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID2^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:CameraPictureZoomPanControlFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PanLeftCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PanDownCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :ZoomInCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PanUpCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :PanRightCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :ZoomOutCommand
                          ] ;
        owl:disjointWith  :ShutterRegulationFunctionality , :LevelControlFunctionality , :FanControlFunctionality , :TimeRegulationFunctionality , :TunerFunctionality , :ColorControlFunctionality , :ThermostatControlFunctionality .

:NetworkManagementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :NetworkClosedNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :NetworkOpenedNotification
                         ] .

:ButtonNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PressedNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ReleasedNotification
                         ] .

:DiscreteControlFunctionality
        a                owl:Class ;
        rdfs:comment     "Functionalities not continuous, with fixed values"^^xsd:string ;
        rdfs:label       "DiscreteFunctionality"^^xsd:string ;
        rdfs:subClassOf  :ControlFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasCommand
                         ] .

:PressureMeasurementNotificationFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :PressureMeasurementNotification
                          ] ;
        owl:disjointWith  :ThermostatNotificationFunctionality , :TemperatureMeasurementNotificationFunctionality , :SimpleLevelNotificationFunctionality .

:port   a             owl:DatatypeProperty ;
        rdfs:comment  "The port of the gateway"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :EchelonIlon100Gateway :KNXNetIPGateway :KonnexGateway :ModbusGateway )
                      ] ;
        rdfs:label    "port"^^xsd:string ;
        rdfs:range    xsd:int .

:RewindCommand  a         owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "rew"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StopPlayingCommand , :SpeedUpCommand , :ZoomOutCommand , :StandBy , :StepUpCommand , :ToggleCommand , :ZoomInCommand , :SpeedDownCommand , :UpCommand , :StopHeatingCoolingCommand , :StepDownCommand .

:ClimateScheduleQueryFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetClimateScheduleCommand
                         ] .

:DeepFreezer  a           owl:Class ;
        rdfs:comment      "Electric refrigerator in which food is frozen and stored for long periods of time"^^xsd:string ;
        rdfs:label        "DeepFreezer"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperFreezingNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperFreezingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :FreezingApplianceState
                          ] ;
        owl:disjointWith  :WashingMachine , :Stove , :Oven , :Fridge , :Dishwasher .

:HeatingSystem  a         owl:Class ;
        rdfs:comment      "Utility to warm a building"^^xsd:string ;
        rdfs:label        "HeatingSystem"^^xsd:string ;
        rdfs:subClassOf   :HVACSystem ;
        owl:disjointWith  :PressureSensor , :Pump , :PumpController , :Thermostat , :VentilatingSystem , :SingleFlowSensor .

:slaveId  a                 owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :ModbusCommand :ModbusComponent :ModbusNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :ModBusProperty .

:SinglePhaseEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :SingleTariffEnergyMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseReactiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseReactiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseReactiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyState
                         ] .

:ActivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :PowerMeasurementFunctionality .

:PowerMeteringLevelControllableOutput
        a                owl:Class ;
        rdfs:subClassOf  :SinglePhaseActivePowerMeter , :LevelControllableOutput .

:SinglePhaseActiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:PowerFactorMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "powerFactor^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newPowerFactorValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:StartedSuperCoolingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperCoolingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startedSuperCooling"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ThreePhaseActivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseActivePowerCommand
                         ] .

:CoolingStateValue  a    owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "cooling"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ControlFunctionality
        a                 owl:Class ;
        rdfs:comment      "Capability of a controllable building thing that can receive commands"^^xsd:string ;
        rdfs:label        "ControlFunctionality"^^xsd:string ;
        rdfs:subClassOf   :Functionality ;
        owl:disjointWith  :QueryFunctionality , :NotificationFunctionality .

:ForwardNotification  a  owl:Class ;
        rdfs:subClassOf  :PlaybackNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "fwd"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SceneNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf  :NetworkNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DeleteSceneNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoreSceneNotification
                         ] .

:FreeStateValue  a       owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "noPersonInside"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:SinglePhaseApparentPowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ApparentPowerStateValue
                         ] .

:Garage  a                owl:Class ;
        rdfs:comment      "The garage of the buinding"^^xsd:string ;
        rdfs:label        "Garage"^^xsd:string ;
        rdfs:subClassOf   :BuildingEnvironment ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasCeiling
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasFloor
                          ] ;
        owl:disjointWith  :Room , :Garden .

:PauseStateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pause"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Bathroom  a             owl:Class ;
        rdfs:comment     "A room containing a bath or shower and usually a washbasin and toilet"^^xsd:string ;
        rdfs:label       "Bathroom"^^xsd:string ;
        rdfs:subClassOf  :Room .

:NonParametricNotification
        a                 owl:Class ;
        rdfs:subClassOf   :Notification ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "0"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :ParametricNotification .

:PresenceAndMovementSensor
        a                owl:Class ;
        rdfs:subClassOf  :PresenceSensor , :MovementSensor .

:SinglePhaseElectricityMeter
        a                owl:Class ;
        rdfs:subClassOf  :SinglePhaseVoltageMeter , :SinglePhaseReactivePowerMeter , :SinglePhaseEnergyMeter , :SinglePhaseCurrentMeter , :SinglePhaseApparentPowerMeter , :SinglePhaseActivePowerMeter , :PowerFactorMeter , :FrequencyMeter .

:HVACSystem  a           owl:Class ;
        rdfs:comment     "Heating Ventilating and Air Conditioning system"^^xsd:string ;
        rdfs:label       "HVACSystem"^^xsd:string ;
        rdfs:subClassOf  :HousePlants .

:Horizontal  a            owl:Class ;
        rdfs:comment      "The horizontal architectural component of a building"^^xsd:string ;
        rdfs:label        "Horizontal"^^xsd:string ;
        rdfs:subClassOf   :Architectural ;
        owl:disjointWith  :Vertical .

:DisplayCommand  a       owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "msg^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "display"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:hasFloor  a         owl:ObjectProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :Garage :Room )
                     ] ;
        rdfs:range   :Floor .

:connectionTimeOut  a  owl:DatatypeProperty ;
        rdfs:comment  "The time before the connection expires"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :KNXNetIPGateway :KonnexGateway )
                      ] ;
        rdfs:label    "connectionTimeOut"^^xsd:string ;
        rdfs:range    xsd:int .

:commandParamName  a  owl:DatatypeProperty ;
        rdfs:domain  :ParametricCommand ;
        rdfs:range   xsd:string .

[ a            owl:AllDisjointProperties ;
  owl:members  ( :groupAddress :hexValue :individualAddress :multicastIP )
] .

:IdleStateValue  a       owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "idle"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Lighting  a              owl:Class ;
        rdfs:comment      "System that provides artificial light"^^xsd:string ;
        rdfs:label        "Lighting"^^xsd:string ;
        rdfs:subClassOf   :ElectricalSystem ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :isIn
                          ] ;
        owl:disjointWith  :Sensor , :PowerDelivery .

:TexasInstrumentsComponent
        a                owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:IsPresentNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "isPresent"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:DisassociateCommand  a  owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disassociate"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiTariffThreePhaseReactiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:minQualifiedCardinality  "6"^^xsd:nonNegativeInteger ;
                           owl:onClass                  :MultiTariffReactiveEnergyStateValue ;
                           owl:onProperty               :hasStateValue
                         ] .

:KonnexComponent  a       owl:Class ;
        rdfs:comment      "Components manufactured by Konnex"^^xsd:string ;
        rdfs:label        "KonnexComponent"^^xsd:string ;
        rdfs:subClassOf   :NetworkComponent ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :individualAddress
                          ] ;
        owl:disjointWith  :ZigBeeComponent .

:SingleValuedNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "Discrete notification with exactly one values"^^xsd:string ;
        rdfs:subClassOf  :DiscreteNotificationFunctionality .

:ThreePhaseReactiveEnergyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:IncreaseColorCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "increaseColor"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StopHeatingCoolingCommand , :PauseCommand , :OnFlashingCommand , :SpeedUpCommand , :StepUpCommand , :SetChannelCommand , :OpenCommand , :PanRightCommand , :StandBy , :UpCommand , :StoreSceneCommand , :SetHourCommand , :RewindCommand , :ZoomOutCommand , :IncreaseContrastCommand , :StoreGroupCommand , :SetSpeedCommand , :OffCommand , :PreviousTrackCommand , :StopPlayingCommand , :IncreaseLuminosityCommand , :OnCommand , :SetMinutesCommand , :SetCommand , :NextTrackCommand , :SetVolumeCommand , :SpeedDownCommand , :ZoomInCommand , :SetDesiredTemperature , :PlayCommand , :TimedOnCommand , :SetSecondsCommand , :ToggleCommand , :RestCommand , :SetTimeoutCommand , :OffFlashingCommand , :StepDownCommand , :IncreaseQualityCommand , :PanLeftCommand , :PanUpCommand , :PanDownCommand .

<http://purl.oclc.org/NET/ssnx/ssn#Device>
        a       owl:Class .

:Get1PhaseActivePowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActivePower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:SuperHeatingNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :StartedSuperHeatingNotification :StoppedSuperHeatingNotification ) .

:CloseNetworkCommand  a  owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "closeNetwork"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MovementSensor  a       owl:Class ;
        rdfs:subClassOf  :Sensor , :AccessControlSystem ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :MovementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :MovementNotificationFunctionality
                         ] .

:pollingInterval  a   owl:DatatypeProperty ;
        rdfs:comment  "The interval between subsequent polls"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :EchelonIlon100Gateway :KonnexGateway :ModbusGateway :ZWaveGateway :ZigBeeGateway )
                      ] ;
        rdfs:label    "pollingInterval"^^xsd:string ;
        rdfs:range    xsd:int .

:ShutterState  a         owl:Class ;
        rdfs:subClassOf  :DiscreteState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :UpTripleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :DownTripleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RestTripleStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :LoweringStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :RaisingStateValue
                         ] .

gr:serialNumber  a   owl:DatatypeProperty ;
        rdfs:domain  :Controllable ;
        rdfs:range   xsd:string .

:Entrance  a             owl:Class ;
        rdfs:subClassOf  :Door .

:NotEmittingMicrowavesStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notEmittingMicrowaves"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ReactiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementNotificationFunctionality .

:ModbusNotification  a   owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:MultipleHumidityMeasurementFunctionality
        a                owl:Class ;
        rdfs:comment     "The capability of measuring the humidity of a room"@en ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetRelativeHumidityMCommand
                         ] .

:MultiTariffSinglePhaseActiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActiveEnergyMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetMultiTariff1PhaseActiveEnergyCommand
                         ] .

:floorOf  a            owl:ObjectProperty ;
        rdfs:domain    :Floor ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( :Garage :Room )
                       ] ;
        owl:inverseOf  :hasFloor .

:SceneSelector  a         owl:Class ;
        rdfs:comment      "The Scene Selector device is capable of setting up and selecting scenes on other devices, including group of devices. It derives from ZigBee HA specifications."@en ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :NetworkNotificationFunctionality
                          ] ;
        owl:disjointWith  :Switch , :ToggleRelay , :Thermostat , :ShadeController , :SingleScenarioControl .

:RestNotification  a     owl:Class ;
        rdfs:subClassOf  :NoMovementNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "resting"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:TridimensionalAccelerationNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :TridimensionalAccelerationNotification
                         ] .

:SpeedUpCommand  a        owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "speedUp"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ToggleCommand , :StandBy , :StopHeatingCoolingCommand , :TimedOnCommand , :StepDownCommand , :StoreGroupCommand , :ZoomOutCommand , :StoreSceneCommand , :StepUpCommand , :ZoomInCommand , :UpCommand , :StopPlayingCommand .

:RemainingTimeChangedNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceCycleTimingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedRemainingTime"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "remainingTime^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] .

:DecreaseLuminosityCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "decreaseLuminosity"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :TimedOnCommand , :OnCommand , :SetHourCommand , :ZoomOutCommand , :GetTemperatureCommand , :DownCommand , :StopHeatingCoolingCommand , :DeleteSceneCommand , :IncreaseColorCommand , :HeatCommand , :StandBy , :SetChannelCommand , :SetTimeoutCommand , :GetOccupancyCommand , :PanLeftCommand , :GrabPictureCommand , :SpeedDownCommand , :SetSecondsCommand , :GetRelativeHumidityCommand , :NextTrackCommand , :GetCommand , :RewindCommand , :OnFlashingCommand , :PanRightCommand , :StepDownCommand , :StoreSceneCommand , :IncreaseQualityCommand , :SetCommand , :OffCommand , :ForwardCommand , :IncreaseLuminosityCommand , :SetVolumeCommand , :PreviousTrackCommand , :PanDownCommand , :UpCommand , :StopPlayingCommand , :SetDesiredTemperature , :GoToTrackCommand , :GetPressureCommand , :PauseCommand , :RestCommand , :StoreGroupCommand , :IncreaseContrastCommand , :DecreaseQualityCommand , :SetMinutesCommand , :OpenCommand , :PanUpCommand , :SpeedUpCommand , :OffFlashingCommand , :ToggleCommand , :StepUpCommand , :GetFlowRateCommand , :DeleteGroupCommand , :PlayCommand , :SetSpeedCommand , :ZoomInCommand .

:FrequencyMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "frequency^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newFrequencyValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:TridimensionalAccelerationNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "new3DAccelerationValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "accZ^^Double"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "accY^^Double"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "accX^^Double"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:MultipleHumidityMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:comment     "The notification for requesting humidity measurment..."@en ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :HumidityMeasurementMNotification
                         ] .

:SinglePhaseVoltageMeter
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseVoltageMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseVoltageState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseVoltageMeasurementFunctionality
                         ] .

:SinglePhaseApparentPowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newApparentPowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "powerValue^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:Awning  a                owl:Class ;
        rdfs:comment      "A canopy made of canvas to shelter people or things from rain or sun."^^xsd:string ;
        rdfs:label        "Awning"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasActuator
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :AwningActuator ;
                            owl:onProperty     :hasActuator
                          ] ;
        owl:disjointWith  :Nightstand , :Sofa , :Drawer , :Shade , :Bed , :Closet , :Cupboard , :Desk , :SanitaryFixtures , :Shutter , :Wardrobe , :Chair , :Table .

:Radio  a                 owl:Class ;
        rdfs:comment      "A communication system based on broadcasting electromagnetic waves"^^xsd:string ;
        rdfs:label        "Radio"^^xsd:string ;
        rdfs:subClassOf   :Entertainment ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :StandByOnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :VolumeRegulationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandbyNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :TunerState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :VolumeLevelState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TunerNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TunerFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffStandByFunctionality
                          ] ;
        owl:disjointWith  :Tv .

:ThreePhaseActivePowerMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newActivePowerValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] .

:SetSpeedCommand  a       owl:Class ;
        rdfs:subClassOf   :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "speed^^Measure"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "setSpeed"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomInCommand , :ZoomOutCommand , :StoreGroupCommand , :StoreSceneCommand , :TimedOnCommand , :StepUpCommand , :UpCommand , :SetTimeoutCommand , :SpeedDownCommand , :ToggleCommand , :SpeedUpCommand , :SetVolumeCommand , :StepDownCommand .

:svgFootprint  a      owl:DatatypeProperty ;
        rdfs:comment  "A property holding the svg footprint for the given building environment object"^^xsd:string ;
        rdfs:domain   :BuildingEnvironment ;
        rdfs:range    xsd:string .

:SinglePhaseReactivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseReactivePowerCommand
                         ] .

:SpeedDownCommand  a      owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "speedDown"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreGroupCommand , :ZoomInCommand , :TimedOnCommand , :UpCommand , :StopHeatingCoolingCommand , :StepUpCommand , :ZoomOutCommand , :ToggleCommand , :StoreSceneCommand , :StepDownCommand , :StandBy , :StopPlayingCommand , :SpeedUpCommand .

:EventsAndAlertsNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :MultipleEventNotificationFunctionality , :MultipleAlertNotificationFunctionality .

:GetConfigurationCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "configurationSpec^^Object"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getConfiguration"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Object"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:DeleteSceneNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification , :NetworkNotification ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sceneNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "deletedScene"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :PressureMeasurementMNotification , :StoreSceneNotification , :HumidityMeasurementMNotification , :LevelControlNotification , :TemperatureMeasurementMNotification , :JoinGroupNotification , :LeaveGroupNotification , :FlowRateMeasurementMNotification .

:BatteryLevelNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "batteryLevel^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedBatteryLevel"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Functionality  a     owl:Class ;
        rdfs:comment  "Capability of a controllable building thing"^^xsd:string ;
        rdfs:label    "Functionality"^^xsd:string .

:SnapshotCamera  a       owl:Class ;
        rdfs:subClassOf  :SurveillanceCamera ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CameraPictureImageControlFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PictureGrabFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CameraPictureZoomPanControlFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :CameraPictureQualityControlFunctionality
                         ] .

:ReactivePowerMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ElectricPowerMeasurementNotificationFunctionality .

:FlowRateStateValue  a    owl:Class ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :TemperatureStateValue , :ShadeStateValue , :ReactiveEnergyStateValue , :PressureStateValue , :LevelStateValue , :HumidityStateValue .

:CurrentMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality .

terms:title  a  owl:AnnotationProperty .

:LevelControlFunctionality
        a                 owl:Class ;
        rdfs:comment      "Level control functionality, used for allowing devices to be controlled in a continuous manner, derives from ZigBee Home Automation specifications"@en ;
        rdfs:subClassOf   :ContinuousControlFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StepDownCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :SetCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "2"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :StepUpCommand
                          ] ;
        owl:disjointWith  :ShutterRegulationFunctionality , :ThermostatControlFunctionality , :TimeRegulationFunctionality , :TunerFunctionality .

:HumidityMeasurementNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "The notification for requesting humidity measurment..."@en ;
        rdfs:subClassOf   :ContinuousNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :HumidityMeasurementNotification
                          ] ;
        owl:disjointWith  :ThermostatNotificationFunctionality , :TemperatureMeasurementNotificationFunctionality , :SimpleLevelNotificationFunctionality , :PressureMeasurementNotificationFunctionality .

:PressedUpNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pressedUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SuperCoolingNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoppedSuperCoolingNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartedSuperCoolingNotification
                         ] .

:Tape1StateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tape1"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:TemperatureAndHumiditySensor
        a                owl:Class ;
        rdfs:subClassOf  :SingleTemperatureSensor , :HumiditySensor .

:GetTemperatureCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getTemperature"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :PlayCommand , :PanDownCommand , :ToggleCommand , :OpenCommand , :UpCommand , :SpeedDownCommand , :StopPlayingCommand , :HeatCommand , :ZoomInCommand , :PanLeftCommand , :StepUpCommand , :IncreaseLuminosityCommand , :SpeedUpCommand , :IncreaseColorCommand , :PanRightCommand , :StopHeatingCoolingCommand , :RestCommand , :GetTemperatureMCommand , :PanUpCommand , :OffCommand , :RewindCommand , :IncreaseContrastCommand , :StepDownCommand , :StandBy , :OnFlashingCommand , :PreviousTrackCommand , :OnCommand , :IncreaseQualityCommand , :GrabPictureCommand , :OffFlashingCommand , :NextTrackCommand , :PauseCommand .

:ProgramState  a         owl:Class ;
        rdfs:subClassOf  :DiscreteState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ProgramInterruptedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :NotProgrammedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ProgrammedAndWaitingToStartStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ProgrammedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :EndProgrammedStateValue
                         ] .

:AssociateFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DisassociateCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :AssociateCommand
                         ] .

:VoltageMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality .

:SuperCoolingNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :StartedSuperCoolingNotification :StoppedSuperCoolingNotification ) .

:ColorHSBNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "colorHSB^^HSBColor"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "changedColorHSB"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:statevalueOf  a       owl:ObjectProperty ;
        rdfs:domain    :StateValue ;
        rdfs:range     :State ;
        owl:inverseOf  :hasStateValue .

:EnableDisableGasFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :EnableGasCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DisableGasCommand
                         ] .

:TemperatureSensor  a    owl:Class ;
        rdfs:subClassOf  :Sensor .

:ThreePhaseVoltageMeter
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseVoltageMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ThreePhaseVoltageState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ThreePhaseVoltageMeasurementNotificationFunctionality
                         ] .

:Co2MeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetCo2ConcentrationCommand
                         ] .

:HotWaterM3MeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newHotWaterAmountInM3"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "m3OfHotWater^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] .

:Gate   a                owl:Class ;
        rdfs:comment     "A door-like movable barrier in a fence"^^xsd:string ;
        rdfs:label       "Gate"^^xsd:string ;
        rdfs:subClassOf  :FenceOpening ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasActuator
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:maxCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :hasActuator
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :GateActuator ;
                           owl:onProperty     :hasActuator
                         ] .

:CloseNotification  a    owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "close"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:StopStateValue  a       owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stop"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:HueBridge  a            owl:Class ;
        rdfs:subClassOf  :HueComponent ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PushLinkNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :ConnectionState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :PushLinkAuthenticationState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :PushLinkFunctionality
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onDataRange           xsd:anyURI ;
                           owl:onProperty            :IPAddress ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] .

:ReactiveEnergyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementFunctionality .

:registerAddress  a         owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :ModbusCommand :ModbusComponent :ModbusNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :ModBusProperty .

:DecreaseQualityCommand
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "decreaseQuality"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :DeleteSceneCommand , :SetSecondsCommand , :DeleteGroupCommand , :ToggleCommand , :IncreaseContrastCommand , :SetTimeoutCommand , :StepUpCommand , :SetHourCommand , :IncreaseColorCommand , :SetMinutesCommand , :RestCommand , :ZoomOutCommand , :StandBy , :PreviousTrackCommand , :GoToTrackCommand , :RewindCommand , :DownCommand , :ForwardCommand , :IncreaseLuminosityCommand , :IncreaseQualityCommand , :SetSpeedCommand , :TimedOnCommand , :PauseCommand , :SetCommand , :PlayCommand , :OnFlashingCommand , :GetTemperatureCommand , :OnCommand , :NextTrackCommand , :GetRelativeHumidityCommand , :GetPressureCommand , :OffCommand , :StoreGroupCommand , :OffFlashingCommand , :GrabPictureCommand , :GetFlowRateCommand , :PanLeftCommand , :SetVolumeCommand , :SpeedDownCommand , :StepDownCommand , :PanUpCommand , :OpenCommand , :StopHeatingCoolingCommand , :StopPlayingCommand , :PanRightCommand , :SetDesiredTemperature , :UpCommand , :SetChannelCommand , :GetOccupancyCommand , :StoreSceneCommand , :GetCommand , :ZoomInCommand , :SpeedUpCommand , :PanDownCommand , :HeatCommand .

:HueComponent  a         owl:Class ;
        rdfs:subClassOf  :NetworkComponent .

:NetworkManagementState
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :OpenStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :CloseStateValue
                         ] .

:ButtonMNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PressedMNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ReleasedMNotification
                         ] .

:Shower  a                owl:Class ;
        rdfs:comment      "A plumbing fixture that sprays water over you"^^xsd:string ;
        rdfs:label        "Shower"^^xsd:string ;
        rdfs:subClassOf   :SanitaryFixtures ;
        owl:disjointWith  :WaterCloset , :Washbasin .

:AirConditioningSystem
        a                 owl:Class ;
        rdfs:comment      "A system that keeps air cool and dry"^^xsd:string ;
        rdfs:label        "AirConditioningSystem"^^xsd:string ;
        rdfs:subClassOf   :HVACSystem ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatControlFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffFunctionality
                          ] ;
        owl:disjointWith  :PressureSensor , :Pump , :PumpController , :VentilatingSystem , :Thermostat , :HeatingSystem , :SingleFlowSensor , :HeatingAndCoolingUnit .

:PowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality .

:StepUpCommand  a         owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stepUp"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :TimedOnCommand , :StopHeatingCoolingCommand , :StoreGroupCommand , :UpCommand , :StoreSceneCommand , :ZoomInCommand , :ToggleCommand , :StopPlayingCommand .

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

:SinglePhaseActivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ActivePowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseActivePowerCommand
                         ] .

:OnOffNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Notification: on - off"^^xsd:string ;
        rdfs:label        "OnOffNotificationFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :OnNotification
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :OffNotification
                          ] ;
        owl:disjointWith  :UpDownNotificationFunctionality , :PresenceNotificationFunctionality , :OpenCloseNotificationFunctionality .

:MovingStateValue  a     owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "isMoving"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:Get3PhaseReactivePowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactivePower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:StartApplianceNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceRunNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "start"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:FlowMeasurementFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GetFlowRateCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality , :PressureMeasurementFunctionality , :PictureGrabFunctionality , :OccupancySensingFunctionality , :LightSensingFunctionality , :HumidityMeasurementFunctionality .

:SoundFunctionality  a   owl:Class ;
        rdfs:comment     "Plays a Sound (default, or selected through a goTotrack, or...)" ;
        rdfs:subClassOf  :DiscreteOutputFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopPlayingCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :PlayCommand
                         ] .

:GasSystem  a            owl:Class ;
        rdfs:comment     "System that detects the presence of gas"^^xsd:string ;
        rdfs:label       "GasSystem"^^xsd:string ;
        rdfs:subClassOf  :SecuritySystem .

:WaterMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :HotWaterM3MeasurementNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ColdWaterM3MeasurementNotification
                         ] .

:WashingMachine  a       owl:Class ;
        rdfs:comment     "A home appliance for washing clothes and linens automatically"^^xsd:string ;
        rdfs:label       "WashingMachine"^^xsd:string ;
        rdfs:subClassOf  :WhiteGoods ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :WashingApplianceState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :StartStopPauseFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :HeatingCycleNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :WashingCycleNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :StartStopPauseNotificationFunctionality
                         ] .

:MovementState  a         owl:Class ;
        rdfs:subClassOf   :DoubleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :NotMovingStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :MovingStateValue
                          ] ;
        owl:disjointWith  :SensingState , :PresenceState , :OpenCloseState , :OnOffState , :OccupancyState .

:CloseStateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "close"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:SuperFreezingStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "superFreezing"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:registerType  a            owl:DatatypeProperty ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( :ModbusCommand :ModbusComponent :ModbusNotification )
                            ] ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :ModBusProperty .

:isIn   a              owl:ObjectProperty ;
        rdfs:comment   "Indicates in which building environment is contained an object, e.g. the lamp5 isIn Kitchen"^^xsd:string ;
        rdfs:domain    [ a            owl:Class ;
                         owl:unionOf  ( :Appliances :BuildingEnvironment :Furniture :HousePlants )
                       ] ;
        rdfs:label     "isIn"^^xsd:string ;
        rdfs:range     :BuildingEnvironment ;
        owl:inverseOf  :contains .

:UnControllable  a       owl:Class ;
        rdfs:comment     "All building things that can't be controlled by domotic system"^^xsd:string ;
        rdfs:label       "UnControllable"^^xsd:string ;
        rdfs:subClassOf  :BuildingThing ;
        rdfs:subClassOf  [ a                 owl:Class ;
                           owl:complementOf  :Controllable
                         ] .

:Desk   a                 owl:Class ;
        rdfs:comment      "A piece of furniture with a writing surface and usually drawers or other compartments"^^xsd:string ;
        rdfs:label        "Desk"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Wardrobe , :Shade , :Sofa , :Nightstand , :SanitaryFixtures , :Drawer , :Shutter , :Table .

terms:creator  a  owl:AnnotationProperty .

:ShadeState  a            owl:Class ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :ShadeStateValue
                          ] ;
        owl:disjointWith  :TunerState , :TemperatureState .

:ElectricalCooker  a      owl:Class ;
        rdfs:comment      "Electrical Cooker"^^xsd:string ;
        rdfs:label        "ElectricalCooker"^^xsd:string ;
        rdfs:subClassOf   :Cooker ;
        owl:disjointWith  :Hotplate , :GasCooker .

:AssociateCommand  a     owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "associate"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:HeatingApplianceState
        a                owl:Class ;
        rdfs:subClassOf  :GenericApplianceState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :SuperHeatingStateValue
                         ] .

:DeleteGroupCommand  a    owl:Class ;
        rdfs:subClassOf   :ParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "deleteGroup"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "groupID^^Integer"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        owl:disjointWith  :OpenCommand , :SetSecondsCommand , :UpCommand , :ToggleCommand , :TimedOnCommand , :IncreaseContrastCommand , :StepUpCommand , :OnFlashingCommand , :PanUpCommand , :DownCommand , :SelectSourceCommand , :StoreSceneCommand , :RestCommand , :SetCommand , :OffFlashingCommand , :SetHourCommand , :GetRelativeHumidityMCommand , :OffCommand , :StepDownCommand , :SpeedUpCommand , :SetMinutesCommand , :IncreaseQualityCommand , :SetVolumeCommand , :StoreGroupCommand , :SetDesiredTemperature , :DeleteSceneCommand , :GetPressureMCommand , :ZoomOutCommand , :HeatCommand , :PanLeftCommand , :ZoomInCommand , :IncreaseLuminosityCommand , :SetTimeoutCommand , :OnCommand , :GoToTrackCommand , :GetLuminanceCommand , :PanRightCommand , :SetSpeedCommand , :SetChannelCommand , :PanDownCommand , :GetTemperatureMCommand , :IncreaseColorCommand , :SpeedDownCommand , :GetFlowRateMCommand .

:ChangedDesiredTemperatureNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedDesiredTemperatureSetting"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "newTemperatureValue^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        owl:disjointWith  :DeleteSceneNotification , :StoreSceneNotification , :PressureMeasurementMNotification , :HumidityMeasurementMNotification , :LeaveGroupNotification , :LevelControlNotification , :JoinGroupNotification , :TemperatureMeasurementMNotification , :FlowRateMeasurementMNotification .

:OverloadControlFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :TripleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :OverloadPauseCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :OverloadPauseResumeCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :OverloadWarningCommand
                         ] .

:RewindNotification  a   owl:Class ;
        rdfs:subClassOf  :PlaybackNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "rew"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:HeatingEnergyMeter  a   owl:Class ;
        rdfs:subClassOf  :Meter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :HeatingEnergyMeasurementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :HeatingEnergyMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :HeatingEnergyMeasurementFunctionality
                         ] .

:ElectricalOven  a        owl:Class ;
        rdfs:comment      "Electrical oven"^^xsd:string ;
        rdfs:label        "ElectricalOven"^^xsd:string ;
        rdfs:subClassOf   :Oven ;
        owl:disjointWith  :MicrowaveOven .

:TuningStepUpNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricLevelNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "channelStepDown"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:LevelStepUpNotification
        a                 owl:Class ;
        rdfs:subClassOf   :NonParametricLevelNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stepUp"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementNotification , :SimpleNoMovementNotification , :SimpleMovementNotification , :PressureMeasurementNotification .

:PressureMeasurementMNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorID^^String"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "pressureValue^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedPressureAt"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :TemperatureMeasurementMNotification , :StoreSceneNotification .

:ShadeStateValue  a       owl:Class ;
        rdfs:comment      "Value for the Shade position state, the shade position can be expressed as position=closedLimitx(255-level)/255, where with level 0 the shade is closed and with level 255 the shade is completely open. Derives from ZigBee HA specifications."@en ;
        rdfs:subClassOf   :ContinuousValue ;
        owl:disjointWith  :TemperatureStateValue .

:Buzzer  a               owl:Class ;
        rdfs:comment     "An electric signaling device, such as a doorbell, that makes a buzzing sound."^^xsd:string ;
        rdfs:label       "Buzzer"^^xsd:string ;
        rdfs:subClassOf  :Acoustic ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] .

:NeedingAuthenticationStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "needsAuthentication"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:TemperatureState  a      owl:Class ;
        rdfs:comment      "Models the temperature value"^^xsd:string ;
        rdfs:label        "TemperatureState"^^xsd:string ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :TemperatureStateValue
                          ] ;
        owl:disjointWith  :TunerState .

:notificationName  a  owl:DatatypeProperty ;
        rdfs:domain  :Notification ;
        rdfs:range   xsd:string .

:CoffeeMaker  a           owl:Class ;
        rdfs:comment      "A kitchen appliance for brewing coffee automatically"^^xsd:string ;
        rdfs:label        "CoffeeMaker"^^xsd:string ;
        rdfs:subClassOf   :BrownGoods ;
        owl:disjointWith  :Printer , :Fan , :Entertainment , :Computer , :Communication .

:ConnectedStateValue  a  owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "connected"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:KNXNetIPGateway  a      owl:Class ;
        rdfs:subClassOf  :KNXNetIPComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :connectionTimeOut
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :IPAddress
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :port
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :connectionTrials
                         ] .

:ApplianceRunNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :PauseApplianceNotification :StartApplianceNotification :StopApplianceNotification ) .

:FiringUpNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "firingUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Shutter  a               owl:Class ;
        rdfs:comment      "A hinged cover or screen for a window, usually fitted with louvers."@en ;
        rdfs:label        "Shutter"@en ;
        rdfs:subClassOf   :WallOpening ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :ShutterActuator ;
                            owl:onProperty     :hasActuator
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasActuator
                          ] ;
        owl:disjointWith  :Wardrobe , :Table , :Sofa .

:ClimateScheduleNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :DailyClimateScheduleNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :WeeklyClimateScheduleNotification
                         ] .

:FlowRateMeasurementNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "flowRateValue^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedFlowRateValue"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :SimpleMovementNotification , :LevelStepUpNotification , :HumidityMeasurementNotification , :LevelStepDownNotification , :TemperatureMeasurementNotification , :PressureMeasurementNotification , :SimpleNoMovementNotification .

:MovementNotificationFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :SimpleNoMovementNotification
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :SimpleMovementNotification
                          ] ;
        owl:disjointWith  :UpDownNotificationFunctionality , :PresenceNotificationFunctionality , :OpenCloseNotificationFunctionality , :OnOffNotificationFunctionality .

terms:issued  a  owl:AnnotationProperty .

:ThreePhaseReactivePowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseReactivePowerCommand
                         ] .

:GetClimateScheduleCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Object[]"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "weekDay^^Integer"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getDaySchedule"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:realStateValue  a   owl:DatatypeProperty ;
        rdfs:domain  :StateValue ;
        rdfs:range   xsd:string .

:NetworkNotification  a  owl:Class ;
        rdfs:subClassOf  :Notification .

:OnNotification  a       owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "on"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:AssociatingDeviceNotification
        a                owl:Class ;
        rdfs:subClassOf  :ZWaveNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "associating"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SanitaryFixtures  a      owl:Class ;
        rdfs:comment      "All the fixtures of a bathroom"^^xsd:string ;
        rdfs:label        "SanitaryFixtures"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Wardrobe , :Table , :Sofa , :Shutter , :Shade .

:Oven   a                 owl:Class ;
        rdfs:comment      "Kitchen appliance used for baking or roasting"^^xsd:string ;
        rdfs:label        "Oven"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :HeatingApplianceState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperHeatingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :StartStopPauseFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :StartStopPauseNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SuperHeatingNotificationFunctionality
                          ] ;
        owl:disjointWith  :WashingMachine , :Stove .

:sleepTime  a         owl:DatatypeProperty ;
        rdfs:comment  "The time between connection trials"^^xsd:string ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :KonnexGateway )
                      ] ;
        rdfs:label    "sleepTime"^^xsd:string ;
        rdfs:range    xsd:int .

:EmittingMicrowavesNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "emittingMicrowaves"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:SinglePhaseVoltageState
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :VoltageStateValue
                         ] .

:FlowRateState  a         owl:Class ;
        rdfs:subClassOf   :ContinuousState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :FlowRateStateValue
                          ] ;
        owl:disjointWith  :TunerState , :TemperatureState , :ShadeState , :PressureState , :LevelState , :HumidityMeasurementState .

:SetStartTimeCommand  a  owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startTime^^Measure"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setStartTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:Switch  a                owl:Class ;
        rdfs:comment      "Bi-stable control consisting of a mechanical or electrical or electronic device for making or breaking or changing the connections in a circuit"^^xsd:string ;
        rdfs:label        "Switch"^^xsd:string ;
        rdfs:subClassOf   :Control ;
        owl:disjointWith  :ToggleRelay , :Thermostat .

:Fence  a                 owl:Class ;
        rdfs:comment      "A barrier that serves to enclose an area"^^xsd:string ;
        rdfs:label        "Fence"^^xsd:string ;
        rdfs:subClassOf   :Vertical ;
        owl:disjointWith  :WallOpening , :Wall , :FenceOpening .

:StartCommand  a         owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "start"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:MultiTariffThreePhaseActiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:minQualifiedCardinality  "6"^^xsd:nonNegativeInteger ;
                           owl:onClass                  :MultiTariffActiveEnergyStateValue ;
                           owl:onProperty               :hasStateValue
                         ] .

:ZigBeeGateway  a        owl:Class ;
        rdfs:subClassOf  :ZigBeeComponent ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :NetworkManagementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :ApplianceManagementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :NetworkManagementNotificationFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :NetworkManagementState
                         ] .

:MultipleFlowRateStateValue
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousValue ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :probeID
                         ] .

:WaterMeter  a           owl:Class ;
        rdfs:subClassOf  :Meter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :WaterMeasurementFuctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :WaterMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :WaterMeasurementNotificationFunctionality
                         ] .

:FrequencyMeter  a       owl:Class ;
        rdfs:subClassOf  :ElectricityMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :FrequencyMeasurementState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :FrequencyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :FrequencyMeasurementNotificationFunctionality
                         ] .

:GrabPictureCommand  a    owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Image"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "grabPicture"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :PanRightCommand , :ToggleCommand , :PlayCommand , :PauseCommand , :PanLeftCommand , :OffCommand , :UpCommand , :StandBy , :PanDownCommand , :OnCommand , :ZoomOutCommand , :PreviousTrackCommand , :IncreaseContrastCommand , :IncreaseColorCommand , :StopHeatingCoolingCommand , :HeatCommand , :PanUpCommand , :OpenCommand , :StepUpCommand , :ZoomInCommand , :RestCommand , :StopPlayingCommand , :IncreaseLuminosityCommand , :OnFlashingCommand , :SpeedDownCommand , :OffFlashingCommand , :SpeedUpCommand , :NextTrackCommand , :RewindCommand , :StepDownCommand , :IncreaseQualityCommand .

:RedStateValue  a        owl:Class ;
        rdfs:subClassOf  :ContinuousValue .

:Interphone  a            owl:Class ;
        rdfs:comment      "A telephonic intercommunication system linking different rooms in a building"^^xsd:string ;
        rdfs:label        "Interphone"^^xsd:string ;
        rdfs:subClassOf   :Communication ;
        owl:disjointWith  :Phone .

:TunerNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :LevelNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :TuningStepDownNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :TuningStepUpNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ChannelControlNotification
                         ] .

:GetFlowRateCommand  a    owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getFlowRate"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        owl:disjointWith  :ToggleCommand , :OnFlashingCommand , :IncreaseContrastCommand , :PanUpCommand , :PreviousTrackCommand , :SpeedUpCommand , :OffCommand , :GetOccupancyCommand , :IncreaseColorCommand , :PanLeftCommand , :PlayCommand , :StepUpCommand , :IncreaseQualityCommand , :GetRelativeHumidityMCommand , :OnCommand , :GrabPictureCommand , :GetRelativeHumidityCommand , :PanRightCommand , :GetLuminanceCommand , :StepDownCommand , :GetTemperatureCommand , :StopHeatingCoolingCommand , :IncreaseLuminosityCommand , :GetPressureCommand , :HeatCommand , :PauseCommand , :OpenCommand , :RewindCommand , :GetFlowRateMCommand , :GetTemperatureMCommand , :UpCommand , :RestCommand , :OffFlashingCommand , :PanDownCommand , :NextTrackCommand , :GetPressureMCommand , :StopPlayingCommand , :StandBy , :ZoomInCommand , :SpeedDownCommand , :ZoomOutCommand .

:ShadeController  a       owl:Class ;
        rdfs:comment      "The Shade Controller device can control the level of a shade, derives from ZigBee HA specifications"@en ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :IdentificationNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        owl:disjointWith  :Switch , :SingleScenarioControl , :Thermostat , :ToggleRelay .

:weekDay  a          owl:DatatypeProperty ;
        rdfs:domain  :ClimateScheduleStateValue ;
        rdfs:range   xsd:string .

:ThreePhaseCurrentMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseCurrentCommand
                         ] .

:SinglePhaseVoltageMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :SinglePhaseVoltageMeasurementNotification
                         ] .

:SuperHeatingStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "superHeating"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:HumidityMeasurementFunctionality
        a                 owl:Class ;
        rdfs:comment      "The capability of measuring the humidity of a room"@en ;
        rdfs:subClassOf   :QueryFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :GetRelativeHumidityCommand
                          ] ;
        owl:disjointWith  :TemperatureMeasurementFunctionality , :PressureMeasurementFunctionality , :PictureGrabFunctionality , :OccupancySensingFunctionality , :LightSensingFunctionality .

:StandByOnOffState  a     owl:Class ;
        rdfs:subClassOf   :TripleValuedState ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OffStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :StandByStateValue
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasStateValue ;
                            owl:someValuesFrom  :OnStateValue
                          ] ;
        owl:disjointWith  :UpDownRestState .

:HumidityMeasurementMNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "relativeHumidity^^Measure"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "sensorID^^String"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "changedRelativeHumidityAt"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        owl:disjointWith  :LevelControlNotification , :JoinGroupNotification , :StoreSceneNotification , :LeaveGroupNotification , :PressureMeasurementMNotification , :TemperatureMeasurementMNotification .

:GetOccupancyCommand  a   owl:Class ;
        rdfs:comment      "the command for getting the occupancy state of a given room/environment"@en ;
        rdfs:subClassOf   :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getOccupancy"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Boolean"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :RewindCommand , :SpeedUpCommand , :StepUpCommand , :NextTrackCommand , :StopHeatingCoolingCommand , :PreviousTrackCommand , :ToggleCommand , :GetPressureCommand , :PanUpCommand , :GetRelativeHumidityMCommand , :UpCommand , :GetTemperatureCommand , :GetRelativeHumidityCommand , :HeatCommand , :PanRightCommand , :StandBy , :PanDownCommand , :SpeedDownCommand , :OffFlashingCommand , :OnFlashingCommand , :GetPressureMCommand , :ZoomInCommand , :IncreaseQualityCommand , :GetTemperatureMCommand , :RestCommand , :GrabPictureCommand , :PlayCommand , :StopPlayingCommand , :PanLeftCommand , :IncreaseContrastCommand , :IncreaseColorCommand , :PauseCommand , :StepDownCommand , :OpenCommand , :OnCommand , :IncreaseLuminosityCommand , :OffCommand .

:MicrowaveEmissionState
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :EmittingMicrowavesStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :NotEmittingMicrowavesStateValue
                         ] .

:instanceId  a                    owl:DatatypeProperty ;
        rdfs:domain               :ZWaveComponent ;
        rdfs:range                xsd:int ;
        rdfs:subPropertyOf        :ZWaveProperty ;
        owl:propertyDisjointWith  :nodeId .

:UpDownFunctionality  a  owl:Class ;
        rdfs:comment     "Functionality: up - down"^^xsd:string ;
        rdfs:label       "UpDownFunctionality"^^xsd:string ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :UpCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DownCommand
                         ] .

:SingleBed  a            owl:Class ;
        rdfs:subClassOf  :Bed .

:PlaybackNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :ForwardNotification :PausePlaybackNotification :PlayNotification :RewindNotification :StopPlaybackNotification ) .

:AuthenticatedStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "authenticated"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ThreePhaseVoltageState
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementState ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:minQualifiedCardinality  "3"^^xsd:nonNegativeInteger ;
                           owl:onClass                  :VoltageStateValue ;
                           owl:onProperty               :hasStateValue
                         ] .

:ThreePhaseVoltageMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseLNVoltageCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get3PhaseLLVoltageCommand
                         ] .

:SingleFlowSensor  a      owl:Class ;
        rdfs:comment      "The Flow  Sensor device measures and periodically reports the flow rate of a liquid (typically water)"@en ;
        rdfs:subClassOf   :FlowSensor , :HVACSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FlowMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FlowMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :FlowRateState
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        owl:disjointWith  :SmokeSensor , :VentilatingSystem , :Thermostat , :WindowSensor .

:SensingState  a         owl:Class ;
        rdfs:subClassOf  :DoubleValuedState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :DetectedStateValue
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :NotDetectedStateValue
                         ] .

:GetLuminanceCommand  a   owl:Class ;
        rdfs:subClassOf   :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "Measure"^^xsd:string ;
                            owl:onProperty  :returnType
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "getLuminance"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :GoToTrackCommand , :SelectSourceCommand , :GetOccupancyCommand , :TimedOnCommand , :StoreSceneCommand , :SetSecondsCommand , :SetChannelCommand , :GetRelativeHumidityCommand , :GetRelativeHumidityMCommand , :StoreGroupCommand , :SetMinutesCommand , :SetVolumeCommand , :GetPressureCommand , :GetPressureMCommand , :SetDesiredTemperature , :SetTimeoutCommand , :GetTemperatureCommand , :SetCommand , :SetHourCommand , :GetTemperatureMCommand , :GrabPictureCommand , :SetSpeedCommand .

:RestUpNotification  a   owl:Class ;
        rdfs:subClassOf  :NoMovementNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "restingUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GetConsumedM3Gas  a     owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getM3GasConsumed"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:HueNotification  a      owl:Class ;
        rdfs:subClassOf  :NetworkSpecificNotification .

:Control  a               owl:Class ;
        rdfs:comment      "A mechanism that controls the interaction with the electrical system"^^xsd:string ;
        rdfs:label        "Control"^^xsd:string ;
        rdfs:subClassOf   :ElectricalSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :controlledObject
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :NotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :isIn
                          ] ;
        owl:disjointWith  :Lighting , :PowerDelivery , :Sensor .

:TripleSensor  a         owl:Class ;
        rdfs:subClassOf  :SingleTemperatureSensor , :MovementSensor , :LightSensor .

:AnsweringMachine  a      owl:Class ;
        rdfs:comment      "Electronic device that answers the telephone and records messages"^^xsd:string ;
        rdfs:label        "AnsweringMachine"^^xsd:string ;
        rdfs:subClassOf   :Communication ;
        owl:disjointWith  :Phone , :Interphone , :Fax .

:SecuritySystem  a       owl:Class ;
        rdfs:comment     "Security system for detecting dangerous situation and intrusion"^^xsd:string ;
        rdfs:label       "SecuritySystem"^^xsd:string ;
        rdfs:subClassOf  :HousePlants .

:SetColorHSBCommand  a   owl:Class ;
        rdfs:subClassOf  :VoidCommand , :ParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "setColorHSB"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "colorHSB^^HSBColor"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] .

:ThreePhaseCurrentMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :CurrentMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseCurrentMeasurementNotification
                         ] .

:IdentificationNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Derives from the general cluster functionalities defined in ZigBee HA specifications"@en ;
        rdfs:subClassOf   :NetworkNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :IdentifyNotification
                          ] ;
        owl:disjointWith  :SceneNotificationFunctionality .

:StopApplianceNotification
        a                owl:Class ;
        rdfs:subClassOf  :ApplianceRunNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stop"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:StorageRoom  a          owl:Class ;
        rdfs:comment     "Little Room for storage of things in the house"^^xsd:string ;
        rdfs:label       "StorageRoom"^^xsd:string ;
        rdfs:subClassOf  :Room .

:EliteGateway  a          owl:Class ;
        rdfs:comment      "A software emulator of a network level to be used for simulating devices not available in the real world"@en ;
        rdfs:label        "EliteGateway"@en ;
        rdfs:subClassOf   :EliteComponent ;
        owl:disjointWith  :KonnexGateway .

:FlowMeasurementNotificationFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :ContinuousNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :FlowRateMeasurementNotification
                          ] ;
        owl:disjointWith  :ThermostatNotificationFunctionality , :TemperatureMeasurementNotificationFunctionality , :SimpleLevelNotificationFunctionality , :PressureMeasurementNotificationFunctionality , :HumidityMeasurementNotificationFunctionality .

:realCommandName  a  owl:DatatypeProperty ;
        rdfs:domain  :Command ;
        rdfs:range   xsd:string .

:NotPresentNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notPresent"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GasSensor  a             owl:Class ;
        rdfs:comment      "Sensor that detects the presence of gas"^^xsd:string ;
        rdfs:label        "GasSensor"^^xsd:string ;
        rdfs:subClassOf   :GasSystem , :Sensor ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :hasState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :SensingState
                          ] ;
        owl:disjointWith  :InfraredSensor , :WindowSensor , :SmokeSensor , :PressureSensor , :OccupancySensor , :SingleFlowSensor .

:DimmerLamp  a            owl:Class ;
        rdfs:comment      "Lamp that varies the level of illumination"^^xsd:string ;
        rdfs:label        "DimmerLamp"^^xsd:string ;
        rdfs:subClassOf   :Lamp ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :NetworkFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :QueryFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :NetworkNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :LightIntensityState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LightRegulationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  "3"^^xsd:nonNegativeInteger ;
                            owl:onProperty      :hasFunctionality
                          ] ;
        owl:disjointWith  :SimpleLamp .

:StartSupercoolingCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startSuperCooling"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:PanUpCommand  a          owl:Class ;
        rdfs:subClassOf   :NonParametricCommand , :VoidCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "panUp"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :StoreGroupCommand , :RestCommand , :UpCommand , :SetSecondsCommand , :TimedOnCommand , :PreviousTrackCommand , :StandBy , :ZoomInCommand , :SetChannelCommand , :SetSpeedCommand , :SetHourCommand , :SetDesiredTemperature , :RewindCommand , :SpeedDownCommand , :SetVolumeCommand , :SetCommand , :SetMinutesCommand , :StepDownCommand , :PauseCommand , :PlayCommand , :SpeedUpCommand , :ZoomOutCommand , :ToggleCommand , :StoreSceneCommand , :StopPlayingCommand , :StopHeatingCoolingCommand , :StepUpCommand , :SetTimeoutCommand .

:Notification  a         owl:Class ;
        rdfs:subClassOf  owl:Thing ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :notificationName
                         ] .

:ApplianceManagementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :NetworkFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :InstallApplianceCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :DeleteApplianceCommand
                         ] .

:MultiplePressureMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :PressureMeasurementMNotification
                         ] .

:TripleValuedFunctionality
        a                owl:Class ;
        rdfs:comment     "Discrete functionalities with exactly three values"^^xsd:string ;
        rdfs:label       "TripleValuedFunctionality"^^xsd:string ;
        rdfs:subClassOf  :DiscreteControlFunctionality ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "3"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :hasCommand
                         ] .

:SuperCoolingFunctionality
        a                owl:Class ;
        rdfs:comment     "A functionality describing the ability of the device to start/stop a super cooling cycle (typical of fridges, freezers and refrigerators). This functionality is defined in the energy@home zigbee extension and in the EN50523 specification."^^xsd:string ;
        rdfs:subClassOf  :DoubleValuedFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StartSupercoolingCommand
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :StopSupercoolingCommand
                         ] .

:DisassociatingStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "disassociating"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:DiscreteOutputFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteControlFunctionality .

[ a            owl:AllDisjointProperties ;
  owl:members  ( :datapoinId :datapointAlias :endpointAddress )
] .

:hasWall  a           owl:ObjectProperty ;
        rdfs:comment  "Association between a room and its walls"^^xsd:string ;
        rdfs:domain   :Room ;
        rdfs:label    "hasWall"^^xsd:string ;
        rdfs:range    :Wall .

:SinglePhaseReactivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ReactivePowerStateValue
                         ] .

:ThreePhaseVoltageMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :VoltageMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseLLVoltageMeasurementNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseLNVoltageMeasurementNotification
                         ] .

:Get3PhaseActivePowerCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getActivePower"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] .

:TuningStepDownNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricLevelNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "channelStepUp"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Knob   a                 owl:Class ;
        rdfs:comment      "A round handle used to adjust continuous amplitude, e.g. volume"^^xsd:string ;
        rdfs:label        "Knob"^^xsd:string ;
        rdfs:subClassOf   :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :LevelState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SimpleLevelNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlFunctionality
                          ] ;
        owl:disjointWith  :PumpController , :SceneSelector , :Switch , :SingleScenarioControl , :RemoteControl , :Thermostat , :ShadeController , :ToggleRelay .

:ActiveDiscoveryStateValue
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "searching"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:PressedDownNotification
        a                owl:Class ;
        rdfs:subClassOf  :NonParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "pressedDown"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:Thermostat  a            owl:Class ;
        rdfs:subClassOf   :HVACSystem , :Control ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SpeedNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :HumidityMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TemperatureMeasurementFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OccupancySensingFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :ThermostatControlFunctionality
                          ] ;
        owl:disjointWith  :ToggleRelay , :VentilatingSystem .

:PumpController  a        owl:Class ;
        rdfs:comment      "The Pump device controller can control a Pump device"@en ;
        rdfs:subClassOf   :Control , :HVACSystem ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :FlowMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OnOffState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :PressureMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :SceneNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OnOffNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :IdentificationNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :TemperatureMeasurementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :GroupNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :LevelControlNotificationFunctionality
                          ] ;
        owl:disjointWith  :Switch , :VentilatingSystem , :ToggleRelay , :SingleFlowSensor , :RemoteControl , :Thermostat , :ShadeController , :SceneSelector , :SingleScenarioControl .

:NotPresentState  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "notPresent"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:DoorActuator  a          owl:Class ;
        rdfs:comment      "A mechanism that allow automatic opening and closing about door"^^xsd:string ;
        rdfs:label        "DoorActuator"^^xsd:string ;
        rdfs:subClassOf   :Actuator ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :MovementState
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  :Door ;
                            owl:onProperty     :actuatorOf
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :OpenCloseState
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :MovementNotificationFunctionality
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasFunctionality ;
                            owl:someValuesFrom  :OpenCloseFunctionality
                          ] ;
        owl:disjointWith  :Pump , :ShadeActuator , :WindowActuator , :GateActuator , :ShutterActuator .

:AlarmClock  a            owl:Class ;
        rdfs:comment      "A clock that wakes sleeper at preset time"^^xsd:string ;
        rdfs:label        "AlarmClock"^^xsd:string ;
        rdfs:subClassOf   :Clock ;
        owl:disjointWith  :Computer , :Entertainment , :Communication , :Fan , :Printer , :CoffeeMaker .

:StopPlayingCommand  a    owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "stop"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand , :ZoomInCommand , :UpCommand , :ToggleCommand .

:ThreePhaseElectricityMeter
        a                owl:Class ;
        rdfs:subClassOf  :ThreePhaseVoltageMeter , :ThreePhaseReactivePowerMeter , :ThreePhaseCurrentMeter , :ThreePhaseApparentPowerMeter , :ThreePhaseActivePowerMeter , :SinglePhaseEnergyMeter , :PowerFactorMeter , :FrequencyMeter .

:endpointAddress  a         owl:DatatypeProperty ;
        rdfs:comment        "The address (URL) of the web service endpoint at which the ILON100 server having this property offers data reading and writing services"@en ;
        rdfs:domain         :EchelonIlon100Gateway ;
        rdfs:range          xsd:string ;
        rdfs:subPropertyOf  :EchelonIlon100Property .

:Co2MeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :Co2MeasurementNotification
                         ] .

:MultiplePressureMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetPressureMCommand
                         ] .

:ClimateScheduleState
        a                owl:Class ;
        rdfs:subClassOf  :DiscreteState ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasStateValue ;
                           owl:someValuesFrom  :ClimateScheduleStateValue
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ClimateScheduleStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "7"^^xsd:nonNegativeInteger
                         ] .

:ZoomInCommand  a         owl:Class ;
        rdfs:subClassOf   :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "zoomIn"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        owl:disjointWith  :ZoomOutCommand .

[ a            owl:AllDisjointProperties ;
  owl:members  ( :BTicinoProperty :EchelonProperty :IPAddress :KonnexProperty :ModBusProperty :ZWaveProperty :commandParamName :commandParamValue :connectionTimeOut :connectionTrials :flashingTime :levelFromGround :nParams :notificationName :notificationParamName :phaseID :pollingInterval :port :probeID :realCommandName :realStateValue :returnType :sleepTime :stepValue :svgFootprint :tariffID :timeToOff :weekDay gr:serialNumber )
] .

:WashRinseStateValue  a  owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "washOrRinse"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:MultipleTemperatureMeasurementFunctionality
        a                owl:Class ;
        rdfs:comment     "The capability of measuring temperatures"@en ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetTemperatureMCommand
                         ] .

:Sofa   a                 owl:Class ;
        rdfs:comment      "An upholstered seat for more than one person"^^xsd:string ;
        rdfs:label        "Sofa"^^xsd:string ;
        rdfs:subClassOf   :Furniture ;
        owl:disjointWith  :Wardrobe , :Table .

:FrequencyMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :QueryFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :GetFrequencyCommand
                         ] .

:ReactivePowerMeter  a   owl:Class ;
        rdfs:subClassOf  :PowerMeter .

:ThreePhaseReactivePowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ReactivePowerMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ReactivePowerStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .

:Lamp   a                owl:Class ;
        rdfs:comment     "An artificial source of visible illumination"^^xsd:string ;
        rdfs:label       "Lamp"^^xsd:string ;
        rdfs:subClassOf  :Lighting ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :OnOffState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :OnOffNotificationFunctionality
                         ] .

:Stove  a                 owl:Class ;
        rdfs:comment      "Heating apparatus"^^xsd:string ;
        rdfs:label        "Stove"^^xsd:string ;
        rdfs:subClassOf   :WhiteGoods ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasState ;
                            owl:someValuesFrom  :HeatingApplianceState
                          ] ;
        owl:disjointWith  :WashingMachine .

terms:contributor  a  owl:AnnotationProperty .

:GetEventsAndAlertsCommand
        a                owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getEventsAndAlerts"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Object[]"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:SelectSourceCommand  a   owl:Class ;
        rdfs:subClassOf   :ParametricCommand ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "source^^String"^^xsd:string ;
                            owl:onProperty  :commandParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "source"^^xsd:string ;
                            owl:onProperty  :realCommandName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :SetDesiredTemperature , :StoreGroupCommand , :SetMinutesCommand , :SetChannelCommand , :StoreSceneCommand , :SetTimeoutCommand , :SetCommand , :SetSecondsCommand , :SetVolumeCommand , :SetSpeedCommand , :SetHourCommand , :TimedOnCommand .

:ModbusGateway  a        owl:Class ;
        rdfs:subClassOf  :ModbusComponent ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :IPAddress
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :port
                         ] .

:JoinGroupNotification
        a                 owl:Class ;
        rdfs:subClassOf   :ParametricNotification , :NetworkNotification ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "groupNumber^^Integer"^^xsd:string ;
                            owl:onProperty  :notificationParamName
                          ] ;
        rdfs:subClassOf   [ a               owl:Restriction ;
                            owl:hasValue    "joinedGroup"^^xsd:string ;
                            owl:onProperty  :notificationName
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :nParams
                          ] ;
        owl:disjointWith  :LeaveGroupNotification , :TemperatureMeasurementMNotification , :PressureMeasurementMNotification , :LevelControlNotification , :StoreSceneNotification .

:StopDiscoveryCommand
        a                owl:Class ;
        rdfs:subClassOf  :VoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "stopDiscovery"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:Tape2StateValue  a      owl:Class ;
        rdfs:subClassOf  :DiscreteValue ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tape2"^^xsd:string ;
                           owl:onProperty  :realStateValue
                         ] .

:ParametricCommand  a    owl:Class ;
        rdfs:subClassOf  :Command ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty      :nParams
                         ] .

owl:versionInfo  a  owl:AnnotationProperty .

:tariffID  a         owl:DatatypeProperty ;
        rdfs:domain  [ a            owl:Class ;
                       owl:unionOf  ( :MultiTariffActiveEnergyStateValue :MultiTariffReactiveEnergyStateValue :MultiTariffSinglePhaseActiveEnergyMeasurementNotification :MultiTariffSinglePhaseReactiveEnergyMeasurementNotification :MultiTariffThreePhaseActiveEnergyMeasurementNotification :MultiTariffThreePhaseReactiveEnergyMeasurementNotification )
                     ] ;
        rdfs:range   xsd:string .

:SinglePhaseActiveEnergyMeter
        a                owl:Class ;
        rdfs:subClassOf  :SingleTariffEnergyMeter ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasState ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyState
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyMeasurementFunctionality
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasFunctionality ;
                           owl:someValuesFrom  :SinglePhaseActiveEnergyMeasurementNotificationFunctionality
                         ] .

:StartedSuperFreezingNotification
        a                owl:Class ;
        rdfs:subClassOf  :SuperFreezingNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "startedSuperFreezing"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:ThreePhaseReactiveEnergyMeasurementNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ReactiveEnergyMeasurementNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :ThreePhaseReactiveEnergyMeasurementNotification
                         ] .

:PresenceNotificationFunctionality
        a                 owl:Class ;
        rdfs:subClassOf   :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :NotPresentNotification
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :IsPresentNotification
                          ] ;
        owl:disjointWith  :UpDownNotificationFunctionality .

:AlertNotification  a    owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "alert^^Object"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onProperty   :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newAlert"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] .

:GasHeater  a             owl:Class ;
        rdfs:comment      "Heater that combusts gas"^^xsd:string ;
        rdfs:label        "GasHeater"^^xsd:string ;
        rdfs:subClassOf   :Heater ;
        owl:disjointWith  :PelletHeater , :GasoilHeater .

:GetEndTimeCommand  a    owl:Class ;
        rdfs:subClassOf  :NonVoidCommand , :NonParametricCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getEndTime"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] .

:ClimateScheduleNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification .

:OpenCloseFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionality: open - close"^^xsd:string ;
        rdfs:label        "OpenCloseFunctionality"^^xsd:string ;
        rdfs:subClassOf   :DoubleValuedFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :OpenCommand
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :CloseCommand
                          ] ;
        owl:disjointWith  :UpDownFunctionality , :StepFunctionality .

:MultiTariffSinglePhaseReactiveEnergyState
        a                owl:Class ;
        rdfs:subClassOf  :EnergyMeasurementState ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:minQualifiedCardinality  "2"^^xsd:nonNegativeInteger ;
                           owl:onClass                  :MultiTariffReactiveEnergyStateValue ;
                           owl:onProperty               :hasStateValue
                         ] .

:SuperFreezingNotificationFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :DoubleValuedNotificationFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StartedSuperFreezingNotification
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasNotification ;
                           owl:someValuesFrom  :StoppedSuperFreezingNotification
                         ] .

:Printer  a              owl:Class ;
        rdfs:comment     "Output device that prints"^^xsd:string ;
        rdfs:label       "Printer"^^xsd:string ;
        rdfs:subClassOf  :BrownGoods .

:GetMultiTariff3PhaseReactiveEnergyCommand
        a                owl:Class ;
        rdfs:subClassOf  :ParametricCommand , :NonVoidCommand ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "getReactiveEnergyValue"^^xsd:string ;
                           owl:onProperty  :realCommandName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "tariffID^^String"^^xsd:string ;
                           owl:onProperty  :commandParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "Measure"^^xsd:string ;
                           owl:onProperty  :returnType
                         ] .

:CurrentMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ContinuousState .

:unitOfMeasure  a                 owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:domain               [ a            owl:Class ;
                                    owl:unionOf  ( :ContinuousValue :ParametricNotification )
                                  ] ;
        rdfs:range                <http://purl.oclc.org/NET/muo/muo#UnitOfMeasurement> ;
        owl:propertyDisjointWith  <http://purl.oclc.org/NET/muo/muo#measuredIn> .

:Sensor  a                   owl:Class ;
        rdfs:comment         "Class for grouping all electrically powered sensors"@en ;
        rdfs:subClassOf      :ElectricalSystem ;
        owl:equivalentClass  <http://purl.oclc.org/NET/ssnx/ssn#Sensor> .

:SinglePhaseApparentPowerMeasurementFunctionality
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementFunctionality ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasCommand ;
                           owl:someValuesFrom  :Get1PhaseApparentPowerCommand
                         ] .

:TimedOnFunctionality
        a                 owl:Class ;
        rdfs:comment      "Functionality to switch on an object for a given period of time"^^xsd:string ;
        rdfs:label        "TimedOnFunctionality"^^xsd:string ;
        rdfs:subClassOf   :SingleValuedFunctionality ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   :timeToOff
                          ] ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasCommand ;
                            owl:someValuesFrom  :TimedOnCommand
                          ] ;
        owl:disjointWith  :ToggleFunctionality .

:TemperatureMeasurementNotificationFunctionality
        a                 owl:Class ;
        rdfs:comment      "Notifies the measurment of a temperature, through a proper temperature sensor"@en ;
        rdfs:subClassOf   :ContinuousNotificationFunctionality ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:onProperty      :hasNotification ;
                            owl:someValuesFrom  :TemperatureMeasurementNotification
                          ] ;
        owl:disjointWith  :ThermostatNotificationFunctionality .

:BuildingEnvironment  a  owl:Class ;
        rdfs:comment  "A physical environment in which people lives, e.g. kitchen, bathroom"^^xsd:string ;
        rdfs:label    "BuildingEnvironment"^^xsd:string .

:SuperFreezingNotification
        a                    owl:Class ;
        rdfs:subClassOf      :NonParametricNotification ;
        owl:disjointUnionOf  ( :StartedSuperFreezingNotification :StoppedSuperFreezingNotification ) .

:hasGateway  a        owl:ObjectProperty ;
        rdfs:comment  "Relates a given domotic component with the network level gateway used to control it"@en ;
        rdfs:domain   :Controllable ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( :BTicinoGateway :EliteGateway :KonnexGateway )
                      ] .

:ThreePhaseLNVoltageMeasurementNotification
        a                owl:Class ;
        rdfs:subClassOf  :ParametricNotification ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "value^^Measure"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "phaseID^^String"^^xsd:string ;
                           owl:onProperty  :notificationParamName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    "newPhaseNeutralVoltageValue"^^xsd:string ;
                           owl:onProperty  :notificationName
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    2 ;
                           owl:onProperty  :nParams
                         ] .

:ThreePhaseApparentPowerMeasurementState
        a                owl:Class ;
        rdfs:subClassOf  :ApparentPowerMeasurementState ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ApparentPowerStateValue ;
                           owl:onProperty            :hasStateValue ;
                           owl:qualifiedCardinality  "3"^^xsd:nonNegativeInteger
                         ] .
