Newer
Older
Raul Garcia-Castro
committed
@prefix : <https://saref.etsi.org/core/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
Raul Garcia-Castro
committed
@prefix saref: <https://saref.etsi.org/core/> .
Raul Garcia-Castro
committed
@base <https://saref.etsi.org/core/> .
<https://saref.etsi.org/core/> a owl:Ontology ;
owl:versionInfo "v3.2.1" ;
owl:versionIRI <https://saref.etsi.org/core/v3.2.1/> ;
dcterms:issued "2023-12-31"^^xsd:date ;
dcterms:modified "2020-12-31"^^xsd:date ;
dcterms:title "SAREF: the Smart Applications REFerence ontology"@en ;
Raul Garcia-Castro
committed
dcterms:publisher <https://www.etsi.org/> ;
Raul Garcia-Castro
committed
dcterms:license <https://forge.etsi.org/etsi-software-license> ;
dcterms:creator <https://www.linkedin.com/in/lauradaniele> ;
dcterms:creator <http://www.garcia-castro.com/foaf.rdf#me> ;
dcterms:creator <https://w3id.org/people/mpoveda/> ;
dcterms:creator <http://maxime-lefrancois.info/me#> ;
dcterms:source <https://saref.etsi.org/sources/saref-core/> ;
rdfs:seeAlso <https://www.etsi.org/deliver/etsi_ts/103200_103299/103264/03.02.01_60/ts_103264v030201p.pdf> ;
vann:preferredNamespaceUri "https://saref.etsi.org/core/" ;
Raul Garcia-Castro
committed
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
""" ;
Raul Garcia-Castro
committed
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.
Raul Garcia-Castro
committed
- 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 .
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# ETSI TS 103264 Clause 5.2: Feature kinds and features of interest
saref:FeatureOfInterest a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:hasProperty ;
owl:allValuesFrom saref:Property
] ;
rdfs:comment "A feature of interest represents any real world entity from which a property is measured."@en ;
rdfs:label "Feature of interest"@en .
saref:consistsOf a owl:ObjectProperty ;
rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"@en ;
rdfs:label "consists of"@en .
saref:hasDescription a owl:DatatypeProperty ;
owl:deprecated "true"^^xsd:boolean ;
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 ;
rdfs:label "has description"@en .
saref:hasManufacturer a owl:DatatypeProperty ;
rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ;
rdfs:label "has manufacturer"@en .
saref:hasModel a owl:DatatypeProperty ;
rdfs:comment "A relationship identifying the model of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ;
rdfs:label "has model"@en .
# ETSI TS 103264 Clause 5.3: Devices
saref:Device a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:consistsOf ;
owl:allValuesFrom saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:controlsProperty ;
owl:allValuesFrom saref:Property
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasProfile ;
owl:allValuesFrom saref:Profile
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasState ;
owl:allValuesFrom saref:State
] ,
[ a owl:Restriction ;
owl:onProperty saref:isUsedFor ;
owl:allValuesFrom saref:Commodity
] ,
[ a owl:Restriction ;
owl:onProperty saref:makesMeasurement ;
owl:allValuesFrom saref:Measurement
] ,
[ a owl:Restriction ;
owl:onProperty saref:measuresProperty ;
owl:allValuesFrom saref:Property
] ,
[ a owl:Restriction ;
owl:onProperty saref:offers ;
owl:allValuesFrom saref:Service
] ,
[ a owl:Restriction ;
owl:onProperty saref:accomplishes ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Task
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasFunction ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Function
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasManufacturer ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasModel ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger
] ;
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 ;
rdfs:label "Device"@en .
saref:actsUpon a owl:ObjectProperty ;
rdfs:comment "Links a device, function, command, or command execution, to the feature, property, or state, it acts upon."@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:Device saref:Function saref:Command saref:CommandExecution ) ] ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:FeatureKind saref:FeatureOfInterest saref:Property saref:PropertyOfInterest saref:State saref:StateOfInterest ) ] ;
rdfs:label "acts upon"@en .
saref:measures a owl:ObjectProperty ;
rdfs:subPropertyOf saref:actsUpon ;
rdfs:comment "Links a device, function, command, or command execution, to the feature, property, or state, it measures."@en ;
rdfs:label "measures"@en .
saref:measuresProperty a owl:ObjectProperty ;
owl:deprecated true ;
skos:note "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 rdf:type owl:ObjectProperty ;
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:controls a owl:ObjectProperty ;
rdfs:subPropertyOf saref:actsUpon ;
rdfs:comment "Links a device, function, command, or command execution, to the feature, property, or state, it controls."@en ;
rdfs:label "controls"@en .
saref:isControlledByDevice rdf:type owl:ObjectProperty ;
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 ;
owl:deprecated true ;
skos:note "Will be deleted in the next major revision of SAREF"@en ;
rdfs:subPropertyOf saref:controls ;
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:Appliance a owl:Class ;
rdfs:subClassOf saref:Device ;
rdfs:comment "An electrical/mechanical machine that accomplish some household functions, such as cleaning or cooking"@en ;
rdfs:label "Appliance"@en .
# ETSI TS 103264 Clause 5.4: Tasks
saref:Task a owl:Class ;
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 ;
rdfs:label "Task"@en .
saref:Cleaning a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Cleaning"@en .
saref:Comfort a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Comfort"@en .
saref:Drying a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Drying"@en .
saref:EnergyEfficiency a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "EnergyEfficiency"@en .
saref:Entertainment a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Entertainment"@en .
saref:Lighting a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Lighting"@en .
saref:MeterReading a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Meter reading"@en .
saref:Safety a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Safety"@en .
saref:Washing a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "Washing"@en .
saref:WellBeing a saref:Task ;
rdfs:comment "A type of task for which a device is designed"@en ;
rdfs:label "WellBeing"@en .
# ETSI TS 103264 Clause 5.5: Commodities
saref:Commodity a owl:Class ;
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 ;
rdfs:label "Commodity"@en .
saref:isUsedFor rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship specifying the commodity for which a device is used for"@en ;
rdfs:label "is used for"@en .
saref:accomplishes a owl:ObjectProperty ;
owl:inverseOf saref:isAccomplishedBy ;
rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"@en ;
rdfs:range saref:Task ;
rdfs:label "accomplishes"@en .
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
saref:isAccomplishedBy rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship identifying an entity (e.g., a device) that can accomplish a task."@en ;
rdfs:domain saref:Task ;
rdfs:label "is accomplished by"@en .
saref:Coal a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Coal"@en .
saref:Electricity a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Electricity"@en .
saref:Gas a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Gas"@en .
saref:Water a owl:Class ;
rdfs:subClassOf saref:Commodity ;
rdfs:comment "A type of commodity"@en ;
rdfs:label "Water"@en .
# ETSI TS 103264 Clause 5.6: Properties, properties of interest, and property values
# ETSI TS 103264 Clause 5.6.2: Properties
saref:Property a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:isControlledByDevice ;
owl:allValuesFrom saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:isMeasuredByDevice ;
owl:allValuesFrom saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:isPropertyOf ;
owl:allValuesFrom saref:FeatureOfInterest
] ,
[ a owl:Restriction ;
owl:onProperty saref:relatesToMeasurement ;
owl:allValuesFrom saref:Measurement
] ;
rdfs:comment "The class of quantifiable qualities of features of interest that can be acted upon, such as measured and controlled. An instance of saref:Property can apply to different features of interest."@en ;
skos:note "Until SAREF V3.1.1, there was a confusion 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 "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.
<https://qudt.org/2.1/vocab/quantitykind/ActiveEnergy> a saref:Property ;
rdfs:label "Active Energy"@en ;
rdfs:comment “\"Active Energy\" is the electrical energy transformable into some other form of energy."@en .
<http://vocab.nerc.ac.uk/collection/P01/current/CDTSZZ01/> a saref:Property ;
skos:prefLabel "Absolute temperature standard deviation of the atmosphere by dry bulb thermometer"@en .
"""@en ;
rdfs:label "Property"@en .
saref:hasProperty rdf:type owl:ObjectProperty ;
owl:inverseOf saref:isPropertyOf ;
rdfs:comment "A relationship between a feature of interest and a property of that feature"@en ;
rdfs:domain saref:FeatureOfInterest ;
rdfs:range [ a owl:Class ; owl:unionOf ( saref:Property saref:PropertyOfInterest ) ] ;
rdfs:label "has property"@en .
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
saref:isPropertyOf rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship between a property and the feature of interest it belongs to"@en ;
rdfs:domain [ a owl:Class ; owl:unionOf ( saref:Property saref:PropertyOfInterest ) ] ;
rdfs:range saref:FeatureOfInterest ;
rdfs:label "is property of"@en .
# ETSI TS 103264 Clause 5.6.3: Properties of interest
saref:PropertyOfInterest a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:isControlledByDevice ;
owl:allValuesFrom saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:isMeasuredByDevice ;
owl:allValuesFrom saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:isPropertyOf ;
owl:allValuesFrom saref:FeatureOfInterest
] ,
[ a owl:Restriction ;
owl:onProperty saref:isPropertyOf ;
owl:onClass saref:FeatureOfInterest ;
owl:cardinality 1
] ,
[ a owl:Restriction ;
owl:onProperty saref:relatesToMeasurement ;
owl:allValuesFrom saref:Measurement
] ;
rdfs:comment "The class of quantifiable qualities of features of interest that can be acted upon, such as measured and 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:isPropertyOf) 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.
<etsi_premises/athena#luminance> a saref:PropertyOfInterest ;
saref:isPropertyOf <etsi_premises/athena> ;
saref:hasKind 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."""@en ;
rdfs:label "Property of Interest"@en .
# ETSI TS 103264 Clause 5.6.4: Property values
saref:hasValue a owl:DatatypeProperty ;
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:label "has value"@en .
saref:UnitOfMeasure a owl:Class ;
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 ;
rdfs:label "Unit of measure"@en .
# ETSI TS 103264 Clause 5.7: States and states of interest
saref:State a owl:Class ;
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 ;
rdfs:label "State"@en .
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
rdfs:comment "A relationship identifying the type of state of a device"@en ;
rdfs:domain saref:Device ;
rdfs:range saref:State ;
rdfs:label "has state"@en .
# ETSI TS 103264 Clause 5.8: Commands and device commands
saref:Command a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:allValuesFrom saref:State
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Function
] ;
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 ;
rdfs:label "Command"@en .
saref:ToggleCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:OnOffFunction
] ;
rdfs:comment "A type of command"@en ;
rdfs:label "Toggle command"@en .
saref:GetCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
rdfs:comment "A type of command"@en ;
rdfs:label "Get command"@en .
# ETSI TS 103264 Clause 5.9: Functions and device functions
saref:Function a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:hasCommand ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Command
] ;
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 ;
rdfs:label "Function"@en .
saref:hasFunction a owl:ObjectProperty ;
rdfs:comment "A relationship identifying the function of a device"@en ;
rdfs:domain saref:Device ;
rdfs:range saref:Function ;
rdfs:label "has function"@en .
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
rdfs:comment "A relationship between a command and a function."@en ;
rdfs:domain saref:Command ;
rdfs:range saref:Function ;
rdfs:label "is command of"@en .
saref:hasCommand a owl:ObjectProperty ;
owl:inverseOf saref:isCommandOf ;
rdfs:comment "A relationship between a function and a command"@en ;
rdfs:domain saref:Function ;
rdfs:range saref:Command ;
rdfs:label "has command"@en .
# ETSI TS 103264 Clause 5.10: Services and Operations
saref:Service a owl:Class ;
rdfs:subClassOf [ a owl:Restriction ;
owl:onProperty saref:isOfferedBy ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Device
] ,
[ a owl:Restriction ;
owl:onProperty saref:represents ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Function
] ;
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 ;
rdfs:label "Service"@en .
saref:offers a owl:ObjectProperty ;
rdfs:comment "A relationship between a device and a service"@en ;
rdfs:domain saref:Device ;
rdfs:range saref:Service ;
rdfs:label "offers"@en .
owl:inverseOf saref:offers ;
rdfs:comment "A relationship between a service and a device that offers the service"@en ;
rdfs:domain saref:Service ;
rdfs:range saref:Device ;
rdfs:label "is offered by"@en .
saref:represents a owl:ObjectProperty ;
rdfs:comment "A relationship between a service and a function."@en ;
rdfs:domain saref:Service ;
rdfs:range saref:Function ;
rdfs:label "represents"@en .
# 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 .
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
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 rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship between a feature of interest and a measurement about it"@en ;
rdfs:domain saref:FeatureOfInterest ;
rdfs:range saref:Measurement ;
rdfs:label "has measurement"@en .
saref:isMeasuredIn rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship identifying the unit of measure used for a certain entity."@en ;
rdfs:domain saref:Measurement ;
rdfs:range saref:UnitOfMeasure ;
rdfs:label "is measured in"@en .
saref:isMeasurementOf rdf:type owl:ObjectProperty ;
owl:inverseOf saref:hasMeasurement ;
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 ;
rdfs:label "isMeasurementOf"@en .
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
saref:makesMeasurement rdf:type 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 "A relationship between 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 "A relationship between 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 rdf:type 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 rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship identifying what an entity, such as a profile, is about"@en ;
rdfs:label "isAbout"@en .
saref:hasSensingRange rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship between a sensing function and a measurement identifying the range of a sensor detection"@en ;
rdfs:domain saref:SensingFunction ;
rdfs:range saref:Measurement ;
rdfs:label "has sensing range"@en .
saref:hasSensorType rdf:type 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 rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship identifying the typical (energy or power) consumption of a device"@en ;
rdfs:label "has typical consumption"@en .
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
saref:hasTime rdf:type 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 .
saref:SensingFunction a owl:Class ;
rdfs:subClassOf saref:Function ,
[ a owl:Restriction ;
owl:onProperty saref:hasSensingRange ;
owl:someValuesFrom saref:Measurement
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasSensorType ;
owl:allValuesFrom saref:Property
] ;
rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)"@en ;
rdfs:label "Sensing function"@en .
saref:GetSensingDataCommand a owl:Class ;
rdfs:subClassOf saref:GetCommand ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:SensingFunction
] ;
rdfs:comment "A type of get command"@en ;
rdfs:label "Get sensing data command"@en .
# Example related to events
saref:EventFunction a owl:Class ;
rdfs:subClassOf saref:Function ,
[ a owl:Restriction ;
owl:onProperty saref:hasThresholdMeasurement ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass saref:Measurement
] ;
rdfs:comment "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved."@en ;
rdfs:label "Event function"@en .
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
saref:hasThresholdMeasurement rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship associated with an event function to notify that a certain threshold measurement has been exceeded"@en ;
rdfs:domain saref:EventFunction ;
rdfs:range saref:Measurement ;
rdfs:label "has threshold measurement"@en .
# 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:MeteringFunction a owl:Class ;
rdfs:subClassOf saref:Function ,
[ a owl:Restriction ;
owl:onProperty saref:hasMeterReading ;
owl:allValuesFrom saref:Measurement
] ,
[ a owl:Restriction ;
owl:onProperty saref:hasMeterReadingType ;
owl:allValuesFrom [ a owl:Class ; owl:unionOf ( saref:Commodity saref:Property ) ]
] ;
rdfs:comment "A function that allows to get data from a meter, such as current meter reading or instantaneous demand"@en ;
rdfs:label "Metering function"@en .
saref:hasMeterReading rdf:type owl:ObjectProperty ;
rdfs:comment "A relationship between a metering function and the measurement of the reading"@en ;
rdfs:domain saref:MeteringFunction ;
rdfs:range saref:Measurement ;
rdfs:label "has meter reading"@en .
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
saref:hasMeterReadingType rdf:type 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 .
saref:GetCurrentMeterValueCommand a owl:Class ;
rdfs:subClassOf saref:GetCommand ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:MeteringFunction
] ;
rdfs:comment "A type of get command"@en ;
rdfs:label "Get current meter value command"@en .
saref:GetMeterDataCommand a owl:Class ;
rdfs:subClassOf saref:GetCommand ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:MeteringFunction
] ;
rdfs:comment "A type of get command"@en ;
rdfs:label "Get meter data command"@en .
saref:GetMeterHistoryCommand a owl:Class ;
rdfs:subClassOf saref:GetCommand ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:MeteringFunction
] ;
rdfs:comment "A type of get command"@en ;
rdfs:label "Get meter history command"@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 .
saref:LevelControlFunction a owl:Class ;
rdfs:subClassOf saref:ActuatingFunction ;
rdfs:comment "An actuating function that allows to do level adjustments of a property in a certain range (e.g., 0%-100%), such as dimming a light in a room or setting the speed of an electric motor. "@en ;
rdfs:label "Level control function"@en .
saref:SetAbsoluteLevelCommand a owl:Class ;
rdfs:subClassOf saref:SetLevelCommand ;
rdfs:comment "A type of set level command"@en ;
rdfs:label "Set absolute level command"@en .
saref:SetRelativeLevelCommand a owl:Class ;
rdfs:subClassOf saref:SetLevelCommand ;
rdfs:comment "A type of set level command"@en ;
rdfs:label "Set relative level command"@en .
saref:SetLevelCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:MultiLevelState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:LevelControlFunction
] ;
rdfs:comment "A type of command"@en ;
rdfs:label "Set level command"@en .
saref:StepDownCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:MultiLevelState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:LevelControlFunction
] ;
owl:disjointWith saref:StepUpCommand ;
rdfs:comment "A type of command"@en ;
rdfs:label "Step down command"@en .
saref:StepUpCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:MultiLevelState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:LevelControlFunction
] ;
rdfs:comment "A type of command"@en ;
rdfs:label "Step up command"@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 .
saref:PauseCommand a owl:Class ;
rdfs:subClassOf saref:Command ;
rdfs:comment "A type of command"@en ;
rdfs:label "Pause command"@en .
saref:StartCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:StartStopState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:StartStopFunction
] ;
owl:disjointWith saref:StopCommand ;
rdfs:comment "A type of command"@en ;
rdfs:label "Start command"@en .
saref:StopCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:StartStopState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:StartStopFunction
] ;
rdfs:comment "A type of command"@en ;
rdfs:label "Stop command"@en .
saref:StartStopFunction a owl:Class ;
rdfs:subClassOf saref:ActuatingFunction ;
rdfs:comment "An actuating function that allows to start and stop a device"@en ;
rdfs:label "Start stop function"@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 .
saref:OpenCloseFunction a owl:Class ;
rdfs:subClassOf saref:ActuatingFunction ;
rdfs:comment "An actuating function that allows to open and close a device"@en ;
rdfs:label "Open close function"@en .
saref:CloseCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:OpenCloseState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:OpenCloseFunction
] ;
owl:disjointWith saref:OpenCommand ;
rdfs:comment "A type of command"@en ;
rdfs:label "Close command"@en .
saref:OpenCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:OpenCloseState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:OpenCloseFunction
] ;
rdfs:comment "A type of command"@en ;
rdfs:label "Open command"@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 .
saref:OnCommand a owl:Class ;
rdfs:subClassOf saref:Command ,
[ a owl:Restriction ;
owl:onProperty saref:actsUpon ;
owl:someValuesFrom saref:OnOffState
] ,
[ a owl:Restriction ;
owl:onProperty saref:isCommandOf ;
owl:allValuesFrom saref:OnOffFunction
] ;