Ver código fonte

added OGC mappings

beyza.yaman 3 anos atrás
pai
commit
9237f86c42

+ 6 - 0
OGCuplift/daq-observation-mapping/config.properties

@@ -0,0 +1,6 @@
+connectionURL = jdbc:oracle:thin:@0.0.0.0:32711/orclpdb1.localdomain
+user = PRIME2_DQ
+password = PRIME2_DQ
+mappingFile = mapping.ttl
+outputFile = output.ttl
+format = TRIG

+ 219 - 0
OGCuplift/daq-observation-mapping/mapping.ttl

@@ -0,0 +1,219 @@
+@prefix rr: <http://www.w3.org/ns/r2rml#> .
+@prefix rrf: <http://kdeg.scss.tcd.ie/ns/rrf#>
+@prefix daq:     <http://purl.org/eis/vocab/daq#> .
+@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
+@prefix sdmx-dimension:    <http://purl.org/linked-data/sdmx/2009/dimension#>.
+@prefix qb:    <http://purl.org/linked-data/cube#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+
+<#Less-Expensive-Query>
+	    rr:sqlQuery """
+            SELECT VALIDATION_BATCH_ID FROM VALIDATION_RULE
+        """;
+    rr:sqlVersion rr:Oracle .
+
+
+<#Observation-View>
+    rr:sqlQuery """
+		SELECT DISTINCT VALIDATION_RULE.CATEGORY, VALIDATION_RULE.DIMENSION as DIMENSION,
+		    VALIDATION_RULE.VALIDATION_BATCH_ID,
+		    VALIDATION_RULE.VALIDATION_BATCH,
+		    VALIDATION_RULE.TABLE_NAME,
+		    VALIDATION_RULE.ORA_ERROR  || 'ERROR' as METRIC,
+		    VALIDATION_RULE.COUNT as NUM_INSTANCES,
+		    VALIDATION_RULE.VALIDATION_DATE as ASSESSMENT_DATE,
+		    VALIDATION_RULE.TABLE_NAME as COMPUTED_ON,
+		    CASE
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'ARTIFICIAL' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BLP' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_AREA' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_LINE' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_MEREING' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_POINT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_SSA' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING_GROUP' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING_UNIT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'DIVISION' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'EXPOSED' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'LOCALE' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'RAIL_NETWORK_SEGMENT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'RAIL_POINT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'SERVICE_LINE' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'SITE' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'SITE_POINT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'STRUCTURE' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'VEGETATION' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WATER' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WATER_POINT' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WATER_SINGLE_STREAM' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WAY' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WAY_GDF2' THEN VALIDATION_FEATURE.COUNT
+		        WHEN VALIDATION_RULE.TABLE_NAME = 'WAY_POINT' THEN VALIDATION_FEATURE.COUNT
+		    END TOTAL_INSTANCES
+		    from VALIDATION_FEATURE
+		    inner join VALIDATION_RULE on VALIDATION_RULE.TABLE_NAME = VALIDATION_FEATURE.TABLENAME
+			INNER JOIN ORA_ERRORS on ORA_ERRORS.ERROR_ID=VALIDATION_RULE.ORA_ERROR
+	""";
+    rr:sqlVersion rr:Oracle .
+
+
+<#Graph-Instance>
+	rr:logicalTable <#Less-Expensive-Query> ;
+	rr:subjectMap [
+		rr:constant <http://data.example.com/1spatialassessment/quality-graph/> ;
+		rr:class daq:QualityGraph
+	] ;
+	rr:predicateObjectMap [
+        rr:predicate qb:structure ;
+        rr:object daq:dsd
+    ] .
+
+
+<#Category-Instance>
+	rr:logicalTable <#Observation-View> ;
+	rr:subjectMap [
+	  		rr:template "http://data.example.com/1spatialassessment/category/{CATEGORY}-instance" ;
+
+        rr:class <http://data.example.com/category/Oracle> ;
+        rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicateMap [
+        	rr:template "http://data.example.com/dimension/has{DIMENSION}Dimension";
+        ] ;
+        rr:objectMap [
+        	rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
+        ] ;
+    ] .
+
+<#Dimension-Instance>
+	rr:logicalTable <#Observation-View> ;
+	rr:subjectMap [
+        rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
+        rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
+    ] ;
+	rr:predicateObjectMap [
+        rr:predicate rdf:type ;
+        rr:objectMap [
+        	rr:template "http://data.example.com/dimension/{DIMENSION}"
+        ] ;
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicateMap [
+        	rr:template "http://data.example.com/dimension/has{METRIC}metric";
+        ] ;
+        rr:objectMap [
+        	rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
+        ] ;
+    ] .
+
+<#Metric-Instance>
+	rr:logicalTable <#Observation-View> ;
+	rr:subjectMap [
+	      rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
+	      rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
+	  ] ;
+	  rr:predicateObjectMap [
+        rr:predicate rdf:type ;
+        rr:objectMap [
+        	rr:template "http://data.example.com/metric/{METRIC}"
+        ] ;
+      ] ;
+	  rr:predicateObjectMap [
+	      rr:predicate daq:Observation ;
+	      rr:objectMap [
+	  		rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}--{VALIDATION_BATCH}";
+	      ] ;
+	  ] .
+
+
+<#Observations>
+    rr:logicalTable <#Observation-View> ;
+    rr:subjectMap [
+	  	rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH}";
+	    rr:class daq:Observation ;
+		rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate daq:isEstimate ;
+        rr:objectMap [ rr:constant "false"^^xsd:boolean ];
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate daq:metric ;
+        rr:objectMap [
+			rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
+        ];
+    ] ;
+   	rr:predicateObjectMap [
+        rr:predicate daq:value ;
+        rr:objectMap [
+        	rrf:functionCall [
+                rrf:function <#CalculateValue> ;
+                rrf:parameterBindings (
+                    [ rr:column "NUM_INSTANCES" ]
+                    [ rr:column "TOTAL_INSTANCES" ]
+                ) ;
+    		] ;
+        ];
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate sdmx-dimension:timePeriod ;
+        rr:objectMap [
+        	rr:termType rr:Literal ;
+			rr:template "{ASSESSMENT_DATE}";
+        ];
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate qb:dataSet ;
+        rr:object <http://data.example.com/1spatialassessment/quality-graph/> ;
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate daq:computedOn ;
+        rr:objectMap [
+			rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}"
+        ];
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate daq:computedOn ;
+        rr:objectMap [
+        	rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}" 
+        ];
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate prov:wasGeneratedBy ;
+        rr:object <http://data.example.com/1spatialassessment/r2rmlconverter/>
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate prov:generated ;
+        rr:objectMap [
+        	rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH}-profiling"
+        ]
+    ] .
+
+
+ # Do we need more profiling information?
+ <#Profiling>
+	rr:logicalTable <#Observation-View> ;
+	rr:subjectMap [
+		rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH}-profiling" ;
+	    rr:class daq:MetricProfile ;
+		rr:graph <http://data.example.com/1spatialassessment/quality-graph>
+    ] ;
+    rr:predicateObjectMap [
+        rr:predicate daq:totalDatasetTriplesAssessed ; # this might be changed if we create a small vocabulary for osi
+        rr:objectMap [
+        	rr:column "TOTAL_INSTANCES"
+        ]
+    ] .
+
+
+<#CalculateValue>
+	rrf:functionName "calculateValue" ;
+	rrf:functionBody """
+		function calculateValue(numInstances, totalInstances) {
+	    	return 1 - (numInstances / totalInstances);
+    	} """ ;
+.

