Unverified Commit 4114d369 authored by Maxime Lefrançois's avatar Maxime Lefrançois
Browse files

closes #66

parent 3fc5c235
Loading
Loading
Loading
Loading
+65 −41
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@
NOTE: Rationale and decisions for many of the changes in V4.1.1 are available in issues in project https://labs.etsi.org/rep/saref/saref-core/-/milestones/3#tab-issues

- Deprecated classes and properties have been deleted
- Introduced saref:DeviceKind
- Renamed saref:actsUpon to saref:targets
""" ;
                          rdfs:comment """Information about changes to version 3.2.1:

@@ -209,11 +211,11 @@ time:TemporalPosition 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 observed and controlled. An instance of saref:FeatureOfInterest represents one specific real world entity. 
## Class saref:FeatureOfInterest represents any real world entity from which a property or a state may be targeted, such as observed and controlled. An instance of saref:FeatureOfInterest represents one specific real world entity. 

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

## Class saref:DeviceKind allows to describe kinds of devices, with common properties having the same value, common states being the same, and targeting the same properties. An instance of saref:DeviceKind represents an archetype of real world entities, for example to populate product catalogs. 

saref:DeviceKind a owl:Class ;
    rdfs:subClassOf saref:FeatureKind ;
    rdfs:label "Device kinds"@en ;
    rdfs:comment "Device kinds allow to describe kinds of devices, with common properties having the same value, common states being the same, and targeting the same properties. An instance of saref:DeviceKind represents an archetype of real world entities, for example to populate product catalogs."@en ;
    skos:historyNote "V4.1.1: Introduced class saref:DeviceKind"@en .

## Device kinds can be organized in a taxonomy using OPs skos:broader and skos:narrower.

saref:DeviceKind 
    skos:historyNote "V4.1.1: Use SKOS to organize generic classes in taxonomies."@en ;
    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 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 ;
@@ -320,19 +342,20 @@ saref:hasDeviceKind a owl:ObjectProperty ;
    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 .
    rdfs:range saref:DeviceKind .

## A device can act upon (OP saref:actsUpon) features, properties, or states. 
## A device can target (OP saref:targets) features, properties, or states. 

saref:actsUpon a owl:ObjectProperty ;
    rdfs:label "acts upon"@en ;
