@prefix :      <https://saref.etsi.org/core/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix saref: <https://saref.etsi.org/core/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml:   <http://www.w3.org/XML/1998/namespace> .
@prefix s4syst: <https://saref.etsi.org/saref4syst/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix time:  <http://www.w3.org/2006/time#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .

saref:hasOutput  a    owl:ObjectProperty ;
        rdfs:comment  "Links a command or operation to its outputs."@en ;
        rdfs:domain   [ a            owl:Class ;
                        owl:unionOf  ( saref:Command saref:CommandOfInterest saref:Operation )
                      ] ;
        rdfs:label    "has output"@en ;
        skos:example  "Different complementary commands can be defined for observing a smart home. Observe the temperature once will output the indoor temperature property; observe status of the entry door will output an open/close state."@en .

saref:isControlledByDevice
        a                   owl:ObjectProperty ;
        rdfs:comment        "A relationship specifying the devices that can control a certain property"@en ;
        rdfs:domain         saref:Property ;
        rdfs:label          "is controlled by device"@en ;
        rdfs:range          saref:Device ;
        rdfs:subPropertyOf  saref:isControlledBy ;
        owl:deprecated      true ;
        skos:historyNote    "V3.2.1: saref:isControlledByDevice is deprecated: will be deleted in the next major revision of SAREF"@en .

saref:Safety  a           saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Safety"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Safety is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:MeterReading  a     saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Meter reading"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:MeterReading is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:PauseCommand  a     owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Pause command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:PauseCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:TemperatureSensor
        a                 owl:Class ;
        rdfs:comment      "A sensor that is used for the purpose of sensing a property of type saref:Temperature. A saref:TemperatureSensor is typically used to saref:accomplish saref:Comfort."@en ;
        rdfs:label        "Temperature sensor"@en ;
        rdfs:subClassOf   saref:Sensor ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:TemperatureSensor for it's only an example."@en .

saref:OpenCloseFunction
        a                 owl:Class ;
        rdfs:comment      "An actuating function that allows to open and close a device"@en ;
        rdfs:label        "Open close function"@en ;
        rdfs:subClassOf   saref:ActuatingFunction ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OpenCloseFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:hasDeviceKind  a      owl:ObjectProperty ;
        rdfs:comment        "Links a device to its kind, a feature kind. Kinds of devices describe models of devices, with common properties having the same value, common states being the same, common functions, and common services."@en ;
        rdfs:domain         saref:Device ;
        rdfs:label          "has device kind"@en ;
        rdfs:range          saref:FeatureKind ;
        rdfs:subPropertyOf  saref:hasFeatureKind .

saref:Actuation  a       owl:Class ;
        rdfs:comment     "A saref:Actuation is the act of carrying out a procedure to control the state of the world using an actuator. It links to an actuator to describe what made the actuation, and to the controlled feature, property, property of interest, state, or state of interest. Typically, its input is a property value or a state. An actuation of a state (OP saref:controls) should have a state as input (OP saref:hasInput). Respectively, an actuation of a property should have a property value as input."@en ;
        rdfs:label       "Actuation"@en ;
        rdfs:subClassOf  saref:ProcedureExecution ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  1 ;
                           owl:onProperty      saref:controls
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Actuator ;
                           owl:onProperty     saref:madeBy
                         ] .

dcterms:description  a  owl:AnnotationProperty .

saref:hasResult  a        owl:ObjectProperty ;
        rdfs:comment      "Links a procedure execution (e.g., an observation) to its result (e.g., a property value)."@en ;
        rdfs:domain       saref:ProcedureExecution ;
        rdfs:label        "has result"@en ;
        skos:historyNote  "V3.2.1: Introduced saref:hasResult as part of general will to make SAREF and SOSA/SSN converge."@en .

saref:WellBeing  a        saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "WellBeing"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:WellBeing is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:hasManufacturer
        a                 owl:DatatypeProperty ;
        rdfs:comment      "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                          ] ;
        rdfs:label        "has manufacturer"@en ;
        skos:historyNote  "V3.2.1: Defined domain of saref:hasManufacturer to union of feature kind and feature of interest."@en .

saref:isPropertyOfInterestOf
        a              owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "Links a property of interest to the feature of interest it is a property of."@en ;
        rdfs:domain    saref:PropertyOfInterest ;
        rdfs:label     "is property of interest of"@en ;
        rdfs:range     saref:FeatureOfInterest ;
        owl:inverseOf  saref:hasPropertyOfInterest .

saref:ActuatingFunction
        a                 owl:Class ;
        rdfs:comment      "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)"@en ;
        rdfs:label        "Actuating function"@en ;
        rdfs:subClassOf   saref:Function ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:ActuatingFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:State  a            owl:Class ;
        rdfs:comment      "Identifiable conditions that features of interest are or may be in, and that can be acted upon by devices, such as observed and controlled. A state can apply to different features of interest."@en ;
        rdfs:label        "State"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:State ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:State ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:example      "A switch can be found in the saref:OnOffState, which is further specialized in saref:OnState and saref:OffState."@en ;
        skos:historyNote  "V3.2.1: Clarified and generalized definition of saref:State. Can now apply to all features of interest, not just devices."@en ;
        skos:note         "Concepts from existing code lists, vocabularies, and taxonomies, may be used as instances of saref:State."@en , "SAREF is not restricted to binary states such as the saref:OnOffState, but allows to define also n-ary states (see, for example, the saref:MultiLevelState class)."@en .

saref:hasThresholdMeasurement
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"@en ;
        rdfs:domain       saref:EventFunction ;
        rdfs:label        "has threshold measurement"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:hasThresholdMeasurement is deprecated together with saref:EventFunction. And may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:GetCurrentMeterValueCommand
        a                 owl:Class ;
        rdfs:comment      "A type of get command"@en ;
        rdfs:label        "Get current meter value command"@en ;
        rdfs:subClassOf   saref:GetCommand ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:GetCurrentMeterValueCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:profileHasPrice
        a             owl:ObjectProperty ;
        rdfs:comment  "Links a profile to the money earned (negative values) or paid (positive values) for the use (production or consumption) of the commodity by the device"@en ;
        rdfs:domain   saref:Profile ;
        rdfs:label    "has price"@en ;
        rdfs:range    saref:PropertyValue .

saref:isUsedFor  a      owl:ObjectProperty ;
        rdfs:comment    "Links a feature kind, feature of interest, or device, to the commodity it is used for"@en ;
        rdfs:domain     [ a            owl:Class ;
                          owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:Device )
                        ] ;
        rdfs:label      "is used for"@en ;
        rdfs:range      saref:Commodity ;
        owl:deprecated  true ;
        skos:scopeNote  "V3.2.1: saref:isUsedFor is deprecated for its name is not clear. For example if a device consumes electricity, it doesn't mean this is what it is used for."@en .

saref:isMeasuredIn  a     owl:ObjectProperty ;
        rdfs:comment      "A relationship identifying the unit of measure used for a certain entity."@en ;
        rdfs:label        "is measured in"@en ;
        rdfs:range        saref:UnitOfMeasure ;
        skos:historyNote  "V3.2.1: Relaxed domain of saref:isMeasuredIn so it can apply to saref:PropertyValue as well as saref:Measurement. The new range will be enforced in the next major revision of SAREF."@en .

saref:hasValue  a         owl:DatatypeProperty ;
        rdfs:comment      "Value of a property value expressed as an RDF literal. Note that, even if decimal values are expected, values could use other datatypes."@en ;
        rdfs:label        "has value"@en ;
        skos:historyNote  "V3.2.1: Clarified definition of saref:hasValue."@en .

saref:StepDownCommand
        a                 owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Step down command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StepDownCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:hasProperty  a            owl:ObjectProperty ;
        rdfs:comment            "Links a feature kind or a feature of interest to one of its properties."@en ;
        rdfs:domain             [ a            owl:Class ;
                                  owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                                ] ;
        rdfs:label              "has property"@en ;
        rdfs:range              saref:Property ;
        owl:inverseOf           saref:isPropertyOf ;
        owl:propertyChainAxiom  ( saref:hasFeatureKind saref:hasProperty ) ;
        owl:propertyChainAxiom  ( skos:broader saref:hasProperty ) ;
        owl:propertyChainAxiom  ( saref:hasPropertyOfInterest saref:hasPropertyKind ) ;
        skos:historyNote        "V3.2.1: applicability of saref:hasProperty is relaxed to also saref:FeatureKind"@en .

skos:broader  a        owl:ObjectProperty ;
        owl:inverseOf  skos:narrower .

dcterms:source  a  owl:AnnotationProperty .

saref:OpenCommand  a      owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Open command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OpenCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:hasApplicableTime
        a             owl:ObjectProperty ;
        rdfs:comment  "Links an entity (e.g., a profile) to an instant or interval or other compound temporal entity expressed using OWL Time, which bounds temporally the applicable context of that entity."@en ;
        rdfs:label    "has applicable time"@en ;
        rdfs:range    [ a            owl:Class ;
                        owl:unionOf  ( time:TemporalEntity time:TemporalPosition )
                      ] .

saref:accomplishes  a  owl:ObjectProperty ;
        rdfs:comment   "Links a certain entity (e.g., a device) to the task it accomplishes."@en ;
        rdfs:label     "accomplishes"@en ;
        rdfs:range     saref:Task ;
        owl:inverseOf  saref:isAccomplishedBy .

saref:SetLevelCommand
        a                 owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Set level command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:SetLevelCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:hasCommandKind  a         owl:ObjectProperty ;
        rdfs:comment            "links a command of interest to its kind, a command."@en ;
        rdfs:domain             saref:CommandOfInterest ;
        rdfs:label              "has command kind"@en ;
        rdfs:range              saref:Command ;
        owl:propertyChainAxiom  ( saref:hasCommandKind skos:broader ) .

saref:hasProfile  a       owl:ObjectProperty ;
        rdfs:comment      "Links a device to its profile. Its inverse is saref:isProfileOf. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:actsUpon or its sub-properties."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:Device )
                          ] ;
        rdfs:label        "has profile"@en ;
        rdfs:range        saref:Profile ;
        owl:inverseOf     saref:isProfileOf ;
        skos:historyNote  "V3.2.1: Relaxed domain of saref:hasProfile to saref:FeatureKind or saref:Device"@en .

saref:Function  a         owl:Class ;
        rdfs:comment      "Logical groups of commands that devices support to accomplish their tasks. Function can act upon (OP saref:actsUpon and its sub-properties) features, properties, or states. An instance of saref:Function can apply to different devices."@en ;
        rdfs:label        "Function"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Function ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Function ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:example      "To accomplish the task of washing clothes, a washing machine should have a function for washing."@en , "To accomplish the task of sensing the temperature, a temperature sensor should have a sensing function."@en , "To accomplish the task of controlling the light, a smart light switch may have a function for turning on and off the light, and another to set the luminosity of the light."@en ;
        skos:historyNote  "V3.2.1: Simplified definition and axiomatization of saref:Function. Added examples."@en .

saref:ToggleCommand  a    owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Toggle command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:ToggleCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:isOfferedBy  a      owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment      "Links a service to the device that exposes it to a network"@en ;
        rdfs:domain       saref:Service ;
        rdfs:label        "is offered by"@en ;
        rdfs:range        saref:Device ;
        owl:inverseOf     saref:offers ;
        skos:historyNote  "V3.2.1: Clarified definition of saref:isOfferedBy."@en .

