mappingDAQobservation.ttl 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. @prefix rr: <http://www.w3.org/ns/r2rml#> .
  2. @prefix rrf: <http://kdeg.scss.tcd.ie/ns/rrf#>
  3. @prefix daq: <http://purl.org/eis/vocab/daq#> .
  4. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
  5. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
  6. @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
  7. @prefix sdmx-dimension: <http://purl.org/linked-data/sdmx/2009/dimension#>.
  8. @prefix qb: <http://purl.org/linked-data/cube#> .
  9. @prefix prov: <http://www.w3.org/ns/prov#> .
  10. <#Less-Expensive-Query>
  11. rr:sqlQuery """
  12. SELECT DISTINCT ID
  13. FROM VALIDATION_BATCH2
  14. """;
  15. rr:sqlVersion rr:Oracle .
  16. <#Observation-View>
  17. rr:sqlQuery """
  18. SELECT DISTINCT MAPPING2.CATEGORY, MAPPING2.DIMENSION as DIMENSION,
  19. VALIDATION_FEATURE2.VALIDATION_BATCH_ID,
  20. VALIDATION_FEATURE2.CLASS,
  21. SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1) as METRIC,
  22. COUNT(SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1)) as NUM_INSTANCES,
  23. VALIDATION_BATCH2.END_DATE as ASSESSMENT_DATE,
  24. VALIDATION_FEATURE2.CLASS as COMPUTED_ON,
  25. CASE
  26. WHEN VALIDATION_FEATURE2.CLASS = 'ARTIFICIAL' THEN VALIDATION_BATCH2.ARTIFICIAL_COUNT
  27. WHEN VALIDATION_FEATURE2.CLASS = 'BLP' THEN VALIDATION_BATCH2.BLP_COUNT
  28. WHEN VALIDATION_FEATURE2.CLASS = 'BOUNDARY_AREA' THEN VALIDATION_BATCH2.BOUNDARY_AREA_COUNT
  29. WHEN VALIDATION_FEATURE2.CLASS = 'BOUNDARY_LINE' THEN VALIDATION_BATCH2.BOUNDARY_LINE_COUNT
  30. WHEN VALIDATION_FEATURE2.CLASS = 'BOUNDARY_MEREING' THEN VALIDATION_BATCH2.BOUNDARY_MEREING_COUNT
  31. WHEN VALIDATION_FEATURE2.CLASS = 'BOUNDARY_POINT' THEN VALIDATION_BATCH2.BOUNDARY_POINT_COUNT
  32. WHEN VALIDATION_FEATURE2.CLASS = 'BOUNDARY_SSA' THEN VALIDATION_BATCH2.BOUNDARY_SSA_COUNT
  33. WHEN VALIDATION_FEATURE2.CLASS = 'BUILDING' THEN VALIDATION_BATCH2.BUILDING_COUNT
  34. WHEN VALIDATION_FEATURE2.CLASS = 'BUILDING_GROUP' THEN VALIDATION_BATCH2.BUILDING_GROUP_COUNT
  35. WHEN VALIDATION_FEATURE2.CLASS = 'BUILDING_UNIT' THEN VALIDATION_BATCH2.BUILDING_UNIT_COUNT
  36. WHEN VALIDATION_FEATURE2.CLASS = 'DIVISION' THEN VALIDATION_BATCH2.DIVISION_COUNT
  37. WHEN VALIDATION_FEATURE2.CLASS = 'EXPOSED' THEN VALIDATION_BATCH2.EXPOSED_COUNT
  38. WHEN VALIDATION_FEATURE2.CLASS = 'LOCALE' THEN VALIDATION_BATCH2.LOCALE_COUNT
  39. WHEN VALIDATION_FEATURE2.CLASS = 'RAIL_NETWORK_SEGMENT' THEN VALIDATION_BATCH2.RAIL_NETWORK_SEGMENT_COUNT
  40. WHEN VALIDATION_FEATURE2.CLASS = 'RAIL_POINT' THEN VALIDATION_BATCH2.RAIL_POINT_COUNT
  41. WHEN VALIDATION_FEATURE2.CLASS = 'SERVICE_LINE' THEN VALIDATION_BATCH2.SERVICE_LINE_COUNT
  42. WHEN VALIDATION_FEATURE2.CLASS = 'SITE' THEN VALIDATION_BATCH2.SITE_COUNT
  43. WHEN VALIDATION_FEATURE2.CLASS = 'SITE_POINT' THEN VALIDATION_BATCH2.SITE_POINT_COUNT
  44. WHEN VALIDATION_FEATURE2.CLASS = 'STRUCTURE' THEN VALIDATION_BATCH2.STRUCTURE_COUNT
  45. WHEN VALIDATION_FEATURE2.CLASS = 'VEGETATION' THEN VALIDATION_BATCH2.VEGETATION_COUNT
  46. WHEN VALIDATION_FEATURE2.CLASS = 'WATER' THEN VALIDATION_BATCH2.WATER_COUNT
  47. WHEN VALIDATION_FEATURE2.CLASS = 'WATER_POINT' THEN VALIDATION_BATCH2.WATER_POINT_COUNT
  48. WHEN VALIDATION_FEATURE2.CLASS = 'WATER_SINGLE_STREAM' THEN VALIDATION_BATCH2.WATER_SINGLE_STREAM_COUNT
  49. WHEN VALIDATION_FEATURE2.CLASS = 'WAY' THEN VALIDATION_BATCH2.WAY_COUNT
  50. WHEN VALIDATION_FEATURE2.CLASS = 'WAY_GDF2' THEN VALIDATION_BATCH2.WAY_GDF2_COUNT
  51. WHEN VALIDATION_FEATURE2.CLASS = 'WAY_POINT' THEN VALIDATION_BATCH2.WAY_POINT_COUNT
  52. END TOTAL_INSTANCES
  53. from VALIDATION_FEATURE2
  54. inner join MAPPING2 on SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1) = MAPPING2.METRIC
  55. INNER JOIN VALIDATION_BATCH2
  56. ON VALIDATION_FEATURE2.VALIDATION_BATCH_ID = VALIDATION_BATCH2.ID
  57. GROUP BY MAPPING2.CATEGORY,MAPPING2.DIMENSION, VALIDATION_BATCH_ID, VALIDATION_FEATURE2.CLASS, SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1), VALIDATION_BATCH2.END_DATE,
  58. VALIDATION_BATCH2.RULE_SET, VALIDATION_BATCH2.ARTIFICIAL_COUNT, VALIDATION_BATCH2.BLP_COUNT,
  59. VALIDATION_BATCH2.BOUNDARY_AREA_COUNT, VALIDATION_BATCH2.BOUNDARY_LINE_COUNT, VALIDATION_BATCH2.BOUNDARY_MEREING_COUNT,
  60. VALIDATION_BATCH2.BOUNDARY_POINT_COUNT, VALIDATION_BATCH2.BOUNDARY_SSA_COUNT, VALIDATION_BATCH2.BUILDING_COUNT,
  61. VALIDATION_BATCH2.BUILDING_GROUP_COUNT, VALIDATION_BATCH2.BUILDING_UNIT_COUNT, VALIDATION_BATCH2.DIVISION_COUNT,
  62. VALIDATION_BATCH2.EXPOSED_COUNT, VALIDATION_BATCH2.LOCALE_COUNT, VALIDATION_BATCH2.RAIL_NETWORK_SEGMENT_COUNT,
  63. VALIDATION_BATCH2.RAIL_POINT_COUNT, VALIDATION_BATCH2.SERVICE_LINE_COUNT, VALIDATION_BATCH2.SITE_COUNT,
  64. VALIDATION_BATCH2.SITE_POINT_COUNT, VALIDATION_BATCH2.STRUCTURE_COUNT, VALIDATION_BATCH2.VEGETATION_COUNT,
  65. VALIDATION_BATCH2.WATER_COUNT, VALIDATION_BATCH2.WATER_POINT_COUNT, VALIDATION_BATCH2.WATER_SINGLE_STREAM_COUNT,
  66. VALIDATION_BATCH2.WAY_COUNT, VALIDATION_BATCH2.WAY_GDF2_COUNT, VALIDATION_BATCH2.WAY_POINT_COUNT
  67. """;
  68. rr:sqlVersion rr:Oracle .
  69. <#Graph-Instance>
  70. rr:logicalTable <#Less-Expensive-Query> ;
  71. rr:subjectMap [
  72. rr:constant <http://data.example.com/1spatialassessment/quality-graph/> ;
  73. rr:class daq:QualityGraph
  74. ] ;
  75. rr:predicateObjectMap [
  76. rr:predicate qb:structure ;
  77. rr:object daq:dsd
  78. ] .
  79. <#Category-Instance>
  80. rr:logicalTable <#Observation-View> ;
  81. rr:subjectMap [
  82. rr:template "http://data.example.com/1spatialassessment/category/{CATEGORY}-instance" ;
  83. rr:class <http://data.example.com/category/Oracle> ;
  84. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  85. ] ;
  86. rr:predicateObjectMap [
  87. rr:predicateMap [
  88. rr:template "http://data.example.com/dimension/has{DIMENSION}Dimension";
  89. ] ;
  90. rr:objectMap [
  91. rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
  92. rr:termType rr:IRI;
  93. ] ;
  94. ] .
  95. <#Dimension-Instance>
  96. rr:logicalTable <#Observation-View> ;
  97. rr:subjectMap [
  98. rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
  99. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  100. ] ;
  101. rr:predicateObjectMap [
  102. rr:predicate rdf:type ;
  103. rr:objectMap [
  104. rr:template "http://data.example.com/dimension/{DIMENSION}";
  105. rr:termType rr:IRI;
  106. ] ;
  107. ] ;
  108. rr:predicateObjectMap [
  109. rr:predicateMap [
  110. rr:template "http://data.example.com/dimension/has{METRIC}metric";
  111. ] ;
  112. rr:objectMap [
  113. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  114. rr:termType rr:IRI;
  115. ] ;
  116. ] .
  117. <#Metric-Instance>
  118. rr:logicalTable <#Observation-View> ;
  119. rr:subjectMap [
  120. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  121. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  122. ] ;
  123. rr:predicateObjectMap [
  124. rr:predicate rdf:type ;
  125. rr:objectMap [
  126. rr:template "http://data.example.com/metric/{METRIC}";
  127. rr:termType rr:IRI;
  128. ] ;
  129. ] ;
  130. rr:predicateObjectMap [
  131. rr:predicate daq:Observation ;
  132. rr:objectMap [
  133. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}";
  134. rr:termType rr:IRI;
  135. ] ;
  136. ] .
  137. <#Observations>
  138. rr:logicalTable <#Observation-View> ;
  139. rr:subjectMap [
  140. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}";
  141. rr:class daq:Observation ;
  142. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  143. ] ;
  144. rr:predicateObjectMap [
  145. rr:predicate daq:isEstimate ;
  146. rr:objectMap [ rr:constant "false";
  147. rr:datatype xsd:boolean;
  148. ];
  149. ] ;
  150. rr:predicateObjectMap [
  151. rr:predicate daq:metric ;
  152. rr:objectMap [
  153. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  154. rr:termType rr:IRI;
  155. ];
  156. ] ;
  157. rr:predicateObjectMap [
  158. rr:predicate daq:value ;
  159. rr:objectMap [
  160. rrf:functionCall [
  161. rrf:function <#CalculateValue> ;
  162. rrf:parameterBindings (
  163. [ rr:column "NUM_INSTANCES" ]
  164. [ rr:column "TOTAL_INSTANCES" ]
  165. ) ;
  166. ] ;
  167. ];
  168. ] ;
  169. rr:predicateObjectMap [
  170. rr:predicate sdmx-dimension:timePeriod ;
  171. rr:objectMap [
  172. rr:termType rr:Literal ;
  173. rr:template "{ASSESSMENT_DATE}";
  174. ];
  175. ] ;
  176. rr:predicateObjectMap [
  177. rr:predicate qb:dataSet ;
  178. rr:object <http://data.example.com/1spatialassessment/quality-graph/> ;
  179. ] ;
  180. rr:predicateObjectMap [
  181. rr:predicate daq:computedOn ;
  182. rr:objectMap [
  183. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}";
  184. rr:termType rr:IRI;
  185. ];
  186. ] ;
  187. rr:predicateObjectMap [
  188. rr:predicate daq:computedOn ;
  189. rr:objectMap [
  190. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}";
  191. rr:termType rr:IRI;
  192. ];
  193. ] ;
  194. rr:predicateObjectMap [
  195. rr:predicate prov:wasGeneratedBy ;
  196. rr:object <http://data.example.com/1spatialassessment/r2rmlconverter/>
  197. ] ;
  198. rr:predicateObjectMap [
  199. rr:predicate prov:generated ;
  200. rr:objectMap [
  201. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}-profiling";
  202. rr:termType rr:IRI;
  203. ]
  204. ] .
  205. # Do we need more profiling information?
  206. <#Profiling>
  207. rr:logicalTable <#Observation-View> ;
  208. rr:subjectMap [
  209. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}-profiling" ;
  210. rr:class daq:MetricProfile ;
  211. rr:graph <http://data.example.com/1spatialassessment/quality-graph>
  212. ] ;
  213. rr:predicateObjectMap [
  214. rr:predicate daq:totalDatasetTriplesAssessed ; # this might be changed if we create a small vocabulary for osi
  215. rr:objectMap [
  216. rr:column "TOTAL_INSTANCES"
  217. ]
  218. ] .
  219. <#CalculateValue>
  220. rrf:functionName "calculateValue" ;
  221. rrf:functionBody """
  222. function calculateValue(numInstances, totalInstances) {
  223. return 1 - (numInstances / totalInstances);
  224. } """ ;
  225. .