PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX saref: <https://saref.etsi.org/core/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

saref:StopState a rdfs:Class ;
  rdfs:label "Stop state"@en ;
  rdfs:comment "The state of a device that is STOPPED"@en ;
  rdfs:subClassOf saref:StartStopState .

saref:StartStopFunction a rdfs:Class ;
  rdfs:label "Start stop function"@en ;
  rdfs:comment "An actuating function that allows to start and stop a device"@en ;
  rdfs:subClassOf saref:ActuatingFunction .

saref:hasCommand a rdf:Property ;
  rdfs:label "has command"@en ;
  rdfs:comment "A relationship between a function and a command"@en ;
  rdfs:domain saref:Function ;
  rdfs:range saref:Command .

saref:Energy a rdfs:Class ;
  rdfs:label "Energy"@en ;
  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:subClassOf saref:Property .

saref:isPropertyOf a rdf:Property ;
  rdfs:label "is property of"@en ;
  rdfs:comment "A relationship between a property and the feature of interest it belongs to"@en ;
  rdfs:domain saref:Property ;
  rdfs:range saref:FeatureOfInterest .

saref:relatesToMeasurement a rdf:Property ;
  rdfs:label "relates to measurement"@en ;
  rdfs:comment "A relationship between a property and the measurements it relates to"@en ;
  rdfs:domain saref:Property ;
  rdfs:range saref:Measurement .

saref:isMeasuredByDevice a rdf:Property ;
  rdfs:label "is measured by device"@en ;
  rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ;
  rdfs:domain saref:Property ;
  rdfs:range saref:Device .

saref:isControlledByDevice a rdf:Property ;
  rdfs:label "is controlled by device"@en ;
  rdfs:comment "A relationship specifying the devices that can control a certain property"@en ;
  rdfs:domain saref:Property ;
  rdfs:range saref:Device .

saref:MultiLevelState a rdfs:Class ;
  rdfs:label "Multi level state"@en ;
  rdfs:comment "A type of state"@en ;
  rdfs:subClassOf saref:State .

saref:ActuatingFunction a rdfs:Class ;
  rdfs:label "Actuating function"@en ;
  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:subClassOf saref:Function .

saref:StartState a rdfs:Class ;
  rdfs:label "Start state"@en ;
  rdfs:comment "The state of a device that is STARTED"@en ;
  rdfs:subClassOf saref:StartStopState .

saref:LevelControlFunction a rdfs:Class ;
  rdfs:label "Level control function"@en ;
  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:subClassOf saref:ActuatingFunction .

saref:Electricity a rdfs:Class ;
  rdfs:label "Electricity"@en ;
  rdfs:comment "A type of commodity"@en ;
  rdfs:subClassOf saref:Commodity .

saref:EnergyUnit a rdfs:Class ;
  rdfs:label "Energy unit"@en ;
  rdfs:comment "The unit of measure for energy"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:Coal a rdfs:Class ;
  rdfs:label "Coal"@en ;
  rdfs:comment "A type of commodity"@en ;
  rdfs:subClassOf saref:Commodity .

saref:Actuator a rdfs:Class ;
  rdfs:label "Actuator"@en ;
  rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function"@en ;
  rdfs:subClassOf saref:Device .

saref:consistsOf a rdf:Property ;
  rdfs:label "consists of"@en ;
  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:range saref:Device , saref:Profile .

saref:hasModel a rdf:Property ;
  rdfs:label "has model"@en ;
  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:range <https://w3id.org/linkml/Any> .

saref:controlsProperty a rdf:Property ;
  rdfs:label "controls property"@en ;
  rdfs:comment "A relationship specifying the property that can be controlled by a certain device"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:Property .

saref:accomplishes a rdf:Property ;
  rdfs:label "accomplishes"@en ;
  rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"@en ;
  rdfs:range saref:Task .

saref:hasState a rdf:Property ;
  rdfs:label "has state"@en ;
  rdfs:comment "A relationship identifying the type of state of a device"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:State .

saref:hasFunction a rdf:Property ;
  rdfs:label "has function"@en ;
  rdfs:comment "A relationship identifying the function of a device"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:Function .

saref:hasProfile a rdf:Property ;
  rdfs:label "has profile"@en ;
  rdfs:comment "A relationship associating a profile to a certain device"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:Profile .