saref:Sensor  a           owl:Class ;
        rdfs:comment      "A device designed to observe one or more properties or states of one or more features of interest."@en ;
        rdfs:label        "Sensor"@en ;
        rdfs:subClassOf   saref:Device ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  1 ;
                            owl:onProperty      saref:observes
                          ] ;
        skos:historyNote  "V3.2.1: Definition of Sensor is simplified and grounded on saref:observes. Local restriction on saref:hasFunction is deleted."@en .

saref:Appliance  a        owl:Class ;
        rdfs:comment      "A device designed to accomplish a particular task for occupant use. It consumes, produces, or stores, some commodity."@en ;
        rdfs:label        "Appliance"@en ;
        rdfs:subClassOf   saref:Device ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  1 ;
                            owl:onProperty      saref:isUsedFor
                          ] ;
        skos:historyNote  "V3.2.1: Definition of saref:Appliance is grounded on tasks and commodities."@en .

saref:Drying  a           saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Drying"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Drying is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:Time  a             owl:Class ;
        rdfs:comment      "A class that allows to specify the time concept."@en ;
        rdfs:label        "Time"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:Time and use OWL Time instead whenever possible."@en .

dcterms:creator  a  owl:AnnotationProperty .

saref:CloseCommand  a     owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Close command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:CloseCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:DoorSwitch  a       owl:Class ;
        rdfs:comment      "A switch that performs the saref:OpenCloseFunction, is used for controlling a door, and can be found in the state saref:OpenCloseState. A saref:DoorSwitch is typically used to accomplish saref:Safety."@en ;
        rdfs:label        "Door switch"@en ;
        rdfs:subClassOf   saref:Switch ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:DoorSwitch for it's only an example."@en .

saref:hasMeterReadingType
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship identifying the reading type of a metering function (e.g., Water, Gas, Pressure , Energy , Power, etc.)"@en ;
        rdfs:domain       saref:MeteringFunction ;
        rdfs:label        "has meter reading type"@en ;
        rdfs:range        saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: deprecated saref:hasMeterReadingType together with saref:MeteringFunction"@en .

saref:OffState  a         owl:Class ;
        rdfs:comment      "The state of a device that is Off"@en ;
        rdfs:label        "Off state"@en ;
        rdfs:subClassOf   saref:OnOffState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OffState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:isCommandOf  a   owl:ObjectProperty ;
        rdfs:comment   "Links a command and a function or function of interest that supports it."@en ;
        rdfs:domain    saref:Command ;
        rdfs:label     "is command of"@en ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( saref:Function saref:FunctionOfInterest )
                       ] ;
        owl:inverseOf  saref:hasCommand .

saref:Occupancy  a        owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value (saref:hasValue property) that is measured in a unit of measure for occupancy"@en ;
        rdfs:label        "Occupancy"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Occupancy is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:SensingFunction
        a                 owl:Class ;
        rdfs:comment      "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"@en ;
        rdfs:label        "Sensing function"@en ;
        rdfs:subClassOf   saref:Function ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:SensingFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:controlsProperty
        a                   owl:ObjectProperty ;
        rdfs:comment        "A relationship specifying the property that can be controlled by a certain device"@en ;
        rdfs:domain         saref:Device ;
        rdfs:label          "controls property"@en ;
        rdfs:range          saref:Property ;
        rdfs:subPropertyOf  saref:controls ;
        owl:deprecated      true ;
        skos:historyNote    "V3.2.1: saref:controlsProperty is deprecated: will be deleted in the next major revision of SAREF"@en .

saref:isStateOf  a        owl:ObjectProperty ;
        rdfs:comment      "Links a state to the feature kind or feature of interest it is a state of."@en ;
        rdfs:domain       saref:State ;
        rdfs:label        "is state of"@en ;
        rdfs:range        [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                          ] ;
        owl:inverseOf     saref:hasState ;
        skos:historyNote  "V3.2.1: Introduced saref:isStateOf."@en .

dcterms:title  a  owl:AnnotationProperty .

saref:isProfileOf  a   owl:ObjectProperty ;
        rdfs:comment   "Links a profile to the device it describes. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:actsUpon or its sub-properties."@en ;
        rdfs:domain    saref:Profile ;
        rdfs:label     "is profile of"@en ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( saref:FeatureKind saref:Device )
                       ] ;
        owl:inverseOf  saref:hasProfile .

saref:isProducedBy  a  owl:ObjectProperty ;
        rdfs:comment   "Links a commodity to the feature kind, feature of interest, or device, that produces it"@en ;
        rdfs:label     "is produced by"@en ;
        owl:inverseOf  saref:produces .

saref:actsUpon  a         owl:ObjectProperty ;
        rdfs:comment      "Links a device, function, command, or procedure execution, to the feature, property, or state, it acts upon."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest saref:ProcedureExecution )
                          ] ;
        rdfs:label        "acts upon"@en ;
        rdfs:range        [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:Property saref:PropertyOfInterest saref:State saref:StateOfInterest )
                          ] ;
        skos:historyNote  "V3.2.1: saref:actsUpon now holds not only between a command and a state. It generalizes actsUpon, observes, controls. Domain and range are unions of several classes."@en .

saref:StateOfInterest
        a                 owl:Class ;
        rdfs:comment      "Identifiable conditions that features of interest are or may be in, and that can be acted upon by devices, such as observed and controlled. An instance of saref:StateOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest."@en ;
        rdfs:label        "State of Interest"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isStateOfInterestOf
                          ] ;
        skos:historyNote  "V3.2.1: Introduced saref:StateOfInterest, parallel to saref:PropertyOfInterest."@en ;
        skos:note         "States of interest need not always be explicited. It depends on the use case. Typically, states of interest are useful in applications, where the association between a feature of interest and a state (i.e., the state of interest) needs to be identified and related to other states of interest."@en , "Per convention, the IRI of states of interest should consist of the IRI of their feature of interest, suffixed with a fragment identifier #{S} where {S} refers to the name of the state."@en , "A state of interest is the state of (OP saref:isStateOfInterestOf) exactly one feature of interest."@en .

saref:Meter  a            owl:Class ;
        rdfs:comment      "A device designed to observe and measure one or more properties of one or more features of interest."@en ;
        rdfs:label        "Meter"@en ;
        rdfs:subClassOf   saref:Device ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  1 ;
                            owl:onProperty      saref:observes
                          ] ;
        skos:historyNote  "V3.2.1: Definition of Meter is simplified and grounded on saref:observes. Local restriction on saref:hasFunction is deleted."@en .

saref:CloseState  a       owl:Class ;
        rdfs:comment      "The state of a device that is CLOSE"@en ;
        rdfs:label        "Close state"@en ;
        rdfs:subClassOf   saref:OpenCloseState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:CloseState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:hasOptionalCommand
        a                   owl:ObjectProperty ;
        rdfs:comment        "Links a function and one of its optional commands"@en ;
        rdfs:domain         saref:Function ;
        rdfs:label          "has optional command"@en ;
        rdfs:subPropertyOf  saref:hasCommand .

saref:Motion  a           owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for motion"@en ;
        rdfs:label        "Motion"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Motion is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:TemperatureUnit
        a                 owl:Class ;
        rdfs:comment      "The unit of measure for temperature"@en ;
        rdfs:label        "Temperature unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:TemperatureUnit is deprecated. Will be deleted in the next major revision of SAREF"@en .

saref:hasDescription  a  owl:DatatypeProperty ;
        rdfs:comment    "A relationship providing a description of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en , "DEPRECATED: The use of rdfs:comment is recommended instead."@en ;
        rdfs:label      "has description"@en ;
        owl:deprecated  true .

saref:hasIdentifier  a  owl:DatatypeProperty ;
        rdfs:comment  "Links some entity to its identifier. Extensions of SAREF may define sub-properties such as s4abcd:hasUUID, s4abcd:hasGTIN12, etc."@en ;
        rdfs:label    "has identifier"@en ;
        rdfs:seeAlso  <https://labs.etsi.org/rep/saref/saref-portal/-/issues/2> .

saref:hasPropertyKind
        a                       owl:ObjectProperty ;
        rdfs:comment            "links a property of interest to its kind, a property."@en ;
        rdfs:domain             saref:PropertyOfInterest ;
        rdfs:label              "has property kind"@en ;
        rdfs:range              saref:Property ;
        owl:propertyChainAxiom  ( saref:hasPropertyKind skos:broader ) .

saref:isConsumedBy  a  owl:ObjectProperty ;
        rdfs:comment   "Links a commodity to the feature kind, feature of interest, or device, that consumes it"@en ;
        rdfs:label     "is consumed by"@en ;
        owl:inverseOf  saref:consumes .

saref:OnOffState  a       owl:Class ;
        rdfs:comment      "A type of state"@en ;
        rdfs:label        "On off state"@en ;
        rdfs:subClassOf   saref:State ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OnOffState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:isExecutionOf  a          owl:ObjectProperty ;
        rdfs:comment            "Links a command execution to the command or command of interest that was executed. Also liks an operation execution to the operation that was executed"@en ;
        rdfs:domain             saref:ProcedureExecution ;
        rdfs:label              "is execution of"@en ;
        rdfs:range              [ a            owl:Class ;
                                  owl:unionOf  ( saref:Command saref:CommandOfInterest saref:Operation )
                                ] ;
        owl:propertyChainAxiom  ( saref:isExecutionOf saref:hasCommandKind ) ;
        owl:propertyChainAxiom  ( saref:isExecutionOf skos:broader ) .

saref:controls  a           owl:ObjectProperty ;
        rdfs:comment        "Links a device, function, command, or procedure execution, to the feature, property, or state, it controls."@en ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( saref:FeatureKind saref:Actuator saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest saref:Actuation )
                            ] ;
        rdfs:label          "controls"@en ;
        rdfs:subPropertyOf  saref:actsUpon ;
        owl:inverseOf       saref:isControlledBy ;
        skos:historyNote    "V3.2.1: Introduced property saref:controls, as sub-property of saref:actsUpon. and generalization of saref:controlsProperty."@en .

saref:hasFunctionOfInterest
        a              owl:ObjectProperty ;
        rdfs:comment   "Links a device to one of its functions of interest."@en ;
        rdfs:domain    saref:Device ;
        rdfs:label     "has function of interest"@en ;
        rdfs:range     saref:FunctionOfInterest ;
        owl:inverseOf  saref:isFunctionOfInterestOf .

