@prefix : .
@prefix owl: .
@prefix rdf: .
@prefix xml: .
@prefix xsd: .
@prefix foaf: .
@prefix rdfs: .
@prefix skos: .
@prefix saref: .
@prefix s4syst: .
@prefix dcterms: .
@prefix vann: .
@base .
a owl:Ontology ;
owl:versionInfo "v3.2.1" ;
owl:versionIRI ;
owl:priorVersion ;
dcterms:issued "2023-12-31"^^xsd:date ;
dcterms:modified "2020-12-31"^^xsd:date ;
dcterms:title "SAREF: the Smart Applications REFerence ontology"@en ;
dcterms:publisher ;
dcterms:license ;
dcterms:creator ;
dcterms:creator ;
dcterms:creator ;
dcterms:creator ;
dcterms:source ;
rdfs:seeAlso ;
vann:preferredNamespacePrefix "saref" ;
vann:preferredNamespaceUri "https://saref.etsi.org/core/" ;
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 ;
rdfs:comment """Information about changes compared to version 3.1.1:
- Added the saref:FeatureKind class
- Added the saref:PropertyOfInterest class
- Added the saref:StateOfInterest class
""" ;
rdfs:comment """Information about changes compared to version 2.1.1:
- 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).
- Added the saref:measurementMadeBy property as inverse of saref:makesMeasurement.
- The saref:relatesToProperty and saref:relatesToMeasurement properties are now inverse of each other.
- The range of saref:hasValue, which was defined as xsd:float, has been removed to support other datatypes for measurements.
- 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.
- The saref:hasName property has been removed and the use of rdfs:label is recommended.
- The saref:hasDescription property has been deprecated and the use of rdfs:comment is recommended.
- 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.
- 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.
- The saref:BuildingRelated, saref:EnergyRelated and saref:FunctionRelated classes have been removed, since the different extensions already classify the device types.
- The instances of the subclasses of saref:Command have been removed, since they represent examples.
- The instances of saref:UnitOfMeasure have been moved to examples.
- The classes related to the SAREF4ENER extension have been removed: saref:Generator, saref:Storage, saref:Load and saref:EnergyMeter.
- Some instances of saref:Device have been moved to examples: saref:WashingMachine, saref:LightingDevice, saref:MicroRenewable, saref:Multimedia, and saref:Network.
- Added domain and range axioms wherever the definition of a property unambiguously identifies the domain or the range of the property.
- The OWL Time ontology is not imported anymore.
- The documentation of some ontology terms has been updated for clarification.
- Language tags have been added to all labels and comments.
""" ;
rdfs:comment """Information about changes compared to version 1.1.1:
- 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.
- 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.
- 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.
- 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).
- 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).
- 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.
- 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.
- 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.
- The subclasses of saref:Task have been transormed in individuals.
- The saref:hasTask property has been removed from the saref:Profile class to resolve an ambiguity with the saref:Task class.""" .
dcterms:issued a owl:AnnotationProperty .
dcterms:modified a owl:AnnotationProperty .
dcterms:source a owl:AnnotationProperty .
dcterms:creator a owl:AnnotationProperty .
dcterms:title a owl:AnnotationProperty .
dcterms:description a owl:AnnotationProperty .
dcterms:license a owl:AnnotationProperty .
dcterms:publisher a owl:AnnotationProperty .
vann:preferredNamespacePrefix a owl:AnnotationProperty .
vann:preferredNamespaceUri a owl:AnnotationProperty .
skos:broader a owl:ObjectProperty ;
owl:inverseOf skos:narrower .
skos:narrower a owl:ObjectProperty ;
owl:inverseOf skos:broader .
skos:note a owl:AnnotationProperty .
skos:example a owl:AnnotationProperty .
s4syst:System a owl:Class .
# ETSI TS 103264 Clause 5.2: Feature kinds and features of interest
## Class saref:FeatureOfInterest represents any real world entity from which a property or a state may be acted upon, such as measured and controlled. An instance of saref:FeatureOfInterest represents one specific real world entity.
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 measured and controlled. An instance of saref:FeatureOfInterest represents one specific real world entity."@en ;
rdfs:label "Feature of interest"@en .
## Class saref:FeatureKind allows 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.
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 .
## Feature kinds can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:FeatureKind rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:FeatureKind ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:FeatureKind ] .
## A feature of interest can be linked to its kind(s) using OP saref:hasFeatureKind.
saref:hasFeatureKind a owl:ObjectProperty ;
rdfs:label "has feature kind"@en ;
rdfs:comment "links a feature of interest to its kind, a feature kind"@en ;
rdfs:domain saref:FeatureOfInterest ;
rdfs:range saref:FeatureKind .
## Feature of interest inherit broader feature kinds.
saref:hasFeatureKind
owl:propertyChainAxiom ( saref:hasFeatureKind skos:broader ) .
## A feature kind (resp. a feature of interest) may consist of (OP saref:consistsOf) other feature kinds (resp. features of interest).
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 .
saref:FeatureKind rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:consistsOf ;
owl:allValuesFrom saref:FeatureKind ] .
saref:FeatureOfInterest rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:consistsOf ;
owl:allValuesFrom saref:FeatureOfInterest ] .
## The model and the manufacturer of a saref:FeatureKind or a saref:FeatureOfInterest can be explicited using DPs saref:hasModel and saref:hasManufacturer, respectively.
saref:hasDescription a owl:DatatypeProperty ;
rdfs:label "has description"@en ;
owl:deprecated true ;
rdfs:comment "DEPRECATED: The use of rdfs:comment is recommended instead."@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 .
saref:hasManufacturer a owl:DatatypeProperty ;
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:domain [
a owl:Class ;
owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest ) ] .
saref:hasModel a owl:DatatypeProperty ;
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:domain [
a owl:Class ;
owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest ) ] .
# ETSI TS 103264 Clause 5.3: Devices
## Class saref:Device represents any a tangible object designed to accomplish a particular task by performing one or more functions. An instance of saref:Device represents one specific real world entity.
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 ;
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 ;
skos:example "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 ;
rdfs:label "Device"@en .
## Devices are also systems (s4syst:System) and features of interest (saref:FeatureOfInterest).
saref:Device
rdfs:subClassOf saref:FeatureOfInterest , s4syst:System .
## A device can be linked to its feature kinds using OP saref:hasDeviceKind. Kinds of devices describe models of devices, with common properties having the same value, common states being the same, common functions, and common services. OP saref:hasDeviceKind is a sub-property of OP saref:hasFeatureKind.
saref:hasDeviceKind a owl:ObjectProperty ;
rdfs:subPropertyOf saref:hasFeatureKind ;
rdfs:label "has device kind"@en ;
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:range saref:FeatureKind .
## A device can act upon (OP saref:actsUpon) features, properties, or states.
saref:actsUpon a owl:ObjectProperty ;
rdfs:label "acts upon"@en ;
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:Device
saref:Function
saref:FunctionOfInterest
saref:Command
saref:CommandOfInterest
saref:ProcedureExecution ) ] ;
rdfs:range
[ a owl:Class ;
owl:unionOf (
saref:FeatureKind
saref:FeatureOfInterest
saref:Property
saref:PropertyOfInterest
saref:State
saref:StateOfInterest ) ] .
saref:isActedUponBy a owl:ObjectProperty ;
owl:inverseOf saref:actsUpon ;
rdfs:label "is acted upon by"@en ;
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:range
[ a owl:Class ;
owl:unionOf (
saref:FeatureKind
saref:Device
saref:Function
saref:FunctionOfInterest
saref:Command
saref:CommandOfInterest
saref:ProcedureExecution ) ] .
saref:measures a owl:ObjectProperty ;
rdfs:subPropertyOf saref:actsUpon ;
owl:inverseOf saref:isMeasuredBy ;
rdfs:label "measures"@en ;
rdfs:comment "Links a device, function, command, or procedure execution, to the feature or property it measures."@en ;
rdfs:range
[ a owl:Class ;
owl:unionOf (
saref:FeatureKind
saref:FeatureOfInterest
saref:Property
saref:PropertyOfInterest ) ] .
saref:isMeasuredBy a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isActedUponBy ;
owl:inverseOf saref:measures ;
rdfs:label "is measured by"@en ;
rdfs:comment "Links a feature, property, or state, to the device, function, command, or procedure execution, that measures it."@en ;
rdfs:domain
[ a owl:Class ;
owl:unionOf (
saref:FeatureKind
saref:FeatureOfInterest
saref:Property
saref:PropertyOfInterest ) ] .
saref:observes a owl:ObjectProperty ;
rdfs:subPropertyOf saref:actsUpon ;
owl:inverseOf saref:isObservedBy ;
rdfs:label "observes"@en ;
rdfs:comment "Links a device, function, command, or procedure execution, to the feature, property, or state, it observes."@en .
saref:isObservedBy a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isActedUponBy ;
owl:inverseOf saref:observes ;
rdfs:label "is observed by"@en ;
rdfs:comment "Links a feature, property, or state, to the device, function, command, or procedure execution, that observes it."@en .
saref:controls a owl:ObjectProperty ;
rdfs:subPropertyOf saref:actsUpon ;
owl:inverseOf saref:isControlledBy ;
rdfs:label "controls"@en ;
rdfs:comment "Links a device, function, command, or procedure execution, to the feature, property, or state, it controls."@en .
saref:isControlledBy a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isActedUponBy ;
owl:inverseOf saref:controls ;
rdfs:label "is controlled by"@en ;
rdfs:comment "Links a feature, property, or state, to the device, function, command, or procedure execution, that controls it."@en .
## Deprecated
saref:measuresProperty a owl:ObjectProperty ;
rdfs:subPropertyOf saref:measures ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@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 ;
rdfs:label "measures property"@en .
saref:isMeasuredByDevice a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isMeasuredBy ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A relationship specifying the devices that can measure a certain property"@en ;
rdfs:domain saref:Property ;
rdfs:range saref:Device ;
rdfs:label "is measured by device"@en .
saref:isControlledByDevice a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isControlledBy ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A relationship specifying the devices that can control a certain property"@en ;
rdfs:domain saref:Property ;
rdfs:range saref:Device ;
rdfs:label "is controlled by device"@en .
saref:controlsProperty a owl:ObjectProperty ;
rdfs:subPropertyOf saref:controls ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@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 ;
rdfs:label "controls property"@en .
## SAREF Core provides some examples of classes of devices including appliances, sensors, actuators, and meters.
saref:Appliance a owl:Class ;
rdfs:subClassOf saref:Device ;
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 [ a owl:Restriction ; owl:onProperty saref:isUsedFor ; owl:minCardinality 1 ] .
saref:Sensor a owl:Class ;
rdfs:subClassOf saref:Device ;
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 [ a owl:Restriction ; owl:onProperty saref:observes ; owl:minCardinality 1 ] .
saref:Actuator a owl:Class ;
rdfs:subClassOf saref:Device ;
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 [ a owl:Restriction ; owl:onProperty saref:controls ; owl:minCardinality 1 ] .
saref:Meter a owl:Class ;
rdfs:subClassOf saref:Device ;
rdfs:comment "A device designed to measure one or more properties of one or more features of interest."@en ;
rdfs:label "Meter"@en ;
rdfs:subClassOf [ a owl:Restriction ; owl:onProperty saref:measures ; owl:minCardinality 1 ] .
# ETSI TS 103264 Clause 5.4: Tasks
## Class saref:Task represents goals for which a device is designed, from a user perspective.
saref:Task a owl:Class ;
rdfs:label "Task"@en ;
rdfs:comment "The goal for which a device is designed, from a user perspective."@en ;
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 .
## Tasks can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:Task rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:Task ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:Task ] .
## Deprecated
saref:Cleaning a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Cleaning"@en .
saref:Comfort a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Comfort"@en .
saref:Drying a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Drying"@en .
saref:EnergyEfficiency a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "EnergyEfficiency"@en .
saref:Entertainment a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Entertainment"@en .
saref:Lighting a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Lighting"@en .
saref:MeterReading a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Meter reading"@en .
saref:Safety a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Safety"@en .
saref:Washing a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Washing"@en .
saref:WellBeing a saref:Task ;
owl:deprecated true ;
skos:note "DEPRECATED: will be deleted in the next major revision of SAREF"@en ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "WellBeing"@en .
## Device kinds and devices can be linked to the one or more tasks they are designed to accomplish with OP saref:accomplishes.
## Property saref:accomplishes can also apply to other classes such as functions, commands, and procedure executions.
saref:accomplishes a owl:ObjectProperty ;
owl:inverseOf saref:isAccomplishedBy ;
rdfs:label "accomplishes"@en ;
rdfs:comment "Links a certain entity (e.g., a device) to the task it accomplishes."@en ;
rdfs:range saref:Task .
saref:isAccomplishedBy a owl:ObjectProperty ;
owl:inverseOf saref:accomplishes ;
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 .
# ETSI TS 103264 Clause 5.5: Commodities
## Class saref:Commodity represents marketable items which may be supplied without qualitative differentiation. Commodities may be consumed, produced, or stored, by some feature of interest or device.
saref:Commodity a owl:Class ;
rdfs:comment "A marketable item which may be supplied without qualitative differentiation. "@en ;
skos:note "SAREF refers to energy commodities such as electricity, gas, coal and oil."@en ;
rdfs:label "Commodity"@en .
## Commodities can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:Commodity rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:Commodity ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:Commodity ] .
## Deprecated: Commodity classes will be turned into instances in the next major revision of SAREF
saref:Electricity a owl:Class ;
rdfs:subClassOf saref:Commodity ;
owl:deprecated true ;
skos:note "DEPRECATED: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en ;
rdfs:comment "A type of energy commodity"@en ;
rdfs:label "Electricity"@en .
saref:Gas a owl:Class ;
rdfs:subClassOf saref:Commodity ;
owl:deprecated true ;
skos:note "DEPRECATED: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en ;
rdfs:comment "A type of energy commodity"@en ;
rdfs:label "Gas"@en .
saref:Coal a owl:Class ;
rdfs:subClassOf saref:Commodity ;
owl:deprecated true ;
skos:note "DEPRECATED: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Coal"@en .
saref:Water a owl:Class ;
rdfs:subClassOf saref:Commodity ;
owl:deprecated true ;
skos:note "DEPRECATED: will be defined as an instance of saref:Commodity in the next major revision of SAREF"@en ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Water"@en .
## SAREF Core defines the category of energy commodities that groups electricity, gas, propane (narrower than gas), coal. It furthermore defines the category of natural resource commodity.
saref:EnergyCommodity a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:label "Energy Commodity"@en ;
rdfs:comment "The class of energy commodities"@en .
saref:NaturalResourceCommodity a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:label "Natural Resource Commodity"@en ;
rdfs:comment "The class of natural resource commodities"@en .
## the following entities will be introduced in the next major revision of SAREF
# saref:Electricity a saref:EnergyCommodity ;
# rdfs:comment "The electricity energy commodity"@en ;
# rdfs:label "Electricity"@en .
# saref:Gas a saref:EnergyCommodity ;
# rdfs:comment "The gas energy commodity"@en ;
# rdfs:label "Gas"@en .
# saref:Propane a saref:EnergyCommodity ;
# skos:broader saref:Gas ;
# rdfs:comment "The propane energy commodity"@en ;
# rdfs:label "Propane"@en .
# saref:Coal a saref:EnergyCommodity ;
# rdfs:comment "The coal energy commodity"@en ;
# rdfs:label "Coal"@en .
# saref:Water a saref:NaturalResourceCommodity ;
# rdfs:comment "The water natural resource commodity"@en ;
# rdfs:label "Water"@en .
## isUsedFor
saref:isUsedFor a owl:ObjectProperty ;
owl:deprecated true ;
skos:note "DEPRECATED: may be deleted in the next major revision of SAREF"@en ;
rdfs:comment "Links a feature kind, feature of interest, or device, to the commodity it is used for"@en ;
rdfs:label "is used for"@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest saref:Device ) ] ;
rdfs:range saref:Commodity .
saref:consumes a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isUsedFor ;
owl:inverseOf saref:isConsumedBy ;
rdfs:label "consumes"@en ;
rdfs:comment "Links a feature kind, feature of interest, or device, to the commodity it consumes"@en .
saref:isConsumedBy a owl:ObjectProperty ;
owl:inverseOf saref:consumes ;
rdfs:label "is consumed by"@en ;
rdfs:comment "Links a commodity to the feature kind, feature of interest, or device, that consumes it"@en .
saref:produces a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isUsedFor ;
owl:inverseOf saref:isProducedBy ;
rdfs:label "produces"@en ;
rdfs:comment "Links a feature kind, feature of interest, or device, to the commodity it produces"@en .
saref:isProducedBy a owl:ObjectProperty ;
owl:inverseOf saref:produces ;
rdfs:label "is produced by"@en ;
rdfs:comment "Links a commodity to the feature kind, feature of interest, or device, that produces it"@en .
saref:stores a owl:ObjectProperty ;
rdfs:subPropertyOf saref:isUsedFor ;
owl:inverseOf saref:isStoredBy ;
rdfs:label "stores"@en ;
rdfs:comment "Links a feature kind, feature of interest, or device, to the commodity it stores"@en .
saref:isStoredBy a owl:ObjectProperty ;
owl:inverseOf saref:stores ;
rdfs:label "is stored by"@en ;
rdfs:comment "Links a commodity to the feature kind, feature of interest, or device, that stores it"@en .
# ETSI TS 103264 Clause 5.6: Properties, properties of interest, and property values
## In SAREF, properties refer to the identifiable qualities of features of interest that can be acted upon by devices, such as measured or controlled. While properties can apply to different features of interest, properties of interest are specific to a feature of interest. Property values describe the value for a property.
# ETSI TS 103264 Clause 5.6.2: Properties
## An instance of saref:Property can apply to different features of interest.
saref:Property a owl:Class ;
rdfs:label "Property"@en ;
rdfs:comment "Identifiable qualities of features of interest that can be acted upon by devices, such as measured or controlled. A property can apply to different features of interest."@en ;
skos:note "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 ;
skos:example "Air temperature, pressure, luminance, etc. are all properties."@en ;
skos:example """Two examples using the QUDT Quantity Kind vocabulary, and the British Oceanographic Data Centre Parameter Usage Vocabulary.
a saref:Property ;
rdfs:label "Active Energy"@en ;
rdfs:comment "\"Active Energy\" is the electrical energy transformable into some other form of energy."@en .
a saref:Property ;
skos:prefLabel "Absolute temperature standard deviation of the atmosphere by dry bulb thermometer"@en .
"""@en .
## Properties can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:Property rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:Property ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:Property ] .
## The OP saref:hasProperty may be used to link a feature kind or feature of interest to its properties. Its inverse is saref:isPropertyOf.
saref:hasProperty a owl:ObjectProperty ;
owl:inverseOf saref:isPropertyOf ;
rdfs:label "has property"@en ;
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:range saref:Property .
saref:isPropertyOf a owl:ObjectProperty ;
owl:inverseOf saref:hasProperty ;
rdfs:label "is property of"@en ;
rdfs:comment "Links a property to the feature kind or feature of interest it is a property of."@en ;
rdfs:domain saref:Property ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest ) ] .
## Feature kinds inherit the properties of their broader feature kinds.
saref:hasProperty
owl:propertyChainAxiom ( skos:broader saref:hasProperty ) .
## Features of interest inherit the properties of their feature kinds.
saref:hasProperty
owl:propertyChainAxiom ( saref:hasFeatureKind saref:hasProperty ) .
# ETSI TS 103264 Clause 5.6.3: Properties of interest
## An instance of saref:PropertyOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest.
saref:PropertyOfInterest a owl:Class ;
rdfs:label "Property of Interest"@en ;
rdfs:comment "Identifiable qualities of features of interest that can be acted upon by devices, such as measured 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 ;
skos:note "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 SAREF V4.1.1."@en ;
skos:note "A property of interest is the property of (OP saref:isPropertyOfInterestOf) exactly one feature of interest."@en ;
skos:note "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 ;
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.
a saref:PropertyOfInterest ;
saref:isPropertyOfInterestOf ;
saref:hasPropertyKind saref:Luminance ;
rdfs:comment "The luminance of amphitheatre ATHENA"@en .
"""@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 .
## The OP saref:hasPropertyOfInterest may be used to link a feature of interest to its properties of interest. Its inverse is saref:isPropertyOfInterestOf and is functional.
saref:hasPropertyOfInterest a owl:ObjectProperty ;
owl:inverseOf saref:isPropertyOfInterestOf ;
rdfs:comment "Links a feature of interest to one of its properties of interest."@en ;
rdfs:label "has property of interest"@en ;
rdfs:domain saref:FeatureOfInterest ;
rdfs:range saref:PropertyOfInterest .
saref:isPropertyOfInterestOf a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:hasPropertyOfInterest ;
rdfs:comment "Links a property of interest to the feature of interest it is a property of."@en ;
rdfs:label "is property of interest of"@en ;
rdfs:domain saref:PropertyOfInterest ;
rdfs:range saref:FeatureOfInterest .
## A property of interest is the property of (OP saref:isPropertyOfInterestOf) exactly one feature of interest.
saref:PropertyOfInterest
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty saref:isPropertyOfInterestOf ;
owl:cardinality 1
] .
## A property of interest can be linked to its kind(s) using OP saref:hasPropertyKind.
saref:hasPropertyKind a owl:ObjectProperty ;
rdfs:label "has feature kind"@en ;
rdfs:comment "links a property of interest to its kind, a property."@en ;
rdfs:domain saref:PropertyOfInterest ;
rdfs:range saref:Property .
## Properties of interest inherit broader properties.
saref:hasPropertyKind
owl:propertyChainAxiom ( saref:hasPropertyKind skos:broader ) .
## Features of interest inherit the property kinds of their property of interest.
saref:hasProperty
owl:propertyChainAxiom ( saref:hasPropertyOfInterest saref:hasPropertyKind ) .
# ETSI TS 103264 Clause 5.6.4: Property values
## Class saref:PropertyValue 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).
saref:PropertyValue a owl:Class ;
rdfs:label "Property Value"@en ;
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:subClassOf [ a owl:Restriction ;
owl:onProperty saref:hasValue ;
owl:cardinality 1 ] ,
[ a owl:Restriction ;
owl:onProperty saref:isMeasuredIn ;
owl:maxCardinality 1 ] .
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 .
## The range of saref:isMeasuredIn is defined as saref:UnitOfMeasure.
saref:isMeasuredIn a owl:ObjectProperty ;
rdfs:comment "A relationship identifying the unit of measure used for a certain entity."@en ;
# rdfs:domain saref:Measurement ; # relaxed
rdfs:range saref:UnitOfMeasure ;
rdfs:label "is measured in"@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 "Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM)."@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 .
## The OP saref:hasPropertyValue links a feature kind, a feature of interest, or a property of interest, to a property value.
saref:hasPropertyValue a owl:ObjectProperty ;
rdfs:label "has property value"@en ;
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:range saref:PropertyValue .
## The property values are inherited in the hierarchy of feature kinds. This enables to incrementally construct prototypical descriptions of features of interest.
saref:hasPropertyValue
owl:propertyChainAxiom ( skos:broader saref:hasPropertyValue ) .
## A feature of interest does not inherit the property values of its kinds. There may be multiple reasons why the property value of a feature of interest is different from that of its prototypical descriptions. For example, it may be caused by a defect, a deterioration, or a customization.
## The OP saref:isValueOfProperty links a property value to the properties and properties of interest it is a value of.
saref:isValueOfProperty a owl:ObjectProperty ;
rdfs:label "is value of property"@en ;
rdfs:comment "Links a property value to the property or property of interest it is a value of."@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest saref:PropertyOfInterest ) ] ;
rdfs:range saref:PropertyValue .
## A property value about a property of interest is also a property value of its property kinds.
saref:isValueOfProperty
owl:propertyChainAxiom ( saref:isValueOfProperty saref:hasPropertyKind ) .
## Note that saref:hasPropertyValue and saref:isValueOfProperty are not inverse properties.
# ETSI TS 103264 Clause 5.7: States and states of interest
## In SAREF, states refer to the identifiable conditions that features of interest are or may be in, and that can be acted upon by devices, such as observed and controlled.
# ETSI TS 103264 Clause 5.7.2: States
## An instance of saref:State can apply to different features of interest.
saref:State a owl:Class ;
rdfs:label "State"@en ;
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 ;
skos:example "A switch can be found in the saref:OnOffState, which is further specialized in saref:OnState and saref:OffState."@en ;
skos:note "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 ;
skos:note "Concepts from existing code lists, vocabularies, and taxonomies, may be used as instances of saref:State."@en .
## States can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:State rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:State ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:State ] .
## The OP saref:hasState may be used to link a feature kind to its states. Its inverse is saref:isStateOf.
saref:hasState a owl:ObjectProperty ;
owl:inverseOf saref:isStateOf ;
rdfs:label "has state"@en ;
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 ) ] ;
rdfs:range saref:State .
saref:isStateOf a owl:ObjectProperty ;
owl:inverseOf saref:hasState ;
rdfs:label "is state of"@en ;
rdfs:comment "Links a state to the feature kind or feature of interest it is a state of."@en ;
rdfs:domain saref:State ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest ) ] .
## Feature kinds inherit the states of their broader feature kinds.
saref:hasState
owl:propertyChainAxiom ( skos:broader saref:hasState ) .
## Features of interest inherit the states of their feature kinds.
saref:hasState
owl:propertyChainAxiom ( saref:hasFeatureKind saref:hasState ) .
# ETSI TS 103264 Clause 5.7.3: States of interest
## An instance of saref:StateOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest.
saref:StateOfInterest a owl:Class ;
rdfs:label "State of Interest"@en ;
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 ;
skos:note "A state of interest is the state of (OP saref:isStateOfInterestOf) exactly one feature of interest."@en ;
skos:note "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 ;
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 .
## The OP saref:hasStateOfInterest may be used to link a feature of interest to its states of interest. Its inverse is saref:isStateOfInterestOf and is functional.
saref:hasStateOfInterest a owl:ObjectProperty ;
owl:inverseOf saref:isStateOfInterestOf ;
rdfs:comment "Links a feature of interest to one of its states of interest."@en ;
rdfs:label "has state of interest"@en ;
rdfs:domain saref:FeatureOfInterest ;
rdfs:range saref:StateOfInterest .
saref:isStateOfInterestOf a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:hasStateOfInterest ;
rdfs:comment "Links a state of interest to the feature of interest it is a state of."@en ;
rdfs:label "is state of interest of"@en ;
rdfs:domain saref:StateOfInterest ;
rdfs:range saref:FeatureOfInterest .
## A state of interest is the state of (OP saref:isStateOfInterestOf) exactly one feature of interest.
saref:StateOfInterest
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty saref:isStateOfInterestOf ;
owl:cardinality 1
] .
## A state of interest can be linked to its kind(s) using OP saref:hasStateKind.
saref:hasStateKind a owl:ObjectProperty ;
rdfs:label "has state kind"@en ;
rdfs:comment "links a state of interest to its kind, a state"@en ;
rdfs:domain saref:StateOfInterest ;
rdfs:range saref:State .
## States of interest inherit broader states.
saref:hasStateKind
owl:propertyChainAxiom ( saref:hasStateKind skos:broader ) .
## Features of interest inherit the state kinds of their state of interest.
saref:hasState
owl:propertyChainAxiom ( saref:hasStateOfInterest saref:hasStateKind ) .
## As the narrowest states of the taxonomy of states can be thought of as the state values, it is possible to assign a stable value to a state.
# ETSI TS 103264 Clause 5.8: Functions and functions of interest
## In SAREF, functions are 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. While functions are independent of any devices, functions of interest are functions actually supported by a device.
# ETSI TS 103264 Clause 5.8.2: Functions
## An instance of saref:Function can apply to different features of interest.
saref:Function a owl:Class ;
rdfs:label "Function"@en ;
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 ;
skos:example "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:example "To accomplish the task of sensing the temperature, a temperature sensor should have a sensing function."@en ;
skos:example "To accomplish the task of washing clothes, a washing machine should have a function for washing."@en .
## Deprecated
saref:SensingFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:EventFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:MeteringFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:LevelControlFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:StartStopFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:OpenCloseFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:OnOffFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
saref:ActuatingFunction a owl:Class ;
rdfs:subClassOf saref:Function ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Function in the next major revision of SAREF"@en .
## Functions can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:Function rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:Function ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:Function ] .
## The OP saref:hasFunction may be used to link a feature kind or device to its functions. Its inverse is saref:isFunctionOf.
saref:hasFunction a owl:ObjectProperty ;
owl:inverseOf saref:isFunctionOf ;
rdfs:label "has function"@en ;
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:Device ) ] ;
rdfs:range saref:Function .
saref:isFunctionOf a owl:ObjectProperty ;
owl:inverseOf saref:hasFunction ;
rdfs:label "is function of"@en ;
rdfs:comment "Links a function to the feature kind or device it is a function of."@en ;
rdfs:domain saref:Function ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:Device ) ] .
## Feature kinds inherit the functions of their broader feature kinds.
saref:hasFunction
owl:propertyChainAxiom ( skos:broader saref:hasFunction ) .
## Devices inherit the functions of their device kinds.
saref:hasFunction
owl:propertyChainAxiom ( saref:hasDeviceKind saref:hasFunction ) .
# ETSI TS 103264 Clause 5.7.3: Functions of interest
## An instance of saref:FunctionOfInterest is supported by exactly one device.
saref:FunctionOfInterest a owl:Class ;
rdfs:label "Function of Interest"@en ;
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 ;
skos:note "A function of interest is the function of (OP saref:isFunctionOfInterestOf) exactly one device."@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 .
## The OP saref:hasFunctionOfInterest may be used to link a feature of interest to its functions of interest. Its inverse is saref:isFunctionOfInterestOf and is functional.
saref:hasFunctionOfInterest a owl:ObjectProperty ;
owl:inverseOf saref:isFunctionOfInterestOf ;
rdfs:comment "Links a device to one of its functions of interest."@en ;
rdfs:label "has function of interest"@en ;
rdfs:domain saref:Device ;
rdfs:range saref:FunctionOfInterest .
saref:isFunctionOfInterestOf a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:hasFunctionOfInterest ;
rdfs:comment "Links a function of interest to the device it is a function of."@en ;
rdfs:label "is function of interest of"@en ;
rdfs:domain saref:FunctionOfInterest ;
rdfs:range saref:Device .
## A function of interest is the function of (OP saref:isFunctionOfInterestOf) exactly one device.
saref:FunctionOfInterest
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty saref:isFunctionOfInterestOf ;
owl:cardinality 1
] .
## A function of interest can be linked to its kind(s) using OP saref:hasFunctionKind.
saref:hasFunctionKind a owl:ObjectProperty ;
rdfs:label "has function kind"@en ;
rdfs:comment "links a function of interest to its kind, a function"@en ;
rdfs:domain saref:FunctionOfInterest ;
rdfs:range saref:Function .
## Functions of interest inherit broader functions.
saref:hasFunctionKind
owl:propertyChainAxiom ( saref:hasFunctionKind skos:broader ) .
## Devices inherit the function kinds of their function of interest.
saref:hasFunction
owl:propertyChainAxiom ( saref:hasFunctionOfInterest saref:hasFunctionKind ) .
# ETSI TS 103264 Clause 5.9: Commands and device commands
## In SAREF, commands represent 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. While commands are independent of any function, commands of interest are commands actually supported by a function of interest.
# ETSI TS 103264 Clause 5.9.2: Commands
## An instance of saref:Command is independent of any device.
saref:Command a owl:Class ;
rdfs:label "Command"@en ;
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 ;
skos:example "Measure property, control property, observe state, control state, invoke action, cancel action, turn on or off, change color, subscribe, publish, etc. are all commands."@en .
## Commands can be organized in a taxonomy using OPs skos:narrower and skos:broader.
saref:Command rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty skos:broader ;
owl:allValuesFrom saref:Command ] ,
[ a owl:Restriction ;
owl:onProperty skos:narrower ;
owl:allValuesFrom saref:Command ] .
## The OP saref:hasCommand may be used to link a function or function of interest to its commands. Its inverse is saref:isCommandOf. SAREF Core defines two sub-properties of saref:hasCommand:
## - saref:hasMandatoryCommand for when the command is mandatory to the function,
## - saref:hasOptionalCommand for when the command is optional to the function.
saref:hasCommand a owl:ObjectProperty ;
owl:inverseOf saref:isCommandOf ;
rdfs:label "has command"@en ;
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:range saref:Command .
saref:isCommandOf a owl:ObjectProperty ;
owl:inverseOf saref:hasCommand ;
rdfs:label "is command of"@en ;
rdfs:comment "Links a command and a function or function of interest that supports it."@en ;
rdfs:domain saref:Command ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:Function saref:FunctionOfInterest ) ] .
saref:hasMandatoryCommand a owl:ObjectProperty ;
owl:subPropertyOf saref:hasCommand ;
rdfs:label "has mandatory command"@en ;
rdfs:comment "Links a function and one of its mandatory commands"@en ;
rdfs:domain saref:Function .
saref:hasOptionalCommand a owl:ObjectProperty ;
owl:subPropertyOf saref:hasCommand ;
rdfs:label "has optional command"@en ;
rdfs:comment "Links a function and one of its optional commands"@en ;
rdfs:domain saref:Function .
## Functions inherit the mandatory commands of their broader functions.
saref:hasMandatoryCommand
owl:propertyChainAxiom ( skos:broader saref:hasMandatoryCommand ) .
## Features of interest inherit the commands of their feature kinds.
saref:hasCommand
owl:propertyChainAxiom ( saref:hasFeatureKind saref:hasMandatoryCommand ) .
## A command may be described in terms of its input parameters using OP saref:hasInput. Typically, input parameters are feature kinds, properties, or states.
saref:hasInput a owl:ObjectProperty ;
rdfs:label "has input"@en ;
rdfs:comment "Links a command to one of its input parameters."@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:Command saref:CommandOfInterest saref:Operation ) ] ;
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 .
## A command may be described in terms of its outputs using OP saref:hasOutput. Typically, outputs are properties or states.
saref:hasOutput a owl:ObjectProperty ;
rdfs:label "has output"@en ;
rdfs:comment "Links a command to one of its output parameters."@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:Command saref:CommandOfInterest saref:Operation ) ] ;
skos:example "Different complementary commands can be defined for measuring and observing a smart home. Measure the temperature once will output the indoor temperature property; observe status of the entry door will output an open/close state."@en .
# ETSI TS 103264 Clause 5.9.3: Commands of Interest
## A saref:CommandOfInterest is a directives actually exposed by a device function.
saref:CommandOfInterest a owl:Class ;
rdfs:label "Command Of Interest"@en ;
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 ;
skos:note "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 ;
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 ;
skos:example "The corridor smart light switch supports a command of kind “turn on/off”, which controls the state of the outdoor light."@en ;
skos:example "The smart fridge supports a command of kind “measure temperature”, which measures the temperature of the fridge."@en .
## The OP saref:hasCommandOfInterest may be used to link a function of interest to its command of interest. Its inverse is saref:isCommandOfInterestOf and is functional.
saref:hasCommandOfInterest a owl:ObjectProperty ;
owl:inverseOf saref:isCommandOfInterestOf ;
rdfs:comment "Links a function of interest to one of its commands of interest."@en ;
rdfs:label "has command of interest"@en ;
rdfs:domain saref:FunctionOfInterest ;
rdfs:range saref:CommandOfInterest .
saref:isCommandOfInterestOf a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:hasCommandOfInterest ;
rdfs:comment "Links a command of interest to the function of interest it is a command of."@en ;
rdfs:label "is command of interest of"@en ;
rdfs:domain saref:CommandOfInterest ;
rdfs:range saref:FeatureOfInterest .
## A command of interest is the command of (OP saref:isCommandOfInterestOf) exactly one function of interest.
saref:CommandOfInterest
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty saref:isCommandOfInterestOf ;
owl:cardinality 1
] .
## A command of interest is the command of (OP saref:isCommandOfInterestOf) exactly one function.
saref:CommandOfInterest
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty saref:isCommandOfInterestOf ;
owl:cardinality 1
] .
## A command of interest can be linked to its kind(s) using OP saref:hasCommandKind.
saref:hasCommandKind a owl:ObjectProperty ;
rdfs:label "has command kind"@en ;
rdfs:comment "links a command of interest to its kind, a command."@en ;
rdfs:domain saref:CommandOfInterest ;
rdfs:range saref:Command .
## Commands of interests inherit broader commands.
saref:hasCommandKind
owl:propertyChainAxiom ( saref:hasCommandKind skos:broader ) .
## Functions inherit the command kinds of their command of interest.
saref:hasCommand
owl:propertyChainAxiom ( saref:hasCommandOfInterest saref:hasCommandKind ) .
## Deprecated
saref:ToggleCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:GetCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:NotifyCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:GetSensingDataCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:GetCurrentMeterValueCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:GetMeterDataCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:GetMeterHistoryCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:SetAbsoluteLevelCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:SetRelativeLevelCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:SetLevelCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:StepDownCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:StepUpCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:PauseCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:StartCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:StopCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:CloseCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:OpenCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:OnCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:OffCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
owl:deprecated true ;
skos:note "DEPRECATED: may be defined as an instance of saref:Command in the next major revision of SAREF"@en .
saref:ProcedureExecution a owl:Class .
# ETSI TS 103264 Clause 5.10: Services and Operations
## A saref:Service is a digital representation of a function in a network, making it discoverable, registerable and remotely controllable in the network.
saref:Service a owl:Class ;
rdfs:label "Service"@en ;
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 ;
skos:note "Typically, a device connected to a given network offers one service for each of its functions of interest."@en ;
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 .
## OP saref:represents links a service to some function or function of interest it exposes to the network.
saref:represents a owl:ObjectProperty ;
rdfs:label "represents"@en ;
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:range [ a owl:Class ; owl:unionOf ( saref:Function saref:FunctionOfInterest saref:Command saref:CommandOfInterest ) ] .
saref:Service
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:represents ;
owl:allValuesFrom [ a owl:Class ; owl:unionOf ( saref:Function saref:FunctionOfInterest ) ]
] .
## A service represents at least one function of interest.
saref:Service
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:represents ;
owl:onClass saref:FunctionOfInterest ;
owl:minQualifiedCardinality 1
] .
## OP saref:offers links a device to a service it exposes to a network. Its inverse if saref:isOfferedBy.
saref:offers a owl:ObjectProperty ;
owl:inverseOf saref:isOfferedBy ;
rdfs:label "offers"@en ;
rdfs:comment "Links a device to a service it exposes to a network."@en ;
rdfs:domain saref:Device ;
rdfs:range saref:Service .
saref:isOfferedBy a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:offers ;
rdfs:label "is offered by"@en ;
rdfs:comment "Links a service to the device that exposes it to a network"@en ;
rdfs:domain saref:Service ;
rdfs:range saref:Device .
## A service is offered by exactly one device.
saref:Service
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:isOfferedBy ;
owl:cardinality 1
] .
## 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.
saref:Operation a owl:Class ;
rdfs:label "Operation"@en ;
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 ;
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 ;
skos:example "To turn on a light, send a CoAP PUT request with CBOR content 0xf5 (true)"@en ;
skos:example "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:example "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 .
## OP saref:represents also links an operation to some command or command of interest it exposes to the network.
saref:Operation
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:represents ;
owl:allValuesFrom [ a owl:Class ; owl:unionOf ( saref:Command saref:CommandOfInterest ) ]
] .
## An operation represents at least one command of interest.
saref:Operation
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:represents ;
owl:onClass saref:CommandOfInterest ;
owl:minQualifiedCardinality 1
] .
## OP saref:hasOperation links a service to its operations. Its inverse is saref:isOperationOf.
saref:hasOperation a owl:ObjectProperty ;
owl:inverseOf saref:isOperationOf ;
rdfs:label "has operation"@en ;
rdfs:comment "Links a service to one of its operations."@en ;
rdfs:domain saref:Service ;
rdfs:range saref:Operation .
saref:isOperationOf a owl:ObjectProperty , owl:FunctionalProperty ;
owl:inverseOf saref:hasOperation ;
rdfs:label "is operation of"@en ;
rdfs:comment "Links an operation to the service it belongs to."@en ;
rdfs:domain saref:Operation ;
rdfs:range saref:Service .
## An operation belongs to exactly one service.
saref:Operation
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty saref:isOperationOf ;
owl:cardinality 1
] .
# # ETSI TS 103264 Clause 5.11: Procedure executions
# saref:FeatureOfInterest
# rdfs:subClassOf [ a owl:Restriction ;
# owl:onProperty saref:hasMeasurement ;
# owl:allValuesFrom saref:Measurement
# ] .
# saref:hasTimestamp a owl:DatatypeProperty ;
# rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ;
# rdfs:label "has timestamp"@en .
# saref:Measurement a owl:Class ;
# rdfs:subClassOf [ a owl:Restriction ;
# owl:onProperty saref:isMeasurementOf ;
# owl:allValuesFrom saref:FeatureOfInterest
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:isMeasuredIn ;
# owl:allValuesFrom saref:UnitOfMeasure
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:relatesToProperty ;
# owl:allValuesFrom saref:Property
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:isMeasuredIn ;
# owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
# owl:onClass saref:UnitOfMeasure
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:relatesToProperty ;
# owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
# owl:onClass saref:Property
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasTimestamp ;
# owl:allValuesFrom xsd:dateTime
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasValue ;
# owl:cardinality "1"^^xsd:nonNegativeInteger
# ] ;
# 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 .
# saref:hasMeasurement a owl:ObjectProperty ;
# rdfs:comment "Links a feature of interest and a measurement about it"@en ;
# rdfs:domain saref:FeatureOfInterest ;
# rdfs:range saref:Measurement ;
# rdfs:label "has measurement"@en .
# saref:isMeasurementOf a owl:ObjectProperty ;
# owl:inverseOf saref:hasMeasurement ;
# rdfs:comment "Links a measurement and the feature of interest whose quality was measured"@en ;
# rdfs:domain saref:Measurement ;
# rdfs:range saref:FeatureOfInterest ;
# rdfs:label "isMeasurementOf"@en .
# saref:makesMeasurement a owl:ObjectProperty ;
# owl:inverseOf saref:measurementMadeBy ;
# 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 ;
# rdfs:label "makes measurement"@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:range saref:Device ;
# rdfs:label "measurement made by"@en .
# saref:relatesToMeasurement a owl:ObjectProperty ;
# rdfs:comment "Links a property and the measurements it relates to"@en ;
# rdfs:domain saref:Property ;
# rdfs:range saref:Measurement ;
# rdfs:label "relates to measurement"@en .
# saref:relatesToProperty a owl:ObjectProperty ;
# owl:inverseOf saref:relatesToMeasurement ;
# rdfs:comment "Links a measurement and the property it relates to"@en ;
# rdfs:domain saref:Measurement ;
# rdfs:range saref:Property ;
# rdfs:label "relates to property"@en .
# # ETSI TS 103264 Clause 5.12: Profiles
# saref:Profile a owl:Class ;
# rdfs:subClassOf [ a owl:Restriction ;
# owl:onProperty saref:consistsOf ;
# owl:allValuesFrom saref:Profile
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasPrice ;
# owl:allValuesFrom saref:Price
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasTime ;
# owl:allValuesFrom saref:Time
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:isAbout ;
# owl:allValuesFrom [ a owl:Class ; owl:unionOf ( saref:Commodity saref:Property ) ]
# ] ;
# 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 ;
# rdfs:label "Profile"@en .
# saref:hasProfile a owl:ObjectProperty ;
# rdfs:comment "A relationship associating a profile to a certain device"@en ;
# rdfs:domain saref:Device ;
# rdfs:range saref:Profile ;
# rdfs:label "has profile"@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 .
# # Deprecated
# saref:hasSensingRange a owl:ObjectProperty ;
# rdfs:comment "Links a sensing function and a measurement identifying the range of a sensor detection"@en ;
# rdfs:domain saref:SensingFunction ;
# rdfs:range saref:Measurement ;
# rdfs:label "has sensing range"@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:range saref:Property ;
# rdfs:label "has sensor type"@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 .
# saref:hasTime a owl:ObjectProperty ;
# rdfs:comment "A relationship to associate time information to an entity"@en ;
# rdfs:range saref:Time ;
# rdfs:label "has time"@en .
# saref:Time a owl:Class ;
# owl:deprecated true ;
# rdfs:comment "A class that allows to specify the time concept."@en ;
# rdfs:label "Time"@en .
# # Example related to sensors
# saref:Sensor a owl:Class ;
# rdfs:subClassOf saref:Device ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:SensingFunction
# ] ;
# 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:label "Sensor"@en .
# # Example related to events
# # Example related to meters
# saref:Meter a owl:Class ;
# rdfs:subClassOf saref:Device ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:MeteringFunction
# ] ;
# 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:label "Meter"@en .
# saref:hasMeterReading a owl:ObjectProperty ;
# rdfs:comment "Links a metering function and the measurement of the reading"@en ;
# rdfs:domain saref:MeteringFunction ;
# rdfs:range saref:Measurement ;
# rdfs:label "has meter reading"@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:range saref:Property ;
# rdfs:label "has meter reading type"@en .
# # Example related to level control
# saref:MultiLevelState a owl:Class ;
# rdfs:subClassOf saref:State ;
# rdfs:comment "A type of state"@en ;
# rdfs:label "Multi level state"@en .
# # Example related to smoke
# saref:Smoke a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:SmokeSensor a owl:Class ;
# rdfs:subClassOf saref:Sensor ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:EventFunction
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:SensingFunction
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:measuresProperty ;
# owl:someValuesFrom saref:Smoke
# ] ;
# 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 .
# # Example related to start/stop/pause
# saref:StartState a owl:Class ;
# rdfs:subClassOf saref:StartStopState ;
# rdfs:comment "The state of a device that is STARTED"@en ;
# rdfs:label "Start state"@en .
# saref:StartStopState a owl:Class ;
# rdfs:subClassOf saref:State ;
# rdfs:comment "A type of state"@en ;
# rdfs:label "Start stop state"@en .
# saref:StopState a owl:Class ;
# rdfs:subClassOf saref:StartStopState ;
# rdfs:comment "The state of a device that is STOPPED"@en ;
# rdfs:label "Stop state"@en .
# # Example related to open/close
# saref:CloseState a owl:Class ;
# rdfs:subClassOf saref:OpenCloseState ;
# rdfs:comment "The state of a device that is CLOSE"@en ;
# rdfs:label "Close state"@en .
# saref:OpenCloseState a owl:Class ;
# rdfs:subClassOf saref:State ;
# rdfs:comment "A type of state"@en ;
# rdfs:label "Open close state"@en .
# saref:OpenState a owl:Class ;
# rdfs:subClassOf saref:OpenCloseState ;
# rdfs:comment "The state of a device that is OPEN "@en ;
# rdfs:label "Open state"@en .
# # Example related to on/off
# saref:OffState a owl:Class ;
# rdfs:subClassOf saref:OnOffState ;
# rdfs:comment "The state of a device that is Off"@en ;
# rdfs:label "Off state"@en .
# saref:OnOffState a owl:Class ;
# rdfs:subClassOf saref:State ;
# rdfs:comment "A type of state"@en ;
# rdfs:label "On off state"@en .
# saref:OnState a owl:Class ;
# rdfs:subClassOf saref:OnOffState ;
# rdfs:comment "The state of a device that is On"@en ;
# rdfs:label "On state"@en .
# # Example related to motion
# saref:Motion a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# # Example related to occupancy
# saref:Occupancy a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# # Example related to switch
# saref:Switch a owl:Class ;
# rdfs:subClassOf saref:Actuator ;
# 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 .
# saref:SwitchOnService a owl:Class ;
# rdfs:subClassOf saref:Service ,
# [ a owl:Restriction ;
# owl:onProperty saref:isOfferedBy ;
# owl:someValuesFrom saref:LightSwitch
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:represents ;
# owl:someValuesFrom saref:OnOffFunction
# ] ;
# rdfs:comment "A type of service that represents an on/off function to the network"@en ;
# rdfs:label "Switch on service"@en .
# # Example related to energy and power
# saref:Energy a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:EnergyUnit a owl:Class ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The unit of measure for energy"@en ;
# rdfs:label "Energy unit"@en .
# saref:Power a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:PowerUnit a owl:Class ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The unit of measure for power"@en ;
# rdfs:label "Power unit"@en .
# # Example related to pressure
# saref:Pressure a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:PressureUnit a owl:Class ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The unit of measure for pressure"@en ;
# rdfs:label "Pressure unit"@en .
# # Example related to price
# saref:hasPrice a owl:ObjectProperty ;
# rdfs:comment "A relationship indentifying the price associated to an entity"@en ;
# rdfs:range saref:Price ;
# rdfs:label "has price"@en .
# saref:Price a owl:Class ;
# rdfs:subClassOf saref:Property ;
# rdfs:comment "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 .
# saref:Currency a owl:Class ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The class of units of measure for price"@en ;
# rdfs:label "Currency"@en .
# # Example related to temperature
# saref:Temperature a owl:Class ;
# owl:deprecated true ;
# skos:note "In future major revision of SAREF, this entity will be a named individual, instance of saref:Property."@en ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:TemperatureSensor a owl:Class ;
# rdfs:subClassOf saref:Sensor ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:SensingFunction
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:measuresProperty ;
# owl:someValuesFrom saref:Temperature
# ] ;
# 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 .
# saref:TemperatureUnit a owl:Class ;
# owl:deprecated true ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The unit of measure for temperature"@en ;
# rdfs:label "Temperature unit"@en .
# # Example related to humidity
# saref:Humidity a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# # Example related to Actuator
# saref:Actuator a owl:Class ;
# rdfs:subClassOf saref:Device ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:ActuatingFunction
# ] ;
# rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function"@en ;
# rdfs:label "Actuator"@en .
# # Example related to Appliance
# # Example related to HVAC
# saref:HVAC a owl:Class ;
# rdfs:subClassOf saref:Device ;
# 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 .
# # Example related to light switch
# saref:IlluminanceUnit a owl:Class ;
# rdfs:subClassOf saref:UnitOfMeasure ;
# rdfs:comment "The unit of measure for light"@en ;
# rdfs:label "Illuminance unit"@en .
# saref:Light a owl:Class ;
# rdfs:subClassOf saref:Property ;
# 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 .
# saref:LightSwitch a owl:Class ;
# rdfs:subClassOf saref:Switch ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:OnOffFunction
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasState ;
# owl:someValuesFrom saref:OnOffState
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:controlsProperty ;
# owl:someValuesFrom saref:Light
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:offers ;
# owl:someValuesFrom saref:SwitchOnService
# ] ;
# 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 .
# # Example related to door switch
# saref:DoorSwitch a owl:Class ;
# rdfs:subClassOf saref:Switch ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasFunction ;
# owl:someValuesFrom saref:OpenCloseFunction
# ] ,
# [ a owl:Restriction ;
# owl:onProperty saref:hasState ;
# owl:someValuesFrom saref:OpenCloseState
# ] ;
# 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 .
# # NEW
# saref:hasIdentifier a owl:DatatypeProperty ;
# skos:note "See https://labs.etsi.org/rep/saref/saref-portal/-/issues/2" .