Diferenças do arquivo suprimidas por serem muito extensas
+ 259 - 0
OGCuplift/daq-observation-mapping/output.ttl


+ 110 - 0
OGCuplift/quality-schema-mapping/mapping.ttl

@@ -0,0 +1,110 @@
+@prefix rr: <http://www.w3.org/ns/r2rml#> .
+@prefix daq:     <http://purl.org/eis/vocab/daq#> .
+@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix ex: <http://example.com/ns#> .
+@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
+@prefix dcterms: <http://purl.org/dc/terms/> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix vocab: <http://purl.org/vocab/vann/> .
+
+
+<#Class-ValidationRule-View>
+    rr:sqlQuery """
+    SELECT DISTINCT CATEGORY, DIMENSION, ERROR_DESCRIPTION, ORA_ERROR  || 'ERROR' as ORA_ERROR_ID
+FROM VALIDATION_RULE inner join ORA_ERRORS on ORA_ERRORS.ERROR_ID=VALIDATION_RULE.ORA_ERROR;
+        """;
+    rr:sqlVersion rr:Oracle .
+
+    <#OracleCategory>
+        rr:logicalTable <#Class-ValidationRule-View> ;
+        rr:subjectMap [
+            rr:template "http://data.example.com/category/{CATEGORY}" ;
+            rr:class rdfs:Class ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:label ;
+            rr:objectMap [ rr:column "CATEGORY" ];
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:subClassOf ;
+            rr:objectMap [ rr:constant daq:Category ] ;
+        ] .
+
+    <#TriplesMapForDimensionClass>
+        rr:logicalTable <#Class-ValidationRule-View> ;
+        rr:subjectMap [
+            rr:template "http://data.example.com/dimension/{DIMENSION}";
+            rr:class rdfs:Class ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:label ;
+            rr:objectMap [ rr:column "DIMENSION" ];
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:subClassOf ;
+            rr:objectMap [ rr:constant daq:Dimension ] ;
+        ] .
+
+    <#TriplesMapForDimensionProperty>
+        rr:logicalTable <#Class-ValidationRule-View> ;
+        rr:subjectMap [
+            rr:template "http://data.example.com/dimension/has{DIMENSION}Dimension";
+            rr:class rdf:Property ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:subPropertyOf ;
+            rr:objectMap [ rr:constant daq:hasDimension ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:domain ;
+            rr:objectMap [ rr:template "http://data.example.com/category/{CATEGORY}" ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:range ;
+            rr:objectMap [ rr:template "http://data.example.com/dimension/{DIMENSION}" ] ;
+        ] .
+
+    <#TriplesMapForMetricClass>
+        rr:logicalTable <#Class-ValidationRule-View> ;
+        rr:subjectMap [
+            rr:template "http://data.example.com/metric/{ORA_ERROR_ID}";
+            rr:class rdfs:Class ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:label ;
+            rr:objectMap [ rr:column "ORA_ERROR_ID" ];
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:subClassOf ;
+            rr:objectMap [ rr:constant daq:Metric ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:comment ;
+            rr:objectMap [ rr:column "ERROR_DESCRIPTION" ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate daq:expectedDataType ;
+            rr:objectMap [ rr:constant xsd:double ] ;
+        ] .
+
+    <#TriplesMapForMetricProperty>
+        rr:logicalTable <#Class-ValidationRule-View> ;
+        rr:subjectMap [
+            rr:template "http://data.example.com/metric/has{ORA_ERROR_ID}Metric";
+            rr:class rdf:Property ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:subPropertyOf ;
+            rr:objectMap [ rr:constant daq:hasMetric ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:domain ;
+            rr:objectMap [ rr:template "http://data.example.com/dimension/{DIMENSION}" ] ;
+        ] ;
+        rr:predicateObjectMap [
+            rr:predicate rdfs:range ;
+            rr:objectMap [ rr:template "http://data.example.com/metric/{ORA_ERROR_ID}" ] ;
+        ] .

+ 62 - 0
OGCuplift/quality-schema-mapping/output.ttl

@@ -0,0 +1,62 @@
+<http://data.example.com/metric/13349ERROR>
+        a       <http://www.w3.org/2000/01/rdf-schema#Class> ;
+        <http://www.w3.org/2000/01/rdf-schema#comment>
+                "Polygon Boundary Crosses Itself" ;
+        <http://www.w3.org/2000/01/rdf-schema#label>
+                "13349ERROR" ;
+        <http://www.w3.org/2000/01/rdf-schema#subClassOf>
+                <http://purl.org/eis/vocab/daq#Metric> ;
+        <http://purl.org/eis/vocab/daq#expectedDataType>
+                <http://www.w3.org/2001/XMLSchema#double> .
+
+<http://data.example.com/category/Standardization>
+        a       <http://www.w3.org/2000/01/rdf-schema#Class> ;
+        <http://www.w3.org/2000/01/rdf-schema#label>
+                "Standardization" ;
+        <http://www.w3.org/2000/01/rdf-schema#subClassOf>
+                <http://purl.org/eis/vocab/daq#Category> .
+
+<http://data.example.com/dimension/hasOGCcomplianceDimension>
+        a       <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> ;
+        <http://www.w3.org/2000/01/rdf-schema#domain>
+                <http://data.example.com/category/Standardization> ;
+        <http://www.w3.org/2000/01/rdf-schema#range>
+                <http://data.example.com/dimension/OGCcompliance> ;
+        <http://www.w3.org/2000/01/rdf-schema#subPropertyOf>
+                <http://purl.org/eis/vocab/daq#hasDimension> .
+
+<http://data.example.com/metric/has13356ERRORMetric>
+        a       <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> ;
+        <http://www.w3.org/2000/01/rdf-schema#domain>
+                <http://data.example.com/dimension/OGCcompliance> ;
+        <http://www.w3.org/2000/01/rdf-schema#range>
+                <http://data.example.com/metric/13356ERROR> ;
+        <http://www.w3.org/2000/01/rdf-schema#subPropertyOf>
+                <http://purl.org/eis/vocab/daq#hasMetric> .
+
+<http://data.example.com/metric/has13349ERRORMetric>
+        a       <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> ;
+        <http://www.w3.org/2000/01/rdf-schema#domain>
+                <http://data.example.com/dimension/OGCcompliance> ;
+        <http://www.w3.org/2000/01/rdf-schema#range>
+                <http://data.example.com/metric/13349ERROR> ;
+        <http://www.w3.org/2000/01/rdf-schema#subPropertyOf>
+                <http://purl.org/eis/vocab/daq#hasMetric> .
+
+<http://data.example.com/metric/13356ERROR>
+        a       <http://www.w3.org/2000/01/rdf-schema#Class> ;
+        <http://www.w3.org/2000/01/rdf-schema#comment>
+                "Adjacent points in a geometry are redundant" ;
+        <http://www.w3.org/2000/01/rdf-schema#label>
+                "13356ERROR" ;
+        <http://www.w3.org/2000/01/rdf-schema#subClassOf>
+                <http://purl.org/eis/vocab/daq#Metric> ;
+        <http://purl.org/eis/vocab/daq#expectedDataType>
+                <http://www.w3.org/2001/XMLSchema#double> .
+
+<http://data.example.com/dimension/OGCcompliance>
+        a       <http://www.w3.org/2000/01/rdf-schema#Class> ;
+        <http://www.w3.org/2000/01/rdf-schema#label>
+                "OGCcompliance" ;
+        <http://www.w3.org/2000/01/rdf-schema#subClassOf>
+                <http://purl.org/eis/vocab/daq#Dimension> .

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff