mappingDAQobservation.ttl 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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_BATCH
  14. """;
  15. rr:sqlVersion rr:Oracle .
  16. <#Observation-View>
  17. rr:sqlQuery """
  18. SELECT DISTINCT MAPPING.CATEGORY, MAPPING.DIMENSION as DIMENSION,
  19. VALIDATION_FEATURE.VALIDATION_BATCH_ID,
  20. VALIDATION_FEATURE.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_BATCH.END_DATE as ASSESSMENT_DATE,
  24. VALIDATION_FEATURE.CLASS as COMPUTED_ON,
  25. CASE
  26. WHEN VALIDATION_FEATURE.CLASS = 'ARTIFICIAL' THEN VALIDATION_BATCH.ARTIFICIAL_COUNT
  27. WHEN VALIDATION_FEATURE.CLASS = 'BLP' THEN VALIDATION_BATCH.BLP_COUNT
  28. WHEN VALIDATION_FEATURE.CLASS = 'BOUNDARY_AREA' THEN VALIDATION_BATCH.BOUNDARY_AREA_COUNT
  29. WHEN VALIDATION_FEATURE.CLASS = 'BOUNDARY_LINE' THEN VALIDATION_BATCH.BOUNDARY_LINE_COUNT
  30. WHEN VALIDATION_FEATURE.CLASS = 'BOUNDARY_MEREING' THEN VALIDATION_BATCH.BOUNDARY_MEREING_COUNT
  31. WHEN VALIDATION_FEATURE.CLASS = 'BOUNDARY_POINT' THEN VALIDATION_BATCH.BOUNDARY_POINT_COUNT
  32. WHEN VALIDATION_FEATURE.CLASS = 'BOUNDARY_SSA' THEN VALIDATION_BATCH.BOUNDARY_SSA_COUNT
  33. WHEN VALIDATION_FEATURE.CLASS = 'BUILDING' THEN VALIDATION_BATCH.BUILDING_COUNT
  34. WHEN VALIDATION_FEATURE.CLASS = 'BUILDING_GROUP' THEN VALIDATION_BATCH.BUILDING_GROUP_COUNT
  35. WHEN VALIDATION_FEATURE.CLASS = 'BUILDING_UNIT' THEN VALIDATION_BATCH.BUILDING_UNIT_COUNT
  36. WHEN VALIDATION_FEATURE.CLASS = 'DIVISION' THEN VALIDATION_BATCH.DIVISION_COUNT
  37. WHEN VALIDATION_FEATURE.CLASS = 'EXPOSED' THEN VALIDATION_BATCH.EXPOSED_COUNT
  38. WHEN VALIDATION_FEATURE.CLASS = 'LOCALE' THEN VALIDATION_BATCH.LOCALE_COUNT
  39. WHEN VALIDATION_FEATURE.CLASS = 'RAIL_NETWORK_SEGMENT' THEN VALIDATION_BATCH.RAIL_NETWORK_SEGMENT_COUNT
  40. WHEN VALIDATION_FEATURE.CLASS = 'RAIL_POINT' THEN VALIDATION_BATCH.RAIL_POINT_COUNT
  41. WHEN VALIDATION_FEATURE.CLASS = 'SERVICE_LINE' THEN VALIDATION_BATCH.SERVICE_LINE_COUNT
  42. WHEN VALIDATION_FEATURE.CLASS = 'SITE' THEN VALIDATION_BATCH.SITE_COUNT
  43. WHEN VALIDATION_FEATURE.CLASS = 'SITE_POINT' THEN VALIDATION_BATCH.SITE_POINT_COUNT
  44. WHEN VALIDATION_FEATURE.CLASS = 'STRUCTURE' THEN VALIDATION_BATCH.STRUCTURE_COUNT
  45. WHEN VALIDATION_FEATURE.CLASS = 'VEGETATION' THEN VALIDATION_BATCH.VEGETATION_COUNT
  46. WHEN VALIDATION_FEATURE.CLASS = 'WATER' THEN VALIDATION_BATCH.WATER_COUNT
  47. WHEN VALIDATION_FEATURE.CLASS = 'WATER_POINT' THEN VALIDATION_BATCH.WATER_POINT_COUNT
  48. WHEN VALIDATION_FEATURE.CLASS = 'WATER_SINGLE_STREAM' THEN VALIDATION_BATCH.WATER_SINGLE_STREAM_COUNT
  49. WHEN VALIDATION_FEATURE.CLASS = 'WAY' THEN VALIDATION_BATCH.WAY_COUNT
  50. WHEN VALIDATION_FEATURE.CLASS = 'WAY_GDF2' THEN VALIDATION_BATCH.WAY_GDF2_COUNT
  51. WHEN VALIDATION_FEATURE.CLASS = 'WAY_POINT' THEN VALIDATION_BATCH.WAY_POINT_COUNT
  52. END TOTAL_INSTANCES
  53. from VALIDATION_FEATURE
  54. inner join MAPPING on SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1) = MAPPING.METRIC
  55. INNER JOIN VALIDATION_BATCH
  56. ON VALIDATION_FEATURE.VALIDATION_BATCH_ID = VALIDATION_BATCH.ID
  57. GROUP BY MAPPING.CATEGORY,MAPPING.DIMENSION, VALIDATION_BATCH_ID, VALIDATION_FEATURE.CLASS, SUBSTR(VALIDATION_RULE, 0, INSTR(validation_rule, ' ') - 1), VALIDATION_BATCH.END_DATE,
  58. VALIDATION_BATCH.RULE_SET, VALIDATION_BATCH.ARTIFICIAL_COUNT, VALIDATION_BATCH.BLP_COUNT,
  59. VALIDATION_BATCH.BOUNDARY_AREA_COUNT, VALIDATION_BATCH.BOUNDARY_LINE_COUNT, VALIDATION_BATCH.BOUNDARY_MEREING_COUNT,
  60. VALIDATION_BATCH.BOUNDARY_POINT_COUNT, VALIDATION_BATCH.BOUNDARY_SSA_COUNT, VALIDATION_BATCH.BUILDING_COUNT,
  61. VALIDATION_BATCH.BUILDING_GROUP_COUNT, VALIDATION_BATCH.BUILDING_UNIT_COUNT, VALIDATION_BATCH.DIVISION_COUNT,
  62. VALIDATION_BATCH.EXPOSED_COUNT, VALIDATION_BATCH.LOCALE_COUNT, VALIDATION_BATCH.RAIL_NETWORK_SEGMENT_COUNT,
  63. VALIDATION_BATCH.RAIL_POINT_COUNT, VALIDATION_BATCH.SERVICE_LINE_COUNT, VALIDATION_BATCH.SITE_COUNT,
  64. VALIDATION_BATCH.SITE_POINT_COUNT, VALIDATION_BATCH.STRUCTURE_COUNT, VALIDATION_BATCH.VEGETATION_COUNT,
  65. VALIDATION_BATCH.WATER_COUNT, VALIDATION_BATCH.WATER_POINT_COUNT, VALIDATION_BATCH.WATER_SINGLE_STREAM_COUNT,
  66. VALIDATION_BATCH.WAY_COUNT, VALIDATION_BATCH.WAY_GDF2_COUNT, VALIDATION_BATCH.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. ] ;
  93. ] .
  94. <#Dimension-Instance>
  95. rr:logicalTable <#Observation-View> ;
  96. rr:subjectMap [
  97. rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
  98. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  99. ] ;
  100. rr:predicateObjectMap [
  101. rr:predicate rdf:type ;
  102. rr:objectMap [
  103. rr:template "http://data.example.com/dimension/{DIMENSION}"
  104. ] ;
  105. ] ;
  106. rr:predicateObjectMap [
  107. rr:predicateMap [
  108. rr:template "http://data.example.com/dimension/has{METRIC}metric";
  109. ] ;
  110. rr:objectMap [
  111. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  112. ] ;
  113. ] .
  114. <#Metric-Instance>
  115. rr:logicalTable <#Observation-View> ;
  116. rr:subjectMap [
  117. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  118. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  119. ] ;
  120. rr:predicateObjectMap [
  121. rr:predicate rdf:type ;
  122. rr:objectMap [
  123. rr:template "http://data.example.com/metric/{METRIC}"
  124. ] ;
  125. ] ;
  126. rr:predicateObjectMap [
  127. rr:predicate daq:Observation ;
  128. rr:objectMap [
  129. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}";
  130. ] ;
  131. ] .
  132. <#Observations>
  133. rr:logicalTable <#Observation-View> ;
  134. rr:subjectMap [
  135. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}";
  136. rr:class daq:Observation ;
  137. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  138. ] ;
  139. rr:predicateObjectMap [
  140. rr:predicate daq:isEstimate ;
  141. rr:objectMap [ rr:constant "false"^^xsd:boolean ];
  142. ] ;
  143. rr:predicateObjectMap [
  144. rr:predicate daq:metric ;
  145. rr:objectMap [
  146. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  147. ];
  148. ] ;
  149. rr:predicateObjectMap [
  150. rr:predicate daq:value ;
  151. rr:objectMap [
  152. rrf:functionCall [
  153. rrf:function <#CalculateValue> ;
  154. rrf:parameterBindings (
  155. [ rr:column "NUM_INSTANCES" ]
  156. [ rr:column "TOTAL_INSTANCES" ]
  157. ) ;
  158. ] ;
  159. ];
  160. ] ;
  161. rr:predicateObjectMap [
  162. rr:predicate sdmx-dimension:timePeriod ;
  163. rr:objectMap [
  164. rr:termType rr:Literal ;
  165. rr:template "{ASSESSMENT_DATE}";
  166. ];
  167. ] ;
  168. rr:predicateObjectMap [
  169. rr:predicate qb:dataSet ;
  170. rr:object <http://data.example.com/1spatialassessment/quality-graph/> ;
  171. ] ;
  172. rr:predicateObjectMap [
  173. rr:predicate daq:computedOn ;
  174. rr:objectMap [
  175. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}"
  176. ];
  177. ] ;
  178. rr:predicateObjectMap [
  179. rr:predicate daq:computedOn ;
  180. rr:objectMap [
  181. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}"
  182. ];
  183. ] ;
  184. rr:predicateObjectMap [
  185. rr:predicate prov:wasGeneratedBy ;
  186. rr:object <http://data.example.com/1spatialassessment/r2rmlconverter/>
  187. ] ;
  188. rr:predicateObjectMap [
  189. rr:predicate prov:generated ;
  190. rr:objectMap [
  191. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}-profiling"
  192. ]
  193. ] .
  194. # Do we need more profiling information?
  195. <#Profiling>
  196. rr:logicalTable <#Observation-View> ;
  197. rr:subjectMap [
  198. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}-profiling" ;
  199. rr:class daq:MetricProfile ;
  200. rr:graph <http://data.example.com/1spatialassessment/quality-graph>
  201. ] ;
  202. rr:predicateObjectMap [
  203. rr:predicate daq:totalDatasetTriplesAssessed ; # this might be changed if we create a small vocabulary for osi
  204. rr:objectMap [
  205. rr:column "TOTAL_INSTANCES"
  206. ]
  207. ] .
  208. <#CalculateValue>
  209. rrf:functionName "calculateValue" ;
  210. rrf:functionBody """
  211. function calculateValue(numInstances, totalInstances) {
  212. return 1 - (numInstances / totalInstances);
  213. } """ ;
  214. .