From a4b1fce7f8d64da8917d0e511346336ef567aa17 Mon Sep 17 00:00:00 2001 From: "Bilbao Arechabala, Sonia" <sonia.bilbao@tecnalia.com> Date: Thu, 23 Jan 2025 10:18:57 +0100 Subject: [PATCH] Upload New File --- .../constructMaiaEumedToEnershare.rqg | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 mappings/EDSCP/Eumed-Enershare/constructMaiaEumedToEnershare.rqg diff --git a/mappings/EDSCP/Eumed-Enershare/constructMaiaEumedToEnershare.rqg b/mappings/EDSCP/Eumed-Enershare/constructMaiaEumedToEnershare.rqg new file mode 100644 index 0000000..be090c9 --- /dev/null +++ b/mappings/EDSCP/Eumed-Enershare/constructMaiaEumedToEnershare.rqg @@ -0,0 +1,135 @@ +PREFIX sample: <https://w3id.org/omega-x/Sample/> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX eme: <https://w3id.org/omega-x/ontology/EUMEDMetering#> +PREFIX seas: <https://w3id.org/seas/> +PREFIX plt: <https://w3id.org/platoon/> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX ic-data: <http://ontology.tno.nl/interconnect/datapoint/> +PREFIX qudt: <http://qudt.org/schema/qudt/> +PREFIX quantityKind: <http://qudt.org/vocab/quantitykind/> +PREFIX qudt-unit: <http://qudt.org/vocab/unit/> +PREFIX ener-prop:<https://w3id.org/enershare/property/> +PREFIX time: <http://www.w3.org/2006/time#> +PREFIX sch:<https:schema.org/> +PREFIX ex: <http://www.example.com> +PREFIX dcterms: <http://purl.org/dc/terms/> +prefix maia: <https://w3id.org/omega-x/Maia#> + +CONSTRUCT { + + ?deviceURI a seas:Meter; + seas:measures ?systemURI; + seas:measuresProperty ?propertyURI; + sch:location ?SystemURI. + + ?SystemURI a seas:ElectricPowerSystem; + sch:name ?deviceLocationName; + ?propertyPredicat ?propertyURI. + + ?propertyURI a ?PropertyKind; + seas:isPropertyOf ?SystemURI; + seas:evaluation ?evaluationURI; + qudt:hasQuantityKind ?quantityKindProperty; + ener-prop:hasHistoricalData ?timeSeriesIntervalBlockURI. + + ?evaluationURI rdf:type ?EvaluationKind , ic-data:DataPoint; + seas:isEvaluationOf ?propertyURI; + ic-data:belongsToTimeSeries ?timeSeriesIntervalBlockURI ; + seas:hasTemporalContext ?temporalEntityURI; + seas:evaluatedValue ?value ; + qudt:hasQuantityKind ?quantityKind; + qudt:hasUnit ?cleanUnit. + + ?temporalEntityURI a time:Instant; + time:inXSDDateTimeStamp ?dateTime. + + ?timeSeriesIntervalBlockURI rdf:type ic-data:TimeSeries ; + ic-data:hasTemporalResolution "PT1M"^^xsd:duration; + ic-data:hasDataPoint ?evaluationURI; + qudt:hasQuantityKind ?quantityKind, ?quantityKindProperty ; + qudt:hasUnit ?cleanUnit; + ic-data:hasEffectivePeriod ?dateTimeIntervalURI. + + ?dateTimeIntervalURI rdf:type owl:NamedIndividual, time:DateTimeInterval; + time:hasBeginning ?startDate ; + time:hasEnd ?endDate. +} +WHERE { + ?deviceLocation rdf:type owl:NamedIndividual, eme:Name ; + eme:hasNameType maia:NameType_2 ; + eme:name ?deviceLocationName . + + ?intervalReading rdf:type owl:NamedIndividual, eme:IntervalReading ; + eme:isPartOfIntervalBlock ?intervalBlock ; + eme:timeStamp ?dateTime ; + eme:value ?value . + + ?dateTimeInterval rdf:type owl:NamedIndividual, time:DateTimeInterval; + eme:hasBeginning ?startDate ; + eme:hasEnd ?endDate. + + ?intervalBlock rdf:type eme:IntervalBlock ; + eme:hasReadingType ?ReadingType ; + eme:isPartOfMeterReading ?meterReading. + + ?ReadingType rdf:type owl:NamedIndividual, eme:ReadingType ; + eme:hasNameAsReadingType ?evaluationType ; + eme:hasMeasurementKind ?measureKind ; + eme:hasMultiplier ?multiplier ; + eme:hasUnit ?unit ; + eme:isReadingTypeAsPartOfMeterReadingSet maia:MeterReadingSet_1 . + + ?evaluationType rdf:type owl:NamedIndividual, eme:Name ; + eme:hasNameType ?NameType_1 ; + eme:name ?evaluationTypeName . + + BIND(URI(CONCAT("http://www.example.com/system/", ?deviceLocationName)) AS ?SystemURI) + BIND(URI(CONCAT("http://www.example.com/device/",?deviceLocationName,"/", STRAFTER(STR(?deviceLocation), "https://w3id.org/omega-x/Maia#"))) AS ?deviceURI) + + BIND(URI(CONCAT("http://www.example.com/system/",?deviceLocationName, "/property/", ENCODE_FOR_URI(REPLACE(?evaluationTypeName, ' ','')))) AS ?propertyURI) + + BIND(URI(CONCAT("http://www.example.com/system/", ?deviceLocationName, "/evaluation/",STRAFTER(STR(?intervalBlock), "https://w3id.org/omega-x/Maia#"),"/",STRAFTER(STR(?intervalReading), "https://w3id.org/omega-x/Maia#"))) AS ?evaluationURI) + + + BIND(URI(CONCAT("http://www.example.com/","timeseries/",STRAFTER(STR(?intervalBlock), "https://w3id.org/omega-x/Maia#"))) AS ?timeSeriesIntervalBlockURI) + + BIND(URI(CONCAT("http://www.example.com/datetimeinterval/", ENCODE_FOR_URI(LCASE(STR(?startDate))),"&",ENCODE_FOR_URI(LCASE(STR(?endDate))))) AS ?dateTimeIntervalURI ) + + BIND(URI(CONCAT("http://www.example.com/instant/", ENCODE_FOR_URI(LCASE(STR(?dateTime))))) AS ?temporalEntityURI ) + + + BIND(IF( ?measureKind = eme:power, quantityKind:Power, + IF( ?measureKind = eme:energy, quantityKind:Energy, ?empty)) AS ?quantityKind) + + BIND(IF( ?unit = eme:W, qudt-unit:W, + IF( ?unit = eme:Wh, qudt-unit:W-HR, + IF( ?unit = eme:VA, qudt-unit:V-A, + IF( ?unit = eme:VAr, qudt-unit:V-A_Reactive, ?empty)))) AS ?newUnit) + + BIND (IF( ?multiplier = eme:k, + URI(CONCAT(STRBEFORE(STR(?newUnit), "unit/"), + "unit/Kilo", + STRAFTER(STR(?newUnit), "http://qudt.org/vocab/unit/") )), ?newUnit) As ?cleanUnit) + + BIND(IF( ?evaluationTypeName = "Active Power", ener-prop:ActivePowerEvaluation, + IF( ?evaluationTypeName = "Reactive Power", ener-prop:ReactivePowerEvaluation, + IF( ?evaluationTypeName = "Apparent Power", ener-prop:ApparentPowerEvaluation, + IF( ?evaluationTypeName = "Energy", seas:ElectricEnergyEvaluation, ?empty)))) AS ?EvaluationKind) + + BIND(IF( ?evaluationTypeName = "Active Power", ener-prop:ActivePowerProperty, + IF( ?evaluationTypeName = "Reactive Power", ener-prop:ReactivePowerProperty, + IF( ?evaluationTypeName = "Apparent Power", ener-prop:ApparentPowerProperty, + IF( ?evaluationTypeName = "Energy", seas:ElectricEnergyProperty, ?empty)))) AS ?PropertyKind) + + BIND(IF( ?evaluationTypeName = "Active Power", seas:activePower, + IF( ?evaluationTypeName = "Reactive Power", seas:reactivePower, + IF( ?evaluationTypeName = "Apparent Power", seas:apparentPower, + IF( ?evaluationTypeName = "Energy", seas:electricEnergy, ?empty)))) AS ?propertyPredicat) + + BIND(IF( ?evaluationTypeName = "Active Power", quantityKind:ActivePower, + IF( ?evaluationTypeName = "Reactive Power", quantityKind:ReactivePower, + IF( ?evaluationTypeName = "Apparent Power", quantityKind:ApparentPower,?empty))) AS ?quantityKindProperty) + + +} \ No newline at end of file -- GitLab