@prefix : .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix s4ener: .
@prefix saref: .
@prefix time: .
@prefix xsd: .
@prefix unit: .
@prefix om: .
@prefix dctype: .
@prefix dcterms: .
a dctype:Dataset ;
dcterms:conformsTo ;
owl:imports saref:, s4ener: ;
dcterms:title "SAREF4ENER Fill Rate Based Profile Example"@en ;
dcterms:abstract "This example file exemplifies how to model a Fill Rate Based Flexibility profile in the SAREF4ENER extension." ;
dcterms:description "This example file exemplifies how to model a Fill Rate Based Flexibility profile in the SAREF4ENER extension." ;
dcterms:license ;
.
### Device and flexibility profile ###
:ThermalBuffer
a saref:Device, s4ener:Storage ;
rdfs:label "Thermal buffer" ;
saref:hasProfile :FillRateProfile_1 ;
s4ener:hasFillLevelRange :TimeSeries_3 ;
s4ener:hasLeakageBehaviour :LeakageBehaviour_1 ;
s4ener:presentFillLevel :PresentFillLevel_1 ;
s4ener:hasFillLevelTargetProfile :FillLevelTargetProfile_1 ;
s4ener:hasUsageForecast :TimeSeries_4 ; #add TimeSeries
rdfs:comment "Hot water" ;
rdfs:label "Storage 1" ;
.
:PresentFillLevel_1
a saref:Measurement ;
saref:hasValue "60"^^xsd:decimal ;
saref:isMeasuredIn unit:PERCENT ;
saref:relatesToProperty :Energy_1 ;
.
:Power_1 a saref:Power .
:FillLevelTargetProfileElement_1
a s4ener:FillLevelTargetProfileElement ;
s4ener:hasDuration "P2H" ;
rdfs:label "Fill level target profile element 1" ;
.
:FillLevelTargetProfileElement_2
a s4ener:FillLevelTargetProfileElement ;
rdfs:label "Fill level target profile element 2" ;
.
:FillLevelTargetProfile_1
a s4ener:FillLevelTargetProfile ;
s4ener:hasFillLevelTargetProfileElement :FillLevelTargetProfileElement_1 ;
s4ener:hasFillLevelTargetProfileElement :FillLevelTargetProfileElement_2 ;
s4ener:hasEarliestStartTime "2023-01-25T17:30:00Z"^^xsd:dateTimeStamp ;
rdfs:label "Fill level target profile 1" ;
.
:FillRateProfile_1
a s4ener:FillRateProfile ;
s4ener:isActuatedBy :HeatPump ;
s4ener:hasStorage :ThermalBuffer ;
s4ener:hasEarliestStartTime "2023-01-19T17:00:00Z"^^xsd:dateTimeStamp ;
rdfs:label "Fill rate profile 1" ;
.
#########################
### Leakage behaviour ###
#########################
: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 ;
s4ener:hasStartTime "2023-01-19T17:00:30Z"^^xsd:dateTimeStamp ;
rdfs:label "Leakage behaviour 1" ;
.
:LeakageBehaviourElement_1
a s4ener:LeakageBehaviourElement ;
s4ener:hasFillLevelRange :NumberRange_1 ;
s4ener:leakageRate :DataPoint_11 ; #"10"^^xsd:decimal ; # todo: make measurement
rdfs:label "Leakage behaviour element 1" ;
.
:DataPoint_11 rdf:type s4ener:DataPoint . # todo: extend
:LeakageBehaviourElement_2
a s4ener:LeakageBehaviourElement ;
s4ener:hasFillLevelRange :NumberRange_2 ;
s4ener:leakageRate :DataPoint_12 ; # "20"^^xsd:decimal ; # todo: make measurement
rdfs:label "Leakage behaviour element 2" ;
.
:DataPoint_12 rdf:type s4ener:DataPoint .
:NumberRange_1
a s4ener:NumberRange ;
s4ener:endOfRange :Measurement_1 ; #"25"^^xsd:decimal ;
s4ener:startOfRange :Measurement_2 ; #"15"^^xsd:decimal ;
rdfs:label "Number range 1" ;
.
:Measurement_1
a saref:Measurement ;
saref:relatesToProperty :Energy_1 ;
saref:hasValue "25"^^xsd:decimal ;
saref:isMeasuredIn om:kilowatt ;
.
:Measurement_2
a saref:Measurement ;
saref:relatesToProperty :Energy_1 ;
saref:hasValue "15"^^xsd:decimal ;
saref:isMeasuredIn om:kilowatt ;
.
:NumberRange_2
a s4ener:NumberRange ;
s4ener:endOfRange :Measurement_3 ; #"35"^^xsd:decimal ;
s4ener:startOfRange :Measurement_4 ; #"25"^^xsd:decimal ;
rdfs:label "Number range 2" ;
.
:Measurement_3
a saref:Measurement ;
saref:relatesToProperty :Energy_1 ;
saref:hasValue "35"^^xsd:decimal ;
saref:isMeasuredIn om:kilowatt ;
.
:Measurement_4
a saref:Measurement ;
saref:relatesToProperty :Energy_1 ;
saref:hasValue "25"^^xsd:decimal ;
saref:isMeasuredIn om:kilowatt ;
.
######################
### Usage forecast ###
######################
:TimeSeries_4
rdfs:label "Usage forecast" ;
rdfs:comment "The usage forecast of January 29th from 10 am to 16 pm." ;
a s4ener:TimeSeries ;
s4ener:hasDataPoint :DataPoint_7 ;
s4ener:hasDataPoint :DataPoint_8 ;
s4ener:hasDataPoint :DataPoint_9 ;
s4ener:hasDataPoint :DataPoint_10 ;
.
:DataPoint_7
a s4ener:DataPoint ;
saref:hasValue "1000"^^xsd:decimal ;
saref:relatesToProperty :Power_1 ;
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: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: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:isMeasuredIn om:kilowatt ;
saref:hasTimestamp "2023-01-29T16:00:00Z"^^xsd:dateTimeStamp ;
.
########################################
### Actuator and its operation modes ###
########################################
:HeatPump rdf:type saref:Actuator ;
saref:isUsedFor :Electricity ;
s4ener:hasOperationMode :OperationMode_1 ;
s4ener:hasTransition :Transition_1 ;
s4ener:hasTimer :Timer_1 ;
s4ener:hasActiveOperationMode :OperationMode_1 ;
s4ener:hasOperationModeFactor "0.8"^^xsd:decimal ;
s4ener:hasPreviousOperationMode :OperationMode_1 ;
s4ener:hasTransitionTimestamp "2023-01-29T16:55:00Z"^^xsd:dateTimeStamp ;
.
:OperationMode_1 rdf:type s4ener:OperationMode, saref:OffState ;
rdfs:label "off" ;
s4ener:hasOperationModeElement :OperationModeElement_1 ;
s4ener:abnormalConditionOnly "false"^^xsd:boolean ;
.
:OperationModeElement_1 rdf:type s4ener:OperationModeElement ;
s4ener:hasFillLevelRange :fillLevelRange_1 ;
s4ener:fillRate :NumberRange_4 ;
s4ener:hasPowerRange :PowerRange_1 ;
.
:fillLevelRange_1 rdf:type s4ener:NumberRange ;
s4ener:startOfRange :StartOfRange_3 ;
s4ener:endOfRange :EndOfRange_3 ;
rdfs:label "Fill level range for Operation Mode Element 1" ;
.
:StartOfRange_3 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:relatesToProperty :Occupancy ;
saref:isMeasuredIn om:percent ;
.
:EndOfRange_3 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:relatesToProperty :Occupancy ;
saref:isMeasuredIn om:percent ;
.
:NumberRange_4 rdf:type s4ener:NumberRange ;
s4ener:startOfRange :StartOfRange_4 ;
s4ener:endOfRange :EndOfRange_4 ;
rdfs:label "Fill rate" ;
.
:StartOfRange_4 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:relatesToProperty :Motion ;
saref:isMeasuredIn om:percent ;
.
:EndOfRange_4 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:relatesToProperty :Motion ;
saref:isMeasuredIn om:percent ;
.
:PowerRange_1 rdf:type s4ener:PowerRange ;
s4ener:relatesToCommodityQuantity s4ener:ElectricPowerL1 ;
s4ener:hasNumberRange :NumberRange_5 ;
.
:NumberRange_5 rdf:type s4ener:NumberRange ;
s4ener:startOfRange :StartOfRange_5 ;
s4ener:endOfRange :EndOfRange_5 ;
rdfs:label "Power range" ;
.
:StartOfRange_5 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:isMeasuredIn om:watt ;
saref:relatesToProperty :Power_1 ;
.
:StartOfRange_6 rdf:type s4ener:DataPoint ;
saref:hasValue "0"^^xsd:decimal ;
saref:isMeasuredIn om:watt ;
saref:relatesToProperty :Power_1 ;
.
:Transition_1 rdf:type s4ener:Transition ;
rdfs:comment "See the OperationModeProfile examples for an extensive example containing multiple instances the Transition class." ;
.
:Timer_1 rdf:time s4ener:Timer ;
rdfs:comment "See the OperationModeProfile examples for an extensive example containing multiple instances of the Transition class." ;
.
:Occupancy rdf:type saref:Occupancy .
dcterms:abstract a owl:AnnotationProperty .