## SAREF patterns for properties

NOTE: The text in this page is taken from ETSI TS 103 548, and therefore falls under the ETSI IPR Policy

### Introduction

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.

The figure below illustrates the main classes and properties in the SAREF Core patterns for Properties.

SAREF Core pattern for Properties: properties, properties of interest, property values

### Properties

#### Creating properties

SAREF extensions should create instances of the class saref:Property, such that they can be reused in different SAREF applications.

SAREF applications may also create specific instances of the class saref:Property.

The identifier and the label of an instance of property should not contain "property", and its comment may mention "property kind" or "kind of property".

EXAMPLE:

    ex:Temperature a saref:Property ;
      rdfs:label "Temperature"@en ;
      rdfs:comment "Temperature is a property kind that expresses quantitatively the attribute of hotness or coldness."@en .

#### Specializing properties

SAREF extensions may define a taxonomy of properties using `skos:broader` and `skos:narrower`.

The identifier, the label, and the comment of an instance of saref:Property should explicit its position in the taxonomy of properties.

NOTE: Depending on the use case, the property can explicit the physical dimension its values would have (ex. ex:AreaProperty), the feature of interest it applies to (ex. ex:RoomProperty), the type of task it relates to (ex. ex:ComfortProperty), etc.

EXAMPLE: ex:WaterTemperature, is a specialization of ex:Temperature.

    ex:WaterTemperature a saref:Property ;
      skos:broader ex:Temperature ;
      rdfs:label "Water Temperature"@en ;
      rdfs:comment "The temperature of water, a property kind."@en.

#### Categorizing properties

SAREF extensions and applications may define categories of properties by creating sub-classes of saref:Property.

The identifier, the label, and the comment of a sub-class of saref:Property should explicit its position in the hierarchy of property classes.

The identifier, and the label of a property class should end with "Property", and its comment should mention "property class" or "class of properties".

EXAMPLE: The class ex:WaterFlowProperty groups properties related to water flow.

    ex:WaterFlowProperty a owl:Class ;
      rdfs:subClassOf saref:Property ;
      rdfs:label "Water flow property"@en ;
      rdfs:comment "Class of properties related to water flow."@en .

### Properties of interest

#### Creating properties of interest

SAREF extensions should not create specific instances of the class saref:PropertyOfInterest, as they are meant to be specific to an application. The only exceptions to this provision are if the associated feature of interest is intended to be used by most applications of the SAREF extension.

Given a property of interest belongs to exactly one feature of interest, its identifier should consist of the identifier of the feature of interest, followed by character '#' and a fragment identifier. The fragment identifier part of the IRI of a property of interest should not contain "property".

A specific instance of the class saref:PropertyOfInterest should link to its kind (an instance of saref:Property) using property saref:hasPropertyKind, and to the unique feature of interest it is a property of using OP saref:isPropertyOfInterestOf.

EXAMPLE:

    ex:EarthAtmosphere\#Temperature a saref:PropertyOfInterest ;
      rdfs:label "Earth Atmosphere Temperature"@en ;
      rdfs:comment "The earth atmosphere temperature, a property of interest of the earth atmosphere with a unique value in any spatio-temporal position."en ;
      saref:hasPropertyKind ex:AirTemperature ;
      saref:isPropertyOf ex:EarthAtmosphere .

#### Categorizing properties of interest

SAREF extensions should not define sub-classes of saref:PropertyOfInterest, as this would duplicate information already part of the taxonomy of properties.

### Creating or categorizing property values

SAREF extensions may create specific instances of the class saref:PropertyValue, only if they are used as the object of saref:hasPropertyValue.

SAREF extensions should not define sub-classes of saref:PropertyValue, as this would duplicate information already part of the taxonomy of properties.

### Specializing OPs and DPs related to properties

SAREF extensions and applications shall not define sub-properties of the following properties:

- saref:hasProperty
- saref:isPropertyOf
- saref:hasPropertyOfInterest
- saref:isPropertyOfInterestOf
- saref:hasPropertyKind
- saref:hasPropertyValue
- saref:isValueOfProperty
- saref:hasValue
- saref:isMeasuredIn

NOTE: In some SAREF extensions or application, it may be specified that features of interest of a specific category can have only one property of a certain kind. Cardinalities different than zero or one should not be defined using this type of axioms.

EXAMPLE:

    ex:WaterDevice a owl:Class ;
          rdfs:subClassOf saref:Device , [
              owl:onProperty saref:hasProperty ;
              owl:cardinality 1 ;
              owl:onClass [
                  owl:onProperty saref:hasPropertyKind ;
                  owl:hasValue ex:HotInletWaterTemperature ] ] .