diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9e798af4325529a0e7752ad8e5b237bae6e6f89b --- /dev/null +++ b/LICENSE @@ -0,0 +1,23 @@ +Copyright 2023 ETSI + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/diagrams/SAREF4GRID examples.xml b/diagrams/SAREF4GRID examples.xml new file mode 100644 index 0000000000000000000000000000000000000000..8530ad918ed3ccc5be302f281a2a7b4d8c5b967f --- /dev/null +++ b/diagrams/SAREF4GRID examples.xml @@ -0,0 +1,3289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/diagrams/SAREF4GRID figures.xml b/diagrams/SAREF4GRID figures.xml new file mode 100644 index 0000000000000000000000000000000000000000..82270ee3f84176dd6e5b98428f8655de324c875d --- /dev/null +++ b/diagrams/SAREF4GRID figures.xml @@ -0,0 +1,3288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/description.html b/documentation/description.html new file mode 100644 index 0000000000000000000000000000000000000000..ede13baf1c4b641f3f83774e1584b7658cfe2d0f --- /dev/null +++ b/documentation/description.html @@ -0,0 +1,330 @@ + + + + + + +

This document presents the implementation of the SAREF extension for the electric grid domain (SAREF4GRID).

+ + +

General overview

+ +

Figure 1, Figure 2, Figure 3 and Figure 4 present an overview of the classes and the properties included in the SAREF4GRID extension.

+ +
+ SAREF4GRID overview: Meter information +
Figure 1: SAREF4GRID overview: Meter information
+
+ +
+ SAREF4GRID overview: Measurements and profiles +
Figure 2: SAREF4GRID overview: Measurements and profiles
+
+ +
+ SAREF4GRID overview: Activity calendar and scripts +
Figure 3: SAREF4GRID overview: Activity calendar and scripts
+
+ +
+ SAREF4GRID overview: Services +
Figure 4: Figure 4: SAREF4GRID overview: Services
+
+ + +

Meter

+ +

Figure 5 provides an overview of how to represent an electric grid meter using the s4grid:Meter class. + The representation of electric grid meters and their properties has been extracted from the DLMS/COSEM standard (IEC 62056)

+ +

Unlike in other SAREF extensions, meter-specific information is not defined using properties from SAREF. This is because the DLMS/COSEM standard defines the data + structures to model meters from simple up to very complex functionality (IEC 62056-6-2:2017). Moreover, each piece of information within the metering equipment + has a unique identifier called OBIS (OBject Identification System) which identifies the instance of a COSEM object (IEC 62056-6-1:2017). This data includes not only measurement values, + but also abstract values used for configuration or for obtaining information about the behaviour of the metering equipment.

+ +

For this reason, the characteristics of the meter are represented as properties that are not observable by the meter (s4grid:MeterProperty, + fully represented in Figure 6), i.e., they are not measurements (saref:Measurement). + The properties of a meter are defined by a value (s4grid:PropertyValue) and some are complemented with a unit of measurement + (saref:UnitOfMeasure).

+ +
+ Meter model +
Figure 5: Meter model
+
+ +

Meters store internal configuration parameters. The DLMS/COSEM standard (IEC 62056) defines properties related to the configuration of a meter that are necessary to ensure its correct operation. SAREF4GRID categorises the main properties related to the configuration of a meter + (s4grid:MeterProperty): screen display configuration (s4grid:ScreenDisplay), + electric threshold values (s4grid:Threshold), time from which a measure has to be outside the threshold before to be considered a quality issue + (s4grid:TimeThreshold), number of voltage sags (s4grid:VoltageSagNumber), number of voltage swells (s4grid:VoltageSwellNumber), number of long power failures + (s4grid:LongPowerFailuresNumber), information provided by the manufacturer (s4grid:Manufacturer), turn ratio of the transformer + (s4grid:TransformerRatio), communication configuration (s4grid:Network), status of meter profiles (s4grid:ProfileStatus), client power limits + (s4grid:PowerLimit), references values for power quality (s4grid:PowerQuality), client billing periods (s4grid:BillingPeriod), information about the electric grid phase + (s4grid:Phase), information about the electric grid phase angle (s4grid:PhaseAngle) and electric quadrant (s4grid:Quadrant). + It should be noted that in SAREF4GRID only the general properties are being defined. In order to use a more specific property it is advisable to indicate the general property it comes from (if it exists). + These properties are depicted in Figure 6.

+ +
+ Meter property model +
Figure 6: Meter property model
+
+ + +

Firmware

+ +

SAREF4GRID allows describing the identification information related to administration and maintenance of meters by means of the + s4grid:Firmware class, as presented in Figure 7. They are not communication parameters but support device management. The representation of + the firmware of a meter has been extracted from the IEC 62056-6-2:2017.

+ +

A meter firmware may be described by its: version (s4grid:hasFirmwareVersion), unique vendor identifier (s4grid:hasVendorId) and unique product identifier + assigned by the vendor (s4grid:hasProductId). + Besides, a firmware can be related to an electric grid meter by means of the s4grid:hasFirmware property.

+ +
+ Firmware model +
Figure 7: Firmware model
+
+ + +

Network Interface

+ +

SAREF4GRID allows describing the MAC address of the physical device (or, more generally, of a device or software) by means of the s4grid:NetworkInterface class, + as presented in Figure 8. There shall be an instance of this class for each network interface of a meter. The representation of the network + interface of a meter has been extracted from the IEC 62056-6-2:2017.

+ +
+ Network interface model +
Figure 8: Network interface model
+
+ + +

Clock

+ +

SAREF4GRID allows describing the clock of a meter by means of the s4grid:Clock class, as presented in Figure 9. This clock manages all information + related to date and time including deviations of the local time to a generalized time reference (UTC) due to time zones and daylight-saving + time schemes. The representation of the meter clock has been extracted from the IEC 62056-6-2:2017.

+ +

A meter clock may be described by its: time (s4grid:hasTime), time zone where the meter is located (s4grid:hasTimeZone), clock status maintained + by the meter (s4grid:hasStatus), date at which the local time starts to deviate from the normal time (s4grid:hasDaylighhtSavingsBegin), + date at which the local time ends to deviate from the normal time (s4grid:hasDaylighhtSavingsEnd), deviation in generalized time + (s4grid:hasDaylightSavingsDeviation), if the daylight savings time feature is enabled (s4grid:hasDaylightSavingsEnabled) + and where the basic timing information comes from (s4grid:hasClockBase). Besides, a clock can be related to an electric + grid meter by means of the s4grid:hasClock property.

+ +
+ Clock model +
Figure 9: Clock model
+
+ + +

Breaker State

+ +

As it can be observed in Figure 10, the modelling of states in the SAREF4GRID ontology mostly relies on the state model proposed in SAREF.

+ +

SAREF allows to define the state in which a device can be found. However, the SAREF4GRID extension also requires to be able to define the possible transitions between + states and complex states. Therefore, the s4grid:BreakerState class has been defined according to the IEC 62056-6-2:2017.

+ +

A meter breaker state represents the internal or external disconnect unit of the meter (e.g., electricity breaker, gas valve) in order to connect or disconnect the premises of + the consumer to/from the supply. A meter breaker state may be described by its: physical state (s4grid:hasOutputState), internal state + (s4grid:hasControlState) and the possible transitions between states (s4grid:hasControlMode).

+ +
+ Breaker State model +
Figure 10: Breaker State model
+
+ + +

Script Table

+ +

As it can be observed in Figure 11, the modelling of scripts in the SAREF4GRID ontology mostly relies on the service model proposed in SAREF. + In order to reduce duplication with SAREF documentation, the reader is referred to the SAREF specification for details about service modelling + including here details only for the new concepts.

+ +

SAREF allows to define the functions which accomplish the task for which a device is designed. However, the SAREF4GRID extension also requires to be able to + define the triggering of a series of actions by executing scripts, and where those scripts are stored. Therefore, the s4grid:ScriptTable class + has been defined according to the IEC 62056-6-2:2017.

+ +

A script table represents a table of script entries. Moreover, the s4grid:Script class defines a series of action specifications. An action specification + activates a method or modifies an attribute of a COSEM object within the logical device. Besides, a script table can be related to an electric grid + meter by means of the s4grid:hasScriptTable property.

+ +
+ Script Table model +
Figure 11: Script Table model
+
+ + +

Scheduled Action

+ +

SAREF4GRID allows the execution of periodic actions within a meter by means of the s4grid:SingleScheduledAction class, as presented in Figure 12 + ; such actions are not necessarily linked to tariffication. A scheduled action describes the script, which is stored in a script table, that is going to be executed at a determined date. + The representation of the meter scheduled action has been extracted from the IEC 62056-6-2:2017.

+ +

A meter single scheduled action may be described by its: execution time (s4grid:hasExecutionTime) and what script is going to be executed + (s4grid:executesScript). + Besides, a single schedule action can be related to an electric grid meter by means of the s4grid:hasSingleScheduledAction property.

+ +
+ Scheduled action model +
Figure 12: Scheduled action model
+
+ + +

Activity Calendar

+ +

SAREF4GRID allows modelling the handling of various tariff structures in the meter by means of the s4grid:ActivityCalendar class, as presented in Figure 13. + An activity calendar provides a list of scheduled actions, following the classical way of calendar-based schedules by defining seasons, weeks, etc. + The representation of the meter activity calendar has been extracted from the IEC 62056-6-2:2017.

+ +

An activity calendar is active (s4grid:hasCalendarNameActive) if it is currently used for billing. Each active calendar has an associated passive calendar + (s4grid:hasCalendarNamePassive) and its function is to allow to modify the parameters of the active calendar on a date prior to + its activation date (s4grid:hasActivatePassiveCalendarTime). Activation date is the date from which the meter will use the passive calendar parameters and, + therefore, they become active calendar parameters. An active calendar is compound by active seasons (s4grid:hasActiveSeasonProfile) and + a passive calendar is compound by passive seasons (s4grid:hasPassiveSeasonProfile). + Notice that there is no distinction between an active calendar and a passive calendar because together they represent an activity calendar and they share the same OBIS code.

+ +

A season profile (s4grid:SeasonProfile) represents periods of time during the year when billing conditions are always the same. A season is characterized by a start date + (s4grid:hasSeasonStart) and seven day profiles (s4grid:hasDayProfile) to apply, which together represents a week + (there is one day profile for each day of the week). A season finishes when the next season begins.

+ +

A day profile (s4grid:DayProfile) represents the discrimination of time along the day. Moreover, the seven day profiles together represents a period + during the week when billing conditions are always the same. There are two day profiles: regular days (s4grid:RegularDayProfile) + which represents not festive days, and special days (s4grid:SpecialDayProfile) which represents at which date there is a festivity, + i.e. normal day behaves as a special day (s4grid:hasScpecialDayDate). A day profile is characterized by a day schedule + (s4grid:hasDaySchedule).

+ +

A day schedule (s4grid:DaySchedule) defines the activation of certain scripts during the day, which can perform different activities inside the meter. + For each day schedule, a list of scheduled actions is defined by a script to be executed (s4grid:executesScript) with the corresponding + activation time (s4grid:hasStartTime).

+ +
+ Activity calendar model +
Figure 13: Activity calendar model
+
+ + +

Power Line Properties

+ +

As it can be observed in Figure 14 and Figure 15, the modelling of measurements in the SAREF4GRID ontology mostly relies on the measurement model proposed in SAREF. + In order to reduce duplication with SAREF documentation, the reader is referred to the SAREF specification for details about measurement modelling including here details only for the new concepts.

+ +

The DLMS/COSEM standard (IEC 62056) defines the measurements that a meter must take from a power line. It should be noted that in SAREF4GRID + only the general properties are being defined. In order to use a more specific property it is neccesary to indicate the general property from which it + comes from. The properties that are defined in SAREF4GRID, which are measured from a power line (s4grid:PowerLine), are depicted in + Figure 14 and Figure 15.

+ +

SAREF4GRID categorises the main properties related to the enregy an power measurements of a power line (s4grid:EnergyPowerProperty): active energy measurements + (s4grid:ActiveEnergy), reactive energy measurements (s4grid:ReactiveEnergy), apparent power measurements + (s4grid:ApparentPower), demand register measurements (s4grid:DemandRegister), active power measurements + (s4grid:ActivePower), reactive power measurements (s4grid:ReactivePower), current measurements (s4grid:Current), voltage measurements + (s4grid:Voltage) and power factor related measurements (s4grid:PowerFactor).

+ +
+ Energy and power property model +
Figure 14: Energy and power property model
+
+ +

SAREF4GRID also categorises the main properties related to quality measurements of a power line (s4grid:QualityProperty):duration of voltage sags + (s4grid:DurationVoltageSag), duration of voltage swells (s4grid:DurationVoltageSwell) and duration of long power failures + (s4grid:DurationLongPowerFailure).

+ +
+ Quality property model +
Figure 15: Quality property model
+
+ +

Profile Generic

+ +

SAREF4GRID allows modelling the storing, sorting and accessing of data groups or data series (i.e., capture objects in COSEM) in the meter by means of the + s4grid:ProfileGeneric class, as presented in Figure 16. Capture objects are specific attributes or elements of (an) attribute(s) of COSEM objects. + The capture objects are collected periodically or occasionally. The representation of the profile generic of a meter has been extracted from the IEC 62056-6-2:2017.

+ +

A profile generic is represented by the objects that it captures (s4grid:Clock, s4grid:PropertyValues and + s4grid:Measurements). These capture objects are collected in each period defined in the + s4grid:hasCapturePeriod property.

+ +
+ Profile generic model +
Figure 16: Profile generic model
+
+ + +

Get service

+ +

Figure 17 provides an overview of the modelling of get services (s4grid:GetService). A get service is performed through get operations (s4grid:GetOperation). + The get operation modelling involves two main concepts, namely + s4grid:CosemOperationInput and s4grid:GetOperationOutput. As can be seen in the figure, the modelling of get services totally + relies on the service model proposed in ONEM2M. The representation of the inputs and outputs of a get service has been extracted from the IEC 62056-6-2:2017.

+ +

A get operation needs one input which represents what is going to be retrieved (the whole instance or just a property of the instance). + Therefore, the input of a get operation can be either a class, the range of datatype property, or the range of an object property. + The s4grid:CosemOperationInput class specifies the instance from which data is going to be retrieved by indicating the OBIS code + (s4grid:obtainInputFromObis). If only the OBIS code is specified, it is understood that the whole instance is going to be retrieved. Moreover, + the s4grid:GetOperationPropertyInput class specifies the object/datatype property of an instance from which data is going to be retrieved by + indicating the OBIS code and the name of the object/datatype property (s4grid:obtaintInputForProperty). + If the OBIS code and the property name are specified, it is understood that just the range of a property of the instance is going to be retrieved.

+ +

A get operation is going to generate one output which represents the type of what is going to be retrieved. The output of a get operation (s4grid:GetOperationOutput) can be either a class or a datatype. The s4grid:GetOperationDataOutput + specifies that the output is going to be a datatype. In this case the type of the output is defined using the s4grid:hasOutputDataType + property, indicating the name of the datatype. The s4grid:GetOperationObjectOutput class specifies that the output is going to be a class. + In this case the type of the output is defined using the s4grid:hasOutputObjectType property, indicating the name of the class.

+ +

Additionally, in the case of a get service of a s4grid:ProfileGeneric class a selective access (s4grid:SelectiveAccess) can be specified. + This indicates the range of entries to be retrieved (s4grid:EntryDescriptor) or the range of values (s4grid:RangeDescriptor) to be retrieved from a + s4grid:ProfileGeneric class.

+ +
+ Get service model +
Figure 17: Get service model
+
+ + +

Set service

+ +

Figure 18 provides an overview of the modelling of set services (s4grid:SetService). A set service is performed through set operations (s4grid:SetOperation). The set operation modelling involves one main concept, + namely s4grid:CosemOperationInput. As can be seen in the figure, the modelling of set services totally relies on the service model proposed in ONEM2M. + In order to reduce duplication with the ONEM2M documentation, the reader is referred to the ONEM2M specification for details about service modelling. + The representation of the inputs and outputs of a set service has been extracted from the IEC 62056-6-2:2017.

+ +

A set operation needs two inputs: the element that is going to be modified and the new data that is going to replace the old data. The element that is going to be modified is represented by a class + meanwhile the new data is represented either by a class, the range of a datatype property, or the range of an object property (depending on if the whole instance is going to be modified or just a property). + Therefore, the s4grid:CosemOperationInput class specifies the instance from which data is going to be modified by indicating the OBIS code + (s4grid:obtainInputFromObis) and the new data is represented either by the s4grid:SetOperationObisInput, + s4grid:SetOperationObjectInput or s4grid:SetOperationDataInput classes. + The s4grid:SetOperationObisInput class indicates that the whole instance is going to be modified. In this case the type of the input is defined + using the s4grid:hasInputObjectType property, indicating the name of the class expected to modify the instance. The + s4grid:SetOperationObjectInput class indicates that just the range of an object property of the instance is going to be modified. + In this case the type of the input is defined using the s4grid:obtainInputForProperty, which indicates the name of the object property whose range is going to be modified, and + the s4grid:hasInputObjectType property, indicating the name of the class expected to modify the range of the object property. + The s4grid:SetOperationDataInput class indicates that just the range of a datatype property of the instance is going to be modified. + In this case the type of the input is defined using the s4grid:obtainInputForProperty, which indicates the name of the datatype property whose range is going to be modified, + and the s4grid:hasInputDataType property, indicating the name of the datatype expected to modify the range of the datatype property.

+ +
+ Set service model +
Figure 18: Set service model
+
+ + +

