fillRateProfile.ttl 8.78 KB
Newer Older
bouter's avatar
bouter committed
@prefix : <https://saref.etsi.org/saref4ener/v1.2.1/example/fillRateProfile/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix s4ener: <https://saref.etsi.org/saref4ener/> .
@prefix saref: <https://saref.etsi.org/core/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix om: <http://www.ontology-of-units-of-measure.org/resource/om-2-ucum> .
@prefix dctype: <http://purl.org/dc/dcmitype/> .
@prefix dcterms: <http://purl.org/dc/terms/> .

<https://saref.etsi.org/saref4ener/v1.2.1/example/fillRateProfile#>
  a dctype:Dataset ;
  dcterms:conformsTo <https://saref.etsi.org/saref4ener/v1.2.1/> ;
  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 <https://forge.etsi.org/etsi-software-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 .