saref:measuresProperty a rdf:Property ;
  rdfs:label "measures property"@en ;
  rdfs:comment "A relationship specifying the property that can be measured by a certain device"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:Property .

saref:isUsedFor a rdf:Property ;
  rdfs:label "is used for"@en ;
  rdfs:comment "A relationship specifying the commodity for which a device is used for"@en ;
  rdfs:range saref:Commodity .

saref:hasManufacturer a rdf:Property ;
  rdfs:label "has manufacturer"@en ;
  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:range <https://w3id.org/linkml/Any> .

saref:makesMeasurement a rdf:Property ;
  rdfs:label "makes measurement"@en ;
  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:range saref:Measurement .

saref:offers a rdf:Property ;
  rdfs:label "offers"@en ;
  rdfs:comment "A relationship between a device and a service"@en ;
  rdfs:domain saref:Device ;
  rdfs:range saref:Service .

saref:Function a rdfs:Class ;
  rdfs:label "Function"@en ;
  rdfs:comment "The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "@en .

saref:ToggleCommand a rdfs:Class ;
  rdfs:label "Toggle command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:isCommandOf a rdf:Property ;
  rdfs:label "is command of"@en ;
  rdfs:comment "A relationship between a command and a function."@en ;
  rdfs:domain saref:Command ;
  rdfs:range saref:OnOffFunction , saref:Function , saref:OpenCloseFunction , saref:StartStopFunction , saref:SensingFunction , saref:LevelControlFunction , saref:MeteringFunction , saref:EventFunction .

saref:actsUpon a rdf:Property ;
  rdfs:label "acts upon"@en ;
  rdfs:comment "A relationship between a command and a state"@en ;
  rdfs:domain saref:Command ;
  rdfs:range saref:State .

saref:OffState a rdfs:Class ;
  rdfs:label "Off state"@en ;
  rdfs:comment "The state of a device that is Off"@en ;
  rdfs:subClassOf saref:OnOffState .

saref:IlluminanceUnit a rdfs:Class ;
  rdfs:label "Illuminance unit"@en ;
  rdfs:comment "The unit of measure for light"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:OnOffFunction a rdfs:Class ;
  rdfs:label "On off function"@en ;
  rdfs:comment "An actuating function that allows to switch on and off an actuator"@en ;
  rdfs:subClassOf saref:ActuatingFunction .

saref:SensingFunction a rdfs:Class ;
  rdfs:label "Sensing function"@en ;
  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:subClassOf saref:Function .

saref:hasSensingRange a rdf:Property ;
  rdfs:label "has sensing range"@en ;
  rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection"@en ;
  rdfs:domain saref:SensingFunction ;
  rdfs:range saref:Measurement .

saref:hasSensorType a rdf:Property ;
  rdfs:label "has sensor type"@en ;
  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:range saref:Property .

saref:HVAC a rdfs:Class ;
  rdfs:label "HVAC"@en ;
  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:subClassOf saref:Device .

saref:Command a rdfs:Class ;
  rdfs:label "Command"@en ;
  rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."@en .

saref:Time a rdfs:Class ;
  rdfs:label "Time"@en ;
  rdfs:comment "A class that allows to specify the time concept."@en .

saref:Device a rdfs:Class ;
  rdfs:label "Device"@en ;
  rdfs:comment "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function."@en .

saref:OpenCommand a rdfs:Class ;
  rdfs:label "Open command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:OnOffState a rdfs:Class ;
  rdfs:label "On off state"@en ;
  rdfs:comment "A type of state"@en ;
  rdfs:subClassOf saref:State .

saref:Water a rdfs:Class ;
  rdfs:label "Water"@en ;
  rdfs:comment "A type of commodity"@en ;
  rdfs:subClassOf saref:Commodity .

saref:Motion a rdfs:Class ;
  rdfs:label "Motion"@en ;
  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:subClassOf saref:Property .

saref:OnCommand a rdfs:Class ;
  rdfs:label "On command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:StartStopState a rdfs:Class ;
  rdfs:label "Start stop state"@en ;
  rdfs:comment "A type of state"@en ;
  rdfs:subClassOf saref:State .

saref:CloseState a rdfs:Class ;
  rdfs:label "Close state"@en ;
  rdfs:comment "The state of a device that is CLOSE"@en ;
  rdfs:subClassOf saref:OpenCloseState .