saref:Temperature  a      owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"@en ;
        rdfs:label        "Temperature"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Temperature is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:LevelControlFunction
        a                 owl:Class ;
        rdfs:comment      "An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. "@en ;
        rdfs:label        "Level control function"@en ;
        rdfs:subClassOf   saref:ActuatingFunction ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:LevelControlFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:Profile  a          owl:Class ;
        rdfs:comment      "A saref:Profile describes the money earned (negative values) or paied (positive values) for the use (production or consumption) of a commodity by a device in a certain context."@en ;
        rdfs:label        "Profile"@en ;
        skos:historyNote  "V3.2.1: Class saref:Profile has been re-specified, to take into account findings from SAREF4ENER V1.2.1."@en ;
        skos:note         "OP saref:hasPrice links a profile to the money earned (negative values) or paid (positive values) for the use (production or consumption) of the commodity by the device."@en , "The applicable context can be restricted to when a feature of interest has a certain state (OPs saref:whenState)."@en , "The applicable context can be restricted to when the property of a feature of interest has some value (OPs saref:whenPropertyValue)"@en , "The applicable context of a profile can be bound temporally using DP saref:hasTimestamp or its subproperties defined by SAREF extensions, or OP saref:hasApplicableTime which links to instant or interval or other compound temporal entity expressed using OWL Time."@en , "OP saref:hasProfile links a device to its profile. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:actsUpon or its sub-properties."@en .

saref:  a                              owl:Ontology ;
        rdfs:comment                   "Information about changes to version 3.1.1:\n\nNOTE:\tIn some cases, references have been added to indicate the issue in the ETSI Forge (https://saref.etsi.org/sources/saref-core/issues) where the change was discussed and implemented.\n\n- Added the saref:FeatureOfInterest class and the properties used to relate it to saref:Measurement (saref:hasMeasurement and saref:isMeasurementOf) and to saref:Property (saref:hasProperty and saref:isPropertyOf).\n- Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement.\n- The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other.\n- The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements.\n- The range of datatype properties, which was defined as xsd:string, has been removed in order to support strings with language tags (rdf:langString). This affects saref:hasDescription, saref:hasManufacturer, saref:hasModel and saref:hasName, which now have implicitly a range of rdfs:Literal.\n- The saref:hasName property has been removed and the use of rdfs:label is recommended. \n- The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended. \n- Too restrictive restrictions have been removed and in some cases the ontology documentation has been updated to reflect this: a saref:Command having at most one saref:hasDescription; a saref:Task being accomplished by at least one saref:Device; a saref:Device having a typical consumption of only energy or power; a saref:Commodity being measured in units of measure; restrictions on the values of saref:accomplishes that only covered specific use cases; universal restrictions on the saref:actsUpon property have been changed to existential ones; restrictions on the commands that a saref:Function may have, since there could be others not included in the defined enumerations; restrictive documentation of saref:EventFunction and saref:SmokeSensor.\n- Bugs have been fixed: some devices (saref:DoorSwitch, saref:EnergyMeter, saref:LigthSwitch, saref:SmokeSensor, and saref:TemperatureSensor) were defined as subclass of a device and at the same time as consisting of such device; a saref:LightSwitch controls light and does not measure light, since it is an actuator; incorrect documentation of saref:OnState and saref:OffState.\n- The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types.\n- The instances of the subclasses of saref:Command have been removed, since they represent examples.\n- The instances of saref:UnitOfMeasure have been moved to examples.\n- The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter.\n- Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network.\n- Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property.\n- The OWL Time ontology is not imported anymore.\n- The documentation of some ontology terms has been updated for clarification.\n- Language tags have been added to all labels and comments.\n" , "Information about changes to version 2.1.1:\n\n- The classes and properties related to how to represent devices in building spaces (such as the saref:BuildingSpace class,  saref:BuildingObject class and saref:isLocatedIn property) have been removed from SAREF and incorporated  into the SAREF4BLDG extension related to buildings, including the reuse of the W3C? WGS84 geo positioning vocabulary.\n- The saref:DeviceCategory and saref:FunctionCategory classes have been removed. Instead, the hierarchy of device categories has been implemented directly as subclasses of the saref:Device class.\n- The information specific for energy efficiency has been moved to the SAREF4ENER extension. For example, the saref:Profile class has been redefined to accommodate only the properties that are general enough for any type of profile, not only for energy and power. Details on how to specifically model a power profile can be found in the SAREF4ENER extension. \n- The subclasses of the saref:Energy class  have been removed (i.e., Average Energy, Maximum Energy, Minimum Energy, Total Energy, HVAC Energy, Hot Water Energy and Lighting Energy).\n- The saref:Property class has been split into two classes (saref:Property and saref:Measurement), as it is done in the SAREF4ENVI extension, in order to properly accommodate the distinction between the concept of property (an observable quality of something) and the concept of measurement (a concrete value observed for a property).\n- Too restrictive cardinality restrictions have been revised, sometimes making them optional rather than mandatory (better to make properties mandatory in the extensions that specialize SAREF for a specific purpose, rather than restricting SAREF, whose purpose is more general). For example, definitions of units of measurement using an enumeration (owl:oneOf) were too restrictive because they did not allow using other units than those enumerated. Therefore, the individuals of each class are still there, but the owl:oneOf enumeration has been removed.\n- The saref:UnitOfMeasure subclasses use individuals from the OM ontology for unit of measures, but this is not the only solution. It has been clarified in the comments that the OM ontology is an example, but other ontologies can be used.\n- The global restrictions (rdfs:domain and rdfs:range) in object properties have been completely removed not to hinder interoperability. Object properties are now only restricted locally in the classes. \n- The subclasses of saref:Task have been transormed in individuals.\n- The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class." , "Information about changes to version 3.2.1:\n\nNOTE: Rationale and decisions for many of the changes in V3.2.1 are available in issues in project https://saref.etsi.org/sources/saref-core/issues.\n\n- Definition of saref:FeatureOfInterest is clarified, not only properties are measured, but properties and states can be observed and controlled.\n- Definition of saref:FeatureOfInterest: Clarify it is a specific real world entity.\n- Definition of saref:FeatureOfInterest: allValuesFrom axioms are unnecessary and have been deleted.\n- Introduced class saref:FeatureKind\n- Use SKOS to organize generic classes in taxonomies.\n- Introduce hasClassKind for Class is Feature, Device, Property, State, Function, Command.\n- Add local restrictions on consistsOf on feature of interest\n- Defined domain of saref:hasManufacturer to union of feature kind and feature of interest.\n- Defined domain of saref:hasModel to union of feature kind and feature of interest.\n- Most axioms on saref:Device were useless and have been deleted.\n- definition of saref:Device clarifies it is a real world entity.\n- saref:Device is explicitly a subclass of saref:FeatureOfInterest and s4syst:System.\n- saref:actsUpon now holds not only between a command and a state. It generalizes actsUpon, observes, controls. Domain and range are unions of several classes.\n- Introduced property saref:isActedUponBy.\n- Introduced property saref:observes, as sub-property of saref:actsUpon. and generalization of measures.\n- Introduced property saref:controls, as sub-property of saref:actsUpon. and generalization of saref:controlsProperty.\n- Introduced property saref:isControlledBy.\n- saref:measuresProperty is deprecated: will be deleted in the next release of SAREF\n- saref:isMeasuredByDevice is deprecated: will be deleted in the next release of SAREF\n- saref:isControlledByDevice is deprecated: will be deleted in the next release of SAREF\n- saref:controlsProperty is deprecated: will be deleted in the next release of SAREF\n- Definition of saref:Appliance is grounded on tasks and commodities.\n- Definition of Sensor is simplified and grounded on saref:observes. Local restriction on saref:hasFunction is deleted.\n- Definition of Actuator is simplified and grounded on saref:controls. Local restriction on saref:hasFunction is deleted.\n- Definition of Meter is simplified and grounded on saref:observes. Local restriction on saref:hasFunction is deleted.\n- Deprecated saref:HVAC for it is only an example.\n- Deprecated saref:Switch for it is only an example.\n- Deprecated saref:DoorSwitch for it is only an example.\n- Deprecated saref:LightSwitch for it is only an example.\n- Deprecated saref:SmokeSensor for it is only an example.\n- Deprecated saref:TemperatureSensor for it is only an example.\n- The following tasks are deprecated, and may be deleted in the next release of SAREF: saref:Cleaning, saref:Comfort, saref:Drying, saref:EnergyEfficiency, saref:Entertainment, saref:Lighting, saref:MeterReading, saref:Safety, saref:Washing, saref:WellBeing.\n- Definition of saref:Commodity is simplified.\n- saref:Electricity is deprecated: will be defined as an instance of saref:Commodity in the next release of SAREF\n- saref:Gas is deprecated: will be defined as an instance of saref:Commodity in the next release of SAREF\n- saref:Coal is deprecated: will be defined as an instance of saref:Commodity in the next release of SAREF\n- saref:Water is deprecated: will be defined as an instance of saref:Commodity in the next release of SAREF\n- New category of commodities saref:EnergyCommodity\n- New category of commodities saref:NaturalResourceCommodity\n- Introduced saref:consumes, saref:isConsumedBy, saref:produces, saref:isProducedBy, saref:stores, saref:isStoredBy.\n- The definition and scope of usage for saref:Property is clarified. Axiomatization is simplified.\n- applicability of saref:hasProperty is relaxed to also saref:FeatureKind\n- Introduced saref:PropertyOfInterest to solved the ambiguity between generic vs specific properties.\n- Introduced saref:hasPropertyOfInterest and saref:isPropertyOfInterestOf. Cannot use saref:hasProperty due to the combination of cardinality restrictions and sub-property chain axioms makes the ontology exist the OWL 2 DL prodile.\n- Introduced saref:PropertyValue to simplify the association of a measure to a property, without always needing it to be a measurement made by a device.\n- Clarified definition of saref:hasValue.\n- Relaxed domain of saref:isMeasuredIn so it can apply to saref:PropertyValue as well as saref:Measurement. The new range will be enforced in the next release of SAREF.\n- Introduced saref:hasPropertyValue.\n- Introduced saref:isValueOfProperty.\n- The following classes are deprecated and may be defined as instances of saref:Property in the next release of SAREF: saref:Energy, saref:Humidity, saref:Light, saref:Motion, saref:Occupancy, saref:Power, saref:Pressure, saref:Price, saref:Smoke, saref:Temperature\n- saref:EnergyUnit is deprecated. Will be deleted in the next release of SAREF\n- saref:IlluminanceUnit is deprecated. Will be deleted in the next release of SAREF\n- saref:PowerUnit is deprecated. Will be deleted in the next release of SAREF\n- saref:PressureUnit is deprecated. Will be deleted in the next release of SAREF\n- saref:TemperatureUnit is deprecated. Will be deleted in the next release of SAREF\n- Clarified and generalized definition of saref:State. Can now apply to all features of interest, not just devices.\n- Relaxed domain of saref:hasState.\n- Introduced saref:isStateOf.\n- Introduced saref:StateOfInterest, parallel to saref:PropertyOfInterest.\n- Introduced saref:hasStateOfInterest and saref:isStateOfInterestOf, parallel to saref:hasPropertyOfInterest and saref:isPropertyOfInterestOf.\n- The following classes are deprecated and may be defined as instances of saref:State in the next release of SAREF: saref:CloseState, saref:MultiLevelState, saref:OffState, saref:OnOffState, saref:OnState, saref:OpenCloseState, saref:OpenState, saref:StartState, saref:StartStopState, saref:StopState.\n- Simplified definition and axiomatization of saref:Function. Added examples.\n- saref:SensingFunction is deprecated: may be defined as an instance of saref:Function in the next release of SAREF\n- saref:hasSensingRange is deprecated together with saref:SensingFunction. And may be defined as an instance of saref:Property in the next release of SAREF\n- saref:hasSensingRange is deprecated together with saref:SensingFunction. Use saref:hasDeviceKind instead.\n- saref:EventFunction is deprecated: may be defined as an instance of saref:Function in the next release of SAREF\n- saref:hasThresholdMeasurement is deprecated together with saref:EventFunction. And may be defined as an instance of saref:Property in the next release of SAREF\n- saref:MeteringFunction is deprecated: may be defined as an instance of saref:Function in the next release of SAREF\n- deprecated saref:hasMeterReading together with saref:Measurement and saref:MeteringFunction\n- deprecated saref:hasMeterReadingType together with saref:MeteringFunction\n- saref:LevelControlFunction, saref:StartStopFunction, saref:OpenCloseFunction, saref:OnOffFunction,  \n- saref:ActuatingFunction are deprecated: may be defined as an instance of saref:Function in the next release of SAREF.\n- Domain of saref:hasFunction is relaxed.\n- Introduced saref:isFunctionOf.\n- Introduced saref:FunctionOfInterest, parallel to saref:PropertyOfInterest.\n- Simplified definition and axiomatization of saref:Command. Added examples.\n- Domain of saref:hasCommand is relaxed to saref:Function or saref:FunctionOfInterest.\n- Introduced mandatory and optional commands.\n- Introduced saref:hasInput and saref:hasOutput.\n- Introduced saref:CommandOfInterest, parallel to saref:PropertyOfInterest.\n- The following classes are deprecated and may be defined as instances of saref:Command in the next release of SAREF: saref:ToggleCommand, saref:GetCommand, saref:NotifyCommand, saref:GetSensingDataCommand, saref:GetCurrentMeterValueCommand, saref:GetMeterDataCommand, saref:GetMeterHistoryCommand, saref:SetAbsoluteLevelCommand, saref:SetRelativeLevelCommand, saref:SetLevelCommand, saref:StepDownCommand, saref:StepUpCommand, saref:PauseCommand, saref:StartCommand, saref:StopCommand, saref:CloseCommand, saref:OpenCommand, saref:OnCommand, saref:OffCommand.\n- Simplified definition of saref:Service. Added examples.\n- Relaxed domain and range of saref:represents.\n- Clarified definition of saref:offers.\n- Clarified definition of saref:isOfferedBy.\n- saref:SwitchOnService is deprecated for it is just an example. It may be deleted in the next release of SAREF\n- Introduced saref:Operation and associated properties from oneM2M base ontology.\n- Introduced saref:ProcedureExecution.\n- Introduce saref:madeBy (resp. saref:madeExecution) as generalization of saref:measurementMadeBy (resp. saref:makesMeasurement).\n- saref:makesMeasurement is deprecated as one of the properties related to saref:Measurement. It may be deleted in the next release of SAREF\n- saref:makesMeasurement is deprecated as one of the properties related to saref:Measurement. It may be deleted in the next release of SAREF\n- Introduced saref:hasResult as part of general will to make SAREF and SOSA/SSN converge.\n- Introduced saref:hasResultTime as part of general will to make SAREF and SOSA/SSN converge.\n- Introduced saref:hasPhenomenonTime as part of general will to make SAREF and SOSA/SSN converge.\n- Tried to clarify definition of saref:hasTimestamp. Still unclear.\n- Deprecated saref:Measurement in favour of saref:Observation, to generalize to observation of states and convergence with SOSA/SSN.\n- Deprecated saref:isMeasurementOf together with saref:Measurement.\n- Deprecated saref:isMeasurementOf together with saref:Measurement.\n- Deprecated saref:isMeasurementOf together with saref:Measurement.\n- Deprecated saref:isMeasurementOf together with saref:Measurement.\n- Class saref:Profile has been re-specified, to take into account findings from SAREF4ENER V1.2.1.\n- Relaxed domain of saref:hasProfile to saref:FeatureKind or saref:Device\n- Deprecated saref:hasTime and use OWL Time instead whenever possible.\n- Deprecated saref:Time and use OWL Time instead whenever possible.\n- Deprecated saref:hasTypicalConsumption. May be defined as an instance of saref:Property in the next release of SAREF.\n" ;
        rdfs:seeAlso                   <https://www.etsi.org/deliver/etsi_ts/103200_103299/103264/03.02.01_60/ts_103264v030201p.pdf> ;
        dcterms:creator                <https://www.linkedin.com/in/bouterca> , <http://maxime-lefrancois.info/me#> , <https://w3id.org/people/mpoveda/> , <https://www.linkedin.com/in/giulia-biagioni> , <http://www.garcia-castro.com/foaf.rdf#me> , <https://www.linkedin.com/in/lauradaniele> , <https://www.linkedin.com/in/david-gnabasik-0056a0ba/> ;
        dcterms:description            "The Smart Applications REFerence ontology (SAREF) is intended to enable interoperability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), thus contributing to the development of the global digital market."@en ;
        dcterms:issued                 "2023-12-31"^^xsd:date ;
        dcterms:license                <https://forge.etsi.org/etsi-software-license> ;
        dcterms:modified               "2020-12-31"^^xsd:date ;
        dcterms:publisher              <https://www.etsi.org/> ;
        dcterms:source                 <https://saref.etsi.org/sources/saref-core/> ;
        dcterms:title                  "SAREF: the Smart Applications REFerence ontology"@en ;
        vann:preferredNamespacePrefix  "saref" ;
        vann:preferredNamespaceUri     "https://saref.etsi.org/core/" ;
        owl:priorVersion               <https://saref.etsi.org/core/v3.1.1/> ;
        owl:versionIRI                 <https://saref.etsi.org/core/v3.2.1/> ;
        owl:versionInfo                "v3.2.1" .