Action service

+ +

Figure 19 provides an overview of the modelling of action services (s4grid:ActionService). An action service is performed + through action operations (s4grid:ActionOperation). The action operation modelling involves one main concept, namely + s4grid:CosemOperationInput. As can be seen in the figure, the modelling of action services totally relies on the service model proposed in ONEM2M. + In order to reduce duplication with the ONEM2M documentation, the reader is referred to the ONEM2M specification for details about service modelling. + The representation of the inputs and outputs of an action service has been extracted from the IEC 62056-6-2:2017.

+ +

An action operation needs two inputs: the element that is going to be affected by an action and the parameters necessary for the action to be executed. The element that is going to be affected by an action is represented by a class and the parameters + are either represented by a class or a value. Therefore, the s4grid:CosemOperationInput class specifies the instance that is going to be affected by the action by indicating the OBIS code (s4grid:obtainInputFromObis) + and the parameters are represented either by the s4grid:SimpleActionOperationInput or the s4grid:ComplexActionOperationInput. + The s4grid:SimpleActionOperationInput class indicates that the parameter needed by the action to operate is simple (i.e., integer, string, etc.). + In this case the value of the parameter is defined using the s4grid:hasActionValue property. The + s4grid:ComplexActionOperationInput class indicates that the parameter needed by the action to operate is complex (i.e., structure). + There are two cases of complex parameters: s4grid:PresetAdjustingTime class, which is needed by a s4grid:Clock to modify the time, + and s4grid:SpecialDayEntry class, which is needed by an s4grid:ActivityCalendar to adding a new special day.

+ +
+ Action service model +
Figure 19: Action service model
+
+ + \ No newline at end of file diff --git a/documentation/diagrams/SAREF4GRID_Action_service.png b/documentation/diagrams/SAREF4GRID_Action_service.png new file mode 100644 index 0000000000000000000000000000000000000000..65cb6a290fc884394f36dd3b5036a13abac4e05c Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Action_service.png differ diff --git a/documentation/diagrams/SAREF4GRID_Activity_calendar.png b/documentation/diagrams/SAREF4GRID_Activity_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5386f8c9148929e505e9a7b7a30cfe8b52d13b Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Activity_calendar.png differ diff --git a/documentation/diagrams/SAREF4GRID_Breaker_state.png b/documentation/diagrams/SAREF4GRID_Breaker_state.png new file mode 100644 index 0000000000000000000000000000000000000000..f38ccf6266d8869e4a2ee506e2dbd3ca758085b7 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Breaker_state.png differ diff --git a/documentation/diagrams/SAREF4GRID_Clock.png b/documentation/diagrams/SAREF4GRID_Clock.png new file mode 100644 index 0000000000000000000000000000000000000000..0731ac655c5f2821bbbde0ae4b688432ca02d20f Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Clock.png differ diff --git a/documentation/diagrams/SAREF4GRID_Electric_grid_meter.png b/documentation/diagrams/SAREF4GRID_Electric_grid_meter.png new file mode 100644 index 0000000000000000000000000000000000000000..e1c7c0645ca2ebacd7cc2d49252179dd05b2f5b1 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Electric_grid_meter.png differ diff --git a/documentation/diagrams/SAREF4GRID_Energy_and_power_properties.png b/documentation/diagrams/SAREF4GRID_Energy_and_power_properties.png new file mode 100644 index 0000000000000000000000000000000000000000..b9748b53c30accf19c71f3aaee35051f5419a281 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Energy_and_power_properties.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_action_1.png b/documentation/diagrams/SAREF4GRID_Example_action_1.png new file mode 100644 index 0000000000000000000000000000000000000000..276f345807891c11d6d63461ee2968b08a3e0a37 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_action_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_action_2.png b/documentation/diagrams/SAREF4GRID_Example_action_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b961a89b783639720cf92a5b6c846f2949a37fe4 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_action_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_action_3.png b/documentation/diagrams/SAREF4GRID_Example_action_3.png new file mode 100644 index 0000000000000000000000000000000000000000..8c6030764a92e3492f185fd96dc3168c2935380b Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_action_3.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_activity_calendar.png b/documentation/diagrams/SAREF4GRID_Example_activity_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb3702e67eef8f910c9c68459e5bb595ad51a34 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_activity_calendar.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_breaker_state.png b/documentation/diagrams/SAREF4GRID_Example_breaker_state.png new file mode 100644 index 0000000000000000000000000000000000000000..4e31c076d57b623a598e7a863242ce08a6a24723 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_breaker_state.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_clock.png b/documentation/diagrams/SAREF4GRID_Example_clock.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b19421d7ef7fc86b28c2260b5457997ab2a71a Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_clock.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_firmware.png b/documentation/diagrams/SAREF4GRID_Example_firmware.png new file mode 100644 index 0000000000000000000000000000000000000000..6552052f9d7b8a704dc79c301b8b754ac39dc2f6 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_firmware.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_get_1.png b/documentation/diagrams/SAREF4GRID_Example_get_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4f053863e91ee6ceae96e93a7dbd96a0dd8cad Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_get_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_get_2.png b/documentation/diagrams/SAREF4GRID_Example_get_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c6af7fa61d48b1f6bba98d51c0c82af1f508e72e Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_get_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_get_3.png b/documentation/diagrams/SAREF4GRID_Example_get_3.png new file mode 100644 index 0000000000000000000000000000000000000000..177bb72aebeb7978659c5445ccc779ddf68173a9 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_get_3.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_get_4.png b/documentation/diagrams/SAREF4GRID_Example_get_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d1eaa5d2c6b48a2bda61b81147a19fb50bd3f1a4 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_get_4.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_get_5.png b/documentation/diagrams/SAREF4GRID_Example_get_5.png new file mode 100644 index 0000000000000000000000000000000000000000..21e30d990e6ade31887288d2c3e7088185797b82 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_get_5.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_measurement_1.png b/documentation/diagrams/SAREF4GRID_Example_measurement_1.png new file mode 100644 index 0000000000000000000000000000000000000000..025f9d0062dbe58290bbe6cda188105044e987d8 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_measurement_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_measurement_2.png b/documentation/diagrams/SAREF4GRID_Example_measurement_2.png new file mode 100644 index 0000000000000000000000000000000000000000..1fdeafd2b64c71c90c626f88432244e2f4baac8a Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_measurement_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_meter_1.png b/documentation/diagrams/SAREF4GRID_Example_meter_1.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd28a23e2a354adf8dac7049f1b6b891805ab3c Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_meter_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_meter_2.png b/documentation/diagrams/SAREF4GRID_Example_meter_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0d0c9a9d2bcadedd32954caf2dcc7616f12afbe7 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_meter_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_network_interface.png b/documentation/diagrams/SAREF4GRID_Example_network_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..5b3a8da78eda51090bcbe1a4907ef70b96e0a85a Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_network_interface.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_profile.png b/documentation/diagrams/SAREF4GRID_Example_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..84cc13d89f7500d9cc8a9fece864a099bbb3bc43 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_profile.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_script.png b/documentation/diagrams/SAREF4GRID_Example_script.png new file mode 100644 index 0000000000000000000000000000000000000000..37fda2353cdd37c23ae5aaed46dfc438ffdefdb5 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_script.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_set_1.png b/documentation/diagrams/SAREF4GRID_Example_set_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd7a1ca5121ba10f2cb90e62899074d6bb1efcb Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_set_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_set_2.png b/documentation/diagrams/SAREF4GRID_Example_set_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b6117f442cceb0cfaad2c64605cbac67918dd188 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_set_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Example_set_3.png b/documentation/diagrams/SAREF4GRID_Example_set_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ad21cae0f2b2eaba8cd037219ba8525e29dbe5b3 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Example_set_3.png differ diff --git a/documentation/diagrams/SAREF4GRID_Firmware.png b/documentation/diagrams/SAREF4GRID_Firmware.png new file mode 100644 index 0000000000000000000000000000000000000000..62bc8255325bba683c80b9a8537cbd634fabbc38 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Firmware.png differ diff --git a/documentation/diagrams/SAREF4GRID_Get_service.png b/documentation/diagrams/SAREF4GRID_Get_service.png new file mode 100644 index 0000000000000000000000000000000000000000..763f1b39e1026b74cd1c2fb266d11769a57d5f21 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Get_service.png differ diff --git a/documentation/diagrams/SAREF4GRID_Meter_properties.png b/documentation/diagrams/SAREF4GRID_Meter_properties.png new file mode 100644 index 0000000000000000000000000000000000000000..821c8ba7d732f3b1352815e1fbfa52b883ecbe47 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Meter_properties.png differ diff --git a/documentation/diagrams/SAREF4GRID_Network_interface.png b/documentation/diagrams/SAREF4GRID_Network_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..e75ef33242e2b2a64c5f98f5f8fc4872001e178c Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Network_interface.png differ diff --git a/documentation/diagrams/SAREF4GRID_Overview_1.png b/documentation/diagrams/SAREF4GRID_Overview_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0d4ffff736b1c2b87ac6b14cba29d8cde7aa4078 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Overview_1.png differ diff --git a/documentation/diagrams/SAREF4GRID_Overview_2.png b/documentation/diagrams/SAREF4GRID_Overview_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1ed17646cc588665e934014cc07b85a526ee72 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Overview_2.png differ diff --git a/documentation/diagrams/SAREF4GRID_Overview_3.png b/documentation/diagrams/SAREF4GRID_Overview_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0618e45c56f6ddb0c0fbff9d52d3d6bca416f890 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Overview_3.png differ diff --git a/documentation/diagrams/SAREF4GRID_Overview_4.png b/documentation/diagrams/SAREF4GRID_Overview_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e32d55f014e828ba1657b22e09245eefa19914e7 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Overview_4.png differ diff --git a/documentation/diagrams/SAREF4GRID_Profile_generic.png b/documentation/diagrams/SAREF4GRID_Profile_generic.png new file mode 100644 index 0000000000000000000000000000000000000000..1b82cb75b13fe482aa30ee802f73d770680261ef Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Profile_generic.png differ diff --git a/documentation/diagrams/SAREF4GRID_Quality_properties.png b/documentation/diagrams/SAREF4GRID_Quality_properties.png new file mode 100644 index 0000000000000000000000000000000000000000..782c1e210ccbfca4dbc89510e47e83f289087011 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Quality_properties.png differ diff --git a/documentation/diagrams/SAREF4GRID_Scheduled_action.png b/documentation/diagrams/SAREF4GRID_Scheduled_action.png new file mode 100644 index 0000000000000000000000000000000000000000..30a4efb73cee90b41f70359b870e05cab680dcd2 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Scheduled_action.png differ diff --git a/documentation/diagrams/SAREF4GRID_Script_table.png b/documentation/diagrams/SAREF4GRID_Script_table.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8856a05579c3c6abfddedb11c1a25587b7857d Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Script_table.png differ diff --git a/documentation/diagrams/SAREF4GRID_Set_service.png b/documentation/diagrams/SAREF4GRID_Set_service.png new file mode 100644 index 0000000000000000000000000000000000000000..92fc1a0032a38e2352f258a229cdb0a5c806ee55 Binary files /dev/null and b/documentation/diagrams/SAREF4GRID_Set_service.png differ diff --git a/documentation/examples.html b/documentation/examples.html new file mode 100644 index 0000000000000000000000000000000000000000..2f11bfdb11613c212d41c8edcf1ea694be9aac62 --- /dev/null +++ b/documentation/examples.html @@ -0,0 +1,235 @@ + + + + + + +

The example presented in Figure 20 depicts an electric grid meter (ex:Meter1234). It can be described by a set of meter properties + (such as the one shown in the figure, ex:ScrollDisplayMode) that are identified by an OBIS code (s4grid:hasObis). + Notice that some meter properties do not specify a unit of measure.

+ +

SAREF4GRID does not aim to provide an exhaustive definition of all the properties defined in the IEC 62056-6-2:2017. Instead, it defines a set + of general properties (those shown in Figure 6, e.g., s4grid:ScreenDisplay in the figure) + and specific properties can be related to these general properties using the SKOS ontology. Using SKOS more specific properties can be defined specifying + from which general property they are derived (skos:narrower), and which properties belong to a general property + (skos:broader).

+ +
+ Example of electric grid meter information I +
Figure 20: Example of electric grid meter information I
+
+ + +

The example presented in Figure 21 depicts an electric grid meter (ex:Meter1234). It can be described by a set of meter properties + (e.g., ex:ActivePowerLimitContract1TariffPeriod1) which are identified by an OBIS code (s4grid:hasObis). + The meter properties used to describe a meter are broader than the properties shown in Figure 6 (e.g., s4grid:PowerLimit). + Notice that some meter properties specify a unit of measure (e.g., om:watt).

+ +
+ Example of electric grid meter information II +
Figure 21: Example of electric grid meter information II
+
+ + +

Unlike other SAREF extensions, a meter firmware is not defined by a datatype property. The example presented in Figure 22 depicts a meter + firmware (e.g., ex:ActivePLCFirmware) which is represented by an OBIS code (s4grid:hasObis).

+ +
+ Example of electric grid meter firmware +
Figure 22: Example of electric grid meter firmware
+
+ + +

Figure 23 contains an example of a network interface (ex:MacAddress1234) defined for a meter. Moreover, + the network interface is represented by an OBIS code (s4grid:hasObis).

+ +
+ Example of electric grid meter network interface +
Figure 23: Example of electric grid meter network interface
+
+ + +

Figure 24 contains an example of a meter clock (ex:Clock1234). Moreover, the clock + interface is represented by an OBIS code (s4grid:hasObis). Notice that the clock is not only represented by a time (s4grid:hasTime), + but is also represented by the time zone in which it is located and how the time is changed.

+ +
+ Example of electric grid meter clock +
Figure 24: Example of electric grid meter clock
+
+ + +

Figure 25 contains an example of a meter brekaer state (ex:CurrentConnectivityState). + In this example, it is represented that the meter is physical connected (s4grid:hasOutputState), internal connected (s4grid:hasControlState) + and it can be be remotely, manually and locally disconnected (s4grid:hasControlMode). Moreover, the breaker state is represented by + an OBIS code (s4grid:hasObis).

+ +
+ Example of electric grid meter breaker state +
Figure 25: Example of electric grid meter breaker state
+
+ + +

Figure 26 contains an example of how scripts (ex:ConnectionScript and ex:DisconnectionScript) are stored in the meter. + A script table (ex:DisconnectScriptTable) is needed in order to represents where the scripts are located. Moreover, a single schedule action + (ex:DisconnectControlScheduler) is used to represent that a script is going to be executed in a determined date. Moreover, the script + table and single scheduled action are represented by an OBIS code (s4grid:hasObis).

+ +
+ Example of electric grid meter script table and scheduled action +
Figure 26: Example of electric grid meter script table and scheduled action
+
+ + +

Figure 27 contains an example of how an activity calendar (ex:ActivityCalendarContract1-1234) is represented in a meter. + This activity calendar is represented by an active season (ex:SeasonActive1) which is described by the date at which it starts and two regular + day profiles: one that describes working days (ex:WeekDay) and other that describes weekend days (ex:WeekendDay). Each day profile is represented by + when a billing period starts each day (ex:WeekDayTariffPeriod1 and ex:WeekendDayTariffPeriod1) and what scripts need to execute to make the + billing (ex:ResetBillingPeriod1 and ex:ResetBillingPeriod2). Additionally, a special day profile (ex:SpecialTariffPeriod1) + defines which days are special (e.g., festive) and, therefore, another tariffication is going to be applied. Moreover, the activity calendar + is represented by an OBIS code (s4grid:hasObis). Notice that just the active calendar is represented + (e.g., the passive calendar associated to the active calendar is not represented) in order to simplify the example.

+ +
+ Example of electric grid meter activity calendar +
Figure 27: Example of electric grid meter activity calendar
+
+ + +

One of the main functions of electric grid meters is to take measures from a power line in order to control + what is happening in the electric grid. Figure 28 presents an example of a power line measurement (ex:TotalIncrementalActiveEnergyImportMeasurement123) + for a power line property (ex:TotalIncrementalActiveEnergyImport) that is identified by an OBIS code (s4grid:hasObis).

+ +

As with meter properties, SAREF4GRID does not aim to provide an exhaustive definition of all the properties defined in the IEC 62056-6-2:2017. Instead, it defines a set of + general properties (those shown in Figure 14 and Figure 15, e.g., s4grid:ActiveEnergy in the figure) and + specific properties can be related to these general properties using the SKOS ontology. Using SKOS more specific properties can be defined specifying from which general property they are derived + (skos:narrower), and which properties belong to a general property (skos:broader).

+ +
+ Example of electric grid meter measurements I +
Figure 28: Example of electric grid meter measurements I
+
+ + +

Figure 29 presents another example of a power line measurement (ex:MaximumDemandRegisterImportC1TP1Measurement136) for a power line property + (ex:MaximumDemandRegisterImportC1TP1) which are identified by an OBIS code (s4grid:hasObis). The power line properties are broader than the properties + shown in Figure 14 and Figure 15 (e.g., s4grid:DemandRegister).

+ +
+ Example of electric grid meter measurements II +
Figure 29: Example of electric grid meter measurements II
+
+ + +

Different profile generics can be generated in order to access data groups which are stored in an electric grid meter. + Figure 30 presents an example of a profile generic (ex:IncrementalLoadProfile1234) whose objective is to store the incremental energy + values that a meter measures (ex:Measurement1 to ex:Measurement6) each hour. Additionally, the profile generic stores the clock (ex:Clock1234) to indicate the time at which the profile generic + captures elements, and the AMR status (ex:PropertyValue1) that the meter stores. Moreover, the profile generic is represented by an OBIS code + (s4grid:hasObis).

