diff --git a/documentation/creators.md b/documentation/creators.md index 1ab93a6de0577e5143f9c9e82e73c4b073ffe60c..658b6b83d38d18aab53e47f221104e9ca61ad803 100644 --- a/documentation/creators.md +++ b/documentation/creators.md @@ -1,2 +1,3 @@ - [Laura Daniele](https://www.linkedin.com/in/lauradaniele) ([TNO](https://tno.nl/)) +- [Giulia Biagioni](https://www.linkedin.com/in/giulia-biagioni) ([TNO](https://tno.nl/)) - [Cornelis Bouter](https://www.linkedin.com/in/bouterca) ([TNO](https://tno.nl)) diff --git a/documentation/description.md b/documentation/description.md index fba9b6f7232f05d9dd6582a812f1ef40825017fb..2f542c67d4de6214678fdfb5e1bb706bc0f7de2c 100644 --- a/documentation/description.md +++ b/documentation/description.md @@ -28,7 +28,7 @@ This extension adds several properties to the existing [saref:Device](https://sa #### Foreword -The SAREF4ENER extension defines different energy flexibility profiles that can be offered by a [saref:Device](https://saref.etsi.org/core/Device). They are: [s4ener:PowerProfile](#s4ener:PowerProfile), [s4ener:PowerLimitProfile](#s4ener:PowerLimitProfile), [s4ener:DemandDrivenProfile](#s4ener:DemandDrivenProfile), [s4ener:OperationModeProfile](#s4ener:OperationModeProfile), [s4ener:FillRateBasedProfile](#s4ener:FillRateBasedProfile), [s4ener:IncentiveTableBasedProfile](#s4ener:IncentiveTableBasedProfile), and [s4ener:PowerEnvelopeProfile](#s4ener:PowerEnvelopeProfile). They are all subclasses of [s4ener:FlexibilityProfile](#s4ener:FlexibilityProfile) which is in turn a subclass of [saref:Profile](https://saref.etsi.org/core/Profile). +The SAREF4ENER extension defines different energy flexibility profiles that can be offered by a [saref:Device](https://saref.etsi.org/core/Device). They are: [s4ener:PowerProfile](#s4ener:PowerProfile), [s4ener:PowerLimitProfile](#s4ener:PowerLimitProfile), [s4ener:DemandDrivenProfile](#s4ener:DemandDrivenProfile), [s4ener:OperationModeProfile](#s4ener:OperationModeProfile), [s4ener:FillRateBasedProfile](#s4ener:FillRateBasedProfile), [s4ener:IncentiveTableProfile](#s4ener:IncentiveTableProfile), and [s4ener:PowerEnvelopeProfile](#s4ener:PowerEnvelopeProfile). They are all subclasses of [s4ener:FlexibilityProfile](#s4ener:FlexibilityProfile) which is in turn a subclass of [saref:Profile](https://saref.etsi.org/core/Profile).
@@ -95,7 +95,7 @@ The [s4ener:FillRateBasedProfile](#s4ener:FillRateBasedProfile) can be used for #### Incentive Table Based Profile -The [s4ener:IncentiveTableBasedProfile](#s4ener:IncentiveTableBasedProfile) can be used to describe an incentive table, compiled of incentive table slots ([s4ener:IncentiveTableSlot](#s4ener:IncentiveTableSlot)) as well as a power plan ([s4ener:PowerPlan](#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. +The [s4ener:IncentiveTableProfile](#s4ener:IncentiveTableProfile) can be used to describe an incentive table, compiled of incentive table slots ([s4ener:IncentiveTableSlot](#s4ener:IncentiveTableSlot)) as well as a power plan ([s4ener:PowerPlan](#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](#s4ener:RelativeCost)), absolute costs ([s4ener:AbsoluteCost](#s4ener:AbsoluteCost)), CO2 emissions ([s4ener:CO2Emission](#s4ener:CO2Emission)), and renewable energy percentage ([s4ener:RenewableEnergyPercentage](#s4ener:RenewableEnergyPercentage)). An incentive table also defines a scope type ([s4ener:ScopeType](#s4ener:ScopeType)) to indicate whether it is a preliminary ([s4ener:Preliminary](#s4ener:Preliminary)) or committed version ([s4ener:Committed](#s4ener:Committed)). diff --git a/examples/demandDrivenProfile.ttl b/examples/demandDrivenProfile.ttl index ae95888b08de814c097eece6bc46a82d56674079..95b6fee2299c2e7d50b0e1d4cb7866514ce688ea 100644 --- a/examples/demandDrivenProfile.ttl +++ b/examples/demandDrivenProfile.ttl @@ -41,7 +41,7 @@ rdfs:label "Demand driven profile 1" ; . :HeatPump rdf:type saref:Actuator ; - saref:isUsedFor :Electricity ; + saref:consumes s4ener:Electricity ; s4ener:hasOperationMode :OperationMode_1 ; s4ener:hasTransition :Transition_1 ; s4ener:hasTimer :Timer_1 ; @@ -53,20 +53,20 @@ :NumberRange_1 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_1 ; - s4ener:startOfRange :Observation_2 ; + s4ener:endOfRange :PropertyValue_1 ; + s4ener:startOfRange :PropertyValue_2 ; rdfs:label "Number range 1" ; . -:Observation_1 - a saref:Observation ; +:PropertyValue_1 + a saref:PropertyValue ; saref:hasValue "2500"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_2 - a saref:Observation ; +:PropertyValue_2 + a saref:PropertyValue ; saref:hasValue "2000"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . @@ -74,59 +74,59 @@ ### Operation modes and related concepts ### ############################################ -:OperationMode_1 rdf:type s4ener:OperationMode, saref:OffState ; +:OperationMode_1 rdf:type s4ener:OperationMode ; rdfs:label "off" ; s4ener:hasPowerRange :PowerRange_1 ; s4ener:hasSupplyRange :NumberRange_2 ; - s4ener:hasRunningCosts :Observation_7 ; + s4ener:hasRunningCosts :PropertyValue_7 ; s4ener:abnormalConditionOnly "false"^^xsd:boolean ; . -:Observation_7 rdf:type saref:Observation ; +:PropertyValue_7 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Price_1 ; + saref:isValueOfProperty :Price ; saref:isMeasuredIn ; . :PowerRange_1 rdf:type s4ener:PowerRange ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; s4ener:hasNumberRange :NumberRange_3 ; . :NumberRange_3 rdf:type s4ener:NumberRange ; - s4ener:endOfRange :Observation_5 ; - s4ener:startOfRange :Observation_6 ; + s4ener:endOfRange :PropertyValue_5 ; + s4ener:startOfRange :PropertyValue_6 ; rdfs:label "Number range 3" ; . -:Observation_5 rdf:type saref:Observation ; +:PropertyValue_5 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_6 rdf:type saref:Observation ; +:PropertyValue_6 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :NumberRange_2 rdf:type s4ener:NumberRange ; rdfs:label "Supply range"; - s4ener:endOfRange :Observation_3 ; - s4ener:startOfRange :Observation_4 ; + s4ener:endOfRange :PropertyValue_3 ; + s4ener:startOfRange :PropertyValue_4 ; rdfs:label "Number range 2" ; . -:Observation_3 rdf:type saref:Observation ; +:PropertyValue_3 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_4 rdf:type saref:Observation ; +:PropertyValue_4 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . @@ -150,31 +150,40 @@ rdfs:label "Average demand rate forecast" ; . :DataPoint_1 - a s4ener:DataPoint ; + a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 1" ; saref:hasTimestamp "2023-01-29T14:40:00Z"^^xsd:dateTimeStamp ; +. +:DataPoint_1_PropVal + a saref:PropertyValue ; saref:hasValue "2000" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; -. +. :DataPoint_2 - a s4ener:DataPoint ; + a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 2" ; saref:hasTimestamp "2023-01-29T14:45:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_2_PropVal ; +. +:DataPoint_2_PropVal + a saref:PropertyValue ; saref:hasValue "2500" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_3 - a s4ener:DataPoint ; + a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 3" ; saref:hasTimestamp "2023-01-29T15:00:00Z"^^xsd:dateTimeStamp ; +. +:DataPoint_3_PropVal + a saref:PropertyValue ; saref:hasValue "2000" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Price_1 rdf:type saref:Price . -:Power_1 rdf:type saref:Power . -:Electricity rdf:type saref:Electricity . -dcterms:abstract a owl:AnnotationProperty . \ No newline at end of file +:Price rdf:type saref:Property . + +dcterms:abstract a owl:AnnotationProperty . diff --git a/examples/fillRateProfile.ttl b/examples/fillRateProfile.ttl index dadfc3ae58ed3cf86a545a41408e63bf5fd9b0f3..245528b91fa3b2eeaab4b6e0fdf49e6dcfabeb0a 100644 --- a/examples/fillRateProfile.ttl +++ b/examples/fillRateProfile.ttl @@ -37,12 +37,11 @@ . :PresentFillLevel_1 - a saref:Observation ; + a saref:PropertyValue ; saref:hasValue "60"^^xsd:decimal ; saref:isMeasuredIn unit:PERCENT ; - saref:relatesToProperty :Energy_1 ; + saref:isValueOfProperty s4ener:Energy ; . -:Power_1 a saref:Power . :FillLevelTargetProfileElement_1 a s4ener:FillLevelTargetProfileElement ; @@ -74,8 +73,6 @@ ######################### :LeakageBehaviour_1 - # change to TimeSeries??? - # !!!change to TimeSeries difficult, because the x-axis is not time, but the fill level range a s4ener:LeakageBehaviour ; s4ener:hasLeakageBehaviourElement :LeakageBehaviourElement_1 ; s4ener:hasLeakageBehaviourElement :LeakageBehaviourElement_2 ; @@ -85,50 +82,52 @@ :LeakageBehaviourElement_1 a s4ener:LeakageBehaviourElement ; s4ener:hasFillLevelRange :NumberRange_1 ; - s4ener:leakageRate :DataPoint_11 ; #"10"^^xsd:decimal ; # todo: make Observation + s4ener:leakageRate :DataPoint_11 ; #"10"^^xsd:decimal ; rdfs:label "Leakage behaviour element 1" ; . -:DataPoint_11 rdf:type s4ener:DataPoint . # todo: extend +:DataPoint_11 rdf:type saref:PropertyValue . + :LeakageBehaviourElement_2 a s4ener:LeakageBehaviourElement ; s4ener:hasFillLevelRange :NumberRange_2 ; - s4ener:leakageRate :DataPoint_12 ; # "20"^^xsd:decimal ; # todo: make Observation + s4ener:leakageRate :DataPoint_12 ; # "20"^^xsd:decimal ; rdfs:label "Leakage behaviour element 2" ; . :DataPoint_12 rdf:type s4ener:DataPoint . + :NumberRange_1 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_1 ; #"25"^^xsd:decimal ; - s4ener:startOfRange :Observation_2 ; #"15"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_1 ; #"25"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_2 ; #"15"^^xsd:decimal ; rdfs:label "Number range 1" ; . -:Observation_1 - a saref:Observation ; - saref:relatesToProperty :Energy_1 ; +:PropertyValue_1 + a saref:PropertyValue ; + saref:isValueOfProperty s4ener:Energy ; saref:hasValue "25"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; . -:Observation_2 - a saref:Observation ; - saref:relatesToProperty :Energy_1 ; +:PropertyValue_2 + a saref:PropertyValue ; + saref:isValueOfProperty s4ener:Energy ; saref:hasValue "15"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; . :NumberRange_2 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_3 ; #"35"^^xsd:decimal ; - s4ener:startOfRange :Observation_4 ; #"25"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_3 ; #"35"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_4 ; #"25"^^xsd:decimal ; rdfs:label "Number range 2" ; . -:Observation_3 - a saref:Observation ; - saref:relatesToProperty :Energy_1 ; +:PropertyValue_3 + a saref:PropertyValue ; + saref:isValueOfProperty s4ener:Energy ; saref:hasValue "35"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; . -:Observation_4 - a saref:Observation ; - saref:relatesToProperty :Energy_1 ; +:PropertyValue_4 + a saref:PropertyValue ; + saref:isValueOfProperty s4ener:Energy ; saref:hasValue "25"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; . @@ -149,28 +148,28 @@ :DataPoint_7 a s4ener:DataPoint ; saref:hasValue "1000"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; saref:hasTimestamp "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; . :DataPoint_8 a s4ener:DataPoint ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; saref:hasTimestamp "2023-01-29T14:00:00Z"^^xsd:dateTimeStamp ; . :DataPoint_9 a s4ener:DataPoint ; saref:hasValue "1500"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; saref:hasTimestamp "2023-01-29T15:00:00Z"^^xsd:dateTimeStamp ; . :DataPoint_10 a s4ener:DataPoint ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; saref:hasTimestamp "2023-01-29T16:00:00Z"^^xsd:dateTimeStamp ; . @@ -180,7 +179,7 @@ ######################################## :HeatPump rdf:type saref:Actuator ; - saref:isUsedFor :Electricity ; + saref:consumes :Electricity ; s4ener:hasOperationMode :OperationMode_1 ; s4ener:hasTransition :Transition_1 ; s4ener:hasTimer :Timer_1 ; @@ -190,7 +189,7 @@ s4ener:hasTransitionTimestamp "2023-01-29T16:55:00Z"^^xsd:dateTimeStamp ; . -:OperationMode_1 rdf:type s4ener:OperationMode, saref:OffState ; +:OperationMode_1 rdf:type s4ener:OperationMode ; rdfs:label "off" ; s4ener:hasOperationModeElement :OperationModeElement_1 ; s4ener:abnormalConditionOnly "false"^^xsd:boolean ; @@ -207,15 +206,15 @@ rdfs:label "Fill level range for Operation Mode Element 1" ; . -:StartOfRange_3 rdf:type s4ener:DataPoint ; +:StartOfRange_3 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Occupancy ; + saref:isValueOfProperty :Occupancy ; saref:isMeasuredIn om:percent ; . -:EndOfRange_3 rdf:type s4ener:DataPoint ; +:EndOfRange_3 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Occupancy ; + saref:isValueOfProperty :Occupancy ; saref:isMeasuredIn om:percent ; . @@ -225,20 +224,20 @@ rdfs:label "Fill rate" ; . -:StartOfRange_4 rdf:type s4ener:DataPoint ; +:StartOfRange_4 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Motion ; + saref:isValueOfProperty :Motion ; saref:isMeasuredIn om:percent ; . -:EndOfRange_4 rdf:type s4ener:DataPoint ; +:EndOfRange_4 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Motion ; + saref:isValueOfProperty :Motion ; saref:isMeasuredIn om:percent ; . :PowerRange_1 rdf:type s4ener:PowerRange ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; s4ener:hasNumberRange :NumberRange_5 ; . @@ -248,16 +247,16 @@ rdfs:label "Power range" ; . -:StartOfRange_5 rdf:type s4ener:DataPoint ; +:StartOfRange_5 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:StartOfRange_6 rdf:type s4ener:DataPoint ; +:StartOfRange_6 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . :Transition_1 rdf:type s4ener:Transition ; @@ -268,6 +267,6 @@ rdfs:comment "See the OperationModeProfile examples for an extensive example containing multiple instances of the Transition class." ; . -:Occupancy rdf:type saref:Occupancy . +:Occupancy rdf:type saref:Property . dcterms:abstract a owl:AnnotationProperty . \ No newline at end of file diff --git a/examples/heatingSystemPowerProfile.ttl b/examples/heatingSystemPowerProfile.ttl index 053ad971104b16863780a46065f140fc95cbf489..c3b000a37fc5b0e3c6d5cc292c75bc239d01e748 100644 --- a/examples/heatingSystemPowerProfile.ttl +++ b/examples/heatingSystemPowerProfile.ttl @@ -1,4 +1,4 @@ -@prefix ex: . +@prefix : . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -18,174 +18,168 @@ dcterms:license ; . +dcterms:abstract a owl:AnnotationProperty . 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 +: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 +: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 +: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 +: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 ; + time:hasBeginning :Beginning_PowerProfile-1-HS0001 ; + time:hasEnd :End_PowerProfile-1-HS0001 ; . -ex:End_PowerProfile-1-HS0001 +: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 +: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 +: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 +: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 ; + time:hasBeginning :Beginning_PowerSequence-HS0001_afternoon ; + time:hasEnd :End_PowerSequence-HS0001_afternoon ; . -ex:PowerSequence-HS0001_morning +: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 ; + time:hasBeginning :Beginning_PowerSequence-HS0001_morning ; + time:hasEnd :End_PowerSequence-HS0001_morning ; . -ex:AlternativesGroup-1-HS0001 +: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 ; + saref:consistsOf :PowerSequence-1-HS0001 ; + saref:hasIdentifier "1"^^xsd:decimal ; + s4ener:belongsTo :PowerProfile-1-HS0001 ; . -ex:AlternativesGroup-2-HS0001 +: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 ; + saref:consistsOf :PowerSequence-2-HS0001 ; + saref:consistsOf :PowerSequence-3-HS0001 ; + saref:hasIdentifier "2"^^xsd:decimal ; + s4ener:belongsTo :PowerProfile-1-HS0001 ; . -ex:Energy_1 - rdf:type s4ener:Energy ; - rdfs:label "Energy 1"^^xsd:string ; - saref:isMeasuredByDevice ex:HeatingSystem ; -. -ex:Heating +:Heating rdf:type saref:Task ; rdfs:label "Heating"^^xsd:string ; . -ex:HeatingSystem - rdf:type s4ener:Device ; +:HeatingSystem + rdf:type saref: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:Observation_1 - rdf:type saref:Observation ; - rdfs:label "Observation 1"^^xsd:string ; + saref:accomplishes :Heating ; + rdfs:comment "Heating system HS0001 is an example of how to instantiate a heating system with hot water tank using SAREF4ENER"^^xsd:string ; + saref:consumes s4ener:Energy, s4ener:Power ; + saref:observes s4ener:Energy, s4ener:Power ; +. +:PropertyValue_1 + rdf:type saref:PropertyValue ; + rdfs:label "Property Value 1"^^xsd:string ; saref:hasValue "0.2"^^xsd:string ; saref:isMeasuredIn ; - saref:relatesToProperty ex:Energy_1 ; + saref:isValueOfProperty s4ener:Energy ; . -ex:Observation_2 - rdf:type saref:Observation ; - rdfs:label "Observation 2"^^xsd:string ; +:PropertyValue_2 + rdf:type saref:PropertyValue ; + rdfs:label "Property Value 2"^^xsd:string ; saref:hasValue "0.2"^^xsd:string ; saref:isMeasuredIn ; - saref:relatesToProperty ex:Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -ex:PowerProfile-1-HS0001 +: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 ; + saref:consistsOf :AlternativesGroup-1-HS0001 ; + saref:consistsOf :AlternativesGroup-2-HS0001 ; + s4ener:hasEffectivePeriod :Time_PowerProfile-1-HS0001 ; + s4ener:belongsTo :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 +: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 ; + saref:consistsOf :Slot-1-HS0001 ; + s4ener:hasEffectivePeriod :PowerSequence-HS0001_morning ; + s4ener:belongsTo :AlternativesGroup-1-HS0001 ; s4ener:isPausable "false"^^xsd:boolean ; s4ener:isStoppable "false"^^xsd:boolean ; . -ex:PowerSequence-2-HS0001 +: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 ; + saref:consistsOf :Slot-2-HS0001 ; + s4ener:hasEffectivePeriod :PowerSequence-HS0001_afternoon ; + s4ener:belongsTo :AlternativesGroup-2-HS0001 ; s4ener:greenest "true"^^xsd:boolean ; s4ener:isPausable "false"^^xsd:boolean ; s4ener:isStoppable "false"^^xsd:boolean ; . -ex:PowerSequence-3-HS0001 +: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 ; + saref:consistsOf :Slot-3-HS0001 ; + s4ener:hasEffectivePeriod :PowerSequence-HS0001_afternoon ; + s4ener:belongsTo :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 ; +:Power + rdf:type saref:Property ; rdfs:label "Power 1"^^xsd:string ; - saref:isMeasuredByDevice ex:HeatingSystem ; . -ex:Slot-1-HS0001 +:Slot-1-HS0001 rdf:type s4ener:Slot ; rdfs:label "Slot 1 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-1-HS0001 ; - s4ener:hasSlotValue ex:Observation_1, ex:Observation_2 ; + s4ener:belongsTo :PowerSequence-1-HS0001 ; + s4ener:hasSlotValue :PropertyValue_1, :PropertyValue_2 ; s4ener:slotNumber "1"^^xsd:unsignedInt ; . -ex:Slot-2-HS0001 +:Slot-2-HS0001 rdf:type s4ener:Slot ; rdfs:label "Slot 2 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-2-HS0001 ; + s4ener:belongsTo :PowerSequence-2-HS0001 ; s4ener:slotNumber "2"^^xsd:unsignedInt ; . -ex:Slot-3-HS0001 +:Slot-3-HS0001 rdf:type s4ener:Slot ; rdfs:label "Slot 3 HS0001"^^xsd:string ; - s4ener:belongsTo ex:PowerSequence-3-HS0001 ; + s4ener:belongsTo :PowerSequence-3-HS0001 ; s4ener:slotNumber "3"^^xsd:unsignedInt ; . -ex:Time_PowerProfile-1-HS0001 - rdf:type saref:Time ; +:Time_PowerProfile-1-HS0001 + rdf:type time:TemporalEntity ; 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 + saref:consistsOf :DateTimeInterval_PowerProfile-1-HS0001 ; +. \ No newline at end of file diff --git a/examples/incentiveTable.ttl b/examples/incentiveTable.ttl index b72a82db77e19dd2e8c86ebe51aa50c8d222d894..1ba66488005d7019c3f76d47231b68e02ea63370 100644 --- a/examples/incentiveTable.ttl +++ b/examples/incentiveTable.ttl @@ -25,7 +25,7 @@ saref:hasProfile :IncentiveTable_1; . -:IncentiveTable_1 rdf:type s4ener:IncentiveTableBasedProfile ; +:IncentiveTable_1 rdf:type s4ener:IncentiveTableProfile ; rdfs:label "Incentive table" ; s4ener:hasScopeType s4ener:Committed ; saref:consistsOf :Slot_1, :Slot_2, :Slot_3 ; @@ -82,7 +82,7 @@ :Incentive_1 rdfs:type s4ener:Incentive, s4ener:DataPoint ; saref:isMeasuredIn s4ener:EuroPerKilowattHour ; saref:hasValue "0.30"^^xsd:decimal ; - saref:relatesToProperty :Price ; + saref:isValueOfProperty :Price ; s4ener:hasLowerBoundary :LowerBoundary_1 ; . @@ -91,7 +91,7 @@ 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 ; + saref:isValueOfProperty s4ener:Energy ; . :Incentive_2 rdfs:type s4ener:Incentive, s4ener:DataPoint ; @@ -99,7 +99,7 @@ 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 ; + saref:isValueOfProperty :Price ; s4ener:hasLowerBoundary :LowerBoundary_2 ; . :LowerBoundary_2 rdf:type s4ener:DataPoint ; @@ -107,7 +107,7 @@ 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 ; + saref:isValueOfProperty s4ener:Energy ; . :Incentive_3 rdfs:type s4ener:Incentive, s4ener:DataPoint ; @@ -115,7 +115,7 @@ 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 ; + saref:isValueOfProperty :Price ; s4ener:hasLowerBoundary :LowerBoundary_3 ; . :LowerBoundary_3 rdf:type s4ener:DataPoint ; @@ -123,7 +123,7 @@ 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 ; + saref:isValueOfProperty s4ener:Energy ; . :Incentive_4 rdfs:type s4ener:Incentive, s4ener:DataPoint ; @@ -131,7 +131,7 @@ 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 ; + saref:isValueOfProperty :Price ; s4ener:hasLowerBoundary :LowerBoundary_3 ; . :LowerBoundary_4 rdf:type s4ener:DataPoint ; @@ -139,7 +139,7 @@ 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 ; + saref:isValueOfProperty s4ener:Energy ; . :Incentive_5 rdfs:type s4ener:Incentive, s4ener:DataPoint ; @@ -147,14 +147,14 @@ 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 ; + saref:isValueOfProperty :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 ; + saref:isValueOfProperty s4ener:Energy ; . :PowerPlan rdf:type s4ener:TimeSeries ; @@ -177,13 +177,13 @@ :DataPoint_1 rdf:type s4ener:DataPoint ; saref:hasValue "0"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; + saref:isValueOfProperty s4ener: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:isValueOfProperty s4ener:Power ; saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp . @@ -195,13 +195,13 @@ :DataPoint_3 rdf:type s4ener:DataPoint ; saref:hasValue "10"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; + saref:isValueOfProperty s4ener: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:isValueOfProperty s4ener:Power ; saref:hasTimestamp "2023-01-29T07:00:00Z"^^xsd:dateTimeStamp . @@ -213,19 +213,17 @@ :DataPoint_5 rdf:type s4ener:DataPoint ; saref:hasValue "50"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power ; + saref:isValueOfProperty s4ener: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:isValueOfProperty s4ener: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 . +:Price rdf:type saref:Property . dcterms:abstract a owl:AnnotationProperty . diff --git a/examples/operationModeProfile.ttl b/examples/operationModeProfile.ttl index 8b706a79e8a29f8bcd05b95129e33900e8ea5bd1..a3c0fddd7108e3cdd93758a67c31e91c2820a483 100644 --- a/examples/operationModeProfile.ttl +++ b/examples/operationModeProfile.ttl @@ -44,7 +44,7 @@ rdfs:label "Operation mode profile 1" ; . :OperationMode_1 - a s4ener:OperationMode, saref:OffState ; + a s4ener:OperationMode ; s4ener:abnormalConditionOnly false ; s4ener:hasPowerRange :NumberRange_1 ; rdfs:comment "The heat pump is turned off" ; @@ -153,44 +153,44 @@ rdfs:label "Number range 3" ; . :StartOfRange_1 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "0"^^xsd:decimal ; . :StartOfRange_2 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "-3000"^^xsd:decimal ; . :StartOfRange_3 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "-2500"^^xsd:decimal ; . :EndOfRange_1 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "0"^^xsd:decimal ; . :EndOfRange_2 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "-3000"^^xsd:decimal ; . :EndOfRange_3 - a saref:Observation ; + a saref:PropertyValue ; saref:isMeasuredIn om:watt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:hasValue "-1500"^^xsd:decimal ; . @@ -199,6 +199,4 @@ rdfs:comment "This time series can be instantiated following the other s4ener:TimeSeries examples to function as an average demand rate forecast for this operation mode. " ; . -:Power_1 rdf:type saref:Power . - dcterms:abstract a owl:AnnotationProperty . \ No newline at end of file diff --git a/examples/powerEnvelopeProfile.ttl b/examples/powerEnvelopeProfile.ttl index 02dacc0d63dc96cc2043d07297bb259d28df8e34..08e6eaa5aca7c0f520528adcef678b25b1cad329 100644 --- a/examples/powerEnvelopeProfile.ttl +++ b/examples/powerEnvelopeProfile.ttl @@ -1,5 +1,4 @@ @prefix : . -@prefix s4ener: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -24,7 +23,7 @@ s4ener:abnormalConditionOnly false ; s4ener:limitType s4ener:UpperLimit ; s4ener:rangeBoundary :NumberRange_1 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; rdfs:label "Allowed limit range 1" ; . :AllowedLimitRange_2 @@ -32,7 +31,7 @@ s4ener:abnormalConditionOnly false ; s4ener:limitType s4ener:UpperLimit ; s4ener:rangeBoundary :NumberRange_2 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; rdfs:label "Allowed limit range 2" ; . :AllowedLimitRange_3 @@ -40,7 +39,7 @@ s4ener:abnormalConditionOnly false ; s4ener:limitType s4ener:LowerLimit ; s4ener:rangeBoundary :NumberRange_3 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; rdfs:label "Allowed limit range 3" ; . :AllowedLimitRange_4 @@ -48,153 +47,170 @@ s4ener:abnormalConditionOnly false ; s4ener:limitType s4ener:LowerLimit ; s4ener:rangeBoundary :NumberRange_4 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; rdfs:label "Allowed limit range 4" ; . :DataPoint_1 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 1" ; saref:hasTimestamp "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_1_Result ; +. +:DataPoint_1_Result a saref:PropertyValue ; saref:hasValue "100" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_2 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 2" ; saref:hasTimestamp "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_2_Result ; +. +:DataPoint_2_Result a saref:PropertyValue ; saref:hasValue "200" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_3 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 3" ; saref:hasTimestamp "2023-01-29T13:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_3_Result ; +. +:DataPoint_3_Result a saref:PropertyValue ; saref:hasValue "1000" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_4 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 4" ; saref:hasTimestamp "2023-01-30T13:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_4_Result ; +. +:DataPoint_4_Result a saref:PropertyValue ; saref:hasValue "150" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_5 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 5" ; saref:hasTimestamp "2023-01-30T17:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_5_Result ; +. +:DataPoint_5_Result a saref:PropertyValue ; saref:hasValue "200" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :DataPoint_6 a s4ener:DataPoint, saref:Observation ; rdfs:label "Data point 6" ; saref:hasTimestamp "2023-01-29T17:00:00Z"^^xsd:dateTimeStamp ; + saref:hasResult :DataPoint_6_Result ; +. +:DataPoint_6_Result a saref:PropertyValue ; saref:hasValue "200" ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Power_1 rdf:type saref:Power . :EnergyConstraint_1 a s4ener:EnergyConstraint ; s4ener:rangeBoundary :EnergyConstraintsRange_1 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; s4ener:hasStartTime "2023-01-29T10:00:00Z"^^xsd:dateTimeStamp ; s4ener:hasEndTime "2023-01-29T18:00:00Z"^^xsd:dateTimeStamp ; rdfs:label "Energy constraint 1" ; . :EnergyConstraintsRange_1 rdf:type s4ener:NumberRange ; - s4ener:endOfRange :Observation_15 ; - s4ener:startOfRange :Observation_16 ; + s4ener:endOfRange :PropertyValue_15 ; + s4ener:startOfRange :PropertyValue_16 ; rdfs:label "Energy constraint average power boundary" ; . -:Observation_15 rdf:type s4ener:DataPoint ; +:PropertyValue_15 rdf:type saref:PropertyValue ; saref:hasValue "1000"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_16 rdf:type s4ener:DataPoint ; +:PropertyValue_16 rdf:type saref:PropertyValue ; saref:hasValue "100"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . :NumberRange_1 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_7 ; # "550"^^xsd:decimal ; - s4ener:startOfRange :Observation_8 ; #"400"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_7 ; # "550"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_8 ; #"400"^^xsd:decimal ; rdfs:label "Number range 1" ; . :NumberRange_2 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_9 ; # "1100"^^xsd:decimal ; - s4ener:startOfRange :Observation_10 ; #"800"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_9 ; # "1100"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_10 ; #"800"^^xsd:decimal ; rdfs:label "Number range 2" ; . :NumberRange_3 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_11 ; # "150"^^xsd:decimal ; - s4ener:startOfRange :Observation_12 ; # "0"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_11 ; # "150"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_12 ; # "0"^^xsd:decimal ; rdfs:label "Number range 3" ; . :NumberRange_4 a s4ener:NumberRange ; - s4ener:endOfRange :Observation_13 ; # "-500"^^xsd:decimal ; - s4ener:startOfRange :Observation_14 ; #"-500"^^xsd:decimal ; + s4ener:endOfRange :PropertyValue_13 ; # "-500"^^xsd:decimal ; + s4ener:startOfRange :PropertyValue_14 ; #"-500"^^xsd:decimal ; rdfs:label "Number range 4" ; . -:Observation_7 - a saref:Observation ; +:PropertyValue_7 + a saref:PropertyValue ; saref:hasValue "550"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_8 - a saref:Observation ; +:PropertyValue_8 + a saref:PropertyValue ; saref:hasValue "400"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_9 - a saref:Observation ; +:PropertyValue_9 + a saref:PropertyValue ; saref:hasValue "1100"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_10 - a saref:Observation ; +:PropertyValue_10 + a saref:PropertyValue ; saref:hasValue "800"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_11 - a saref:Observation ; +:PropertyValue_11 + a saref:PropertyValue ; saref:hasValue "150"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_12 - a saref:Observation ; +:PropertyValue_12 + a saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_13 - a saref:Observation ; +:PropertyValue_13 + a saref:PropertyValue ; saref:hasValue "-500"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . -:Observation_14 - a saref:Observation ; +:PropertyValue_14 + a saref:PropertyValue ; saref:hasValue "500"^^xsd:decimal ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; saref:isMeasuredIn om:kilowatt ; . :PowerConstraint_1 @@ -219,7 +235,7 @@ :PowerEnvelope_1 a s4ener:PowerEnvelope ; s4ener:hasEnvelope :TimeSeries_1 ; - s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ; + s4ener:relatesToCommodity s4ener:ElectricPowerL1 ; rdfs:label "Power envelope 1" ; . :SolarPanelInverter diff --git a/examples/powerLimitProfile.ttl b/examples/powerLimitProfile.ttl index ba814c5fb15a34665bcfdd523373ddc71652b51c..4341f154216da3226ef44a0a69b82c23d80b98b7 100644 --- a/examples/powerLimitProfile.ttl +++ b/examples/powerLimitProfile.ttl @@ -44,8 +44,8 @@ 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 :Observation_1 ; - s4ener:hasPowerLimitProductionMax :Observation_2 ; + s4ener:hasPowerLimitConsumptionMax :PropertyValue_1 ; + s4ener:hasPowerLimitProductionMax :PropertyValue_2 ; . :ReceivedPowerLimit rdf:type s4ener:ContractualPowerLimit ; @@ -54,8 +54,8 @@ 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 :Observation_3 ; - s4ener:hasContractualProductionMax :Observation_4 ; + s4ener:hasContractualConsumptionMax :PropertyValue_3 ; + s4ener:hasContractualProductionMax :PropertyValue_4 ; . :ReceivedPowerLimit rdf:type s4ener:NominalPowerLimit ; @@ -64,8 +64,8 @@ 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 :Observation_5 ; - s4ener:hasNominalProduction :Observation_6 ; + s4ener:hasNominalConsumption :PropertyValue_5 ; + s4ener:hasNominalProduction :PropertyValue_6 ; . :ReceivedPowerLimit rdf:type s4ener:FailsafePowerLimit ; @@ -74,59 +74,57 @@ 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 :Observation_7 ; - s4ener:hasFailsafeProductionMax :Observation_8 ; + s4ener:hasFailsafeConsumptionMax :PropertyValue_7 ; + s4ener:hasFailsafeProductionMax :PropertyValue_8 ; . -:Observation_1 rdf:type s4ener:DataPoint ; +:PropertyValue_1 rdf:type saref:PropertyValue ; saref:hasValue "500"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_2 rdf:type s4ener:DataPoint ; +:PropertyValue_2 rdf:type saref:PropertyValue ; saref:hasValue "1000"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_3 rdf:type s4ener:DataPoint ; +:PropertyValue_3 rdf:type saref:PropertyValue ; saref:hasValue "400"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_4 rdf:type s4ener:DataPoint ; +:PropertyValue_4 rdf:type saref:PropertyValue ; saref:hasValue "1500"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_5 rdf:type s4ener:DataPoint ; +:PropertyValue_5 rdf:type saref:PropertyValue ; saref:hasValue "50"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_6 rdf:type s4ener:DataPoint ; +:PropertyValue_6 rdf:type saref:PropertyValue ; saref:hasValue "1250"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_7 rdf:type s4ener:DataPoint ; +:PropertyValue_7 rdf:type saref:PropertyValue ; saref:hasValue "10"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Observation_8 rdf:type s4ener:DataPoint ; +:PropertyValue_8 rdf:type saref:PropertyValue ; saref:hasValue "0"^^xsd:decimal ; saref:isMeasuredIn om:kilowatt ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . -:Power_1 rdf:type saref:Power . - dcterms:abstract a owl:AnnotationProperty . diff --git a/examples/powerProfileExample.ttl b/examples/powerProfileExample.ttl index c719c90050ca8ea5b9d70ad54bd6908be861d6fc..b622b7e69654d9c6586ad1518e4b72b0adc2833d 100644 --- a/examples/powerProfileExample.ttl +++ b/examples/powerProfileExample.ttl @@ -43,31 +43,27 @@ rdfs:label "Washing Machine" ; saref:hasProfile :PowerProfile_1 ; . -:Energy_1 - a saref:Energy ; - rdfs:label "Energy 1" ; -. :Observation_1 a saref:Observation ; rdfs:label "Observation 1" ; saref:hasValue "2000" ; saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Energy_1 ; + saref:isValueOfProperty s4ener:Energy ; . :Observation_2 a saref:Observation ; rdfs:label "Observation 2" ; saref:hasValue "1500" ; saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Power ; . :Observation_3 a saref:Observation ; rdfs:label "Observation 3" ; saref:hasValue "100" ; saref:isMeasuredIn om-ucum:kilowattHour ; - saref:relatesToProperty :Energy_1 ; - saref:relatesToProperty :Power_1 ; + saref:isValueOfProperty s4ener:Energy ; + saref:isValueOfProperty s4ener:Power ; . :PowerProfile_1 a s4ener:PowerProfile ; @@ -76,8 +72,6 @@ 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 ; @@ -87,7 +81,7 @@ :PowerSequence_1 a s4ener:PowerSequence ; s4ener:abnormalConditionOnly false ; - s4ener:hasMaxPauseDuration "P0M"^^xsd:duration ; + s4ener:hasPauseDurationMax "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 ; @@ -123,28 +117,32 @@ 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:hasDefaultDuration "PT1H"^^xsd:duration ; s4ener:hasDurationMin "PT30M"^^xsd:duration ; - s4ener:hasSlotValue :Observation_3 ; + s4ener:hasSlotValue :Observation_1 ; s4ener:slotNumber "1"^^xsd:unsignedInt ; . :Slot_2 a s4ener:Slot ; rdfs:label "Slot 2" ; s4ener:slotNumber "2"^^xsd:unsignedInt ; + s4ener:belongsTo :PowerSequence_1 ; + s4ener:hasDefaultDuration "PT2H"^^xsd:duration ; + s4ener:hasDurationMin "PT10M"^^xsd:duration ; + s4ener:hasSlotValue :Observation_2 ; . :Slot_3 a s4ener:Slot ; rdfs:label "Slot 3" ; s4ener:slotNumber "3"^^xsd:unsignedInt ; + s4ener:belongsTo :PowerSequence_1 ; + s4ener:hasDefaultDuration "PT30M"^^xsd:duration ; + s4ener:hasDurationMin "PT10M"^^xsd:duration ; + s4ener:hasSlotValue :Observation_3 ; . :Slot_4 a s4ener:Slot ; @@ -157,7 +155,7 @@ 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:hasActivationDelay "PT10M"^^xsd:duration ; s4ener:slotNumber "5"^^xsd:unsignedInt ; . :Slot_6 @@ -173,7 +171,7 @@ Throughout this example we give several ways to model the duration or time, such :Slot_8 a s4ener:Slot ; rdfs:label "Slot 8" ; - s4ener:hasActivationDelayMax "PT5M"^^xsd:duration ; + s4ener:hasActivationDelay "PT5M"^^xsd:duration ; s4ener:slotNumber "8"^^xsd:unsignedInt ; . :Slot_9 diff --git a/ontology/saref4ener.ttl b/ontology/saref4ener.ttl index 3e4643781285eb571fcfd613a876f0a1dce47d8a..94a6017e671f3269aa985d85a66bd9c2f2c90225 100644 --- a/ontology/saref4ener.ttl +++ b/ontology/saref4ener.ttl @@ -1,7 +1,3 @@ -# baseURI: https://saref.etsi.org/saref4ener/ -# imports: https://saref.etsi.org/core/v4.1.1/ -# prefix: s4ener - @prefix dcterms: . @prefix foaf: . @prefix owl: . @@ -65,8 +61,8 @@ The additional key aspect captured in the ic-flex module is that a flex offer ca - 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 "2024-06-05"^^xsd:date ; - dcterms:modified "2025-04-12"^^xsd:date ; + dcterms:modified "2025-06-05"^^xsd:date ; + dcterms:issued "2025-06-05"^^xsd:date ; dcterms:publisher ; dcterms:source ; dcterms:title "SAREF for Energy Flexibility"@en ; @@ -98,48 +94,6 @@ s4ener:Accepted 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 ; @@ -186,17 +140,10 @@ s4ener:AlternativesGroup rdfs:subClassOf [ a owl:Restriction ; owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:alternativesGroupID ; + owl:onProperty saref:hasIdentifier ; 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 ; @@ -231,11 +178,6 @@ s4ener:Committed 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 ; @@ -303,20 +245,6 @@ s4ener:DataPoint 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 ; @@ -331,7 +259,7 @@ s4ener:DemandDrivenProfile . 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:comment "A specialization of a saref:Device that exposes a power profile with power sequences to the CEM. Most of the existing devices can expose at most one 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 [ @@ -362,17 +290,7 @@ s4ener:Device 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 ; + owl:onProperty saref:hasManufacturer; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -412,55 +330,34 @@ s4ener:Downflex 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:hasElapsedSlotTime + a owl:ObjectProperty; + rdfs:comment "If state is set to 'running' or 'paused' AND the slot is determined, this property 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 "has elapsed slot time"@en ; + rdfs:range time:TemporalEntity ; . s4ener:ElectricPower3PhaseSymmetric - a s4ener:CommodityQuantity ; + a saref:Commodity ; 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 ; + a saref:Commodity ; 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 ; + a saref:Commodity ; 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 ; + a saref:Commodity ; 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 ; + a saref:Commodity ; rdfs:comment "Identifier for Commodity ELECTRICITY" ; rdfs:label "Electricity"@en ; . @@ -482,25 +379,12 @@ s4ener:EndInterruptionInstruction 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." ; @@ -512,42 +396,12 @@ s4ener:EnergyConsumer 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 ; @@ -802,7 +656,7 @@ s4ener:FlexRequest s4ener:DataPoint s4ener:TimeSeries s4ener:FlexibilityProfile - s4ener:IncentiveTableBasedProfile + s4ener:IncentiveTableProfile ) ; ] ; owl:onProperty s4ener:includes ; @@ -821,7 +675,7 @@ Control Types dictates flexibility instructions. Control Type provides Flexibili rdfs:subClassOf saref:Profile ; . s4ener:Gas - a saref:Gas ; + a saref:Commodity ; rdfs:comment "Identifier for Commodity GAS" ; rdfs:label "Gas"@en ; . @@ -842,22 +696,22 @@ s4ener:Heat rdfs:label "Heat"@en ; . s4ener:HeatFlowRate - a s4ener:CommodityQuantity ; + a saref:Commodity ; 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 ; + a saref:Commodity ; rdfs:comment "Heat described in degrees Celsius" ; rdfs:label "Heat Temperature"@en ; . s4ener:HeatThermalPower - a s4ener:CommodityQuantity ; + a saref:Commodity ; rdfs:comment "Thermal power in Watt" ; rdfs:label "Heat Thermal Power"@en ; . s4ener:HydrogenFlowRate - a s4ener:CommodityQuantity ; + a saref:Commodity ; rdfs:comment "Gas flow rate described in grams per second" ; rdfs:label "Hydrogen Flow Rate"@en ; . @@ -873,7 +727,7 @@ s4ener:Incentive rdfs:label "Incentive"@en ; rdfs:subClassOf s4ener:DataPoint ; . -s4ener:IncentiveTableBasedProfile +s4ener:IncentiveTableProfile 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 ; @@ -941,14 +795,6 @@ s4ener:Invalid 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." ; @@ -990,15 +836,10 @@ s4ener:LoadControlEventData 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 ; + owl:onProperty saref:hasIdentifier ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1018,12 +859,6 @@ s4ener:LoadControlEventData 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 ; @@ -1033,9 +868,9 @@ s4ener:LoadControlEventData . s4ener:LoadControlEventState a owl:Class ; + rdfs:subClassOf saref:State ; 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 ; @@ -1094,7 +929,7 @@ s4ener:LoadControlStateData a owl:Restriction ; owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ; owl:onDataRange xsd:unsignedInt ; - owl:onProperty s4ener:eventID ; + owl:onProperty saref:hasIdentifier ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1108,9 +943,8 @@ s4ener:LowerLimit 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:comment "This data point indicates the lower limit, for example of a PowerEnvelopeLimitType." ; rdfs:label "Lower Limit"@en ; - rdfs:label "Lower limit"@en ; . s4ener:Mains3Phase a s4ener:PowerSource ; @@ -1122,45 +956,23 @@ s4ener:MainsSinglePhase 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:Skewness + a owl:NamedIndividual ; + a s4ener:Usage ; + rdfs:comment "The usage of this datapoint is the power skewness (assymetry of the distribution)."@en ; + rdfs:label "Skewness"@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 ; @@ -1168,7 +980,7 @@ s4ener:Minimum rdfs:label "Minimum"@en ; . s4ener:NaturalGasFlowRate - a s4ener:CommodityQuantity ; + a saref:Commodity ; rdfs:comment "Gas flow rate described in liters per second" ; rdfs:label "Natural Gas Flow Rate"@en ; . @@ -1214,15 +1026,15 @@ s4ener:Oil rdfs:label "Oil"@en ; . s4ener:OilFlowRate - a s4ener:CommodityQuantity ; + a saref:Commodity ; rdfs:comment "Oil flow rate described in liters per hour" ; rdfs:label "Oil Flow Rate"@en ; . s4ener:OperationMode a owl:Class ; + rdfs:subClassOf saref:State ; 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 ; @@ -1255,34 +1067,6 @@ s4ener:Pause 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 ; @@ -1295,12 +1079,6 @@ s4ener:Pending 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." ; @@ -1331,12 +1109,6 @@ s4ener:PowerEnvelopeProfile 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 ; @@ -1359,18 +1131,6 @@ s4ener:PowerLimitProfile 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." ; @@ -1398,11 +1158,6 @@ s4ener:PowerProfile 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 ; @@ -1444,7 +1199,7 @@ s4ener:PowerRange 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: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:isInterrupteble' 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 [ @@ -1459,13 +1214,13 @@ s4ener:PowerSequence ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; + owl:allValuesFrom saref:PropertyValue ; + owl:onProperty s4ener:hasResumeCostEstimated ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; + owl:allValuesFrom saref:PropertyValue ; + owl:onProperty s4ener:hasResumeEnergyEstimated ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1475,7 +1230,7 @@ s4ener:PowerSequence rdfs:subClassOf [ a owl:Restriction ; owl:cardinality "1"^^xsd:nonNegativeInteger ; - owl:onProperty s4ener:sequenceID ; + owl:onProperty saref:hasIdentifier ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1524,98 +1279,76 @@ s4ener:PowerSequence ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMax ; - owl:onProperty saref:hasTime ; + owl:minCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasActiveDurationMax ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationMin ; - owl:onProperty saref:hasTime ; + owl:minCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasActiveDurationMin ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMax ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasActiveDurationSumMax ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ActiveDurationSumMin ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasActiveDurationSumMin ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasEarliestStartTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ElapsedSlotTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasElapsedSlotTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasEndTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasLatestEndTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMax ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasPauseDurationMax ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:PauseDurationMin ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasPauseDurationMin ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingSlotTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasRemainingSlotTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeCostEstimated ; - owl:onProperty saref:hasPrice ; + owl:onClass saref:PropertyValue ; + owl:onProperty s4ener:hasResumeCostEstimated ; ] ; rdfs:subClassOf [ a owl:Restriction ; owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:ResumeEnergyEstimated ; - owl:onProperty s4ener:hasEnergy ; + owl:onClass saref:PropertyValue ; + owl:onProperty s4ener:hasResumeEnergyEstimated ; ] ; 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:someValuesFrom s4ener:Slot ; @@ -1623,9 +1356,8 @@ s4ener:PowerSequence ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; + owl:minCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasStartTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1648,9 +1380,9 @@ s4ener:PowerSequenceElement . s4ener:PowerSequenceState a owl:Class ; + rdfs:subClassOf saref:State ; 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 ; @@ -1658,11 +1390,15 @@ s4ener:PowerSequenceStatus 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:Power + a saref:Property ; + rdfs:comment "The Property of Power that a Value Property may be about. This concept can be related to observation or property values that are characterized by a certain value that is measured in a power unit (such as watt or kilowatt)."@en ; + rdfs:label "Power"@en ; +. +s4ener:Energy + a saref:Property ; + rdfs:comment "The Property of Energy that a Value Property may be about. This concept can be related to observations and property values that are characterized by a certain value measured in an energy unit (such as Kilowatt_Hour or Watt_hour)."@en ; + rdfs:label "Energy"@en ; . s4ener:PowerSource a owl:Class ; @@ -1670,12 +1406,6 @@ s4ener:PowerSource 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 ; @@ -1707,20 +1437,6 @@ s4ener:RelativeCost 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 ; @@ -1734,17 +1450,17 @@ s4ener:Resume rdfs:comment "Load control event action with value 'resume'"@en ; rdfs:label "Resume"@en ; . -s4ener:ResumeCostEstimated - a owl:Class ; +s4ener:hasResumeCostEstimated + a owl:ObjectProperty ; 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 ; + rdfs:subPropertyOf saref:hasPropertyValue ; . -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 ; +s4ener:hasResumeEnergyEstimated + a owl:ObjectProperty ; + rdfs:comment "In a power sequence the additional energy for the resumption of a device to its normal operation (after a pause)."@en ; rdfs:label "Resume energy estimated"@en ; - rdfs:subClassOf s4ener:Energy ; + rdfs:subPropertyOf saref:hasPropertyValue ; . s4ener:Revoked a owl:NamedIndividual ; @@ -1809,18 +1525,8 @@ s4ener:Slot 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 ; + owl:allValuesFrom s4ener:Usage ; + owl:onProperty s4ener:hasUsage ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1844,69 +1550,54 @@ s4ener:Slot ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DefaultDuration ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasDefaultDuration ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:DurationUncertainty ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasDurationUncertainty ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EarliestStartTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasEarliestStartTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:EndTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasEndTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:LatestEndTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasLatestEndTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MaxDuration ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasMaxDuration ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:MinDuration ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasMinDuration ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:RemainingPauseTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasRemainingPauseTime ; ] ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ; - owl:onClass s4ener:StartTime ; - owl:onProperty saref:hasTime ; + owl:maxCardinality "1"^^xsd:nonNegativeInteger ; + owl:onProperty s4ener:hasStartTime ; ] ; 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 ; + owl:onClass s4ener:Usage ; + owl:onProperty s4ener:hasUsage ; ] ; rdfs:subClassOf [ a owl:Restriction ; @@ -1915,13 +1606,6 @@ s4ener:Slot 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 observation has is to stay stable, instead of rising or falling." ; @@ -1933,32 +1617,12 @@ s4ener:StartInterruptionInstruction 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. " ; @@ -1972,20 +1636,6 @@ s4ener:Succeeded 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 ; @@ -2122,20 +1772,6 @@ s4ener:allowedLimitRange 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 ; @@ -2178,14 +1814,7 @@ s4ener:endOfRange rdfs:comment "This property indicates the end of a number range." ; rdfs:domain s4ener:NumberRange ; rdfs:label "end of range"@en ; - rdfs:range saref:Observation ; -. -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 ; + rdfs:range saref:PropertyValue ; . s4ener:fillRate a owl:ObjectProperty ; @@ -2226,37 +1855,12 @@ s4ener:hardwareRevision 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:label "has active duration max"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . @@ -2265,7 +1869,7 @@ s4ener:hasActiveDurationMin 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:label "has active duration min"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . @@ -2274,7 +1878,7 @@ s4ener:hasActiveDurationSumMax 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:label "has active duration sum max"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . @@ -2283,7 +1887,7 @@ s4ener:hasActiveDurationSumMin 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:label "has active duration sum min"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . @@ -2317,12 +1921,6 @@ s4ener:hasCommodity 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." ; @@ -2354,7 +1952,7 @@ s4ener:hasContractualConsumptionMax 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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; . s4ener:hasContractualProductionMax @@ -2362,7 +1960,7 @@ s4ener:hasContractualProductionMax 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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; . s4ener:hasCost @@ -2425,12 +2023,12 @@ This property is suggested to be added to SAREF4Ener_v2 to replace the time:Temp rdfs:label "duration in xsd "@en ; rdfs:range xsd:duration ; . -s4ener:hasDurationDefault +s4ener:hasDefaultDuration 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:label "has default duration"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . @@ -2443,13 +2041,34 @@ This property is suggested to be added in SAREF4ENER_V2""" ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . +s4ener:hasDurationUncertainty + a owl:DatatypeProperty ; + rdfs:comment "The uncertainty of the duration given in the s4ener:defaultDuration property."@en ; + rdfs:label "Duration uncertainty"@en ; + rdfs:range xsd:duration ; + rdfs:subPropertyOf s4ener:hasDuration ; +. +s4ener:hasManufacturerNodeIdentification + a owl:DatatypeProperty ; + rdfs:comment "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 re-joined later with changed node address."@en ; + rdfs:label "has manufacturer node identification"@en ; + rdfs:subPropertyOf saref:hasIdentifier ; + rdfs:domain saref:Device ; +. +s4ener:hasTaskIdentifier + a owl:DatatypeProperty ; + rdfs:comment "Used by a device that wants to uniquely identify reoccurring types of power sequences. For example, specific types of washing cycles with specific parameters SHOULD have the same s4ener:taskIdentifier value every time they are offered using power sequences."@en ; + rdfs:label "has task identifier"@en ; + rdfs:subPropertyOf saref:hasIdentifier ; + rdfs:domain s4ener:PowerSequence ; +. 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.""" ; +This property is suggested to be added to SAREF4Ener_v2 to replace the time:TemporalEntity and/or time:DurationDescription."""@en ; rdfs:label "has earliest start time"@en ; rdfs:range xsd:dateTimeStamp ; rdfs:subPropertyOf saref:hasTimestamp ; @@ -2457,7 +2076,7 @@ This property is suggested to be added to SAREF4Ener_v2 to replace the time:Temp 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?*""" ; +This should be equivalent to the time interval covered by the time-series that express the forecast.""" ; rdfs:label "has effective period"@en ; rdfs:range time:Interval ; . @@ -2473,13 +2092,7 @@ 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 ; + rdfs:range saref:PropertyValue ; . s4ener:hasEnvelope a owl:ObjectProperty ; @@ -2508,18 +2121,12 @@ s4ener:hasExecutionTime 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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; . s4ener:hasFailsafeDuration @@ -2535,7 +2142,7 @@ s4ener:hasFailsafeProductionMax 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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; . s4ener:hasFillLevelRange @@ -2571,12 +2178,6 @@ s4ener:hasFillLevelTargetProfileElement 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." ; @@ -2663,40 +2264,36 @@ s4ener:hasLowerBoundary rdfs:label "has lower boundary"@en ; rdfs:range s4ener:DataPoint ; . -s4ener:hasMaxPauseBefore +s4ener:hasMaxDuration 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: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 "has max duration"@en ; rdfs:domain s4ener:PowerSequence ; - rdfs:label "max pause before"@en ; rdfs:range xsd:duration ; rdfs:subPropertyOf s4ener:hasDuration ; . -s4ener:hasMaxPauseDuration +s4ener:hasMinDuration 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: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 "has min duration"@en ; 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 +s4ener:hasMaxPauseBefore a owl:DatatypeProperty ; - rdfs:comment "Human readable name given by user" ; - rdfs:label "Has Name"@en ; - rdfs:range xsd:string ; - owl:deprecated true ; + 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: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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitConsumptionMax ; . s4ener:hasNominalProduction @@ -2704,9 +2301,15 @@ s4ener:hasNominalProduction 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:Observation ; + rdfs:range saref:PropertyValue ; rdfs:subPropertyOf s4ener:hasPowerLimitProductionMax ; . +s4ener:hasActivationDelay + rdf:type owl:DatatypeProperty ; + rdfs:comment "The scheduled activation delay for a slot."@en ; + rdfs:label "has activation delay"@en ; + rdfs:range xsd:duration ; +. s4ener:hasNumberRange a owl:ObjectProperty ; rdfs:comment "This property provides the association between a power range and its number range." ; @@ -2747,9 +2350,25 @@ Within the SAREF4ENER extension, this property is to be used on the following cl rdfs:label "Has Operation Mode Factor"@en ; rdfs:range xsd:decimal ; . +s4ener:hasPauseDurationMax + a owl:DatatypeProperty ; + rdfs:comment "The maximum duration a power sequence can pause after the end of an activity."@en ; + rdfs:label "has pause duration max"@en ; + rdfs:domain s4ener:PowerSequence ; + rdfs:subPropertyOf s4ener:hasDuration ; + rdfs:range xsd:duration ; +. +s4ener:hasPauseDurationMin + a owl:DatatypeProperty ; + rdfs:comment "The minimum duration a power sequence can pause after the end of an activity."@en ; + rdfs:label "has pause duration min"@en ; + rdfs:domain s4ener:PowerSequence ; + rdfs:subPropertyOf s4ener:hasDuration ; + rdfs:range xsd:duration ; +. 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: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 Commodity." ; rdfs:domain [ a owl:Class ; owl:unionOf ( @@ -2772,7 +2391,7 @@ s4ener:hasPowerLimitConsumptionMax 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:Observation ; + rdfs:range saref:PropertyValue ; . s4ener:hasPowerLimitDuration a owl:DatatypeProperty ; @@ -2787,7 +2406,7 @@ s4ener:hasPowerLimitProductionMax 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:Observation ; + rdfs:range saref:PropertyValue ; . s4ener:hasPowerLimitState a owl:ObjectProperty ; @@ -2795,9 +2414,16 @@ s4ener:hasPowerLimitState rdfs:domain s4ener:PowerLimit ; rdfs:label "has power limit state"@en ; . +s4ener:hasPowerPlan + a owl:ObjectProperty ; + rdfs:comment "A reference to a power plan indicating the preliminary or committed usage of the energy smart device for a specific period."@en ; + rdfs:label "has power plan"@en ; + rdfs:domain s4ener:IncentiveTableProfile ; + rdfs:range s4ener:PowerPlan ; +. 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: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 Commodity." ; rdfs:domain [ a owl:Class ; owl:unionOf ( @@ -2842,12 +2468,6 @@ s4ener:hasPowerSource 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" ; @@ -2863,7 +2483,7 @@ s4ener:hasPreviousOperationMode . 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: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. his property assigns to the data point the percentage of values that are below this value. In other words, a data point with quantile 90 indicates that 90 % of other measurements are (estimated to be) lower. "@en ; rdfs:domain s4ener:DataPoint ; rdfs:label "has quantile"@en ; rdfs:range xsd:decimal ; @@ -2873,6 +2493,18 @@ s4ener:hasRecipient 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:hasRemainingPauseTime + a owl:DatatypeProperty ; + 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 "has remaining pause time"@en ; + rdfs:range xsd:duration ; +. +s4ener:hasRemainingSlotTime + a owl:DatatypeProperty ; + 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 "has remaining slot time"@en ; + rdfs:range xsd:duration ; +. s4ener:hasRole a owl:ObjectProperty ; rdfs:comment "Each Resource Manager provides one or more energy Roles" ; @@ -2897,34 +2529,20 @@ s4ener:hasRunningCosts s4ener:hasScopeType a owl:ObjectProperty ; rdfs:comment "The relationship between the incentive table and the scope type"@en ; - rdfs:domain s4ener:IncentiveTableBasedProfile ; + rdfs:domain s4ener:IncentiveTableProfile ; 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: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." ; rdfs:domain s4ener:Slot ; rdfs:label "has slot value"@en ; - rdfs:range saref:Observation ; - 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 ; - ] ; + rdfs:range saref:PropertyValue ; . s4ener:hasStandardDeviation a owl:DatatypeProperty ; - rdfs:comment "Adds a standard deviation to a data point."@en ; + rdfs:comment "The standard deviation (i.e. the square root of the average of the squared deviations of the values subtracted from their average value) can be described with this property."@en ; rdfs:domain s4ener:GaussianDataPoint ; rdfs:label "has standard deviation"@en ; rdfs:range xsd:decimal ; @@ -2952,14 +2570,14 @@ s4ener:hasSupplyRange . s4ener:hasTemporalResolution a owl:DatatypeProperty ; - rdfs:comment "The resolution is the distance between two observation time-stapms. This only makes sense if the observations are equidistant." ; + rdfs:comment "The resolution is the distance between two observation timestamps. This only makes sense if the observations 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:domain s4ener:IncentiveTableProfile ; rdfs:label "has tier incentive"@en ; . s4ener:hasTimer @@ -3032,6 +2650,13 @@ s4ener:hasUpperAveragePower rdfs:label "has upper average power"@en ; rdfs:range xsd:integer ; . +s4ener:isWritable + a owl:DatatypeProperty ; + rdfs:comment "This Boolean value indicates whether this power plan is writable or fixed."@en ; + rdfs:label "is writable"@en ; + rdfs:domain s4ener:PowerPlan ; + rdfs:range xsd:boolean ; +. 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." ; @@ -3041,7 +2666,7 @@ s4ener:hasUpperBoundary . 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: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, a lower limit, a baseline, a maximum versus minimum value, or a consumption versus a production value."@en ; rdfs:label "has usage"@en ; rdfs:range s4ener:Usage ; . @@ -3055,7 +2680,7 @@ In SAREF4ENER this property is intended to be applied on an s4ener:FlexibilityPr . s4ener:hasValue a owl:DatatypeProperty ; - rdfs:comment "Power value expressed in the unit associated with the CommodityQuantity of the Power Value." ; + rdfs:comment "Power value expressed in the unit associated with the Commodity of the Power Value." ; rdfs:label "has value"@en ; rdfs:range xsd:decimal ; . @@ -3065,11 +2690,6 @@ s4ener:hasValueSource 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 ; @@ -3115,7 +2735,7 @@ 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 IncentiveTableBasedProfile, IncentiveTableSlot, and the IncentiveTableTier."""@en ; +In the SAREF4ENER extension this property is intended for PowerLimits and IncentiveTable elements, such as the IncentiveTableProfile, IncentiveTableSlot, and the IncentiveTableTier."""@en ; rdfs:label "is changeable"@en ; rdfs:range xsd:boolean ; . @@ -3172,7 +2792,7 @@ s4ener:leakageRate 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:Observation ; + rdfs:range saref:PropertyValue ; . s4ener:limitType a owl:ObjectProperty ; @@ -3181,70 +2801,12 @@ s4ener:limitType 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:observationID - a owl:DatatypeProperty ; - rdfs:comment "Enables the identification of different sensors on one EEBus address."@en ; - rdfs:label "observation 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 ; @@ -3259,10 +2821,10 @@ s4ener:optionalSlot . s4ener:presentFillLevel a owl:ObjectProperty ; - rdfs:comment "A saref:Observation with a percentage value indicating the fill level of the storage." ; + rdfs:comment "A saref:PropertyValue with a percentage value indicating the fill level of the storage." ; rdfs:domain s4ener:Storage ; rdfs:label "present fill level"@en ; - rdfs:range saref:Observation ; + rdfs:range saref:PropertyValue ; . s4ener:producedBy a owl:ObjectProperty ; @@ -3310,9 +2872,9 @@ s4ener:receivesPowerLimit rdfs:label "receives power limit"@en ; rdfs:range s4ener:PowerLimit ; . -s4ener:relatesToCommodityQuantity +s4ener:relatesToCommodity a owl:ObjectProperty ; - rdfs:comment """Relates the classes to the various commodity quantities introduced by the S2 standard. + rdfs:comment """Relates the classes to the various commodities introduced by the S2 standard. In the SAREF4ENER extension this property is intended for the following: - s4ener:PowerRange @@ -3320,7 +2882,7 @@ In the SAREF4ENER extension this property is intended for the following: - s4ener:EnergyConstraint - s4ener:PowerEnvelope""" ; rdfs:label "relates to commodity quantity"@en ; - rdfs:range s4ener:CommodityQuantity ; + rdfs:range saref:Commodity ; . s4ener:relatesToOffer a owl:ObjectProperty ; @@ -3368,19 +2930,12 @@ s4ener:requiresUpdate 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 +- IncentiveTableProfile - 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 ; @@ -3416,7 +2971,7 @@ s4ener:startOfRange rdfs:comment "This property indicates the start of a number range." ; rdfs:domain s4ener:NumberRange ; rdfs:label "start of range"@en ; - rdfs:range saref:Observation ; + rdfs:range saref:PropertyValue ; . s4ener:startsTimer a owl:ObjectProperty ; @@ -3437,13 +2992,6 @@ s4ener:supportsSingleSlotSchedulingOnly 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." ; @@ -3504,4 +3052,6 @@ s4ener:vendorName a owl:NamedIndividual ; rdfs:label "Wilco Wijbrandi" ; -. \ No newline at end of file +. + +saref:hasPrice a owl:ObjectProperty . \ No newline at end of file