saref:consumes  a           owl:ObjectProperty ;
        rdfs:comment        "Links a feature kind, feature of interest, or device, to the commodity it consumes"@en ;
        rdfs:label          "consumes"@en ;
        rdfs:subPropertyOf  saref:isUsedFor ;
        owl:inverseOf       saref:isConsumedBy ;
        skos:historyNote    "V3.2.1: Introduced saref:consumes, saref:isConsumedBy, saref:produces, saref:isProducedBy, saref:stores, saref:isStoredBy."@en .

saref:Operation  a        owl:Class ;
        rdfs:comment      "A saref:Operation is the means of a service to communicate in a procedure-type manner over the network (i.e. transmit data to/from other devices). It is the –machine interpretable– exposure of a –human understandable– command to a network."@en ;
        rdfs:label        "Operation"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isOperationOf
                          ] ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:minQualifiedCardinality  1 ;
                            owl:onClass                  saref:CommandOfInterest ;
                            owl:onProperty               saref:represents
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  [ a            owl:Class ;
                                                 owl:unionOf  ( saref:Command saref:CommandOfInterest )
                                               ] ;
                            owl:onProperty     saref:represents
                          ] ;
        skos:example      "To turn on a light, send a CoAP PUT request with CBOR content 0xf5 (true)"@en , "In the set of operations exposed by a smart washing machine on a given network, one may be dedicated to set the water temperature for the washing cycle, and expected as input a enumerated value. Another one may be dedicated to start, pause, or stop the washing cycle."@en , "In the set of operations exposed by a smart light bulb on a given network, one may be dedicated to turn on and off the light and expect a boolean as input. Another one may be dedicated to set the luminosity status and expect a target luminosity level (a byte) and a transition time (encoded on two bytes)."@en ;
        skos:historyNote  "V3.2.1: Introduced saref:Operation and associated properties from oneM2M base ontology."@en ;
        skos:note         "Typically, a device connected to a given network offers one service for each of its functions of interest, and each service has one operation per command of interest of the function of interest it represents."@en , "An operation may be described in terms of its inputs and outputs using OP saref:hasInput and saref:hasOutput. Inputs and outputs of operations typically describe the expected schema or shape of network messages."@en .

saref:FeatureOfInterest
        a                 owl:Class ;
        rdfs:comment      "A feature of interest represents any real world entity from which a property or a state may be acted upon, such as observed and controlled. An instance of saref:FeatureOfInterest represents one specific real world entity."@en ;
        rdfs:label        "Feature of interest"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureOfInterest ;
                            owl:onProperty     saref:consistsOf
                          ] ;
        skos:historyNote  "V3.2.1: Definition of saref:FeatureOfInterest: allValuesFrom axioms are unnecessary and have been deleted."@en , "V3.2.1: Definition of saref:FeatureOfInterest: Clarify it's a specific real world entity."@en , "V3.2.1: Definition of saref:FeatureOfInterest is clarified, not only properties are measured, but properties and states can be observed and controlled."@en .

saref:hasSensingRange
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a sensing function and a measurement identifying the range of a sensor detection"@en ;
        rdfs:domain       saref:SensingFunction ;
        rdfs:label        "has sensing range"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:hasSensingRange is deprecated together with saref:SensingFunction. And may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:hasCommand  a             owl:ObjectProperty ;
        rdfs:comment            "Links a function or function of interest and the command it supports."@en ;
        rdfs:domain             [ a            owl:Class ;
                                  owl:unionOf  ( saref:Function saref:FunctionOfInterest )
                                ] ;
        rdfs:label              "has command"@en ;
        rdfs:range              saref:Command ;
        owl:inverseOf           saref:isCommandOf ;
        owl:propertyChainAxiom  ( saref:hasCommandOfInterest saref:hasCommandKind ) ;
        owl:propertyChainAxiom  ( saref:hasFeatureKind saref:hasMandatoryCommand ) ;
        skos:historyNote        "V3.2.1: Domain of saref:hasCommand is relaxed to saref:Function or saref:FunctionOfInterest."@en .

saref:GetSensingDataCommand
        a                 owl:Class ;
        rdfs:comment      "A type of get command"@en ;
        rdfs:label        "Get sensing data command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:GetSensingDataCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:GetCommand  a       owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Get command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:GetCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:hasTime  a          owl:ObjectProperty ;
        rdfs:comment      "A relationship to associate time information to an entity"@en ;
        rdfs:label        "has time"@en ;
        rdfs:range        saref:Time ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:hasTime and use OWL Time instead whenever possible."@en .

saref:hasFunction  a            owl:ObjectProperty ;
        rdfs:comment            "Links a feature kind or a device to one of its functions."@en ;
        rdfs:domain             [ a            owl:Class ;
                                  owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                                ] ;
        rdfs:label              "has function"@en ;
        rdfs:range              saref:Function ;
        owl:inverseOf           saref:isFunctionOf ;
        owl:propertyChainAxiom  ( saref:hasFunctionOfInterest saref:hasFunctionKind ) ;
        owl:propertyChainAxiom  ( saref:hasDeviceKind saref:hasFunction ) ;
        owl:propertyChainAxiom  ( skos:broader saref:hasFunction ) ;
        skos:historyNote        "V3.2.1: Domain of saref:hasFunction is relaxed."@en .

saref:isAbout  a          owl:ObjectProperty ;
        rdfs:comment      "A relationship identifying what an entity, such as a profile, is about"@en ;
        rdfs:label        "isAbout"@en ;
        owl:deprecated    true ;
        skos:historyNote  "Property saref:isAbout is too vague and has been deprecated in v3.2.1."@en .

saref:hasFunctionKind
        a                       owl:ObjectProperty ;
        rdfs:comment            "links a function of interest to its kind, a function"@en ;
        rdfs:domain             saref:FunctionOfInterest ;
        rdfs:label              "has function kind"@en ;
        rdfs:range              saref:Function ;
        owl:propertyChainAxiom  ( saref:hasFunctionKind skos:broader ) .

saref:Actuator  a         owl:Class ;
        rdfs:comment      "A device designed to control one or more properties or states of one or more features of interest."@en ;
        rdfs:label        "Actuator"@en ;
        rdfs:subClassOf   saref:Device ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:minCardinality  1 ;
                            owl:onProperty      saref:controls
                          ] ;
        skos:historyNote  "V3.2.1: Definition of Actuator is simplified and grounded on saref:controls. Local restriction on saref:hasFunction is deleted."@en .

saref:produces  a           owl:ObjectProperty ;
        rdfs:comment        "Links a feature kind, feature of interest, or device, to the commodity it produces"@en ;
        rdfs:label          "produces"@en ;
        rdfs:subPropertyOf  saref:isUsedFor ;
        owl:inverseOf       saref:isProducedBy .

saref:isOperationOf  a  owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "Links an operation to the service it belongs to."@en ;
        rdfs:domain    saref:Operation ;
        rdfs:label     "is operation of"@en ;
        rdfs:range     saref:Service ;
        owl:inverseOf  saref:hasOperation .

saref:PropertyOfInterest
        a                 owl:Class ;
        rdfs:comment      "Identifiable qualities of features of interest that can be acted upon by devices, such as observed or controlled. An instance of saref:PropertyOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest."@en ;
        rdfs:label        "Property of Interest"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isPropertyOfInterestOf
                          ] ;
        skos:example      "The air temperature of the atmosphere sample at a certain location and altitude, the received signal strength indicator of an wireless IoT connection, the luminance of the ETSI ATHENA amphitheatre.\n\n<etsi_premises/athena#luminance> a saref:PropertyOfInterest ;\n    saref:isPropertyOfInterestOf <etsi_premises/athena> ;\n    saref:hasPropertyKind saref:Luminance ;\n    rdfs:comment \"The luminance of amphitheatre ATHENA\"@en .\n"@en ;
        skos:historyNote  "V3.2.1: Introduced saref:PropertyOfInterest to solved the ambiguity between generic vs specific properties."@en ;
        skos:note         "Properties of interest need not always be explicited. It depends on the use case. Typically, properties of interest are useful in applications, where the association between a feature of interest and a property (i.e., the property of interest) needs to be identified and related to other properties of interest."@en , "Per convention, the IRI of properties of interest should consist of the IRI of their feature of interest, suffixed with a fragment identifier #{P} where {P} refers to the name of the property."@en , "A property of interest is the property of (OP saref:isPropertyOfInterestOf) exactly one feature of interest."@en .

saref:Smoke  a            owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a unit of measure for smoke"@en ;
        rdfs:label        "Smoke"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Smoke is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:Price  a            owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured using saref:Currency"@en , "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"@en ;
        rdfs:label        "Price"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "Class saref:Price is deprecated in v3.2.1. In the next major revision of SAREF, it may be defined as an instance of saref:Property."@en , "V3.2.1: saref:Price is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:isAccomplishedBy
        a              owl:ObjectProperty ;
        rdfs:comment   "A relationship identifying an entity (e.g., a device) that can accomplish a task."@en ;
        rdfs:domain    saref:Task ;
        rdfs:label     "is accomplished by"@en ;
        owl:inverseOf  saref:accomplishes .

saref:IlluminanceUnit
        a                 owl:Class ;
        rdfs:comment      "The unit of measure for light"@en ;
        rdfs:label        "Illuminance unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:IlluminanceUnit is deprecated. Will be deleted in the next major revision of SAREF"@en .

saref:EnergyCommodity
        a                 owl:Class ;
        rdfs:comment      "The class of energy commodities"@en ;
        rdfs:label        "Energy Commodity"@en ;
        rdfs:subClassOf   saref:Commodity ;
        skos:historyNote  "V3.2.1: New category of commodities saref:EnergyCommodity"@en .

saref:OpenCloseState  a   owl:Class ;
        rdfs:comment      "A type of state"@en ;
        rdfs:label        "Open close state"@en ;
        rdfs:subClassOf   saref:State ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OpenCloseState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:EventFunction  a    owl:Class ;
        rdfs:comment      "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved."@en ;
        rdfs:label        "Event function"@en ;
        rdfs:subClassOf   saref:Function ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:EventFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:SmokeSensor  a      owl:Class ;
        rdfs:comment      "A sensor that performs the saref:SensingFunction and the saref:EventFunction, and is used for the purpose of sensing a property of type saref:Smoke. A saref:SmokeSensor is typically used to saref:accomplish saref:Safety."@en ;
        rdfs:label        "Smoke sensor"@en ;
        rdfs:subClassOf   saref:Sensor ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:SmokeSensor for it's only an example."@en .

saref:GetMeterDataCommand
        a                 owl:Class ;
        rdfs:comment      "A type of get command"@en ;
        rdfs:label        "Get meter data command"@en ;
        rdfs:subClassOf   saref:GetCommand ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:GetMeterDataCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:isMeasurementOf
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a measurement and the feature of interest whose quality was measured"@en ;
        rdfs:domain       saref:Measurement ;
        rdfs:label        "isMeasurementOf"@en ;
        rdfs:range        saref:FeatureOfInterest ;
        owl:deprecated    true ;
        owl:inverseOf     saref:hasMeasurement ;
        skos:historyNote  "V3.2.1: Deprecated saref:isMeasurementOf together with saref:Measurement."@en .

saref:represents  a       owl:ObjectProperty ;
        rdfs:comment      "Links a service to some function or function of interest it exposes to the network. Also links an operation to some command or command of interest it exposes to the network."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:Service saref:Operation )
                          ] ;
        rdfs:label        "represents"@en ;
        rdfs:range        [ a            owl:Class ;
                            owl:unionOf  ( saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest )
                          ] ;
        skos:historyNote  "V3.2.1: Relaxed domain and range of saref:represents."@en .

saref:NaturalResourceCommodity
        a                 owl:Class ;
        rdfs:comment      "The class of natural resource commodities"@en ;
        rdfs:label        "Natural Resource Commodity"@en ;
        rdfs:subClassOf   saref:Commodity ;
        skos:historyNote  "V3.2.1: New category of commodities saref:NaturalResourceCommodity"@en .

saref:hasStateOfInterest
        a                 owl:ObjectProperty ;
        rdfs:comment      "Links a feature of interest to one of its states of interest."@en ;
        rdfs:domain       saref:FeatureOfInterest ;
        rdfs:label        "has state of interest"@en ;
        rdfs:range        saref:StateOfInterest ;
        owl:inverseOf     saref:isStateOfInterestOf ;
        skos:historyNote  "V3.2.1: Introduced saref:hasStateOfInterest and saref:isStateOfInterestOf, parallel to saref:hasPropertyOfInterest and saref:isPropertyOfInterestOf."@en .

saref:Energy  a           owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour). Furter specializations of the saref:Energy class can be found in the SAREF4ENER extension, where classes such as EnergyMax, EnergyMin and EnergyExpected are defined. "@en ;
        rdfs:label        "Energy"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Energy is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:isCommandOfInterestOf
        a              owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "Links a command of interest to the function of interest it is a command of."@en ;
        rdfs:domain    saref:CommandOfInterest ;
        rdfs:label     "is command of interest of"@en ;
        rdfs:range     saref:FunctionOfInterest ;
        owl:inverseOf  saref:hasCommandOfInterest .

saref:OnState  a          owl:Class ;
        rdfs:comment      "The state of a device that is On"@en ;
        rdfs:label        "On state"@en ;
        rdfs:subClassOf   saref:OnOffState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OnState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:SwitchOnService
        a                 owl:Class ;
        rdfs:comment      "A type of service that represents an on/off function to the network"@en ;
        rdfs:label        "Switch on service"@en ;
        rdfs:subClassOf   saref:Service ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:SwitchOnService is deprecated for it is just an example. It may be deleted in the next major revision of SAREF"@en .

saref:UnitOfMeasure  a  owl:Class ;
        rdfs:comment  "The unit of measure is a standard for measurement of a quantity, such as a Property."@en ;
        rdfs:label    "Unit of measure"@en ;
        skos:example  "For example, consumption power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power \"Watt\"."@en ;
        skos:note     "Concepts from existing code lists, vocabularies, and taxonomies, may be used as instances of saref:UnitOfMeasure. For example the QUDT Unit vocabulary"@en , "Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM)."@en .

saref:SetAbsoluteLevelCommand
        a                 owl:Class ;
        rdfs:comment      "A type of set level command"@en ;
        rdfs:label        "Set absolute level command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:SetAbsoluteLevelCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:EnergyEfficiency
        a                 saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "EnergyEfficiency"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:EnergyEfficiency is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:EnergyUnit  a       owl:Class ;
        rdfs:comment      "The unit of measure for energy"@en ;
        rdfs:label        "Energy unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:EnergyUnit is deprecated. Will be deleted in the next major revision of SAREF"@en .

saref:PowerUnit  a        owl:Class ;
        rdfs:comment      "The unit of measure for power"@en ;
        rdfs:label        "Power unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:PowerUnit is deprecated. Will be deleted in the next major revision of SAREF"@en .

saref:Currency  a         owl:Class ;
        rdfs:comment      "The class of units of measure for price"@en ;
        rdfs:label        "Currency"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "Class saref:Currency is deprecated in v3.2.1 and may deleted in the next major revision of SAREF. Existing code lists and taxonomies can be reused instead."@en .

saref:hasPropertyValue
        a                       owl:ObjectProperty ;
        rdfs:comment            "Links a feature kind, a feature of interest, or a property of interest, to a property value."@en ;
        rdfs:domain             [ a            owl:Class ;
                                  owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:PropertyOfInterest )
                                ] ;
        rdfs:label              "has property value"@en ;
        rdfs:range              saref:PropertyValue ;
        owl:propertyChainAxiom  ( skos:broader saref:hasPropertyValue ) ;
        skos:historyNote        "V3.2.1: Introduced saref:hasPropertyValue."@en .

saref:StartStopState  a   owl:Class ;
        rdfs:comment      "A type of state"@en ;
        rdfs:label        "Start stop state"@en ;
        rdfs:subClassOf   saref:State ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StartStopState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:OnCommand  a        owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "On command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OnCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

time:TemporalPosition
        a       owl:Class .

saref:hasState  a               owl:ObjectProperty ;
        rdfs:comment            "Links a feature kind or a feature of interest to one of its states."@en ;
        rdfs:domain             [ a            owl:Class ;
                                  owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:StateOfInterest )
                                ] ;
        rdfs:label              "has state"@en ;
        rdfs:range              saref:State ;
        owl:inverseOf           saref:isStateOf ;
        owl:propertyChainAxiom  ( skos:broader saref:hasState ) ;
        owl:propertyChainAxiom  ( saref:hasStateOfInterest saref:hasStateKind ) ;
        owl:propertyChainAxiom  ( saref:hasFeatureKind saref:hasState ) ;
        skos:historyNote        "V3.2.1: Relaxed domain of saref:hasState."@en .