saref:Appliance a rdfs:Class ;
  rdfs:label "Appliance"@en ;
  rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"@en ;
  rdfs:subClassOf saref:Device .

saref:StartCommand a rdfs:Class ;
  rdfs:label "Start command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:Price a rdfs:Class ;
  rdfs:label "Price"@en ;
  rdfs:comment "A saref:Property crelated to some measurements that are characterized by a certain value that is measured using saref:Currency"@en ;
  rdfs:subClassOf saref:Property .

saref:Humidity a rdfs:Class ;
  rdfs:label "Humidity"@en ;
  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:subClassOf saref:Property .

saref:OpenCloseFunction a rdfs:Class ;
  rdfs:label "Open close function"@en ;
  rdfs:comment "An actuating function that allows to open and close a device"@en ;
  rdfs:subClassOf saref:ActuatingFunction .

saref:DoorSwitch a rdfs:Class ;
  rdfs:label "Door switch"@en ;
  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:subClassOf saref:Switch .

saref:GetCommand a rdfs:Class ;
  rdfs:label "Get command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:Profile a rdfs:Class ;
  rdfs:label "Profile"@en ;
  rdfs:comment "A specification associated to a device to collect information about a certain Property (e.g., Energy) for optimizing its usage in the home, office or building in which the device is located. This specification is about a certain Property (saref:isAbout), can be calculated over a time span (saref:hasTime) and can be associated to some costs (saref:hasPrice). An example is the Power Profile defined in the SAREF4ENER extension that can be associated to a device for optimizing the Energy efficiency in the home, office or building in which the device is located."@en .

saref:isAbout a rdf:Property ;
  rdfs:label "isAbout"@en ;
  rdfs:comment "A relationship identifying what an entity, such as a profile, is about"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

saref:hasTime a rdf:Property ;
  rdfs:label "has time"@en ;
  rdfs:comment "A relationship to associate time information to an entity"@en ;
  rdfs:range saref:Time .

saref:hasPrice a rdf:Property ;
  rdfs:label "has price"@en ;
  rdfs:comment "A relationship indentifying the price associated to an entity"@en ;
  rdfs:range saref:Price .

saref:Service a rdfs:Class ;
  rdfs:label "Service"@en ;
  rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service and the function(s) to be represented."@en .

saref:represents a rdf:Property ;
  rdfs:label "represents"@en ;
  rdfs:comment "A relationship between a service and a function."@en ;
  rdfs:domain saref:Service ;
  rdfs:range saref:Function .

saref:isOfferedBy a rdf:Property ;
  rdfs:label "is offered by"@en ;
  rdfs:comment "A relationship between a service and a device that offers the service"@en ;
  rdfs:domain saref:Service ;
  rdfs:range saref:Device .

saref:OnState a rdfs:Class ;
  rdfs:label "On state"@en ;
  rdfs:comment "The state of a device that is On"@en ;
  rdfs:subClassOf saref:OnOffState .

saref:GetSensingDataCommand a rdfs:Class ;
  rdfs:label "Get sensing data command"@en ;
  rdfs:comment "A type of get command"@en ;
  rdfs:subClassOf saref:GetCommand .

saref:SetAbsoluteLevelCommand a rdfs:Class ;
  rdfs:label "Set absolute level command"@en ;
  rdfs:comment "A type of set level command"@en ;
  rdfs:subClassOf saref:SetLevelCommand .

saref:Gas a rdfs:Class ;
  rdfs:label "Gas"@en ;
  rdfs:comment "A type of commodity"@en ;
  rdfs:subClassOf saref:Commodity .

saref:Currency a rdfs:Class ;
  rdfs:label "Currency"@en ;
  rdfs:comment "The class of units of measure for price"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:Meter a rdfs:Class ;
  rdfs:label "Meter"@en ;
  rdfs:comment "A device built to accurately detect and display a quantity in a form readable by a human being. Further, a device of category saref:Meter that performs a saref:MeteringFunction."@en ;
  rdfs:subClassOf saref:Device .

saref:Sensor a rdfs:Class ;
  rdfs:label "Sensor"@en ;
  rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."@en ;
  rdfs:subClassOf saref:Device .

