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