saref:hasTimestamp  a     owl:DatatypeProperty ;
        rdfs:comment      "Links a procedure execution or a profile to an instant."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:ProcedureExecution saref:Profile )
                          ] ;
        rdfs:label        "has timestamp"@en ;
        rdfs:range        xsd:dateTime ;
        skos:historyNote  "V3.2.1: Tried to clarify definition of saref:hasTimestamp. Still unclear."@en ;
        skos:note         "Applied on a profile, it describes the applicable instant of that profile"@en , "When the execution time and the phenomenon time are the same time instants, then DP saref:hasTimestamp can be used to simply link a procedure execution to the time of these instants, expressed as an xsd:dateTime literal."@en .

skos:historyNote  a  owl:AnnotationProperty .

saref:stores  a             owl:ObjectProperty ;
        rdfs:comment        "Links a feature kind, feature of interest, or device, to the commodity it stores"@en ;
        rdfs:label          "stores"@en ;
        rdfs:subPropertyOf  saref:isUsedFor ;
        owl:inverseOf       saref:isStoredBy .

saref:OffCommand  a       owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Off command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OffCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:Lighting  a         saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Lighting"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Lighting is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:Commodity  a        owl:Class ;
        rdfs:comment      "A marketable item which may be supplied without qualitative differentiation."@en ;
        rdfs:label        "Commodity"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Commodity ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Commodity ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:historyNote  "V3.2.1: Definition of saref:Commodity is simplified."@en ;
        skos:note         "SAREF refers to energy commodities such as electricity, gas, coal and oil."@en .

saref:Humidity  a         owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"@en ;
        rdfs:label        "Humidity"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Humidity is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

dcterms:issued  a  owl:AnnotationProperty .

saref:Observation  a     owl:Class ;
        rdfs:comment     "A saref:Observation is the act of carrying out a procedure to estimate or calculate a value of a property of a feature of interest, or a state of a feature of interest. It links to a sensor to describe what made the observation, and to the observed feature, property, property of interest, state, or state of interest. Typically, its result is a property value or a state. An observation of a state (OP saref:observes) should have a state as a result (OP saref:hasResult). Respectively, an observation of a property should have a property value as a result."@en ;
        rdfs:label       "Observation"@en ;
        rdfs:subClassOf  saref:ProcedureExecution ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  1 ;
                           owl:onProperty      saref:observes
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Sensor ;
                           owl:onProperty     saref:madeBy
                         ] .

saref:StepUpCommand  a    owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Step up command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StepUpCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:PressureUnit  a     owl:Class ;
        rdfs:comment      "The unit of measure for pressure"@en ;
        rdfs:label        "Pressure unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:PressureUnit is deprecated. Will be deleted in the next major revision of SAREF"@en .

saref:offers  a           owl:ObjectProperty ;
        rdfs:comment      "Links a device to a service it exposes to a network."@en ;
        rdfs:domain       saref:Device ;
        rdfs:label        "offers"@en ;
        rdfs:range        saref:Service ;
        owl:inverseOf     saref:isOfferedBy ;
        skos:historyNote  "V3.2.1: Clarified definition of saref:offers."@en .

saref:Task  a            owl:Class ;
        rdfs:comment     "The goal for which a device is designed, from a user perspective."@en ;
        rdfs:label       "Task"@en ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Task ;
                           owl:onProperty     skos:narrower
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Task ;
                           owl:onProperty     skos:broader
                         ] ;
        skos:example     "For example, a washing machine is designed for the task of washing."@en ;
        skos:note        "Tasks can be accomplished by devices (saref:isAccomplishedBy)."@en .

saref:hasPhenomenonTime
        a                 owl:ObjectProperty ;
        rdfs:comment      "Links a procedure execution to the time that the result applies. It may be an interval or an instant, or some other compound temporal entity expressed using OWL Time."@en ;
        rdfs:label        "has phenomenon time"@en ;
        rdfs:range        time:TemporalEntity ;
        skos:historyNote  "V3.2.1: Introduced saref:hasPhenomenonTime as part of general will to make SAREF and SOSA/SSN converge."@en .

saref:measurementMadeBy
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relation between a measurement and the device that made it."@en ;
        rdfs:domain       saref:Measurement ;
        rdfs:label        "measurement made by"@en ;
        rdfs:range        saref:Device ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:makesMeasurement is deprecated as one of the properties related to saref:Measurement. It may be deleted in the next major revision of SAREF"@en .

saref:ProcedureExecution
        a                 owl:Class ;
        rdfs:comment      "Represents the act of carrying out a procedure."@en ;
        rdfs:label        "Procedure Execution"@en ;
        skos:historyNote  "V3.2.1: Introduced saref:ProcedureExecution."@en .

saref:PropertyValue  a    owl:Class ;
        rdfs:comment      "Describes the value for a property. The property value is linked to its value expressed as an RDF literal (DP saref:hasValue), optionally to the unit of measurement (OP saref:isMeasuredIn), and optionally to the properties or properties of interest it is a value of (OP saref:isValueOfProperty)."@en ;
        rdfs:label        "Property Value"@en ;
        rdfs:subClassOf   [ a                   owl:Restriction ;
                            owl:maxCardinality  1 ;
                            owl:onProperty      saref:isMeasuredIn
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:hasValue
                          ] ;
        skos:historyNote  "V3.2.1: Introduced saref:PropertyValue to simplify the association of a measure to a property, without always needing it to be a measurement made by a device."@en .

skos:scopeNote  a  owl:AnnotationProperty .

saref:CommandExecution
        a                owl:Class ;
        rdfs:comment     "Describes the execution of a command. Typically, its inputs and outputs are human understandable and relate to some feature of interest, such as its state (e.g., s4abcd:On), or the value of its temperature (e.g., property value 21.0 °C)."@en ;
        rdfs:label       "Command Execution"@en ;
        rdfs:subClassOf  saref:ProcedureExecution ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  [ a            owl:Class ;
                                                owl:unionOf  ( saref:Command saref:CommandOfInterest )
                                              ] ;
                           owl:onProperty     saref:isExecutionOf
                         ] .

saref:isControlledBy  a     owl:ObjectProperty ;
        rdfs:comment        "Links a feature, property, or state, to the device, function, command, or procedure execution, that controls it."@en ;
        rdfs:label          "is controlled by"@en ;
        rdfs:subPropertyOf  saref:isActedUponBy ;
        owl:inverseOf       saref:controls ;
        skos:historyNote    "V3.2.1: Introduced property saref:isControlledBy."@en .

saref:isActedUponBy  a    owl:ObjectProperty ;
        rdfs:comment      "Links a feature, property, or state, to the device, function, command, or procedure execution, that acts on it."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest saref:Property saref:PropertyOfInterest saref:State saref:StateOfInterest )
                          ] ;
        rdfs:label        "is acted upon by"@en ;
        rdfs:range        [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:Device saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest saref:ProcedureExecution )
                          ] ;
        owl:inverseOf     saref:actsUpon ;
        skos:historyNote  "V3.2.1: Introduced property saref:isActedUponBy."@en .

saref:isPropertyOf  a  owl:ObjectProperty ;
        rdfs:comment   "Links a property to the feature kind or feature of interest it is a property of."@en ;
        rdfs:domain    saref:Property ;
        rdfs:label     "is property of"@en ;
        rdfs:range     [ a            owl:Class ;
                         owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                       ] ;
        owl:inverseOf  saref:hasProperty .

saref:StopCommand  a      owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Stop command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StopCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:isValueOfProperty
        a                       owl:ObjectProperty ;
        rdfs:comment            "Links a property value to the property or property of interest it is a value of."@en ;
        rdfs:domain             saref:PropertyValue ;
        rdfs:label              "is value of property"@en ;
        rdfs:range              [ a            owl:Class ;
                                  owl:unionOf  ( saref:Property saref:PropertyOfInterest )
                                ] ;
        owl:propertyChainAxiom  ( saref:isValueOfProperty saref:hasPropertyKind ) ;
        skos:historyNote        "V3.2.1: Introduced saref:isValueOfProperty."@en .

skos:narrower  a       owl:ObjectProperty ;
        owl:inverseOf  skos:broader .

saref:hasMeterReading
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a metering function and the measurement of the reading"@en ;
        rdfs:domain       saref:MeteringFunction ;
        rdfs:label        "has meter reading"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: deprecated saref:hasMeterReading together with saref:Measurement and saref:MeteringFunction"@en .

saref:GetMeterHistoryCommand
        a                 owl:Class ;
        rdfs:comment      "A type of get command"@en ;
        rdfs:label        "Get meter history command"@en ;
        rdfs:subClassOf   saref:GetCommand ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:GetMeterHistoryCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:SetRelativeLevelCommand
        a                 owl:Class ;
        rdfs:comment      "A type of set level command"@en ;
        rdfs:label        "Set relative level command"@en ;
        rdfs:subClassOf   saref:SetLevelCommand ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:SetRelativeLevelCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:StartStopFunction
        a                 owl:Class ;
        rdfs:comment      "An actuating function that allows to start and stop a device"@en ;
        rdfs:label        "Start stop function"@en ;
        rdfs:subClassOf   saref:ActuatingFunction ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StartStopFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:isObservedBy  a       owl:ObjectProperty ;
        rdfs:comment        "Links a feature, property, or state, to the device, function, command, or procedure execution, that observes it."@en ;
        rdfs:label          "is observed by"@en ;
        rdfs:subPropertyOf  saref:isActedUponBy ;
        owl:inverseOf       saref:observes .

saref:OnOffFunction  a    owl:Class ;
        rdfs:comment      "An actuating function that allows to switch on and off an actuator"@en ;
        rdfs:label        "On off function"@en ;
        rdfs:subClassOf   saref:ActuatingFunction ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OnOffFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:StartCommand  a     owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Start command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StartCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:Power  a            owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt).  Further specializations of the saref:Power class can be found in the SAREF4ENER extension, where classes such as PowerMax, PowerMin and PowerExpected are defined."@en ;
        rdfs:label        "Power"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Power is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

s4syst:System  a  owl:Class .

saref:Comfort  a          saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Comfort"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Comfort is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:Pressure  a         owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a pressure unit (bar or pascal)"@en ;
        rdfs:label        "Pressure"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Pressure is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:NotifyCommand  a    owl:Class ;
        rdfs:comment      "A type of command"@en ;
        rdfs:label        "Notify command"@en ;
        rdfs:subClassOf   saref:Command ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:NotifyCommand is deprecated: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .

saref:Cleaning  a         saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Cleaning"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Cleaning is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:hasSensorType  a    owl:ObjectProperty ;
        rdfs:comment      "A relationship identifying the sensing type of a sensor detection (i.e., Temperature, Occupancy, Humidity, Motion , Smoke, Pressure, etc.) "@en ;
        rdfs:domain       saref:SensingFunction ;
        rdfs:label        "has sensor type"@en ;
        rdfs:range        saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:hasSensingRange is deprecated together with saref:SensingFunction. Use saref:hasDeviceKind instead."@en .

saref:relatesToMeasurement
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a property and the measurements it relates to"@en ;
        rdfs:domain       saref:Property ;
        rdfs:label        "relates to measurement"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:isMeasurementOf together with saref:Measurement."@en .

saref:CommandOfInterest
        a                 owl:Class ;
        rdfs:comment      "The lowest-level directives a device supports and exposes to some network. Commands can act upon (OP saref:actsUpon and its sub-properties) features, properties, or states. A saref:CommandOfInterest is a directives actually supported by a device and exposed to some network."@en ;
        rdfs:label        "Command Of Interest"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isCommandOfInterestOf
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isCommandOfInterestOf
                          ] ;
        skos:example      "The smart fridge supports a command of kind “observe temperature”, which observes the temperature of the fridge."@en , "The corridor smart light switch supports a command of kind “turn on/off”, which controls the state of the outdoor light."@en ;
        skos:historyNote  "V3.2.1: Introduced saref:CommandOfInterest, parallel to saref:PropertyOfInterest."@en ;
        skos:note         "Commands of interest need not always be explicited. It depends on the use case. Typically, commands of interest are useful to specify the actual property of interest or state of interest that is expected as input parameter, output, or that will be acted upon."@en , "Like for commands, commands of interest may be described in terms of their input parameters, outputs, and of which properties or states they act upon."@en .

saref:whenPropertyValue
        a             owl:ObjectProperty ;
        rdfs:comment  "Links a profile to a property value that contributes to restricting its applicable context."@en ;
        rdfs:domain   saref:Profile ;
        rdfs:label    "when property value"@en ;
        rdfs:range    saref:PropertyValue .

saref:relatesToProperty
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a measurement and the property it relates to"@en ;
        rdfs:domain       saref:Measurement ;
        rdfs:label        "relates to property"@en ;
        rdfs:range        saref:Property ;
        owl:deprecated    true ;
        owl:inverseOf     saref:relatesToMeasurement ;
        skos:historyNote  "V3.2.1: Deprecated saref:isMeasurementOf together with saref:Measurement."@en .

saref:LightSwitch  a      owl:Class ;
        rdfs:comment      "A switch that performs the saref:OnOffFunction, controls the property saref:Light, and can be found in the state saref:OnOffState. It can offer a switch on service. A saref:LightSwitch is typically used to accomplish saref:Lighting."@en ;
        rdfs:label        "Light switch"@en ;
        rdfs:subClassOf   saref:Switch ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:LightSwitch for it's only an example."@en .

saref:FunctionOfInterest
        a                 owl:Class ;
        rdfs:comment      "Logical groups of commands that devices support to accomplish their tasks. Function can act upon (OP saref:actsUpon and its sub-properties) features, properties, or states. An instance of saref:FunctionOfInterest is supported by exactly one device."@en ;
        rdfs:label        "Function of Interest"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isFunctionOfInterestOf
                          ] ;
        skos:historyNote  "V3.2.1: Introduced saref:FunctionOfInterest, parallel to saref:PropertyOfInterest."@en ;
        skos:note         "Functions of interest need not always be explicited. It depends on the use case. Typically, functions of interest are useful to specify which command is actually exposed, and which actual property of interest or state of interest it acts upon."@en , "A function of interest is the function of (OP saref:isFunctionOfInterestOf) exactly one device."@en .

skos:note  a    owl:AnnotationProperty .

saref:HVAC  a             owl:Class ;
        rdfs:comment      "Heating, Ventilation and Air Conditioning (HVAC) device that provides indoor environmental comfort. A saref:HVAC is typically used to accomplish saref:Comfort."@en ;
        rdfs:label        "HVAC"@en ;
        rdfs:subClassOf   saref:Device ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:HVAC for it's only an example."@en .

saref:Switch  a           owl:Class ;
        rdfs:comment      "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"@en ;
        rdfs:label        "Switch"@en ;
        rdfs:subClassOf   saref:Actuator ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:Switch for it's only an example."@en .

saref:Measurement  a      owl:Class ;
        rdfs:comment      "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
        rdfs:label        "Measurement"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   saref:hasValue
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     saref:relatesToProperty
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureOfInterest ;
                            owl:onProperty     saref:isMeasurementOf
                          ] ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onClass               saref:UnitOfMeasure ;
                            owl:onProperty            saref:isMeasuredIn ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:dateTime ;
                            owl:onProperty     saref:hasTimestamp
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:UnitOfMeasure ;
                            owl:onProperty     saref:isMeasuredIn
                          ] ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onClass               saref:Property ;
                            owl:onProperty            saref:relatesToProperty ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:Measurement in favour of saref:Observation, to generalize to observation of states and convergence with SOSA/SSN."@en .

saref:Coal  a             owl:Class ;
        rdfs:comment      "A type of commodity"@en ;
        rdfs:label        "Coal"@en ;
        rdfs:subClassOf   saref:Commodity ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Coal is deprecated: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en .

saref:isMeasuredByDevice
        a                   owl:ObjectProperty ;
        rdfs:comment        "A relationship specifying the devices that can measure a certain property"@en ;
        rdfs:domain         saref:Property ;
        rdfs:label          "is measured by device"@en ;
        rdfs:range          saref:Device ;
        rdfs:subPropertyOf  saref:isObservedBy ;
        owl:deprecated      true ;
        skos:historyNote    "V3.2.1: saref:isMeasuredByDevice is deprecated: will be deleted in the next major revision of SAREF"@en .

saref:isFunctionOfInterestOf
        a              owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "Links a function of interest to the device it is a function of."@en ;
        rdfs:domain    saref:FunctionOfInterest ;
        rdfs:label     "is function of interest of"@en ;
        rdfs:range     saref:Device ;
        owl:inverseOf  saref:hasFunctionOfInterest .

saref:measuresProperty
        a                   owl:ObjectProperty ;
        rdfs:comment        "A relationship specifying the property that can be measured by a certain device"@en ;
        rdfs:domain         saref:Device ;
        rdfs:label          "measures property"@en ;
        rdfs:range          saref:Property ;
        rdfs:subPropertyOf  saref:observes ;
        owl:deprecated      true ;
        skos:historyNote    "V3.2.1: saref:measuresProperty is deprecated: will be deleted in the next major revision of SAREF"@en .

time:TemporalEntity  a  owl:Class .

saref:isStateOfInterestOf
        a              owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "Links a state of interest to the feature of interest it is a state of."@en ;
        rdfs:domain    saref:StateOfInterest ;
        rdfs:label     "is state of interest of"@en ;
        rdfs:range     saref:FeatureOfInterest ;
        owl:inverseOf  saref:hasStateOfInterest .

saref:OperationExecution
        a                owl:Class ;
        rdfs:comment     "Describes the execution of an operation in a network: the–machine interpretable–  description of a communication between devices over the network. Typically, its input and result are network messages, that conform to the input and output of the executed operation."@en ;
        rdfs:label       "Operation Execution"@en ;
        rdfs:subClassOf  saref:ProcedureExecution ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Operation ;
                           owl:onProperty     saref:isExecutionOf
                         ] .

saref:Water  a            owl:Class ;
        rdfs:comment      "A type of commodity"@en ;
        rdfs:label        "Water"@en ;
        rdfs:subClassOf   saref:Commodity ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Water is deprecated: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en .

saref:Light  a            owl:Class ;
        rdfs:comment      "A saref:Property related to some measurements that are characterized by a certain value that is measured in a illuminance unit (lux)"@en ;
        rdfs:label        "Light"@en ;
        rdfs:subClassOf   saref:Property ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Light is deprecated: may be defined as an instance of saref:Property in the next major revision of SAREF"@en .

saref:hasOperation  a  owl:ObjectProperty ;
        rdfs:comment   "Links a service to one of its operations."@en ;
        rdfs:domain    saref:Service ;
        rdfs:label     "has operation"@en ;
        rdfs:range     saref:Operation ;
        owl:inverseOf  saref:isOperationOf .

saref:hasCommandOfInterest
        a              owl:ObjectProperty ;
        rdfs:comment   "Links a function of interest to one of its commands of interest."@en ;
        rdfs:domain    saref:FunctionOfInterest ;
        rdfs:label     "has command of interest"@en ;
        rdfs:range     saref:CommandOfInterest ;
        owl:inverseOf  saref:isCommandOfInterestOf .

dcterms:publisher  a  owl:AnnotationProperty .

saref:hasMeasurement  a   owl:ObjectProperty ;
        rdfs:comment      "A relationship between a feature of interest and a measurement about it"@en ;
        rdfs:domain       saref:FeatureOfInterest ;
        rdfs:label        "has measurement"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:hasMeasurement together with saref:Measurement."@en .

saref:MultiLevelState
        a                 owl:Class ;
        rdfs:comment      "A type of state"@en ;
        rdfs:label        "Multi level state"@en ;
        rdfs:subClassOf   saref:State ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:MultiLevelState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:StopState  a        owl:Class ;
        rdfs:comment      "The state of a device that is STOPPED"@en ;
        rdfs:label        "Stop state"@en ;
        rdfs:subClassOf   saref:StartStopState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StopState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:madeBy  a           owl:ObjectProperty ;
        rdfs:comment      "Links a procedure execution to the entity (e.g., device) that made it."@en ;
        rdfs:domain       saref:ProcedureExecution ;
        rdfs:label        "made by"@en ;
        rdfs:range        saref:FeatureOfInterest ;
        owl:inverseOf     saref:madeExecution ;
        skos:historyNote  "V3.2.1: Introduce saref:madeBy (resp. saref:madeExecution) as generalization of saref:measurementMadeBy (resp. saref:makesMeasurement)."@en .

saref:Command  a          owl:Class ;
        rdfs:comment      "The lowest-level directives a function exposes to some network. Commands can act upon (OP saref:actsUpon and its sub-properties) features, properties, or states. An instance of saref:Command is independent of any device."@en ;
        rdfs:label        "Command"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Command ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Command ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:example      "Observe property, control property, observe state, control state, invoke action, cancel action, turn on or off, change color, subscribe, publish, etc. are all commands."@en ;
        skos:historyNote  "V3.2.1: Simplified definition and axiomatization of saref:Command. Added examples."@en .

saref:isFunctionOf  a     owl:ObjectProperty ;
        rdfs:comment      "Links a function to the feature kind or device it is a function of."@en ;
        rdfs:domain       saref:Function ;
        rdfs:label        "is function of"@en ;
        rdfs:range        [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                          ] ;
        owl:inverseOf     saref:hasFunction ;
        skos:historyNote  "V3.2.1: Introduced saref:isFunctionOf."@en .

saref:whenState  a    owl:ObjectProperty ;
        rdfs:comment  "Links a profile to a state that contributes to restricting its applicable context."@en ;
        rdfs:domain   saref:Profile ;
        rdfs:label    "when state"@en ;
        rdfs:range    saref:State .

saref:Gas  a              owl:Class ;
        rdfs:comment      "A type of energy commodity"@en ;
        rdfs:label        "Gas"@en ;
        rdfs:subClassOf   saref:Commodity ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Gas is deprecated: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en .

saref:Entertainment  a    saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Entertainment"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Entertainment is deprecated: may be deleted in the next major revision of SAREF"@en .

saref:consistsOf  a       owl:ObjectProperty ;
        rdfs:comment      "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"@en ;
        rdfs:label        "consists of"@en ;
        skos:historyNote  "V3.2.1: Add local restrictions on consistsOf on feature of interest"@en .