saref:Commodity a rdfs:Class ;
  rdfs:label "Commodity"@en ;
  rdfs:comment "A marketable item for which there is demand, but which is supplied without qualitative differentiation across a market. SAREF refers to energy commodities such as electricity, gas, coal and oil. "@en .

saref:OpenState a rdfs:Class ;
  rdfs:label "Open state"@en ;
  rdfs:comment "The state of a device that is OPEN "@en ;
  rdfs:subClassOf saref:OpenCloseState .

saref:GetMeterDataCommand a rdfs:Class ;
  rdfs:label "Get meter data command"@en ;
  rdfs:comment "A type of get command"@en ;
  rdfs:subClassOf saref:GetCommand .

saref:GetCurrentMeterValueCommand a rdfs:Class ;
  rdfs:label "Get current meter value command"@en ;
  rdfs:comment "A type of get command"@en ;
  rdfs:subClassOf saref:GetCommand .

saref:StepDownCommand a rdfs:Class ;
  rdfs:label "Step down command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:MeteringFunction a rdfs:Class ;
  rdfs:label "Metering function"@en ;
  rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"@en ;
  rdfs:subClassOf saref:Function .

saref:hasMeterReadingType a rdf:Property ;
  rdfs:label "has meter reading type"@en ;
  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:range saref:Property .

saref:hasMeterReading a rdf:Property ;
  rdfs:label "has meter reading"@en ;
  rdfs:comment "A relationship between a metering function and the measurement of the reading"@en ;
  rdfs:domain saref:MeteringFunction ;
  rdfs:range saref:Measurement .

saref:SetLevelCommand a rdfs:Class ;
  rdfs:label "Set level command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:Smoke a rdfs:Class ;
  rdfs:label "Smoke"@en ;
  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:subClassOf saref:Property .

saref:NotifyCommand a rdfs:Class ;
  rdfs:label "Notify command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:TemperatureSensor a rdfs:Class ;
  rdfs:label "Temperature sensor"@en ;
  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:subClassOf saref:Sensor .

saref:Light a rdfs:Class ;
  rdfs:label "Light"@en ;
  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:subClassOf saref:Property .

saref:Power a rdfs:Class ;
  rdfs:label "Power"@en ;
  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:subClassOf saref:Property .

saref:EventFunction a rdfs:Class ;
  rdfs:label "Event function"@en ;
  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:subClassOf saref:Function .

saref:hasThresholdMeasurement a rdf:Property ;
  rdfs:label "has threshold measurement"@en ;
  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:range saref:Measurement .

saref:SmokeSensor a rdfs:Class ;
  rdfs:label "Smoke sensor"@en ;
  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:subClassOf saref:Sensor .

saref:CloseCommand a rdfs:Class ;
  rdfs:label "Close command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:StepUpCommand a rdfs:Class ;
  rdfs:label "Step up command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:Measurement a rdfs:Class ;
  rdfs:label "Measurement"@en ;
  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 .

saref:relatesToProperty a rdf:Property ;
  rdfs:label "relates to property"@en ;
  rdfs:comment "A relationship between a measurement and the property it relates to"@en ;
  rdfs:domain saref:Measurement ;
  rdfs:range saref:Property .

saref:isMeasurementOf a rdf:Property ;
  rdfs:label "isMeasurementOf"@en ;
  rdfs:comment "A relationship between a measurement and the feature of interest whose quality was measured"@en ;
  rdfs:domain saref:Measurement ;
  rdfs:range saref:FeatureOfInterest .

saref:hasValue a rdf:Property ;
  rdfs:label "has value"@en ;
  rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

saref:measurementMadeBy a rdf:Property ;
  rdfs:label "measurement made by"@en ;
  rdfs:comment "A relation between a measurement and the device that made it."@en ;
  rdfs:domain saref:Measurement ;
  rdfs:range saref:Device .

saref:hasTimestamp a rdf:Property ;
  rdfs:label "has timestamp"@en ;
  rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ;
  rdfs:range xsd:dateTime .

saref:isMeasuredIn a rdf:Property ;
  rdfs:label "is measured in"@en ;
  rdfs:comment "A relationship identifying the unit of measure used for a certain entity."@en ;
  rdfs:domain saref:Measurement ;
  rdfs:range saref:UnitOfMeasure .

saref:PauseCommand a rdfs:Class ;
  rdfs:label "Pause command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:State a rdfs:Class ;
  rdfs:label "State"@en ;
  rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."@en .

