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