+ +
+ Example of electric grid meter profile generic +
Figure 30: Example of electric grid meter profile generic
+
+ +

Each element that a meter stores can be obtained through a get service. Figure 31 presents an example of how it is specified + that a COSEM element is going to be obtained. A get service (ex:GetServiceIncrementalLoadProfile) is executed through a get operation + (ex:GetOperationIncrementalLoadProfile). This operation indicates the desired input (ex:OperationInputIncrementalLoadProfile), + which in this case it specifies the element from which data is going to be retrieved, and the desired output + (ex:OutputIncrementalLoadProfile), which in this case specifies the data structure that is going to be given.

+ +
+ Example of electric grid meter get service I +
Figure 31: Example of electric grid meter get service I
+
+ + +

Figure 32 presents an example of how it is specified that an attribute of a COSEM element is going to be obtained. Notice that in this example, the attribute corresponds to a datatype property of the SAREF4GRID ontology. A get service (ex:GetServiceCapturePeriodIncrementalLoadProfile) is executed through a get operation (ex:GetOperationCapturePeriodIncrementalLoadProfile). This operation indicates the desired input (ex:OperationInputCapturePeriodIncrementalLoadProfile), which in this case specifies the datatype property of the element from which data is going to be retrieved, and the desired output (ex:OutputCapturePeriodIncrementalLoadProfile), which in this case specifies the datatype that is going to be given. +

+ +
+ Example of electric grid meter get service II +
Figure 32: Example of electric grid meter get service II
+
+ + +

Figure 33 presents an example of how it is specified that an attribute of a COSEM element is going to be obtained. Notice that in this example, the attribute corresponds to an object property of the SAREF4GRID ontology. A get service (ex:GetServiceDisconnectionScript) is executed through a get operation (ex:GetOperationDisconnectionScript). This operation indicates the desired input (ex:OperationInputDisconnectionScript), which in this case specifies the object property of the element from which data is going to be retrieved, and the desired output (ex:OutputDisconnectionScript), which in this case specifies the data structure that is going to be given. +

+ +
+ Example of electric grid meter get service III +
Figure 33: Example of electric grid meter get service III
+
+ +

Property-related services in get operations usually refer to the entire property. However, in the case of certain properties, selective access to only part of the property may be provided. + Figure 34 presents an example of how it is specified that a range of values are going to be retrieved from a profile generic. A selective range get service (ex:GetServiceIncrementalLoadProfileRange) is executed through a get operation (ex: GetOperationIncrementalLoadProfileRange). This operation indicates the desired input (ex:OperationInputIncrementalLoadProfileRange), which in this case specifies the element from which data is going to be retrieved, and the desired output (ex:OutputIncrementalLoadProfileRange), which in this case specifies the data structure that is going to be given. Additionally, a selective access with a range descriptor (ex:RangeDescriptor1) indicates that just the entries whose value is between 1 and 10 are going to be retrieved. +

+ +
+ Example of electric grid meter get service IV +
Figure 34: Example of electric grid meter get service IV
+
+ +

Figure 35 presents an example of how it is specified that a range of entries are going to be retrieved from a profile generic. A selective entry get service (ex:GetServiceIncrementalLoadProfileEntry) is executed through a get operation (ex: GetOperationIncrementalLoadProfileEntry). This operation indicates the desired input (ex:OperationInputIncrementalLoadProfileEntry), which in this case specifies the element from which data is going to be retrieved, and the desired output (ex:OutputIncrementalLoadProfileEntry), which in this case specifies the data structure that is going to be given. Additionally, a selective access with an entry descriptor (ex:EntryDescriptor1) indicates that just the top 10 entries are going to be retrieved. +

+ +
+ Example of electric grid meter get service V +
Figure 35: Example of electric grid meter get service V
+
+ +

Each element that a meter stores can be modified through a set service. Figure 36 presents an example of how it is specified that a COSEM element is going to be modified. A set service (ex:SetMulticastCommunicationIdentifier) is executed through a set operation (ex:SetOperationMulticastCommunicationIdentifier). This operation indicates the desired input (ex:InputMulticastCommunicationIdentifier), which in this case specifies the element from which data is going to be modified and the data structure that is going to replace the previous data. +

+ +
+ Example of electric grid meter set service I +
Figure 36: Example of electric grid meter set service I
+
+ + +

Figure 37 presents an example of how it is specified that an attribute of a COSEM element is going to be modified. Notice that in this example, the attribute corresponds to a datatype property of the SAREF4GRID ontology. A set service (ex:SetServiceCapturePeriodIncrementalLoadProfile) is executed through a set operation (ex:SetOperationCapturePeriodIncrementalLoadProfile). This operation indicates the desired input (ex:InputICapturePeriodIncrementalLoadProfile), which in this case specifies the datatype property of the element from which data is going to be modified and the data type that is going to replace the previous data. +

+ +
+ Example of electric grid meter set service II +
Figure 37: Example of electric grid meter set service II
+
+ + +

Figure 38 presents an example of how it is specified that an attribute of a COSEM element is going to be modified. Notice that in this example, the attribute corresponds to an object property of the SAREF4GRID ontology. A set service (ex:SetServiceDisconnectionScript) is executed through a set operation (ex:SetOperationDisconnectionScript). This operation indicates the desired input (ex:InputIDisconnectionScript), which in this case specifies the object property of the element from which data is going to be modified and the data structure that is going to replace the previous data. +

+ +
+ Example of electric grid meter set service III +
Figure 38: Example of electric grid meter set service III
+
+ + +

Each element that a meter stores can be affected through an action service. Figure 39 + presents an example of how it is specified that a COSEM element is going to be affected by an action. Notice that in this example the input parameter needed to execute the action is simple (e.g., integer, string, etc.). An action service (ex:ResetServiceRegister) is executed through an action operation (ex:ResetServiceOperation). This operation indicates the desired input (ex:ResetServiceOperationInput), which in this case specifies the element that is going to be affected by the action and the value of the parameter needed by the action. +

+ +
+ Example of electric grid meter action service I +
Figure 39: Example of electric grid meter action service I
+
+ + +

Figure 40 presents an example of how it is specified that a COSEM element is going to be affected by an action. Notice that in this example the input parameter needed to execute the action is a structure. An action service (ex:PresetAdjustingTimeServiceClock) is executed through an action operation (ex:PresetAdjustingTimeOperation). This operation indicates the desired input (ex:PresetAdjustingTime1), which in this case specifies the element that is going to be affected by the action and the values of the parameter structure needed by the action. +

+ +
+ Example of electric grid meter action service II +
Figure 40: Example of electric grid meter action service II
+
+ +

Figure 41 presents an example of how it is specified that a COSEM element is going to be affected by an action. Notice that in this example the input parameter needed to execute the action is a structure. An action service (ex:SpecialDayEntryServiceActivityCalendar) is executed through an action operation (ex:SpecialDayEntryOperation). This operation indicates the desired input (ex:SpecialDayEntry1), which in this case specifies the element that is going to be affected by the action and the values of the parameter structure needed by the action. +