saref:FeatureKind  a      owl:Class ;
        rdfs:comment      "Feature kinds allow to describe kinds of features of interest, with common properties having the same value, and common states being the same. An instance of saref:FeatureKind represents an archetype of real world entities, for example to populate product catalogs."@en ;
        rdfs:label        "Feature kinds"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureKind ;
                            owl:onProperty     saref:consistsOf
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureKind ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureKind ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:historyNote  "V3.2.1: Use SKOS to organize generic classes in taxonomies."@en , "V3.2.1: Introduced class saref:FeatureKind"@en .

saref:hasResultTime  a    owl:DatatypeProperty ;
        rdfs:comment      "Links a procedure execution to the instant of time when the activity was completed, expressed as an xsd:dateTime literal."@en ;
        rdfs:domain       saref:ProcedureExecution ;
        rdfs:label        "has result time"@en ;
        rdfs:range        xsd:dateTime ;
        skos:historyNote  "V3.2.1: Introduced saref:hasResultTime as part of general will to make SAREF and SOSA/SSN converge."@en .

saref:MeteringFunction
        a                 owl:Class ;
        rdfs:comment      "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"@en ;
        rdfs:label        "Metering function"@en ;
        rdfs:subClassOf   saref:Function ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:MeteringFunction is deprecated: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .

saref:Property  a         owl:Class ;
        rdfs:comment      "Identifiable qualities of features of interest that can be acted upon by devices, such as observed or controlled. A property can apply to different features of interest."@en ;
        rdfs:label        "Property"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     skos:narrower
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     skos:broader
                          ] ;
        skos:example      "Two examples using the QUDT Quantity Kind vocabulary, and the British Oceanographic Data Centre Parameter Usage Vocabulary.\n\n<https://qudt.org/2.1/vocab/quantitykind/ActiveEnergy> a saref:Property ;\n    rdfs:label \"Active Energy\"@en ;\n    rdfs:comment \"\"Active Energy\" is the electrical energy transformable into some other form of energy.\"@en .\n\n<http://vocab.nerc.ac.uk/collection/P01/current/CDTSZZ01/> a saref:Property ;\n    skos:prefLabel \"Absolute temperature standard deviation of the atmosphere by dry bulb thermometer\"@en .\n"@en , "Air temperature, pressure, luminance, etc. are all properties."@en ;
        skos:historyNote  "V3.2.1: The definition and scope of usage for saref:Property is clarified. Axiomatization is simplified."@en , "Until SAREF V3.1.1, there was an ambiguity between whether properties should be specific or generic to features of interest. This ambiguity has been solved in SAREF V3.2.1, and the new modeling will be enforced in the next major revision of SAREF."@en ;
        skos:note         "Concepts from existing code lists, vocabularies, and taxonomies, may be used as instances of saref:Property."@en .

saref:madeExecution  a  owl:ObjectProperty ;
        rdfs:comment   "Links an entity (e.g., device) to the procedure execution it made."@en ;
        rdfs:domain    saref:FeatureOfInterest ;
        rdfs:label     "made execution"@en ;
        rdfs:range     saref:ProcedureExecution ;
        owl:inverseOf  saref:madeBy .

saref:hasInput  a         owl:ObjectProperty ;
        rdfs:comment      "Links a command, operation, or procedure execution, to its inputs."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:Command saref:CommandOfInterest saref:Operation saref:ProcedureExecution )
                          ] ;
        rdfs:label        "has input"@en ;
        skos:example      "Different complementary commands can be defined for controlling a light. Turn on or off the light based on a desired state, toggle the light status of a specific light, set the luminosity level with a transition time, set the default transition time, start comfort."@en ;
        skos:historyNote  "V3.2.1: Introduced saref:hasInput and saref:hasOutput."@en .

saref:hasFeatureKind  a         owl:ObjectProperty ;
        rdfs:comment            "links a feature of interest to its kind, a feature kind"@en ;
        rdfs:domain             saref:FeatureOfInterest ;
        rdfs:label              "has feature kind"@en ;
        rdfs:range              saref:FeatureKind ;
        owl:propertyChainAxiom  ( saref:hasFeatureKind skos:broader ) ;
        skos:historyNote        "V3.2.1: Introduce hasClassKind for Class is Feature, Device, Property, State, Function, Command."@en .

saref:hasMandatoryCommand
        a                       owl:ObjectProperty ;
        rdfs:comment            "Links a function and one of its mandatory commands"@en ;
        rdfs:domain             saref:Function ;
        rdfs:label              "has mandatory command"@en ;
        rdfs:subPropertyOf      saref:hasCommand ;
        owl:propertyChainAxiom  ( skos:broader saref:hasMandatoryCommand ) ;
        skos:historyNote        "V3.2.1: Introduced mandatory and optional commands."@en .

saref:hasTypicalConsumption
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship identifying the typical (energy or power) consumption of a device"@en ;
        rdfs:label        "has typical consumption"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: Deprecated saref:hasTypicalConsumption. May be defined as an instance of saref:Property in the next major revision of SAREF."@en .

saref:isStoredBy  a    owl:ObjectProperty ;
        rdfs:comment   "Links a commodity to the feature kind, feature of interest, or device, that stores it"@en ;
        rdfs:label     "is stored by"@en ;
        owl:inverseOf  saref:stores .

saref:hasModel  a         owl:DatatypeProperty ;
        rdfs:comment      "A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ;
        rdfs:domain       [ a            owl:Class ;
                            owl:unionOf  ( saref:FeatureKind saref:FeatureOfInterest )
                          ] ;
        rdfs:label        "has model"@en ;
        skos:historyNote  "V3.2.1: Defined domain of saref:hasModel to union of feature kind and feature of interest."@en .

saref:Device  a           owl:Class ;
        rdfs:comment      "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. An instance of saref:Device represents one specific real world entity."@en ;
        rdfs:label        "Device"@en ;
        rdfs:subClassOf   s4syst:System , saref:FeatureOfInterest ;
        skos:example      "For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function."@en , "Examples of devices are a light switch, a temperature sensor, an energy meter, a water flow meter, and a laundry dryer. A laundry dryer is designed to dry laundry, and to accomplish this task it has a start/stop function."@en ;
        skos:historyNote  "V3.2.1: definition of saref:Device clarifies it's a real world entity."@en , "V3.2.1: saref:Device is explicitly a subclass of saref:FeatureOfInterest and s4syst:System."@en , "V3.2.1: Most axioms on saref:Device were useless and have been deleted."@en .

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

dcterms:license  a  owl:AnnotationProperty .

saref:Electricity  a      owl:Class ;
        rdfs:comment      "A type of energy commodity"@en ;
        rdfs:label        "Electricity"@en ;
        rdfs:subClassOf   saref:Commodity ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Electricity is deprecated: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en .

saref:Service  a          owl:Class ;
        rdfs:comment      "A saref:Service is a digital representation of a function in a network, making it discoverable, registerable and remotely controllable in the network."@en ;
        rdfs:label        "Service"@en ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  1 ;
                            owl:onProperty   saref:isOfferedBy
                          ] ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:minQualifiedCardinality  1 ;
                            owl:onClass                  saref:FunctionOfInterest ;
                            owl:onProperty               saref:represents
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  [ a            owl:Class ;
                                                 owl:unionOf  ( saref:Function saref:FunctionOfInterest )
                                               ] ;
                            owl:onProperty     saref:represents
                          ] ;
        skos:example      "For example, a light switch can offer the service of remotely switching the lights in a home through mobile phone devices that are connected to the local network (ex:SwitchOnService class). This \"remote switching\" service represents the ex:OnOffFunction."@en ;
        skos:historyNote  "V3.2.1: Simplified definition of saref:Service. Added examples."@en ;
        skos:note         "Typically, a device connected to a given network offers one service for each of its functions of interest."@en .

saref:StartState  a       owl:Class ;
        rdfs:comment      "The state of a device that is STARTED"@en ;
        rdfs:label        "Start state"@en ;
        rdfs:subClassOf   saref:StartStopState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:StartState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:observes  a           owl:ObjectProperty ;
        rdfs:comment        "Links a device, function, command, or procedure execution, to the feature, property, or state, it observes."@en ;
        rdfs:domain         [ a            owl:Class ;
                              owl:unionOf  ( saref:FeatureKind saref:Sensor saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest saref:Observation )
                            ] ;
        rdfs:label          "observes"@en ;
        rdfs:subPropertyOf  saref:actsUpon ;
        owl:inverseOf       saref:isObservedBy ;
        skos:historyNote    "V3.2.1: Introduced property saref:observes, as sub-property of saref:actsUpon. and generalization of measures."@en .

saref:makesMeasurement
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ;
        rdfs:domain       saref:Device ;
        rdfs:label        "makes measurement"@en ;
        rdfs:range        saref:Measurement ;
        owl:deprecated    true ;
        owl:inverseOf     saref:measurementMadeBy ;
        skos:historyNote  "V3.2.1: saref:makesMeasurement is deprecated as one of the properties related to saref:Measurement. It may be deleted in the next major revision of SAREF"@en .

saref:hasPrice  a         owl:ObjectProperty ;
        rdfs:comment      "A relationship indentifying the price associated to an entity"@en ;
        rdfs:label        "has price"@en ;
        rdfs:range        saref:Price ;
        owl:deprecated    true ;
        skos:historyNote  "saref:hasPrice is deprecated in v3.2.1, and may be deleted in the next major revision of SAREF. Use saref:profileHasPrice instead."@en .

saref:OpenState  a        owl:Class ;
        rdfs:comment      "The state of a device that is OPEN "@en ;
        rdfs:label        "Open state"@en ;
        rdfs:subClassOf   saref:OpenCloseState ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:OpenState is deprecated: will be defined as an instance of saref:State in the next major revision of SAREF"@en .

saref:Washing  a          saref:Task ;
        rdfs:comment      "A type of task for which a device is designed"@en ;
        rdfs:label        "Washing"@en ;
        owl:deprecated    true ;
        skos:historyNote  "V3.2.1: saref:Washing is deprecated: may be deleted in the next major revision of SAREF"@en .

skos:example  a  owl:AnnotationProperty .

dcterms:modified  a  owl:AnnotationProperty .

saref:hasStateKind  a           owl:ObjectProperty ;
        rdfs:comment            "links a state of interest to its kind, a state"@en ;
        rdfs:domain             saref:StateOfInterest ;
        rdfs:label              "has state kind"@en ;
        rdfs:range              saref:State ;
        owl:propertyChainAxiom  ( saref:hasStateKind skos:broader ) .

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

saref:hasPropertyOfInterest
        a                 owl:ObjectProperty ;
        rdfs:comment      "Links a feature of interest to one of its properties of interest."@en ;
        rdfs:domain       saref:FeatureOfInterest ;
        rdfs:label        "has property of interest"@en ;
        rdfs:range        saref:PropertyOfInterest ;
        owl:inverseOf     saref:isPropertyOfInterestOf ;
        skos:historyNote  "V3.2.1: Introduced saref:hasPropertyOfInterest and saref:isPropertyOfInterestOf. Cannot use saref:hasProperty due to the combination of cardinality restrictions and sub-property chain axioms makes the ontology exist the OWL 2 DL prodile."@en .
