diff --git a/.project b/.project new file mode 100644 index 0000000000000000000000000000000000000000..86aedf53e4ebbfe4fe9084a4a07fb2a46f6a13b5 --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + saref4ener + + + + + + + + diff --git a/documentation/abstract.md b/documentation/abstract.md index 7ec77d7af1503e7ae0369d8ae501db6ce6adb8a5..702f8a3eaf76ca3163359cc96024b734b9f9c3a4 100644 --- a/documentation/abstract.md +++ b/documentation/abstract.md @@ -1 +1 @@ -The present document is a technical specification of SAREF4ENER, an extension of SAREF [[2]](#[2]) that was created in collaboration with Energy@Home ([http://www.energy-home.it](http://www.energy-home.it)) and EEBus ([http://www.eebus.org/en](http://www.eebus.org/en)), the major Italy- and Germany-based industry associations, to enable the interconnection of their (different) data models. \ No newline at end of file +The present document is a technical specification of SAREF4ENER, an extension of SAREF [[2]](#[2]) that was created in collaboration with EEBus ([http://www.eebus.org/en](http://www.eebus.org/en)), the major Germany-based industry association, and the Flexiblepower Alliance Network (FAN, [https://flexible-energy.eu/](https://flexible-energy.eu/)) to enable the interconnection of their (different) data models. \ No newline at end of file diff --git a/documentation/contributors.html b/documentation/contributors.html new file mode 100644 index 0000000000000000000000000000000000000000..94c956696a4bf73e078ffec01731cf8e61a38169 --- /dev/null +++ b/documentation/contributors.html @@ -0,0 +1,10 @@ + + + diff --git a/documentation/description.html b/documentation/description.html index 01b0f3cefee27593026e8a639fa3ebed9659be50..4380e7cff43491d050792d59f100b9568cbef285 100644 --- a/documentation/description.html +++ b/documentation/description.html @@ -1,12 +1,15 @@

General Overview

+

This documentation is a technical specification of SAREF4ENER, an extension of SAREF [1] for the energy domain. The present document was created based on the CENELEC standards EN 50631:2023, parts 1-4 [2] and EN 50491 12 2 [3], in collaboration with the Horizon 2020 project Interconnect [i.8], and with industry associations such as EEBus (http://www.eebus.org/en), Energy@Home (http://www.energy-home.it), KNX (https://www.knx.org/), and the Flexible power Alliance Network (FAN, https://flexible-energy.eu/).

+

The SAREF4ENER extension should be used to annotate (or generate) a neutral (protocol-independent) set of messages to be directly adopted by the various smart appliance manufacturers, or mapped to from their domain specific protocols of choice. These messages can be exchanged by energy smart appliances with an Energy Management System (EMS) to efficiently optimize energy consumption and production within the constraints set by the user.

+

Two international domain standards guided the work of developing the SAREF4ENER extension: EN 50631 series [2] with a set of data elements called SPINE and SPINE IoT resources and EN 50491-12-2 [3] with data elements called S2 resources [i.5] and [i.6]. Furthermore, new requirements as well as EN 50631:2023, parts 1-4 [2] and EN 50491 12 2 [3] concepts have been elaborated, implemented, and tested in the European Horizon 2020 project InterConnect within about 15 large scale pilots in 7 countries.

-

An overview of the SAREF4ENER ontology is provided in Figure 1, where rectangles containing an orange circle are used to denote classes created in SAREF4ENER, while rectangles containing a faded orange circle denote classes reused from other ontologies, such as SAREF. For all the entities described in the present document, it is indicated whether they are defined in the SAREF4ENER extension or elsewhere by the prefix included before their identifier, i.e. if the element is defined in SAREF4ENER the prefix is s4ener:, while if the element is reused from another ontology it is indicated in the Namespace Declarations section.

-

Arrows with white triangles on top represent the rdfs:subClassOf relation between two classes. The origin of the arrow is the class to be declared as subclass of the class at the destination of the arrow.

-

Directed arrows are used to represent properties between classes.

-

Rectangles that contain a list of values between square brackets denote an enumeration of individuals.

-

Note that Figure 1 aims at showing a global overview of the main classes of SAREF4ENER and their mutual relations. More details on the different parts of Figure 1 are provided below.

+

The main addition that SAREF4ENER provides on top of SAREF Core is a set of saref:Profiles that describe the energy flexibility capabilities of a device (see clause 4.2.3). These profiles are drawn from the SPINE/SPINE IoT [2] and the S2 data model [3], with some occurring in both and some in either. For example, the Power Profile flexibility type is described in both S2 and SPINE/IoT, so is merged into a single SAREF representation (see clause 4.2.3.6). The S2 Power Envelope and SPINE Power Limits also show enough similarities for an implementation with several shared concepts (see clause 4.2.3.5). The remaining types of flexibility are unique to either S2 or SPINE: Incentive Tables are defined in SPINE, whereas Operation Mode, Fill Rate Based, and Demand Driven energy flexibility are control types defined in S2 [i.5].

+ +

The SAREF4ENER extension additionally describes flexibility instructions (see clause 4.2.5) separately from the flexibility profiles. These instructions describe the communication taking place between a device and the EMS to decide on the energy flexibility plan, such as offers from the device and requests from a EMS. A real-time check on the monitoring of power consumption is facilitated via the reuse of the main SAREF module and the load control use case (see clause 4.2.4). Finally, the SAREF4ENER extension provides a modelling approach for data points and time series (see clause 4.2.6), which is necessary for modelling the various forecasts and data elements involved.

+ +

An overview of the SAREF4ENER (V1.2.1) ontology is provided in Figure 1. In the image, classes are represented as rectangles. Relationships (object properties) between entities are represented as arrows. Arrows are additionally used to represent some RDF, RDF-S and OWL constructs, more precisely: plain arrows with white triangles represent the rdfs:subClassOf relation between two classes. The origin of the arrow shall be considered as the subclass of the entity at the destination of the arrow. Dashed arrows accompanied by the expression rdf:type are used to indicate that the individual at the origin of the arrow is an instance of the class placed at the end of the arrow. Datatype properties and class restrictions are presented as plain text and positioned within the boxes of the rectangles. The green color is used to distinguish SAREF core entities. The blue color is used for highlighting the classes and properties already existing in the previous version of SAREF4ENER (V1.1.2). The white color is used to denote the classes and properties that have been added in the SAREF4ENER version specified in the present document (V1.2.1). Note that Figure 1 aims at showing a global overview of the main classes of SAREF4ENER and their mutual relations. More details on the different parts of Figure 1 are provided in the other subclauses of clause 4.2.

SAREF Overview @@ -14,60 +17,102 @@
-

Figure 2 shows the hierarchy of classes and properties defined in SAREF4ENER.

-

Orange circles represent classes of SAREF4ENER, while faded orange circles represent classes that are reused from other ontologies. Object properties - which are properties between two classes - are denoted by blue rectangles, while datatype properties - which are properties between a class and a data type, such as xsd:string or xsd:dateTime - are denoted by green rectangles. Faded blue and green rectangles denote object properties and datatype properties that are reused from other ontologies.

+

Device

+ +

A s4ener:Device is a subclass of a saref:Device, i.e. it inherits the properties of the more general saref:Device and extends it with additional properties that are specific for SAREF4ENER. The s4ener:Device class is shown in Figure 3.

+ +

Demand Driven Profile

+

The s4ener:DemandDrivenProfile can be used for devices that can consume different types of energy resources such as electricity or natural gas, but that lack a way of buffering that energy. This may for example be a hybrid heat pump that is powered using either electricity of gas. The power demand is determined by the device, but the customer energy manager can choose how to generate that power.

+

The profile contains a set of saref:Actuators that describe the various ways that the demanded energy can be provided. These actuators may be (part of) the actual saref:Device that offers this profile. The forecast of the average demand rate (i.e. the amount of energy, heat, and any other resource that needs to be produced by a device in the near future) can be expressed by defining time series (s4ener:TimeSeries).

- SAREF4ENER class and property hierarchy -
Figure 2: SAREF4ENER class and property hierarchy
+ Demand Driven Profile Overview +
Figure 2: Demand Driven Profile overview
+

Fill Rate Based Profile

-

Device

+

The s4ener:FillRateBasedProfile can be used for devices that can store energy (s4ener:Storage), such as heat pumps with a buffer, EVs, batteries, and even fridges and freezers. The saref:Actuators associated with this fill rate based profile can consume energy to fill the buffer. The information regarding the leakage behaviour of the storage and its fill level (i.e. a measure expressing how full the storage is) can respectively be defined through the classes s4ener:LeakageBehaviour and saref:Measurement via the properties s4ener:hasLeakageBehaviour and s4ener:presentFillLevel, respectively. The s4ener:LeakageBehaviour is always associated with an element detailing the leakage behaviour of the storage (s4ener:LeakageBehaviourElement). Ultimately, certain storage devices might have a fill-level target profile (s4ener:FillLevelTargetProfile) with its associated s4ener:FillLevelTargetProfileElement.

-

A s4ener:Device is a subclass of a saref:Device, i.e. it inherits the properties of the more general saref:Device and extends it with additional properties that are specific for SAREF4ENER. The s4ener:Device class is shown in Figure 3.

+
+ Fill Rate Profile Overview +
Figure 2: Fill Rate Profile overview
+
+ +

Operation Mode Based Profile

+ +

Devices that offer the s4ener:operationModeProfile can control the amount of power that they generate and/or consume, such as diesel generators and variable electrical resistors. The states in which devices fall in, such as "running at reduced power" or "running at full power", can be described as operation modes (s4ener:OperationMode). These operation modes have therefore been modelled as subclasses of saref:State. Transitions between operation modes can be defined as s4ener:Transition with associated timers (s4ener:Timer) that specify the minimum duration of a particular operation model.

- Device class -
Figure 3: Device class
+ Operation Mode Based Profile Overview +
Figure 2: Operation Mode Based Profile overview
-

Power Profile and Alternatives Group

+

Incentive Table Based Profile

-

This clause presents the classes of interest for smart energy management. These classes are used to schedule devices in certain modes and preferred times using power profiles to optimize energy efficiency and accommodate the customer's preferences (i.e. use case 2). These classes are s4ener:PowerProfile, s4ener:Alternative, s4ener:PowerSequence and s4ener:Slot, which are shown in Figure 4.

-

A s4ener:PowerProfile is a subclass of a saref:Profile, i.e. it inherits the properties of the more general saref:Profile extending it with additional properties that are specific for SAREF4ENER. The s4ener:PowerProfile is used by a s4ener:Device to expose the power sequences that are potentially relevant for the CEM. A s4ener:Device can expose a s4ener:PowerProfile, which consists of one or more alternative plans (s4ener:AlternativesGroup class). A s4ener:AlternativesGroup consists of one or more power sequences (s4ener:PowerSequence class), and a s4ener:PowerSequence consists of one or more slots (s4ener:Slot class). Inversely, a s4ener:Slot belongs to only and exactly one s4ener:PowerSequence, which, in turn, belongs to only and exactly one s4ener:AlternativesGroup, which, in turn, belongs to only and exactly one s4ener:PowerProfile. A s4ener:PowerProfile belongs to only and exactly one s4ener:Device.

+

The s4ener:IncentiveTableBasedProfile can be used to describe an incentive table, compiled of incentive table slots (s4ener:IncentiveTableSlot) as well as a power plan (s4ener:PowerPlan). Both are used to negotiate the allocation of upcoming energy usage of a device between the energy manager and the device. The incentive table is used by the energy manager to express the availability of energy via real and/or artificial incentives or costs over time. The device itself uses the table to negotiate the own demand and request the allocation by sending the resulting power plan to the energy manager.

+

Incentive types can be expressed in the form of relative costs (s4ener:RelativeCost), absolute costs (s4ener:AbsoluteCost), CO2 emissions (s4ener:CO2Emission), and renewable energy percentage (s4ener:RenewableEnergyPercentage). An incentive table also defines a scope type (s4ener:ScopeType) to indicate whether it is a preliminary (s4ener:Preliminary) or committed version (s4ener:Committed).

+

An incentive table consists of a number of slots (s4ener:IncentiveTableSlot) where each slot may contain a series of incentives (s4ener:Incentive) representing various tiers (s4ener:Tier). Each tier may be linked to a particular energy source, such as the grid, solar panels, or surplus power. Each incentive describes the cost, expressed as a unit applicable to the s4ener:IncentiveType, for that power source in the particular (time) slot. The lower and optional upper boundary (s4ener:DataPoint) describe for each incentive at which level of power consumption it becomes applicable.

+

The power plan of a device is defined by a series of sets of data points (s4ener:TimeSeries). Each set of data points contains a time interval (time:Interval), a relation to a property (s4ener:Power), a binding to a minimum (s4ener:Minimum), average (s4ener:Average) or maximum (s4ener:Maximum) value and the value itself (saref:Measurement). Finally, it also contains a scope type (s4ener:ScopeType) to indicate whether it is a preliminary (s4ener:Preliminary) or committed value (s4ener:Committed).

+

An incentive table based profile can be used with any type of device.

- Power Profile and Alternatives Group -
Figure 4: Power Profile and Alternatives Group
+ Incentive Table Based Profile Overview +
Figure 2: Incentive Table Based Profile overview
-

Power Sequence

+

Power Limitation Based Profile

-

The s4ener:AlternativesGroup consists of one or more power sequences (s4ener:PowerSequence class) and, inversely, a s4ener:PowerSequence belongs to only and exactly one s4ener:AlternativesGroup. Figure 5 shows the details of the s4ener:PowerSequence class.

+

Power Envelope Based Profile

+

A saref:Device offers a s4ener:PowerEnvelopeBasedProfile when the device is operating within a minimum and maximum amount of power for energy production and/or consumption per time block, but the production or consumption cannot be directly regulated by the energy manager. A PV panels inverter is a typical example, because the energy produced is dependent on the amount of sunshine. The EMS may constrain the power production of the PV panels below its potential to lower a peak.

+

The minimum and maximum amount of power that can be generated and/or spent by a device in a certain timespan can be set by instantiating the s4ener:PowerEnvelope and its corresponding s4ener:PowerConstraint. Power constraints are always bound to the allowed power limit ranges of a device (s4ener:AllowedLimitRange). The energy level of the s4ener:PowerEnvelope can be defined by using s4ener:TimeSeries. The type of the allowed limit ranges of a device (i.e. upper limit or lower limit) can be defined through the class s4ener:PowerEnvelopeLimitType. Commodity quantities relating to s4ener:PowerEnvelope can be described through the class s4ener:CommodityQuantity.

- Power Sequence -
Figure 5: Power Sequence
+ Power Envelope Based Profile Overview +
Figure 2: Power Envelope Based Profile overview
+

Power Limit Profile

-

Slot

+

SAREF4ENER further specifies allowed limit ranges through the classes s4ener:ContractualPowerLimit, s4ener:NominalPowerLimit, and s4ener:FailsafePowerLimit. They are all subclasses of s4ener:PowerLimit which is the general upper-class of power limits. Power limits can be toggled active or inactive via the s4ener:isActive property. A device has nominal power consumption and/or production values (s4ener:NominalPowerLimit) when the manufacturers define quantifiable and measurable limits that has not to be exceeded. The failsafe values provided by the manufacturers has to be given as instances of saref:Measurement. In case the communication between a device and the energy manager is interrupted, the device enters a fail-safe state (s4ener:FailsafeState). Fail-safe values (s4ener:FailsafePowerLimit) apply until the communication is re established, with an optional minimal duration of the fail-safe state given in the s4ener:hasFailsafeDuration. Ultimately, a saref:Device is always bound to a s4ener:ContractualPowerLimit (which is defined in a specification by the manufacturers) and limited by a s4ener:FailsafePowerLimit.

+ +
+ Power Limit Based Profile Overview +
Figure 2: Power Limit Based Profile overview
+
+ +

Power Profile

+ +

This clause presents the classes of interest for smart energy management. These classes are used to schedule devices in certain modes and preferred times using power profiles to optimize energy efficiency and accommodate the customer's preferences (i.e. use case 2). These classes are s4ener:PowerProfile, s4ener:Alternative, s4ener:PowerSequence and s4ener:Slot, which are shown in Figure 4.

+

A s4ener:PowerProfile is a subclass of a saref:Profile, i.e. it inherits the properties of the more general saref:Profile extending it with additional properties that are specific for SAREF4ENER. The s4ener:PowerProfile is used by a s4ener:Device to expose the power sequences that are potentially relevant for the CEM. A s4ener:Device can expose a s4ener:PowerProfile, which consists of one or more alternative plans (s4ener:AlternativesGroup class). A s4ener:AlternativesGroup consists of one or more power sequences (s4ener:PowerSequence class), and a s4ener:PowerSequence consists of one or more slots (s4ener:Slot class). Inversely, a s4ener:Slot belongs to only and exactly one s4ener:PowerSequence, which, in turn, belongs to only and exactly one s4ener:AlternativesGroup, which, in turn, belongs to only and exactly one s4ener:PowerProfile. A s4ener:PowerProfile belongs to only and exactly one s4ener:Device.

-

The s4ener:PowerSequence consists of one or more slots (s4ener:Slot class) and, inversely, a s4ener:Slot belongs to only and exactly one s4ener:PowerSequence. Figure 6 shows the details of the s4ener:Slot class.

- Slot -
Figure 6: Slot
+ Power Profile and Alternatives Group Overview +
Figure 4: Power Profile and Alternatives Group Overview
+

Power Sequence

+ +

The s4ener:AlternativesGroup consists of one or more power sequences (s4ener:PowerSequence class) and, inversely, a s4ener:PowerSequence belongs to only and exactly one s4ener:AlternativesGroup. Figure 5 shows the details of the s4ener:PowerSequence class.

+ + +
+ Power Profile Alternatives Group +
Figure 5: Power Profile Alternatives Group
+
+ + +

Slot

+ +

The s4ener:PowerSequence consists of one or more slots (s4ener:Slot class) and, inversely, a s4ener:Slot belongs to only and exactly one s4ener:PowerSequence. -

Load control

+

Load control

This clause presents the part of SAREF4ENER that defines how to model events used in, for example, a direct load management and power curtailing scenarios (i.e. use case 4). The classes of interest are s4ener:LoadControlEventData, s4ener:LoadControlEventAction, s4ener:LoadControlStateData and s4ener:LoadControlState, as shown in Figure 7.

The s4ener: LoadControlEventData class is used to represent overload warning severity level and related load control commands to a device. It is characterized by an event ID and a timestamp that represents the time the event information instance was created or received, and the time period that denotes the period of validity of the event. For example, 5 minutes ago an event was received which says that it shall take effect tomorrow from 14:00 to 15:30. In this event the timestamp is "5 minutes ago" and time period is "tomorrow from 14:00 to 15:30".

diff --git a/documentation/diagrams/DataPoint.png b/documentation/diagrams/DataPoint.png new file mode 100644 index 0000000000000000000000000000000000000000..9959cd1bb38de52d9a0ec6ab513ba696303e8418 Binary files /dev/null and b/documentation/diagrams/DataPoint.png differ diff --git a/documentation/diagrams/DemandDriven.png b/documentation/diagrams/DemandDriven.png new file mode 100644 index 0000000000000000000000000000000000000000..abed01334033903a8e41b0fb0f81c5456cab4a4d Binary files /dev/null and b/documentation/diagrams/DemandDriven.png differ diff --git a/documentation/diagrams/Device.png b/documentation/diagrams/Device.png deleted file mode 100644 index 922d229dc38b0afba8217d49dbc279560d048538..0000000000000000000000000000000000000000 Binary files a/documentation/diagrams/Device.png and /dev/null differ diff --git a/documentation/diagrams/FillRate.png b/documentation/diagrams/FillRate.png new file mode 100644 index 0000000000000000000000000000000000000000..554ed16986ea5d013c15cf6081c61be8618911e4 Binary files /dev/null and b/documentation/diagrams/FillRate.png differ diff --git a/documentation/diagrams/FlexibilityInstruction.png b/documentation/diagrams/FlexibilityInstruction.png new file mode 100644 index 0000000000000000000000000000000000000000..1db9cff0ab98cb6a4b86862be2fe529c5b2f362a Binary files /dev/null and b/documentation/diagrams/FlexibilityInstruction.png differ diff --git a/documentation/diagrams/FlexibilityOffer.png b/documentation/diagrams/FlexibilityOffer.png new file mode 100644 index 0000000000000000000000000000000000000000..7694ede72a1cd4016eaa57b9968a5e23793ba13a Binary files /dev/null and b/documentation/diagrams/FlexibilityOffer.png differ diff --git a/documentation/diagrams/FlexibilityProfiles.png b/documentation/diagrams/FlexibilityProfiles.png new file mode 100644 index 0000000000000000000000000000000000000000..dfffe933dd96e04892d5afb82279d2c0980e2b43 Binary files /dev/null and b/documentation/diagrams/FlexibilityProfiles.png differ diff --git a/documentation/diagrams/FlexibilityRequest.png b/documentation/diagrams/FlexibilityRequest.png new file mode 100644 index 0000000000000000000000000000000000000000..388986f6a0130f80c37275b2a5f209d066b4427b Binary files /dev/null and b/documentation/diagrams/FlexibilityRequest.png differ diff --git a/documentation/diagrams/Hierarchy.png b/documentation/diagrams/Hierarchy.png deleted file mode 100644 index 83cf62f62aad70e7dc4b4acb717fe82a2d99ccdd..0000000000000000000000000000000000000000 Binary files a/documentation/diagrams/Hierarchy.png and /dev/null differ diff --git a/documentation/diagrams/IncentiveTable.png b/documentation/diagrams/IncentiveTable.png new file mode 100644 index 0000000000000000000000000000000000000000..6f70b3e6e8f1de58cf6f5d3c5c3c532326c953f3 Binary files /dev/null and b/documentation/diagrams/IncentiveTable.png differ diff --git a/documentation/diagrams/LoadControl.png b/documentation/diagrams/LoadControl.png index cd31d347ebb8edde30e117379646d2b90df061ad..1a76900b20c5209d314513352bc18b650b2dd82a 100644 Binary files a/documentation/diagrams/LoadControl.png and b/documentation/diagrams/LoadControl.png differ diff --git a/documentation/diagrams/OperationMode.png b/documentation/diagrams/OperationMode.png new file mode 100644 index 0000000000000000000000000000000000000000..7bde41a217a806d5d44c222576d94b9dbff57143 Binary files /dev/null and b/documentation/diagrams/OperationMode.png differ diff --git a/documentation/diagrams/Overview.png b/documentation/diagrams/Overview.png index 8aa5a535c035203a1170b566167647cdf668748f..f33832d0e76cbc2fe11bd26fdddb2bc684106676 100644 Binary files a/documentation/diagrams/Overview.png and b/documentation/diagrams/Overview.png differ diff --git a/documentation/diagrams/PowerEnvelope.png b/documentation/diagrams/PowerEnvelope.png new file mode 100644 index 0000000000000000000000000000000000000000..34c4325460b5c00c0b1f1950f6b0989c191fda83 Binary files /dev/null and b/documentation/diagrams/PowerEnvelope.png differ diff --git a/documentation/diagrams/PowerLimit.png b/documentation/diagrams/PowerLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..0827f417ebddafa24be42a52381288b2e5f96340 Binary files /dev/null and b/documentation/diagrams/PowerLimit.png differ diff --git a/documentation/diagrams/PowerPlan.png b/documentation/diagrams/PowerPlan.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d62089cc6da5cbb13fee772c7c238e3dc7a267 Binary files /dev/null and b/documentation/diagrams/PowerPlan.png differ diff --git a/documentation/diagrams/PowerProfile.png b/documentation/diagrams/PowerProfile.png deleted file mode 100644 index 23439e01c0aad30151cd9b09a420a3500c32de00..0000000000000000000000000000000000000000 Binary files a/documentation/diagrams/PowerProfile.png and /dev/null differ diff --git a/documentation/diagrams/PowerProfileAlternativesGroup.png b/documentation/diagrams/PowerProfileAlternativesGroup.png new file mode 100644 index 0000000000000000000000000000000000000000..ea2fcd9a81d89844e42e2345ad4f8f0af7e16fd7 Binary files /dev/null and b/documentation/diagrams/PowerProfileAlternativesGroup.png differ diff --git a/documentation/diagrams/PowerProfileOverview.png b/documentation/diagrams/PowerProfileOverview.png new file mode 100644 index 0000000000000000000000000000000000000000..4620394ecc07cc2ca266320560eb7654a5a0a816 Binary files /dev/null and b/documentation/diagrams/PowerProfileOverview.png differ diff --git a/documentation/diagrams/PowerSequence.png b/documentation/diagrams/PowerSequence.png deleted file mode 100644 index 9ea037cfcafefd6005a38546106182c427d9311f..0000000000000000000000000000000000000000 Binary files a/documentation/diagrams/PowerSequence.png and /dev/null differ diff --git a/documentation/diagrams/Slot.png b/documentation/diagrams/Slot.png deleted file mode 100644 index e584f63431c1c5e4046ed34e3536020bad0abd7f..0000000000000000000000000000000000000000 Binary files a/documentation/diagrams/Slot.png and /dev/null differ diff --git a/documentation/references.html b/documentation/references.html index 8dae51972fdd07e221d6bdeee68f13953ad76480..9e8f7e1d14801214f7c8f0d9af051d090295e838 100644 --- a/documentation/references.html +++ b/documentation/references.html @@ -1,9 +1,10 @@

Normative references

Informative references

@@ -16,4 +17,8 @@
  • [i.3] IEC TR 62746-2:2015: "Systems interface between customer energy management system and the power management system - Part 2: Use cases and requirements".
    NOTE: Available at https://webstore.iec.ch/publication/22279.
  • [i.4] ETSI TR 103 411: "SmartM2M Smart Appliances SAREF extension investigation".
  • +
  • [i.5] Mente Konsman and Ewoud Werkman in collaboration with TC 205 WG 18 members: "S2 White paper", 2023.
  • +
  • S2-ws-json: "A WebSockets and JSON based protocol implementing the EN 50491-12-2 'S2' standard for home and building energy management".
  • +
  • Open Geospatial Consortium: "OGC Abstract Specification Topic 20: Observations, measurements and samples", 2023.
  • +
  • European Commission: "Horizon 2020 project InterConnect".
  • diff --git a/examples/heatingSystemPowerProfile.ttl b/examples/heatingSystemPowerProfile.ttl index e640be2fd9b768822641d61e53ba0555e841becd..eb6cbd10b2bb64e01fd9631eda0559ea6eb54290 100644 --- a/examples/heatingSystemPowerProfile.ttl +++ b/examples/heatingSystemPowerProfile.ttl @@ -1,192 +1,192 @@ -@prefix ex: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix s4ener: . -@prefix saref: . -@prefix time: . -@prefix xsd: . -@prefix dctype: . -@prefix dcterms: . - - a dctype:Dataset ; - dcterms:conformsTo ; - dcterms:title "SAREF4ENER Power Profile Example"@en ; - dcterms:description "Example power profile of a heatingsystem based on how a power profile would be defined in SPINE."@en ; - dcterms:abstract "Example power profile of a heatingsystem based on how a power profile would be defined in SPINE."@en ; - owl:imports saref:, s4ener: ; - dcterms:license ; -. - -time:Instant a owl:Class . -time:DateTimeInterval a owl:Class . -time:inXSDDateTime a owl:DatatypeProperty . -time:hasBeginning a owl:ObjectProperty . -time:hasEnd a owl:ObjectProperty . - -ex:Beginning_PowerProfile-1-HS0001 - rdf:type time:Instant ; - rdfs:label "Beginning Power profile-1-HS0001"^^xsd:string ; - time:inXSDDateTime "2016-12-15T00:01:01.01"^^xsd:dateTime ; -. -ex:Beginning_PowerSequence-HS0001_afternoon - rdf:type time:Instant ; - rdfs:label "Beginning Power sequence-HS0001 afternoon"^^xsd:string ; - time:inXSDDateTime "2016-12-15T15:30:00.00"^^xsd:dateTime ; -. -ex:Beginning_PowerSequence-HS0001_morning - rdf:type time:Instant ; - rdfs:label "Beginning Power sequence-HS0001 morning"^^xsd:string ; - time:inXSDDateTime "2016-12-15T08:45:00.00"^^xsd:dateTime ; -. -ex:DateTimeInterval_PowerProfile-1-HS0001 - rdf:type time:DateTimeInterval ; - rdfs:label "Date time interval Power profile-1-HS0001"^^xsd:string ; - time:hasBeginning ex:Beginning_PowerProfile-1-HS0001 ; - time:hasEnd ex:End_PowerProfile-1-HS0001 ; -. -ex:End_PowerProfile-1-HS0001 - rdf:type time:Instant ; - rdfs:label "End Power profile-1-HS0001"^^xsd:string ; - time:inXSDDateTime "2016-12-15T00:23:59.59"^^xsd:dateTime ; -. -ex:End_PowerSequence-HS0001_afternoon - rdf:type time:Instant ; - rdfs:label "End Power sequence-HS0001 afternoon"^^xsd:string ; - time:inXSDDateTime "2016-12-15T00:18:00.00"^^xsd:dateTime ; -. -ex:End_PowerSequence-HS0001_morning - rdf:type time:Instant ; - rdfs:label "End Power sequence-HS0001 morning"^^xsd:string ; - time:inXSDDateTime "2016-12-15T00:12:00.00"^^xsd:dateTime ; -. -ex:PowerSequence-HS0001_afternoon - rdf:type time:DateTimeInterval ; - rdfs:label "Power sequence-HS0001 afternoon"^^xsd:string ; - time:hasBeginning ex:Beginning_PowerSequence-HS0001_afternoon ; - time:hasEnd ex:End_PowerSequence-HS0001_afternoon ; -. -ex:PowerSequence-HS0001_morning - rdf:type time:DateTimeInterval ; - rdfs:label "Power sequence-HS0001 morning"^^xsd:string ; - time:hasBeginning ex:Beginning_PowerSequence-HS0001_morning ; - time:hasEnd ex:End_PowerSequence-HS0001_morning ; -. -ex:AlternativesGroup-1-HS0001 - rdf:type s4ener:AlternativesGroup ; - rdfs:label "Alternatives group-1-HS0001"^^xsd:string ; - saref:consistsOf ex:PowerSequence-1-HS0001 ; - s4ener:alternativesGroupID 1 ; - s4ener:belongsTo ex:PowerProfile-1-HS0001 ; -. -ex:AlternativesGroup-2-HS0001 - rdf:type s4ener:AlternativesGroup ; - rdfs:label "Alternatives group-2-HS0001"^^xsd:string ; - saref:consistsOf ex:PowerSequence-2-HS0001 ; - saref:consistsOf ex:PowerSequence-3-HS0001 ; - s4ener:alternativesGroupID 2 ; - s4ener:belongsTo ex:PowerProfile-1-HS0001 ; -. -ex:Energy_1 - rdf:type s4ener:Energy ; - rdfs:label "Energy 1"^^xsd:string ; - saref:isMeasuredByDevice ex:HeatingSystem ; -. -ex:Heating - rdf:type saref:Task ; - rdfs:label "Heating"^^xsd:string ; -. -ex:HeatingSystem - rdf:type s4ener:Device ; - rdfs:label "Heating system"^^xsd:string ; - saref:accomplishes saref:EnergyEfficiency ; - saref:accomplishes ex:Heating ; - saref:hasDescription "Heating system HS0001 is an example of how to instantiate a heating system with hot water tank using SAREF4ENER"^^xsd:string ; -. -ex:Measurement_1 - rdf:type saref:Measurement ; - rdfs:label "Measurement 1"^^xsd:string ; - saref:hasValue "0.2"^^xsd:string ; - saref:isMeasuredIn ; - saref:relatesToProperty ex:Energy_1 ; -. -ex:Measurement_2 - rdf:type saref:Measurement ; - rdfs:label "Measurement 2"^^xsd:string ; - saref:hasValue "0.2"^^xsd:string ; - saref:isMeasuredIn ; - saref:relatesToProperty ex:Power_1 ; -. -ex:PowerProfile-1-HS0001 - rdf:type s4ener:PowerProfile ; - rdfs:label "Power profile-1-HS0001"^^xsd:string ; - saref:consistsOf ex:AlternativesGroup-1-HS0001 ; - saref:consistsOf ex:AlternativesGroup-2-HS0001 ; - saref:hasTime ex:Time_PowerProfile-1-HS0001 ; - s4ener:alternativesCount 2 ; - s4ener:belongsTo ex:HeatingSystem ; - s4ener:nodeRemoteControllable "true"^^xsd:boolean ; - s4ener:supportsReselection "true"^^xsd:boolean ; - s4ener:supportsSingleSlotSchedulingOnly "true"^^xsd:boolean ; - s4ener:totalSequencesCountMax "1"^^xsd:unsignedInt ; -. -ex:PowerSequence-1-HS0001 - rdf:type s4ener:PowerSequence ; - rdfs:label "Power sequence-1-HS0001"^^xsd:string ; - saref:consistsOf ex:Slot-1-HS0001 ; - saref:hasTime ex:PowerSequence-HS0001_morning ; - s4ener:belongsTo ex:AlternativesGroup-1-HS0001 ; - s4ener:isPausable "false"^^xsd:boolean ; - s4ener:isStoppable "false"^^xsd:boolean ; -. -ex:PowerSequence-2-HS0001 - rdf:type s4ener:PowerSequence ; - rdfs:label "Power sequence-2-HS0001"^^xsd:string ; - saref:consistsOf ex:Slot-2-HS0001 ; - saref:hasTime ex:PowerSequence-HS0001_afternoon ; - s4ener:belongsTo ex:AlternativesGroup-2-HS0001 ; - s4ener:greenest "true"^^xsd:boolean ; - s4ener:isPausable "false"^^xsd:boolean ; - s4ener:isStoppable "false"^^xsd:boolean ; -. -ex:PowerSequence-3-HS0001 - rdf:type s4ener:PowerSequence ; - rdfs:label "Power sequence-3-HS0001"^^xsd:string ; - saref:consistsOf ex:Slot-3-HS0001 ; - saref:hasTime ex:PowerSequence-HS0001_afternoon ; - s4ener:belongsTo ex:AlternativesGroup-2-HS0001 ; - s4ener:cheapest "true"^^xsd:boolean ; - s4ener:isPausable "false"^^xsd:boolean ; - s4ener:isStoppable "false"^^xsd:boolean ; -. -ex:Power_1 - rdf:type s4ener:Power ; - rdfs:label "Power 1"^^xsd:string ; - saref:isMeasuredByDevice ex:HeatingSystem ; -. -ex:Slot-1-HS0001 - rdf:type s4ener:Slot ; - rdfs:label "Slot 1 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-1-HS0001 ; - s4ener:hasSlotValue ex:Measurement_1, ex:Measurement_2 ; - s4ener:slotNumber "1"^^xsd:unsignedInt ; -. -ex:Slot-2-HS0001 - rdf:type s4ener:Slot ; - rdfs:label "Slot 2 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-2-HS0001 ; - s4ener:slotNumber "2"^^xsd:unsignedInt ; -. -ex:Slot-3-HS0001 - rdf:type s4ener:Slot ; - rdfs:label "Slot 3 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-3-HS0001 ; - s4ener:slotNumber "3"^^xsd:unsignedInt ; -. -ex:Time_PowerProfile-1-HS0001 - rdf:type saref:Time ; - rdfs:label "Time Power profile-1-HS0001"^^xsd:string ; - saref:consistsOf ex:DateTimeInterval_PowerProfile-1-HS0001 ; -. - +<<<<<<< HEAD +@prefix ex: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix s4ener: . +@prefix saref: . +@prefix time: . +@prefix xsd: . +@prefix dctype: . +@prefix dcterms: . + + a dctype:Dataset ; + dcterms:conformsTo ; + dcterms:title "SAREF4ENER Power Profile Example"@en ; + dcterms:description "Example power profile of a heatingsystem based on how a power profile would be defined in SPINE."@en ; + dcterms:abstract "Example power profile of a heatingsystem based on how a power profile would be defined in SPINE."@en ; + owl:imports saref:, s4ener: ; + dcterms:license ; +. + +time:Instant a owl:Class . +time:DateTimeInterval a owl:Class . +time:inXSDDateTime a owl:DatatypeProperty . +time:hasBeginning a owl:ObjectProperty . +time:hasEnd a owl:ObjectProperty . + +ex:Beginning_PowerProfile-1-HS0001 + rdf:type time:Instant ; + rdfs:label "Beginning Power profile-1-HS0001"^^xsd:string ; + time:inXSDDateTime "2016-12-15T00:01:01.01"^^xsd:dateTime ; +. +ex:Beginning_PowerSequence-HS0001_afternoon + rdf:type time:Instant ; + rdfs:label "Beginning Power sequence-HS0001 afternoon"^^xsd:string ; + time:inXSDDateTime "2016-12-15T15:30:00.00"^^xsd:dateTime ; +. +ex:Beginning_PowerSequence-HS0001_morning + rdf:type time:Instant ; + rdfs:label "Beginning Power sequence-HS0001 morning"^^xsd:string ; + time:inXSDDateTime "2016-12-15T08:45:00.00"^^xsd:dateTime ; +. +ex:DateTimeInterval_PowerProfile-1-HS0001 + rdf:type time:DateTimeInterval ; + rdfs:label "Date time interval Power profile-1-HS0001"^^xsd:string ; + time:hasBeginning ex:Beginning_PowerProfile-1-HS0001 ; + time:hasEnd ex:End_PowerProfile-1-HS0001 ; +. +ex:End_PowerProfile-1-HS0001 + rdf:type time:Instant ; + rdfs:label "End Power profile-1-HS0001"^^xsd:string ; + time:inXSDDateTime "2016-12-15T00:23:59.59"^^xsd:dateTime ; +. +ex:End_PowerSequence-HS0001_afternoon + rdf:type time:Instant ; + rdfs:label "End Power sequence-HS0001 afternoon"^^xsd:string ; + time:inXSDDateTime "2016-12-15T00:18:00.00"^^xsd:dateTime ; +. +ex:End_PowerSequence-HS0001_morning + rdf:type time:Instant ; + rdfs:label "End Power sequence-HS0001 morning"^^xsd:string ; + time:inXSDDateTime "2016-12-15T00:12:00.00"^^xsd:dateTime ; +. +ex:PowerSequence-HS0001_afternoon + rdf:type time:DateTimeInterval ; + rdfs:label "Power sequence-HS0001 afternoon"^^xsd:string ; + time:hasBeginning ex:Beginning_PowerSequence-HS0001_afternoon ; + time:hasEnd ex:End_PowerSequence-HS0001_afternoon ; +. +ex:PowerSequence-HS0001_morning + rdf:type time:DateTimeInterval ; + rdfs:label "Power sequence-HS0001 morning"^^xsd:string ; + time:hasBeginning ex:Beginning_PowerSequence-HS0001_morning ; + time:hasEnd ex:End_PowerSequence-HS0001_morning ; +. +ex:AlternativesGroup-1-HS0001 + rdf:type s4ener:AlternativesGroup ; + rdfs:label "Alternatives group-1-HS0001"^^xsd:string ; + saref:consistsOf ex:PowerSequence-1-HS0001 ; + s4ener:alternativesGroupID 1 ; + s4ener:belongsTo ex:PowerProfile-1-HS0001 ; +. +ex:AlternativesGroup-2-HS0001 + rdf:type s4ener:AlternativesGroup ; + rdfs:label "Alternatives group-2-HS0001"^^xsd:string ; + saref:consistsOf ex:PowerSequence-2-HS0001 ; + saref:consistsOf ex:PowerSequence-3-HS0001 ; + s4ener:alternativesGroupID 2 ; + s4ener:belongsTo ex:PowerProfile-1-HS0001 ; +. +ex:Energy_1 + rdf:type s4ener:Energy ; + rdfs:label "Energy 1"^^xsd:string ; + saref:isMeasuredByDevice ex:HeatingSystem ; +. +ex:Heating + rdf:type saref:Task ; + rdfs:label "Heating"^^xsd:string ; +. +ex:HeatingSystem + rdf:type s4ener:Device ; + rdfs:label "Heating system"^^xsd:string ; + saref:accomplishes saref:EnergyEfficiency ; + saref:accomplishes ex:Heating ; + saref:hasDescription "Heating system HS0001 is an example of how to instantiate a heating system with hot water tank using SAREF4ENER"^^xsd:string ; +. +ex:Measurement_1 + rdf:type saref:Measurement ; + rdfs:label "Measurement 1"^^xsd:string ; + saref:hasValue "0.2"^^xsd:string ; + saref:isMeasuredIn ; + saref:relatesToProperty ex:Energy_1 ; +. +ex:Measurement_2 + rdf:type saref:Measurement ; + rdfs:label "Measurement 2"^^xsd:string ; + saref:hasValue "0.2"^^xsd:string ; + saref:isMeasuredIn ; + saref:relatesToProperty ex:Power_1 ; +. +ex:PowerProfile-1-HS0001 + rdf:type s4ener:PowerProfile ; + rdfs:label "Power profile-1-HS0001"^^xsd:string ; + saref:consistsOf ex:AlternativesGroup-1-HS0001 ; + saref:consistsOf ex:AlternativesGroup-2-HS0001 ; + saref:hasTime ex:Time_PowerProfile-1-HS0001 ; + s4ener:alternativesCount 2 ; + s4ener:belongsTo ex:HeatingSystem ; + s4ener:nodeRemoteControllable "true"^^xsd:boolean ; + s4ener:supportsReselection "true"^^xsd:boolean ; + s4ener:supportsSingleSlotSchedulingOnly "true"^^xsd:boolean ; + s4ener:totalSequencesCountMax "1"^^xsd:unsignedInt ; +. +ex:PowerSequence-1-HS0001 + rdf:type s4ener:PowerSequence ; + rdfs:label "Power sequence-1-HS0001"^^xsd:string ; + saref:consistsOf ex:Slot-1-HS0001 ; + saref:hasTime ex:PowerSequence-HS0001_morning ; + s4ener:belongsTo ex:AlternativesGroup-1-HS0001 ; + s4ener:isPausable "false"^^xsd:boolean ; + s4ener:isStoppable "false"^^xsd:boolean ; +. +ex:PowerSequence-2-HS0001 + rdf:type s4ener:PowerSequence ; + rdfs:label "Power sequence-2-HS0001"^^xsd:string ; + saref:consistsOf ex:Slot-2-HS0001 ; + saref:hasTime ex:PowerSequence-HS0001_afternoon ; + s4ener:belongsTo ex:AlternativesGroup-2-HS0001 ; + s4ener:greenest "true"^^xsd:boolean ; + s4ener:isPausable "false"^^xsd:boolean ; + s4ener:isStoppable "false"^^xsd:boolean ; +. +ex:PowerSequence-3-HS0001 + rdf:type s4ener:PowerSequence ; + rdfs:label "Power sequence-3-HS0001"^^xsd:string ; + saref:consistsOf ex:Slot-3-HS0001 ; + saref:hasTime ex:PowerSequence-HS0001_afternoon ; + s4ener:belongsTo ex:AlternativesGroup-2-HS0001 ; + s4ener:cheapest "true"^^xsd:boolean ; + s4ener:isPausable "false"^^xsd:boolean ; + s4ener:isStoppable "false"^^xsd:boolean ; +. +ex:Power_1 + rdf:type s4ener:Power ; + rdfs:label "Power 1"^^xsd:string ; + saref:isMeasuredByDevice ex:HeatingSystem ; +. +ex:Slot-1-HS0001 + rdf:type s4ener:Slot ; + rdfs:label "Slot 1 HS0001"^^xsd:string ; + s4ener:belongsTo ex:PowerSequence-1-HS0001 ; + s4ener:hasSlotValue ex:Measurement_1, ex:Measurement_2 ; + s4ener:slotNumber "1"^^xsd:unsignedInt ; +. +ex:Slot-2-HS0001 + rdf:type s4ener:Slot ; + rdfs:label "Slot 2 HS0001"^^xsd:string ; + s4ener:belongsTo ex:PowerSequence-2-HS0001 ; + s4ener:slotNumber "2"^^xsd:unsignedInt ; +. +ex:Slot-3-HS0001 + rdf:type s4ener:Slot ; + rdfs:label "Slot 3 HS0001"^^xsd:string ; + s4ener:belongsTo ex:PowerSequence-3-HS0001 ; + s4ener:slotNumber "3"^^xsd:unsignedInt ; +. +ex:Time_PowerProfile-1-HS0001 + rdf:type saref:Time ; + rdfs:label "Time Power profile-1-HS0001"^^xsd:string ; + saref:consistsOf ex:DateTimeInterval_PowerProfile-1-HS0001 ; +. dcterms:abstract a owl:AnnotationProperty . \ No newline at end of file diff --git a/examples/incentiveTable.ttl b/examples/incentiveTable.ttl index dbb777362ba5ac1baf2b0fa254ec05c778dc7523..f611ea66a65db756b53c90a47b8c9ca9fb3286e2 100644 --- a/examples/incentiveTable.ttl +++ b/examples/incentiveTable.ttl @@ -1,235 +1,236 @@ -@prefix : . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix s4ener: . -@prefix saref: . -@prefix xsd: . -@prefix time: . -@prefix om: . -@prefix dctype: . -@prefix dcterms: . - - - a dctype:Dataset ; - dcterms:conformsTo ; - dcterms:title "SAREF4ENER Incentive Table Flexilibity Profile Examples"@en ; - owl:imports saref:, s4ener: ; - dcterms:abstract "This example file exemplifies how to model an Incentive Table flexibility profile in the SAREF4ENER extension." ; - dcterms:description "This example file exemplifies how to model an Incentive Table flexibility profile in the SAREF4ENER extension. This Incentive Table is based on the example in EEBUS Use Case Specification Incentive-Table based power consumption management Version 1.0.0 RC3. This example has been simplified by reducing the number of slots to three." ; - dcterms:license ; -. - -:Device_1 rdf:type saref:Device ; - rdfs:label "Example device" ; - saref:hasProfile :IncentiveTable_1; -. - -:IncentiveTable_1 rdf:type s4ener:IncentiveTableBasedProfile ; - rdfs:label "Incentive table" ; - s4ener:hasScopeType s4ener:Committed ; - saref:consistsOf :Slot_1, :Slot_2, :Slot_3 ; - s4ener:hasTier :Tier_1, :Tier_2, :Tier_3 ; - s4ener:requiresUpdate "false"^^xsd:boolean ; - s4ener:isChangeable "false"^^xsd:boolean ; - s4ener:hasUsageForecast :PowerPlan ; - s4ener:hasIncentiveType s4ener:AbsoluteCost ; -. - -:Slot_1 rdf:type s4ener:IncentiveTableSlot ; - rdfs:label "Morning slot" ; - rdfs:comment "This slot covers the period from 4:00 to 12:00 during dawn when PV panels are gathering power."; - s4ener:hasStartTime "2023-01-29T04:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasEndTime "2023-01-29T11:59:59Z"^^xsd:dateTimeStamp ; - saref:hasIdentifier "1"^^xsd:string ; - s4ener:hasIncentive :Incentive_1 ; -. -:Slot_2 rdf:type s4ener:IncentiveTableSlot ; - rdfs:label "Afternoon slot" ; - rdfs:comment "This slot covers the period from 12:00 to 21:00 when the PV panels have already gathered power." ; - s4ener:hasStartTime "2023-01-29T12:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasEndTime "2023-01-29T20:59:59Z"^^xsd:dateTimeStamp ; - saref:hasIdentifier "1"^^xsd:string ; - s4ener:hasIncentive :Incentive_2, :Incentive_3, :Incentive_4 ; -. -:Slot_3 rdf:type s4ener:IncentiveTableSlot ; - rdfs:label "Night slot" ; - rdfs:comment "This slot covers the period from 21:00 to 4:00, when the PV panels do not generate any power." ; - s4ener:hasStartTime "2023-01-29T21:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasEndTime "2023-01-30T03:59:59Z"^^xsd:dateTimeStamp ; - saref:hasIdentifier "1"^^xsd:string ; - s4ener:hasIncentive :Incentive_5 ; -. - -:Tier_1 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; - rdfs:label "Grid power" ; - saref:hasIdentifier "1"^^xsd:string ; - s4ener:hasIncentive :Incentive_1, :Incentive_4, :Incentive_5 ; -. - -:Tier_2 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; - rdfs:label "PV panels" ; - saref:hasIdentifier "2"^^xsd:string ; - s4ener:hasIncentive :Incentive_3 ; -. - -:Tier_3 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; - rdfs:label "Surplus power PV panels" ; - saref:hasIdentifier "3"^^xsd:string ; - s4ener:hasIncentive :Incentive_4 ; -. - -:Incentive_1 rdfs:type s4ener:Incentive, s4ener:DataPoint ; - saref:isMeasuredIn s4ener:EuroPerKilowattHour ; - saref:hasValue "0.30"^^xsd:decimal ; - saref:relatesToProperty :Price ; - s4ener:hasLowerBoundary :LowerBoundary_1 ; -. - -:LowerBoundary_1 rdf:type s4ener:DataPoint ; - rdfs:label "Lower boundary early morning" ; - rdfs:comment "At this moment it's only possible to use power from the grid, so the lower boundary is at 0 and there's no upper boundary." ; - saref:hasValue "0"^^xsd:decimal ; - saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Energy ; -. - -:Incentive_2 rdfs:type s4ener:Incentive, s4ener:DataPoint ; - rdfs:label "Boundary for surplus power" ; - rdfs:comment "It is free to use the surplus power of the PV panels." ; - saref:isMeasuredIn s4ener:EuroPerKilowattHour ; - saref:hasValue "0.0"^^xsd:decimal ; - saref:relatesToProperty :Price ; - s4ener:hasLowerBoundary :LowerBoundary_2 ; -. -:LowerBoundary_2 rdf:type s4ener:DataPoint ; - rdfs:label "Boundary surplus power" ; - rdfs:comment "The lower boundary is at zero, because the first incentive is to use the surplus power of the PV panels." ; - saref:hasValue "0"^^xsd:decimal ; - saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Energy ; -. - -:Incentive_3 rdfs:type s4ener:Incentive, s4ener:DataPoint ; - rdfs:label "Boundary for PV power" ; - rdfs:comment "It costs 0.12 euro per kilowatthour to use the energy of the PV panels. This starts at the lower boundary, which is 1500W." ; - saref:isMeasuredIn s4ener:EuroPerKilowattHour ; - saref:hasValue "0.12"^^xsd:decimal ; - saref:relatesToProperty :Price ; - s4ener:hasLowerBoundary :LowerBoundary_3 ; -. -:LowerBoundary_3 rdf:type s4ener:DataPoint ; - rdfs:label "Boundary PV panels" ; - rdfs:comment "Starting at 1500W the energy is drawn from the PV panels." ; - saref:hasValue "1500"^^xsd:decimal ; - saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Energy ; -. - -:Incentive_4 rdfs:type s4ener:Incentive, s4ener:DataPoint ; - rdfs:label "Boundary for grid energy during the day" ; - rdfs:comment "It costs 0.30 euro per kilowatthour to draw energy from the grid during the day." ; - saref:isMeasuredIn s4ener:EuroPerKilowattHour ; - saref:hasValue "0.30"^^xsd:decimal ; - saref:relatesToProperty :Price ; - s4ener:hasLowerBoundary :LowerBoundary_3 ; -. -:LowerBoundary_4 rdf:type s4ener:DataPoint ; - rdfs:label "Lower boundary grid usage day" ; - rdfs:comment "Starting at 4000W the energy will be drawn from the grid." ; - saref:hasValue "4000"^^xsd:decimal ; - saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Energy ; -. - -:Incentive_5 rdfs:type s4ener:Incentive, s4ener:DataPoint ; - rdfs:label "Boundary night usage" ; - rdfs:comment "Energy usage during the night costs 0.30 euro per kilowatthour." ; - saref:isMeasuredIn s4ener:EuroPerKilowattHour ; - saref:hasValue "0.30"^^xsd:decimal ; - saref:relatesToProperty :Price ; - s4ener:hasLowerBoundary :LowerBoundary_3 ; -. -:LowerBoundary_5 rdf:type s4ener:DataPoint ; - rdfs:label "Lower boundary night" ; - saref:hasValue "0"^^xsd:decimal ; - saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Energy ; -. - -:PowerPlan rdf:type s4ener:TimeSeries ; - rdfs:label "Anticipated power consumption" ; - rdfs:comment """The usage forecast or Power Plan for an EEBUS Incentive Table consists of three interlinked timeseries. The first coveres the minimum power consumption, the second the average, and the third the maximum consumption. - - The length of the TimeSeries is for brevity's sake kept to a single data point per time series. This can be arbitrarily extended.""" ; - saref:consistsOf :MinimumConsumption, :AverageConsumption, :MaximumConsumption ; - s4ener:hasCreationTime "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasEffectivePeriod :EffectivePeriod ; -. -:EffectivePeriod rdf:type time:Interval ; - time:hasBeginning "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp ; - time:hasEnd "2023-01-30T00:00:00Z"^^xsd:dateTimeStamp ; -. -:MinimumConsumption rdf:type s4ener:TimeSeries ; - s4ener:hasDataPoint :DataPoint_1, :DataPoint_2 ; - s4ener:hasUsage s4ener:Minimum ; -. -:DataPoint_1 rdf:type s4ener:DataPoint ; - saref:hasValue "0"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp -. -:DataPoint_2 rdf:type s4ener:DataPoint ; - saref:hasValue "250"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp -. - -:AverageConsumption rdf:type s4ener:TimeSeries ; - rdfs:label "Average forecasted consumption" ; - s4ener:hasDataPoint :DataPoint_3, :DataPoint_4 ; - s4ener:hasUsage s4ener:Average ; -. -:DataPoint_3 rdf:type s4ener:DataPoint ; - saref:hasValue "10"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp -. -:DataPoint_4 rdf:type s4ener:DataPoint ; - saref:hasValue "500"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp -. - -:MaximumConsumption rdf:type s4ener:TimeSeries ; - rdfs:label "Maximum forecasted consumption" ; - s4ener:hasDataPoint :DataPoint_6 ; - s4ener:hasUsage s4ener:Maximum ; -. -:DataPoint_5 rdf:type s4ener:DataPoint ; - saref:hasValue "50"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp -. -:DataPoint_6 rdf:type s4ener:DataPoint ; - saref:hasValue "1000"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; - saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp -. - -:Power rdf:type saref:Power . -:Price rdf:type saref:Price . -:Energy rdf:type saref:Energy . - -dcterms:abstract a owl:AnnotationProperty . - -saref:hasIdentifier a owl:DatatypeProperty . -time:hasBeginning a owl:DatatypeProperty . -time:hasEnd a owl:DatatypeProperty . +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix s4ener: . +@prefix saref: . +@prefix xsd: . +@prefix time: . +@prefix om: . +@prefix dctype: . +@prefix dcterms: . + + + a dctype:Dataset ; + dcterms:conformsTo ; + dcterms:title "SAREF4ENER Incentive Table Flexilibity Profile Examples"@en ; + owl:imports saref:, s4ener: ; + dcterms:abstract "This example file exemplifies how to model an Incentive Table flexibility profile in the SAREF4ENER extension." ; + dcterms:description "This example file exemplifies how to model an Incentive Table flexibility profile in the SAREF4ENER extension. This Incentive Table is based on the example in EEBUS Use Case Specification Incentive-Table based power consumption management Version 1.0.0 RC3. This example has been simplified by reducing the number of slots to three." ; + dcterms:license ; +. + +:Device_1 rdf:type saref:Device ; + rdfs:label "Example device" ; + saref:hasProfile :IncentiveTable_1; +. + +:IncentiveTable_1 rdf:type s4ener:IncentiveTableBasedProfile ; + rdfs:label "Incentive table" ; + s4ener:hasScopeType s4ener:Committed ; + saref:consistsOf :Slot_1, :Slot_2, :Slot_3 ; + s4ener:hasTier :Tier_1, :Tier_2, :Tier_3 ; + s4ener:requiresUpdate "false"^^xsd:boolean ; + s4ener:isChangeable "false"^^xsd:boolean ; + s4ener:hasUsageForecast :PowerPlan ; + s4ener:hasIncentiveType s4ener:AbsoluteCost ; +. + +:Slot_1 rdf:type s4ener:IncentiveTableSlot ; + rdfs:label "Morning slot" ; + rdfs:comment "This slot covers the period from 4:00 to 12:00 during dawn when PV panels are gathering power."; + s4ener:hasStartTime "2023-01-29T04:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasEndTime "2023-01-29T11:59:59Z"^^xsd:dateTimeStamp ; + saref:hasIdentifier "1"^^xsd:string ; + s4ener:hasIncentive :Incentive_1 ; +. +:Slot_2 rdf:type s4ener:IncentiveTableSlot ; + rdfs:label "Afternoon slot" ; + rdfs:comment "This slot covers the period from 12:00 to 21:00 when the PV panels have already gathered power." ; + s4ener:hasStartTime "2023-01-29T12:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasEndTime "2023-01-29T20:59:59Z"^^xsd:dateTimeStamp ; + saref:hasIdentifier "1"^^xsd:string ; + s4ener:hasIncentive :Incentive_2, :Incentive_3, :Incentive_4 ; +. +:Slot_3 rdf:type s4ener:IncentiveTableSlot ; + rdfs:label "Night slot" ; + rdfs:comment "This slot covers the period from 21:00 to 4:00, when the PV panels do not generate any power." ; + s4ener:hasStartTime "2023-01-29T21:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasEndTime "2023-01-30T03:59:59Z"^^xsd:dateTimeStamp ; + saref:hasIdentifier "1"^^xsd:string ; + s4ener:hasIncentive :Incentive_5 ; +. + +:Tier_1 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; + rdfs:label "Grid power" ; + saref:hasIdentifier "1"^^xsd:string ; + s4ener:hasIncentive :Incentive_1, :Incentive_4, :Incentive_5 ; +. + +:Tier_2 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; + rdfs:label "PV panels" ; + saref:hasIdentifier "2"^^xsd:string ; + s4ener:hasIncentive :Incentive_3 ; +. + +:Tier_3 rdf:type s4ener:IncentiveTableTier, s4ener:TimeSeries ; + rdfs:label "Surplus power PV panels" ; + saref:hasIdentifier "3"^^xsd:string ; + s4ener:hasIncentive :Incentive_4 ; +. + +:Incentive_1 rdfs:type s4ener:Incentive, s4ener:DataPoint ; + saref:isMeasuredIn s4ener:EuroPerKilowattHour ; + saref:hasValue "0.30"^^xsd:decimal ; + saref:relatesToProperty :Price ; + s4ener:hasLowerBoundary :LowerBoundary_1 ; +. + +:LowerBoundary_1 rdf:type s4ener:DataPoint ; + rdfs:label "Lower boundary early morning" ; + rdfs:comment "At this moment it's only possible to use power from the grid, so the lower boundary is at 0 and there's no upper boundary." ; + saref:hasValue "0"^^xsd:decimal ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty :Energy ; +. + +:Incentive_2 rdfs:type s4ener:Incentive, s4ener:DataPoint ; + rdfs:label "Boundary for surplus power" ; + rdfs:comment "It is free to use the surplus power of the PV panels." ; + saref:isMeasuredIn s4ener:EuroPerKilowattHour ; + saref:hasValue "0.0"^^xsd:decimal ; + saref:relatesToProperty :Price ; + s4ener:hasLowerBoundary :LowerBoundary_2 ; +. +:LowerBoundary_2 rdf:type s4ener:DataPoint ; + rdfs:label "Boundary surplus power" ; + rdfs:comment "The lower boundary is at zero, because the first incentive is to use the surplus power of the PV panels." ; + saref:hasValue "0"^^xsd:decimal ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty :Energy ; +. + +:Incentive_3 rdfs:type s4ener:Incentive, s4ener:DataPoint ; + rdfs:label "Boundary for PV power" ; + rdfs:comment "It costs 0.12 euro per kilowatthour to use the energy of the PV panels. This starts at the lower boundary, which is 1500W." ; + saref:isMeasuredIn s4ener:EuroPerKilowattHour ; + saref:hasValue "0.12"^^xsd:decimal ; + saref:relatesToProperty :Price ; + s4ener:hasLowerBoundary :LowerBoundary_3 ; +. +:LowerBoundary_3 rdf:type s4ener:DataPoint ; + rdfs:label "Boundary PV panels" ; + rdfs:comment "Starting at 1500W the energy is drawn from the PV panels." ; + saref:hasValue "1500"^^xsd:decimal ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty :Energy ; +. + +:Incentive_4 rdfs:type s4ener:Incentive, s4ener:DataPoint ; + rdfs:label "Boundary for grid energy during the day" ; + rdfs:comment "It costs 0.30 euro per kilowatthour to draw energy from the grid during the day." ; + saref:isMeasuredIn s4ener:EuroPerKilowattHour ; + saref:hasValue "0.30"^^xsd:decimal ; + saref:relatesToProperty :Price ; + s4ener:hasLowerBoundary :LowerBoundary_3 ; +. +:LowerBoundary_4 rdf:type s4ener:DataPoint ; + rdfs:label "Lower boundary grid usage day" ; + rdfs:comment "Starting at 4000W the energy will be drawn from the grid." ; + saref:hasValue "4000"^^xsd:decimal ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty :Energy ; +. + +:Incentive_5 rdfs:type s4ener:Incentive, s4ener:DataPoint ; + rdfs:label "Boundary night usage" ; + rdfs:comment "Energy usage during the night costs 0.30 euro per kilowatthour." ; + saref:isMeasuredIn s4ener:EuroPerKilowattHour ; + saref:hasValue "0.30"^^xsd:decimal ; + saref:relatesToProperty :Price ; + s4ener:hasLowerBoundary :LowerBoundary_3 ; +. +:LowerBoundary_5 rdf:type s4ener:DataPoint ; + rdfs:label "Lower boundary night" ; + saref:hasValue "0"^^xsd:decimal ; + saref:isMeasuredIn om:watt ; + saref:relatesToProperty :Energy ; +. + +:PowerPlan rdf:type s4ener:TimeSeries ; + rdfs:label "Anticipated power consumption" ; + rdfs:comment """The usage forecast or Power Plan for an EEBUS Incentive Table consists of three interlinked timeseries. The first coveres the minimum power consumption, the second the average, and the third the maximum consumption. + + The length of the TimeSeries is for brevity's sake kept to a single data point per time series. This can be arbitrarily extended.""" ; + saref:consistsOf :MinimumConsumption, :AverageConsumption, :MaximumConsumption ; + s4ener:hasCreationTime "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasEffectivePeriod :EffectivePeriod ; +. +:EffectivePeriod rdf:type time:Interval ; + time:hasBeginning "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp ; + time:hasEnd "2023-01-30T00:00:00Z"^^xsd:dateTimeStamp ; +. +:MinimumConsumption rdf:type s4ener:TimeSeries ; + s4ener:hasDataPoint :DataPoint_1, :DataPoint_2 ; + s4ener:hasUsage s4ener:Minimum ; +. +:DataPoint_1 rdf:type s4ener:DataPoint ; + saref:hasValue "0"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp +. +:DataPoint_2 rdf:type s4ener:DataPoint ; + saref:hasValue "250"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp +. + +:AverageConsumption rdf:type s4ener:TimeSeries ; + rdfs:label "Average forecasted consumption" ; + s4ener:hasDataPoint :DataPoint_3, :DataPoint_4 ; + s4ener:hasUsage s4ener:Average ; +. +:DataPoint_3 rdf:type s4ener:DataPoint ; + saref:hasValue "10"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp +. +:DataPoint_4 rdf:type s4ener:DataPoint ; + saref:hasValue "500"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp +. + +:MaximumConsumption rdf:type s4ener:TimeSeries ; + rdfs:label "Maximum forecasted consumption" ; + s4ener:hasDataPoint :DataPoint_6 ; + s4ener:hasUsage s4ener:Maximum ; +. +:DataPoint_5 rdf:type s4ener:DataPoint ; + saref:hasValue "50"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T00:00:00Z"^^xsd:dateTimeStamp +. +:DataPoint_6 rdf:type s4ener:DataPoint ; + saref:hasValue "1000"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power ; + saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp +. + +:Power rdf:type saref:Power . +:Price rdf:type saref:Price . +:Energy rdf:type saref:Energy . + +dcterms:abstract a owl:AnnotationProperty . + +saref:hasIdentifier a owl:DatatypeProperty . +time:hasBeginning a owl:DatatypeProperty . +time:hasEnd a owl:DatatypeProperty . +0db38bea6882a76096dc6 time:Interval a owl:Class . \ No newline at end of file diff --git a/examples/powerLimitProfile.ttl b/examples/powerLimitProfile.ttl index 943c2aaa7fc6a62b4b74741e1fbbd1a41635177a..2024918b5584e02a96651b24ddbfd774f8f27368 100644 --- a/examples/powerLimitProfile.ttl +++ b/examples/powerLimitProfile.ttl @@ -1,132 +1,132 @@ -@prefix : . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix s4ener: . -@prefix saref: . -@prefix xsd: . -@prefix om: . -@prefix dctype: . -@prefix dcterms: . - - - a dctype:Dataset ; - dcterms:conformsTo ; - dcterms:title "SAREF4ENER Power Envelope Flexilibity Profile Examples"@en ; - owl:imports saref:, s4ener: ; - dcterms:abstract "This example file exemplifies how to model a Power Limit profile in the SAREF4ENER extension." ; - dcterms:description "This example file exemplifies how to model a Power Envelope profile in the SAREF4ENER extension." ; - dcterms:license ; -. - -:SolarPanelInverter - a saref:Device ; - saref:hasProfile :PowerLimitProfile_1 ; - rdfs:label "Solar panel inverter" ; - #saref:hasState :FailSafeState ; # This triple only exists when the device actually is in a failsafe state. -. - -:FailsafeState rdf:type s4ener:FailsafeState ; - rdfs:label "Fail safe state for the solar panel inverter." ; - s4ener:hasFailsafeDuration "P2H" ; -. - -:PowerLimitProfile_1 rdf:type s4ener:PowerLimitProfile ; - s4ener:receivesPowerLimit :ReceivedPowerLimit ; - s4ener:isBoundTo :ContractualPowerLimit ; - s4ener:isProtectedBy :NominalPowerLimit ; - s4ener:isLimitedWith :FailsafePowerLimit ; -. - -:ReceivedPowerLimit rdf:type s4ener:PowerLimit ; - s4ener:isChangeable "false"^^xsd:boolean ; - s4ener:isObligatory "true"^^xsd:boolean ; - s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; - s4ener:isActive "true"^^xsd:boolean ; - s4ener:hasPowerLimitConsumptionMax :Measurement_1 ; - s4ener:hasPowerLimitProductionMax :Measurement_2 ; -. - -:ReceivedPowerLimit rdf:type s4ener:ContractualPowerLimit ; - s4ener:isChangeable "false"^^xsd:boolean ; - s4ener:isObligatory "true"^^xsd:boolean ; - s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; - s4ener:isActive "true"^^xsd:boolean ; - s4ener:hasContractualConsumptionMax :Measurement_3 ; - s4ener:hasContractualProductionMax :Measurement_4 ; -. - -:ReceivedPowerLimit rdf:type s4ener:NominalPowerLimit ; - s4ener:isChangeable "false"^^xsd:boolean ; - s4ener:isObligatory "false"^^xsd:boolean ; - s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; - s4ener:isActive "true"^^xsd:boolean ; - s4ener:hasNominalConsumption :Measurement_5 ; - s4ener:hasNominalProduction :Measurement_6 ; -. - -:ReceivedPowerLimit rdf:type s4ener:FailsafePowerLimit ; - s4ener:isChangeable "false"^^xsd:boolean ; - s4ener:isObligatory "true"^^xsd:boolean ; - s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; - s4ener:isActive "false"^^xsd:boolean ; - s4ener:hasFailsafeConsumptionMax :Measurement_7 ; - s4ener:hasFailsafeProductionMax :Measurement_8 ; -. - -:Measurement_1 rdf:type s4ener:DataPoint ; - saref:hasValue "500"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_2 rdf:type s4ener:DataPoint ; - saref:hasValue "1000"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_3 rdf:type s4ener:DataPoint ; - saref:hasValue "400"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_4 rdf:type s4ener:DataPoint ; - saref:hasValue "1500"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_5 rdf:type s4ener:DataPoint ; - saref:hasValue "50"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_6 rdf:type s4ener:DataPoint ; - saref:hasValue "1250"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_7 rdf:type s4ener:DataPoint ; - saref:hasValue "10"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Measurement_8 rdf:type s4ener:DataPoint ; - saref:hasValue "0"^^xsd:decimal ; - saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; -. - -:Power_1 rdf:type saref:Power . - -dcterms:abstract a owl:AnnotationProperty . +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix s4ener: . +@prefix saref: . +@prefix xsd: . +@prefix om: . +@prefix dctype: . +@prefix dcterms: . + + + a dctype:Dataset ; + dcterms:conformsTo ; + dcterms:title "SAREF4ENER Power Envelope Flexilibity Profile Examples"@en ; + owl:imports saref:, s4ener: ; + dcterms:abstract "This example file exemplifies how to model a Power Limit profile in the SAREF4ENER extension." ; + dcterms:description "This example file exemplifies how to model a Power Envelope profile in the SAREF4ENER extension." ; + dcterms:license ; +. + +:SolarPanelInverter + a saref:Device ; + saref:hasProfile :PowerLimitProfile_1 ; + rdfs:label "Solar panel inverter" ; + #saref:hasState :FailSafeState ; # This triple only exists when the device actually is in a failsafe state. +. + +:FailsafeState rdf:type s4ener:FailsafeState ; + rdfs:label "Fail safe state for the solar panel inverter." ; + s4ener:hasFailsafeDuration "P2H" ; +. + +:PowerLimitProfile_1 rdf:type s4ener:PowerLimitProfile ; + s4ener:receivesPowerLimit :ReceivedPowerLimit ; + s4ener:isBoundTo :ContractualPowerLimit ; + s4ener:isProtectedBy :NominalPowerLimit ; + s4ener:isLimitedWith :FailsafePowerLimit ; +. + +:ReceivedPowerLimit rdf:type s4ener:PowerLimit ; + s4ener:isChangeable "false"^^xsd:boolean ; + s4ener:isObligatory "true"^^xsd:boolean ; + s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; + s4ener:isActive "true"^^xsd:boolean ; + s4ener:hasPowerLimitConsumptionMax :Measurement_1 ; + s4ener:hasPowerLimitProductionMax :Measurement_2 ; +. + +:ReceivedPowerLimit rdf:type s4ener:ContractualPowerLimit ; + s4ener:isChangeable "false"^^xsd:boolean ; + s4ener:isObligatory "true"^^xsd:boolean ; + s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; + s4ener:isActive "true"^^xsd:boolean ; + s4ener:hasContractualConsumptionMax :Measurement_3 ; + s4ener:hasContractualProductionMax :Measurement_4 ; +. + +:ReceivedPowerLimit rdf:type s4ener:NominalPowerLimit ; + s4ener:isChangeable "false"^^xsd:boolean ; + s4ener:isObligatory "false"^^xsd:boolean ; + s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; + s4ener:isActive "true"^^xsd:boolean ; + s4ener:hasNominalConsumption :Measurement_5 ; + s4ener:hasNominalProduction :Measurement_6 ; +. + +:ReceivedPowerLimit rdf:type s4ener:FailsafePowerLimit ; + s4ener:isChangeable "false"^^xsd:boolean ; + s4ener:isObligatory "true"^^xsd:boolean ; + s4ener:hasEarliestStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasLatestEndTime "2023-01-29T19:00:00Z"^^xsd:dateTimeStamp ; + s4ener:isActive "false"^^xsd:boolean ; + s4ener:hasFailsafeConsumptionMax :Measurement_7 ; + s4ener:hasFailsafeProductionMax :Measurement_8 ; +. + +:Measurement_1 rdf:type s4ener:DataPoint ; + saref:hasValue "500"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_2 rdf:type s4ener:DataPoint ; + saref:hasValue "1000"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_3 rdf:type s4ener:DataPoint ; + saref:hasValue "400"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_4 rdf:type s4ener:DataPoint ; + saref:hasValue "1500"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_5 rdf:type s4ener:DataPoint ; + saref:hasValue "50"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_6 rdf:type s4ener:DataPoint ; + saref:hasValue "1250"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_7 rdf:type s4ener:DataPoint ; + saref:hasValue "10"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Measurement_8 rdf:type s4ener:DataPoint ; + saref:hasValue "0"^^xsd:decimal ; + saref:isMeasuredIn om:kilowatt ; + saref:relatesToProperty :Power_1 ; +. + +:Power_1 rdf:type saref:Power . + +dcterms:abstract a owl:AnnotationProperty . diff --git a/examples/powerProfileExample.ttl b/examples/powerProfileExample.ttl index 3cc3d4d86ffca2ca064c902ac102912b71688f57..7f4e6548413c1377cb29e0f349bc77d4e5a178a5 100644 --- a/examples/powerProfileExample.ttl +++ b/examples/powerProfileExample.ttl @@ -1,186 +1,186 @@ -@prefix : . -@prefix dc: . -@prefix om-ucum: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix s2: . -@prefix s4ener: . -@prefix saref: . -@prefix time: . -@prefix xsd: . -@prefix dctype: . -@prefix dcterms: . - - - - a dctype:Dataset ; - dcterms:conformsTo ; - dcterms:abstract "This example file exemplifies how to model a Power Profile in the SAREF4ENER extension following the definition in the S2 standard." ; - dcterms:description "This example file exemplifies how to model a Power profile in the SAREF4ENER extension." ; - dcterms:title "SAREF4ENER examples for a Power Profile"@en ; - owl:imports saref:, s4ener: ; - dcterms:license ; - -. -:AlternativesGroup_1 - a s4ener:AlternativesGroup ; - rdfs:comment "This Alternatives Group example follows the PowerProfileDefinition example from page 28 of the S2 documentation. The difference in modelling choice is that Saref4Energy does not contain an equivalent for the PowerSequenceContainers used in S2. Therefore, the PowerSequences in this example together form the cartesian product of the PowerSequenceContainers in" ; - rdfs:label "Alternatives group 1" ; - rdfs:label "Power Sequence Container" ; - saref:consistsOf :PowerSequence_1 ; - saref:consistsOf :PowerSequence_2 ; - saref:consistsOf :PowerSequence_3 ; - saref:consistsOf :PowerSequence_4 ; - saref:consistsOf :PowerSequence_5 ; - saref:consistsOf :PowerSequence_6 ; - s4ener:hasEarliestStartTime "2023-02-24T17:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasLatestEndTime "2023-02-24T21:00:00Z"^^xsd:dateTimeStamp ; -. -:Device_1 - a saref:Device ; - rdfs:comment "An example washing machine that exhibits the example power profile of the S2 documentation." ; - rdfs:label "Washing Machine" ; - saref:hasProfile :PowerProfile_1 ; -. -:Energy_1 - a saref:Energy ; - rdfs:label "Energy 1" ; -. -:Measurement_1 - a saref:Measurement ; - rdfs:label "Measurement 1" ; - saref:hasValue "2000" ; - saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Energy_1 ; -. -:Measurement_2 - a saref:Measurement ; - rdfs:label "Measurement 2" ; - saref:hasValue "1500" ; - saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Power_1 ; -. -:Measurement_3 - a saref:Measurement ; - rdfs:label "Measurement 3" ; - saref:hasValue "100" ; - saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Energy_1 ; - saref:relatesToProperty :Power_1 ; -. -:PowerProfile_1 - a s4ener:PowerProfile ; - rdfs:comment """The Power Profile was the only flexibility profile that was in the original saref4Ener. In this extension we added several other forms of energy flexibility drawn from the S2 standard. - - A major difference in modelling is that S2 divides a appliance task into various phases, where in each phases the Energy Management System can choose the appropriate profile. In EEBUS we (for now) only have the option of choosing the whole program before starting it. Therefore, we appended the various slots of the S2 example into six PowerSequence, each concatenating three consecutive S2 PowerSequences. """ ; - rdfs:label "Power profile 1" ; - saref:consistsOf :AlternativesGroup_1 ; - saref:isAbout :Energy_1 ; - saref:isAbout :Power_1 ; - s4ener:belongsTo :Device_1 ; - s4ener:nodeRemoteControllable true ; - s4ener:supportsReselection true ; - s4ener:supportsSingleSlotSchedulingOnly true ; - s4ener:totalSequencesCountMax "1"^^xsd:unsignedInt ; -. -:PowerSequence_1 - a s4ener:PowerSequence ; - s4ener:abnormalConditionOnly false ; - s4ener:hasMaxPauseDuration "P0M"^^xsd:duration ; - rdfs:comment "This power sequence is the combination of the first PowerSequences of all three PowerSequenceContainers in the S2 PowerProfile example." ; - rdfs:label "Power sequence 1" ; - saref:consistsOf :Slot_1 ; - saref:consistsOf :Slot_2 ; - saref:consistsOf :Slot_3 ; - saref:consistsOf :Slot_4 ; - saref:consistsOf :Slot_5 ; - saref:consistsOf :Slot_6 ; - saref:consistsOf :Slot_7 ; - saref:consistsOf :Slot_8 ; - saref:consistsOf :Slot_9 ; - s4ener:hasEndTime "2023-02-17T21:00:00Z"^^xsd:dateTimeStamp ; - s4ener:hasStartTime "2023-02-17T17:00:00Z"^^xsd:dateTimeStamp ; - s4ener:isPausable false ; -. -:PowerSequence_2 - a s4ener:PowerSequence ; - rdfs:label "Power sequence 2" ; -. -:PowerSequence_3 - a s4ener:PowerSequence ; - rdfs:label "Power sequence 3" ; -. -:PowerSequence_4 - a s4ener:PowerSequence ; - rdfs:label "Power sequence 4" ; -. -:PowerSequence_5 - a s4ener:PowerSequence ; - rdfs:label "Power sequence 5" ; -. -:PowerSequence_6 - a s4ener:PowerSequence ; - rdfs:label "Power sequence 6" ; -. -:Power_1 - a saref:Power ; - rdfs:label "Power 1" ; -. -:Slot_1 - a s4ener:Slot ; - rdfs:label "Slot 1" ; - s4ener:belongsTo :PowerSequence_1 ; - s4ener:hasDurationDefault "PT1H"^^xsd:duration ; - s4ener:hasDurationMin "PT30M"^^xsd:duration ; - s4ener:hasSlotValue :Measurement_3 ; - s4ener:slotNumber "1"^^xsd:unsignedInt ; -. -:Slot_2 - a s4ener:Slot ; - rdfs:label "Slot 2" ; - s4ener:slotNumber "2"^^xsd:unsignedInt ; -. -:Slot_3 - a s4ener:Slot ; - rdfs:label "Slot 3" ; - s4ener:slotNumber "3"^^xsd:unsignedInt ; -. -:Slot_4 - a s4ener:Slot ; - rdfs:label "Slot 4" ; - s4ener:slotNumber "4"^^xsd:unsignedInt ; -. -:Slot_5 - a s4ener:Slot ; - rdfs:comment """The PowerProfile example has a max pause before the first slot of the only power sequence of the second power sequence container. To properly model this we add a maximum activation delay to the fifth slot. - -Throughout this example we give several ways to model the duration or time, such that we can consider the pros and cons of the various options: include Time ontology or directly use the xsd:decimal datatype.""" ; - rdfs:label "Slot 5 maximum activation delay" ; - s4ener:hasActivationDelayMax "PT10M"^^xsd:duration ; - s4ener:slotNumber "5"^^xsd:unsignedInt ; -. -:Slot_6 - a s4ener:Slot ; - rdfs:label "Slot 6" ; - s4ener:slotNumber "6"^^xsd:unsignedInt ; -. -:Slot_7 - a s4ener:Slot ; - rdfs:label "Slot 7" ; - s4ener:slotNumber "7"^^xsd:unsignedInt ; -. -:Slot_8 - a s4ener:Slot ; - rdfs:label "Slot 8" ; - s4ener:hasActivationDelayMax "PT5M"^^xsd:duration ; - s4ener:slotNumber "8"^^xsd:unsignedInt ; -. -:Slot_9 - a s4ener:Slot ; - rdfs:label "Slot 9" ; - s4ener:slotNumber "9"^^xsd:unsignedInt ; -. - +@prefix : . +@prefix dc: . +@prefix om-ucum: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix s2: . +@prefix s4ener: . +@prefix saref: . +@prefix time: . +@prefix xsd: . +@prefix dctype: . +@prefix dcterms: . + + + + a dctype:Dataset ; + dcterms:conformsTo ; + dcterms:abstract "This example file exemplifies how to model a Power Profile in the SAREF4ENER extension following the definition in the S2 standard." ; + dcterms:description "This example file exemplifies how to model a Power profile in the SAREF4ENER extension." ; + dcterms:title "SAREF4ENER examples for a Power Profile"@en ; + owl:imports saref:, s4ener: ; + dcterms:license ; + +. +:AlternativesGroup_1 + a s4ener:AlternativesGroup ; + rdfs:comment "This Alternatives Group example follows the PowerProfileDefinition example from page 28 of the S2 documentation. The difference in modelling choice is that Saref4Energy does not contain an equivalent for the PowerSequenceContainers used in S2. Therefore, the PowerSequences in this example together form the cartesian product of the PowerSequenceContainers in" ; + rdfs:label "Alternatives group 1" ; + rdfs:label "Power Sequence Container" ; + saref:consistsOf :PowerSequence_1 ; + saref:consistsOf :PowerSequence_2 ; + saref:consistsOf :PowerSequence_3 ; + saref:consistsOf :PowerSequence_4 ; + saref:consistsOf :PowerSequence_5 ; + saref:consistsOf :PowerSequence_6 ; + s4ener:hasEarliestStartTime "2023-02-24T17:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasLatestEndTime "2023-02-24T21:00:00Z"^^xsd:dateTimeStamp ; +. +:Device_1 + a saref:Device ; + rdfs:comment "An example washing machine that exhibits the example power profile of the S2 documentation." ; + rdfs:label "Washing Machine" ; + saref:hasProfile :PowerProfile_1 ; +. +:Energy_1 + a saref:Energy ; + rdfs:label "Energy 1" ; +. +:Measurement_1 + a saref:Measurement ; + rdfs:label "Measurement 1" ; + saref:hasValue "2000" ; + saref:isMeasuredIn om-ucum:kilowattHour ; + saref:relatesToProperty :Energy_1 ; +. +:Measurement_2 + a saref:Measurement ; + rdfs:label "Measurement 2" ; + saref:hasValue "1500" ; + saref:isMeasuredIn om-ucum:kilowattHour ; + saref:relatesToProperty :Power_1 ; +. +:Measurement_3 + a saref:Measurement ; + rdfs:label "Measurement 3" ; + saref:hasValue "100" ; + saref:isMeasuredIn om-ucum:kilowattHour ; + saref:relatesToProperty :Energy_1 ; + saref:relatesToProperty :Power_1 ; +. +:PowerProfile_1 + a s4ener:PowerProfile ; + rdfs:comment """The Power Profile was the only flexibility profile that was in the original saref4Ener. In this extension we added several other forms of energy flexibility drawn from the S2 standard. + + A major difference in modelling is that S2 divides a appliance task into various phases, where in each phases the Energy Management System can choose the appropriate profile. In EEBUS we (for now) only have the option of choosing the whole program before starting it. Therefore, we appended the various slots of the S2 example into six PowerSequence, each concatenating three consecutive S2 PowerSequences. """ ; + rdfs:label "Power profile 1" ; + saref:consistsOf :AlternativesGroup_1 ; + saref:isAbout :Energy_1 ; + saref:isAbout :Power_1 ; + s4ener:belongsTo :Device_1 ; + s4ener:nodeRemoteControllable true ; + s4ener:supportsReselection true ; + s4ener:supportsSingleSlotSchedulingOnly true ; + s4ener:totalSequencesCountMax "1"^^xsd:unsignedInt ; +. +:PowerSequence_1 + a s4ener:PowerSequence ; + s4ener:abnormalConditionOnly false ; + s4ener:hasMaxPauseDuration "P0M"^^xsd:duration ; + rdfs:comment "This power sequence is the combination of the first PowerSequences of all three PowerSequenceContainers in the S2 PowerProfile example." ; + rdfs:label "Power sequence 1" ; + saref:consistsOf :Slot_1 ; + saref:consistsOf :Slot_2 ; + saref:consistsOf :Slot_3 ; + saref:consistsOf :Slot_4 ; + saref:consistsOf :Slot_5 ; + saref:consistsOf :Slot_6 ; + saref:consistsOf :Slot_7 ; + saref:consistsOf :Slot_8 ; + saref:consistsOf :Slot_9 ; + s4ener:hasEndTime "2023-02-17T21:00:00Z"^^xsd:dateTimeStamp ; + s4ener:hasStartTime "2023-02-17T17:00:00Z"^^xsd:dateTimeStamp ; + s4ener:isPausable false ; +. +:PowerSequence_2 + a s4ener:PowerSequence ; + rdfs:label "Power sequence 2" ; +. +:PowerSequence_3 + a s4ener:PowerSequence ; + rdfs:label "Power sequence 3" ; +. +:PowerSequence_4 + a s4ener:PowerSequence ; + rdfs:label "Power sequence 4" ; +. +:PowerSequence_5 + a s4ener:PowerSequence ; + rdfs:label "Power sequence 5" ; +. +:PowerSequence_6 + a s4ener:PowerSequence ; + rdfs:label "Power sequence 6" ; +. +:Power_1 + a saref:Power ; + rdfs:label "Power 1" ; +. +:Slot_1 + a s4ener:Slot ; + rdfs:label "Slot 1" ; + s4ener:belongsTo :PowerSequence_1 ; + s4ener:hasDurationDefault "PT1H"^^xsd:duration ; + s4ener:hasDurationMin "PT30M"^^xsd:duration ; + s4ener:hasSlotValue :Measurement_3 ; + s4ener:slotNumber "1"^^xsd:unsignedInt ; +. +:Slot_2 + a s4ener:Slot ; + rdfs:label "Slot 2" ; + s4ener:slotNumber "2"^^xsd:unsignedInt ; +. +:Slot_3 + a s4ener:Slot ; + rdfs:label "Slot 3" ; + s4ener:slotNumber "3"^^xsd:unsignedInt ; +. +:Slot_4 + a s4ener:Slot ; + rdfs:label "Slot 4" ; + s4ener:slotNumber "4"^^xsd:unsignedInt ; +. +:Slot_5 + a s4ener:Slot ; + rdfs:comment """The PowerProfile example has a max pause before the first slot of the only power sequence of the second power sequence container. To properly model this we add a maximum activation delay to the fifth slot. + +Throughout this example we give several ways to model the duration or time, such that we can consider the pros and cons of the various options: include Time ontology or directly use the xsd:decimal datatype.""" ; + rdfs:label "Slot 5 maximum activation delay" ; + s4ener:hasActivationDelayMax "PT10M"^^xsd:duration ; + s4ener:slotNumber "5"^^xsd:unsignedInt ; +. +:Slot_6 + a s4ener:Slot ; + rdfs:label "Slot 6" ; + s4ener:slotNumber "6"^^xsd:unsignedInt ; +. +:Slot_7 + a s4ener:Slot ; + rdfs:label "Slot 7" ; + s4ener:slotNumber "7"^^xsd:unsignedInt ; +. +:Slot_8 + a s4ener:Slot ; + rdfs:label "Slot 8" ; + s4ener:hasActivationDelayMax "PT5M"^^xsd:duration ; + s4ener:slotNumber "8"^^xsd:unsignedInt ; +. +:Slot_9 + a s4ener:Slot ; + rdfs:label "Slot 9" ; + s4ener:slotNumber "9"^^xsd:unsignedInt ; +. + dcterms:abstract a owl:AnnotationProperty . dcterms:conformsTo a owl:AnnotationProperty . \ No newline at end of file diff --git a/flexOfferExample.ttl b/flexOfferExample.ttl new file mode 100644 index 0000000000000000000000000000000000000000..2e26d005c9b25543065c496bf11f52b18091024b --- /dev/null +++ b/flexOfferExample.ttl @@ -0,0 +1,721 @@ +@prefix : . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix rdfs: . +@prefix dctype: . +@prefix dcterms: . +@prefix s4ener: . +@prefix saref: . + +@base . + + + rdf:type dctype:Dataset ; + dctype:conformsTo ; + dcterms:title "SAREF4ENER Flexibility Offer Examples"@en ; + owl:imports saref:, s4ener: ; + dcterms:abstract "This example file exemplifies how to model a Flexibility Offer in the SAREF4ENER extension." ; + dcterms:description "This example file exemplifies how to model a Flexibility Offer in the SAREF4ENER extension." ; + dcterms:license ; +. + +################################################################# +# Object Properties +################################################################# + +### https://saref.etsi.org/saref4tsrs/containsQuantity + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasCreationTime + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasDataPoint + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasEffectivePeriod + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasTemporalResolution + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasUpdateRate + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/hasUsage + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4tsrs/producedBy + rdf:type owl:ObjectProperty . + + +### https://saref.etsi.org/saref4flex/includes + rdf:type owl:ObjectProperty . + + +### http://ontology.tno.nl/interconnect/topology#hasTopologicalAssociation + rdf:type owl:ObjectProperty . + + +### http://ontology.tno.nl/interconnect/topology#isToplogicalAssociationOf + rdf:type owl:ObjectProperty . + + +### http://www.ontology-of-units-of-measure.org/resource/om-2/hasUnit + rdf:type owl:ObjectProperty . + + +### http://www.ontology-of-units-of-measure.org/resource/om-2/hasValue + rdf:type owl:ObjectProperty . + + +### http://www.w3.org/2006/time#hasBeginning + rdf:type owl:ObjectProperty . + + +### http://www.w3.org/2006/time#hasEnd + rdf:type owl:ObjectProperty . + + +### http://www.w3.org/2006/time#unitType + rdf:type owl:ObjectProperty . + + +################################################################# +# Data properties +################################################################# + +### http://www.ontology-of-units-of-measure.org/resource/om-2/hasNumericalValue + rdf:type owl:DatatypeProperty . + + +### http://www.w3.org/2006/time#hours + rdf:type owl:DatatypeProperty . + + +### http://www.w3.org/2006/time#inXSDDateTimeStamp + rdf:type owl:DatatypeProperty . + + +### http://www.w3.org/2006/time#minutes + rdf:type owl:DatatypeProperty . + + +### http://www.w3.org/2006/time#numericDuration + rdf:type owl:DatatypeProperty . + + +################################################################# +# Classes +################################################################# + +### https://saref.etsi.org/saref4tsrs/DataPoint + rdf:type owl:Class . + + +### https://saref.etsi.org/saref4tsrs/TimeSeries + rdf:type owl:Class . + + +### https://saref.etsi.org/saref4flex/FlexOffer + rdf:type owl:Class . + + +### http://ontology.tno.nl/interconnect/topology#TopologicalLocation + rdf:type owl:Class . + + +### http://ontology.tno.nl/interconnect/units#ActivePower + rdf:type owl:Class ; + rdfs:subClassOf . + + +### http://ontology.tno.nl/interconnect/units#AmountOfMoneyPerEnergy + rdf:type owl:Class . + + +### http://www.ontology-of-units-of-measure.org/resource/om-2/Measure + rdf:type owl:Class . + + +### http://www.ontology-of-units-of-measure.org/resource/om-2/Quantity + rdf:type owl:Class . + + +### http://www.w3.org/2006/time#Duration + rdf:type owl:Class . + + +### http://www.w3.org/2006/time#DurationDescription + rdf:type owl:Class . + + +### http://www.w3.org/2006/time#Instant + rdf:type owl:Class . + + +### http://www.w3.org/2006/time#Interval + rdf:type owl:Class . + + +### https://saref.etsi.org/core/Device + rdf:type owl:Class . + + +################################################################# +# Individuals +################################################################# + +### https://saref.etsi.org/saref4tsrs/baseLine + rdf:type owl:NamedIndividual . + + +### https://saref.etsi.org/saref4tsrs/lowerLimit + rdf:type owl:NamedIndividual . + + +### https://saref.etsi.org/saref4tsrs/upperLimit + rdf:type owl:NamedIndividual . + + +### http://ontology.tno.nl/interconnect/units#euroPerKilowattHour + rdf:type owl:NamedIndividual . + + +### http://ontology.tno.nl/interconnect/units#price1qv + rdf:type owl:NamedIndividual , + ; + ; + 2 . + + +### http://www.example.org/asset1 + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpbs1beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpbs1qv + rdf:type owl:NamedIndividual , + ; + ; + "2000.0"^^xsd:double . + + +### http://www.example.org/dpbs2beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpbs2end + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + "2021-08-30T00:30:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpbs2ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpbs2q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpbs2qv + rdf:type owl:NamedIndividual , + ; + ; + "2500.0"^^xsd:double . + + +### http://www.example.org/dpbs96beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:23:45Z"^^xsd:dateTime . + + +### http://www.example.org/dpbs96end + rdf:type owl:NamedIndividual , + ; + "2021-08-31T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpbs96ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpbs96q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpbs96qv + rdf:type owl:NamedIndividual , + ; + ; + "2200.0"^^xsd:double . + + +### http://www.example.org/dpll1 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpll1beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpll1end + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpll1ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpll1q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpll1qv + rdf:type owl:NamedIndividual , + ; + ; + "1600.0"^^xsd:double . + + +### http://www.example.org/dpll2 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpll2beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpll2end + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:30:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpll2ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpll2q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpll2qv + rdf:type owl:NamedIndividual , + ; + ; + "2100.0"^^xsd:double . + + +### http://www.example.org/dpll96 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpll96beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:23:45Z"^^xsd:dateTime . + + +### http://www.example.org/dpll96end + rdf:type owl:NamedIndividual , + ; + "2021-08-31T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpll96ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpll96q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpll96qv + rdf:type owl:NamedIndividual , + ; + ; + "1800.0"^^xsd:double . + + +### http://www.example.org/dpul1 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpul1beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpul1end + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpul1ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpul1q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpul1qv + rdf:type owl:NamedIndividual , + ; + ; + "2700.0"^^xsd:double . + + +### http://www.example.org/dpul2 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpul2beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpul2end + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:30:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpul2ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpul2q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpul2qv + rdf:type owl:NamedIndividual , + ; + ; + "3200.0"^^xsd:double . + + +### http://www.example.org/dpul96 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### http://www.example.org/dpul96beg + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:23:45Z"^^xsd:dateTime . + + +### http://www.example.org/dpul96end + rdf:type owl:NamedIndividual , + ; + "2021-08-31T00:00:00Z"^^xsd:dateTime . + + +### http://www.example.org/dpul96ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### http://www.example.org/dpul96q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.example.org/dpul96qv + rdf:type owl:NamedIndividual , + ; + ; + "2900.0"^^xsd:double . + + +### http://www.example.org/price1q + rdf:type owl:NamedIndividual , + ; + . + + +### http://www.ontology-of-units-of-measure.org/resource/om-2/kilowatt + rdf:type owl:NamedIndividual . + + +### http://www.w3.org/2006/time#unitHour + rdf:type owl:NamedIndividual . + + +### http://www.w3.org/2006/time#unitMinute + rdf:type owl:NamedIndividual . + + +### https://ww.example.org/#Cybergrid + rdf:type owl:NamedIndividual , + . + + +### https://ww.example.org/#UpdateRate1 + rdf:type owl:NamedIndividual , + ; + 1 . + + +### https://ww.example.org/#baseline1 + rdf:type owl:NamedIndividual , + ; + , + , + ; + ; + ; + ; + ; + . + + +### https://ww.example.org/#beg1 + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:00:00Z"^^xsd:dateTime . + + +### https://ww.example.org/#creationtime1 + rdf:type owl:NamedIndividual , + ; + "2021-08-29T15:00:00Z"^^xsd:dateTime . + + +### https://ww.example.org/#dpbs1 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### https://ww.example.org/#dpbs1end + rdf:type owl:NamedIndividual , + ; + "2021-08-30T00:15:00Z"^^xsd:dateTimeStamp . + + +### https://ww.example.org/#dpbs1ep + rdf:type owl:NamedIndividual , + ; + ; + . + + +### https://ww.example.org/#dpbs1q + rdf:type owl:NamedIndividual , + ; + . + + +### https://ww.example.org/#dpbs2 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### https://ww.example.org/#dpbs96 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + ; + ; + . + + +### https://ww.example.org/#durationDescription1 + rdf:type owl:NamedIndividual , + . + + +### https://ww.example.org/#effectivePeriod1 + rdf:type owl:NamedIndividual , + ; + ; + . + + +### https://ww.example.org/#end1 + rdf:type owl:NamedIndividual , + ; + "2021-08-31T00:00:00Z"^^xsd:dateTime . + + +### https://ww.example.org/#lowerlimit1 + rdf:type owl:NamedIndividual , + ; + , + , + ; + ; + ; + ; + ; + . + + +### https://ww.example.org/#offer1 + rdf:type owl:NamedIndividual , + ; + ; + ; + , + , + . + + +### https://ww.example.org/#price1 + rdf:type owl:NamedIndividual , + ; + ; + ; + ; + . + + +### https://ww.example.org/#temporalresolution1 + rdf:type owl:NamedIndividual , + ; + 15 . + + +### https://ww.example.org/#tplg_loc1 + rdf:type owl:NamedIndividual , + . + + +### https://ww.example.org/#ur1 + rdf:type owl:NamedIndividual , + ; + 1 . + + +### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi + +dctype:conformsTo a owl:AnnotationProperty . +dcterms:abstract a owl:AnnotationProperty . \ No newline at end of file diff --git a/ontology/saref4ener.ttl b/ontology/saref4ener.ttl index 3218fbd24d9f11c7367d2eea0a14c95e7f232772..a8d0df3beef936a8dfee5bf85adb83a182d037bf 100644 --- a/ontology/saref4ener.ttl +++ b/ontology/saref4ener.ttl @@ -1,3530 +1,3524 @@ -@prefix dcterms: . -@prefix foaf: . -@prefix owl: . -@prefix rdf: . -@prefix rdfs: . -@prefix s4ener: . -@prefix saref: . -@prefix time: . -@prefix vann: . -@prefix xsd: . - -s4ener: - a owl:Ontology ; - dcterms:contributor ; - dcterms:creator ; - dcterms:creator ; - dcterms:creator ; - dcterms:description """The flexibility ontology module (ic-flex) is by design tightly integrated with SAREF, -SAREF4ENER and the following InterConnect modules: power limit (ic-pwlm), -incentive table (ic-inc), S2 (ic-s2), data-point (ic-data) and forecast (ic-fc) - -The main concept of the ic-flex module is the s4ener:FlexOffer, which allows to -represent a flexibility offer (or schedule) as a combination of multiple time-series, data-points and forecasts. - -It also allows to specify a creation time (s4ener:hasCreationTime), validity -period (s4ener:hasEffectivePeriod) and provenance (s4ener:producedBy) for -the offer, on top of the creation time, validity period and provenance already specified for the time-series and data-points included in the offer. - -The additional key aspect captured in the ic-flex module is that a flex offer can also include various categories of flexibility, which are modelled as subclasses of the s4ener:FlexibilityProfile class, as follows: -- Power Profile flexibilty is modelled as s4ener:PowerProfile based on the EEBUS spec -- Tariff based flexibility (s4ener:TariffBased) is implemented using the incentive table (ic-inc) ontology based on the EEBUS spec (note that tariif-based felxibility does note exist in S2) -- Power limit flexibility (ic-pwlm:PowerLimit) is implemented using thepower limit (ic-pwlm) ontology based on the EEBUS spec (and compliant also with S2) -- Power Envelope flexibility (s4ener:PowerEnvelope) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with EEBUS) -- Demand driven flexibility (s4ener:DemandDriven) flexibility (s4ener:PowerEnvelope) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with EEBUS) -- Operation mode flexibility (s4ener:OperationMode) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with S2) -- Fill rate based flexibility (s4ener:FillRateBased is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with S2)"""@en ; - dcterms:license ; - dcterms:modified "2023-03-29"^^xsd:date ; - dcterms:publisher ; - dcterms:source ; - dcterms:title "SAREF for Energy Flexibility"@en ; - vann:preferredNamespacePrefix "s4ener" ; - vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener/" ; - owl:imports ; - owl:versionIRI ; - owl:versionInfo "v1.2.1" ; -. -s4ener:Aborted - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - a s4ener:PowerSequenceStatus ; - rdfs:comment "Instruction was aborted." ; - rdfs:comment "The selected PPBC.PowerSequence was aborted by the device and will not continue" ; - rdfs:label "Aborted"@en ; -. -s4ener:AbsoluteCost - a owl:NamedIndividual ; - a s4ener:IncentiveType ; - rdfs:comment "The incentive type ''absolute cost'' defined in the incentive table."@en ; - rdfs:label "Absolute cost"@en ; -. -s4ener:Accepted - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction has been accepted" ; - rdfs:label "Accepted"@en ; -. -s4ener:ActivationDelayDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the activation delay duration temporal entity"@en ; - rdfs:label "Activation delay duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:ActiveDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities"@en ; - rdfs:label "Active duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:ActiveDurationMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run without interruption."@en ; - rdfs:label "Active duration max"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:ActiveDurationMin - a owl:Class ; - rdfs:comment "The active mininum duration a power sequence can run without interruption."@en ; - rdfs:label "Active duration min"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:ActiveDurationSumMax - a owl:Class ; - rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)."@en ; - rdfs:label "Active duration sum max"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:ActiveDurationSumMin - a owl:Class ; - rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)."@en ; - rdfs:label "Active duration sum min"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:ActuatorLevel - a owl:Class ; - rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc."@en ; - rdfs:label "Actuator level"@en ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:ActuatorSwitch - a owl:Class ; - rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off."@en ; - rdfs:label "Actuator switch"@en ; - rdfs:subClassOf saref:Actuator ; -. -s4ener:AllowedLimitRange - a rdfs:Class ; - rdfs:comment "The actual constraints of an Power Envelope Based Profile." ; - rdfs:label "Allowed limit range"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:AlternativesGroup - a owl:Class ; - rdfs:comment "A collection of power sequences for a certain profile"@en ; - rdfs:label "Alternatives group"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onClass s4ener:PowerProfile ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:AnticipationDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the anticipation duration temporal entities"@en ; - rdfs:label "Anticipation duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:Average - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "The datapoint indicates an average value aggregated over a number of values." ; - rdfs:label "Average"@en ; -. -s4ener:BaseLine - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates the baseline." ; - rdfs:label "Baseline"@en ; -. -s4ener:BatteryPowerSource - a s4ener:PowerSource ; - rdfs:comment "This Power Source codelist element indicates that a battery is the power source of this device." ; - rdfs:label "Battery power source"@en ; -. -s4ener:CO2Emission - a owl:NamedIndividual ; - a s4ener:IncentiveType ; - rdfs:comment "The incentive type ''CO2 Emission'' defined in the incentive table."@en ; - rdfs:label "CO2 Emission"@en ; -. -s4ener:Calculated - a s4ener:ValueSource ; - rdfs:comment "This value source codelist element indicates that this measurement has been calculated instead of measured or empirical." ; - rdfs:label "Calculated"@en ; -. -s4ener:Committed - a owl:NamedIndividual ; - a s4ener:ScopeType ; - rdfs:comment "The committed version of this concept, usually an incentive table or power plan"@en ; - rdfs:label "Committed"@en ; -. -s4ener:CommodityQuantity - a owl:Class ; - rdfs:comment "The various commodity quantities introduced by the S2 standard." ; - rdfs:label "Commodity Quantity"@en ; -. -s4ener:Completed - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'completed'"@en ; - rdfs:label "Completed"@en ; -. -s4ener:Consumption - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates the consumption." ; - rdfs:label "Consumption"@en ; -. -s4ener:ContractualPowerLimit - a owl:Class ; - rdfs:comment "The contractual power limit of a device"@en ; - rdfs:label "Contractual Power Limit"@en ; - rdfs:subClassOf s4ener:PowerLimit ; -. -s4ener:DCPowerSource - a s4ener:PowerSource ; - rdfs:comment "This Power Source codelist element indicates that the type of power source is DC." ; - rdfs:label "DC Power source"@en ; -. -s4ener:DDBCInstruction - a owl:Class ; - rdfs:comment "An Instruction as specified for an Demand Driven Based Control Profile." ; - rdfs:label "Demand Driven Based Control Instruction"@en ; - rdfs:subClassOf s4ener:FlexibilityInstruction ; -. -s4ener:DataPoint - a owl:Class ; - rdfs:comment """A data point is a quantity that is extended with various pieces of process information, namely - -- A creation time (instant). This is the point in time when the data point was created, which is not necessarily the time for which it is valid. In the case of soft-sensors or forecasters, a data point might have been created ahead of time, in the case of a direcet measurement a data point might created at its time of validity (or at the end of its validity time interval) and in the case of an archived value the data point might have been created after the fact. - - - A validity time (temporal entity) which will be named \"time stamp\". The validity time is the instant or interval in time in which a specific quantity is in effect. For example a room temperature might be measured at 12:00, which means it is in effect at this very instant. A specific amount of energy might me expended within the time-slot between 12:30 and 12:45, which means that the energy measurement is in effect during this time interval. - - - A location or topological association. For example, a measurement might be taken in a specific room, a power avarage might have been measured by a specific meter, a forecast might be valid for a specific region or grid segment. This association is therefore not always a location."""@en ; - rdfs:label "Data point"@en ; - rdfs:subClassOf saref:Measurement ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Usage ; - owl:onProperty s4ener:hasUsage ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasCreationTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasQuantile ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasUpdateRate ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onClass time:Interval ; - owl:onProperty s4ener:hasEffectivePeriod ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:DefaultDuration - a owl:Class ; - rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght"@en ; - rdfs:label "Default duration"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:DefaultDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the default duration temporal entity"@en ; - rdfs:label "Default duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:Defer - a owl:NamedIndividual ; - a s4ener:PowerEnvelopeConsequenceType ; - rdfs:comment "Indicating that the limited load or generation will be postponed to a later moment " ; - rdfs:label "Defer"@en ; -. -s4ener:DemandDrivenProfile - a owl:Class ; - rdfs:comment "The Flexibility Profile following the Demand Driven strategy." ; - rdfs:label "Demand driven control"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; -. -s4ener:Device - a owl:Class ; - rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)"@en ; - rdfs:label "Device"@en ; - rdfs:subClassOf saref:Device ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:brandName ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceCode ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:deviceName ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hardwareRevision ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerDescription ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerLabel ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:manufacturerNodeIdentification ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:serialNumber ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:softwareRevision ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorCode ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:vendorName ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasPowerSource ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LoadControlEventData ; - owl:onProperty s4ener:receives ; - ] ; -. -s4ener:Downflex - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates the down flexibility." ; - rdfs:label "Downflex"@en ; -. -s4ener:DurationUncertainty - a owl:Class ; - rdfs:comment "The uncertainty of the duration "@en ; - rdfs:label "Duration uncertainty"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:DurationUncertaintyDescription - a owl:Class ; - rdfs:comment "The duration description for the duration uncertainty temporal entity"@en ; - rdfs:label "Duration uncertainty description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:EarliestStartTime - a owl:Class ; - rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""@en ; - rdfs:label "Earliest start time"@en ; - rdfs:subClassOf time:TemporalEntity ; -. -s4ener:ElapsedSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."@en ; - rdfs:label "Elapsed slot time"@en ; - rdfs:subClassOf time:TemporalEntity ; -. -s4ener:ElectricPower3PhaseSymmetric - a s4ener:CommodityQuantity ; - rdfs:comment "Electric power described in Watt on when power is equally shared among the three phases. Only applicable for 3 phase devices." ; - rdfs:label "Electric Power 3 Phase Symmetric"@en ; -. -s4ener:ElectricPowerL1 - a s4ener:CommodityQuantity ; - rdfs:comment "Electric power described in Watt on phase 1. If a device utilizes only one phase it should always use L1." ; - rdfs:label "Electric Power L1"@en ; -. -s4ener:ElectricPowerL2 - a s4ener:CommodityQuantity ; - rdfs:comment "Electric power described in Watt on phase 2. Only applicable for 3 phase devices." ; - rdfs:label "Electric Power L2"@en ; -. -s4ener:ElectricPowerL3 - a s4ener:CommodityQuantity ; - rdfs:comment "Electric power described in Watt on phase 3. Only applicable for 3 phase devices." ; - rdfs:label "Electric Power L3"@en ; -. -s4ener:Electricity - a saref:Electricity ; - rdfs:comment "Identifier for Commodity ELECTRICITY" ; - rdfs:label "Electricity"@en ; -. -s4ener:Emergency - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'emergency'"@en ; - rdfs:label "Emergency"@en ; -. -s4ener:Empirical - a s4ener:ValueSource ; - rdfs:comment "This value source codelist element indicates this value is an empirical value instead of a calculated or measured value." ; - rdfs:label "Empirical"@en ; -. -s4ener:EndInterruptionInstruction - a owl:Class ; - rdfs:comment "An Instruction message indicating when an interruption can end." ; - rdfs:label "End Interruption Instruction"@en ; - rdfs:subClassOf s4ener:InterruptionInstruction ; -. -s4ener:EndTime - a owl:Class ; - rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""@en ; - rdfs:label "End time"@en ; - rdfs:subClassOf time:TemporalEntity ; -. -s4ener:EndTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the end time duration temporal entities"@en ; - rdfs:label "End time duration Description"@en ; - rdfs:subClassOf time:DurationDescription ; -. -s4ener:Energy - a owl:Class ; - rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)"@en ; - rdfs:label "Energy"@en ; - rdfs:subClassOf saref:Energy ; -. -s4ener:EnergyConstraint - a owl:Class ; - rdfs:comment "The energy constraint described in the Allowed Limit Range or Power Limit." ; - rdfs:label "Energy Constraint"@en ; -. -s4ener:EnergyConsumer - a owl:NamedIndividual ; - a s4ener:RoleType ; - rdfs:comment "Identifier for RoleType Consumer" ; - rdfs:label "Energy Consumer"@en ; -. -s4ener:EnergyExpected - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value"@en ; - rdfs:label "Energy expected"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMax - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value"@en ; - rdfs:label "Energy max"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyMin - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value"@en ; - rdfs:label "Energy min"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyProducer - a owl:NamedIndividual ; - a s4ener:RoleType ; - rdfs:comment "Identifier for RoleType Producer" ; - rdfs:label "Energy Producer"@en ; -. -s4ener:EnergySkewness - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value"@en ; - rdfs:label "Energy skewness"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value"@en ; - rdfs:label "Energy Standard Deviation"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:EnergyStorage - a owl:NamedIndividual ; - a s4ener:RoleType ; - rdfs:comment "Identifier for RoleType Storage" ; - rdfs:label "Energy Storage"@en ; -. -s4ener:EuroPerKilowattHour - a saref:UnitOfMeasure ; - rdfs:comment "Unit of Measure to represent euro's per kilowatt per hour" ; - rdfs:label "Euro per kilo watt hour"@en ; -. -s4ener:EventAccepted - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event accepted'"@en ; - rdfs:label "Event accepted"@en ; -. -s4ener:EventActionConsume - a owl:Class ; - rdfs:comment "An action type used to express a consume action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Event action consume"@en ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - s4ener:Pause - s4ener:Resume - s4ener:Reduce - s4ener:Increase - s4ener:Emergency - s4ener:Normal - ) ; -. -s4ener:EventActionProduce - a owl:Class ; - rdfs:comment "An action type used to express a produce action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Event action produce"@en ; - rdfs:subClassOf s4ener:LoadControlEventAction ; - owl:oneOf ( - s4ener:Pause - s4ener:Resume - s4ener:Reduce - s4ener:Increase - s4ener:Emergency - s4ener:Normal - ) ; -. -s4ener:EventCancelled - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event cancelled'"@en ; - rdfs:label "Event cancelled"@en ; -. -s4ener:EventError - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event error'"@en ; - rdfs:label "Event error"@en ; -. -s4ener:EventRejected - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event rejected'"@en ; - rdfs:label "Event rejected"@en ; -. -s4ener:EventStarted - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event started'"@en ; - rdfs:label "Event started"@en ; -. -s4ener:EventStateConsume - a owl:Class ; - rdfs:comment "In the load control, it expresses a consume state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Event state consume"@en ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - s4ener:EventAccepted - s4ener:EventStarted - s4ener:EventStopped - s4ener:EventRejected - s4ener:EventCancelled - s4ener:EventError - ) ; -. -s4ener:EventStateProduce - a owl:Class ; - rdfs:comment "In the load control, it expresses a produce state of an event an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Event state produce"@en ; - rdfs:subClassOf s4ener:LoadControlEventState ; - owl:oneOf ( - s4ener:EventAccepted - s4ener:EventStarted - s4ener:EventStopped - s4ener:EventRejected - s4ener:EventCancelled - s4ener:EventError - ) ; -. -s4ener:EventStopped - a owl:NamedIndividual ; - a s4ener:EventStateConsume ; - a s4ener:EventStateProduce ; - rdfs:comment "Load control state with value 'event stopped'"@en ; - rdfs:label "Event stopped"@en ; -. -s4ener:Executing - a s4ener:PowerSequenceStatus ; - rdfs:comment "The selected PPBC.PowerSequence is currently being executed" ; - rdfs:label "EXECUTING"@en ; -. -s4ener:FRBCInstruction - a owl:Class ; - rdfs:comment "A Fill Rate Based Instruction message. " ; - rdfs:label "Fill Rate Based Control Instruction"@en ; - rdfs:subClassOf s4ener:FlexibilityInstruction ; -. -s4ener:FailsafePowerLimit - a owl:Class ; - rdfs:comment "In case the communication between a device and the energy manager is interrupted, fail-safe values apply and the device enters fail-safe state until the communication is re-established."@en ; - rdfs:label "Failsafe Power Limit"@en ; - rdfs:subClassOf s4ener:PowerLimit ; -. -s4ener:FailsafeState - a owl:Class ; - rdfs:comment "State that indicates that the device currently is in its Fail-safe state. This means that it has lost its connection to a central energy manager. This may result in the device following stricter power limits." ; - rdfs:label "Fail-safe state"@en ; -. -s4ener:Falling - a s4ener:ValueTendency ; - rdfs:comment "This value tendency codelist element indicates that the tendency of this measurement indicates that the value is decreasing (i.e., falling)." ; - rdfs:label "Falling"@en ; -. -s4ener:FillLevelTargetProfile - a owl:Class ; - rdfs:comment "The target profile that a fill rate based control flexibility profile tries to follow." ; - rdfs:label "Fill level target profile"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:FillLevelTargetProfileElement - a owl:Class ; - rdfs:comment "A description of the various Elements detailing the Fill Level Target Profile consists." ; - rdfs:label "Fill level target profile element"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:FillRateProfile - a owl:Class ; - rdfs:comment "A flexibility profile specified through a Fill Rate Based Profile." ; - rdfs:label "Fill rate control"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; -. -s4ener:Finished - a s4ener:PowerSequenceStatus ; - rdfs:comment "The selected PPBC.PowerSequence was executed and finished successfully" ; - rdfs:label "Finished"@en ; -. -s4ener:FlexOffer - a owl:Class ; - rdfs:comment "It allows to represent a flexibility offer (or schedule) as a combination of multiple time-series, data-points and forecasts. For example, we can create a flexibility offer that includes a time-series ex:T-power of power values, combined with a time-series ex:T-costs of associated costs."@en ; - rdfs:label "Flex offer"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - foaf:Agent - saref:Device - ) ; - ] ; - owl:onProperty s4ener:hasRecipient ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - foaf:Agent - saref:Device - ) ; - ] ; - owl:onProperty s4ener:producedBy ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - s4ener:DataPoint - s4ener:TimeSeries - s4ener:FlexibilityProfile - ) ; - ] ; - owl:onProperty s4ener:includes ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasCreationTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass time:Interval ; - owl:onProperty s4ener:hasEffectivePeriod ; - ] ; -. -s4ener:FlexRequest - a owl:Class ; - rdfs:comment "The flexibility request"@en ; - rdfs:label "Flex request"@en ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty s4ener:hasCreationTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom time:Interval ; - owl:onProperty s4ener:hasEffectivePeriod ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - foaf:Agent - saref:Device - ) ; - ] ; - owl:onProperty s4ener:hasRecipient ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - foaf:Agent - saref:Device - ) ; - ] ; - owl:onProperty s4ener:producedBy ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom [ - a owl:Class ; - owl:unionOf ( - s4ener:DataPoint - s4ener:TimeSeries - s4ener:FlexibilityProfile - s4ener:IncentiveTableBasedProfile - ) ; - ] ; - owl:onProperty s4ener:includes ; - ] ; -. -s4ener:FlexibilityInstruction - a owl:Class ; - rdfs:comment "The various types of instructions Flexibility Sources can send and/or receive." ; - rdfs:label "Flexibility Instruction"@en ; -. -s4ener:FlexibilityProfile - a owl:Class ; - rdfs:comment """Different control types to describe the energy flexibility that a device has to offer. Charging of an EV for instance, may be controlled by power profile-based control or fill-rate -based control. It is not allowed to mix different control types at the same time, but different control types may be used sequentially. -Control Types dictates flexibility instructions. Control Type provides Flexibility options.""" ; - rdfs:label "Flexibility Profile"@en ; - rdfs:subClassOf saref:Profile ; -. -s4ener:Gas - a saref:Gas ; - rdfs:comment "Identifier for Commodity GAS" ; - rdfs:label "Gas"@en ; -. -s4ener:GaussianDataPoint - a owl:Class ; - rdfs:comment "A data point whose quantity is a standard deviation."@en ; - rdfs:label "Gaussian data point"@en ; - rdfs:subClassOf s4ener:DataPoint ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onProperty s4ener:hasStandardDeviation ; - owl:someValuesFrom xsd:decimal ; - ] ; -. -s4ener:Heat - a saref:Commodity ; - rdfs:comment "Identifier for Commodity Heat" ; - rdfs:label "Heat"@en ; -. -s4ener:HeatFlowRate - a s4ener:CommodityQuantity ; - rdfs:comment "Flow rate of heat carrying gas or liquid in liters per second" ; - rdfs:label "Heat Flow Rate"@en ; -. -s4ener:HeatTemperature - a s4ener:CommodityQuantity ; - rdfs:comment "Heat described in degrees Celsius" ; - rdfs:label "Heat Temperature"@en ; -. -s4ener:HeatThermalPower - a s4ener:CommodityQuantity ; - rdfs:comment "Thermal power in Watt" ; - rdfs:label "Heat Thermal Power"@en ; -. -s4ener:HydrogenFlowRate - a s4ener:CommodityQuantity ; - rdfs:comment "Gas flow rate described in grams per second" ; - rdfs:label "Hydrogen Flow Rate"@en ; -. -s4ener:Inactive - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'inactive'"@en ; - rdfs:label "Inactive"@en ; -. -s4ener:Incentive - a owl:Class ; - rdfs:comment "An Incentive indicates the intersection of a tier with a slot. In this particular combination of slot and tier there are a particular costs to draw this type of energy. For example, drawing power from the grid costs 0.30 euro per kilowatthour during the afternoon, but will only be activated from a lower boundary of 3000W." ; - rdfs:label "Incentive"@en ; - rdfs:subClassOf s4ener:DataPoint ; -. -s4ener:IncentiveTableBasedProfile - a owl:Class ; - rdfs:comment "This flexibility profile describes the usage of an incentive table to describe an incentive type in the form of costs (relative or absolute), CO2 emissions or renewable energy percentage that can be associated to power values (expressed as a time-series of power data-points)."@en ; - rdfs:label "Incentive table based profile"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4ener:isChangeable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4ener:requiresUpdate ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:ScopeType ; - owl:onProperty s4ener:hasScopeType ; - ] ; -. -s4ener:IncentiveTableSlot - a owl:Class ; - rdfs:comment "This concept describes a slot that belongs to a Incentive Table. Each slot of the Incentive Table consists of a series of (lower) boundaries, each indicating the power at which a change to another incentive takes place. Additionally, each boundary is associated with a IncentiveTableTier." ; - rdfs:label "Incentive table slot"@en ; - rdfs:subClassOf s4ener:Slot ; -. -s4ener:IncentiveTableTier - a owl:Class ; - rdfs:comment "This concept specifies a Tier that an Incentive Table consists of. Each Tier indicates through a series of Boundaries the price per kilowatthour this incentive costs. For example, a tier may describe grid power, solar panel power, or surplus power." ; - rdfs:label "Incentive table tier"@en ; - rdfs:subClassOf s4ener:TimeSeries ; -. -s4ener:IncentiveType - a owl:Class ; - rdfs:comment "In the incentive table, an incentive type is defined in the form of costs (relative or absolute), CO2 emissions or renewable energy percentage."@en ; - rdfs:label "Incentive Type"@en ; -. -s4ener:Increase - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'increase'"@en ; - rdfs:label "Increase"@en ; -. -s4ener:InstructionStatus - a owl:Class ; - rdfs:comment "The status an instruction has at a specific moment." ; - rdfs:label "Instruction Status"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:Interrupted - a s4ener:PowerSequenceStatus ; - rdfs:comment "The selected PPBC.PowerSequence is being executed, but is currently interrupted and will continue afterwards" ; - rdfs:label "Interrupted"@en ; -. -s4ener:InterruptionInstruction - a owl:Class ; - rdfs:comment "An instruction indicating an interruption to the process." ; - rdfs:label "Interruption Instruction"@en ; - rdfs:subClassOf s4ener:PPBCInstruction ; -. -s4ener:Invalid - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'invalid'"@en ; - rdfs:label "Invalid"@en ; -. -s4ener:LatestEndTime - a owl:Class ; - rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. -Note: This element applies to the first repetition of the slot number only."""@en ; - rdfs:label "Latest end time"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:LeakageBehaviour - a owl:Class ; - rdfs:comment "A description of the Leakage Behaviour associated with this Fill Rate Flexibility Profile." ; - rdfs:label "Leakage behaviour"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:LeakageBehaviourElement - a owl:Class ; - rdfs:comment "An element detailing the leakage behaviour of a storage." ; - rdfs:label "Leakage behaviour element"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:LoadControlEventAction - a owl:Class ; - rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Load Control event action"@en ; -. -s4ener:LoadControlEventData - a owl:Class ; - rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Load control event data"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:triggersEventActionConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:triggersEventActionProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:hasDevice ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimePeriod ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:LoadControlEventState - a owl:Class ; - rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Load control event state "@en ; - rdfs:subClassOf s4ener:State ; -. -s4ener:LoadControlStateData - a owl:Class ; - rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; - rdfs:label "Load control state data"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionConsume ; - owl:onProperty s4ener:hasAppliedEventActionConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventActionProduce ; - owl:onProperty s4ener:hasAppliedEventActionProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateConsume ; - owl:onProperty s4ener:hasEventStateConsume ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EventStateProduce ; - owl:onProperty s4ener:hasEventStateProduce ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onDataRange xsd:dateTime ; - owl:onProperty saref:hasTimestamp ; - ] ; -. -s4ener:LowerLimit - a owl:NamedIndividual ; - a s4ener:PowerEnvelopeLimitType ; - a s4ener:Usage ; - rdfs:comment "The PowerEnvelopeLimitType codelist element indicating the lower limit." ; - rdfs:comment "This data point indicates the lower limit." ; - rdfs:label "Lower Limit"@en ; - rdfs:label "Lower limit"@en ; -. -s4ener:Mains3Phase - a s4ener:PowerSource ; - rdfs:comment "This Power Source codelist element indicates that the power source of this device is Mains 3 Phase." ; - rdfs:label "Mains3Phase"@en ; -. -s4ener:MainsSinglePhase - a s4ener:PowerSource ; - rdfs:comment "This codelist element of power source indicates that the power source is the mains single phase." ; - rdfs:label "Mains single phase"@en ; -. -s4ener:MaxActivationDelay - a owl:Class ; - rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot."@en ; - rdfs:label "Max activation delay"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:MaxAnticipation - a owl:Class ; - rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute."@en ; - rdfs:label "Max anticipation"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:MaxDuration - a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only"@en ; - rdfs:label "Max duration"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:Maximum - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "The usage of this datapoint is the Maximum value." ; - rdfs:label "Maximum"@en ; -. -s4ener:Measured - a s4ener:ValueSource ; - rdfs:comment "The value source type indicates that this data point has been measured by a device." ; - rdfs:label "Measured"@en ; -. -s4ener:MinDuration - a owl:Class ; - rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only."@en ; - rdfs:label "Min duration"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:Minimum - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "The usage of this datapoint is the Minimum value." ; - rdfs:label "Minimum"@en ; -. -s4ener:NaturalGasFlowRate - a s4ener:CommodityQuantity ; - rdfs:comment "Gas flow rate described in liters per second" ; - rdfs:label "Natural Gas Flow Rate"@en ; -. -s4ener:New - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction was newly created" ; - rdfs:label "New"@en ; -. -s4ener:NominalPowerLimit - a owl:Class ; - rdfs:comment "A device may have nominal power consumption and/or production values that are defined by the manufacturer and must not be exceeded, so that the power limit must stay within these constraints."@en ; - rdfs:label "Nominal Power Limit"@en ; - rdfs:subClassOf s4ener:PowerLimit ; -. -s4ener:Normal - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class"@en ; - rdfs:label "Normal"@en ; -. -s4ener:NotScheduled - a s4ener:PowerSequenceStatus ; - rdfs:comment "No PPBC.PowerSequence within the PPBC.PowerSequenceContainer is scheduled" ; - rdfs:label "NotScheduled"@en ; -. -s4ener:NumberRange - a owl:Class ; - rdfs:comment "This class describes a range via a datatype property indicating the start of the range and another datatype property indicating the end of the range." ; - rdfs:label "Number range"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:OMBCInstruction - a owl:Class ; - rdfs:comment "An instruction following the Operation Mode Based Profile." ; - rdfs:label "Operation Mode Based Control Instruction"@en ; - rdfs:subClassOf s4ener:FlexibilityInstruction ; -. -s4ener:Oil - a saref:Commodity ; - rdfs:comment "Identifier for Commodity OIL" ; - rdfs:label "Oil"@en ; -. -s4ener:OilFlowRate - a s4ener:CommodityQuantity ; - rdfs:comment "Oil flow rate described in liters per hour" ; - rdfs:label "Oil Flow Rate"@en ; -. -s4ener:OperationMode - a owl:Class ; - rdfs:comment "A resource manager can declare multiple operation modes for a device. An operation mode is a mode/state that a device can find itself in, that is associated with a specific power value." ; - rdfs:label "Operation Mode"@en ; - rdfs:subClassOf saref:State ; -. -s4ener:OperationModeElement - a owl:Class ; - rdfs:comment "Operation Mode Elements of a Fill Rate Based Control" ; - rdfs:label "Operation Mode Element"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:OperationModeProfile - a owl:Class ; - rdfs:comment "A resource manager can declare multiple operation modes for a device. An operation mode is a mode/state that a device can find itself in, that is associated with a specific power value." ; - rdfs:label "Operation mode control"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; -. -s4ener:PEBCInstruction - a owl:Class ; - rdfs:comment "An instruction for the Power Envelope Based Profile." ; - rdfs:label "Power Envelop Based Control Instruction"@en ; - rdfs:subClassOf s4ener:FlexibilityInstruction ; -. -s4ener:PPBCInstruction - a owl:Class ; - rdfs:comment "An instruction for a Power Profile Based Flexibility Profile." ; - rdfs:label "Power Profile Based Control Instruction"@en ; - rdfs:subClassOf s4ener:FlexibilityInstruction ; -. -s4ener:Pause - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'pause'"@en ; - rdfs:label "Pause"@en ; -. -s4ener:PauseDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the pause duration (max and min) temporal entities"@en ; - rdfs:label "Pause duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:PauseDurationMax - a owl:Class ; - rdfs:comment "The maximum duration a power sequence can pause after the end of an activity."@en ; - rdfs:label "Pause duration max"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:PauseDurationMin - a owl:Class ; - rdfs:comment "The minimum duration a power sequence can pause after the end of an activity."@en ; - rdfs:label "Pause duration min"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:PauseTime - a owl:Class ; - rdfs:comment "The pause time of a power sequence or a slot"@en ; - rdfs:label "Pause time"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:Paused - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state or sensor state with value 'paused'"@en ; - rdfs:label "Paused"@en ; -. -s4ener:Pending - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'pending'"@en ; - rdfs:label "Pending"@en ; -. -s4ener:Power - a owl:Class ; - rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)"@en ; - rdfs:label "Power"@en ; - rdfs:subClassOf saref:Power ; -. -s4ener:PowerConstraint - a owl:Class ; - rdfs:comment "The actual power constraint contained in the Allowed Limit Range or Power limit." ; - rdfs:label "Power constraint"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerEnvelope - a owl:Class ; - rdfs:comment "A specific Power Envelope to be followed by an energy manager" ; - rdfs:label "Power Envelope"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerEnvelopeConsequenceType - a owl:Class ; - rdfs:comment "The type of consequence of limiting power, which can be Defer or Vanish." ; - rdfs:label "Power Envelope Consequence Type"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerEnvelopeLimitType - a owl:Class ; - rdfs:comment "An enumeration containing the codelist for Power Envelope Limit Types, which may be Lower limit or Upper limit." ; - rdfs:label "Power Envelope Limit Type"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerEnvelopeProfile - a owl:Class ; - rdfs:comment "A Flexibility Profile described through a Power Envelope Profile." ; - rdfs:label "Power envelope control"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; -. -s4ener:PowerExpected - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value"@en ; - rdfs:label "Power expected "@en ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerLimit - a owl:Class ; - rdfs:comment "A power limit is defined as the maximum value for power consumption and/or production that must not be exceeded by e.g. a (group of) device(s), a building, or also a district."@en ; - rdfs:label "Power Limit"@en ; - rdfs:subClassOf s4ener:AllowedLimitRange ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4ener:isChangeable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty s4ener:isObligatory ; - ] ; -. -s4ener:PowerLimitProfile - a owl:Class ; - rdfs:comment "This profile describes the energy flexibility of a device via a set of power limits, following the SPINE documentation" ; - rdfs:label "Power limit profile"@en ; - rdfs:subClassOf s4ener:FlexibilityProfile ; -. -s4ener:PowerMax - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value"@en ; - rdfs:label "Power max"@en ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerMin - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value"@en ; - rdfs:label "Power min"@en ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerPlan - a owl:Class ; - rdfs:comment "The Power Plan that an energy manager creates for a device. It contains three timeseries indicating the minimum, average, and maximum respectively." ; - rdfs:label "Power plan"@en ; - rdfs:subClassOf s4ener:TimeSeries ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "3"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimeSeries ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "3"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:TimeSeries ; - owl:onProperty saref:consistsOf ; - ] ; -. -s4ener:PowerProfile - a owl:Class ; - rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). "@en ; - rdfs:comment "PPBC.PowerProfileDefinition" ; - rdfs:label "Power profile control"@en ; - rdfs:subClassOf saref:Profile ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:alternativesCount ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:nodeRemoteControllable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsReselection ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:supportsSingleSlotSchedulingOnly ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:totalSequencesCountMax ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onClass s4ener:Device ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerRange - a owl:Class ; - rdfs:comment "A class describing a power range, containing a start of range, an end of range, and a saref:Property indicating the type of power involved." ; - rdfs:label "Power range"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerSequence - a owl:Class ; - rdfs:comment "A Power Sequence following S2 is a container containing one or more PowerSequenceElements among which the EMS can choose the Element with the best fit to the current energy demands." ; - rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted."@en ; - rdfs:label "Power sequence"@en ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceRemoteControllable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeRepetitionNumber ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:activeSlotNumber ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:cheapest ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:greenest ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isPausable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:isStoppable ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:maxCyclesPerDay ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:repetitionsTotal ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasValueSource ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minCardinality "0"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:taskIdentifier ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PowerSequenceState ; - owl:onProperty saref:hasState ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:Slot ; - owl:onProperty saref:consistsOf ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onClass s4ener:AlternativesGroup ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:PowerSequenceContainer - a owl:Class ; - rdfs:comment "A container containing the various Power Sequences among which the EMS may choose for the appropriate Power Sequence at a given time." ; - rdfs:label "Power profile container"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerSequenceElement - a owl:Class ; - rdfs:comment "An element of a power sequence, roughly equivalent to slots in the existing S4ener." ; - rdfs:label "Power sequence element"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerSequenceState - a owl:Class ; - rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'."@en ; - rdfs:label "Power sequence state"@en ; - rdfs:subClassOf s4ener:State ; - owl:oneOf ( - s4ener:Running - s4ener:Paused - s4ener:Scheduled - s4ener:ScheduledPaused - s4ener:Pending - s4ener:Inactive - s4ener:Completed - s4ener:Invalid - ) ; -. -s4ener:PowerSequenceStatus - a owl:Class ; - rdfs:comment "A codelist for the various Power Sequence statuses." ; - rdfs:label "Power sequence status"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerSkewness - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power skewness and its value"@en ; - rdfs:label "Power skewness"@en ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:PowerSource - a owl:Class ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery"@en ; - rdfs:label "Power source"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:PowerStandardDeviation - a owl:Class ; - rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value"@en ; - rdfs:label "Power standard deviation"@en ; - rdfs:subClassOf s4ener:Power ; -. -s4ener:Preliminary - a owl:NamedIndividual ; - a s4ener:ScopeType ; - rdfs:comment "The preliminary version of this concept, usually an incentive table or power plan"@en ; - rdfs:label "Preliminary"@en ; -. -s4ener:Production - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates the energy production." ; - rdfs:label "Production"@en ; -. -s4ener:Reduce - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'reduce'"@en ; - rdfs:label "Reduce"@en ; -. -s4ener:Rejected - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction was rejected" ; - rdfs:label "Rejected"@en ; -. -s4ener:RelativeCost - a owl:NamedIndividual ; - a s4ener:IncentiveType ; - rdfs:comment "The incentive type ''relative cost'' defined in the incentive table."@en ; - rdfs:label "Relative cost"@en ; -. -s4ener:RemainingPauseTime - a owl:Class ; - rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused."@en ; - rdfs:label "Remaining pause time"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:RemainingSlotTime - a owl:Class ; - rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."@en ; - rdfs:label "Remaining slot time"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:RenewableEnergyPercentage - a owl:NamedIndividual ; - a s4ener:IncentiveType ; - rdfs:comment "The incentive type ''renewable energy percentage'' defined in the incentive table."@en ; - rdfs:label "Renewable energy percentage"@en ; -. -s4ener:Resume - a owl:NamedIndividual ; - a s4ener:EventActionConsume ; - a s4ener:EventActionProduce ; - rdfs:comment "Load control event action with value 'resume'"@en ; - rdfs:label "Resume"@en ; -. -s4ener:ResumeCostEstimated - a owl:Class ; - rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)."@en ; - rdfs:label "Resume cost estimated"@en ; - rdfs:subClassOf saref:Price ; -. -s4ener:ResumeEnergyEstimated - a owl:Class ; - rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information."@en ; - rdfs:label "Resume energy estimated"@en ; - rdfs:subClassOf s4ener:Energy ; -. -s4ener:Revoked - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction was revoked" ; - rdfs:label "Revoked"@en ; -. -s4ener:Rising - a s4ener:ValueTendency ; - rdfs:comment "This value tendency codelist element indicates that the tendency of this measurement indicates that the value is increasing (i.e., rising)." ; - rdfs:label "Rising"@en ; -. -s4ener:Role - a owl:Class ; - rdfs:comment "A codelist containing the various roles a device can take: producer, consumer, and storage." ; - rdfs:label "Role"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:RoleType - a owl:Class ; - rdfs:comment "An enumeration containing the various roles a device can take up: consumer, producer, or storage." ; - rdfs:label "Role Type"@en ; -. -s4ener:Running - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'running'"@en ; - rdfs:label "Running"@en ; -. -s4ener:ScheduleInstruction - a owl:Class ; - rdfs:comment "Schedule instruction for a power profile flexibility profile." ; - rdfs:label "Schedule Instruction"@en ; - rdfs:subClassOf s4ener:PPBCInstruction ; -. -s4ener:Scheduled - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled'"@en ; - rdfs:label "Scheduled"@en ; -. -s4ener:ScheduledPaused - a owl:NamedIndividual ; - a s4ener:PowerSequenceState ; - rdfs:comment "Power sequence state with value 'scheduled paused'"@en ; - rdfs:label "Scheduled paused"@en ; -. -s4ener:ScopeType - a owl:Class ; - rdfs:comment "An incentive table may additionally define a scope type to indicate whether it is a preliminary or committed version."@en ; - rdfs:label "Scope Type"@en ; -. -s4ener:SetPoint - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates a setpoint." ; - rdfs:label "Setpoint"@en ; -. -s4ener:Slot - a owl:Class ; - rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. "@en ; - rdfs:label "Slot"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom saref:Time ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Energy ; - owl:onProperty s4ener:hasEnergyValueType ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Power ; - owl:onProperty s4ener:hasPowerValueType ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotNumber ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty saref:hasDescription ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:optionalSlot ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:slotActivated ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ - a owl:Class ; - owl:unionOf ( - s4ener:Energy - s4ener:Power - ) ; - ] ; - owl:onProperty s4ener:hasValueType ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:onClass s4ener:PowerSequence ; - owl:onProperty s4ener:belongsTo ; - owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; - ] ; -. -s4ener:SlotTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the slot time duration temporal entities"@en ; - rdfs:label "Slot time duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:Stable - a s4ener:ValueTendency ; - rdfs:comment "This value tendency codelist element indicates that the tendency this measurement has is to stay stable, instead of rising or falling." ; - rdfs:label "Stable"@en ; -. -s4ener:StartInterruptionInstruction - a owl:Class ; - rdfs:comment "An instruction or message indicating the start of an interruption." ; - rdfs:label "Start Interruption Instruction"@en ; - rdfs:subClassOf s4ener:InterruptionInstruction ; -. -s4ener:StartTime - a owl:Class ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present"@en ; - rdfs:label "Start time"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:StartTimeDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the start time duration temporal entities"@en ; - rdfs:label "Start time duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:Started - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction was executed" ; - rdfs:label "Started"@en ; -. -s4ener:State - a owl:Class ; - rdfs:comment "An entity that represents the possible states in SAREF4EE"@en ; - rdfs:label "State"@en ; - rdfs:subClassOf saref:State ; -. -s4ener:Storage - a owl:Class ; - rdfs:comment "storage device which is the main component of Fill Rate Based Control type.). In the context of flexibility control and instructuons, a device shall be able to inform the CEM about its fill level, a measure of how full the storage is, and the lower and upper boundaries that the fill level should remain within. " ; - rdfs:label "Storage"@en ; - rdfs:subClassOf owl:Thing ; - rdfs:subClassOf s4ener:Device ; -. -s4ener:Succeeded - a owl:NamedIndividual ; - a s4ener:InstructionStatus ; - rdfs:comment "Instruction finished successfully" ; - rdfs:label "Succeeded"@en ; -. -s4ener:TimePeriod - a owl:Class ; - rdfs:comment "The time period associated with load control event data"@en ; - rdfs:label "Time period"@en ; - rdfs:subClassOf time:TemporalEntity ; - owl:deprecated true ; -. -s4ener:TimePeriodDurationDescription - a owl:Class ; - rdfs:comment "The duration description for the time period duration temporal entities"@en ; - rdfs:label "Time period duration description"@en ; - rdfs:subClassOf time:DurationDescription ; - owl:deprecated true ; -. -s4ener:TimeSeries - a owl:Class ; - rdfs:comment "An ordered sequence of data points of a quantity observed at spaced time intervals is referred to as a time series. Time series can be a result of prediction algorithm."@en ; - rdfs:label "Time Series"@en ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom time:Interval ; - owl:onProperty s4ener:hasEffectivePeriod ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:allValuesFrom s4ener:Usage ; - owl:onProperty s4ener:hasUsage ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasCreationTime ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasTemporalResolution ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:maxCardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:hasUpdateRate ; - ] ; - rdfs:subClassOf [ - a owl:Restriction ; - owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DataPoint ; - owl:onProperty s4ener:hasDataPoint ; - ] ; -. -s4ener:Timer - a owl:Class ; - rdfs:comment "A timer for time-based operation mode and transition constraints." ; - rdfs:label "Timer"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:Transition - a owl:Class ; - rdfs:comment "Possible transitions to switch from one Operation Mode to another or to set new parameters." ; - rdfs:label "Transition"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:Upflex - a owl:NamedIndividual ; - a s4ener:Usage ; - rdfs:comment "This datapoint indicates the upper flexibility." ; - rdfs:label "Upflex"@en ; -. -s4ener:UpperLimit - a owl:NamedIndividual ; - a s4ener:PowerEnvelopeLimitType ; - a s4ener:Usage ; - rdfs:comment "The PowerEnvelopeLimitType enumeration for the upper limit." ; - rdfs:comment "This datapoint indicates the upperlimit." ; - rdfs:label "Upper Limit"@en ; - rdfs:label "Upper limit"@en ; -. -s4ener:Usage - a owl:Class ; - rdfs:comment "The usage of a datapoint, time series or message."@en ; - rdfs:label "Usage"@en ; -. -s4ener:ValueSource - a owl:Class ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast." ; - rdfs:label "Value source"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:ValueTendency - a owl:Class ; - rdfs:comment "This type indicates a codelist for the s4ener:valueTendency property about whether the tendency of a measurement is rising, stable or falling." ; - rdfs:label "Value tendency"@en ; - rdfs:subClassOf owl:Thing ; -. -s4ener:Vanish - a owl:NamedIndividual ; - a s4ener:PowerEnvelopeConsequenceType ; - rdfs:comment "The load or generation that is limited will vanish. This is for example the case with curtailing production from solar panels; the potentially generated energy is lost and will never reappear." ; - rdfs:label "Vanish"@en ; -. -s4ener:abnormalCondition - a owl:DatatypeProperty ; - rdfs:comment "Indicates if this is an instruction during an abnormal condition" ; - rdfs:domain s4ener:FlexibilityInstruction ; - rdfs:label "abnormal condition"@en ; - rdfs:range xsd:boolean ; -. -s4ener:abnormalConditionOnly - a owl:DatatypeProperty ; - rdfs:comment """Indicates if this element can only be used during an abnormal condition. - -In SAREF4ENER this property is intended to be used on the following properties: -- s4ener:OperationMode -- s4ener:Transition -- s4ener:AllowedLimitRange -- s4ener:PowerSequence""" ; - rdfs:label "Abnormal Condition Only"@en ; - rdfs:range xsd:boolean ; -. -s4ener:activateSlot - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)."@en ; - rdfs:label "activate slot"@en ; - rdfs:range xsd:boolean ; -. -s4ener:activeRepetitionNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. "@en ; - rdfs:label "active repetition number"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:activeSlotNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted."@en ; - rdfs:label "active slot number"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:allowedLimitRange - a owl:ObjectProperty ; - rdfs:comment "This property indicates the various AllowedLimitRanges or PowerLimits that this PowerConstraint object consists of." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:PowerConstraint - s4ener:EnergyConstraint - ) ; - ] ; - rdfs:label "allowed limit range"@en ; - rdfs:range s4ener:AllowedLimitRange ; -. -s4ener:alternativesCount - a owl:DatatypeProperty ; - rdfs:comment "Indicates the number of alternatives groups provided by a power profile"@en ; - rdfs:label "alternatives count"@en ; - rdfs:range xsd:integer ; -. -s4ener:alternativesGroupID - a owl:DatatypeProperty ; - rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile"@en ; - rdfs:label "alternatives group ID"@en ; - rdfs:range xsd:integer ; - owl:deprecated true ; -. -s4ener:belongsTo - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. "@en ; - rdfs:label "belongs to"@en ; -. -s4ener:belongsToTimeSeries - a owl:ObjectProperty ; - rdfs:comment "The relationship that connects a data point to a time series."@en ; - rdfs:domain s4ener:DataPoint ; - rdfs:label "belongs to time series"@en ; - rdfs:range s4ener:TimeSeries ; - owl:inverseOf s4ener:hasDataPoint ; -. -s4ener:brandName - a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs."@en ; - rdfs:label "brand name"@en ; - rdfs:range xsd:string ; -. -s4ener:cheapest - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user's energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "@en ; - rdfs:label "cheapest"@en ; - rdfs:range xsd:boolean ; -. -s4ener:deviceCode - a owl:DatatypeProperty ; - rdfs:comment "Provides a device code for the device as defined by the manufacturer."@en ; - rdfs:label "device code"@en ; - rdfs:range xsd:string ; -. -s4ener:deviceName - a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the device as defined by the manufacturer."@en ; - rdfs:label "device name"@en ; - rdfs:range xsd:string ; -. -s4ener:endOfRange - a owl:ObjectProperty ; - rdfs:comment "This property indicates the end of a number range." ; - rdfs:domain s4ener:NumberRange ; - rdfs:label "end of range"@en ; - rdfs:range saref:Measurement ; -. -s4ener:eventID - a owl:DatatypeProperty ; - rdfs:comment "Used in the Demand Response use case to identify an event"@en ; - rdfs:label "event ID"@en ; - rdfs:range xsd:unsignedInt ; - owl:deprecated true ; -. -s4ener:fillRate - a owl:ObjectProperty ; - rdfs:comment "Indicates the change in fill_level per second. The lower_boundary of the NumberRange is associated with an operation_mode_factor of 0, the upper_boundary is associated with an operation_mode_factor of 1." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:Storage - s4ener:OperationModeElement - ) ; - ] ; - rdfs:label "Fill Rate Level"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:firmwareVersion - a owl:DatatypeProperty ; - rdfs:comment "Version identifier of the firmware used in the device (provided by the manufacturer)" ; - rdfs:domain s4ener:Device ; - rdfs:label "has firmware version"@en ; - rdfs:range xsd:string ; -. -s4ener:fromOperationMode - a owl:ObjectProperty ; - rdfs:comment "ID of the OperationMode (exact type differs per ControlType) that should be switched from." ; - rdfs:domain s4ener:Transition ; - rdfs:label "from operation mode"@en ; - rdfs:range s4ener:OperationMode ; -. -s4ener:greenest - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "@en ; - rdfs:label "greenest"@en ; - rdfs:range xsd:boolean ; -. -s4ener:hardwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer."@en ; - rdfs:label "hardware revision "@en ; - rdfs:range xsd:string ; -. -s4ener:hasActivationDelay - a owl:DatatypeProperty ; - rdfs:comment """The scheduled activation delay for a slot. - -This property is suggested to be added in SAREF4Ener_v2 to replace the subclasses of time:TemporalEntity and/or time:DurationDescription""" ; - rdfs:label "delay"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActivationDelayMax - a owl:DatatypeProperty ; - rdfs:comment """Maximum delay time between the end of the previous slot and the beginning of the current slot. - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "activation delay max"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActivationPlan - a owl:ObjectProperty ; - rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and s4ener:TimeSeries."@en ; - rdfs:domain s4ener:FlexibilityInstruction ; - rdfs:label "has activation plan"@en ; - rdfs:range s4ener:TimeSeries ; -. -s4ener:hasActiveDurationMax - a owl:DatatypeProperty ; - rdfs:comment """The active maximum duration a power sequence can run without interruption. - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "active duration max"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActiveDurationMin - a owl:DatatypeProperty ; - rdfs:comment """The active mininum duration a power sequence can run without interruption. - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "active duration min"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActiveDurationSumMax - a owl:DatatypeProperty ; - rdfs:comment """The active maximum duration a power sequence can run in total (summation of all active times). - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "active duration sum max"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActiveDurationSumMin - a owl:DatatypeProperty ; - rdfs:comment """The active minimum duration a power sequence must run in total (summation of all active times). - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "active duration sum min"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasActiveOperationMode - a owl:ObjectProperty ; - rdfs:comment "A reference to the OperationMode that is presently active" ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:OperationMode - saref:Actuator - ) ; - ] ; - rdfs:label "has active operation mode"@en ; - rdfs:range s4ener:OperationMode ; -. -s4ener:hasAppliedEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event."@en ; - rdfs:label "has applied event action consume"@en ; -. -s4ener:hasAppliedEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event."@en ; - rdfs:label "has applied event action produce"@en ; -. -s4ener:hasCommodity - a owl:ObjectProperty ; - rdfs:comment "An indication of which commodity this Role is a consumer, producer, or storer of." ; - rdfs:domain s4ener:Role ; - rdfs:label "Uses commodity"@en ; - rdfs:range saref:Commodity ; -. -s4ener:hasConnection - a owl:ObjectProperty ; - rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time."@en ; - rdfs:label "has connection"@en ; - owl:deprecated true ; -. -s4ener:hasConsequenceType - a owl:ObjectProperty ; - rdfs:comment "The consequence type associated with this Power Constraint, which can be Defer or Vanish." ; - rdfs:domain s4ener:PowerConstraint ; - rdfs:label "Has Consequence Type"@en ; - rdfs:range s4ener:PowerEnvelopeConsequenceType ; -. -s4ener:hasConstraints - a owl:ObjectProperty ; - rdfs:comment "This property relates a Power Envelop Instruction or Profile to the constraints it needs to follow. There are two types of constraints modelled: Power constraints and energy constraints." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:PEBCInstruction - s4ener:PowerEnvelopeProfile - ) ; - ] ; - rdfs:label "has constraints"@en ; - rdfs:range [ - a owl:Class ; - owl:unionOf ( - s4ener:PowerConstraint - s4ener:EnergyConstraint - ) ; - ] ; -. -s4ener:hasContractualConsumptionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the contractual power limit and the value indicating the max limit consumption."@en ; - rdfs:domain s4ener:ContractualPowerLimit ; - rdfs:label "has contractual consumption Max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; -. -s4ener:hasContractualProductionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the contractual power limit and the value indicating the max limit production."@en ; - rdfs:domain s4ener:ContractualPowerLimit ; - rdfs:label "has contractual production Max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; -. -s4ener:hasCost - a owl:ObjectProperty ; - rdfs:comment " Additional costs per second (e.g. wear, services) associated with this operation mode in the currency defined by the ResourceManagerDetails , excluding the commodity cost. The range is expressing uncertainty and is not linked to the operation_mode_factor." ; - rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and s4ener:DataPoint"@en ; - rdfs:domain s4ener:FlexibilityInstruction ; - rdfs:domain s4ener:OperationMode ; - rdfs:label "has cost"@en ; - rdfs:label "hasCost"@en ; - rdfs:range s4ener:DataPoint ; -. -s4ener:hasCreationTime - a owl:DatatypeProperty ; - rdfs:comment """The time instant that defines the creation time of a data point or quantity or forecast or similar entities. This is not the same as the time at which the quantity is in effect. For example, if a temperature is forecasted today at 12:30 (creation time of the forecast) for the following day at 14:45 (time when the temperature is expected to be in effect), the this instant should be 12:30 of today. - -A creation time (instant). This is the point in time when the data point was created, which is not necessarily the time for which it is valid. In the case of soft-sensors or forecasters, a data point might have been created ahead of time, in the case of a direcet measurement a data point might created at its time of validity (or at the end of its validity time interval) and in the case of an archived value the data point might have been created after the fact."""@en ; - rdfs:label "has creation time"@en ; - rdfs:range xsd:dateTimeStamp ; -. -s4ener:hasDataPoint - a owl:ObjectProperty ; - rdfs:comment "This relationship connects a time series to data point."@en ; - rdfs:domain s4ener:TimeSeries ; - rdfs:label "has data point"@en ; - rdfs:range s4ener:DataPoint ; -. -s4ener:hasDemandRate - a owl:ObjectProperty ; - rdfs:comment "The present demand rate that needs to be satisfied by the system" ; - rdfs:domain s4ener:DemandDrivenProfile ; - rdfs:label "has demand rate"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:hasDemandRateForecast - a owl:ObjectProperty ; - rdfs:comment "This property relates a Demand Driven Profile to a TimeSeries object that indicates a forecast of the average demand rate." ; - rdfs:domain s4ener:DemandDrivenProfile ; - rdfs:label "has average demand rate forecast"@en ; - rdfs:range s4ener:TimeSeries ; -. -s4ener:hasDevice - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event."@en ; - rdfs:label "has device"@en ; -. -s4ener:hasDuration - a owl:DatatypeProperty ; - rdfs:comment """This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: - -- the startTime of the power sequence (in the PowerSequence class). SHALL be present -- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -- the startTime of measurement as absolute or relative value (in the Measurement class). -- the endTime of measurement as absolute or relative value (in the Measurement class). - -The duration is expected to be described as in xsd:duration"""@en ; - rdfs:comment """This property specifies that the componenrt has a duration attribute further specified in the subproperty - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "duration in xsd "@en ; - rdfs:range xsd:duration ; -. -s4ener:hasDurationDefault - a owl:DatatypeProperty ; - rdfs:comment """The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "duration default"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasDurationMin - a owl:DatatypeProperty ; - rdfs:comment """The minimum duration for some component - -This property is suggested to be added in SAREF4ENER_V2""" ; - rdfs:label "duration minimum"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasEarliestStartTime - a owl:DatatypeProperty ; - rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. - -Note: This element applies to the first repetition of the slot number only. - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "has earliest start time"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasEffectivePeriod - a owl:ObjectProperty ; - rdfs:comment """This connects to the temporal entity which describes when (time interval) the quantity of this data point was, is, or will be in effect. This is the time interval which is covered by the forecast. -This should be equivalent to the time interval covered by the time-series that express the forecast. *A potential application of SHACL?*""" ; - rdfs:label "has effective period"@en ; - rdfs:range time:Interval ; -. -s4ener:hasEndTime - a owl:DatatypeProperty ; - rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. -The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""@en ; - rdfs:label "end time"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasEnergy - a owl:ObjectProperty ; - rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)"@en ; - rdfs:label "has energy"@en ; - rdfs:range s4ener:Energy ; -. -s4ener:hasEnergyValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing an energy value type"@en ; - rdfs:label "has energy value type"@en ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasEnvelope - a owl:ObjectProperty ; - rdfs:comment "This property relates a Power Envelope to the Timeseries object that describes the envelope" ; - rdfs:domain s4ener:PowerEnvelope ; - rdfs:label "has envelope"@en ; - rdfs:range s4ener:TimeSeries ; -. -s4ener:hasEventStateConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume."@en ; - rdfs:label "has event state consume"@en ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasEventStateProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume."@en ; - rdfs:label "has event state produce"@en ; - rdfs:subPropertyOf saref:hasState ; -. -s4ener:hasExecutionTime - a owl:DatatypeProperty ; - rdfs:comment "Start time of the instruction" ; - rdfs:domain s4ener:FlexibilityInstruction ; - rdfs:label "has execution time"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasExpression - a owl:ObjectProperty ; - rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions"@en ; - rdfs:label "has expression"@en ; - owl:deprecated true ; -. -s4ener:hasFailsafeConsumptionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the failsafe power limit and the value indicating its consumption."@en ; - rdfs:domain s4ener:FailsafePowerLimit ; - rdfs:label "has failsafe consumption max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; -. -s4ener:hasFailsafeDuration - a owl:DatatypeProperty ; - rdfs:comment "The relationship between the failsafe power limit and its duration. This property indicates the minimum duration the fail safe state will take once a device has entered that state."@en ; - rdfs:domain s4ener:FailsafeState ; - rdfs:label "has failsafe duration"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasFailsafeProductionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the failsafe power limit and the value indicating its production."@en ; - rdfs:domain s4ener:FailsafePowerLimit ; - rdfs:label "has failsafe production max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; -. -s4ener:hasFillLevelRange - a owl:ObjectProperty ; - rdfs:comment """The range of the fill level for which this FRBC.OperationModeElement applies. - -If this concept is applied on a Storage it indicated the range in which a storage should remain.""" ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:Storage - s4ener:OperationModeElement - s4ener:LeakageBehaviourElement - s4ener:FillLevelTargetProfileElement - ) ; - ] ; - rdfs:label "Fill Level Range"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:hasFillLevelTargetProfile - a owl:ObjectProperty ; - rdfs:comment """The Fill Level Target Profile of the storage that the current Fill Rate Profile tries to accomodate for. - -NB. This cannot be modelled as a TimeSeries, since the x-axis is not time.""" ; - rdfs:domain s4ener:Storage ; - rdfs:label "has fill level target profile"@en ; - rdfs:range s4ener:FillLevelTargetProfile ; -. -s4ener:hasFillLevelTargetProfileElement - a owl:ObjectProperty ; - rdfs:comment "The various Fill Level Target Profile Elements detailing the Fill Level Target Profile that the current Fill Level Based Profile tries to accomodate for." ; - rdfs:domain s4ener:FillLevelTargetProfile ; - rdfs:label "has fill level target profile element"@en ; - rdfs:range s4ener:FillLevelTargetProfileElement ; -. -s4ener:hasFunction - a owl:ObjectProperty ; - rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch"@en ; - rdfs:label "has function"@en ; - owl:deprecated true ; -. -s4ener:hasIncentive - a owl:ObjectProperty ; - rdfs:comment "This property relates an IncentiveTable element, such as an IncentiveTableSlot or an IncentiveTableTier to the boundaries that it consists of." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:IncentiveTableSlot - s4ener:IncentiveTableTier - ) ; - ] ; - rdfs:label "has incentive"@en ; - rdfs:range s4ener:Incentive ; -. -s4ener:hasIncentiveType - a owl:ObjectProperty ; - rdfs:comment "The relationship between the tier and its incentive type"@en ; - rdfs:domain s4ener:IncentiveTableTier ; - rdfs:label "has incentive type"@en ; - rdfs:range s4ener:IncentiveType ; -. -s4ener:hasIndex - a owl:DatatypeProperty ; - rdfs:comment "Gives the index for elements that are an array in the S2 specification. Can be used regularly as well as in RDF* manner on properties." ; - rdfs:label "has index"@en ; - rdfs:range xsd:integer ; -. -s4ener:hasInstructionStatus - a owl:ObjectProperty ; - rdfs:comment "Present status of this instruction." ; - rdfs:label "has Instruction Status"@en ; - rdfs:range s4ener:InstructionStatus ; -. -s4ener:hasInterruptionEndTime - a owl:DatatypeProperty ; - rdfs:comment "The end time included in an Interruption Instruction message indicating when the interruption should end." ; - rdfs:domain s4ener:InterruptionInstruction ; - rdfs:label "has end time Interruption"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasInterruptionStartTime - a owl:DatatypeProperty ; - rdfs:comment "The start time included in an Interruption Instruction message indicating when the interruption should start." ; - rdfs:domain s4ener:InterruptionInstruction ; - rdfs:label "Has Interruption Start Time"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasLatestEndTime - a owl:DatatypeProperty ; - rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. - -Note: This element applies to the first repetition of the slot number only. - -This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; - rdfs:label "has latest end time"@en ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasLeakageBehaviour - a owl:ObjectProperty ; - rdfs:comment "The Leakage Behaviour associated with this storage." ; - rdfs:domain s4ener:Storage ; - rdfs:label "has leakage behaviour"@en ; - rdfs:range s4ener:LeakageBehaviour ; -. -s4ener:hasLeakageBehaviourElement - a owl:ObjectProperty ; - rdfs:comment "This property relates the LeakageBehaviour description to the LeakageBehaviourElements indicating the detailed description." ; - rdfs:domain s4ener:LeakageBehaviour ; - rdfs:label "has leakage behaviour element"@en ; - rdfs:range s4ener:LeakageBehaviourElement ; -. -s4ener:hasLowerAveragePower - a owl:DatatypeProperty ; - rdfs:comment "The lower average power associated with this Energy constraint." ; - rdfs:domain s4ener:EnergyConstraint ; - rdfs:label "has lower average power"@en ; - rdfs:range xsd:integer ; -. -s4ener:hasLowerBoundary - a owl:ObjectProperty ; - rdfs:comment "This property relates an IncentiveTableBoundary to the datapoint describing its lower boundary or starting point at which this boundary becomes active." ; - rdfs:domain s4ener:Incentive ; - rdfs:label "has lower boundary"@en ; - rdfs:range s4ener:DataPoint ; -. -s4ener:hasMaxPauseBefore - a owl:DatatypeProperty ; - rdfs:comment "The maximum duration for which a device can be paused between the end of the previous running sequence and the start of this one" ; - rdfs:domain s4ener:PowerSequence ; - rdfs:label "max pause before"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasMaxPauseDuration - a owl:DatatypeProperty ; - rdfs:comment "The maximum duration for which a device can be paused between the end of the previous running sequence and the start of this one" ; - rdfs:domain s4ener:PowerSequence ; - rdfs:label "Pause before Maximum"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasMessagingType - a owl:ObjectProperty ; - rdfs:comment "The messaging type associated with this element." ; - rdfs:label "has messaging type"@en ; -. -s4ener:hasName - a owl:DatatypeProperty ; - rdfs:comment "Human readable name given by user" ; - rdfs:label "Has Name"@en ; - rdfs:range xsd:string ; -. -s4ener:hasNominalConsumption - a owl:ObjectProperty ; - rdfs:comment "The relationship between the nominal power limit and the value indicating the max limit consumption."@en ; - rdfs:domain s4ener:NominalPowerLimit ; - rdfs:label "has nominal consumption Max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; -. -s4ener:hasNominalProduction - a owl:ObjectProperty ; - rdfs:comment "The relationship between the nominal power limit and the value indicating the max limit production."@en ; - rdfs:domain s4ener:NominalPowerLimit ; - rdfs:label "has nominal production Max"@en ; - rdfs:range saref:Measurement ; - rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; -. -s4ener:hasNumberRange - a owl:ObjectProperty ; - rdfs:comment "This property provides the association between a power range and its number range." ; - rdfs:domain s4ener:PowerRange ; - rdfs:label "has number range"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:hasOperationMode - a owl:ObjectProperty ; - rdfs:comment """This property indicates the s4ener:OperationMode inidicated by this Actuator, Instruction, or OperationModeProfile. - -The SAREF4ENER extension expects the following classes to be used as domain: -- saref:Actuator -- s4ener:FRBCInstruction -- s4ener:DDBCInstruction -- s4ener:OMBCInstruction -- s4ener:OperationModeProfile""" ; - rdfs:label "has Operation Modes"@en ; - rdfs:range s4ener:OperationMode ; -. -s4ener:hasOperationModeElement - a owl:ObjectProperty ; - rdfs:comment "List of OperationModeElements, which describe the properties of this FRBC.OperationMode depending on the fill_level. The fill_level_ranges of the items in the Array must be contiguous." ; - rdfs:domain s4ener:OperationMode ; - rdfs:label "Has Operation Mode Element"@en ; - rdfs:range s4ener:OperationModeElement ; -. -s4ener:hasOperationModeFactor - a owl:DatatypeProperty ; - rdfs:comment """The number indicates the factor with which the FRBC.OperationMode or OMBC.OperationMode is usedconfigured. The factor should be greater than or equal than 0 and less or equal to 1. - -Within the SAREF4ENER extension, this property is to be used on the following classes: -- s4ener:OMBCInstruction -- s4ener:OperationMode -- saref:Actuator -- s4ener:FRBCInstruction -- s4ener:DDBCInstruction""" ; - rdfs:label "Has Operation Mode Factor"@en ; - rdfs:range xsd:decimal ; -. -s4ener:hasPowerEnvelope - a owl:ObjectProperty ; - rdfs:comment "The PEBC.PowerEnvelope(s) that should be followed by the Resource Manager. There shall be at least one PEBC.PowerEnvelope, but at most one PEBC.PowerEnvelope for each CommodityQuantity." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:PEBCInstruction - s4ener:PowerEnvelopeProfile - ) ; - ] ; - rdfs:label "has power envelope"@en ; - rdfs:range s4ener:PowerEnvelope ; -. -s4ener:hasPowerEnvelopeElement - a owl:ObjectProperty ; - rdfs:comment "This property relates a PowerEnvelopeProfile to the various specific PowerEnvelops contained in the profile." ; - rdfs:domain s4ener:PowerEnvelopeProfile ; - rdfs:label "has power envelope element"@en ; - rdfs:range s4ener:PowerEnvelope ; -. -s4ener:hasPowerLimitConsumptionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the power limit and the value indicating the max limit consumption."@en ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "has power limit consumption Max"@en ; - rdfs:range saref:Measurement ; -. -s4ener:hasPowerLimitDuration - a owl:DatatypeProperty ; - rdfs:comment "The relationship between the power limit and its duration. Power limit may come with a time period of validity based on duration"@en ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "has power limit duration"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasPowerLimitProductionMax - a owl:ObjectProperty ; - rdfs:comment "The relationship between the power limit and the value indicating the max limit production."@en ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "has power limit production Max"@en ; - rdfs:range saref:Measurement ; -. -s4ener:hasPowerLimitState - a owl:ObjectProperty ; - rdfs:comment "The relationship between the power limit state and its state (active/ inactive)."@en ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "has power limit state"@en ; -. -s4ener:hasPowerRange - a owl:ObjectProperty ; - rdfs:comment "The power produced or consumed by this operation mode. The start of each PowerRange is associated with an operation_mode_factor of 0, the end is associated with an operation_mode_factor of 1. In the array there must be at least one PowerRange, and at most one PowerRange per CommodityQuantity." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:OperationMode - s4ener:OperationModeElement - ) ; - ] ; - rdfs:label "Has Power Ranges"@en ; - rdfs:range s4ener:PowerRange ; -. -s4ener:hasPowerSequence - a owl:ObjectProperty ; - rdfs:comment "The various Sequences contained in a Power Sequence Container among which the EMS can choose the proper PowerSequence for the current energy demands." ; - rdfs:domain s4ener:PowerSequenceContainer ; - rdfs:label "has power sequence"@en ; - rdfs:range s4ener:PowerSequence ; -. -s4ener:hasPowerSequenceContainer - a owl:ObjectProperty ; - rdfs:comment "The various power sequence containers contained within an S2 Power Profile. The containers have to executed one after the other. Each container contains various Power Sequence anong which the EMS can choose the appropriate Power Sequence for the current energy demands." ; - rdfs:domain s4ener:PowerProfile ; - rdfs:label "has power sequence container"@en ; - rdfs:range s4ener:PowerSequenceContainer ; -. -s4ener:hasPowerSequenceElement - a owl:ObjectProperty ; - rdfs:comment "A connection between the Power Sequence and the elements (or Slots) describing the exact contents." ; - rdfs:domain s4ener:PowerSequence ; - rdfs:label "has power sequence element"@en ; - rdfs:range s4ener:PowerSequenceElement ; -. -s4ener:hasPowerSequenceStatus - a owl:ObjectProperty ; - rdfs:comment "This property indicates the current status of this Power Sequence." ; - rdfs:domain s4ener:PowerSequenceContainer ; - rdfs:label "has power sequence status"@en ; - rdfs:range s4ener:PowerSequenceStatus ; -. -s4ener:hasPowerSource - a owl:DatatypeProperty ; - rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery "@en ; - rdfs:label "power source"@en ; - rdfs:range [ - a rdfs:Datatype ; - owl:oneOf ( - "unknown" - "mainsSinglePhase" - "mains3Phase" - "battery" - "dc" - ) ; - ] ; -. -s4ener:hasPowerValueType - a owl:ObjectProperty ; - rdfs:comment "A relationship representing a power value type"@en ; - rdfs:label "has power value type"@en ; - rdfs:subPropertyOf s4ener:hasValueType ; -. -s4ener:hasPreviousOperationMode - a owl:ObjectProperty ; - rdfs:comment "The previous operation mode this device was in" ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - saref:Actuator - s4ener:OperationMode - ) ; - ] ; - rdfs:label "has previous operation mode"@en ; - rdfs:range s4ener:OperationMode ; -. -s4ener:hasQuantile - a owl:DatatypeProperty ; - rdfs:comment "Used to define a quantile for example on a data point of a quantile time series. The quantile must be a ratio, usually a percentage. In a quantile forecast the hasQuantile property cannot be empty"@en ; - rdfs:domain s4ener:DataPoint ; - rdfs:label "has quantile"@en ; - rdfs:range xsd:decimal ; -. -s4ener:hasRecipient - a owl:ObjectProperty ; - rdfs:comment "This property can be used to connect a flexibility offer or/and flexibility request to a foaf:agent or saref:Device."@en ; - rdfs:label "has recipient"@en ; -. -s4ener:hasRole - a owl:ObjectProperty ; - rdfs:comment "Each Resource Manager provides one or more energy Roles" ; - rdfs:domain s4ener:Device ; - rdfs:label "performs role"@en ; - rdfs:range s4ener:Role ; -. -s4ener:hasRoleType - a owl:ObjectProperty ; - rdfs:comment "The type of this specific role" ; - rdfs:domain s4ener:Role ; - rdfs:label "role type"@en ; - rdfs:range s4ener:RoleType ; -. -s4ener:hasRunningCosts - a owl:ObjectProperty ; - rdfs:comment "Additional costs per second (e.g. wear, services) associated with this operation mode in the currency defined by the ResourceManagerDetails , excluding the commodity cost. The range is expressing uncertainty and is not linked to the operation_mode_factor." ; - rdfs:domain s4ener:OperationModeElement ; - rdfs:label "has running costs"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:hasScopeType - a owl:ObjectProperty ; - rdfs:comment "The relationship between the incentive table and the scope type"@en ; - rdfs:domain s4ener:IncentiveTableBasedProfile ; - rdfs:label "has scope type"@en ; - rdfs:range s4ener:ScopeType ; -. -s4ener:hasSlotValue - a owl:ObjectProperty ; - rdfs:comment """This property is intended to specify the power or energy value of a slot in a power sequence as part of a power profile. - -This property is a suggestion to be added in Saref4Energy v2.""" ; - rdfs:domain s4ener:Slot ; - rdfs:label "has slot value"@en ; - rdfs:range saref:Measurement ; - rdfs:range [ - a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass [ - a owl:Class ; - owl:unionOf ( - saref:Energy - saref:Power - ) ; - ] ; - owl:onProperty saref:relatesToProperty ; - ] ; -. -s4ener:hasStandardDeviation - a owl:DatatypeProperty ; - rdfs:comment "Adds a standard deviation to a data point."@en ; - rdfs:domain s4ener:GaussianDataPoint ; - rdfs:label "has standard deviation"@en ; - rdfs:range xsd:decimal ; -. -s4ener:hasStartTime - a owl:DatatypeProperty ; - rdfs:comment "The startTime of a power sequence or slot. SHALL be present"@en ; - rdfs:label "has start time"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasStorage - a owl:ObjectProperty ; - rdfs:comment "The storage regulated by the related Fill Rate Profile." ; - rdfs:domain s4ener:FillRateProfile ; - rdfs:label "has storage"@en ; - rdfs:range s4ener:Storage ; -. -s4ener:hasSupplyRange - a owl:ObjectProperty ; - rdfs:comment "The SupplyRange this OperationMode of a Demand Driven Profile can deliver for the CEM to match the DemandRate. The start of the NumberRange is associated with an operation_mode_factor of 0, the end is associated with an operation_mode_factor of 1." ; - rdfs:domain s4ener:OperationMode ; - rdfs:label "Has Supply Range"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:hasTemporalResolution - a owl:DatatypeProperty ; - rdfs:comment "The resolution is the distance between two measurement time-stapms. This only makes sense if the measurements are equidistant." ; - rdfs:label "has temporal resolution"@en ; - rdfs:range xsd:duration ; -. -s4ener:hasTier - a owl:ObjectProperty ; - rdfs:comment "The relationship between the incentive table and the tiers it consists of"@en ; - rdfs:domain s4ener:IncentiveTableBasedProfile ; - rdfs:label "has tier incentive"@en ; -. -s4ener:hasTimer - a owl:ObjectProperty ; - rdfs:comment "The set of timers that are available in this Actuator or OperationModeProfile" ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - saref:Actuator - s4ener:OperationModeProfile - ) ; - ] ; - rdfs:label "Has Timer"@en ; - rdfs:range s4ener:Timer ; -. -s4ener:hasTransition - a owl:ObjectProperty ; - rdfs:comment "The transitions between various saref:States or s4ener:OperationModes that either the Actuator or the OperationModeProfile can support." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - saref:Actuator - s4ener:OperationModeProfile - ) ; - ] ; - rdfs:label "has transition"@en ; - rdfs:range s4ener:Transition ; -. -s4ener:hasTransitionCosts - a owl:DatatypeProperty ; - rdfs:comment "Absolute costs for going through this Transition in the currency as described in the ResourceManagerDetails." ; - rdfs:domain s4ener:Transition ; - rdfs:label "has transition costs"@en ; - rdfs:range xsd:decimal ; -. -s4ener:hasTransitionDuration - a owl:DatatypeProperty ; - rdfs:comment "Indicates the time between the initiation of this Transition, and the time at which the device behaves according to the Operation Mode which is defined in the appropriate data element. When no value is provided it is assumed the transition duration is negligible." ; - rdfs:domain s4ener:Transition ; - rdfs:label "Transition Duration"@en ; - rdfs:range xsd:duration ; - rdfs:subPropertyOf s4ener:hasDuration ; -. -s4ener:hasTransitionTimestamp - a owl:DatatypeProperty ; - rdfs:comment "Time at which the transition from the previous Operation Mode was initiated. This value shall always be provided, unless the active OperationMode is the first OperationMode the Resource Manager is aware of." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:OperationMode - saref:Actuator - ) ; - ] ; - rdfs:label "transition Timestamp"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:hasUpdateRate - a owl:DatatypeProperty ; - rdfs:comment """The rate at which a data point or time-series or forecast or other data entity is being updated. - -If the time series gets regularly updated, then the time between two updates can be recorded here."""@en ; - rdfs:label "has update rate"@en ; - rdfs:range xsd:duration ; -. -s4ener:hasUpperAveragePower - a owl:DatatypeProperty ; - rdfs:comment "The upper average power of an Energy constraint of a Power Envelope profile." ; - rdfs:domain s4ener:EnergyConstraint ; - rdfs:label "has upper average power"@en ; - rdfs:range xsd:integer ; -. -s4ener:hasUpperBoundary - a owl:ObjectProperty ; - rdfs:comment "This property relates a boundary to its upper boundary or the value at which this incentive becomes inactive. This value is optional, because the upper boundary can be inferred from the lower boundary of the next boundary." ; - rdfs:domain s4ener:Incentive ; - rdfs:label "has upper boundary"@en ; - rdfs:range s4ener:DataPoint ; -. -s4ener:hasUsage - a owl:ObjectProperty ; - rdfs:comment "This property provides the possibility to add some additional information about the usage of a data-point or time-series. For example, a data point or time series can be used as an upper limit, lower limit or a baseline, a maximum versus minimum value, or a consumption versus a production value."@en ; - rdfs:label "has usage"@en ; - rdfs:range s4ener:Usage ; -. -s4ener:hasUsageForecast - a owl:ObjectProperty ; - rdfs:comment """Indicates the usage forecast that may be relevant to decide the energy flexibility strategy following a specific flexibility profile, specifically a fill rate based profile or incentive table. - -In SAREF4ENER this property is intended to be applied on an s4ener:FlexibilityProfile.""" ; - rdfs:label "Has Usage Forecast"@en ; - rdfs:range s4ener:TimeSeries ; -. -s4ener:hasValue - a owl:DatatypeProperty ; - rdfs:comment "Power value expressed in the unit associated with the CommodityQuantity of the Power Value." ; - rdfs:label "has value"@en ; - rdfs:range xsd:decimal ; -. -s4ener:hasValueSource - a owl:ObjectProperty ; - rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast."@en ; - rdfs:label "has value source"@en ; - rdfs:range s4ener:ValueSource ; -. -s4ener:hasValueType - a owl:ObjectProperty ; - rdfs:comment "A relation representing the value type of an entity"@en ; - rdfs:label "has value type"@en ; -. -s4ener:includes - a owl:ObjectProperty ; - rdfs:comment "This property can be used to connect the flexibility offer and/or flexibility request to the flexibility profile. Additionally, it can be used to specify the s4ener:datapoint, s4ener:timeseries and ic-fc:forecast included in the flexibility offer and/or flexibility request."@en ; - rdfs:label "includes"@en ; -. -s4ener:isActive - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power limit is currently active" ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "is active"@en ; - rdfs:range xsd:boolean ; -. -s4ener:isActuatedBy - a owl:ObjectProperty ; - rdfs:comment "A reference to an (external) actuator that can potentially activate this profile or where the instruction originates from." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:DemandDrivenProfile - s4ener:FillRateProfile - s4ener:FRBCInstruction - s4ener:DDBCInstruction - ) ; - ] ; - rdfs:label "is actuated by"@en ; - rdfs:range saref:Actuator ; -. -s4ener:isBlockedBy - a owl:ObjectProperty ; - rdfs:comment "The Timers that block this Transition from initiating while at least one of these Timers is not yet finished" ; - rdfs:domain s4ener:Transition ; - rdfs:label "is blocked by"@en ; - rdfs:range s4ener:Timer ; -. -s4ener:isBoundTo - a owl:ObjectProperty ; - rdfs:comment "The relationship between a device and its contractual power limit"@en ; - rdfs:domain s4ener:PowerLimitProfile ; - rdfs:label "is bound to"@en ; - rdfs:range s4ener:ContractualPowerLimit ; -. -s4ener:isChangeable - a owl:DatatypeProperty ; - rdfs:comment """A relationship indicating that this element can be changed by its operator. The boolean value indicates whether it is indeed changeable. - -In the SAREF4ENER extension this property is intended for PowerLimits and IncentiveTable elements, such as the IncentivebasedProfile, IncentiveTableSlot, and the IncentiveTableTier."""@en ; - rdfs:label "is changeable"@en ; - rdfs:range xsd:boolean ; -. -s4ener:isFinishedAt - a owl:DatatypeProperty ; - rdfs:comment "Indicates when the Timer will be finished. If the DateTimeStamp is in the future, the timer is not yet finished. If the DateTimeStamp is in the past, the timer is finished. When the timer was never started, the value can be an arbitrary DateTimeStamp in the past." ; - rdfs:domain s4ener:Timer ; - rdfs:label "is finished at"@en ; - rdfs:range xsd:dateTimeStamp ; - rdfs:subPropertyOf saref:hasTimestamp ; -. -s4ener:isInterruptible - a owl:DatatypeProperty ; - rdfs:comment "This property indicates whether the PowerSequence is interruptible." ; - rdfs:domain s4ener:PowerSequence ; - rdfs:label "is interruptible"@en ; - rdfs:range xsd:boolean ; -. -s4ener:isLimitedWith - a owl:ObjectProperty ; - rdfs:comment "The relationship between device and failsafe power limit"@en ; - rdfs:domain s4ener:PowerLimitProfile ; - rdfs:label "is limited with"@en ; - rdfs:range s4ener:FailsafePowerLimit ; -. -s4ener:isObligatory - a owl:DatatypeProperty ; - rdfs:comment "A relationship between the power limit and the boolean value indicating whether the power limit is obligatory"@en ; - rdfs:domain s4ener:PowerLimit ; - rdfs:label "is obligatory"@en ; - rdfs:range xsd:boolean ; -. -s4ener:isPausable - a owl:DatatypeProperty ; - rdfs:comment "Specifies if the power sequence is pausable."@en ; - rdfs:label "is pausable"@en ; - rdfs:range xsd:boolean ; -. -s4ener:isProtectedBy - a owl:ObjectProperty ; - rdfs:comment "The relationship between the device and the nominal power limit"@en ; - rdfs:domain s4ener:PowerLimitProfile ; - rdfs:label "is protected by"@en ; - rdfs:range s4ener:NominalPowerLimit ; -. -s4ener:isStoppable - a owl:DatatypeProperty ; - rdfs:comment "Specifies if the power sequence is stoppable."@en ; - rdfs:label "is stoppable"@en ; - rdfs:range xsd:boolean ; -. -s4ener:leakageRate - a owl:ObjectProperty ; - rdfs:comment "Indicates how fast the momentary fill level will decrease per second due to leakage within the given range of the fill level." ; - rdfs:domain s4ener:LeakageBehaviourElement ; - rdfs:label "Leakage Rate"@en ; - rdfs:range saref:Measurement ; -. -s4ener:limitType - a owl:ObjectProperty ; - rdfs:comment "Indicates if this ranges applies to the upper limit or the lower limit." ; - rdfs:domain s4ener:AllowedLimitRange ; - rdfs:label "Limit Type"@en ; - rdfs:range s4ener:PowerEnvelopeLimitType ; -. -s4ener:manufacturerDescription - a owl:DatatypeProperty ; - rdfs:comment "A description for the device as defined by the manufacturer."@en ; - rdfs:label "manufacturer description"@en ; - rdfs:range xsd:string ; -. -s4ener:manufacturerLabel - a owl:DatatypeProperty ; - rdfs:comment "A short label of the device as defined by the manufacturer. "@en ; - rdfs:label "manufacturer label"@en ; - rdfs:range xsd:string ; -. -s4ener:manufacturerNodeIdentification - a owl:DatatypeProperty ; - rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address."@en ; - rdfs:label "manufacturer node identification"@en ; - rdfs:range xsd:string ; -. -s4ener:maxCyclesPerDay - a owl:DatatypeProperty ; - rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day."@en ; - rdfs:label "max cycles per day"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:measurementID - a owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address."@en ; - rdfs:label "measurement id"@en ; - rdfs:range xsd:unsignedInt ; - owl:deprecated true ; -. -s4ener:messagingNumber - a owl:DatatypeProperty ; - rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message."@en ; - rdfs:label "messaging number"@en ; - rdfs:range xsd:unsignedInt ; - owl:deprecated true ; -. -s4ener:messagingType - a owl:DatatypeProperty ; - rdfs:comment """Indicates the type of the message. Possible values are: -- logging (used for messages, that shall be stored in a log file) -- information (messages, that shall be presented to the customer on a display; lower priority) -- warning (messages, that shall be presented to the customer on a display; medium priority) -- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) -- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) -- obsolete (previously sent messages, that shall be marked as obsolete)"""@en ; - rdfs:label "messaging type"@en ; - rdfs:range [ - a rdfs:Datatype ; - owl:oneOf ( - "logging" - "information" - "warning" - "alarm" - "emergency" - "obsolete" - ) ; - ] ; - owl:deprecated true ; -. -s4ener:nodeRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE."@en ; - rdfs:label "node remote controllable"@en ; - rdfs:range xsd:boolean ; -. -s4ener:optionalSlot - a owl:DatatypeProperty ; - rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number."@en ; - rdfs:label "optional slot"@en ; - rdfs:range xsd:boolean ; -. -s4ener:presentFillLevel - a owl:ObjectProperty ; - rdfs:comment "A saref:Measurement with a percentage value indicating the fill level of the storage." ; - rdfs:domain s4ener:Storage ; - rdfs:label "present fill level"@en ; - rdfs:range saref:Measurement ; -. -s4ener:producedBy - a owl:ObjectProperty ; - rdfs:comment """A relation between an entity (datapoint, message, timeseries, instruction) that has been produced by a device or other agent. - - In the context of SAREF4ENER this property is intended for s4ener:DataPoint, s4ener:TimeSeries, and the various types of flexibility instructions, FlexOffers and FlexRequests.""" ; - rdfs:label "produced by"@en ; - rdfs:range [ - a owl:Class ; - owl:unionOf ( - foaf:Agent - saref:Device - ) ; - ] ; -. -s4ener:progress - a owl:DatatypeProperty ; - rdfs:comment "Time that has passed since the selected sequence has started. A value must be provided, unless no sequence has been selected or the selected sequence hasn't started yet." ; - rdfs:domain s4ener:PowerSequenceContainer ; - rdfs:label "progress"@en ; - rdfs:range xsd:duration ; -. -s4ener:rangeBoundary - a owl:ObjectProperty ; - rdfs:comment "Boundaries of the power range of this PEBC.AllowedLimitRange. The CEM is allowed to choose values within this range for the power envelope for the limit as described in limit_type. The start of the range shall be smaller or equal than the end of the range." ; - rdfs:domain [ - a owl:Class ; - owl:unionOf ( - s4ener:AllowedLimitRange - s4ener:EnergyConstraint - ) ; - ] ; - rdfs:label "range boundary"@en ; - rdfs:range s4ener:NumberRange ; -. -s4ener:receives - a owl:ObjectProperty ; - rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event"@en ; - rdfs:label "receives"@en ; -. -s4ener:receivesPowerLimit - a owl:ObjectProperty ; - rdfs:comment "The relationship between a power limit profile and the power limit it has received for its device to follow"@en ; - rdfs:domain s4ener:PowerLimitProfile ; - rdfs:label "receives power limit"@en ; - rdfs:range s4ener:PowerLimit ; -. -s4ener:relatesToCommodityQuantity - a owl:ObjectProperty ; - rdfs:comment """Relates the classes to the various commodity quantities introduced by the S2 standard. - -In the SAREF4ENER extension this property is intended for the following: -- s4ener:PowerRange -- s4ener:AllowedLimitRange -- s4ener:EnergyConstraint -- s4ener:PowerEnvelope""" ; - rdfs:label "relates to commodity quantity"@en ; - rdfs:range s4ener:CommodityQuantity ; -. -s4ener:relatesToOffer - a owl:ObjectProperty ; - rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and the flexibility offer."@en ; - rdfs:domain s4ener:FlexibilityInstruction ; - rdfs:label "relates to offer"@en ; - rdfs:range s4ener:FlexOffer ; -. -s4ener:relatesToPowerProfile - a owl:ObjectProperty ; - rdfs:comment "ID of the PPBC.PowerProfileDefinition of which the PPBC.PowerSequence is being selected and scheduled by the CEM." ; - rdfs:domain s4ener:PPBCInstruction ; - rdfs:label "Relates to power profile"@en ; - rdfs:range s4ener:PowerProfile ; -. -s4ener:relatesToPowerProfileSequence - a owl:ObjectProperty ; - rdfs:comment "ID of the PPBC.PowerSequence that is being selected and scheduled by the CEM." ; - rdfs:domain s4ener:PPBCInstruction ; - rdfs:label "Relates to power profile sequence"@en ; - rdfs:range s4ener:PowerSequence ; -. -s4ener:relatesToPowerProfileSequenceContainer - a owl:ObjectProperty ; - rdfs:comment "ID of the PPBC.PowerSequnceContainer of which the PPBC.PowerSequence is being selected and scheduled by the CEM." ; - rdfs:domain s4ener:PPBCInstruction ; - rdfs:label "Relates to power profile sequence container"@en ; - rdfs:range s4ener:PowerSequenceContainer ; -. -s4ener:relatesToRequest - a owl:ObjectProperty ; - rdfs:comment "The relationship between the flexibility offer and flexibility request"@en ; - rdfs:domain s4ener:FlexOffer ; - rdfs:label "relates to request"@en ; - rdfs:range s4ener:FlexRequest ; -. -s4ener:repetitionsTotal - a owl:DatatypeProperty ; - rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. "@en ; - rdfs:label "repetition total"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:requiresUpdate - a owl:DatatypeProperty ; - rdfs:comment """The relationship between the incentive table element and the boolean data indicating whether the incentive table requires an update. - -In the SAREF4ENER extension this property is intended for the following classes: -- IncentiveTableBasedProfile -- IncentiveTableTier -- IncentiveTableSlot"""@en ; - rdfs:label "requiresUpdate"@en ; - rdfs:range xsd:boolean ; -. -s4ener:sequenceID - a owl:DatatypeProperty ; - rdfs:comment "Provides a unique power sequence identifier for a certain device"@en ; - rdfs:label "sequence ID"@en ; - rdfs:range xsd:unsignedInt ; - owl:deprecated true ; -. -s4ener:sequenceRemoteControllable - a owl:DatatypeProperty ; - rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state."@en ; - rdfs:label "sequence remote controllable"@en ; - rdfs:range xsd:boolean ; -. -s4ener:serialNumber - a owl:DatatypeProperty ; - rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case."@en ; - rdfs:label "serial number"@en ; - rdfs:range xsd:string ; -. -s4ener:slotActivated - a owl:DatatypeProperty ; - rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent."@en ; - rdfs:label "slot activated"@en ; - rdfs:range xsd:boolean ; -. -s4ener:slotNumber - a owl:DatatypeProperty ; - rdfs:comment "Provides a unique slot identifier for a certain power sequence"@en ; - rdfs:label "slot number"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:softwareRevision - a owl:DatatypeProperty ; - rdfs:comment "Indicates the software revision of a device as defined by the manufacturer."@en ; - rdfs:label "software revision"@en ; - rdfs:range xsd:string ; -. -s4ener:startOfRange - a owl:ObjectProperty ; - rdfs:comment "This property indicates the start of a number range." ; - rdfs:domain s4ener:NumberRange ; - rdfs:label "start of range"@en ; - rdfs:range saref:Measurement ; -. -s4ener:startsTimer - a owl:ObjectProperty ; - rdfs:comment "List of IDs of Timers that will be (re)started when this transition is initiated" ; - rdfs:domain s4ener:Transition ; - rdfs:label "Starts Timer"@en ; - rdfs:range s4ener:Timer ; -. -s4ener:supportsReselection - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once."@en ; - rdfs:label "supports reselection"@en ; - rdfs:range xsd:boolean ; -. -s4ener:supportsSingleSlotSchedulingOnly - a owl:DatatypeProperty ; - rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command."@en ; - rdfs:label "supports single slot scheduling only"@en ; - rdfs:range xsd:boolean ; -. -s4ener:taskIdentifier - a owl:DatatypeProperty ; - rdfs:comment "Represents the task identifier of the power sequence."@en ; - rdfs:label "task identifier"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:toOperationMode - a owl:ObjectProperty ; - rdfs:comment "ID of the OperationMode (exact type differs per ControlType) that will be switched to." ; - rdfs:domain s4ener:Transition ; - rdfs:label "to state operation mode"@en ; - rdfs:range s4ener:OperationMode ; -. -s4ener:totalSequencesCountMax - a owl:DatatypeProperty ; - rdfs:comment "Represents the total number of power sequences supported by the power profile of a device"@en ; - rdfs:label "total sequences count max"@en ; - rdfs:range xsd:unsignedInt ; -. -s4ener:triggersEventActionConsume - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the consume action triggered by this event"@en ; - rdfs:label "triggers event action consume"@en ; -. -s4ener:triggersEventActionProduce - a owl:ObjectProperty ; - rdfs:comment "A relationship between a load control event and the produce action triggered by this event"@en ; - rdfs:label "triggers event action produce"@en ; -. -s4ener:valueTendency - a owl:ObjectProperty ; - rdfs:comment "Indicates whether the tendency of a measurement is rising, stable or falling."@en ; - rdfs:label "value tendency"@en ; - rdfs:range s4ener:ValueTendency ; -. -s4ener:vendorCode - a owl:DatatypeProperty ; - rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer."@en ; - rdfs:label "vendor code"@en ; - rdfs:range xsd:string ; -. -s4ener:vendorName - a owl:DatatypeProperty ; - rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer."@en ; - rdfs:label "vendor name"@en ; - rdfs:range xsd:string ; -. - -dcterms:contributor - a owl:AnnotationProperty ; -. -dcterms:created - a owl:AnnotationProperty ; -. -dcterms:creator - a owl:AnnotationProperty ; -. -dcterms:description - a owl:AnnotationProperty ; -. -dcterms:license - a owl:AnnotationProperty ; -. -dcterms:modified - a owl:AnnotationProperty ; -. -dcterms:publisher - a owl:AnnotationProperty ; -. -dcterms:title - a owl:AnnotationProperty ; -. -vann:preferredNamespacePrefix - a owl:AnnotationProperty ; -. -vann:preferredNamespaceUri - a owl:AnnotationProperty ; -. -time:DurationDescription - a owl:Class ; -. -time:Interval - a owl:Class ; -. -time:TemporalEntity - a owl:Class ; -. -foaf:Agent - a owl:Class ; -. +# baseURI: https://saref.etsi.org/saref4ener/ +# imports: https://saref.etsi.org/core/v3.1.1/ +# prefix: s4ener + +@prefix dcterms: . +@prefix foaf: . +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix s4ener: . +@prefix saref: . +@prefix time: . +@prefix vann: . +@prefix xsd: . + +dcterms:contributor + a owl:AnnotationProperty ; +. +vann:preferredNamespacePrefix + a owl:AnnotationProperty ; +. +vann:preferredNamespaceUri + a owl:AnnotationProperty ; +. +time:DurationDescription + a owl:Class ; +. +time:Interval + a owl:Class ; +. +time:TemporalEntity + a owl:Class ; +. +foaf:Agent + a owl:Class ; +. +s4ener: + a owl:Ontology ; + dcterms:contributor ; + dcterms:contributor ; + dcterms:contributor ; + dcterms:contributor ; + dcterms:contributor ; + dcterms:contributor ; + dcterms:creator ; + dcterms:creator ; + dcterms:creator ; + dcterms:description """The flexibility ontology module (ic-flex) is by design tightly integrated with SAREF, +SAREF4ENER and the following InterConnect modules: power limit (ic-pwlm), +incentive table (ic-inc), S2 (ic-s2), data-point (ic-data) and forecast (ic-fc) + +The main concept of the ic-flex module is the s4ener:FlexOffer, which allows to +represent a flexibility offer (or schedule) as a combination of multiple time-series, data-points and forecasts. + +It also allows to specify a creation time (s4ener:hasCreationTime), validity +period (s4ener:hasEffectivePeriod) and provenance (s4ener:producedBy) for +the offer, on top of the creation time, validity period and provenance already specified for the time-series and data-points included in the offer. + +The additional key aspect captured in the ic-flex module is that a flex offer can also include various categories of flexibility, which are modelled as subclasses of the s4ener:FlexibilityProfile class, as follows: +- Power Profile flexibilty is modelled as s4ener:PowerProfile based on the EEBUS spec +- Tariff based flexibility (s4ener:TariffBased) is implemented using the incentive table (ic-inc) ontology based on the EEBUS spec (note that tariif-based felxibility does note exist in S2) +- Power limit flexibility (ic-pwlm:PowerLimit) is implemented using thepower limit (ic-pwlm) ontology based on the EEBUS spec (and compliant also with S2) +- Power Envelope flexibility (s4ener:PowerEnvelope) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with EEBUS) +- Demand driven flexibility (s4ener:DemandDriven) flexibility (s4ener:PowerEnvelope) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with EEBUS) +- Operation mode flexibility (s4ener:OperationMode) is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with S2) +- Fill rate based flexibility (s4ener:FillRateBased is implemented using theS2 (ic-s2) that follows the S2 specification (and compliant also with S2)"""@en ; + dcterms:license ; + dcterms:modified "2023-03-29"^^xsd:date ; + dcterms:publisher ; + dcterms:source ; + dcterms:title "SAREF for Energy Flexibility"@en ; + vann:preferredNamespacePrefix "s4ener" ; + vann:preferredNamespaceUri "https://saref.etsi.org/saref4ener/" ; + owl:imports ; + owl:versionIRI ; + owl:versionInfo "v1.2.1" ; +. +s4ener:Aborted + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + a s4ener:PowerSequenceStatus ; + rdfs:comment "Instruction was aborted." ; + rdfs:comment "The selected PPBC.PowerSequence was aborted by the device and will not continue" ; + rdfs:label "Aborted"@en ; +. +s4ener:AbsoluteCost + a owl:NamedIndividual ; + a s4ener:IncentiveType ; + rdfs:comment "The incentive type ''absolute cost'' defined in the incentive table."@en ; + rdfs:label "Absolute cost"@en ; +. +s4ener:Accepted + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction has been accepted" ; + rdfs:label "Accepted"@en ; +. +s4ener:ActivationDelayDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the activation delay duration temporal entity"@en ; + rdfs:label "Activation delay duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:ActiveDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the active duration (min and max, sum max and sum min) temporal entities"@en ; + rdfs:label "Active duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:ActiveDurationMax + a owl:Class ; + rdfs:comment "The active maximum duration a power sequence can run without interruption."@en ; + rdfs:label "Active duration max"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:ActiveDurationMin + a owl:Class ; + rdfs:comment "The active mininum duration a power sequence can run without interruption."@en ; + rdfs:label "Active duration min"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:ActiveDurationSumMax + a owl:Class ; + rdfs:comment "The active maximum duration a power sequence can run in total (summation of all active times)."@en ; + rdfs:label "Active duration sum max"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:ActiveDurationSumMin + a owl:Class ; + rdfs:comment "The active minimum duration a power sequence must run in total (summation of all active times)."@en ; + rdfs:label "Active duration sum min"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:ActuatorLevel + a owl:Class ; + rdfs:comment "Independent from the ActuatorSwitch class, the ActuatorLevel class enables a user or application to model LEVEL commands (start, up, percentageAbsolute, relative, etc.). This can be used to dim a light, set the speed of an electric motor, etc."@en ; + rdfs:label "Actuator level"@en ; + rdfs:subClassOf saref:Actuator ; +. +s4ener:ActuatorSwitch + a owl:Class ; + rdfs:comment "Basic on/off operations on a simple actuator can be modelled with the ActuatorSwitch class. Whether the function turns a device itself ON or OFF, or whether it switches a specific feature, depends on the implementation. For example, one could model the super freeze program of a freezer using ActuatorSwitch class. An ON command would then activate the super freeze program and an OFF command would deactivate it. This example shall just give an idea how ActuatorSwitch can be used for more purposes than only turning devices on and off."@en ; + rdfs:label "Actuator switch"@en ; + rdfs:subClassOf saref:Actuator ; +. +s4ener:AllowedLimitRange + a rdfs:Class ; + rdfs:comment "The actual constraints of an Power Envelope Based Profile." ; + rdfs:label "Allowed limit range"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:AlternativesGroup + a owl:Class ; + rdfs:comment "A collection of power sequences for a certain profile"@en ; + rdfs:label "Alternatives group"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:PowerProfile ; + owl:onProperty s4ener:belongsTo ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:PowerSequence ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:PowerSequence ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onClass s4ener:PowerProfile ; + owl:onProperty s4ener:belongsTo ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onDataRange xsd:unsignedInt ; + owl:onProperty s4ener:alternativesGroupID ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; +. +s4ener:AnticipationDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the anticipation duration temporal entities"@en ; + rdfs:label "Anticipation duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:Average + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "The datapoint indicates an average value aggregated over a number of values." ; + rdfs:label "Average"@en ; +. +s4ener:BaseLine + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates the baseline." ; + rdfs:label "Baseline"@en ; +. +s4ener:BatteryPowerSource + a s4ener:PowerSource ; + rdfs:comment "This Power Source codelist element indicates that a battery is the power source of this device." ; + rdfs:label "Battery power source"@en ; +. +s4ener:CO2Emission + a owl:NamedIndividual ; + a s4ener:IncentiveType ; + rdfs:comment "The incentive type ''CO2 Emission'' defined in the incentive table."@en ; + rdfs:label "CO2 Emission"@en ; +. +s4ener:Calculated + a s4ener:ValueSource ; + rdfs:comment "This value source codelist element indicates that this measurement has been calculated instead of measured or empirical." ; + rdfs:label "Calculated"@en ; +. +s4ener:Committed + a owl:NamedIndividual ; + a s4ener:ScopeType ; + rdfs:comment "The committed version of this concept, usually an incentive table or power plan"@en ; + rdfs:label "Committed"@en ; +. +s4ener:CommodityQuantity + a owl:Class ; + rdfs:comment "The various commodity quantities introduced by the S2 standard." ; + rdfs:label "Commodity Quantity"@en ; +. +s4ener:Completed + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'completed'"@en ; + rdfs:label "Completed"@en ; +. +s4ener:Consumption + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates the consumption." ; + rdfs:label "Consumption"@en ; +. +s4ener:ContractualPowerLimit + a owl:Class ; + rdfs:comment "The contractual power limit of a device"@en ; + rdfs:label "Contractual Power Limit"@en ; + rdfs:subClassOf s4ener:PowerLimit ; +. +s4ener:DCPowerSource + a s4ener:PowerSource ; + rdfs:comment "This Power Source codelist element indicates that the type of power source is DC." ; + rdfs:label "DC Power source"@en ; +. +s4ener:DDBCInstruction + a owl:Class ; + rdfs:comment "An Instruction as specified for an Demand Driven Based Control Profile." ; + rdfs:label "Demand Driven Based Control Instruction"@en ; + rdfs:subClassOf s4ener:FlexibilityInstruction ; +. +s4ener:DataPoint + a owl:Class ; + rdfs:comment """A data point is a quantity that is extended with various pieces of process information, namely + +- A creation time (instant). This is the point in time when the data point was created, which is not necessarily the time for which it is valid. In the case of soft-sensors or forecasters, a data point might have been created ahead of time, in the case of a direcet measurement a data point might created at its time of validity (or at the end of its validity time interval) and in the case of an archived value the data point might have been created after the fact. + + - A validity time (temporal entity) which will be named \"time stamp\". The validity time is the instant or interval in time in which a specific quantity is in effect. For example a room temperature might be measured at 12:00, which means it is in effect at this very instant. A specific amount of energy might me expended within the time-slot between 12:30 and 12:45, which means that the energy measurement is in effect during this time interval. + + - A location or topological association. For example, a measurement might be taken in a specific room, a power avarage might have been measured by a specific meter, a forecast might be valid for a specific region or grid segment. This association is therefore not always a location."""@en ; + rdfs:label "Data point"@en ; + rdfs:subClassOf saref:Measurement ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Usage ; + owl:onProperty s4ener:hasUsage ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasCreationTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasQuantile ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasUpdateRate ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onClass time:Interval ; + owl:onProperty s4ener:hasEffectivePeriod ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; +. +s4ener:DefaultDuration + a owl:Class ; + rdfs:comment "The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght"@en ; + rdfs:label "Default duration"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:DefaultDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the default duration temporal entity"@en ; + rdfs:label "Default duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:Defer + a owl:NamedIndividual ; + a s4ener:PowerEnvelopeConsequenceType ; + rdfs:comment "Indicating that the limited load or generation will be postponed to a later moment " ; + rdfs:label "Defer"@en ; +. +s4ener:DemandDrivenProfile + a owl:Class ; + rdfs:comment "The Flexibility Profile following the Demand Driven strategy." ; + rdfs:label "Demand driven control"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; +. +s4ener:Device + a owl:Class ; + rdfs:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM (note that a s4ee:Device can also be called 'power sequence server'). Most of the existing devices can expose at most 1 power profile, but there are special cases in which more than one power profiles can be exposed by the same device. For example, consider the case of a combined fridge-freezer in which there are 2 logical devices (fridge and freezer) combined in 1 physical device. This combined device can expose 2 power profiles, one for the fridge and one for the freezer. A s4ee:Device (e.g. a household appliance or a smart meter) can also receive events about overload warning severity level and related load control commands (LoadControlEventData)"@en ; + rdfs:label "Device"@en ; + rdfs:subClassOf saref:Device ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:LoadControlEventData ; + owl:onProperty s4ener:receives ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:brandName ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:deviceCode ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:deviceName ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hardwareRevision ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:manufacturerDescription ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:manufacturerLabel ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:manufacturerNodeIdentification ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:serialNumber ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:softwareRevision ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:vendorCode ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:vendorName ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minCardinality "0"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasPowerSource ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:LoadControlEventData ; + owl:onProperty s4ener:receives ; + ] ; +. +s4ener:Downflex + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates the down flexibility." ; + rdfs:label "Downflex"@en ; +. +s4ener:DurationUncertainty + a owl:Class ; + rdfs:comment "The uncertainty of the duration "@en ; + rdfs:label "Duration uncertainty"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:DurationUncertaintyDescription + a owl:Class ; + rdfs:comment "The duration description for the duration uncertainty temporal entity"@en ; + rdfs:label "Duration uncertainty description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:EarliestStartTime + a owl:Class ; + rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. +Note: This element applies to the first repetition of the slot number only."""@en ; + rdfs:label "Earliest start time"@en ; + rdfs:subClassOf time:TemporalEntity ; +. +s4ener:ElapsedSlotTime + a owl:Class ; + rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element CAN contain the time the slot has already been in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."@en ; + rdfs:label "Elapsed slot time"@en ; + rdfs:subClassOf time:TemporalEntity ; +. +s4ener:ElectricPower3PhaseSymmetric + a s4ener:CommodityQuantity ; + rdfs:comment "Electric power described in Watt on when power is equally shared among the three phases. Only applicable for 3 phase devices." ; + rdfs:label "Electric Power 3 Phase Symmetric"@en ; +. +s4ener:ElectricPowerL1 + a s4ener:CommodityQuantity ; + rdfs:comment "Electric power described in Watt on phase 1. If a device utilizes only one phase it should always use L1." ; + rdfs:label "Electric Power L1"@en ; +. +s4ener:ElectricPowerL2 + a s4ener:CommodityQuantity ; + rdfs:comment "Electric power described in Watt on phase 2. Only applicable for 3 phase devices." ; + rdfs:label "Electric Power L2"@en ; +. +s4ener:ElectricPowerL3 + a s4ener:CommodityQuantity ; + rdfs:comment "Electric power described in Watt on phase 3. Only applicable for 3 phase devices." ; + rdfs:label "Electric Power L3"@en ; +. +s4ener:Electricity + a saref:Electricity ; + rdfs:comment "Identifier for Commodity ELECTRICITY" ; + rdfs:label "Electricity"@en ; +. +s4ener:Emergency + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "Load control event action with value 'emergency'"@en ; + rdfs:label "Emergency"@en ; +. +s4ener:Empirical + a s4ener:ValueSource ; + rdfs:comment "This value source codelist element indicates this value is an empirical value instead of a calculated or measured value." ; + rdfs:label "Empirical"@en ; +. +s4ener:EndInterruptionInstruction + a owl:Class ; + rdfs:comment "An Instruction message indicating when an interruption can end." ; + rdfs:label "End Interruption Instruction"@en ; + rdfs:subClassOf s4ener:InterruptionInstruction ; +. +s4ener:EndTime + a owl:Class ; + rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. +The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""@en ; + rdfs:label "End time"@en ; + rdfs:subClassOf time:TemporalEntity ; +. +s4ener:EndTimeDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the end time duration temporal entities"@en ; + rdfs:label "End time duration Description"@en ; + rdfs:subClassOf time:DurationDescription ; +. +s4ener:Energy + a owl:Class ; + rdfs:comment "Energy type and value in a slot (i.e., Energy, EnergyMin, EnergyMax, EnergyExpected, EnergyStandardDeviation, EnergySkewness); or the ResumeEnergyEstimated in a power sequence, i.e., the additional energy the device will consume before resuming its normal operation (after a pause)"@en ; + rdfs:label "Energy"@en ; + rdfs:subClassOf saref:Energy ; +. +s4ener:EnergyConstraint + a owl:Class ; + rdfs:comment "The energy constraint described in the Allowed Limit Range or Power Limit." ; + rdfs:label "Energy Constraint"@en ; +. +s4ener:EnergyConsumer + a owl:NamedIndividual ; + a s4ener:RoleType ; + rdfs:comment "Identifier for RoleType Consumer" ; + rdfs:label "Energy Consumer"@en ; +. +s4ener:EnergyExpected + a owl:Class ; + rdfs:comment "A possible type of energy in a slot that represents the expected energy consumption and its value"@en ; + rdfs:label "Energy expected"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:EnergyMax + a owl:Class ; + rdfs:comment "A possible type of energy in a slot that represents the maximum energy consumption and its value"@en ; + rdfs:label "Energy max"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:EnergyMin + a owl:Class ; + rdfs:comment "A possible type of energy in a slot that represents the minimum energy consumption and its value"@en ; + rdfs:label "Energy min"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:EnergyProducer + a owl:NamedIndividual ; + a s4ener:RoleType ; + rdfs:comment "Identifier for RoleType Producer" ; + rdfs:label "Energy Producer"@en ; +. +s4ener:EnergySkewness + a owl:Class ; + rdfs:comment "A possible type of energy in a slot that represents the energy skewness and its value"@en ; + rdfs:label "Energy skewness"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:EnergyStandardDeviation + a owl:Class ; + rdfs:comment "A possible type of energy in a slot that represents the energy standard deviation and its value"@en ; + rdfs:label "Energy Standard Deviation"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:EnergyStorage + a owl:NamedIndividual ; + a s4ener:RoleType ; + rdfs:comment "Identifier for RoleType Storage" ; + rdfs:label "Energy Storage"@en ; +. +s4ener:EuroPerKilowattHour + a saref:UnitOfMeasure ; + rdfs:comment "Unit of Measure to represent euro's per kilowatt per hour" ; + rdfs:label "Euro per kilo watt hour"@en ; +. +s4ener:EventAccepted + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event accepted'"@en ; + rdfs:label "Event accepted"@en ; +. +s4ener:EventActionConsume + a owl:Class ; + rdfs:comment "An action type used to express a consume action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Event action consume"@en ; + rdfs:subClassOf s4ener:LoadControlEventAction ; + owl:oneOf ( + s4ener:Pause + s4ener:Resume + s4ener:Reduce + s4ener:Increase + s4ener:Emergency + s4ener:Normal + ) ; +. +s4ener:EventActionProduce + a owl:Class ; + rdfs:comment "An action type used to express a produce action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Event action produce"@en ; + rdfs:subClassOf s4ener:LoadControlEventAction ; + owl:oneOf ( + s4ener:Pause + s4ener:Resume + s4ener:Reduce + s4ener:Increase + s4ener:Emergency + s4ener:Normal + ) ; +. +s4ener:EventCancelled + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event cancelled'"@en ; + rdfs:label "Event cancelled"@en ; +. +s4ener:EventError + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event error'"@en ; + rdfs:label "Event error"@en ; +. +s4ener:EventRejected + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event rejected'"@en ; + rdfs:label "Event rejected"@en ; +. +s4ener:EventStarted + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event started'"@en ; + rdfs:label "Event started"@en ; +. +s4ener:EventStateConsume + a owl:Class ; + rdfs:comment "In the load control, it expresses a consume state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Event state consume"@en ; + rdfs:subClassOf s4ener:LoadControlEventState ; + owl:oneOf ( + s4ener:EventAccepted + s4ener:EventStarted + s4ener:EventStopped + s4ener:EventRejected + s4ener:EventCancelled + s4ener:EventError + ) ; +. +s4ener:EventStateProduce + a owl:Class ; + rdfs:comment "In the load control, it expresses a produce state of an event an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Event state produce"@en ; + rdfs:subClassOf s4ener:LoadControlEventState ; + owl:oneOf ( + s4ener:EventAccepted + s4ener:EventStarted + s4ener:EventStopped + s4ener:EventRejected + s4ener:EventCancelled + s4ener:EventError + ) ; +. +s4ener:EventStopped + a owl:NamedIndividual ; + a s4ener:EventStateConsume ; + a s4ener:EventStateProduce ; + rdfs:comment "Load control state with value 'event stopped'"@en ; + rdfs:label "Event stopped"@en ; +. +s4ener:Executing + a s4ener:PowerSequenceStatus ; + rdfs:comment "The selected PPBC.PowerSequence is currently being executed" ; + rdfs:label "EXECUTING"@en ; +. +s4ener:FRBCInstruction + a owl:Class ; + rdfs:comment "A Fill Rate Based Instruction message. " ; + rdfs:label "Fill Rate Based Control Instruction"@en ; + rdfs:subClassOf s4ener:FlexibilityInstruction ; +. +s4ener:FailsafePowerLimit + a owl:Class ; + rdfs:comment "In case the communication between a device and the energy manager is interrupted, fail-safe values apply and the device enters fail-safe state until the communication is re-established."@en ; + rdfs:label "Failsafe Power Limit"@en ; + rdfs:subClassOf s4ener:PowerLimit ; +. +s4ener:FailsafeState + a owl:Class ; + rdfs:comment "State that indicates that the device currently is in its Fail-safe state. This means that it has lost its connection to a central energy manager. This may result in the device following stricter power limits." ; + rdfs:label "Fail-safe state"@en ; +. +s4ener:Falling + a s4ener:ValueTendency ; + rdfs:comment "This value tendency codelist element indicates that the tendency of this measurement indicates that the value is decreasing (i.e., falling)." ; + rdfs:label "Falling"@en ; +. +s4ener:FillLevelTargetProfile + a owl:Class ; + rdfs:comment "The target profile that a fill rate based control flexibility profile tries to follow." ; + rdfs:label "Fill level target profile"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:FillLevelTargetProfileElement + a owl:Class ; + rdfs:comment "A description of the various Elements detailing the Fill Level Target Profile consists." ; + rdfs:label "Fill level target profile element"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:FillRateProfile + a owl:Class ; + rdfs:comment "A flexibility profile specified through a Fill Rate Based Profile." ; + rdfs:label "Fill rate control"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; +. +s4ener:Finished + a s4ener:PowerSequenceStatus ; + rdfs:comment "The selected PPBC.PowerSequence was executed and finished successfully" ; + rdfs:label "Finished"@en ; +. +s4ener:FlexOffer + a owl:Class ; + rdfs:comment "It allows to represent a flexibility offer (or schedule) as a combination of multiple time-series, data-points and forecasts. For example, we can create a flexibility offer that includes a time-series ex:T-power of power values, combined with a time-series ex:T-costs of associated costs."@en ; + rdfs:label "Flex offer"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + foaf:Agent + saref:Device + ) ; + ] ; + owl:onProperty s4ener:hasRecipient ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + foaf:Agent + saref:Device + ) ; + ] ; + owl:onProperty s4ener:producedBy ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + s4ener:DataPoint + s4ener:TimeSeries + s4ener:FlexibilityProfile + ) ; + ] ; + owl:onProperty s4ener:includes ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasCreationTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass time:Interval ; + owl:onProperty s4ener:hasEffectivePeriod ; + ] ; +. +s4ener:FlexRequest + a owl:Class ; + rdfs:comment "The flexibility request"@en ; + rdfs:label "Flex request"@en ; + rdfs:subClassOf owl:Thing ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; + owl:onProperty s4ener:hasCreationTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom time:Interval ; + owl:onProperty s4ener:hasEffectivePeriod ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + foaf:Agent + saref:Device + ) ; + ] ; + owl:onProperty s4ener:hasRecipient ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + foaf:Agent + saref:Device + ) ; + ] ; + owl:onProperty s4ener:producedBy ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom [ + a owl:Class ; + owl:unionOf ( + s4ener:DataPoint + s4ener:TimeSeries + s4ener:FlexibilityProfile + s4ener:IncentiveTableBasedProfile + ) ; + ] ; + owl:onProperty s4ener:includes ; + ] ; +. +s4ener:FlexibilityInstruction + a owl:Class ; + rdfs:comment "The various types of instructions Flexibility Sources can send and/or receive." ; + rdfs:label "Flexibility Instruction"@en ; +. +s4ener:FlexibilityProfile + a owl:Class ; + rdfs:comment """Different control types to describe the energy flexibility that a device has to offer. Charging of an EV for instance, may be controlled by power profile-based control or fill-rate -based control. It is not allowed to mix different control types at the same time, but different control types may be used sequentially. +Control Types dictates flexibility instructions. Control Type provides Flexibility options.""" ; + rdfs:label "Flexibility Profile"@en ; + rdfs:subClassOf saref:Profile ; +. +s4ener:Gas + a saref:Gas ; + rdfs:comment "Identifier for Commodity GAS" ; + rdfs:label "Gas"@en ; +. +s4ener:GaussianDataPoint + a owl:Class ; + rdfs:comment "A data point whose quantity is a standard deviation."@en ; + rdfs:label "Gaussian data point"@en ; + rdfs:subClassOf s4ener:DataPoint ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onProperty s4ener:hasStandardDeviation ; + owl:someValuesFrom xsd:decimal ; + ] ; +. +s4ener:Heat + a saref:Commodity ; + rdfs:comment "Identifier for Commodity Heat" ; + rdfs:label "Heat"@en ; +. +s4ener:HeatFlowRate + a s4ener:CommodityQuantity ; + rdfs:comment "Flow rate of heat carrying gas or liquid in liters per second" ; + rdfs:label "Heat Flow Rate"@en ; +. +s4ener:HeatTemperature + a s4ener:CommodityQuantity ; + rdfs:comment "Heat described in degrees Celsius" ; + rdfs:label "Heat Temperature"@en ; +. +s4ener:HeatThermalPower + a s4ener:CommodityQuantity ; + rdfs:comment "Thermal power in Watt" ; + rdfs:label "Heat Thermal Power"@en ; +. +s4ener:HydrogenFlowRate + a s4ener:CommodityQuantity ; + rdfs:comment "Gas flow rate described in grams per second" ; + rdfs:label "Hydrogen Flow Rate"@en ; +. +s4ener:Inactive + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'inactive'"@en ; + rdfs:label "Inactive"@en ; +. +s4ener:Incentive + a owl:Class ; + rdfs:comment "An Incentive indicates the intersection of a tier with a slot. In this particular combination of slot and tier there are a particular costs to draw this type of energy. For example, drawing power from the grid costs 0.30 euro per kilowatthour during the afternoon, but will only be activated from a lower boundary of 3000W." ; + rdfs:label "Incentive"@en ; + rdfs:subClassOf s4ener:DataPoint ; +. +s4ener:IncentiveTableBasedProfile + a owl:Class ; + rdfs:comment "This flexibility profile describes the usage of an incentive table to describe an incentive type in the form of costs (relative or absolute), CO2 emissions or renewable energy percentage that can be associated to power values (expressed as a time-series of power data-points)."@en ; + rdfs:label "Incentive table based profile"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty s4ener:isChangeable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty s4ener:requiresUpdate ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:ScopeType ; + owl:onProperty s4ener:hasScopeType ; + ] ; +. +s4ener:IncentiveTableSlot + a owl:Class ; + rdfs:comment "This concept describes a slot that belongs to a Incentive Table. Each slot of the Incentive Table consists of a series of (lower) boundaries, each indicating the power at which a change to another incentive takes place. Additionally, each boundary is associated with a IncentiveTableTier." ; + rdfs:label "Incentive table slot"@en ; + rdfs:subClassOf s4ener:Slot ; +. +s4ener:IncentiveTableTier + a owl:Class ; + rdfs:comment "This concept specifies a Tier that an Incentive Table consists of. Each Tier indicates through a series of Boundaries the price per kilowatthour this incentive costs. For example, a tier may describe grid power, solar panel power, or surplus power." ; + rdfs:label "Incentive table tier"@en ; + rdfs:subClassOf s4ener:TimeSeries ; +. +s4ener:IncentiveType + a owl:Class ; + rdfs:comment "In the incentive table, an incentive type is defined in the form of costs (relative or absolute), CO2 emissions or renewable energy percentage."@en ; + rdfs:label "Incentive Type"@en ; +. +s4ener:Increase + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "Load control event action with value 'increase'"@en ; + rdfs:label "Increase"@en ; +. +s4ener:InstructionStatus + a owl:Class ; + rdfs:comment "The status an instruction has at a specific moment." ; + rdfs:label "Instruction Status"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:Interrupted + a s4ener:PowerSequenceStatus ; + rdfs:comment "The selected PPBC.PowerSequence is being executed, but is currently interrupted and will continue afterwards" ; + rdfs:label "Interrupted"@en ; +. +s4ener:InterruptionInstruction + a owl:Class ; + rdfs:comment "An instruction indicating an interruption to the process." ; + rdfs:label "Interruption Instruction"@en ; + rdfs:subClassOf s4ener:PPBCInstruction ; +. +s4ener:Invalid + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'invalid'"@en ; + rdfs:label "Invalid"@en ; +. +s4ener:LatestEndTime + a owl:Class ; + rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. +Note: This element applies to the first repetition of the slot number only."""@en ; + rdfs:label "Latest end time"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:LeakageBehaviour + a owl:Class ; + rdfs:comment "A description of the Leakage Behaviour associated with this Fill Rate Flexibility Profile." ; + rdfs:label "Leakage behaviour"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:LeakageBehaviourElement + a owl:Class ; + rdfs:comment "An element detailing the leakage behaviour of a storage." ; + rdfs:label "Leakage behaviour element"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:LoadControlEventAction + a owl:Class ; + rdfs:comment "An action type used to express the action to be performed as a consequence of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Load Control event action"@en ; +. +s4ener:LoadControlEventData + a owl:Class ; + rdfs:comment "An event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Load control event data"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; + owl:onProperty saref:hasTimestamp ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Device ; + owl:onProperty s4ener:hasDevice ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventActionConsume ; + owl:onProperty s4ener:triggersEventActionConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventActionProduce ; + owl:onProperty s4ener:triggersEventActionProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:TimePeriod ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minCardinality "0"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:eventID ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventActionConsume ; + owl:onProperty s4ener:triggersEventActionConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventActionProduce ; + owl:onProperty s4ener:triggersEventActionProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:Device ; + owl:onProperty s4ener:hasDevice ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:TimePeriod ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:dateTime ; + owl:onProperty saref:hasTimestamp ; + ] ; +. +s4ener:LoadControlEventState + a owl:Class ; + rdfs:comment "In the load control, it expresses the possible states of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Load control event state "@en ; + rdfs:subClassOf s4ener:State ; +. +s4ener:LoadControlStateData + a owl:Class ; + rdfs:comment "The representation of the state of an event used to send overload warning severity level and related load control commands to a device (e.g. a household appliance or a smart meter)."@en ; + rdfs:label "Load control state data"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:dateTime ; + owl:onProperty saref:hasTimestamp ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventActionConsume ; + owl:onProperty s4ener:hasAppliedEventActionConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventActionProduce ; + owl:onProperty s4ener:hasAppliedEventActionProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventStateConsume ; + owl:onProperty s4ener:hasEventStateConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:EventStateProduce ; + owl:onProperty s4ener:hasEventStateProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventActionConsume ; + owl:onProperty s4ener:hasAppliedEventActionConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventActionProduce ; + owl:onProperty s4ener:hasAppliedEventActionProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventStateConsume ; + owl:onProperty s4ener:hasEventStateConsume ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EventStateProduce ; + owl:onProperty s4ener:hasEventStateProduce ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:unsignedInt ; + owl:onProperty s4ener:eventID ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onDataRange xsd:dateTime ; + owl:onProperty saref:hasTimestamp ; + ] ; +. +s4ener:LowerLimit + a owl:NamedIndividual ; + a s4ener:PowerEnvelopeLimitType ; + a s4ener:Usage ; + rdfs:comment "The PowerEnvelopeLimitType codelist element indicating the lower limit." ; + rdfs:comment "This data point indicates the lower limit." ; + rdfs:label "Lower Limit"@en ; + rdfs:label "Lower limit"@en ; +. +s4ener:Mains3Phase + a s4ener:PowerSource ; + rdfs:comment "This Power Source codelist element indicates that the power source of this device is Mains 3 Phase." ; + rdfs:label "Mains3Phase"@en ; +. +s4ener:MainsSinglePhase + a s4ener:PowerSource ; + rdfs:comment "This codelist element of power source indicates that the power source is the mains single phase." ; + rdfs:label "Mains single phase"@en ; +. +s4ener:MaxActivationDelay + a owl:Class ; + rdfs:comment "Maximum delay time between the end of the previous slot and the beginning of the current slot."@en ; + rdfs:label "Max activation delay"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:MaxAnticipation + a owl:Class ; + rdfs:comment "This field allows the anticipation of the phase if (and only if) the previous phase has the energy set to 0 Wh, each unit is a minute."@en ; + rdfs:label "Max anticipation"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:MaxDuration + a owl:Class ; + rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the maximum supported configuration. Note: This element applies to the first repetition of the slot number only"@en ; + rdfs:label "Max duration"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:Maximum + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "The usage of this datapoint is the Maximum value." ; + rdfs:label "Maximum"@en ; +. +s4ener:Measured + a s4ener:ValueSource ; + rdfs:comment "The value source type indicates that this data point has been measured by a device." ; + rdfs:label "Measured"@en ; +. +s4ener:MinDuration + a owl:Class ; + rdfs:comment "If a slot has a configurable duration, it SHALL be present and denote the minimum supported configuration. Note: This element applies to the first repetition of the slot number only."@en ; + rdfs:label "Min duration"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:Minimum + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "The usage of this datapoint is the Minimum value." ; + rdfs:label "Minimum"@en ; +. +s4ener:NaturalGasFlowRate + a s4ener:CommodityQuantity ; + rdfs:comment "Gas flow rate described in liters per second" ; + rdfs:label "Natural Gas Flow Rate"@en ; +. +s4ener:New + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction was newly created" ; + rdfs:label "New"@en ; +. +s4ener:NominalPowerLimit + a owl:Class ; + rdfs:comment "A device may have nominal power consumption and/or production values that are defined by the manufacturer and must not be exceeded, so that the power limit must stay within these constraints."@en ; + rdfs:label "Nominal Power Limit"@en ; + rdfs:subClassOf s4ener:PowerLimit ; +. +s4ener:Normal + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "The value NORMAL used to instantiate the Load Control Event Action class and MeasurandState class"@en ; + rdfs:label "Normal"@en ; +. +s4ener:NotScheduled + a s4ener:PowerSequenceStatus ; + rdfs:comment "No PPBC.PowerSequence within the PPBC.PowerSequenceContainer is scheduled" ; + rdfs:label "NotScheduled"@en ; +. +s4ener:NumberRange + a owl:Class ; + rdfs:comment "This class describes a range via a datatype property indicating the start of the range and another datatype property indicating the end of the range." ; + rdfs:label "Number range"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:OMBCInstruction + a owl:Class ; + rdfs:comment "An instruction following the Operation Mode Based Profile." ; + rdfs:label "Operation Mode Based Control Instruction"@en ; + rdfs:subClassOf s4ener:FlexibilityInstruction ; +. +s4ener:Oil + a saref:Commodity ; + rdfs:comment "Identifier for Commodity OIL" ; + rdfs:label "Oil"@en ; +. +s4ener:OilFlowRate + a s4ener:CommodityQuantity ; + rdfs:comment "Oil flow rate described in liters per hour" ; + rdfs:label "Oil Flow Rate"@en ; +. +s4ener:OperationMode + a owl:Class ; + rdfs:comment "A resource manager can declare multiple operation modes for a device. An operation mode is a mode/state that a device can find itself in, that is associated with a specific power value." ; + rdfs:label "Operation Mode"@en ; + rdfs:subClassOf saref:State ; +. +s4ener:OperationModeElement + a owl:Class ; + rdfs:comment "Operation Mode Elements of a Fill Rate Based Control" ; + rdfs:label "Operation Mode Element"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:OperationModeProfile + a owl:Class ; + rdfs:comment "A resource manager can declare multiple operation modes for a device. An operation mode is a mode/state that a device can find itself in, that is associated with a specific power value." ; + rdfs:label "Operation mode control"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; +. +s4ener:PEBCInstruction + a owl:Class ; + rdfs:comment "An instruction for the Power Envelope Based Profile." ; + rdfs:label "Power Envelop Based Control Instruction"@en ; + rdfs:subClassOf s4ener:FlexibilityInstruction ; +. +s4ener:PPBCInstruction + a owl:Class ; + rdfs:comment "An instruction for a Power Profile Based Flexibility Profile." ; + rdfs:label "Power Profile Based Control Instruction"@en ; + rdfs:subClassOf s4ener:FlexibilityInstruction ; +. +s4ener:Pause + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "Load control event action with value 'pause'"@en ; + rdfs:label "Pause"@en ; +. +s4ener:PauseDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the pause duration (max and min) temporal entities"@en ; + rdfs:label "Pause duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:PauseDurationMax + a owl:Class ; + rdfs:comment "The maximum duration a power sequence can pause after the end of an activity."@en ; + rdfs:label "Pause duration max"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:PauseDurationMin + a owl:Class ; + rdfs:comment "The minimum duration a power sequence can pause after the end of an activity."@en ; + rdfs:label "Pause duration min"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:PauseTime + a owl:Class ; + rdfs:comment "The pause time of a power sequence or a slot"@en ; + rdfs:label "Pause time"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:Paused + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state or sensor state with value 'paused'"@en ; + rdfs:label "Paused"@en ; +. +s4ener:Pending + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'pending'"@en ; + rdfs:label "Pending"@en ; +. +s4ener:Power + a owl:Class ; + rdfs:comment "Power type and value in a slot (i.e. power, powerMin, powerMax, powerExpectedValue, powerStandardDeviation, powerSkewness)"@en ; + rdfs:label "Power"@en ; + rdfs:subClassOf saref:Power ; +. +s4ener:PowerConstraint + a owl:Class ; + rdfs:comment "The actual power constraint contained in the Allowed Limit Range or Power limit." ; + rdfs:label "Power constraint"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerEnvelope + a owl:Class ; + rdfs:comment "A specific Power Envelope to be followed by an energy manager" ; + rdfs:label "Power Envelope"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerEnvelopeConsequenceType + a owl:Class ; + rdfs:comment "The type of consequence of limiting power, which can be Defer or Vanish." ; + rdfs:label "Power Envelope Consequence Type"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerEnvelopeLimitType + a owl:Class ; + rdfs:comment "An enumeration containing the codelist for Power Envelope Limit Types, which may be Lower limit or Upper limit." ; + rdfs:label "Power Envelope Limit Type"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerEnvelopeProfile + a owl:Class ; + rdfs:comment "A Flexibility Profile described through a Power Envelope Profile." ; + rdfs:label "Power envelope control"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; +. +s4ener:PowerExpected + a owl:Class ; + rdfs:comment "A possible type of power in a slot that represents the expected power consumption and its value"@en ; + rdfs:label "Power expected "@en ; + rdfs:subClassOf s4ener:Power ; +. +s4ener:PowerLimit + a owl:Class ; + rdfs:comment "A power limit is defined as the maximum value for power consumption and/or production that must not be exceeded by e.g. a (group of) device(s), a building, or also a district."@en ; + rdfs:label "Power Limit"@en ; + rdfs:subClassOf s4ener:AllowedLimitRange ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty s4ener:isChangeable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty s4ener:isObligatory ; + ] ; +. +s4ener:PowerLimitProfile + a owl:Class ; + rdfs:comment "This profile describes the energy flexibility of a device via a set of power limits, following the SPINE documentation" ; + rdfs:label "Power limit profile"@en ; + rdfs:subClassOf s4ener:FlexibilityProfile ; +. +s4ener:PowerMax + a owl:Class ; + rdfs:comment "A possible type of power in a slot that represents the maximum power consumption and its value"@en ; + rdfs:label "Power max"@en ; + rdfs:subClassOf s4ener:Power ; +. +s4ener:PowerMin + a owl:Class ; + rdfs:comment "A possible type of power in a slot that represents the minimum power consumption and its value"@en ; + rdfs:label "Power min"@en ; + rdfs:subClassOf s4ener:Power ; +. +s4ener:PowerPlan + a owl:Class ; + rdfs:comment "The Power Plan that an energy manager creates for a device. It contains three timeseries indicating the minimum, average, and maximum respectively." ; + rdfs:label "Power plan"@en ; + rdfs:subClassOf s4ener:TimeSeries ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "3"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:TimeSeries ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "3"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:TimeSeries ; + owl:onProperty saref:consistsOf ; + ] ; +. +s4ener:PowerProfile + a owl:Class ; + rdfs:comment "A way to model curves of power and energy over time, which also provides definitions for the modelling of power scheduling including alternative plans. With a PowerProfile, a device (or power sequences server) exposes the power sequences that are potentially relevant for the CEM (or power sequences client). "@en ; + rdfs:comment "PPBC.PowerProfileDefinition" ; + rdfs:label "Power profile control"@en ; + rdfs:subClassOf saref:Profile ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:AlternativesGroup ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Device ; + owl:onProperty s4ener:belongsTo ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:alternativesCount ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:nodeRemoteControllable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:supportsReselection ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:supportsSingleSlotSchedulingOnly ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:totalSequencesCountMax ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:AlternativesGroup ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onClass s4ener:Device ; + owl:onProperty s4ener:belongsTo ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; +. +s4ener:PowerRange + a owl:Class ; + rdfs:comment "A class describing a power range, containing a start of range, an end of range, and a saref:Property indicating the type of power involved." ; + rdfs:label "Power range"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerSequence + a owl:Class ; + rdfs:comment "A Power Sequence following S2 is a container containing one or more PowerSequenceElements among which the EMS can choose the Element with the best fit to the current energy demands." ; + rdfs:comment "The specification of a task, such as wash or tumble dry, according to user preferences and/or manufacturer's settings for a certain device. It is the most 'coarse' view, a power sequence can represent all single steps of a whole task,where the single steps are represented by slots. If the power sequence is pausable by the bound power sequences client, the property 'saref:isInterruptionPossible' SHALL be present and set to true. Otherwise it SHALL be omitted. If the power sequence is stoppable by the bound power sequences client, the property 'saref:isFlexible' SHALL be present and set to true. Otherwise it SHALL be omitted."@en ; + rdfs:label "Power sequence"@en ; + rdfs:subClassOf owl:Thing ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:AlternativesGroup ; + owl:onProperty s4ener:belongsTo ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:PowerSequenceState ; + owl:onProperty saref:hasState ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:ResumeCostEstimated ; + owl:onProperty saref:hasPrice ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:ResumeEnergyEstimated ; + owl:onProperty s4ener:hasEnergy ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Slot ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:sequenceID ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:sequenceRemoteControllable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty saref:hasDescription ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:activeRepetitionNumber ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:activeSlotNumber ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:cheapest ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:greenest ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:isPausable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:isStoppable ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:maxCyclesPerDay ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:repetitionsTotal ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ActiveDurationMax ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ActiveDurationMin ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ActiveDurationSumMax ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ActiveDurationSumMin ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EarliestStartTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ElapsedSlotTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EndTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:LatestEndTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:PauseDurationMax ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:PauseDurationMin ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:RemainingSlotTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ResumeCostEstimated ; + owl:onProperty saref:hasPrice ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:ResumeEnergyEstimated ; + owl:onProperty s4ener:hasEnergy ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minCardinality "0"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasValueSource ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minCardinality "0"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:taskIdentifier ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:PowerSequenceState ; + owl:onProperty saref:hasState ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:Slot ; + owl:onProperty saref:consistsOf ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:StartTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onClass s4ener:AlternativesGroup ; + owl:onProperty s4ener:belongsTo ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; +. +s4ener:PowerSequenceContainer + a owl:Class ; + rdfs:comment "A container containing the various Power Sequences among which the EMS may choose for the appropriate Power Sequence at a given time." ; + rdfs:label "Power profile container"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerSequenceElement + a owl:Class ; + rdfs:comment "An element of a power sequence, roughly equivalent to slots in the existing S4ener." ; + rdfs:label "Power sequence element"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerSequenceState + a owl:Class ; + rdfs:comment "The current state of the power sequence. It can assume one of the values 'running', 'paused', 'scheduled', 'scheduled paused', 'pending', 'inactive', 'completed', or 'invalid'."@en ; + rdfs:label "Power sequence state"@en ; + rdfs:subClassOf s4ener:State ; +. +s4ener:PowerSequenceStatus + a owl:Class ; + rdfs:comment "A codelist for the various Power Sequence statuses." ; + rdfs:label "Power sequence status"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerSkewness + a owl:Class ; + rdfs:comment "A possible type of power in a slot that represents the power skewness and its value"@en ; + rdfs:label "Power skewness"@en ; + rdfs:subClassOf s4ener:Power ; +. +s4ener:PowerSource + a owl:Class ; + rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery"@en ; + rdfs:label "Power source"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:PowerStandardDeviation + a owl:Class ; + rdfs:comment "A possible type of power in a slot that represents the power standard deviation and its value"@en ; + rdfs:label "Power standard deviation"@en ; + rdfs:subClassOf s4ener:Power ; +. +s4ener:Preliminary + a owl:NamedIndividual ; + a s4ener:ScopeType ; + rdfs:comment "The preliminary version of this concept, usually an incentive table or power plan"@en ; + rdfs:label "Preliminary"@en ; +. +s4ener:Production + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates the energy production." ; + rdfs:label "Production"@en ; +. +s4ener:Reduce + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "Load control event action with value 'reduce'"@en ; + rdfs:label "Reduce"@en ; +. +s4ener:Rejected + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction was rejected" ; + rdfs:label "Rejected"@en ; +. +s4ener:RelativeCost + a owl:NamedIndividual ; + a s4ener:IncentiveType ; + rdfs:comment "The incentive type ''relative cost'' defined in the incentive table."@en ; + rdfs:label "Relative cost"@en ; +. +s4ener:RemainingPauseTime + a owl:Class ; + rdfs:comment "The duration that the current slot (s4ee:activeSlotNumber) permits being paused. This element SHALL ONLY be present if the power sequence is interruptible. Otherwise, it SHALL be omitted. In case the power sequence is interruptible the following rules apply: If the element is absent this means there is no explicit pause duration restriction for the current slot; a value of 0s denoted the slot does not permit being paused."@en ; + rdfs:label "Remaining pause time"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:RemainingSlotTime + a owl:Class ; + rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this element SHALL contain the time the slot still needs to be in 'running' state (this also means the value remains constant during a 'paused' state). Otherwise it SHALL be omitted."@en ; + rdfs:label "Remaining slot time"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:RenewableEnergyPercentage + a owl:NamedIndividual ; + a s4ener:IncentiveType ; + rdfs:comment "The incentive type ''renewable energy percentage'' defined in the incentive table."@en ; + rdfs:label "Renewable energy percentage"@en ; +. +s4ener:Resume + a owl:NamedIndividual ; + a s4ener:EventActionConsume ; + a s4ener:EventActionProduce ; + rdfs:comment "Load control event action with value 'resume'"@en ; + rdfs:label "Resume"@en ; +. +s4ener:ResumeCostEstimated + a owl:Class ; + rdfs:comment "In a power sequence the additional costs for the resumption of a device to its normal operation (after a pause)."@en ; + rdfs:label "Resume cost estimated"@en ; + rdfs:subClassOf saref:Price ; +. +s4ener:ResumeEnergyEstimated + a owl:Class ; + rdfs:comment "In a power sequence, the additional energy the device will consume before resuming its normal operation (after a pause). This is only an estimated value which will not be added to the value stated in any slot value information."@en ; + rdfs:label "Resume energy estimated"@en ; + rdfs:subClassOf s4ener:Energy ; +. +s4ener:Revoked + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction was revoked" ; + rdfs:label "Revoked"@en ; +. +s4ener:Rising + a s4ener:ValueTendency ; + rdfs:comment "This value tendency codelist element indicates that the tendency of this measurement indicates that the value is increasing (i.e., rising)." ; + rdfs:label "Rising"@en ; +. +s4ener:Role + a owl:Class ; + rdfs:comment "A codelist containing the various roles a device can take: producer, consumer, and storage." ; + rdfs:label "Role"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:RoleType + a owl:Class ; + rdfs:comment "An enumeration containing the various roles a device can take up: consumer, producer, or storage." ; + rdfs:label "Role Type"@en ; +. +s4ener:Running + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'running'"@en ; + rdfs:label "Running"@en ; +. +s4ener:ScheduleInstruction + a owl:Class ; + rdfs:comment "Schedule instruction for a power profile flexibility profile." ; + rdfs:label "Schedule Instruction"@en ; + rdfs:subClassOf s4ener:PPBCInstruction ; +. +s4ener:Scheduled + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'scheduled'"@en ; + rdfs:label "Scheduled"@en ; +. +s4ener:ScheduledPaused + a owl:NamedIndividual ; + a s4ener:PowerSequenceState ; + rdfs:comment "Power sequence state with value 'scheduled paused'"@en ; + rdfs:label "Scheduled paused"@en ; +. +s4ener:ScopeType + a owl:Class ; + rdfs:comment "An incentive table may additionally define a scope type to indicate whether it is a preliminary or committed version."@en ; + rdfs:label "Scope Type"@en ; +. +s4ener:SetPoint + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates a setpoint." ; + rdfs:label "Setpoint"@en ; +. +s4ener:Slot + a owl:Class ; + rdfs:comment "The single steps of a power sequence are represented by slots. A slot is associated with a slot number (while a power sequence is associated with a power sequence identifier). The slot numbers of two power sequences should be considered independent from each other, i.e., slot number 7 of sequence 1 describes a different slot than slot number 7 of sequence 2. Therefore a slot is only uniquely identified in combination with a sequence ID. "@en ; + rdfs:label "Slot"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom saref:Time ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Energy ; + owl:onProperty s4ener:hasEnergyValueType ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Power ; + owl:onProperty s4ener:hasPowerValueType ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:PowerSequence ; + owl:onProperty s4ener:belongsTo ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:cardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:slotNumber ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty saref:hasDescription ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:optionalSlot ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:slotActivated ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:DefaultDuration ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:DurationUncertainty ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EarliestStartTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:EndTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:LatestEndTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:MaxDuration ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:MinDuration ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:RemainingPauseTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:StartTime ; + owl:onProperty saref:hasTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass [ + a owl:Class ; + owl:unionOf ( + s4ener:Energy + s4ener:Power + ) ; + ] ; + owl:onProperty s4ener:hasValueType ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:onClass s4ener:PowerSequence ; + owl:onProperty s4ener:belongsTo ; + owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ; + ] ; +. +s4ener:SlotTimeDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the slot time duration temporal entities"@en ; + rdfs:label "Slot time duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:Stable + a s4ener:ValueTendency ; + rdfs:comment "This value tendency codelist element indicates that the tendency this measurement has is to stay stable, instead of rising or falling." ; + rdfs:label "Stable"@en ; +. +s4ener:StartInterruptionInstruction + a owl:Class ; + rdfs:comment "An instruction or message indicating the start of an interruption." ; + rdfs:label "Start Interruption Instruction"@en ; + rdfs:subClassOf s4ener:InterruptionInstruction ; +. +s4ener:StartTime + a owl:Class ; + rdfs:comment "The startTime of a power sequence or slot. SHALL be present"@en ; + rdfs:label "Start time"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:StartTimeDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the start time duration temporal entities"@en ; + rdfs:label "Start time duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:Started + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction was executed" ; + rdfs:label "Started"@en ; +. +s4ener:State + a owl:Class ; + rdfs:comment "An entity that represents the possible states in SAREF4EE"@en ; + rdfs:label "State"@en ; + rdfs:subClassOf saref:State ; +. +s4ener:Storage + a owl:Class ; + rdfs:comment "storage device which is the main component of Fill Rate Based Control type.). In the context of flexibility control and instructuons, a device shall be able to inform the CEM about its fill level, a measure of how full the storage is, and the lower and upper boundaries that the fill level should remain within. " ; + rdfs:label "Storage"@en ; + rdfs:subClassOf owl:Thing ; + rdfs:subClassOf s4ener:Device ; +. +s4ener:Succeeded + a owl:NamedIndividual ; + a s4ener:InstructionStatus ; + rdfs:comment "Instruction finished successfully" ; + rdfs:label "Succeeded"@en ; +. +s4ener:TimePeriod + a owl:Class ; + rdfs:comment "The time period associated with load control event data"@en ; + rdfs:label "Time period"@en ; + rdfs:subClassOf time:TemporalEntity ; + owl:deprecated true ; +. +s4ener:TimePeriodDurationDescription + a owl:Class ; + rdfs:comment "The duration description for the time period duration temporal entities"@en ; + rdfs:label "Time period duration description"@en ; + rdfs:subClassOf time:DurationDescription ; + owl:deprecated true ; +. +s4ener:TimeSeries + a owl:Class ; + rdfs:comment "An ordered sequence of data points of a quantity observed at spaced time intervals is referred to as a time series. Time series can be a result of prediction algorithm."@en ; + rdfs:label "Time Series"@en ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom time:Interval ; + owl:onProperty s4ener:hasEffectivePeriod ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:allValuesFrom s4ener:Usage ; + owl:onProperty s4ener:hasUsage ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasCreationTime ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasTemporalResolution ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasUpdateRate ; + ] ; + rdfs:subClassOf [ + a owl:Restriction ; + owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; + owl:onClass s4ener:DataPoint ; + owl:onProperty s4ener:hasDataPoint ; + ] ; +. +s4ener:Timer + a owl:Class ; + rdfs:comment "A timer for time-based operation mode and transition constraints." ; + rdfs:label "Timer"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:Transition + a owl:Class ; + rdfs:comment "Possible transitions to switch from one Operation Mode to another or to set new parameters." ; + rdfs:label "Transition"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:Upflex + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "This datapoint indicates the upper flexibility." ; + rdfs:label "Upflex"@en ; +. +s4ener:UpperLimit + a owl:NamedIndividual ; + a s4ener:PowerEnvelopeLimitType ; + a s4ener:Usage ; + rdfs:comment "The PowerEnvelopeLimitType enumeration for the upper limit." ; + rdfs:comment "This datapoint indicates the upperlimit." ; + rdfs:label "Upper Limit"@en ; + rdfs:label "Upper limit"@en ; +. +s4ener:Usage + a owl:Class ; + rdfs:comment "The usage of a datapoint, time series or message."@en ; + rdfs:label "Usage"@en ; +. +s4ener:ValueSource + a owl:Class ; + rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast." ; + rdfs:label "Value source"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:ValueTendency + a owl:Class ; + rdfs:comment "This type indicates a codelist for the s4ener:valueTendency property about whether the tendency of a measurement is rising, stable or falling." ; + rdfs:label "Value tendency"@en ; + rdfs:subClassOf owl:Thing ; +. +s4ener:Vanish + a owl:NamedIndividual ; + a s4ener:PowerEnvelopeConsequenceType ; + rdfs:comment "The load or generation that is limited will vanish. This is for example the case with curtailing production from solar panels; the potentially generated energy is lost and will never reappear." ; + rdfs:label "Vanish"@en ; +. +s4ener:abnormalCondition + a owl:DatatypeProperty ; + rdfs:comment "Indicates if this is an instruction during an abnormal condition" ; + rdfs:domain s4ener:FlexibilityInstruction ; + rdfs:label "abnormal condition"@en ; + rdfs:range xsd:boolean ; +. +s4ener:abnormalConditionOnly + a owl:DatatypeProperty ; + rdfs:comment """Indicates if this element can only be used during an abnormal condition. + +In SAREF4ENER this property is intended to be used on the following properties: +- s4ener:OperationMode +- s4ener:Transition +- s4ener:AllowedLimitRange +- s4ener:PowerSequence""" ; + rdfs:label "Abnormal Condition Only"@en ; + rdfs:range xsd:boolean ; +. +s4ener:activateSlot + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether a slot is used (activateSlot = true) or not (activateSlot = false). SHALL be present if a slot is optional (i.e., the property s4ee:optionalSlot is TRUE), otherwise SHALL be absent (i.e. in case the slot is mandatory)."@en ; + rdfs:label "activate slot"@en ; + rdfs:range xsd:boolean ; +. +s4ener:activeRepetitionNumber + a owl:DatatypeProperty ; + rdfs:comment "Indicates the current repetition of the sequence of slots. SHALL be present if a power sequence can repeat its sequence of slots (i.e., if s4ee:repetitionTotal is present and has a value > 1). Otherwise, it SHALL be absent. "@en ; + rdfs:label "active repetition number"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:activeSlotNumber + a owl:DatatypeProperty ; + rdfs:comment "Indicates the currently active slot number, if the power sequence state is set to 'running' or 'paused'. Otherwise it SHALL be omitted."@en ; + rdfs:label "active slot number"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:allowedLimitRange + a owl:ObjectProperty ; + rdfs:comment "This property indicates the various AllowedLimitRanges or PowerLimits that this PowerConstraint object consists of." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:PowerConstraint + s4ener:EnergyConstraint + ) ; + ] ; + rdfs:label "allowed limit range"@en ; + rdfs:range s4ener:AllowedLimitRange ; +. +s4ener:alternativesCount + a owl:DatatypeProperty ; + rdfs:comment "Indicates the number of alternatives groups provided by a power profile"@en ; + rdfs:label "alternatives count"@en ; + rdfs:range xsd:integer ; + owl:deprecated true ; +. +s4ener:alternativesGroupID + a owl:DatatypeProperty ; + rdfs:comment "The endpoint-wide unique identifier for the alternatives group instances provided by a power profile"@en ; + rdfs:label "alternatives group ID"@en ; + rdfs:range xsd:integer ; + owl:deprecated true ; +. +s4ener:belongsTo + a owl:ObjectProperty ; + rdfs:comment "A relationship identifying the ownership of an entity. In particular, a slot belongs to a power sequence, a power sequence belongs to an alternative, an alternative belongs to a power profile, a power profile belongs to a device. "@en ; + rdfs:label "belongs to"@en ; +. +s4ener:belongsToTimeSeries + a owl:ObjectProperty ; + rdfs:comment "The relationship that connects a data point to a time series."@en ; + rdfs:domain s4ener:DataPoint ; + rdfs:label "belongs to time series"@en ; + rdfs:range s4ener:TimeSeries ; + owl:inverseOf s4ener:hasDataPoint ; +. +s4ener:brandName + a owl:DatatypeProperty ; + rdfs:comment "Provides the name of the brand of a device. Useful where the name of the brand and the vendor differs."@en ; + rdfs:label "brand name"@en ; + rdfs:range xsd:string ; +. +s4ener:cheapest + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether a power sequence applies a configuration that minimises the user's energy bill (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "@en ; + rdfs:label "cheapest"@en ; + rdfs:range xsd:boolean ; +. +s4ener:deviceCode + a owl:DatatypeProperty ; + rdfs:comment "Provides a device code for the device as defined by the manufacturer."@en ; + rdfs:label "device code"@en ; + rdfs:range xsd:string ; +. +s4ener:deviceName + a owl:DatatypeProperty ; + rdfs:comment "Provides the name of the device as defined by the manufacturer."@en ; + rdfs:label "device name"@en ; + rdfs:range xsd:string ; +. +s4ener:endOfRange + a owl:ObjectProperty ; + rdfs:comment "This property indicates the end of a number range." ; + rdfs:domain s4ener:NumberRange ; + rdfs:label "end of range"@en ; + rdfs:range saref:Measurement ; +. +s4ener:eventID + a owl:DatatypeProperty ; + rdfs:comment "Used in the Demand Response use case to identify an event"@en ; + rdfs:label "event ID"@en ; + rdfs:range xsd:unsignedInt ; + owl:deprecated true ; +. +s4ener:fillRate + a owl:ObjectProperty ; + rdfs:comment "Indicates the change in fill_level per second. The lower_boundary of the NumberRange is associated with an operation_mode_factor of 0, the upper_boundary is associated with an operation_mode_factor of 1." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:Storage + s4ener:OperationModeElement + ) ; + ] ; + rdfs:label "Fill Rate Level"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:firmwareVersion + a owl:DatatypeProperty ; + rdfs:comment "Version identifier of the firmware used in the device (provided by the manufacturer)" ; + rdfs:domain s4ener:Device ; + rdfs:label "has firmware version"@en ; + rdfs:range xsd:string ; +. +s4ener:fromOperationMode + a owl:ObjectProperty ; + rdfs:comment "ID of the OperationMode (exact type differs per ControlType) that should be switched from." ; + rdfs:domain s4ener:Transition ; + rdfs:label "from operation mode"@en ; + rdfs:range s4ener:OperationMode ; +. +s4ener:greenest + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether a power sequence optimises the configuration towards the maximum availability of renewable energy (if set to TRUE). MAY be present. Absence of this element is equal to the presence with value FALSE. "@en ; + rdfs:label "greenest"@en ; + rdfs:range xsd:boolean ; +. +s4ener:hardwareRevision + a owl:DatatypeProperty ; + rdfs:comment "Indicates the hardware revision of the device as defined by the manufacturer."@en ; + rdfs:label "hardware revision "@en ; + rdfs:range xsd:string ; +. +s4ener:hasActivationDelay + a owl:DatatypeProperty ; + rdfs:comment """The scheduled activation delay for a slot. + +This property is suggested to be added in SAREF4Ener_v2 to replace the subclasses of time:TemporalEntity and/or time:DurationDescription""" ; + rdfs:label "delay"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActivationDelayMax + a owl:DatatypeProperty ; + rdfs:comment """Maximum delay time between the end of the previous slot and the beginning of the current slot. + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "activation delay max"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActivationPlan + a owl:ObjectProperty ; + rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and s4ener:TimeSeries."@en ; + rdfs:domain s4ener:FlexibilityInstruction ; + rdfs:label "has activation plan"@en ; + rdfs:range s4ener:TimeSeries ; +. +s4ener:hasActiveDurationMax + a owl:DatatypeProperty ; + rdfs:comment """The active maximum duration a power sequence can run without interruption. + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "active duration max"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActiveDurationMin + a owl:DatatypeProperty ; + rdfs:comment """The active mininum duration a power sequence can run without interruption. + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "active duration min"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActiveDurationSumMax + a owl:DatatypeProperty ; + rdfs:comment """The active maximum duration a power sequence can run in total (summation of all active times). + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "active duration sum max"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActiveDurationSumMin + a owl:DatatypeProperty ; + rdfs:comment """The active minimum duration a power sequence must run in total (summation of all active times). + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "active duration sum min"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasActiveOperationMode + a owl:ObjectProperty ; + rdfs:comment "A reference to the OperationMode that is presently active" ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:OperationMode + saref:Actuator + ) ; + ] ; + rdfs:label "has active operation mode"@en ; + rdfs:range s4ener:OperationMode ; +. +s4ener:hasAppliedEventActionConsume + a owl:ObjectProperty ; + rdfs:comment "A relationship between the state of a load control event consume and the action to be performed as a consequence of this event."@en ; + rdfs:label "has applied event action consume"@en ; +. +s4ener:hasAppliedEventActionProduce + a owl:ObjectProperty ; + rdfs:comment "A relationship between the state of a load control event produce and the action to be performed as a consequence of this event."@en ; + rdfs:label "has applied event action produce"@en ; +. +s4ener:hasCommodity + a owl:ObjectProperty ; + rdfs:comment "An indication of which commodity this Role is a consumer, producer, or storer of." ; + rdfs:domain s4ener:Role ; + rdfs:label "Uses commodity"@en ; + rdfs:range saref:Commodity ; +. +s4ener:hasConnection + a owl:ObjectProperty ; + rdfs:comment "In the Remote Network Management (RemoteNWM) use case, a relationship between a node in a network (i.e., a s4ee:Device) and its connections (i.e., a s4ee:DeviceConnections). The same s4ee:Device (or node) can have multiple device connections as it can be connected to several networks at the same time."@en ; + rdfs:label "has connection"@en ; + owl:deprecated true ; +. +s4ener:hasConsequenceType + a owl:ObjectProperty ; + rdfs:comment "The consequence type associated with this Power Constraint, which can be Defer or Vanish." ; + rdfs:domain s4ener:PowerConstraint ; + rdfs:label "Has Consequence Type"@en ; + rdfs:range s4ener:PowerEnvelopeConsequenceType ; +. +s4ener:hasConstraints + a owl:ObjectProperty ; + rdfs:comment "This property relates a Power Envelop Instruction or Profile to the constraints it needs to follow. There are two types of constraints modelled: Power constraints and energy constraints." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:PEBCInstruction + s4ener:PowerEnvelopeProfile + ) ; + ] ; + rdfs:label "has constraints"@en ; + rdfs:range [ + a owl:Class ; + owl:unionOf ( + s4ener:PowerConstraint + s4ener:EnergyConstraint + ) ; + ] ; +. +s4ener:hasContractualConsumptionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the contractual power limit and the value indicating the max limit consumption."@en ; + rdfs:domain s4ener:ContractualPowerLimit ; + rdfs:label "has contractual consumption Max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; +. +s4ener:hasContractualProductionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the contractual power limit and the value indicating the max limit production."@en ; + rdfs:domain s4ener:ContractualPowerLimit ; + rdfs:label "has contractual production Max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; +. +s4ener:hasCost + a owl:ObjectProperty ; + rdfs:comment " Additional costs per second (e.g. wear, services) associated with this operation mode in the currency defined by the ResourceManagerDetails , excluding the commodity cost. The range is expressing uncertainty and is not linked to the operation_mode_factor." ; + rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and s4ener:DataPoint"@en ; + rdfs:domain s4ener:FlexibilityInstruction ; + rdfs:domain s4ener:OperationMode ; + rdfs:label "has cost"@en ; + rdfs:label "hasCost"@en ; + rdfs:range s4ener:DataPoint ; +. +s4ener:hasCreationTime + a owl:DatatypeProperty ; + rdfs:comment """The time instant that defines the creation time of a data point or quantity or forecast or similar entities. This is not the same as the time at which the quantity is in effect. For example, if a temperature is forecasted today at 12:30 (creation time of the forecast) for the following day at 14:45 (time when the temperature is expected to be in effect), the this instant should be 12:30 of today. + +A creation time (instant). This is the point in time when the data point was created, which is not necessarily the time for which it is valid. In the case of soft-sensors or forecasters, a data point might have been created ahead of time, in the case of a direcet measurement a data point might created at its time of validity (or at the end of its validity time interval) and in the case of an archived value the data point might have been created after the fact."""@en ; + rdfs:label "has creation time"@en ; + rdfs:range xsd:dateTimeStamp ; +. +s4ener:hasDataPoint + a owl:ObjectProperty ; + rdfs:comment "This relationship connects a time series to data point."@en ; + rdfs:domain s4ener:TimeSeries ; + rdfs:label "has data point"@en ; + rdfs:range s4ener:DataPoint ; +. +s4ener:hasDemandRate + a owl:ObjectProperty ; + rdfs:comment "The present demand rate that needs to be satisfied by the system" ; + rdfs:domain s4ener:DemandDrivenProfile ; + rdfs:label "has demand rate"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:hasDemandRateForecast + a owl:ObjectProperty ; + rdfs:comment "This property relates a Demand Driven Profile to a TimeSeries object that indicates a forecast of the average demand rate." ; + rdfs:domain s4ener:DemandDrivenProfile ; + rdfs:label "has average demand rate forecast"@en ; + rdfs:range s4ener:TimeSeries ; +. +s4ener:hasDevice + a owl:ObjectProperty ; + rdfs:comment "A relationship between a load control event (used to send overload warning severity level and related load control commands) and the device interested by this event."@en ; + rdfs:label "has device"@en ; +. +s4ener:hasDuration + a owl:DatatypeProperty ; + rdfs:comment """This property is added to the time:DurationDescription class to allow to express time duration also as xsd:duration. This is necessary because in the EEBus/E@h model time is always expressed as xsd:duration. We use this property to express the following time information in the EEBus/E@h model: + +- the startTime of the power sequence (in the PowerSequence class). SHALL be present +- the endTime of the power sequence (in the PowerSequence class). If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. +- the startTime of measurement as absolute or relative value (in the Measurement class). +- the endTime of measurement as absolute or relative value (in the Measurement class). + +The duration is expected to be described as in xsd:duration"""@en ; + rdfs:comment """This property specifies that the componenrt has a duration attribute further specified in the subproperty + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "duration in xsd "@en ; + rdfs:range xsd:duration ; +. +s4ener:hasDurationDefault + a owl:DatatypeProperty ; + rdfs:comment """The duration of a slot (SHALL be present in case of 'determined slot'). If a slot has a configurable lenght, this element SHALL reflect the currently configured lenght + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "duration default"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasDurationMin + a owl:DatatypeProperty ; + rdfs:comment """The minimum duration for some component + +This property is suggested to be added in SAREF4ENER_V2""" ; + rdfs:label "duration minimum"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasEarliestStartTime + a owl:DatatypeProperty ; + rdfs:comment """The earliest possible start time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. + +Note: This element applies to the first repetition of the slot number only. + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "has earliest start time"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasEffectivePeriod + a owl:ObjectProperty ; + rdfs:comment """This connects to the temporal entity which describes when (time interval) the quantity of this data point was, is, or will be in effect. This is the time interval which is covered by the forecast. +This should be equivalent to the time interval covered by the time-series that express the forecast. *A potential application of SHACL?*""" ; + rdfs:label "has effective period"@en ; + rdfs:range time:Interval ; +. +s4ener:hasEndTime + a owl:DatatypeProperty ; + rdfs:comment """The endTime of a power sequence. If the value is available, it SHALL be denoted here. Otherwise the element SHALL be omitted. +The end time of a slot MAY be stated in this element. The following equation SHALL apply: endTime - startTime = defaultDuration."""@en ; + rdfs:label "end time"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasEnergy + a owl:ObjectProperty ; + rdfs:comment "A relationship between a power sequence and its energy (in terms of value and unit of measure)"@en ; + rdfs:label "has energy"@en ; + rdfs:range s4ener:Energy ; +. +s4ener:hasEnergyValueType + a owl:ObjectProperty ; + rdfs:comment "A relationship representing an energy value type"@en ; + rdfs:label "has energy value type"@en ; + rdfs:subPropertyOf s4ener:hasValueType ; +. +s4ener:hasEnvelope + a owl:ObjectProperty ; + rdfs:comment "This property relates a Power Envelope to the Timeseries object that describes the envelope" ; + rdfs:domain s4ener:PowerEnvelope ; + rdfs:label "has envelope"@en ; + rdfs:range s4ener:TimeSeries ; +. +s4ener:hasEventStateConsume + a owl:ObjectProperty ; + rdfs:comment "A relationship between the specification of the state of a load control event consume and the value that this state can assume."@en ; + rdfs:label "has event state consume"@en ; + rdfs:subPropertyOf saref:hasState ; +. +s4ener:hasEventStateProduce + a owl:ObjectProperty ; + rdfs:comment "A relationship between the specification of the state of a load control event produce and the value that this state can assume."@en ; + rdfs:label "has event state produce"@en ; + rdfs:subPropertyOf saref:hasState ; +. +s4ener:hasExecutionTime + a owl:DatatypeProperty ; + rdfs:comment "Start time of the instruction" ; + rdfs:domain s4ener:FlexibilityInstruction ; + rdfs:label "has execution time"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasExpression + a owl:ObjectProperty ; + rdfs:comment "A relationship between an appliance parameter compatibility action and the associated expressions"@en ; + rdfs:label "has expression"@en ; + owl:deprecated true ; +. +s4ener:hasFailsafeConsumptionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the failsafe power limit and the value indicating its consumption."@en ; + rdfs:domain s4ener:FailsafePowerLimit ; + rdfs:label "has failsafe consumption max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; +. +s4ener:hasFailsafeDuration + a owl:DatatypeProperty ; + rdfs:comment "The relationship between the failsafe power limit and its duration. This property indicates the minimum duration the fail safe state will take once a device has entered that state."@en ; + rdfs:domain s4ener:FailsafeState ; + rdfs:label "has failsafe duration"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasFailsafeProductionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the failsafe power limit and the value indicating its production."@en ; + rdfs:domain s4ener:FailsafePowerLimit ; + rdfs:label "has failsafe production max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; +. +s4ener:hasFillLevelRange + a owl:ObjectProperty ; + rdfs:comment """The range of the fill level for which this FRBC.OperationModeElement applies. + +If this concept is applied on a Storage it indicated the range in which a storage should remain.""" ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:Storage + s4ener:OperationModeElement + s4ener:LeakageBehaviourElement + s4ener:FillLevelTargetProfileElement + ) ; + ] ; + rdfs:label "Fill Level Range"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:hasFillLevelTargetProfile + a owl:ObjectProperty ; + rdfs:comment """The Fill Level Target Profile of the storage that the current Fill Rate Profile tries to accomodate for. + +NB. This cannot be modelled as a TimeSeries, since the x-axis is not time.""" ; + rdfs:domain s4ener:Storage ; + rdfs:label "has fill level target profile"@en ; + rdfs:range s4ener:FillLevelTargetProfile ; +. +s4ener:hasFillLevelTargetProfileElement + a owl:ObjectProperty ; + rdfs:comment "The various Fill Level Target Profile Elements detailing the Fill Level Target Profile that the current Fill Level Based Profile tries to accomodate for." ; + rdfs:domain s4ener:FillLevelTargetProfile ; + rdfs:label "has fill level target profile element"@en ; + rdfs:range s4ener:FillLevelTargetProfileElement ; +. +s4ener:hasFunction + a owl:ObjectProperty ; + rdfs:comment "A relationship identifying the functions performed by an actuator level and an actuator switch"@en ; + rdfs:label "has function"@en ; + owl:deprecated true ; +. +s4ener:hasIncentive + a owl:ObjectProperty ; + rdfs:comment "This property relates an IncentiveTable element, such as an IncentiveTableSlot or an IncentiveTableTier to the boundaries that it consists of." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:IncentiveTableSlot + s4ener:IncentiveTableTier + ) ; + ] ; + rdfs:label "has incentive"@en ; + rdfs:range s4ener:Incentive ; +. +s4ener:hasIncentiveType + a owl:ObjectProperty ; + rdfs:comment "The relationship between the tier and its incentive type"@en ; + rdfs:domain s4ener:IncentiveTableTier ; + rdfs:label "has incentive type"@en ; + rdfs:range s4ener:IncentiveType ; +. +s4ener:hasIndex + a owl:DatatypeProperty ; + rdfs:comment "Gives the index for elements that are an array in the S2 specification. Can be used regularly as well as in RDF* manner on properties." ; + rdfs:label "has index"@en ; + rdfs:range xsd:integer ; +. +s4ener:hasInstructionStatus + a owl:ObjectProperty ; + rdfs:comment "Present status of this instruction." ; + rdfs:label "has Instruction Status"@en ; + rdfs:range s4ener:InstructionStatus ; +. +s4ener:hasInterruptionEndTime + a owl:DatatypeProperty ; + rdfs:comment "The end time included in an Interruption Instruction message indicating when the interruption should end." ; + rdfs:domain s4ener:InterruptionInstruction ; + rdfs:label "has end time Interruption"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasInterruptionStartTime + a owl:DatatypeProperty ; + rdfs:comment "The start time included in an Interruption Instruction message indicating when the interruption should start." ; + rdfs:domain s4ener:InterruptionInstruction ; + rdfs:label "Has Interruption Start Time"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasLatestEndTime + a owl:DatatypeProperty ; + rdfs:comment """The latest possible end time for a power sequence or a slot. Only 'xs:duration' value types SHALL be used to denote a relative time which relates to 'now' as time 0. + +Note: This element applies to the first repetition of the slot number only. + +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription.""" ; + rdfs:label "has latest end time"@en ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasLeakageBehaviour + a owl:ObjectProperty ; + rdfs:comment "The Leakage Behaviour associated with this storage." ; + rdfs:domain s4ener:Storage ; + rdfs:label "has leakage behaviour"@en ; + rdfs:range s4ener:LeakageBehaviour ; +. +s4ener:hasLeakageBehaviourElement + a owl:ObjectProperty ; + rdfs:comment "This property relates the LeakageBehaviour description to the LeakageBehaviourElements indicating the detailed description." ; + rdfs:domain s4ener:LeakageBehaviour ; + rdfs:label "has leakage behaviour element"@en ; + rdfs:range s4ener:LeakageBehaviourElement ; +. +s4ener:hasLowerAveragePower + a owl:DatatypeProperty ; + rdfs:comment "The lower average power associated with this Energy constraint." ; + rdfs:domain s4ener:EnergyConstraint ; + rdfs:label "has lower average power"@en ; + rdfs:range xsd:integer ; +. +s4ener:hasLowerBoundary + a owl:ObjectProperty ; + rdfs:comment "This property relates an IncentiveTableBoundary to the datapoint describing its lower boundary or starting point at which this boundary becomes active." ; + rdfs:domain s4ener:Incentive ; + rdfs:label "has lower boundary"@en ; + rdfs:range s4ener:DataPoint ; +. +s4ener:hasMaxPauseBefore + a owl:DatatypeProperty ; + rdfs:comment "The maximum duration for which a device can be paused between the end of the previous running sequence and the start of this one" ; + rdfs:domain s4ener:PowerSequence ; + rdfs:label "max pause before"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasMaxPauseDuration + a owl:DatatypeProperty ; + rdfs:comment "The maximum duration for which a device can be paused between the end of the previous running sequence and the start of this one" ; + rdfs:domain s4ener:PowerSequence ; + rdfs:label "Pause before Maximum"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasMessagingType + a owl:ObjectProperty ; + rdfs:comment "The messaging type associated with this element." ; + rdfs:label "has messaging type"@en ; +. +s4ener:hasName + a owl:DatatypeProperty ; + rdfs:comment "Human readable name given by user" ; + rdfs:label "Has Name"@en ; + rdfs:range xsd:string ; + owl:deprecated true ; +. +s4ener:hasNominalConsumption + a owl:ObjectProperty ; + rdfs:comment "The relationship between the nominal power limit and the value indicating the max limit consumption."@en ; + rdfs:domain s4ener:NominalPowerLimit ; + rdfs:label "has nominal consumption Max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; +. +s4ener:hasNominalProduction + a owl:ObjectProperty ; + rdfs:comment "The relationship between the nominal power limit and the value indicating the max limit production."@en ; + rdfs:domain s4ener:NominalPowerLimit ; + rdfs:label "has nominal production Max"@en ; + rdfs:range saref:Measurement ; + rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; +. +s4ener:hasNumberRange + a owl:ObjectProperty ; + rdfs:comment "This property provides the association between a power range and its number range." ; + rdfs:domain s4ener:PowerRange ; + rdfs:label "has number range"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:hasOperationMode + a owl:ObjectProperty ; + rdfs:comment """This property indicates the s4ener:OperationMode inidicated by this Actuator, Instruction, or OperationModeProfile. + +The SAREF4ENER extension expects the following classes to be used as domain: +- saref:Actuator +- s4ener:FRBCInstruction +- s4ener:DDBCInstruction +- s4ener:OMBCInstruction +- s4ener:OperationModeProfile""" ; + rdfs:label "has Operation Modes"@en ; + rdfs:range s4ener:OperationMode ; +. +s4ener:hasOperationModeElement + a owl:ObjectProperty ; + rdfs:comment "List of OperationModeElements, which describe the properties of this FRBC.OperationMode depending on the fill_level. The fill_level_ranges of the items in the Array must be contiguous." ; + rdfs:domain s4ener:OperationMode ; + rdfs:label "Has Operation Mode Element"@en ; + rdfs:range s4ener:OperationModeElement ; +. +s4ener:hasOperationModeFactor + a owl:DatatypeProperty ; + rdfs:comment """The number indicates the factor with which the FRBC.OperationMode or OMBC.OperationMode is usedconfigured. The factor should be greater than or equal than 0 and less or equal to 1. + +Within the SAREF4ENER extension, this property is to be used on the following classes: +- s4ener:OMBCInstruction +- s4ener:OperationMode +- saref:Actuator +- s4ener:FRBCInstruction +- s4ener:DDBCInstruction""" ; + rdfs:label "Has Operation Mode Factor"@en ; + rdfs:range xsd:decimal ; +. +s4ener:hasPowerEnvelope + a owl:ObjectProperty ; + rdfs:comment "The PEBC.PowerEnvelope(s) that should be followed by the Resource Manager. There shall be at least one PEBC.PowerEnvelope, but at most one PEBC.PowerEnvelope for each CommodityQuantity." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:PEBCInstruction + s4ener:PowerEnvelopeProfile + ) ; + ] ; + rdfs:label "has power envelope"@en ; + rdfs:range s4ener:PowerEnvelope ; +. +s4ener:hasPowerEnvelopeElement + a owl:ObjectProperty ; + rdfs:comment "This property relates a PowerEnvelopeProfile to the various specific PowerEnvelops contained in the profile." ; + rdfs:domain s4ener:PowerEnvelopeProfile ; + rdfs:label "has power envelope element"@en ; + rdfs:range s4ener:PowerEnvelope ; +. +s4ener:hasPowerLimitConsumptionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the power limit and the value indicating the max limit consumption."@en ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "has power limit consumption Max"@en ; + rdfs:range saref:Measurement ; +. +s4ener:hasPowerLimitDuration + a owl:DatatypeProperty ; + rdfs:comment "The relationship between the power limit and its duration. Power limit may come with a time period of validity based on duration"@en ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "has power limit duration"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasPowerLimitProductionMax + a owl:ObjectProperty ; + rdfs:comment "The relationship between the power limit and the value indicating the max limit production."@en ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "has power limit production Max"@en ; + rdfs:range saref:Measurement ; +. +s4ener:hasPowerLimitState + a owl:ObjectProperty ; + rdfs:comment "The relationship between the power limit state and its state (active/ inactive)."@en ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "has power limit state"@en ; +. +s4ener:hasPowerRange + a owl:ObjectProperty ; + rdfs:comment "The power produced or consumed by this operation mode. The start of each PowerRange is associated with an operation_mode_factor of 0, the end is associated with an operation_mode_factor of 1. In the array there must be at least one PowerRange, and at most one PowerRange per CommodityQuantity." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:OperationMode + s4ener:OperationModeElement + ) ; + ] ; + rdfs:label "has power ranges"@en ; + rdfs:range s4ener:PowerRange ; +. +s4ener:hasPowerSequence + a owl:ObjectProperty ; + rdfs:comment "The various Sequences contained in a Power Sequence Container among which the EMS can choose the proper PowerSequence for the current energy demands." ; + rdfs:domain s4ener:PowerSequenceContainer ; + rdfs:label "has power sequence"@en ; + rdfs:range s4ener:PowerSequence ; +. +s4ener:hasPowerSequenceContainer + a owl:ObjectProperty ; + rdfs:comment "The various power sequence containers contained within an S2 Power Profile. The containers have to executed one after the other. Each container contains various Power Sequence anong which the EMS can choose the appropriate Power Sequence for the current energy demands." ; + rdfs:domain s4ener:PowerProfile ; + rdfs:label "has power sequence container"@en ; + rdfs:range s4ener:PowerSequenceContainer ; +. +s4ener:hasPowerSequenceElement + a owl:ObjectProperty ; + rdfs:comment "A connection between the Power Sequence and the elements (or Slots) describing the exact contents." ; + rdfs:domain s4ener:PowerSequence ; + rdfs:label "has power sequence element"@en ; + rdfs:range s4ener:PowerSequenceElement ; +. +s4ener:hasPowerSequenceStatus + a owl:ObjectProperty ; + rdfs:comment "This property indicates the current status of this Power Sequence." ; + rdfs:domain s4ener:PowerSequenceContainer ; + rdfs:label "has power sequence status"@en ; + rdfs:range s4ener:PowerSequenceStatus ; +. +s4ener:hasPowerSource + a owl:ObjectProperty ; + rdfs:comment "Indicates the power source of a device. Possible values are e.g. mainsSinglePhase or battery "@en ; + rdfs:label "Power source"@en ; + rdfs:range s4ener:PowerSource ; +. +s4ener:hasPowerValueType + a owl:ObjectProperty ; + rdfs:comment "A relationship representing a power value type"@en ; + rdfs:label "has power value type"@en ; + rdfs:subPropertyOf s4ener:hasValueType ; +. +s4ener:hasPreviousOperationMode + a owl:ObjectProperty ; + rdfs:comment "The previous operation mode this device was in" ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + saref:Actuator + s4ener:OperationMode + ) ; + ] ; + rdfs:label "has previous operation mode"@en ; + rdfs:range s4ener:OperationMode ; +. +s4ener:hasQuantile + a owl:DatatypeProperty ; + rdfs:comment "Used to define a quantile for example on a data point of a quantile time series. The quantile must be a ratio, usually a percentage. In a quantile forecast the hasQuantile property cannot be empty"@en ; + rdfs:domain s4ener:DataPoint ; + rdfs:label "has quantile"@en ; + rdfs:range xsd:decimal ; +. +s4ener:hasRecipient + a owl:ObjectProperty ; + rdfs:comment "This property can be used to connect a flexibility offer or/and flexibility request to a foaf:agent or saref:Device."@en ; + rdfs:label "has recipient"@en ; +. +s4ener:hasRole + a owl:ObjectProperty ; + rdfs:comment "Each Resource Manager provides one or more energy Roles" ; + rdfs:domain s4ener:Device ; + rdfs:label "performs role"@en ; + rdfs:range s4ener:Role ; +. +s4ener:hasRoleType + a owl:ObjectProperty ; + rdfs:comment "The type of this specific role" ; + rdfs:domain s4ener:Role ; + rdfs:label "role type"@en ; + rdfs:range s4ener:RoleType ; +. +s4ener:hasRunningCosts + a owl:ObjectProperty ; + rdfs:comment "Additional costs per second (e.g. wear, services) associated with this operation mode in the currency defined by the ResourceManagerDetails , excluding the commodity cost. The range is expressing uncertainty and is not linked to the operation_mode_factor." ; + rdfs:domain s4ener:OperationModeElement ; + rdfs:label "has running costs"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:hasScopeType + a owl:ObjectProperty ; + rdfs:comment "The relationship between the incentive table and the scope type"@en ; + rdfs:domain s4ener:IncentiveTableBasedProfile ; + rdfs:label "has scope type"@en ; + rdfs:range s4ener:ScopeType ; +. +s4ener:hasSlotValue + a owl:ObjectProperty ; + rdfs:comment """This property is intended to specify the power or energy value of a slot in a power sequence as part of a power profile. + +This property is a suggestion to be added in Saref4Energy v2.""" ; + rdfs:domain s4ener:Slot ; + rdfs:label "has slot value"@en ; + rdfs:range saref:Measurement ; + rdfs:range [ + a owl:Restriction ; + owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; + owl:onClass [ + a owl:Class ; + owl:unionOf ( + saref:Energy + saref:Power + ) ; + ] ; + owl:onProperty saref:relatesToProperty ; + ] ; +. +s4ener:hasStandardDeviation + a owl:DatatypeProperty ; + rdfs:comment "Adds a standard deviation to a data point."@en ; + rdfs:domain s4ener:GaussianDataPoint ; + rdfs:label "has standard deviation"@en ; + rdfs:range xsd:decimal ; +. +s4ener:hasStartTime + a owl:DatatypeProperty ; + rdfs:comment "The startTime of a power sequence or slot. SHALL be present"@en ; + rdfs:label "has start time"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasStorage + a owl:ObjectProperty ; + rdfs:comment "The storage regulated by the related Fill Rate Profile." ; + rdfs:domain s4ener:FillRateProfile ; + rdfs:label "has storage"@en ; + rdfs:range s4ener:Storage ; +. +s4ener:hasSupplyRange + a owl:ObjectProperty ; + rdfs:comment "The SupplyRange this OperationMode of a Demand Driven Profile can deliver for the CEM to match the DemandRate. The start of the NumberRange is associated with an operation_mode_factor of 0, the end is associated with an operation_mode_factor of 1." ; + rdfs:domain s4ener:OperationMode ; + rdfs:label "Has Supply Range"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:hasTemporalResolution + a owl:DatatypeProperty ; + rdfs:comment "The resolution is the distance between two measurement time-stapms. This only makes sense if the measurements are equidistant." ; + rdfs:label "has temporal resolution"@en ; + rdfs:range xsd:duration ; +. +s4ener:hasTier + a owl:ObjectProperty ; + rdfs:comment "The relationship between the incentive table and the tiers it consists of"@en ; + rdfs:domain s4ener:IncentiveTableBasedProfile ; + rdfs:label "has tier incentive"@en ; +. +s4ener:hasTimer + a owl:ObjectProperty ; + rdfs:comment "The set of timers that are available in this Actuator or OperationModeProfile" ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + saref:Actuator + s4ener:OperationModeProfile + ) ; + ] ; + rdfs:label "Has Timer"@en ; + rdfs:range s4ener:Timer ; +. +s4ener:hasTransition + a owl:ObjectProperty ; + rdfs:comment "The transitions between various saref:States or s4ener:OperationModes that either the Actuator or the OperationModeProfile can support." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + saref:Actuator + s4ener:OperationModeProfile + ) ; + ] ; + rdfs:label "has transition"@en ; + rdfs:range s4ener:Transition ; +. +s4ener:hasTransitionCosts + a owl:DatatypeProperty ; + rdfs:comment "Absolute costs for going through this Transition in the currency as described in the ResourceManagerDetails." ; + rdfs:domain s4ener:Transition ; + rdfs:label "has transition costs"@en ; + rdfs:range xsd:decimal ; +. +s4ener:hasTransitionDuration + a owl:DatatypeProperty ; + rdfs:comment "Indicates the time between the initiation of this Transition, and the time at which the device behaves according to the Operation Mode which is defined in the appropriate data element. When no value is provided it is assumed the transition duration is negligible." ; + rdfs:domain s4ener:Transition ; + rdfs:label "Transition Duration"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasTransitionTimestamp + a owl:DatatypeProperty ; + rdfs:comment "Time at which the transition from the previous Operation Mode was initiated. This value shall always be provided, unless the active OperationMode is the first OperationMode the Resource Manager is aware of." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:OperationMode + saref:Actuator + ) ; + ] ; + rdfs:label "transition Timestamp"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:hasUpdateRate + a owl:DatatypeProperty ; + rdfs:comment """The rate at which a data point or time-series or forecast or other data entity is being updated. + +If the time series gets regularly updated, then the time between two updates can be recorded here."""@en ; + rdfs:label "has update rate"@en ; + rdfs:range xsd:duration ; +. +s4ener:hasUpperAveragePower + a owl:DatatypeProperty ; + rdfs:comment "The upper average power of an Energy constraint of a Power Envelope profile." ; + rdfs:domain s4ener:EnergyConstraint ; + rdfs:label "has upper average power"@en ; + rdfs:range xsd:integer ; +. +s4ener:hasUpperBoundary + a owl:ObjectProperty ; + rdfs:comment "This property relates a boundary to its upper boundary or the value at which this incentive becomes inactive. This value is optional, because the upper boundary can be inferred from the lower boundary of the next boundary." ; + rdfs:domain s4ener:Incentive ; + rdfs:label "has upper boundary"@en ; + rdfs:range s4ener:DataPoint ; +. +s4ener:hasUsage + a owl:ObjectProperty ; + rdfs:comment "This property provides the possibility to add some additional information about the usage of a data-point or time-series. For example, a data point or time series can be used as an upper limit, lower limit or a baseline, a maximum versus minimum value, or a consumption versus a production value."@en ; + rdfs:label "has usage"@en ; + rdfs:range s4ener:Usage ; +. +s4ener:hasUsageForecast + a owl:ObjectProperty ; + rdfs:comment """Indicates the usage forecast that may be relevant to decide the energy flexibility strategy following a specific flexibility profile, specifically a fill rate based profile or incentive table. + +In SAREF4ENER this property is intended to be applied on an s4ener:FlexibilityProfile.""" ; + rdfs:label "Has Usage Forecast"@en ; + rdfs:range s4ener:TimeSeries ; +. +s4ener:hasValue + a owl:DatatypeProperty ; + rdfs:comment "Power value expressed in the unit associated with the CommodityQuantity of the Power Value." ; + rdfs:label "has value"@en ; + rdfs:range xsd:decimal ; +. +s4ener:hasValueSource + a owl:ObjectProperty ; + rdfs:comment "Indicates the source (origin/foundation) of the measurement forecasted values for a power sequence. If absent, the source is undefined. Remark: This element shall express the reliability of the forecast."@en ; + rdfs:label "has value source"@en ; + rdfs:range s4ener:ValueSource ; +. +s4ener:hasValueType + a owl:ObjectProperty ; + rdfs:comment "A relation representing the value type of an entity"@en ; + rdfs:label "has value type"@en ; +. +s4ener:includes + a owl:ObjectProperty ; + rdfs:comment "This property can be used to connect the flexibility offer and/or flexibility request to the flexibility profile. Additionally, it can be used to specify the s4ener:datapoint, s4ener:timeseries and ic-fc:forecast included in the flexibility offer and/or flexibility request."@en ; + rdfs:label "includes"@en ; +. +s4ener:isActive + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether the power limit is currently active" ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "is active"@en ; + rdfs:range xsd:boolean ; +. +s4ener:isActuatedBy + a owl:ObjectProperty ; + rdfs:comment "A reference to an (external) actuator that can potentially activate this profile or where the instruction originates from." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:DemandDrivenProfile + s4ener:FillRateProfile + s4ener:FRBCInstruction + s4ener:DDBCInstruction + ) ; + ] ; + rdfs:label "is actuated by"@en ; + rdfs:range saref:Actuator ; +. +s4ener:isBlockedBy + a owl:ObjectProperty ; + rdfs:comment "The Timers that block this Transition from initiating while at least one of these Timers is not yet finished" ; + rdfs:domain s4ener:Transition ; + rdfs:label "is blocked by"@en ; + rdfs:range s4ener:Timer ; +. +s4ener:isBoundTo + a owl:ObjectProperty ; + rdfs:comment "The relationship between a device and its contractual power limit"@en ; + rdfs:domain s4ener:PowerLimitProfile ; + rdfs:label "is bound to"@en ; + rdfs:range s4ener:ContractualPowerLimit ; +. +s4ener:isChangeable + a owl:DatatypeProperty ; + rdfs:comment """A relationship indicating that this element can be changed by its operator. The boolean value indicates whether it is indeed changeable. + +In the SAREF4ENER extension this property is intended for PowerLimits and IncentiveTable elements, such as the IncentivebasedProfile, IncentiveTableSlot, and the IncentiveTableTier."""@en ; + rdfs:label "is changeable"@en ; + rdfs:range xsd:boolean ; +. +s4ener:isFinishedAt + a owl:DatatypeProperty ; + rdfs:comment "Indicates when the Timer will be finished. If the DateTimeStamp is in the future, the timer is not yet finished. If the DateTimeStamp is in the past, the timer is finished. When the timer was never started, the value can be an arbitrary DateTimeStamp in the past." ; + rdfs:domain s4ener:Timer ; + rdfs:label "is finished at"@en ; + rdfs:range xsd:dateTimeStamp ; + rdfs:subPropertyOf saref:hasTimestamp ; +. +s4ener:isInterruptible + a owl:DatatypeProperty ; + rdfs:comment "This property indicates whether the PowerSequence is interruptible." ; + rdfs:domain s4ener:PowerSequence ; + rdfs:label "is interruptible"@en ; + rdfs:range xsd:boolean ; +. +s4ener:isLimitedWith + a owl:ObjectProperty ; + rdfs:comment "The relationship between device and failsafe power limit"@en ; + rdfs:domain s4ener:PowerLimitProfile ; + rdfs:label "is limited with"@en ; + rdfs:range s4ener:FailsafePowerLimit ; +. +s4ener:isObligatory + a owl:DatatypeProperty ; + rdfs:comment "A relationship between the power limit and the boolean value indicating whether the power limit is obligatory"@en ; + rdfs:domain s4ener:PowerLimit ; + rdfs:label "is obligatory"@en ; + rdfs:range xsd:boolean ; +. +s4ener:isPausable + a owl:DatatypeProperty ; + rdfs:comment "Specifies if the power sequence is pausable."@en ; + rdfs:label "is pausable"@en ; + rdfs:range xsd:boolean ; +. +s4ener:isProtectedBy + a owl:ObjectProperty ; + rdfs:comment "The relationship between the device and the nominal power limit"@en ; + rdfs:domain s4ener:PowerLimitProfile ; + rdfs:label "is protected by"@en ; + rdfs:range s4ener:NominalPowerLimit ; +. +s4ener:isStoppable + a owl:DatatypeProperty ; + rdfs:comment "Specifies if the power sequence is stoppable."@en ; + rdfs:label "is stoppable"@en ; + rdfs:range xsd:boolean ; +. +s4ener:leakageRate + a owl:ObjectProperty ; + rdfs:comment "Indicates how fast the momentary fill level will decrease per second due to leakage within the given range of the fill level." ; + rdfs:domain s4ener:LeakageBehaviourElement ; + rdfs:label "Leakage Rate"@en ; + rdfs:range saref:Measurement ; +. +s4ener:limitType + a owl:ObjectProperty ; + rdfs:comment "Indicates if this ranges applies to the upper limit or the lower limit." ; + rdfs:domain s4ener:AllowedLimitRange ; + rdfs:label "Limit Type"@en ; + rdfs:range s4ener:PowerEnvelopeLimitType ; +. +s4ener:manufacturerDescription + a owl:DatatypeProperty ; + rdfs:comment "A description for the device as defined by the manufacturer."@en ; + rdfs:label "manufacturer description"@en ; + rdfs:range xsd:string ; + owl:deprecated true ; +. +s4ener:manufacturerLabel + a owl:DatatypeProperty ; + rdfs:comment "A short label of the device as defined by the manufacturer. "@en ; + rdfs:label "manufacturer label"@en ; + rdfs:range xsd:string ; + owl:deprecated true ; +. +s4ener:manufacturerNodeIdentification + a owl:DatatypeProperty ; + rdfs:comment "Indicates a node identification for the device as defined by the manufacturer. This could be used for the identification of a device, even if it was removed from the network and rejoined later with changed node address."@en ; + rdfs:label "manufacturer node identification"@en ; + rdfs:range xsd:string ; + owl:deprecated true ; +. +s4ener:maxCyclesPerDay + a owl:DatatypeProperty ; + rdfs:comment "States the maximum amount of starts a power sequence (of a device) allows per day."@en ; + rdfs:label "max cycles per day"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:measurementID + a owl:DatatypeProperty ; + rdfs:comment "Enables the identification of different sensors on one EEBus address."@en ; + rdfs:label "measurement id"@en ; + rdfs:range xsd:unsignedInt ; + owl:deprecated true ; +. +s4ener:messagingNumber + a owl:DatatypeProperty ; + rdfs:comment "An identifier for one specific message. If a message is marked as obsolete, this number can be used to identify the original message."@en ; + rdfs:label "messaging number"@en ; + rdfs:range xsd:unsignedInt ; + owl:deprecated true ; +. +s4ener:messagingType + a owl:DatatypeProperty ; + rdfs:comment """Indicates the type of the message. Possible values are: +- logging (used for messages, that shall be stored in a log file) +- information (messages, that shall be presented to the customer on a display; lower priority) +- warning (messages, that shall be presented to the customer on a display; medium priority) +- alarm (messages, that shall be presented to the customer on a display; high priority; if there is an alarm device in the household, it shall generate an alarm) +- emergency (messages, that shall be presented to the customer on a display; very high priority; if there is an alarm device in the household, it shall generate an alarm; additionally, if possible and configured, an emergency call shall be done) +- obsolete (previously sent messages, that shall be marked as obsolete)"""@en ; + rdfs:label "messaging type"@en ; + rdfs:range [ + a rdfs:Datatype ; + owl:oneOf ( + "logging" + "information" + "warning" + "alarm" + "emergency" + "obsolete" + ) ; + ] ; + owl:deprecated true ; +. +s4ener:nodeRemoteControllable + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether the power profile of a device is configured for remote control (e.g., by an energy management system).This refers to the selection chosen by the user on the remote control feature of the device. If nodeRemoteControllable is equal to FALSE, all the supported power sequences shall set the sequenceRemoteControllable property to FALSE. If nodeRemoteControllable is equal to TRUE, at least one power sequence shall be remotely controllable by setting the sequenceRemoteControllable property to TRUE."@en ; + rdfs:label "node remote controllable"@en ; + rdfs:range xsd:boolean ; +. +s4ener:optionalSlot + a owl:DatatypeProperty ; + rdfs:comment "Indicates whether a slot is optional (if set to TRUE). Otherwise, if a slot is mandatory, SHALL be omitted or set to FALSE. Note: This element applies to every repetition of the slot number."@en ; + rdfs:label "optional slot"@en ; + rdfs:range xsd:boolean ; +. +s4ener:presentFillLevel + a owl:ObjectProperty ; + rdfs:comment "A saref:Measurement with a percentage value indicating the fill level of the storage." ; + rdfs:domain s4ener:Storage ; + rdfs:label "present fill level"@en ; + rdfs:range saref:Measurement ; +. +s4ener:producedBy + a owl:ObjectProperty ; + rdfs:comment """A relation between an entity (datapoint, message, timeseries, instruction) that has been produced by a device or other agent. + + In the context of SAREF4ENER this property is intended for s4ener:DataPoint, s4ener:TimeSeries, and the various types of flexibility instructions, FlexOffers and FlexRequests.""" ; + rdfs:label "produced by"@en ; + rdfs:range [ + a owl:Class ; + owl:unionOf ( + foaf:Agent + saref:Device + ) ; + ] ; +. +s4ener:progress + a owl:DatatypeProperty ; + rdfs:comment "Time that has passed since the selected sequence has started. A value must be provided, unless no sequence has been selected or the selected sequence hasn't started yet." ; + rdfs:domain s4ener:PowerSequenceContainer ; + rdfs:label "progress"@en ; + rdfs:range xsd:duration ; +. +s4ener:rangeBoundary + a owl:ObjectProperty ; + rdfs:comment "Boundaries of the power range of this PEBC.AllowedLimitRange. The CEM is allowed to choose values within this range for the power envelope for the limit as described in limit_type. The start of the range shall be smaller or equal than the end of the range." ; + rdfs:domain [ + a owl:Class ; + owl:unionOf ( + s4ener:AllowedLimitRange + s4ener:EnergyConstraint + ) ; + ] ; + rdfs:label "range boundary"@en ; + rdfs:range s4ener:NumberRange ; +. +s4ener:receives + a owl:ObjectProperty ; + rdfs:comment "A relationship between a device (e.g., an appliance or a smart meter) and a load control event"@en ; + rdfs:label "receives"@en ; +. +s4ener:receivesPowerLimit + a owl:ObjectProperty ; + rdfs:comment "The relationship between a power limit profile and the power limit it has received for its device to follow"@en ; + rdfs:domain s4ener:PowerLimitProfile ; + rdfs:label "receives power limit"@en ; + rdfs:range s4ener:PowerLimit ; +. +s4ener:relatesToCommodityQuantity + a owl:ObjectProperty ; + rdfs:comment """Relates the classes to the various commodity quantities introduced by the S2 standard. + +In the SAREF4ENER extension this property is intended for the following: +- s4ener:PowerRange +- s4ener:AllowedLimitRange +- s4ener:EnergyConstraint +- s4ener:PowerEnvelope""" ; + rdfs:label "relates to commodity quantity"@en ; + rdfs:range s4ener:CommodityQuantity ; +. +s4ener:relatesToOffer + a owl:ObjectProperty ; + rdfs:comment "The relationship between the s4ener:FlexibilityInstruction and the flexibility offer."@en ; + rdfs:domain s4ener:FlexibilityInstruction ; + rdfs:label "relates to offer"@en ; + rdfs:range s4ener:FlexOffer ; +. +s4ener:relatesToPowerProfile + a owl:ObjectProperty ; + rdfs:comment "ID of the PPBC.PowerProfileDefinition of which the PPBC.PowerSequence is being selected and scheduled by the CEM." ; + rdfs:domain s4ener:PPBCInstruction ; + rdfs:label "Relates to power profile"@en ; + rdfs:range s4ener:PowerProfile ; +. +s4ener:relatesToPowerProfileSequence + a owl:ObjectProperty ; + rdfs:comment "ID of the PPBC.PowerSequence that is being selected and scheduled by the CEM." ; + rdfs:domain s4ener:PPBCInstruction ; + rdfs:label "Relates to power profile sequence"@en ; + rdfs:range s4ener:PowerSequence ; +. +s4ener:relatesToPowerProfileSequenceContainer + a owl:ObjectProperty ; + rdfs:comment "ID of the PPBC.PowerSequnceContainer of which the PPBC.PowerSequence is being selected and scheduled by the CEM." ; + rdfs:domain s4ener:PPBCInstruction ; + rdfs:label "Relates to power profile sequence container"@en ; + rdfs:range s4ener:PowerSequenceContainer ; +. +s4ener:relatesToRequest + a owl:ObjectProperty ; + rdfs:comment "The relationship between the flexibility offer and flexibility request"@en ; + rdfs:domain s4ener:FlexOffer ; + rdfs:label "relates to request"@en ; + rdfs:range s4ener:FlexRequest ; +. +s4ener:repetitionsTotal + a owl:DatatypeProperty ; + rdfs:comment "Contains the total number of repetitions, if a power sequence repeats its sequence of slots. Absence of the element is equal to a presence with a value of 0 (zero). SHALL be absent if the value is 1. "@en ; + rdfs:label "repetition total"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:requiresUpdate + a owl:DatatypeProperty ; + rdfs:comment """The relationship between the incentive table element and the boolean data indicating whether the incentive table requires an update. + +In the SAREF4ENER extension this property is intended for the following classes: +- IncentiveTableBasedProfile +- IncentiveTableTier +- IncentiveTableSlot"""@en ; + rdfs:label "requiresUpdate"@en ; + rdfs:range xsd:boolean ; +. +s4ener:sequenceID + a owl:DatatypeProperty ; + rdfs:comment "Provides a unique power sequence identifier for a certain device"@en ; + rdfs:label "sequence ID"@en ; + rdfs:range xsd:unsignedInt ; + owl:deprecated true ; +. +s4ener:sequenceRemoteControllable + a owl:DatatypeProperty ; + rdfs:comment "Denotes whether a power sequence is modifiable (if value is TRUE) or not (if value is FALSE). Modifiability is required to configure power sequences and slots. It is also required to change a power sequence state."@en ; + rdfs:label "sequence remote controllable"@en ; + rdfs:range xsd:boolean ; +. +s4ener:serialNumber + a owl:DatatypeProperty ; + rdfs:comment "Indicates the serial number of a device as defined by the manufacturer. Usually the same as printed on the case."@en ; + rdfs:label "serial number"@en ; + rdfs:range xsd:string ; +. +s4ener:slotActivated + a owl:DatatypeProperty ; + rdfs:comment "If a slot is optional, represents the current status of the slot (true = the slot will be executed, false = the slot will not be executed). If the slot is not optional, this element SHALL be absent."@en ; + rdfs:label "slot activated"@en ; + rdfs:range xsd:boolean ; +. +s4ener:slotNumber + a owl:DatatypeProperty ; + rdfs:comment "Provides a unique slot identifier for a certain power sequence"@en ; + rdfs:label "slot number"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:softwareRevision + a owl:DatatypeProperty ; + rdfs:comment "Indicates the software revision of a device as defined by the manufacturer."@en ; + rdfs:label "software revision"@en ; + rdfs:range xsd:string ; +. +s4ener:startOfRange + a owl:ObjectProperty ; + rdfs:comment "This property indicates the start of a number range." ; + rdfs:domain s4ener:NumberRange ; + rdfs:label "start of range"@en ; + rdfs:range saref:Measurement ; +. +s4ener:startsTimer + a owl:ObjectProperty ; + rdfs:comment "List of IDs of Timers that will be (re)started when this transition is initiated" ; + rdfs:domain s4ener:Transition ; + rdfs:label "Starts Timer"@en ; + rdfs:range s4ener:Timer ; +. +s4ener:supportsReselection + a owl:DatatypeProperty ; + rdfs:comment "If set toTRUE, the power profile of a device does not restrict the number of power sequence re-selections by the CEM, i.e. within a given alternative the CEM may first choose one power sequence, alter the selection by configuring another sequence later on, then alter the selection again, etc. (provided the process rules and data still permit configuration). If supportsReselection is set to FALSE, the device permits the CEM to select a power sequence of an alternative only once."@en ; + rdfs:label "supports reselection"@en ; + rdfs:range xsd:boolean ; +. +s4ener:supportsSingleSlotSchedulingOnly + a owl:DatatypeProperty ; + rdfs:comment "If set toTRUE, the power profile of a device does NOT permit the modification of more than one slot per configuration command."@en ; + rdfs:label "supports single slot scheduling only"@en ; + rdfs:range xsd:boolean ; +. +s4ener:taskIdentifier + a owl:DatatypeProperty ; + rdfs:comment "Represents the task identifier of the power sequence."@en ; + rdfs:label "task identifier"@en ; + rdfs:range xsd:unsignedInt ; + owl:deprecated true ; +. +s4ener:toOperationMode + a owl:ObjectProperty ; + rdfs:comment "ID of the OperationMode (exact type differs per ControlType) that will be switched to." ; + rdfs:domain s4ener:Transition ; + rdfs:label "to state operation mode"@en ; + rdfs:range s4ener:OperationMode ; +. +s4ener:totalSequencesCountMax + a owl:DatatypeProperty ; + rdfs:comment "Represents the total number of power sequences supported by the power profile of a device"@en ; + rdfs:label "total sequences count max"@en ; + rdfs:range xsd:unsignedInt ; +. +s4ener:triggersEventActionConsume + a owl:ObjectProperty ; + rdfs:comment "A relationship between a load control event and the consume action triggered by this event"@en ; + rdfs:label "triggers event action consume"@en ; +. +s4ener:triggersEventActionProduce + a owl:ObjectProperty ; + rdfs:comment "A relationship between a load control event and the produce action triggered by this event"@en ; + rdfs:label "triggers event action produce"@en ; +. +s4ener:valueTendency + a owl:ObjectProperty ; + rdfs:comment "Indicates whether the tendency of a measurement is rising, stable, or falling."@en ; + rdfs:label "value tendency"@en ; + rdfs:range s4ener:ValueTendency ; +. +s4ener:vendorCode + a owl:DatatypeProperty ; + rdfs:comment "Provides a code for the vendor of the device as defined by the manufacturer."@en ; + rdfs:label "vendor code"@en ; + rdfs:range xsd:string ; +. +s4ener:vendorName + a owl:DatatypeProperty ; + rdfs:comment "Provides the name of the vendor of the device as defined by the manufacturer."@en ; + rdfs:label "vendor name"@en ; + rdfs:range xsd:string ; +. + + a owl:NamedIndividual ; + rdfs:label "Anais Walle" ; +. + + a owl:NamedIndividual ; + rdfs:label "George Hallak" ; +. + + a owl:NamedIndividual ; + rdfs:label "Georg Jung" ; +. + + a owl:NamedIndividual ; + rdfs:label "Josef Baumeister" ; +. + + a owl:NamedIndividual ; + rdfs:label "Wilco Wijbrandi" ; +. \ No newline at end of file