@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 .