saref:targets a owl:ObjectProperty ;
    rdfs:label "targets"@en ;
    rdfs:comment "Links a device, function, command, or procedure execution, to the feature, property, or state, it acts upon."@en ;
    skos:historyNote "V3.2.1: saref:actsUpon now holds not only between a command and a state. It generalizes actsUpon, observes, controls. Domain and range are unions of several classes."@en ;
    skos:historyNote "V4.1.1: saref:actsUpon is renamed saref:targets."@en ;
    rdfs:domain
        [   a owl:Class ;
            owl:unionOf (
                saref:FeatureKind
                saref:FeatureOfInterest
                saref:DeviceKind
                saref:Device
                saref:Function
                saref:FunctionOfInterest
                saref:Command
@@ -348,11 +371,12 @@ saref:actsUpon a owl:ObjectProperty ;
                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 ;
saref:isTargetOf a owl:ObjectProperty ;
    owl:inverseOf saref:targets ;
    rdfs:label "is target of"@en ;
    rdfs:comment "Links a feature, property, or state, to the device, function, command, or procedure execution, that targets it."@en ;
    skos:historyNote "V3.2.1: Introduced property saref:isActedUponBy."@en ;
    skos:historyNote "V4.1.1: Renamed property saref:isActedUponBy into saref:isTargetOf."@en ;
    rdfs:domain 
        [   a owl:Class ; 
            owl:unionOf ( 
@@ -365,7 +389,7 @@ saref:isActedUponBy a owl:ObjectProperty ;
    rdfs:range
        [   a owl:Class ;
            owl:unionOf (
                saref:FeatureKind
                saref:DeviceKind
                saref:Device
                saref:Function
                saref:FunctionOfInterest
@@ -375,15 +399,15 @@ saref:isActedUponBy a owl:ObjectProperty ;


saref:observes a owl:ObjectProperty ;
    rdfs:subPropertyOf saref:actsUpon ;
    rdfs:subPropertyOf saref:targets ;
    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 ;
    skos:historyNote "V3.2.1: Introduced property saref:observes, as sub-property of saref:actsUpon. and generalization of measures."@en ;
    skos:historyNote "V3.2.1: Introduced property saref:observes, as sub-property of saref:targets. and generalization of measures."@en ;
    rdfs:domain
        [   a owl:Class ;
            owl:unionOf (
                saref:FeatureKind
                saref:DeviceKind
                saref:Sensor
                saref:Function
                saref:FunctionOfInterest
@@ -392,21 +416,21 @@ saref:observes a owl:ObjectProperty ;
                saref:Observation ) ] .

saref:isObservedBy a owl:ObjectProperty ;
    rdfs:subPropertyOf saref:isActedUponBy ;
    rdfs:subPropertyOf saref:isTargetOf ;
    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 ;
    rdfs:subPropertyOf saref:targets ;
    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 ;
    skos:historyNote "V3.2.1: Introduced property saref:controls, as sub-property of saref:actsUpon. and generalization of saref:controlsProperty."@en ;
    skos:historyNote "V3.2.1: Introduced property saref:controls, as sub-property of saref:targets. and generalization of saref:controlsProperty."@en ;
    rdfs:domain
        [   a owl:Class ;
            owl:unionOf (
                saref:FeatureKind
                saref:DeviceKind
                saref:Actuator
                saref:Function
                saref:FunctionOfInterest
@@ -415,7 +439,7 @@ saref:controls a owl:ObjectProperty ;
                saref:Actuation ) ] .

saref:isControlledBy a owl:ObjectProperty ;
    rdfs:subPropertyOf saref:isActedUponBy ;
    rdfs:subPropertyOf saref:isTargetOf ;
    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 ;
@@ -770,7 +794,7 @@ saref:isStoredBy a owl:ObjectProperty ;

# 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 observed 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.
## In SAREF, properties refer to the identifiable qualities of features of interest that can be target of devices, such as observed 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

@@ -778,7 +802,7 @@ saref:isStoredBy a owl:ObjectProperty ;

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 observed or controlled. A property can apply to different features of interest."@en ;
    rdfs:comment "Identifiable qualities of features of interest that can be target of devices, such as observed or controlled. A property can apply to different features of interest."@en ;
    skos:historyNote "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 ;
@@ -837,7 +861,7 @@ saref:hasProperty

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 observed or controlled. An instance of saref:PropertyOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest."@en ;
    rdfs:comment "Identifiable qualities of features of interest that can be target of devices, such as observed or controlled. An instance of saref:PropertyOfInterest is specific to a feature of interest. It is inherent to and cannot exist without that feature of interest."@en ;
    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.
@@ -1079,7 +1103,7 @@ saref:TemperatureUnit a owl:Class ;

# 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.
## In SAREF, states refer to the identifiable conditions that features of interest are or may be in, and that can be target of devices, such as observed and controlled.

# ETSI TS 103264 Clause 5.7.2: States

@@ -1087,7 +1111,7 @@ saref:TemperatureUnit a owl:Class ;

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 ;
    rdfs:comment "Identifiable conditions that features of interest are or may be in, and that can be target of 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 ;
@@ -1138,7 +1162,7 @@ saref:hasState

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 ;
    rdfs:comment "Identifiable conditions that features of interest are or may be in, and that can be target of 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 ;
@@ -1265,7 +1289,7 @@ saref:StopState rdf:type owl:Class ;

# 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.
## In SAREF, functions are logical groups of commands that devices support to accomplish their tasks. Function can target (OP saref:targets 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

@@ -1273,7 +1297,7 @@ saref:StopState rdf:type owl:Class ;

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 ;
    rdfs:comment "Logical groups of commands that devices support to accomplish their tasks. Function can target (OP saref:targets 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 ;
@@ -1422,7 +1446,7 @@ saref:hasFunction

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 ;
    rdfs:comment "Logical groups of commands that devices support to accomplish their tasks. Function can target (OP saref:targets 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 ;
    skos:historyNote "V3.2.1: Introduced saref:FunctionOfInterest, parallel to saref:PropertyOfInterest."@en .
@@ -1473,7 +1497,7 @@ saref:hasFunction

# 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.
## In SAREF, commands represent the lowest-level directives a device supports and exposes to some network. Commands can target (OP saref:targets 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

@@ -1481,7 +1505,7 @@ saref:hasFunction

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 ;
    rdfs:comment "The lowest-level directives a function exposes to some network. Commands can target (OP saref:targets and its sub-properties) features, properties, or states. An instance of saref:Command is independent of any device."@en ;
    skos:example "Observe property, control property, observe state, control state, invoke action, cancel action, turn on or off, change color, subscribe, publish, etc. are all commands."@en ;
    skos:historyNote "V3.2.1: Simplified definition and axiomatization of saref:Command. Added examples."@en .

@@ -1562,9 +1586,9 @@ saref:hasOutput a owl:ObjectProperty ;

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 ;
    rdfs:comment "The lowest-level directives a device supports and exposes to some network. Commands can target (OP saref:targets 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 which properties or states they target."@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 targeted."@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 “observe temperature”, which observes the temperature of the fridge."@en ;
    skos:historyNote "V3.2.1: Introduced saref:CommandOfInterest, parallel to saref:PropertyOfInterest."@en .
@@ -2145,29 +2169,29 @@ saref:relatesToMeasurement a owl:ObjectProperty ;
saref:Profile a owl:Class ;
    rdfs:label "Profile"@en ;
    rdfs:comment "A saref:Profile describes the money earned (negative values) or paied (positive values) for the use (production or consumption) of a commodity by a device in a certain context."@en ;
    skos:note "OP saref:hasProfile links a device to its profile. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:actsUpon or its sub-properties."@en ;
    skos:note "OP saref:hasProfile links a device to its profile. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:targets or its sub-properties."@en ;
    skos:note "The applicable context of a profile can be bound temporally using DP saref:hasTimestamp or its subproperties defined by SAREF extensions, or OP saref:hasApplicableTime which links to instant or interval or other compound temporal entity expressed using OWL Time."@en ;
    skos:note "The applicable context can be restricted to when the property of a feature of interest has some value (OPs saref:whenPropertyValue)"@en ;
    skos:note "The applicable context can be restricted to when a feature of interest has a certain state (OPs saref:whenState)."@en ;
    skos:note "OP saref:hasPrice links a profile to the money earned (negative values) or paid (positive values) for the use (production or consumption) of the commodity by the device."@en ;
    skos:historyNote "V3.2.1: Class saref:Profile has been re-specified, to take into account findings from SAREF4ENER V1.2.1."@en .

## OP saref:hasProfile links a device to its profile. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:actsUpon or its sub-properties.
## OP saref:hasProfile links a device to its profile. The device should be linked to a certain commodity using OP saref:isUsedFor or its sub-properties, and optionally to some property or state using OP saref:targets or its sub-properties.

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

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

## The applicable context of a profile can be bound temporally using DP saref:hasTimestamp or its subproperties defined by SAREF extensions, or OP saref:hasApplicableTime which links to instant or interval or other compound temporal entity expressed using OWL Time.