+ +
+ Example of electric grid meter action service III +
Figure 41: Example of electric grid meter action service III
+
+ + + \ No newline at end of file diff --git a/documentation/images.css b/documentation/images.css new file mode 100644 index 0000000000000000000000000000000000000000..0029cb7abfd1d2b4c8c839e5e0b96b2634009a5a --- /dev/null +++ b/documentation/images.css @@ -0,0 +1,4 @@ +figure img { + width:50%; + height:50%; +} \ No newline at end of file diff --git a/examples/Action.ttl b/examples/Action.ttl new file mode 100644 index 0000000000000000000000000000000000000000..6379a16394e344fa219b865f8abb7d2beb863c62 --- /dev/null +++ b/examples/Action.ttl @@ -0,0 +1,122 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Action"@en ; + dcterms:description "Example Action"@en . + + + +################################################################# +# Object Properties +################################################################# + +oneM2M:hasService a owl:ObjectProperty . + +oneM2M:hasOperation a owl:ObjectProperty . + +oneM2M:hasInput a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:obtainInputFromObis a owl:DatatypeProperty . + +s4grid:hasActionValue a owl:DatatypeProperty . + +s4grid:hasPresetTime a owl:DatatypeProperty . + +s4grid:hasValidityIntervalStart a owl:DatatypeProperty . + +s4grid:hasValidityIntervalEnd a owl:DatatypeProperty . + +s4grid:hasIndex a owl:DatatypeProperty . + +s4grid:hasSpecialDate a owl:DatatypeProperty . + +s4grid:hasDayId a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:ActionService a owl:Class . + +s4grid:ActionOperation a owl:Class . + +s4grid:SimpleActionOperationInput a owl:Class . + +s4grid:PresetAdjustingTime a owl:Class . + +s4grid:SpecialDayEntry a owl:Class . + +s4grid:ComplexActionOperationInput a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + oneM2M:hasService ex:ResetServiceRegister, + ex:PresetAdjustingTimeServiceClock , + ex:SpecialDayEntryActivityCalendar . + +ex:ResetServiceRegister a s4grid:ActionService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:ResetServiceOperation . + +ex:ResetServiceOperation a s4grid:ActionOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:ResetServiceOperationInput . + +ex:ResetServiceOperationInput a s4grid:SimpleActionOperationInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-1:94.34.1.255"^^xsd:string ; + s4grid:hasActionValue "0"^^xsd:int . + +ex:PresetAdjustingTimeServiceClock a s4grid:ActionService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:PresetAdjustingTimeOperation . + +ex:PresetAdjustingTimeOperation a s4grid:ActionOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:PresetAdjustingTime1 . + +ex:PresetAdjustingTime1 a s4grid:PresetAdjustingTime, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-0:1.0.0.255"^^xsd:string ; + s4grid:hasPresetTime "2023-05-30T09:00:00"^^xsd:dateTime ; + s4grid:hasValidityIntervalStart "2023-05-30T10:00:00"^^xsd:dateTime ; + s4grid:hasValidityIntervalEnd "2023-05-30T12:00:00"^^xsd:dateTime . + +ex:SpecialDayEntryActivityCalendar a s4grid:ActionService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:SpecialDayEntryOperation . + +ex:SpecialDayEntryOperation a s4grid:ActionOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:SpecialDayEntry1 . + +ex:SpecialDayEntry1 a s4grid:SpecialDayEntry, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-0:13.0.1.255"^^xsd:string ; + s4grid:hasIndex "1"^^xsd:unsignedShort ; + s4grid:hasSpecialDate "2023-05-30"^^xsd:date ; + s4grid:hasDayId "235"^^xsd:int . \ No newline at end of file diff --git a/examples/ActivityCalendar.ttl b/examples/ActivityCalendar.ttl new file mode 100644 index 0000000000000000000000000000000000000000..5d89511ed0621908811d5e646339c05909e61d41 --- /dev/null +++ b/examples/ActivityCalendar.ttl @@ -0,0 +1,159 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Activity Calendar"@en ; + dcterms:description "Example Activity Calendar"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:executesScript a owl:ObjectProperty . + +s4grid:hasActiveSeasonProfile a owl:ObjectProperty . + +s4grid:hasActivityCalendar a owl:ObjectProperty . + +s4grid:hasDaySchedule a owl:ObjectProperty . + +s4grid:hasMondayProfile a owl:ObjectProperty . + +s4grid:hasTuesdayProfile a owl:ObjectProperty . + +s4grid:hasWednesdayProfile a owl:ObjectProperty . + +s4grid:hasThursdayProfile a owl:ObjectProperty . + +s4grid:hasFridayProfile a owl:ObjectProperty . + +s4grid:hasSpecialDayProfile a owl:ObjectProperty . + +s4grid:hasSaturdayProfile a owl:ObjectProperty . + +s4grid:hasSundayProfile a owl:ObjectProperty . + +s4grid:hasDayProfile a owl:ObjectProperty . + +s4grid:hasPassiveSeasonProfile a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasActivatePassiveCalendarTime a owl:DatatypeProperty . + +s4grid:hasCalendarNameActive a owl:DatatypeProperty . + +s4grid:hasCalendarNamePassive a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasSeasonProfileName a owl:DatatypeProperty . + +s4grid:hasSeasonStart a owl:DatatypeProperty . + +s4grid:hasSpecialDayDate a owl:DatatypeProperty . + +s4grid:hasStartTime a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:ActivityCalendar a owl:Class . + +s4grid:RegularDayProfile a owl:Class . + +s4grid:Script a owl:Class . + +s4grid:SpecialDayProfile a owl:Class . + +s4grid:DaySchedule a owl:Class . + +s4grid:SeasonProfile a owl:Class . + +s4grid:DayProfile a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:ActivityCalendarContract1-1234 a s4grid:ActivityCalendar, + owl:NamedIndividual ; + s4grid:hasActivatePassiveCalendarTime "2023-01-17T02:00:00"^^xsd:dateTime ; + s4grid:hasCalendarNameActive "First quarter of 2023 active"^^xsd:string ; + s4grid:hasCalendarNamePassive "First quarter of 2023 passive"^^xsd:string ; + s4grid:hasObis "0-0:13.0.1.255"^^xsd:string ; + s4grid:hasActiveSeasonProfile ex:SeasonActive1. + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasActivityCalendar ex:ActivityCalendarContract1-1234. + +ex:ResetBillingPeriod1 a s4grid:Script, + owl:NamedIndividual . + +ex:ResetBillingPeriod2 a s4grid:Script, + owl:NamedIndividual . + +ex:ResetBillingPeriod3 a s4grid:Script, + owl:NamedIndividual . + +ex:SeasonActive1 a s4grid:SeasonProfile, + owl:NamedIndividual ; + s4grid:hasSeasonProfileName "January 2023 active"^^xsd:string ; + s4grid:hasSeasonStart "2023-01-01T00:00:00"^^xsd:dateTime ; + s4grid:hasMondayProfile ex:WeekDay ; + s4grid:hasTuesdayProfile ex:WeekDay ; + s4grid:hasWednesdayProfile ex:WeekDay ; + s4grid:hasThursdayProfile ex:WeekDay ; + s4grid:hasFridayProfile ex:WeekDay ; + s4grid:hasSpecialDayProfile ex:SpecialFriday1 ; + s4grid:hasSaturdayProfile ex:WeekendDay ; + s4grid:hasSundayProfile ex:WeekendDay . + +ex:SpecialFriday1 a s4grid:SpecialDayProfile, + owl:NamedIndividual ; + s4grid:hasSpecialDayDate "2023-01-06"^^xsd:date ; + s4grid:hasDaySchedule ex:SpecialTariffPeriod1 . + +ex:SpecialTariffPeriod1 a s4grid:DaySchedule, + owl:NamedIndividual ; + s4grid:executesScript ex:ResetBillingPeriod3 ; + s4grid:hasStartTime "09:00:00"^^xsd:time . + +ex:WeekDay a s4grid:RegularDayProfile, + owl:NamedIndividual ; + s4grid:hasDaySchedule ex:WeekDayTariffPeriod1 . + +ex:WeekendDay a s4grid:RegularDayProfile, + owl:NamedIndividual ; + s4grid:hasDaySchedule ex:WeekendTariffPeriod1 . + +ex:WeekDayTariffPeriod1 a s4grid:DaySchedule, + owl:NamedIndividual ; + s4grid:executesScript ex:ResetBillingPeriod1 ; + s4grid:hasStartTime "09:00:00"^^xsd:time . + +ex:WeekendTariffPeriod1 a s4grid:DaySchedule, + owl:NamedIndividual ; + s4grid:executesScript ex:ResetBillingPeriod2 ; + s4grid:hasStartTime "09:00:00"^^xsd:time . diff --git a/examples/BreakerState.ttl b/examples/BreakerState.ttl new file mode 100644 index 0000000000000000000000000000000000000000..10fc17716fe06be69572c9a0f23af0de412fc283 --- /dev/null +++ b/examples/BreakerState.ttl @@ -0,0 +1,63 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Breaker State"@en ; + dcterms:description "Example Breaker State"@en . + + + +################################################################# +# Object Properties +################################################################# + +saref:hasState a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasControlMode a owl:DatatypeProperty . + +s4grid:hasControlState a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasOutputState a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:BreakerState a owl:Class . + +s4grid:Meter a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + saref:hasState ex:CurrentConnectivityState . + +ex:CurrentConnectivityState a s4grid:BreakerState, + owl:NamedIndividual ; + s4grid:hasControlMode "1"^^xsd:int ; + s4grid:hasControlState "1"^^xsd:int ; + s4grid:hasObis "0-0:10.0.196.255"^^xsd:string ; + s4grid:hasOutputState "true"^^xsd:boolean . diff --git a/examples/Clock.ttl b/examples/Clock.ttl new file mode 100644 index 0000000000000000000000000000000000000000..2a0622cfde3dc6095fc969435df94bc3b866518b --- /dev/null +++ b/examples/Clock.ttl @@ -0,0 +1,77 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Clock"@en ; + dcterms:description "Example Clock"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:hasClock a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasClockBase a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsBegin a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsDeviation a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsEnabled a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsEnd a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasStatus a owl:DatatypeProperty . + +s4grid:hasTime a owl:DatatypeProperty . + +s4grid:hasTimeZone a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Clock a owl:Class . + +s4grid:Meter a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasClock ex:Clock1234 . + +ex:Clock1234 a s4grid:Clock, + owl:NamedIndividual ; + s4grid:hasClockBase "4"^^xsd:int ; + s4grid:hasDaylightSavingsBegin "2023-03-26T02:00:00"^^xsd:dateTime ; + s4grid:hasDaylightSavingsDeviation "60"^^xsd:integer ; + s4grid:hasDaylightSavingsEnabled "true"^^xsd:boolean ; + s4grid:hasDaylightSavingsEnd "2023-10-29T03:00:00"^^xsd:dateTime ; + s4grid:hasObis "0-0:1.0.0.255"^^xsd:string ; + s4grid:hasStatus "1"^^xsd:int ; + s4grid:hasTime "2023-05-30T09:00:00"^^xsd:dateTime ; + s4grid:hasTimeZone "120"^^xsd:long . diff --git a/examples/Firmware.ttl b/examples/Firmware.ttl new file mode 100644 index 0000000000000000000000000000000000000000..4db0d10c667894f846948ae5258b9374e0a46609 --- /dev/null +++ b/examples/Firmware.ttl @@ -0,0 +1,62 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Firmware"@en ; + dcterms:description "Example Firmware"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:hasFirmware a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasFirmwareVersion a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasProductId a owl:DatatypeProperty . + +s4grid:hasVendorId a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Firmware a owl:Class . + +s4grid:Meter a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasFirmware ex:ActivePLCFirmware . + +ex:ActivePLCFirmware a s4grid:Firmware, + owl:NamedIndividual ; + s4grid:hasFirmwareVersion "1.0.2"^^xsd:string ; + s4grid:hasObis "0-0:28.7.0.255"^^xsd:string ; + s4grid:hasProductId "64456"^^xsd:unsignedShort ; + s4grid:hasVendorId "12346"^^xsd:unsignedShort . diff --git a/examples/Get.ttl b/examples/Get.ttl new file mode 100644 index 0000000000000000000000000000000000000000..70bb4ffb4cc67146f65a8835f07ba465e2ed8776 --- /dev/null +++ b/examples/Get.ttl @@ -0,0 +1,194 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Get"@en ; + dcterms:description "Example Get"@en . + + + +################################################################# +# Object Properties +################################################################# + +oneM2M:hasService a owl:ObjectProperty . + +oneM2M:hasOperation a owl:ObjectProperty . + +oneM2M:hasInput a owl:ObjectProperty . + +oneM2M:hasOutput a owl:ObjectProperty . + +s4grid:hasSelectiveAccess a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:obtainInputFromObis a owl:DatatypeProperty . + +s4grid:hasOutputObjectType a owl:DatatypeProperty . + +s4grid:obtainInputForProperty a owl:DatatypeProperty . + +s4grid:hasOutputDataType a owl:DatatypeProperty . + +s4grid:obtainFromValue a owl:DatatypeProperty . + +s4grid:obtainToValue a owl:DatatypeProperty . + +s4grid:obtainFromEntry a owl:DatatypeProperty . + +s4grid:obtainToEntry a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:GetService a owl:Class . + +s4grid:GetOperation a owl:Class . + +s4grid:CosemOperationInput a owl:Class . + +s4grid:GetOperationObjectOutput a owl:Class . + +s4grid:GetOperationPropertyInput a owl:Class . + +s4grid:GetOperationDataOutput a owl:Class . + +s4grid:RangeDescriptor a owl:Class ; + rdfs:subClassOf s4grid:SelectiveAccess . + +s4grid:EntryDescriptor a owl:Class ; + rdfs:subClassOf s4grid:SelectiveAccess . + +s4grid:GetOperationOutput a owl:Class . + +s4grid:SelectiveAccess a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + oneM2M:hasService ex:GetServiceIncrementalLoadProfile, + ex:GetServiceCapturePeriodIncrementalLoadProfile, + ex:GetServiceDisconnectionScript , + ex:GetServiceIncrementalLoadProfileRange, + ex:GetServiceIncrementalLoadProfileEntry . + +ex:GetServiceIncrementalLoadProfile a s4grid:GetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:GetOperationIncrementalLoadProfile . + +ex:GetOperationIncrementalLoadProfile a s4grid:GetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:OperationInputIncrementalLoadProfile ; + oneM2M:hasOutput ex:OutputIncrementalLoadProfile . + +ex:OperationInputIncrementalLoadProfile a s4grid:CosemOperationInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "1-0:99.1.0.255"^^xsd:string . + +ex:OutputIncrementalLoadProfile a s4grid:GetOperationObjectOutput, + owl:NamedIndividual ; + s4grid:hasOutputObjectType "s4grid:ProfileGeneric"^^xsd:string . + +ex:GetServiceCapturePeriodIncrementalLoadProfile a s4grid:GetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:GetOperationCapturePeriodIncrementalLoadProfile . + +ex:GetOperationCapturePeriodIncrementalLoadProfile a s4grid:GetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:OperationInputCapturePeriodIncrementalLoadProfile ; + oneM2M:hasOutput ex:OutputCapturePeriodIncrementalLoadProfile . + +ex:OperationInputCapturePeriodIncrementalLoadProfile a s4grid:GetOperationPropertyInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "1-0:99.1.0.255"^^xsd:string ; + s4grid:obtainInputForProperty "s4grid:hasCapturePeriod"^^xsd:string . + +ex:OutputCapturePeriodIncrementalLoadProfile a s4grid:GetOperationDataOutput, + owl:NamedIndividual ; + s4grid:hasOutputDataType "xsd:unsignedLong"^^xsd:string . + +ex:GetServiceDisconnectionScript a s4grid:GetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:GetOperationDisconnectionScript . + +ex:GetOperationDisconnectionScript a s4grid:GetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:OperationInputDisconnectionScript ; + oneM2M:hasOutput ex:OutputDisconnectionScript . + +ex:OperationInputDisconnectionScript a s4grid:GetOperationPropertyInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-0:10.0.196.255"^^xsd:string ; + s4grid:obtainInputForProperty "s4grid:storesScript"^^xsd:string . + +ex:OutputDisconnectionScript a s4grid:GetOperationObjectOutput, + owl:NamedIndividual ; + s4grid:hasOutputObjectType "s4grid:Script"^^xsd:string . + +ex:GetServiceIncrementalLoadProfileRange a s4grid:GetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:GetOperationIncrementalLoadProfileRange . + +ex:GetOperationIncrementalLoadProfileRange a s4grid:GetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:OperationInputIncrementalLoadProfileRange ; + s4grid:hasSelectiveAccess ex:RangeDescriptor1 ; + oneM2M:hasOutput ex:OutputIncrementalLoadProfileRange . + +ex:OperationInputIncrementalLoadProfileRange a s4grid:CosemOperationInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "1-0:99.1.0.255"^^xsd:string . + +ex:RangeDescriptor1 a s4grid:RangeDescriptor, + owl:NamedIndividual ; + s4grid:obtainFromValue "1"^^xsd:int ; + s4grid:obtainToValue "10"^^xsd:int . + +ex:OutputIncrementalLoadProfileRange a s4grid:GetOperationObjectOutput, + owl:NamedIndividual ; + s4grid:hasOutputObjectType "s4grid:ProfileGeneric"^^xsd:string . + +ex:GetServiceIncrementalLoadProfileEntry a s4grid:GetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:GetOperationIncrementalLoadProfileEntry . + +ex:GetOperationIncrementalLoadProfileEntry a s4grid:GetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:OperationInputIncrementalLoadProfileEntry ; + s4grid:hasSelectiveAccess ex:EntryDescriptor1 ; + oneM2M:hasOutput ex:OutputIncrementalLoadProfileEntry . + +ex:OperationInputIncrementalLoadProfileEntry a s4grid:CosemOperationInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "1-0:99.1.0.255"^^xsd:string . + +ex:EntryDescriptor1 a s4grid:EntryDescriptor, + owl:NamedIndividual ; + s4grid:obtainFromEntry "1"^^xsd:unsignedLong ; + s4grid:obtainToEntry "10"^^xsd:unsignedLong . + +ex:OutputIncrementalLoadProfileEntry a s4grid:GetOperationObjectOutput, + owl:NamedIndividual ; + s4grid:hasOutputObjectType "s4grid:ProfileGeneric"^^xsd:string . \ No newline at end of file diff --git a/examples/Measurements.ttl b/examples/Measurements.ttl new file mode 100644 index 0000000000000000000000000000000000000000..45d660f9c89a86d337a6d5df80987acb6b3743bc --- /dev/null +++ b/examples/Measurements.ttl @@ -0,0 +1,123 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . +@prefix skos: . +@prefix om: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Measurements"@en ; + dcterms:description "Example Measurements"@en . + + + +################################################################# +# Object Properties +################################################################# + +saref:makesMeasurement a owl:ObjectProperty . + +saref:hasProperty a owl:ObjectProperty . + +saref:isMeasuredIn a owl:ObjectProperty . + +saref:isPropertyOf a owl:ObjectProperty . + +saref:relatesToMeasurement a owl:ObjectProperty . + +saref:relatesToProperty a owl:ObjectProperty . + +skos:broader a owl:ObjectProperty . + +skos:narrower a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasObis a owl:DatatypeProperty . + +saref:hasTimestamp a owl:DatatypeProperty . + +saref:hasValue a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:PowerLine a owl:Class . + +saref:EnergyUnit a owl:Class . + +saref:Measurement a owl:Class . + +s4grid:EnergyAndPowerProperty a owl:Class . + + +################################################################# +# Individuals +################################################################# + +om:watt a saref:EnergyUnit, + owl:NamedIndividual . + +s4grid:ActiveEnergy a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + skos:narrower ex:TotalIncrementalActiveEnergyImport . + +s4grid:DemandRegister a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + skos:narrower ex:MaximumDemandRegisterImportC1TP1 . + +ex:MaximumDemandRegisterImportC1TP1Measurement136 a saref:Measurement, + owl:NamedIndividual ; + saref:hasTimestamp "2023-10-20T21:01:10"^^xsd:dateTime ; + saref:hasValue "5"^^xsd:unsignedLong ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty ex:MaximumDemandRegisterImportC1TP1 . + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + saref:makesMeasurement ex:TotalIncrementalActiveEnergyImportMeasurement123, + ex:MaximumDemandRegisterImportC1TP1Measurement136 . + +om:wattHour a saref:EnergyUnit, + owl:NamedIndividual . + +ex:MaximumDemandRegisterImportC1TP1 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + s4grid:hasObis "1-0:1.6.11.255"^^xsd:string ; + saref:isPropertyOf ex:SubstationLine23 ; + saref:relatesToMeasurement ex:MaximumDemandRegisterImportC1TP1Measurement136 ; + skos:broader s4grid:DemandRegister . + +ex:TotalIncrementalActiveEnergyImportMeasurement123 a saref:Measurement, + owl:NamedIndividual ; + saref:hasTimestamp "2023-10-20T21:01:10"^^xsd:dateTime ; + saref:hasValue "5"^^xsd:unsignedLong ; + saref:isMeasuredIn om:wattHour ; + saref:relatesToProperty ex:TotalIncrementalActiveEnergyImport . + +ex:SubstationLine23 a s4grid:PowerLine, + owl:NamedIndividual ; + saref:hasProperty ex:MaximumDemandRegisterImportC1TP1, + ex:TotalIncrementalActiveEnergyImport . + +ex:TotalIncrementalActiveEnergyImport a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + s4grid:hasObis "1-0:1.29.0.255"^^xsd:string ; + saref:isPropertyOf ex:SubstationLine23 ; + saref:relatesToMeasurement ex:TotalIncrementalActiveEnergyImportMeasurement123 ; + skos:broader s4grid:ActiveEnergy . diff --git a/examples/NetworkInterface.ttl b/examples/NetworkInterface.ttl new file mode 100644 index 0000000000000000000000000000000000000000..cbdc11b37147e8a2d4adfea70514edb67e35bc05 --- /dev/null +++ b/examples/NetworkInterface.ttl @@ -0,0 +1,56 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Network Interface"@en ; + dcterms:description "Example Network Interface"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:hasNetworkInterface a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasMACAddress a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:NetworkInterface a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasNetworkInterface ex:MacAddress1234 . + +ex:MacAddress1234 a s4grid:NetworkInterface, + owl:NamedIndividual ; + s4grid:hasMACAddress "00:1B:44:11:3A:B7"^^xsd:string ; + s4grid:hasObis "0-0:28.6.0.255"^^xsd:string . diff --git a/examples/ProfileGeneric.ttl b/examples/ProfileGeneric.ttl new file mode 100644 index 0000000000000000000000000000000000000000..c24606588eef8e5fb76816b9ef0ce3a9afb6e6a1 --- /dev/null +++ b/examples/ProfileGeneric.ttl @@ -0,0 +1,200 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . +@prefix skos: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Profile Generic"@en ; + dcterms:description "Example Profile Generic"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:hasProperty a owl:ObjectProperty . + +s4grid:hasProfileGeneric a owl:ObjectProperty . + +s4grid:relatedClock a owl:ObjectProperty . + +s4grid:relatedMeasurement a owl:ObjectProperty . + +s4grid:relatedPropertyValue a owl:ObjectProperty . + +saref:relatesToMeasurement a owl:ObjectProperty . + +saref:relatesToProperty a owl:ObjectProperty . + +skos:broader a owl:ObjectProperty . + +skos:narrower a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasCapturePeriod a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasClockBase a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsBegin a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsDeviation a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsEnabled a owl:DatatypeProperty . + +s4grid:hasDaylightSavingsEnd a owl:DatatypeProperty . + +s4grid:hasStatus a owl:DatatypeProperty . + +s4grid:hasTime a owl:DatatypeProperty . + +s4grid:hasTimeZone a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Clock a owl:Class . + +s4grid:Meter a owl:Class . + +s4grid:PropertyValue a owl:Class . + +saref:Property a owl:Class . + +s4grid:MeterProperty a owl:Class ; + rdfs:subClassOf saref:Property . + +s4grid:ProfileGeneric a owl:Class . + +saref:Measurement a owl:Class . + +s4grid:EnergyAndPowerProperty a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:IncrementalLoadProfile1234 a s4grid:ProfileGeneric, + owl:NamedIndividual ; + s4grid:hasCapturePeriod "60"^^xsd:int ; + s4grid:hasObis "1-0:99.1.0.255"^^xsd:string ; + s4grid:relatedClock ex:Clock1234 ; + s4grid:relatedMeasurement ex:Measurement1, + ex:Measurement2, + ex:Measurement3, + ex:Measurement4, + ex:Measurement5, + ex:Measurement6 ; + s4grid:relatedPropertyValue ex:PropertyValue1 . + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasProfileGeneric ex:IncrementalLoadProfile1234 . + +s4grid:ReactiveEnergy a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + skos:narrower ex:TotalIncrementalReactiveEnergyQI1234, + ex:TotalIncrementalReactiveEnergyQII1234, + ex:TotalIncrementalReactiveEnergyQIII1234, + ex:TotalIncrementalReactiveEnergyQIV1234 . + +ex:TotalIncrementalReactiveEnergyQI1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement3 ; + skos:broader s4grid:ReactiveEnergy . + +ex:TotalIncrementalReactiveEnergyQII1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement4 ; + skos:broader s4grid:ReactiveEnergy . + +ex:TotalIncrementalReactiveEnergyQIII1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement5 ; + skos:broader s4grid:ReactiveEnergy . + +ex:TotalIncrementalReactiveEnergyQIV1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement6 ; + skos:broader s4grid:ReactiveEnergy . + +s4grid:ActiveEnergy a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + skos:narrower ex:TotalIncrementalActiveEnergyImport1234, + ex:TotalIncrementalActiveEnergyExport1234 . + +ex:Clock1234 a s4grid:Clock, + owl:NamedIndividual ; + s4grid:hasClockBase "4"^^xsd:int ; + s4grid:hasDaylightSavingsBegin "2023-03-26T02:00:00"^^xsd:dateTime ; + s4grid:hasDaylightSavingsDeviation "60"^^xsd:integer ; + s4grid:hasDaylightSavingsEnabled "true"^^xsd:boolean ; + s4grid:hasDaylightSavingsEnd "2023-10-29T03:00:00"^^xsd:dateTime ; + s4grid:hasObis "0-0:1.0.0.255"^^xsd:string ; + s4grid:hasStatus "1"^^xsd:int ; + s4grid:hasTime "2023-05-30T09:00:00"^^xsd:dateTime ; + s4grid:hasTimeZone "120"^^xsd:long . + +ex:Measurement1 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalActiveEnergyImport1234 . + +ex:Measurement2 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalActiveEnergyExport1234 . + +ex:Measurement3 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalReactiveEnergyQI1234 . + +ex:Measurement4 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalReactiveEnergyQII1234 . + +ex:Measurement5 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalReactiveEnergyQIII1234 . + +ex:Measurement6 a saref:Measurement, + owl:NamedIndividual ; + saref:relatesToProperty ex:TotalIncrementalReactiveEnergyQIV1234 . + +s4grid:ProfileStatus a s4grid:MeterProperty, + owl:NamedIndividual ; + skos:narrower ex:AMRStatusLoadProfilePeriod1-1234 . + +ex:PropertyValue1 a s4grid:PropertyValue, + owl:NamedIndividual ; + s4grid:hasProperty ex:AMRStatusLoadProfilePeriod1-1234 . + +ex:TotalIncrementalActiveEnergyExport1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement2 ; + skos:broader s4grid:ActiveEnergy . + +ex:TotalIncrementalActiveEnergyImport1234 a s4grid:EnergyAndPowerProperty, + owl:NamedIndividual ; + saref:relatesToMeasurement ex:Measurement1 ; + skos:broader s4grid:ActiveEnergy . + +ex:AMRStatusLoadProfilePeriod1-1234 a s4grid:MeterProperty, + owl:NamedIndividual ; + skos:broader s4grid:ProfileStatus . diff --git a/examples/PropertyValues.ttl b/examples/PropertyValues.ttl new file mode 100644 index 0000000000000000000000000000000000000000..06566b18e76bd2f7e0ff56f48d90f3a6dc02fd28 --- /dev/null +++ b/examples/PropertyValues.ttl @@ -0,0 +1,98 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . +@prefix skos: . +@prefix om: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Property Value"@en ; + dcterms:description "Example Property Value"@en . + +################################################################# +# Object Properties +################################################################# + +s4grid:hasPropertyValue a owl:ObjectProperty . + +s4grid:hasProperty a owl:ObjectProperty . + +s4grid:hasUnit a owl:ObjectProperty . + +skos:broader a owl:ObjectProperty . + +skos:narrower a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasObis a owl:DatatypeProperty . + +s4grid:hasValue a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +saref:UnitOfMeasure a owl:Class . + +s4grid:Meter a owl:Class . + +s4grid:PropertyValue a owl:Class . + +saref:Property a owl:Class . + +s4grid:MeterProperty a owl:Class ; + rdfs:subClassOf saref:Property . + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasPropertyValue ex:PropertyValue234, + ex:PropertyValue678. + +ex:PropertyValue678 a s4grid:PropertyValue, + owl:NamedIndividual ; + s4grid:hasProperty ex:ScrollDisplayMode ; + s4grid:hasValue "224.0.1.0"^^xsd:string . + +ex:ActivePowerLimitContract1TariffPeriod1 a s4grid:MeterProperty, + owl:NamedIndividual ; + s4grid:hasObis "0-1:94.34.1.255"^^xsd:string ; + skos:broader s4grid:PowerLimit . + +s4grid:ScreenDisplay a s4grid:MeterProperty, + owl:NamedIndividual ; + skos:narrower ex:ScrollDisplayMode . + +om:watt a saref:UnitOfMeasure, + owl:NamedIndividual . + +ex:PropertyValue234 a s4grid:PropertyValue, + owl:NamedIndividual ; + s4grid:hasProperty ex:ActivePowerLimitContract1TariffPeriod1 ; + s4grid:hasValue "1200"^^xsd:int ; + s4grid:hasUnit om:watt . + +s4grid:PowerLimit a s4grid:MeterProperty, + owl:NamedIndividual ; + skos:narrower ex:ActivePowerLimitContract1TariffPeriod1 . + +ex:ScrollDisplayMode a s4grid:MeterProperty, + owl:NamedIndividual ; + s4grid:hasObis "0-0:96.1.7.255"^^xsd:string ; + skos:broader s4grid:ScreenDisplay . diff --git a/examples/ScriptTable_SingleActionSchedule.ttl b/examples/ScriptTable_SingleActionSchedule.ttl new file mode 100644 index 0000000000000000000000000000000000000000..9ee28a2465643d3d618d5fab5b80b57220f675d6 --- /dev/null +++ b/examples/ScriptTable_SingleActionSchedule.ttl @@ -0,0 +1,80 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Script Table and Single Action Schedule"@en ; + dcterms:description "Example Script Table and Single Action Schedule"@en . + + + +################################################################# +# Object Properties +################################################################# + +s4grid:executesScript a owl:ObjectProperty . + +s4grid:hasScriptTable a owl:ObjectProperty . + +s4grid:hasSingleScheduledAction a owl:ObjectProperty . + +s4grid:storesScript a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:hasExecutionTime a owl:DatatypeProperty . + +s4grid:hasObis a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:Script a owl:Class . + +s4grid:ScriptTable a owl:Class . + +s4grid:SingleScheduledAction a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + s4grid:hasScriptTable ex:DisconnectScriptTable ; + s4grid:hasSingleScheduledAction ex:DisconnectControlScheduler . + +ex:ConnectionScript a s4grid:Script, + owl:NamedIndividual . + +ex:DisconnectControlScheduler a s4grid:SingleScheduledAction, + owl:NamedIndividual ; + s4grid:hasExecutionTime "2023-10-25T09:00:00"^^xsd:dateTime ; + s4grid:hasObis "0-0:96.3.10.255"^^xsd:string ; + s4grid:executesScript ex:DisconnectionScript . + +ex:DisconnectScriptTable a s4grid:ScriptTable, + owl:NamedIndividual ; + s4grid:storesScript ex:ConnectionScript, + ex:DisconnectionScript ; + s4grid:hasObis "0-0:10.0.196.255"^^xsd:string . + +ex:DisconnectionScript a s4grid:Script, + owl:NamedIndividual . diff --git a/examples/Set.ttl b/examples/Set.ttl new file mode 100644 index 0000000000000000000000000000000000000000..1243df8c6d61d8b038d8f06ba65b17ce9b753686 --- /dev/null +++ b/examples/Set.ttl @@ -0,0 +1,110 @@ +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix oneM2M: . +@prefix saref: . +@prefix s4grid: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:license ; + dcterms:conformsTo ; + dcterms:title "Example Set"@en ; + dcterms:description "Example Set"@en . + + + +################################################################# +# Object Properties +################################################################# + +oneM2M:hasService a owl:ObjectProperty . + +oneM2M:hasOperation a owl:ObjectProperty . + +oneM2M:hasInput a owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +s4grid:obtainInputFromObis a owl:DatatypeProperty . + +s4grid:hasInputObjectType a owl:DatatypeProperty . + +s4grid:obtainInputForProperty a owl:DatatypeProperty . + +s4grid:hasInputDataType a owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +s4grid:Meter a owl:Class . + +s4grid:SetService a owl:Class . + +s4grid:SetOperation a owl:Class . + +s4grid:SetOperationObisInput a owl:Class . + +s4grid:SetOperationObjectInput a owl:Class . + +s4grid:SetOperationDataInput a owl:Class . + + +################################################################# +# Individuals +################################################################# + +ex:Meter1234 a s4grid:Meter, + owl:NamedIndividual ; + oneM2M:hasService ex:SetMulticastCommunicationIdentifier, + ex:SetServiceCapturePeriodIncrementalLoadProfile, + ex:SetServiceDisconnectionScript . + +ex:SetMulticastCommunicationIdentifier a s4grid:SetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:SetOperationMulticastCommunicationIdentifier . + +ex:SetOperationMulticastCommunicationIdentifier a s4grid:SetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:InputMulticastCommunicationIdentifier . + +ex:InputMulticastCommunicationIdentifier a s4grid:SetOperationObisInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-0:96.1.5.255"^^xsd:string ; + s4grid:hasInputObjectType "s4grid:PropertyValue"^^xsd:string . + +ex:SetServiceCapturePeriodIncrementalLoadProfile a s4grid:SetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:SetOperationCapturePeriodIncrementalLoadProfile . + +ex:SetOperationCapturePeriodIncrementalLoadProfile a s4grid:SetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:InputCapturePeriodIncrementalLoadProfile . + +ex:InputCapturePeriodIncrementalLoadProfile a s4grid:SetOperationDataInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "1-0:99.1.0.255"^^xsd:string ; + s4grid:obtainInputForProperty "s4grid:hasCapturePeriod"^^xsd:string ; + s4grid:hasInputDataType "xsd:unsignedLong"^^xsd:string . + +ex:SetServiceDisconnectionScript a s4grid:SetService, + owl:NamedIndividual ; + oneM2M:hasOperation ex:SetOperationDisconnectionScript . + +ex:SetOperationDisconnectionScript a s4grid:SetOperation, + owl:NamedIndividual ; + oneM2M:hasInput ex:InputDisconnectionScript . + +ex:InputDisconnectionScript a s4grid:SetOperationObjectInput, + owl:NamedIndividual ; + s4grid:obtainInputFromObis "0-0:10.0.196.255"^^xsd:string ; + s4grid:obtainInputForProperty "s4grid:storesScript"^^xsd:string ; + s4grid:hasInputObjectType "s4grid:Script"^^xsd:string . \ No newline at end of file diff --git a/ontology/saref4grid.ttl b/ontology/saref4grid.ttl new file mode 100644 index 0000000000000000000000000000000000000000..08d76754e02ea6cf1ea270bbebe73264a726cf3d --- /dev/null +++ b/ontology/saref4grid.ttl @@ -0,0 +1,1180 @@ +@prefix : . +@prefix dcterms: . +@prefix owl: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix saref: . +@prefix vann: . +@prefix schema: . +@prefix oneM2M: . +@prefix s4grid: . +@base . + + rdf:type owl:Ontology ; + dcterms:title "SAREF extension for smart grid"@en ; + dcterms:description "This ontology extends the SAREF ontology for the smart grid domain."@en ; + dcterms:publisher ; + dcterms:creator , + , + ; + owl:versionIRI ; + owl:versionInfo "v1.0.0" ; + dcterms:license ; + dcterms:source ; + vann:preferredNamespacePrefix "s4grid" ; + vann:preferredNamespaceUri "https://saref.etsi.org/saref4grid/" ; + rdfs:comment "The development of the SAREF4GRID ontology has been partially funded by the IA4TES project (MIA.2021.M04.0008), funded by the Spanish Ministry of Economic Affairs and Digital Transformation and by the NextGenerationEU program" . + + +################################################################# +# Creator metadata +################################################################# + +schema:Person a owl:Class . +schema:Organization a owl:Class . +schema:givenName a owl:DatatypeProperty . +schema:familyName a owl:DatatypeProperty . +schema:affiliation a owl:ObjectProperty . +schema:name a owl:DatatypeProperty . + + a schema:Person; + schema:givenName "Sergio-Mario" ; + schema:familyName "Carulli-Pérez" ; + schema:affiliation . + + a schema:Person; + schema:givenName "Raúl" ; + schema:familyName "García-Castro" ; + schema:affiliation . + + a schema:Person; + schema:givenName "María" ; + schema:familyName "Poveda-Villalón" ; + schema:affiliation . + + a schema:Organization ; + schema:name "Universidad Politécnica de Madrid" . + + +################################################################# +# Annotation properties +################################################################# + + +### http://purl.org/dc/terms/creator +dcterms:creator rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/description +dcterms:description rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/license +dcterms:license rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/publisher +dcterms:publisher rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/source +dcterms:source rdf:type owl:AnnotationProperty . + + +### http://purl.org/dc/terms/title +dcterms:title rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespacePrefix +vann:preferredNamespacePrefix rdf:type owl:AnnotationProperty . + + +### http://purl.org/vocab/vann/preferredNamespaceUri +vann:preferredNamespaceUri rdf:type owl:AnnotationProperty . + + + +################################################################# +# Datatypes +################################################################# + + +################################################################# +# Object Properties +################################################################# + +oneM2M:hasInput a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has input"@en . + +oneM2M:hasOperation a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has operation"@en . + +oneM2M:hasOutput a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has output"@en . + +oneM2M:hasService a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has service"@en . + +saref:controlsProperty a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "control property"@en . + +saref:hasFunction a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has function"@en . + +saref:hasMeasurement a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has measurement"@en . + +saref:hasProperty a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has property"@en . + +saref:hasState a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "has state"@en . + +saref:isControlledByDevice a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is controlled by device"@en . + +saref:isMeasuredByDevice a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is measured by device"@en . + +saref:isMeasuredIn a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is measured in"@en . + +saref:isMeasurementOf a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is measurement of"@en . + +saref:isOfferedBy a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is offered by"@en . + +saref:isPropertyOf a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "is property of"@en . + +saref:makesMeasurement a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "makes measurement"@en . + +saref:measurementMadeBy a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "measurement made by"@en . + +saref:measuresProperty a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "measures property"@en . + +saref:offers a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "offers"@en . + +saref:relatesToMeasurement a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "relates to measurement"@en . + +saref:relatesToProperty a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "relates to property"@en . + +saref:represents a owl:ObjectProperty ; + rdfs:isDefinedBy ; + rdfs:label "represents"@en . + +s4grid:executesScript a owl:ObjectProperty ; + rdfs:comment "[COSEM] Defines the script to be executed"@en ; + rdfs:label "executes script"@en ; + rdfs:range s4grid:Script . + +s4grid:hasActiveSeasonProfile a owl:ObjectProperty ; + rdfs:comment "[COSEM] Contains a list of active season profiles. These season profiles form an active calendar"@en ; + rdfs:label "has active season profile"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range s4grid:SeasonProfile . + +s4grid:hasActivityCalendar a owl:ObjectProperty ; + rdfs:comment "The activity calendar of a meter"@en ; + rdfs:label "has activity calendar"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:ActivityCalendar . + +s4grid:hasClock a owl:ObjectProperty ; + rdfs:comment "The clock of the meter"@en ; + rdfs:label "has clock"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:Clock . + +s4grid:hasDayProfile a owl:ObjectProperty ; + rdfs:comment "[COSEM] Day profile for every day of the week of a season"@en ; + rdfs:label "has day profile"@en ; + rdfs:domain s4grid:SeasonProfile ; + rdfs:range s4grid:DayProfile . + +s4grid:hasDaySchedule a owl:ObjectProperty ; + rdfs:comment "The day schedule of a day profile"@en ; + rdfs:label "has day schedule"@en ; + rdfs:domain s4grid:DayProfile ; + rdfs:range s4grid:DaySchedule . + +s4grid:hasFirmware a owl:ObjectProperty ; + rdfs:comment "The firmware of the meter"@en ; + rdfs:label "has firmware"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:Firmware . + +s4grid:hasFridayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Friday of the season"@en ; + rdfs:label "has friday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasMondayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Monday of the season"@en ; + rdfs:label "has monday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasNetworkInterface a owl:ObjectProperty ; + rdfs:comment "The network interface of the meter"@en ; + rdfs:label "has network interface"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:NetworkInterface . + +s4grid:hasPassiveSeasonProfile a owl:ObjectProperty ; + rdfs:comment "[COSEM] Contains a list of passive season profiles. These season profiles form a passive calendar"@en ; + rdfs:label "has passive season profile"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range s4grid:SeasonProfile . + +s4grid:hasProfileGeneric a owl:ObjectProperty ; + rdfs:comment "The profile generic of a meter"@en ; + rdfs:label "has profile generic"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:ProfileGeneric . + +s4grid:hasProperty a owl:ObjectProperty ; + rdfs:comment "A relationship between a property value and the property it relates to"@en ; + rdfs:label "has property"@en ; + rdfs:domain s4grid:PropertyValue ; + rdfs:range saref:Property . + +s4grid:hasPropertyValue a owl:ObjectProperty ; + rdfs:comment "The property value of a meter"@en ; + rdfs:label "has property value"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:PropertyValue . + +s4grid:hasSaturdayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Saturday of the season"@en ; + rdfs:label "has saturday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasScriptTable a owl:ObjectProperty ; + rdfs:comment "The script table of a meter"@en ; + rdfs:label "has script table"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:ScriptTable . + +s4grid:hasSelectiveAccess a owl:ObjectProperty ; + rdfs:comment "The selective access of a profile generic get service"@en ; + rdfs:label "has selective access"@en ; + rdfs:domain s4grid:GetOperation ; + rdfs:range s4grid:SelectiveAccess . + +s4grid:hasSingleScheduledAction a owl:ObjectProperty ; + rdfs:comment "The single scheduled action of a meter"@en ; + rdfs:label "has single scheduled action"@en ; + rdfs:domain s4grid:Meter ; + rdfs:range s4grid:SingleScheduledAction . + +s4grid:hasSpecialDayProfile a owl:ObjectProperty ; + rdfs:comment "It defines when there is a festivity and therefore a normal day behaves as a special date"@en ; + rdfs:label "has special day profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasSundayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Sunday of the season"@en ; + rdfs:label "has sunday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasThursdayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Thursday of the season"@en ; + rdfs:label "has thursday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasTuesdayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Tuesday of the season"@en ; + rdfs:label "has tuesday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasWednesdayProfile a owl:ObjectProperty ; + rdfs:comment "It defines the day profile valid each Wednesday of the season"@en ; + rdfs:label "has wednesday profile"@en ; + rdfs:subPropertyOf s4grid:hasDayProfile . + +s4grid:hasUnit a owl:ObjectProperty ; + rdfs:comment "A relationship identifying the unit of measure used for a certain property value"@en ; + rdfs:label "has unit"@en ; + rdfs:domain s4grid:PropertyValue ; + rdfs:range saref:UnitOfMeasure . + +s4grid:relatedClock a owl:ObjectProperty ; + rdfs:comment "The clock that is captured by a profile generic"@en ; + rdfs:label "related clock"@en ; + rdfs:domain s4grid:ProfileGeneric ; + rdfs:range s4grid:Clock . + +s4grid:relatedMeasurement a owl:ObjectProperty ; + rdfs:comment "The measurement that is captured by a profile generic"@en ; + rdfs:label "related measurement"@en ; + rdfs:domain s4grid:ProfileGeneric ; + rdfs:range saref:Measurement . + +s4grid:relatedPropertyValue a owl:ObjectProperty ; + rdfs:comment "The property value that is captured by a profile generic"@en ; + rdfs:label "related property value"@en ; + rdfs:domain s4grid:ProfileGeneric ; + rdfs:range s4grid:PropertyValue . + +s4grid:storesScript a owl:ObjectProperty ; + rdfs:comment "[COSEM] Specifies the different scripts which are stored in a script table"@en ; + rdfs:label "stores script"@en ; + rdfs:domain s4grid:ScriptTable ; + rdfs:range s4grid:Script . + + +################################################################# +# Data properties +################################################################# +saref:hasTimestamp a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:label "has timestamp"@en ; + rdfs:range xsd:dateTime . + +saref:hasValue a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:label "has value"@en . + +s4grid:obtainFromEntry a owl:DatatypeProperty ; + rdfs:comment "It defines the first entry to be retrieved from a profile generic"@en ; + rdfs:label "obtain from entry"@en ; + rdfs:domain s4grid:EntryDescriptor ; + rdfs:range xsd:unsignedLong . + +s4grid:obtainFromValue a owl:DatatypeProperty ; + rdfs:comment "It restricts the range of entries to be retrieved from a profile generic defining the oldest or smallest entry to retrieve"@en ; + rdfs:label "obtain from value"@en ; + rdfs:domain s4grid:RangeDescriptor . + +s4grid:obtainInputForProperty a owl:DatatypeProperty ; + rdfs:comment "It identifies the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to and object property or datatype property of SAREF4GRID"@en ; + rdfs:label "obtain input for property"@en ; + rdfs:range xsd:string . + +s4grid:obtainInputFromObis a owl:DatatypeProperty ; + rdfs:comment "It identifies the instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to OBIS"@en ; + rdfs:label "obtain input from obis"@en ; + rdfs:domain s4grid:CosemOperationInput ; + rdfs:range xsd:string . + +s4grid:hasActionValue a owl:DatatypeProperty ; + rdfs:comment "It specifies the input of a method from the instance (COSEM object) of a class. The value of this property conforms to a simple type (not a structure)"@en ; + rdfs:label "has action value"@en ; + rdfs:domain s4grid:SimpleActionOperationInput . + +s4grid:hasActivatePassiveCalendarTime a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Defines the time when the passive calendar will be activated"@en ; + rdfs:label "has activate passive calendar time"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range xsd:dateTime . + +s4grid:hasCalendarNameActive a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Used defined name identifying the passive calendar. Typically contains an identifier of the active calendar (currently active), which is descriptive to the set of scripts activated by the object"@en ; + rdfs:label "has calendar name active"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range xsd:string . + +s4grid:hasCalendarNamePassive a owl:DatatypeProperty ; + rdfs:comment "[COSEM] User defined name identifying the passive calendar. Typically contains an identifier of the passive calendar (will be activated), which is descriptive to the set of scripts activated by the object"@en ; + rdfs:label "has calendar name passive"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range xsd:string . + +s4grid:hasCapturePeriod a owl:DatatypeProperty ; + rdfs:comment "[COSEM] The capturing period of a profile generic in seconds. If its value is 0, then there is not automatic capturing; capturing is triggered externally or through capture events occur asynchronously. If its value is greater than 0, then automatic capturing is assumed"@en ; + rdfs:label "has capture period"@en ; + rdfs:domain s4grid:ProfileGeneric ; + rdfs:range xsd:int . + +s4grid:hasClockBase a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Defines where the basic timing information comes from: (0) not defined, (1) internal crystal, (2) mains frequency 50 Hz, (3) mains frequency 60 Hz, (4) GPS (global positioning system), (5) radio controlled"@en ; + rdfs:label "has clock base"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:int . + +s4grid:hasControlMode a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Configures the behaviour of the disconnect control object for all triggers, i.e. the possible state transitions"@en ; + rdfs:label "has control mode"@en ; + rdfs:domain s4grid:BreakerState ; + rdfs:range xsd:int . + +s4grid:hasControlState a owl:DatatypeProperty ; + rdfs:comment "Shows the internal state of the disconnect control object: (0) Disconnected, (1) Connected, (2) Ready for reconnection"@en ; + rdfs:label "has control state"@en ; + rdfs:domain s4grid:BreakerState ; + rdfs:range xsd:int . + +s4grid:hasDayId a owl:DatatypeProperty ; + rdfs:comment "It defines the unique identifier of a day"@en ; + rdfs:label "has day id"@en ; + rdfs:domain s4grid:SpecialDayEntry ; + rdfs:range xsd:int . + +s4grid:hasDaylightSavingsBegin a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Defines the local switch date and time when the local time starts to deviate from the normal time"@en ; + rdfs:label "has daylight savings begin"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:dateTime . + +s4grid:hasDaylightSavingsDeviation a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Contains the number of minutes by which the deviation in generalized time shall be corrected at daylight savings begin"@en ; + rdfs:label "has daylight savings deviation"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:integer . + +s4grid:hasDaylightSavingsEnabled a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Enable and disable the daylight savings time feature"@en ; + rdfs:label "has daylight savings enabled"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:boolean . + +s4grid:hasDaylightSavingsEnd a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Defines the local switch date and time when the local time ends to deviate from the local normal time"@en ; + rdfs:label "has daylight savings end"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:dateTime . + +s4grid:hasExecutionTime a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Specifies the time and the date when the script is executed"@en ; + rdfs:label "has execution time"@en ; + rdfs:domain s4grid:SingleScheduledAction ; + rdfs:range xsd:dateTime . + +s4grid:hasFirmwareVersion a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Textual description of the firmware version running on the device"@en ; + rdfs:label "has firmware version"@en ; + rdfs:domain s4grid:Firmware ; + rdfs:range xsd:string . + +s4grid:hasIndex a owl:DatatypeProperty ; + rdfs:comment "It defines the index of the special day"@en ; + rdfs:label "has index"@en ; + rdfs:domain s4grid:SpecialDayEntry ; + rdfs:range xsd:unsignedShort . + +s4grid:hasMACAddress a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Holds the MAC address"@en ; + rdfs:label "has m a c address"@en ; + rdfs:domain s4grid:NetworkInterface ; + rdfs:range xsd:string . + +s4grid:hasObis a owl:DatatypeProperty ; + rdfs:comment "[COSEM] It identifies the instance (COSEM object) of a class. The value of this property conforms to OBIS. OBject Identification System (OBIS) provides a unique identifier for all data within the metering equipment, including not only measurement values, but also abstract values used for configuration or obtaining information about the behaviour of the metering equipment"@en ; + rdfs:label "has obis"@en ; + rdfs:range xsd:string . + +s4grid:hasOutputState a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Shows the actual physical state of the device connection to the supply: (True) Connected, (False) Disconnected"@en ; + rdfs:label "has output state"@en ; + rdfs:domain s4grid:BreakerState ; + rdfs:range xsd:boolean . + +s4grid:hasProductId a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Vendor-assigned unique identifier for the specific product"@en ; + rdfs:label "has product id"@en ; + rdfs:domain s4grid:Firmware ; + rdfs:range xsd:unsignedShort . + +s4grid:hasPresetTime a owl:DatatypeProperty ; + rdfs:comment "It pre-sets the clock time to a new value"@en ; + rdfs:label "has preset time"@en ; + rdfs:domain s4grid:PresetAdjustingTime ; + rdfs:range xsd:dateTime . + +s4grid:hasSeasonProfileName a owl:DatatypeProperty ; + rdfs:comment "[COSEM] User defined name identifying the current season profile"@en ; + rdfs:label "has season profile name"@en ; + rdfs:domain s4grid:SeasonProfile ; + rdfs:range xsd:string . + +s4grid:hasSeasonStart a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Starting time of the season profile. The current season profile is terminated by the starting time of the next season"@en ; + rdfs:label "has season start"@en ; + rdfs:domain s4grid:ActivityCalendar ; + rdfs:range xsd:dateTime . + +s4grid:hasSpecialDate a owl:DatatypeProperty ; + rdfs:comment "It defines the date at which a normal day is considered a special date"@en ; + rdfs:label "has special date"@en ; + rdfs:domain s4grid:SpecialDayEntry ; + rdfs:range xsd:date . + +s4grid:hasSpecialDayDate a owl:DatatypeProperty ; + rdfs:comment "Dates at which a normal day is considered a special date (i.e., Christmas)"@en ; + rdfs:label "has special day date"@en ; + rdfs:domain s4grid:SpecialDayProfile ; + rdfs:range xsd:date . + +s4grid:hasStartTime a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Time when the script is going to be executed"@en ; + rdfs:label "has start time"@en ; + rdfs:domain s4grid:DaySchedule ; + rdfs:range xsd:time . + +s4grid:hasStatus a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Status of the clock"@en ; + rdfs:label "has status"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:int . + +s4grid:hasTime a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Meter’s local date and time"@en ; + rdfs:label "has time"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:dateTime . + +s4grid:hasTimeZone a owl:DatatypeProperty ; + rdfs:comment "[COSEM] The deviation of local, normal time to UTC in minutes. The value depends on the geographical location of the meter"@en ; + rdfs:label "has time zone"@en ; + rdfs:domain s4grid:Clock ; + rdfs:range xsd:long . + +s4grid:hasValidityIntervalEnd a owl:DatatypeProperty ; + rdfs:comment "It defines the end of a validity interval within which the new time can be activated"@en ; + rdfs:label "has validity interval end"@en ; + rdfs:domain s4grid:PresetAdjustingTime ; + rdfs:range xsd:dateTime . + +s4grid:hasValidityIntervalStart a owl:DatatypeProperty ; + rdfs:comment "It defines the start of a validity interval within which the new time can be activated"@en ; + rdfs:label "has validity interval start"@en ; + rdfs:domain s4grid:PresetAdjustingTime ; + rdfs:range xsd:dateTime . + +s4grid:hasValue a owl:DatatypeProperty ; + rdfs:comment "A relationship defining the value of a certain property which is not observable by the meter"@en ; + rdfs:label "has value"@en ; + rdfs:domain s4grid:PropertyValue . + +s4grid:hasVendorId a owl:DatatypeProperty ; + rdfs:comment "[COSEM] Unique vendor identifier assigned by the PRIME Alliance"@en ; + rdfs:label "has vendor id"@en ; + rdfs:domain s4grid:Firmware ; + rdfs:range xsd:unsignedShort . + +s4grid:hasInputDataType a owl:DatatypeProperty ; + rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of a datatype property of SAREF4GRID"@en ; + rdfs:label "has input data type"@en ; + rdfs:domain s4grid:SetOperationDataInput ; + rdfs:range xsd:string . + +s4grid:hasInputObjectType a owl:DatatypeProperty ; + rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of an object property of SAREF4GRID"@en ; + rdfs:label "has input object type"@en ; + rdfs:range xsd:string . + +s4grid:hasOutputDataType a owl:DatatypeProperty ; + rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of a datatype property of SAREF4GRID"@en ; + rdfs:label "has output data type"@en ; + rdfs:domain s4grid:GetOperationDataOutput ; + rdfs:range xsd:string . + +s4grid:hasOutputObjectType a owl:DatatypeProperty ; + rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of an object property of SAREF4GRID"@en ; + rdfs:label "has output object type"@en ; + rdfs:domain s4grid:GetOperationObjectOutput ; + rdfs:range xsd:string . + +s4grid:obtainToEntry a owl:DatatypeProperty ; + rdfs:comment "It defines the last entry to be retrieved from a profile generic"@en ; + rdfs:label "obtain to entry"@en ; + rdfs:domain s4grid:EntryDescriptor ; + rdfs:range xsd:unsignedLong . + +s4grid:obtainToValue a owl:DatatypeProperty ; + rdfs:comment "It restricts the range of entries to be retrieved from a profile generic defining the newest or largest entry to retrieve"@en ; + rdfs:label "obtain to value"@en ; + rdfs:domain s4grid:RangeDescriptor . + +################################################################# +# Classes +################################################################# + +oneM2M:Device a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Device"@en . + +oneM2M:OperationInput a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Operation Input"@en . + +oneM2M:OperationOutput a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Operation Output"@en . + +oneM2M:Operation a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Operation"@en . + +oneM2M:Service a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Service"@en ; + owl:equivalentClass saref:Service . + +saref:Device a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Device"@en . + +saref:FeatureOfInterest a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Feature Of Interest"@en . + +saref:Function a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Function"@en . + +saref:Measurement a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Measurement"@en . + +saref:Meter a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Meter"@en ; + rdfs:subClassOf saref:Sensor . + +saref:Property a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Property"@en . + +saref:Sensor a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Sensor"@en ; + rdfs:subClassOf saref:Device . + +saref:Service a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Service"@en . + +saref:State a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "State"@en . + +saref:UnitOfMeasure a owl:Class ; + rdfs:isDefinedBy ; + rdfs:label "Unit Of Measure"@en . + +s4grid:ActionOperation a owl:Class ; + rdfs:comment "This class is the means of an action 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 ; + rdfs:label "Action Operation"@en ; + rdfs:subClassOf oneM2M:Operation . + +s4grid:ActionService a owl:Class ; + rdfs:comment "This class is a representation of an action function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. Actions can be performed over classes that are characterised by an OBIS code"@en ; + rdfs:label "Action Service"@en ; + rdfs:subClassOf saref:Service . + +s4grid:ActivityCalendar a owl:Class ; + rdfs:comment "[COSEM] This class allows handling various tariff structures in the meter. This class provides a list of scheduled actions, following the classical way of calendar-based schedules by defining seasons, weeks, etc"@en ; + rdfs:label "Activity Calendar"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasCalendarNameActive ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasCalendarNamePassive ], + [ a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasActivatePassiveCalendarTime ] . + +s4grid:Clock a owl:Class ; + rdfs:comment "[COSEM] This class models the device clock, managing all information related to date and time including deviations of the local time to a generalized time reference (UTC) due to time zones and daylight-saving time schemes"@en ; + rdfs:label "Clock"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasTime ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasTimeZone ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasStatus ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasDaylightSavingsBegin ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasDaylightSavingsEnd ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasDaylightSavingsDeviation ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasDaylightSavingsEnabled ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasClockBase ] . + +s4grid:ComplexActionOperationInput a owl:Class ; + rdfs:comment "This class indicates that the parameter needed by the action to operate is complex (i.e., structure)"@en ; + rdfs:label "Complex Action Operation Input"@en ; + rdfs:subClassOf s4grid:CosemOperationInput . + +s4grid:BreakerState a owl:Class ; + rdfs:comment "[COSEM] This class manages an internal or external disconnect unit of the meter (e.g. electricity breaker, gas valve) in order to connect or disconnect – partly or entirely – the premises of the consumer to / from the supply"@en ; + rdfs:label "Breaker State"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasOutputState ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasControlState ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasControlMode ], + saref:State . + +s4grid:CosemOperationInput a owl:Class ; + rdfs:comment "This class specifies the instance at which a service (get, set or action) is going to be executed by indicating the OBIS code"@en ; + rdfs:label "Cosem Operation Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:obtainInputFromObis ], + oneM2M:OperationInput . + +s4grid:DayProfile a owl:Class ; + rdfs:comment "[COSEM] This class represents a list of scheduled actions which are defined by a script to be executed and the corresponding activation time"@en ; + rdfs:label "Day Profile"@en . + +s4grid:DaySchedule a owl:Class ; + rdfs:comment "Scheduled actions to be executed at a given time for a day profile"@en ; + rdfs:label "Day Scheduled"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasStartTime ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:executesScript ] . + +s4grid:EnergyAndPowerProperty a owl:Class ; + rdfs:comment "Class to group those properties related to the energy and power of power lines"@en ; + rdfs:label "Energy Power Property"@en ; + rdfs:subClassOf saref:Property . + +s4grid:EntryDescriptor a owl:Class ; + rdfs:comment "In the case of a get service of a profile generic class a selective access can be specified. This indicates the range of entries to be retrieved from the profile generic class"@en ; + rdfs:label "Entry Descriptor"@en ; + rdfs:subClassOf s4grid:SelectiveAccess . + +s4grid:Firmware a owl:Class ; + rdfs:comment "[COSEM] This class holds identification information related to administration and maintenance of meters. They are not communication parameters but allow the device management"@en ; + rdfs:label "Firmware"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasFirmwareVersion ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasVendorId ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasProductId ] . + +s4grid:GetOperationDataOutput a owl:Class ; + rdfs:comment "This class specifies that the output of a get operation is going to be a datatype"@en ; + rdfs:label "Get Operation Data Output"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasOutputDataType ], + s4grid:GetOperationOutput . + +s4grid:GetOperationObjectOutput a owl:Class ; + rdfs:comment "This class specifies that the output of a get operation is going to be a class"@en ; + rdfs:label "Get Operation Object Output"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasOutputObjectType ], + s4grid:GetOperationOutput . + +s4grid:GetOperationOutput a owl:Class ; + rdfs:comment "This class specifies the output of a get operation, which can be either a class or a datatype"@en ; + rdfs:label "Get Operation Output"@en ; + rdfs:subClassOf oneM2M:OperationOutput . + +s4grid:GetOperationPropertyInput a owl:Class ; + rdfs:comment "This class specifies the object/datatype property of an instance from which data is going to be retrieved by indicating the name of the object/datatype property"@en ; + rdfs:label "Get Operation Property Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:obtainInputForProperty ], + s4grid:CosemOperationInput . + +s4grid:GetOperation a owl:Class ; + rdfs:comment "This class is the means of a get 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 ; + rdfs:label "Get Operation"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty oneM2M:hasOutput ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty oneM2M:hasInput ], + oneM2M:Operation . + +s4grid:GetService a owl:Class ; + rdfs:comment "This class is a representation of a get function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network"@en ; + rdfs:label "Get Service"@en ; + rdfs:subClassOf saref:Service . + +s4grid:MeterProperty a owl:Class ; + rdfs:comment "Class to group those properties related to electric grid meters"@en ; + rdfs:label "Meter Property"@en ; + rdfs:subClassOf saref:Property . + +s4grid:Meter a owl:Class ; + rdfs:comment "Metering device that remotely records real electricity consumption. This device allows to control all the information regarding consumption for any time range, automatically and remotely"@en ; + rdfs:label "Meter"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom [ a owl:Restriction ; + owl:allValuesFrom s4grid:MeterProperty ; + owl:onProperty s4grid:hasProperty ] ; + owl:onProperty s4grid:hasPropertyValue ], + saref:Meter . + +s4grid:NetworkInterface a owl:Class ; + rdfs:comment "[COSEM] This class holds the MAC address of the physical device (or, more generally, of a device or software). There shall be an instance of this class for each network interface of the physical device"@en ; + rdfs:label "Network Interface"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasMACAddress ] . + +s4grid:PowerLine a owl:Class ; + rdfs:comment "Interconnected network for electricity delivery from producers to consumers"@en ; + rdfs:label "Power Line"@en ; + rdfs:subClassOf saref:FeatureOfInterest . + +s4grid:PresetAdjustingTime a owl:Class ; + rdfs:comment "This class represents the parameters that are needed by a clock to modify its time"@en ; + rdfs:label "Preset Adjusting Time"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasPresetTime ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasValidityIntervalStart ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasValidityIntervalEnd ], + s4grid:ComplexActionOperationInput . + +s4grid:ProfileGeneric a owl:Class ; + rdfs:comment "[COSEM] This class provides a generalized concept allowing to store, sort and access data groups or data series, called capture objects. Capture objects are appropriate attributes or elements of (an) attribute(s) of COSEM objects. The capture objects are collected periodically or occasionally"@en ; + rdfs:label "Profile Generic"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasCapturePeriod ] . + +s4grid:PropertyValue a owl:Class ; + rdfs:comment "A value (which may have a unit of measurement) that is related to a property which is not observable by the meter (i.e., is not a measurement)"@en ; + rdfs:label "Property Value"@en . + +s4grid:QualityProperty a owl:Class ; + rdfs:comment "Class to group those properties related to the quality of power lines"@en ; + rdfs:label "Quality Property"@en ; + rdfs:subClassOf saref:Property . + +s4grid:RangeDescriptor a owl:Class ; + rdfs:comment "In the case of a get service of a profile generic class a selective access can be specified. This indicates the range of values to be retrieved from the profile generic class"@en ; + rdfs:label "Range Descriptor"@en ; + rdfs:subClassOf s4grid:SelectiveAccess . + +s4grid:RegularDayProfile a owl:Class ; + rdfs:comment "This class represents normal dates"@en ; + rdfs:label "Regular Day Profile"@en ; + rdfs:subClassOf s4grid:DayProfile . + +s4grid:ScriptTable a owl:Class ; + rdfs:comment "This class allows modelling the triggering of a series of actions by executing scripts"@en ; + rdfs:label "Script Table"@en . + +s4grid:Script a owl:Class ; + rdfs:comment "[COSEM] Lists of actions to be executed by the meter"@en ; + rdfs:label "Script"@en ; + rdfs:subClassOf saref:Function . + +s4grid:SeasonProfile a owl:Class ; + rdfs:comment "[COSEM] This class represents a season which is defined by its starting date and a specific day profile to be executed"@en ; + rdfs:label "Season Profile"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSeasonProfileName ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSeasonStart ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasMondayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasTuesdayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasWednesdayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasThursdayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasFridayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSaturdayProfile ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSundayProfile ] . + +s4grid:SelectiveAccess a owl:Class ; + rdfs:comment "The get operations property-related services typically reference the entire property. However, in the case of certain properties, selective access to only part of the property may be provided"@en ; + rdfs:label "Selective Access"@en ; + rdfs:subClassOf oneM2M:OperationInput . + +s4grid:SetOperationDataInput a owl:Class ; + rdfs:comment "This class specifies that just the range of a datatype property of the instance is going to be modified"@en ; + rdfs:label "Set Operation Data Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:obtainInputForProperty ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasInputDataType ], + s4grid:CosemOperationInput . + +s4grid:SetOperationObisInput a owl:Class ; + rdfs:comment "This class specifies that the whole instance is going to be modified"@en ; + rdfs:label "Set Operation Obis Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasInputObjectType ], + s4grid:CosemOperationInput . + +s4grid:SetOperationObjectInput a owl:Class ; + rdfs:comment "This class specifies that just the range of an object property of the instance is going to be modified"@en ; + rdfs:label "Set Operation Object Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:obtainInputForProperty ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasInputObjectType ], + s4grid:CosemOperationInput . + +s4grid:SetOperation a owl:Class ; + rdfs:comment "This class is the means of a set 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 ; + rdfs:label "Set Operation"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty oneM2M:hasInput ], + oneM2M:Operation . + +s4grid:SetService a owl:Class ; + rdfs:comment "This class is a representation of a set function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network"@en ; + rdfs:label "Set Service"@en ; + rdfs:subClassOf saref:Service . + +s4grid:SimpleActionOperationInput a owl:Class ; + rdfs:comment "This class indicates that the parameter needed by the action to operate is simple (i.e., integer, string, etc)"@en ; + rdfs:label "Simple Action Operation Input"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasActionValue ], + s4grid:CosemOperationInput . + +s4grid:SingleScheduledAction a owl:Class ; + rdfs:comment "[COSEM] This class allows modelling the execution of periodic actions within a meter; such actions are not necessarily linked to tariffication"@en ; + rdfs:label "Single Scheduled Action"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:executesScript ] . + +s4grid:SpecialDayEntry a owl:Class ; + rdfs:comment "This class represents the parameters that are needed by an activity calendar for adding a new special day"@en ; + rdfs:label "Special Day Entry"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasIndex ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSpecialDate ], + [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasDayId ], + s4grid:ComplexActionOperationInput . + +s4grid:SpecialDayProfile a owl:Class ; + rdfs:comment "[COSEM] This class allows defining special dates. On such dates, a special switching behaviour overrides the normal one"@en ; + rdfs:label "Special Day Profile"@en ; + rdfs:subClassOf [ a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4grid:hasSpecialDayDate ], + s4grid:DayProfile . + + +################################################################# +# Individuals +################################################################# + +s4grid:ActiveEnergy a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its active energy"@en ; + rdfs:label "Active Energy"@en . + +s4grid:ActivePower a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its active power"@en ; + rdfs:label "Active Power"@en . + +s4grid:ApparentPower a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its apparent power"@en ; + rdfs:label "Apparent Power"@en . + +s4grid:BillingPeriod a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter that indicates the period in which a given billing is being applied"@en ; + rdfs:label "Billing Period"@en . + +s4grid:Current a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its current"@en ; + rdfs:label "Current"@en . + +s4grid:DemandRegister a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its demand register"@en ; + rdfs:label "Demand Register"@en . + +s4grid:DurationLongPowerFailure a owl:NamedIndividual, + s4grid:QualityProperty ; + rdfs:comment "Property of the power line indicating the duration of the long power failures detected"@en ; + rdfs:label "Duration Long Power Failure"@en . + +s4grid:DurationVoltageSag a owl:NamedIndividual, + s4grid:QualityProperty ; + rdfs:comment "Property of the power line indicating the duration of the voltage sags detected"@en ; + rdfs:label "Duration Voltage Sag"@en . + +s4grid:DurationVoltageSwell a owl:NamedIndividual, + s4grid:QualityProperty ; + rdfs:comment "Property of the power line indicating the duration of the voltage swells detected"@en ; + rdfs:label "Duration Voltage Swell"@en . + +s4grid:LongPowerFailuresNumber a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating the number of long power failures detected"@en ; + rdfs:label "Long Power Failures Number"@en . + +s4grid:Manufacturer a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its manufacturer information"@en ; + rdfs:label "Manufacturer"@en . + +s4grid:Network a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its network information"@en ; + rdfs:label "Network"@en . + +s4grid:Phase a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its phase"@en ; + rdfs:label "Phase"@en . + +s4grid:PhaseAngle a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its phase angle"@en ; + rdfs:label "Phase Angle"@en . + +s4grid:PowerFactor a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its power factor"@en ; + rdfs:label "Power Factor"@en . + +s4grid:PowerLimit a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its power limit"@en ; + rdfs:label "Power Limit"@en . + +s4grid:PowerQuality a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its power quality"@en ; + rdfs:label "Power Quality"@en . + +s4grid:ProfileStatus a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its profile generic status"@en ; + rdfs:label "Profile Status"@en . + +s4grid:Quadrant a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating its quadrant"@en ; + rdfs:label "Quadrant"@en . + +s4grid:ReactiveEnergy a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its reactive energy"@en ; + rdfs:label "Reactive Energy"@en . + +s4grid:ReactivePower a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its reactive power"@en ; + rdfs:label "Reactive Power"@en . + +s4grid:ScreenDisplay a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating information about its screen"@en ; + rdfs:label "Screen Display"@en . + +s4grid:Threshold a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating a threshold limit"@en ; + rdfs:label "Threshold"@en . + +s4grid:TimeThreshold a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating the time outside a threshold"@en ; + rdfs:label "Time Threshold"@en . + +s4grid:TransformerRatio a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating the transformer turn ratio"@en ; + rdfs:label "Transformer Ratio"@en . + +s4grid:Voltage a owl:NamedIndividual, + s4grid:EnergyAndPowerProperty ; + rdfs:comment "Property of the power line indicating its voltage"@en ; + rdfs:label "Voltage"@en . + +s4grid:VoltageSagNumber a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating the number of voltage sags detected"@en ; + rdfs:label "Voltage Sag Number"@en . + +s4grid:VoltageSwellNumber a owl:NamedIndividual, + s4grid:MeterProperty ; + rdfs:comment "Property of the meter indicating the number of voltage swells detected"@en ; + rdfs:label "Voltage Swell Number"@en . diff --git a/requirements/requirements.csv b/requirements/requirements.csv new file mode 100644 index 0000000000000000000000000000000000000000..a8746669fa5a1e5fa868dc3c3c14ec22eca7a2b8 --- /dev/null +++ b/requirements/requirements.csv @@ -0,0 +1,127 @@ +Id;Category;Requirement +GRID-1;Remote management of meters;A meter stores manufacturer information +GRID-2;Remote management of meters;A meter stores screen display information +GRID-3;Remote management of meters;A meter stores a voltage ratio +GRID-4;Remote management of meters;A meter stores a current ratio +GRID-5;Remote management of meters;A meter has a firmware +GRID-6;Remote management of meters;A meter stores network information +GRID-7;Remote management of meters;A meter can send its manufacturer information +GRID-8;Remote management of meters;A meter can modify and send its network information +GRID-9;Remote management of meters;A meter can modify and send its voltage ratio +GRID-10;Remote management of meters;A meter can modify and send its current ratio +GRID-11;Remote management of meters;A meter can modify and send its display information +GRID-12;Remote management of meters;A meter can update its firmware +GRID-13;Remote management of meters;A meter can reconnect or disconnect a client to the electrical network +GRID-14;Remote management of meters;A meter has a power threshold +GRID-15;Remote management of meters;A power threshold is measured as a percentage +GRID-16;Remote management of meters;A meter stores reconnect or disconnect requests scheduled for a specific time +GRID-17;Remote management of meters;A meter can be instantly disconnected/reconnected to the low voltage network +GRID-18;Remote management of meters;A meter can be scheduled to be disconnected/reconnected to the low voltage network at a given time +GRID-19;Remote management of meters;A meter has different types of contracts +GRID-20;Remote management of meters;A contract has an activity calendar +GRID-21;Remote management of meters;A contract has a power limit +GRID-22;Remote management of meters;The power limit of a contract can be disabled +GRID-23;Remote management of meters;The power limit of a contract is measured in watts (W) +GRID-24;Remote management of meters;A meter can modify the power limit of a contract +GRID-25;Remote management of meters;A meter can modify the activity calendar of a contract +GRID-26;Remote management of meters;A meter measures the active energy import in each phase +GRID-27;Remote management of meters;A meter measures the active energy export in each phase +GRID-28;Remote management of meters;Active energy is measured in watt hour (Wh) or kilowatt hour (kWh) +GRID-29;Remote management of meters;A meter measures different types of reactive energy in each phase +GRID-30;Remote management of meters;Reactive energy is measured in volt-ampere reactive hour (VArh) or kilovolt-ampere reactive hour (kVArh) +GRID-31;Remote management of meters;A meter stores incremental and absolute values for each active and reactive energy measure +GRID-32;Remote management of meters;A meter stores a timestamp for each active and reactive energy measure +GRID-33;Remote management of meters;A meter can send an hourly incremental load profile +GRID-34;Remote management of meters;An hourly incremental load profile is represented by the incremental values of the measures performed by the meter each hour +GRID-35;Remote management of meters;A meter can send a reduced hourly incremental load profile +GRID-36;Remote management of meters;A reduced hourly incremental load profile is represented by the incremental active energy values measured by the meter each hour +GRID-37;Remote management of meters;A meter can send a daily billing values profile +GRID-38;Remote management of meters;A daily billing values profile is represented by the absolute values of the measures performed by the meter each day +GRID-39;Remote management of meters;A meter can send a monthly billing values profile +GRID-40;Remote management of meters;A monthly billing values profile is represented by the absolute and incremental values of the measures performed by the meter each month +GRID-41;Remote management of meters;A meter has a threshold for voltage sags, voltage swells, and long power failures +GRID-42;Remote management of meters;Thresholds are measured as percentages +GRID-43;Remote management of meters;A meter has a time threshold for voltage sags, voltage swells, and long power failures +GRID-44;Remote management of meters;Time thresholds are measured in seconds +GRID-45;Remote management of meters;A meter stores the number of voltage swells, voltage sags, and long power failures that occur in each phase +GRID-46;Remote management of meters;A meter stores the duration of each voltage swell, voltage sag, and long power failure that occurs in each phase +GRID-47;Remote management of meters;Durations are measured in seconds +GRID-48;Remote management of meters;A meter can send a voltage failure report +GRID-49;Remote management of meters;A voltage failure report is represented by the time threshold, number, and duration of the long power failures in each phase +GRID-50;Remote management of meters;A meter can send a power quality report +GRID-51;Remote management of meters;A power quality report is represented by the number and duration of voltage swells, voltage sags, and long power failures in each phase +GRID-52;Management of tertiary sensor devices;A data concentrator manages a set of meters +GRID-53;Management of tertiary sensor devices;A data concentrator stores the identifier of the meters it manages +GRID-54;Management of tertiary sensor devices;A data concentrator collects information from the meters it manages +GRID-55;Management of tertiary sensor devices;A data concentrator stores manufacturer information +GRID-56;Management of tertiary sensor devices;A data concentrator has a firmware +GRID-57;Management of tertiary sensor devices;A data concentrator stores network information +GRID-58;Management of tertiary sensor devices;A data concentrator stores tasks configuration +GRID-59;Management of tertiary sensor devices;A data concentrator stores data collection configuration +GRID-60;Management of tertiary sensor devices;A data concentrator can stop managing a meter +GRID-61;Management of tertiary sensor devices;A data concentrator can update its firmware +GRID-62;Management of tertiary sensor devices;A data concentrator can receive an order to execute a task at the moment +GRID-63;Management of tertiary sensor devices;A data concentrator can receive an order to execute a scheduled task +GRID-64;Management of tertiary sensor devices;A data concentrator can modify its network information +GRID-65;Management of tertiary sensor devices;A data concentrator can send its task configuration +GRID-66;Management of tertiary sensor devices;A data concentrator can send the identifier of the meters that it manages +GRID-67;Management of tertiary sensor devices;A data concentrator can send its collect configuration +GRID-68;Management of tertiary sensor devices;A data concentrator can send its network information +GRID-69;Management of tertiary sensor devices;A data concentrator can generate a daily communication report +GRID-70;Management of tertiary sensor devices;A data concentrator can generate an hourly communication report +GRID-71;Management of tertiary sensor devices;A data concentrator can generate a performance report with information about the tasks in progress +GRID-72;Management of tertiary sensor devices;A data concentrator can generate a performance report with historical information about the finished tasks +GRID-73;Management of tertiary sensor devices;A data concentrator can generate a performance report with information about scheduled tasks +GRID-74;Management of tertiary sensor devices;A data concentrator can generate a maintenance report with information about firmware updates performed in the meters that it manages +GRID-75;Management of tertiary sensor devices;A data concentrator can generate a historical quality report +GRID-76;Management of tertiary sensor devices;A data concentrator can generate a historical maintenance report with information about the parameters modified in the concentrator +GRID-77;Management of tertiary sensor devices;A line supervision card stores manufacturer information +GRID-78;Management of tertiary sensor devices;A line supervision card has a firmware +GRID-79;Management of tertiary sensor devices;A line supervision card stores communication information +GRID-80;Management of tertiary sensor devices;A line supervision card can send its manufacturer information +GRID-81;Management of tertiary sensor devices;A line supervision card can send its firmware information +GRID-82;Management of tertiary sensor devices;A line supervision card can update its firmware +GRID-83;Management of tertiary sensor devices;A line supervision card can send its communication information +GRID-84;Management of tertiary sensor devices;A line supervision card can modify its communication information +GRID-85;Management of tertiary sensor devices;A remote terminal unit manages a set of line supervision cards +GRID-86;Management of tertiary sensor devices;A remote terminal unit stores the identifier of the line supervision cards that it manages +GRID-87;Management of tertiary sensor devices;A remote terminal unit collects information from the line supervision cards that it manages +GRID-88;Management of tertiary sensor devices;A remote terminal unit stores manufacturer information +GRID-89;Management of tertiary sensor devices;A remote terminal unit has a firmware +GRID-90;Management of tertiary sensor devices;A remote terminal unit stores its task configuration +GRID-91;Management of tertiary sensor devices;A remote terminal unit stores its data collection configuration +GRID-92;Management of tertiary sensor devices;A remote terminal can stop managing a line supervision card +GRID-93;Management of tertiary sensor devices;A remote terminal can modify its dynamic parameters +GRID-94;Management of tertiary sensor devices;A remote terminal can send its dynamic and static parameters +GRID-95;Management of tertiary sensor devices;A remote terminal unit can update its firmware +GRID-96;Management of tertiary sensor devices;A remote terminal unit can send it task schedule +GRID-97;Management of tertiary sensor devices;A remote terminal unit can send its event information +GRID-98;Management of tertiary sensor devices;A remote terminal unit can send the identifier of the line supervision cards it manages +GRID-99;Management of OLTC transformers;A meter stores each second the voltage, current and power measured in each phase +GRID-100;Management of OLTC transformers;A line supervision card stores each second the voltage, current and the active and reactive power measured in each phase +GRID-101;Management of OLTC transformers;A meter stores each second the voltage amplitude measured in each phase +GRID-102;Management of OLTC transformers;A remote terminal unit stores each second the voltage amplitude measured in each phase +GRID-103;Management of OLTC transformers;A meter can send an instantaneous values profile +GRID-104;Management of OLTC transformers;An instantaneous values profile is represented by the instant data values that the meter measures +GRID-105;Management of OLTC transformers;A meter can send a voltage and current profile +GRID-106;Management of OLTC transformers;A voltage and current profile is represented by the average voltage/current/power measured in each phase over a period of time +GRID-107;Management of OLTC transformers;A meter can send an extended voltage profile +GRID-108;Management of OLTC transformers;An extended voltage profile is represented by the average voltage/current/power measured in each phase during a period of time and the maximum and minimum values registered in that period per phase +GRID-109;Management of OLTC transformers;A meter can send an hourly instantaneous values profile +GRID-110;Management of OLTC transformers;An hourly instantaneous values profile is represented by the instant data values measured in a meter each hour +GRID-111;Management of OLTC transformers;A meter can send a voltage profile +GRID-112;Management of OLTC transformers;A voltage profile is represented by the average, maximum, and minimum values of the voltage measured in each phase over a period of time +GRID-113;Management of OLTC transformers;A line supervision card can send a real time values report +GRID-114;Management of OLTC transformers;A real-time values report is represented by the voltage/current/active and reactive power magnitudes measured in each phase +GRID-115;Management of OLTC transformers;A line supervision card can send an average voltage and current profile +GRID-116;Management of OLTC transformers;An average voltage and current profile is represented by the average voltage/current/active and reactive power magnitudes measured in each phase over a period of time +GRID-117;Management of OLTC transformers;A meter can send a voltage amplitude profile +GRID-118;Management of OLTC transformers;A remote terminal unit can send a voltage amplitude profile +GRID-119;Management of OLTC transformers;A voltage amplitude profile is represented by the average voltage amplitude measured in each phase during a period of time +GRID-120;Detection of meters connectivity;Clients are connected to the electrical network through meters +GRID-121;Detection of meters connectivity;Meters store the actual connectivity data +GRID-122;Detection of meters connectivity;Meters store a register of connectivity data +GRID-123;Detection of meters connectivity;Meters can send its connectivity data +GRID-124;Detection of meters connectivity;A line supervision card can send an instantaneous current profile +GRID-125;Detection of meters connectivity;An instantaneous current profile is represented by the current measured in each phase at each second +GRID-126;Detection of meters connectivity;Meters can send its register of connectivity data diff --git a/tests/tests.csv b/tests/tests.csv new file mode 100644 index 0000000000000000000000000000000000000000..a7960d4c5454cbcb7f289cf38f97ac966f0112a8 --- /dev/null +++ b/tests/tests.csv @@ -0,0 +1,175 @@ +Id;Requirement;Category;Test +GRID-TEST-1;GRID-1;Remote management of meters;Meter hasPropertyValue PropertyValue +GRID-TEST-2;GRID-1;Remote management of meters;PropertyValue hasProperty MeterProperty +GRID-TEST-3;GRID-1;Remote management of meters;Manufacturer type MeterProperty +GRID-TEST-4;GRID-2;Remote management of meters;ScreenDisplay type MeterProperty +GRID-TEST-5;GRID-3;Remote management of meters;TransformerRatio type MeterProperty +GRID-TEST-6;GRID-4;Remote management of meters;TransformerRatio type MeterProperty +GRID-TEST-7;GRID-5;Remote management of meters;Meter hasFirmware Firmware +GRID-TEST-8;GRID-6;Remote management of meters;Network type MeterProperty +GRID-TEST-9;GRID-7;Remote management of meters;MeterProperty hasObis string +GRID-TEST-10;GRID-7;Remote management of meters;Meter hasService GetService +GRID-TEST-11;GRID-7;Remote management of meters;GetService hasOperation GetOperation +GRID-TEST-12;GRID-7;Remote management of meters;GetService hasInput GetOperationPropertyInput +GRID-TEST-13;GRID-7;Remote management of meters;GetOperationPropertyInput obtainInputFromObis string +GRID-TEST-14;GRID-7;Remote management of meters;GetOperationPropertyInput obtainInputForProperty string +GRID-TEST-15;GRID-7;Remote management of meters;GetService hasOutput GetOperationObjectOutput +GRID-TEST-16;GRID-7;Remote management of meters;GetOperationObjectOutput hasOutputObjectType string +GRID-TEST-17;GRID-8;Remote management of meters;Meter hasService SetService +GRID-TEST-18;GRID-8;Remote management of meters;SetService hasOperation SetOperation +GRID-TEST-19;GRID-8;Remote management of meters;SetOperation hasInput SetOperationObjectInput +GRID-TEST-20;GRID-8;Remote management of meters;SetOperationObjectInput obtainInputFromObis string +GRID-TEST-21;GRID-8;Remote management of meters;SetOperationObjectInput obtainInputForProperty string +GRID-TEST-22;GRID-8;Remote management of meters;SetOperationObjectInput hasInputObjectType string +GRID-TEST-23;GRID-8;Remote management of meters;Meter hasService GetService +GRID-TEST-24;GRID-9;Remote management of meters;Meter hasService SetService +GRID-TEST-25;GRID-9;Remote management of meters;Meter hasService GetService +GRID-TEST-26;GRID-10;Remote management of meters;Meter hasService SetService +GRID-TEST-27;GRID-10;Remote management of meters;Meter hasService GetService +GRID-TEST-28;GRID-11;Remote management of meters;Meter hasService SetService +GRID-TEST-29;GRID-11;Remote management of meters;Meter hasService GetService +GRID-TEST-30;GRID-12;Remote management of meters;SetOperation hasInput SetOperationDataInput +GRID-TEST-31;GRID-12;Remote management of meters;SetOperationDataInput obtainInputFromObis string +GRID-TEST-32;GRID-12;Remote management of meters;SetOperationDataInput obtainInputForProperty string +GRID-TEST-33;GRID-12;Remote management of meters;SetOperationDataInput hasInputDataType string +GRID-TEST-34;GRID-13;Remote management of meters;Meter hasState BreakerState +GRID-TEST-35;GRID-14;Remote management of meters;Threshold type MeterProperty +GRID-TEST-36;GRID-15;Remote management of meters;MeterProperty isMeasuredIn UnitOfMeasure +GRID-TEST-37;GRID-16;Remote management of meters;Meter hasSingleScheduledAction SingleScheduledAction +GRID-TEST-38;GRID-17;Remote management of meters;SetOperation hasInput SetOperationObisInput +GRID-TEST-39;GRID-17;Remote management of meters;SetOperationObisInput obtainInputFromObis string +GRID-TEST-40;GRID-17;Remote management of meters;SetOperationObisInput hasInputObjectType string +GRID-TEST-41;GRID-18;Remote management of meters;SingleScheduledAction executesScript Script +GRID-TEST-42;GRID-18;Remote management of meters;SingleScheduledAction hasExecutionTime dateTime +GRID-TEST-43;GRID-19;Remote management of meters;Meter hasActivityCalendar ActivityCalendar +GRID-TEST-44;GRID-20;Remote management of meters;Meter hasActivityCalendar ActivityCalendar +GRID-TEST-45;GRID-21;Remote management of meters;PowerLimit type MeterProperty +GRID-TEST-46;GRID-22;Remote management of meters;PropertyValue hasValue string +GRID-TEST-47;GRID-23;Remote management of meters;MeterProperty isMeasuredIn UnitOfMeasure +GRID-TEST-48;GRID-24;Remote management of meters;Meter hasService SetService +GRID-TEST-49;GRID-25;Remote management of meters;Meter hasService SetService +GRID-TEST-50;GRID-26;Remote management of meters;Meter measuresProperty EnergyAndPowerProperty +GRID-TEST-51;GRID-26;Remote management of meters;EnergyAndPowerProperty isPropertyOf PowerLine +GRID-TEST-52;GRID-26;Remote management of meters;ActiveEnergy type EnergyAndPowerProperty +GRID-TEST-53;GRID-27;Remote management of meters;ActiveEnergy type EnergyAndPowerProperty +GRID-TEST-54;GRID-28;Remote management of meters;EnergyAndPowerProperty isMeasuredIn UnitOfMeasure +GRID-TEST-55;GRID-29;Remote management of meters;ReactiveEnergy type EnergyAndPowerProperty +GRID-TEST-56;GRID-30;Remote management of meters;EnergyAndPowerProperty isMeasuredIn UnitOfMeasure +GRID-TEST-57;GRID-31;Remote management of meters;ActiveEnergy type EnergyAndPowerProperty +GRID-TEST-58;GRID-31;Remote management of meters;ReactiveEnergy type EnergyAndPowerProperty +GRID-TEST-59;GRID-32;Remote management of meters;Measurement hasTimestamp dateTime +GRID-TEST-60;GRID-33;Remote management of meters;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-61;GRID-34;Remote management of meters;ProfileGeneric hasCapturePeriod integer +GRID-TEST-62;GRID-34;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-63;GRID-35;Remote management of meters;Meter hasService GetService +GRID-TEST-64;GRID-36;Remote management of meters;ProfileGeneric hasCapturePeriod integer +GRID-TEST-65;GRID-36;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-66;GRID-37;Remote management of meters;Meter hasService GetService +GRID-TEST-67;GRID-38;Remote management of meters;ProfileGeneric hasCapturePeriod integer +GRID-TEST-68;GRID-38;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-69;GRID-39;Remote management of meters;Meter hasService GetService +GRID-TEST-70;GRID-40;Remote management of meters;ProfileGeneric hasCapturePeriod integer +GRID-TEST-71;GRID-40;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-72;GRID-41;Remote management of meters;Threshold type MeterProperty +GRID-TEST-73;GRID-42;Remote management of meters;MeterProperty isMeasuredIn UnitOfMeasure +GRID-TEST-74;GRID-43;Remote management of meters;TimeThreshold type MeterProperty +GRID-TEST-75;GRID-44;Remote management of meters;MeterProperty isMeasuredIn UnitOfMeasure +GRID-TEST-76;GRID-45;Remote management of meters;VoltageSagNumber type MeterProperty +GRID-TEST-77;GRID-45;Remote management of meters;VoltageSwellNumber type MeterProperty +GRID-TEST-78;GRID-45;Remote management of meters;LongPowerFailuresNumber type MeterProperty +GRID-TEST-79;GRID-46;Remote management of meters;Meter measuresProperty QualityProperty +GRID-TEST-80;GRID-46;Remote management of meters;QualityProperty isPropertyOf PowerLine +GRID-TEST-81;GRID-46;Remote management of meters;DurationVoltageSag type QualityProperty +GRID-TEST-82;GRID-46;Remote management of meters;DurationVoltageSwell type QualityProperty +GRID-TEST-83;GRID-46;Remote management of meters;DurationLongPowerFailure type QualityProperty +GRID-TEST-84;GRID-47;Remote management of meters;QualityProperty isMeasuredIn UnitOfMeasure +GRID-TEST-85;GRID-48;Remote management of meters;Meter hasService GetService +GRID-TEST-86;GRID-49;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-87;GRID-49;Remote management of meters;ProfileGeneric relatedPropertyValue PropertyValue +GRID-TEST-88;GRID-50;Remote management of meters;Meter hasService GetService +GRID-TEST-89;GRID-51;Remote management of meters;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-90;GRID-51;Remote management of meters;ProfileGeneric relatedPropertyValue PropertyValue +GRID-TEST-91;GRID-54;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-92;GRID-55;Management of tertiary sensor devices;Manufacturer type MeterProperty +GRID-TEST-93;GRID-56;Management of tertiary sensor devices;Meter hasFirmware Firmware +GRID-TEST-94;GRID-57;Management of tertiary sensor devices;Network type MeterProperty +GRID-TEST-95;GRID-58;Management of tertiary sensor devices;Meter hasSingleScheduledAction SingleScheduledAction +GRID-TEST-96;GRID-59;Management of tertiary sensor devices;Meter hasPropertyValue PropertyValue +GRID-TEST-97;GRID-59;Management of tertiary sensor devices;PropertyValue hasProperty MeterProperty +GRID-TEST-98;GRID-61;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-99;GRID-62;Management of tertiary sensor devices;SingleScheduledAction executesScript Script +GRID-TEST-100;GRID-63;Management of tertiary sensor devices;SingleScheduledAction executesScript Script +GRID-TEST-101;GRID-64;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-102;GRID-65;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-103;GRID-67;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-104;GRID-68;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-105;GRID-69;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-106;GRID-70;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-107;GRID-71;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-108;GRID-72;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-109;GRID-73;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-110;GRID-74;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-111;GRID-75;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-112;GRID-76;Management of tertiary sensor devices;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-113;GRID-77;Management of tertiary sensor devices;Manufacturer type MeterProperty +GRID-TEST-114;GRID-78;Management of tertiary sensor devices;Meter hasFirmware Firmware +GRID-TEST-115;GRID-79;Management of tertiary sensor devices;Network type MeterProperty +GRID-TEST-116;GRID-80;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-117;GRID-81;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-118;GRID-82;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-119;GRID-83;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-120;GRID-84;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-121;GRID-87;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-122;GRID-88;Management of tertiary sensor devices;Manufacturer type MeterProperty +GRID-TEST-123;GRID-89;Management of tertiary sensor devices;Meter hasFirmware Firmware +GRID-TEST-124;GRID-90;Management of tertiary sensor devices;Meter hasSingleScheduledAction SingleScheduledAction +GRID-TEST-125;GRID-91;Management of tertiary sensor devices;Meter hasPropertyValue PropertyValue +GRID-TEST-126;GRID-91;Management of tertiary sensor devices;PropertyValue hasProperty MeterProperty +GRID-TEST-127;GRID-93;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-128;GRID-94;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-129;GRID-95;Management of tertiary sensor devices;Meter hasService SetService +GRID-TEST-130;GRID-96;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-131;GRID-97;Management of tertiary sensor devices;Meter hasService GetService +GRID-TEST-132;GRID-99;Management of OLTC transformers;Current type EnergyAndPowerProperty +GRID-TEST-133;GRID-99;Management of OLTC transformers;Voltage type EnergyAndPowerProperty +GRID-TEST-134;GRID-99;Management of OLTC transformers;ActivePower type EnergyAndPowerProperty +GRID-TEST-135;GRID-99;Management of OLTC transformers;ReactivePower type EnergyAndPowerProperty +GRID-TEST-136;GRID-100;Management of OLTC transformers;Current type EnergyAndPowerProperty +GRID-TEST-137;GRID-100;Management of OLTC transformers;Voltage type EnergyAndPowerProperty +GRID-TEST-138;GRID-100;Management of OLTC transformers;ActivePower type EnergyAndPowerProperty +GRID-TEST-139;GRID-100;Management of OLTC transformers;ReactivePower type EnergyAndPowerProperty +GRID-TEST-140;GRID-101;Management of OLTC transformers;Voltage type EnergyAndPowerProperty +GRID-TEST-141;GRID-102;Management of OLTC transformers;Voltage type EnergyAndPowerProperty +GRID-TEST-142;GRID-103;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-143;GRID-104;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-144;GRID-105;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-145;GRID-106;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-146;GRID-106;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-147;GRID-107;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-148;GRID-108;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-149;GRID-108;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-150;GRID-109;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-151;GRID-110;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-152;GRID-110;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-153;GRID-111;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-154;GRID-112;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-155;GRID-112;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-156;GRID-113;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-157;GRID-114;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-158;GRID-114;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-159;GRID-115;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-160;GRID-116;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-161;GRID-116;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-162;GRID-117;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-163;GRID-118;Management of OLTC transformers;Meter hasService GetService +GRID-TEST-164;GRID-119;Management of OLTC transformers;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-165;GRID-119;Management of OLTC transformers;ProfileGeneric hasCapturePeriod integer +GRID-TEST-166;GRID-120;Detection of meters connectivity;Meter hasState BreakerState +GRID-TEST-167;GRID-121;Detection of meters connectivity;Meter hasState BreakerState +GRID-TEST-168;GRID-122;Detection of meters connectivity;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-169;GRID-123;Detection of meters connectivity;Meter hasService GetService +GRID-TEST-170;GRID-124;Detection of meters connectivity;Meter hasProfileGeneric ProfileGeneric +GRID-TEST-171;GRID-124;Detection of meters connectivity;Meter hasService GetService +GRID-TEST-172;GRID-125;Detection of meters connectivity;ProfileGeneric relatedMeasurement Measurement +GRID-TEST-173;GRID-125;Detection of meters connectivity;ProfileGeneric hasCapturePeriod integer +GRID-TEST-174;GRID-126;Detection of meters connectivity;Meter hasService GetService