saref:Temperature a rdfs:Class ;
  rdfs:label "Temperature"@en ;
  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:subClassOf saref:Property .

saref:SetRelativeLevelCommand a rdfs:Class ;
  rdfs:label "Set relative level command"@en ;
  rdfs:comment "A type of set level command"@en ;
  rdfs:subClassOf saref:SetLevelCommand .

saref:TemperatureUnit a rdfs:Class ;
  rdfs:label "Temperature unit"@en ;
  rdfs:comment "The unit of measure for temperature"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:Occupancy a rdfs:Class ;
  rdfs:label "Occupancy"@en ;
  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:subClassOf saref:Property .

saref:SwitchOnService a rdfs:Class ;
  rdfs:label "Switch on service"@en ;
  rdfs:comment "A type of service that represents an on/off function to the network"@en ;
  rdfs:subClassOf saref:Service .

saref:PressureUnit a rdfs:Class ;
  rdfs:label "Pressure unit"@en ;
  rdfs:comment "The unit of measure for pressure"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:LightSwitch a rdfs:Class ;
  rdfs:label "Light switch"@en ;
  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:subClassOf saref:Switch .

saref:Pressure a rdfs:Class ;
  rdfs:label "Pressure"@en ;
  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:subClassOf saref:Property .

saref:UnitOfMeasure a rdfs:Class ;
  rdfs:label "Unit of measure"@en ;
  rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example,  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 called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."@en .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

saref:Property a rdfs:Class ;
  rdfs:label "Property"@en ;
  rdfs:comment "A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature"@en .

saref:PowerUnit a rdfs:Class ;
  rdfs:label "Power unit"@en ;
  rdfs:comment "The unit of measure for power"@en ;
  rdfs:subClassOf saref:UnitOfMeasure .

saref:OpenCloseState a rdfs:Class ;
  rdfs:label "Open close state"@en ;
  rdfs:comment "A type of state"@en ;
  rdfs:subClassOf saref:State .

saref:GetMeterHistoryCommand a rdfs:Class ;
  rdfs:label "Get meter history command"@en ;
  rdfs:comment "A type of get command"@en ;
  rdfs:subClassOf saref:GetCommand .

saref:Switch a rdfs:Class ;
  rdfs:label "Switch"@en ;
  rdfs:comment "A device of category saref:Actuator that performs an actuating function of type saref:OnOffFunction or saref:OpenCloseFunction"@en ;
  rdfs:subClassOf saref:Actuator .

saref:OffCommand a rdfs:Class ;
  rdfs:label "Off command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:Task a rdfs:Class ;
  rdfs:label "Task"@en ;
  rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended. Tasks can be accomplished by devices (saref:isAccomplishedBy)."@en .

saref:isAccomplishedBy a rdf:Property ;
  rdfs:label "is accomplished by"@en ;
  rdfs:comment "A relationship identifying an entity (e.g., a device) that can accomplish a task."@en ;
  rdfs:domain saref:Task ;
  rdfs:range <https://w3id.org/linkml/Any> .

saref:StopCommand a rdfs:Class ;
  rdfs:label "Stop command"@en ;
  rdfs:comment "A type of command"@en ;
  rdfs:subClassOf saref:Command .

saref:FeatureOfInterest a rdfs:Class ;
  rdfs:label "Feature of interest"@en ;
  rdfs:comment "A feature of interest represents any real world entity from which a property is measured."@en .

saref:hasProperty a rdf:Property ;
  rdfs:label "has property"@en ;
  rdfs:comment "A relationship between a feature of interest and a property of that feature"@en ;
  rdfs:domain saref:FeatureOfInterest ;
  rdfs:range saref:Property .

saref:hasMeasurement a rdf:Property ;
  rdfs:label "has measurement"@en ;
  rdfs:comment "A relationship between a feature of interest and a measurement about it"@en ;
  rdfs:domain saref:FeatureOfInterest ;
  rdfs:range saref:Measurement .

saref:hasDescription a rdf:Property ;
  rdfs:label "has description"@en ;
  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 ;
  rdfs:range <https://w3id.org/linkml/Any> .

saref:hasTypicalConsumption a rdf:Property ;
  rdfs:label "has typical consumption"@en ;
  rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .
