mapping.ttl 8.8 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 VALIDATION_BATCH_ID FROM VALIDATION_RULE
  13. """;
  14. rr:sqlVersion rr:Oracle .
  15. <#Observation-View>
  16. rr:sqlQuery """
  17. SELECT DISTINCT VALIDATION_RULE.CATEGORY, VALIDATION_RULE.DIMENSION as DIMENSION,
  18. VALIDATION_RULE.VALIDATION_BATCH_ID,
  19. VALIDATION_RULE.VALIDATION_BATCH,
  20. VALIDATION_RULE.TABLE_NAME,
  21. VALIDATION_RULE.ORA_ERROR || 'ERROR' as METRIC,
  22. VALIDATION_RULE.COUNT as NUM_INSTANCES,
  23. VALIDATION_RULE.VALIDATION_DATE as ASSESSMENT_DATE,
  24. VALIDATION_RULE.TABLE_NAME as COMPUTED_ON,
  25. CASE
  26. WHEN VALIDATION_RULE.TABLE_NAME = 'ARTIFICIAL' THEN VALIDATION_FEATURE.COUNT
  27. WHEN VALIDATION_RULE.TABLE_NAME = 'BLP' THEN VALIDATION_FEATURE.COUNT
  28. WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_AREA' THEN VALIDATION_FEATURE.COUNT
  29. WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_LINE' THEN VALIDATION_FEATURE.COUNT
  30. WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_MEREING' THEN VALIDATION_FEATURE.COUNT
  31. WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_POINT' THEN VALIDATION_FEATURE.COUNT
  32. WHEN VALIDATION_RULE.TABLE_NAME = 'BOUNDARY_SSA' THEN VALIDATION_FEATURE.COUNT
  33. WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING' THEN VALIDATION_FEATURE.COUNT
  34. WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING_GROUP' THEN VALIDATION_FEATURE.COUNT
  35. WHEN VALIDATION_RULE.TABLE_NAME = 'BUILDING_UNIT' THEN VALIDATION_FEATURE.COUNT
  36. WHEN VALIDATION_RULE.TABLE_NAME = 'DIVISION' THEN VALIDATION_FEATURE.COUNT
  37. WHEN VALIDATION_RULE.TABLE_NAME = 'EXPOSED' THEN VALIDATION_FEATURE.COUNT
  38. WHEN VALIDATION_RULE.TABLE_NAME = 'LOCALE' THEN VALIDATION_FEATURE.COUNT
  39. WHEN VALIDATION_RULE.TABLE_NAME = 'RAIL_NETWORK_SEGMENT' THEN VALIDATION_FEATURE.COUNT
  40. WHEN VALIDATION_RULE.TABLE_NAME = 'RAIL_POINT' THEN VALIDATION_FEATURE.COUNT
  41. WHEN VALIDATION_RULE.TABLE_NAME = 'SERVICE_LINE' THEN VALIDATION_FEATURE.COUNT
  42. WHEN VALIDATION_RULE.TABLE_NAME = 'SITE' THEN VALIDATION_FEATURE.COUNT
  43. WHEN VALIDATION_RULE.TABLE_NAME = 'SITE_POINT' THEN VALIDATION_FEATURE.COUNT
  44. WHEN VALIDATION_RULE.TABLE_NAME = 'STRUCTURE' THEN VALIDATION_FEATURE.COUNT
  45. WHEN VALIDATION_RULE.TABLE_NAME = 'VEGETATION' THEN VALIDATION_FEATURE.COUNT
  46. WHEN VALIDATION_RULE.TABLE_NAME = 'WATER' THEN VALIDATION_FEATURE.COUNT
  47. WHEN VALIDATION_RULE.TABLE_NAME = 'WATER_POINT' THEN VALIDATION_FEATURE.COUNT
  48. WHEN VALIDATION_RULE.TABLE_NAME = 'WATER_SINGLE_STREAM' THEN VALIDATION_FEATURE.COUNT
  49. WHEN VALIDATION_RULE.TABLE_NAME = 'WAY' THEN VALIDATION_FEATURE.COUNT
  50. WHEN VALIDATION_RULE.TABLE_NAME = 'WAY_GDF2' THEN VALIDATION_FEATURE.COUNT
  51. WHEN VALIDATION_RULE.TABLE_NAME = 'WAY_POINT' THEN VALIDATION_FEATURE.COUNT
  52. END TOTAL_INSTANCES
  53. from VALIDATION_FEATURE
  54. inner join VALIDATION_RULE on VALIDATION_RULE.TABLE_NAME = VALIDATION_FEATURE.TABLENAME
  55. INNER JOIN ORA_ERRORS on ORA_ERRORS.ERROR_ID=VALIDATION_RULE.ORA_ERROR
  56. """;
  57. rr:sqlVersion rr:Oracle .
  58. <#Graph-Instance>
  59. rr:logicalTable <#Less-Expensive-Query> ;
  60. rr:subjectMap [
  61. rr:constant <http://data.example.com/1spatialassessment/quality-graph/> ;
  62. rr:class daq:QualityGraph
  63. ] ;
  64. rr:predicateObjectMap [
  65. rr:predicate qb:structure ;
  66. rr:object daq:dsd
  67. ] .
  68. <#Category-Instance>
  69. rr:logicalTable <#Observation-View> ;
  70. rr:subjectMap [
  71. rr:template "http://data.example.com/1spatialassessment/category/{CATEGORY}-instance" ;
  72. rr:class <http://data.example.com/category/Oracle> ;
  73. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  74. ] ;
  75. rr:predicateObjectMap [
  76. rr:predicateMap [
  77. rr:template "http://data.example.com/dimension/has{DIMENSION}Dimension";
  78. ] ;
  79. rr:objectMap [
  80. rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
  81. rr:termType rr:IRI;
  82. ] ;
  83. ] .
  84. <#Dimension-Instance>
  85. rr:logicalTable <#Observation-View> ;
  86. rr:subjectMap [
  87. rr:template "http://data.example.com/1spatialassessment/dimension/{DIMENSION}-instance" ;
  88. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  89. ] ;
  90. rr:predicateObjectMap [
  91. rr:predicate rdf:type ;
  92. rr:objectMap [
  93. rr:template "http://data.example.com/dimension/{DIMENSION}";
  94. rr:termType rr:IRI;
  95. ] ;
  96. ] ;
  97. rr:predicateObjectMap [
  98. rr:predicateMap [
  99. rr:template "http://data.example.com/dimension/has{METRIC}metric";
  100. ] ;
  101. rr:objectMap [
  102. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  103. rr:termType rr:IRI;
  104. ] ;
  105. ] .
  106. <#Metric-Instance>
  107. rr:logicalTable <#Observation-View> ;
  108. rr:subjectMap [
  109. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  110. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  111. ] ;
  112. rr:predicateObjectMap [
  113. rr:predicate rdf:type ;
  114. rr:objectMap [
  115. rr:template "http://data.example.com/metric/{METRIC}";
  116. rr:termType rr:IRI;
  117. ] ;
  118. ] ;
  119. rr:predicateObjectMap [
  120. rr:predicate daq:Observation ;
  121. rr:objectMap [
  122. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}--{VALIDATION_BATCH}";
  123. rr:termType rr:IRI;
  124. ] ;
  125. ] .
  126. <#Observations>
  127. rr:logicalTable <#Observation-View> ;
  128. rr:subjectMap [
  129. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH}";
  130. rr:class daq:Observation ;
  131. rr:graph <http://data.example.com/1spatialassessment/quality-graph> ;
  132. ] ;
  133. rr:predicateObjectMap [
  134. rr:predicate daq:isEstimate ;
  135. rr:objectMap [ rr:constant "false";
  136. rr:datatype xsd:boolean;
  137. ];
  138. ] ;
  139. rr:predicateObjectMap [
  140. rr:predicate daq:metric ;
  141. rr:objectMap [
  142. rr:template "http://data.example.com/1spatialassessment/metric/{METRIC}-instance" ;
  143. rr:termType rr:IRI;
  144. ];
  145. ] ;
  146. rr:predicateObjectMap [
  147. rr:predicate daq:value ;
  148. rr:objectMap [
  149. rrf:functionCall [
  150. rrf:function <#CalculateValue> ;
  151. rrf:parameterBindings (
  152. [ rr:column "NUM_INSTANCES" ]
  153. [ rr:column "TOTAL_INSTANCES" ]
  154. ) ;
  155. ] ;
  156. ];
  157. ] ;
  158. rr:predicateObjectMap [
  159. rr:predicate sdmx-dimension:timePeriod ;
  160. rr:objectMap [
  161. rr:termType rr:Literal ;
  162. rr:template "{ASSESSMENT_DATE}";
  163. ];
  164. ] ;
  165. rr:predicateObjectMap [
  166. rr:predicate qb:dataSet ;
  167. rr:object <http://data.example.com/1spatialassessment/quality-graph/> ;
  168. ] ;
  169. rr:predicateObjectMap [
  170. rr:predicate daq:computedOn ;
  171. rr:objectMap [
  172. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}";
  173. rr:termType rr:IRI;
  174. ];
  175. ] ;
  176. rr:predicateObjectMap [
  177. rr:predicate daq:computedOn ;
  178. rr:objectMap [
  179. rr:template "http://ontologies.adaptcentre.ie/dataset-hierarchy#{COMPUTED_ON}" ;
  180. rr:termType rr:IRI;
  181. ];
  182. ] ;
  183. rr:predicateObjectMap [
  184. rr:predicate prov:wasGeneratedBy ;
  185. rr:object <http://data.example.com/1spatialassessment/r2rmlconverter/>
  186. ] ;
  187. rr:predicateObjectMap [
  188. rr:predicate prov:generated ;
  189. rr:objectMap [
  190. rr:template "http://data.example.com/1spatialassessment/observation/{METRIC}-{VALIDATION_BATCH_ID}-profiling";
  191. rr:termType rr:IRI;
  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}-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. .