adiwg-mdtranslator 0.12.1 → 1.0.0rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.gitmodules +3 -3
  4. data/Rakefile +1 -1
  5. data/adiwg-mdtranslator.gemspec +3 -3
  6. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +5 -1
  7. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +2 -2
  8. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_entity.rb +9 -0
  9. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_entityAttribute.rb +9 -0
  10. data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_mdJson.rb +7 -2
  11. data/lib/adiwg/mdtranslator/readers/mdJson/readme.md +2 -2
  12. data/lib/adiwg/mdtranslator/version.rb +5 -1
  13. data/lib/adiwg/mdtranslator/writers/html/html_writer.rb +43 -0
  14. data/lib/adiwg/mdtranslator/writers/html/md_html_writer.rb +25 -0
  15. data/lib/adiwg/mdtranslator/writers/html/readme.md +10 -0
  16. data/lib/adiwg/mdtranslator/writers/iso/classes/class_aggregateInformation.rb +3 -3
  17. data/lib/adiwg/mdtranslator/writers/iso/classes/class_boundingPolygon.rb +4 -4
  18. data/lib/adiwg/mdtranslator/writers/iso/classes/class_citation.rb +4 -4
  19. data/lib/adiwg/mdtranslator/writers/iso/classes/class_contact.rb +3 -3
  20. data/lib/adiwg/mdtranslator/writers/iso/classes/class_dataIdentification.rb +17 -17
  21. data/lib/adiwg/mdtranslator/writers/iso/classes/class_dataQuality.rb +2 -2
  22. data/lib/adiwg/mdtranslator/writers/iso/classes/class_date.rb +1 -1
  23. data/lib/adiwg/mdtranslator/writers/iso/classes/class_digitalTransferOptions.rb +2 -2
  24. data/lib/adiwg/mdtranslator/writers/iso/classes/class_distribution.rb +1 -1
  25. data/lib/adiwg/mdtranslator/writers/iso/classes/class_distributor.rb +4 -4
  26. data/lib/adiwg/mdtranslator/writers/iso/classes/class_extent.rb +4 -4
  27. data/lib/adiwg/mdtranslator/writers/iso/classes/class_featureAttribute.rb +3 -3
  28. data/lib/adiwg/mdtranslator/writers/iso/classes/class_featureType.rb +11 -2
  29. data/lib/adiwg/mdtranslator/writers/iso/classes/class_genericMetaData.rb +2 -2
  30. data/lib/adiwg/mdtranslator/writers/iso/classes/class_geographicDescription.rb +1 -1
  31. data/lib/adiwg/mdtranslator/writers/iso/classes/class_geographicElement.rb +2 -2
  32. data/lib/adiwg/mdtranslator/writers/iso/classes/class_identifier.rb +1 -1
  33. data/lib/adiwg/mdtranslator/writers/iso/classes/class_keyword.rb +2 -2
  34. data/lib/adiwg/mdtranslator/writers/iso/classes/class_legalConstraints.rb +1 -1
  35. data/lib/adiwg/mdtranslator/writers/iso/classes/class_lineage.rb +2 -2
  36. data/lib/adiwg/mdtranslator/writers/iso/classes/class_maintenanceInformation.rb +2 -2
  37. data/lib/adiwg/mdtranslator/writers/iso/classes/class_medium.rb +2 -2
  38. data/lib/adiwg/mdtranslator/writers/iso/classes/class_metadataExtension.rb +4 -4
  39. data/lib/adiwg/mdtranslator/writers/iso/classes/class_multiGeometry.rb +3 -3
  40. data/lib/adiwg/mdtranslator/writers/iso/classes/class_onlineResource.rb +1 -1
  41. data/lib/adiwg/mdtranslator/writers/iso/classes/class_processStep.rb +1 -1
  42. data/lib/adiwg/mdtranslator/writers/iso/classes/class_referenceSystem.rb +1 -1
  43. data/lib/adiwg/mdtranslator/writers/iso/classes/class_responsibleParty.rb +2 -2
  44. data/lib/adiwg/mdtranslator/writers/iso/classes/class_securityConstraints.rb +1 -1
  45. data/lib/adiwg/mdtranslator/writers/iso/classes/class_source.rb +2 -2
  46. data/lib/adiwg/mdtranslator/writers/iso/classes/class_taxonSystem.rb +4 -4
  47. data/lib/adiwg/mdtranslator/writers/iso/classes/class_temporalExtent.rb +2 -2
  48. data/lib/adiwg/mdtranslator/writers/iso/classes/class_usage.rb +1 -1
  49. data/lib/adiwg/mdtranslator/writers/iso/classes/class_vouchers.rb +1 -1
  50. data/lib/adiwg/mdtranslator/writers/iso19110/class_FCfeatureCatalogue.rb +159 -147
  51. data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +17 -23
  52. data/lib/adiwg/mdtranslator/writers/iso19115_2/class_MImetadata.rb +11 -10
  53. data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +97 -103
  54. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +1 -11
  55. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_additionalDocumentation.rb +4 -4
  56. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_address.rb +3 -3
  57. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_associatedResource.rb +4 -4
  58. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_browseGraphic.rb +3 -3
  59. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_citation.rb +4 -4
  60. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_contact.rb +4 -4
  61. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_dictionaryInfo.rb +4 -4
  62. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_domain.rb +4 -4
  63. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_onlineResource.rb +3 -3
  64. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_phone.rb +3 -3
  65. data/test/readers/mdJson/{v0_9 → v1_0}/tc_reader_mdjson_responsibleParty.rb +3 -3
  66. data/test/readers/mdJson/{v0_9 → v1_0}/tc_translation.rb +4 -4
  67. data/test/schemas/v1_0/.gitignore +18 -0
  68. data/test/schemas/v1_0/.travis.yml +7 -0
  69. data/test/schemas/v1_0/CREDITS +3 -0
  70. data/test/schemas/v1_0/Gemfile +4 -0
  71. data/test/schemas/v1_0/LICENSE +24 -0
  72. data/test/schemas/v1_0/README.md +36 -0
  73. data/test/schemas/v1_0/Rakefile +12 -0
  74. data/test/schemas/v1_0/adiwg-json_schemas.gemspec +25 -0
  75. data/test/schemas/v1_0/examples/additionalDocumentation.json +61 -0
  76. data/test/schemas/v1_0/examples/address.json +10 -0
  77. data/test/schemas/v1_0/examples/associatedResource.json +119 -0
  78. data/test/schemas/v1_0/examples/citation.json +128 -0
  79. data/test/schemas/v1_0/examples/contact.json +205 -0
  80. data/test/schemas/v1_0/examples/contactRef.json +12 -0
  81. data/test/schemas/v1_0/examples/dataDictionary.json +547 -0
  82. data/test/schemas/v1_0/examples/dataQuality.json +272 -0
  83. data/test/schemas/v1_0/examples/date.json +19 -0
  84. data/test/schemas/v1_0/examples/distributor.json +113 -0
  85. data/test/schemas/v1_0/examples/extent_linestring.json +288 -0
  86. data/test/schemas/v1_0/examples/extent_point.json +246 -0
  87. data/test/schemas/v1_0/examples/extent_polygon.json +353 -0
  88. data/test/schemas/v1_0/examples/format.json +14 -0
  89. data/test/schemas/v1_0/examples/full_example.json +2844 -0
  90. data/test/schemas/v1_0/examples/full_example2.json +2325 -0
  91. data/test/schemas/v1_0/examples/geojson.json +446 -0
  92. data/test/schemas/v1_0/examples/graphicOverview.json +28 -0
  93. data/test/schemas/v1_0/examples/hierarchyLevel.json +90 -0
  94. data/test/schemas/v1_0/examples/keywords.json +144 -0
  95. data/test/schemas/v1_0/examples/lcc_project_example.json +326 -0
  96. data/test/schemas/v1_0/examples/legalConstraints.json +17 -0
  97. data/test/schemas/v1_0/examples/maintInfo.json +34 -0
  98. data/test/schemas/v1_0/examples/metadataInfo.json +103 -0
  99. data/test/schemas/v1_0/examples/minimum_example.json +35 -0
  100. data/test/schemas/v1_0/examples/onlineResource.json +17 -0
  101. data/test/schemas/v1_0/examples/resolution.json +9 -0
  102. data/test/schemas/v1_0/examples/resourceInfo.json +1264 -0
  103. data/test/schemas/v1_0/examples/resourceMaintenance.json +10 -0
  104. data/test/schemas/v1_0/examples/securityConstraints.json +13 -0
  105. data/test/schemas/v1_0/examples/spatialRef.json +14 -0
  106. data/test/schemas/v1_0/examples/taxonomy.json +197 -0
  107. data/test/schemas/v1_0/examples/temporalElement.json +29 -0
  108. data/test/schemas/v1_0/examples/uri.json +16 -0
  109. data/test/schemas/v1_0/examples/usage.json +35 -0
  110. data/test/schemas/v1_0/examples/verticalExtent.json +18 -0
  111. data/test/schemas/v1_0/lib/adiwg/mdjson_schemas/utils.rb +20 -0
  112. data/test/schemas/v1_0/lib/adiwg/mdjson_schemas/validator.rb +42 -0
  113. data/test/schemas/v1_0/lib/adiwg/mdjson_schemas/version.rb +6 -0
  114. data/test/schemas/v1_0/lib/adiwg/mdjson_schemas.rb +7 -0
  115. data/test/schemas/v1_0/lib/adiwg-mdjson_schemas.rb +1 -0
  116. data/test/schemas/v1_0/schema/schema/citation.json +186 -0
  117. data/test/schemas/v1_0/schema/schema/contact.json +255 -0
  118. data/test/schemas/v1_0/schema/schema/dataDictionary.json +209 -0
  119. data/test/schemas/v1_0/schema/schema/dataQuality.json +159 -0
  120. data/test/schemas/v1_0/schema/schema/distributor.json +171 -0
  121. data/test/schemas/v1_0/schema/schema/extent.json +214 -0
  122. data/test/schemas/v1_0/schema/schema/geojson/bbox.json +14 -0
  123. data/test/schemas/v1_0/schema/schema/geojson/crs.json +99 -0
  124. data/test/schemas/v1_0/schema/schema/geojson/geojson.json +194 -0
  125. data/test/schemas/v1_0/schema/schema/geojson/geometry.json +203 -0
  126. data/test/schemas/v1_0/schema/schema/graphicOverview.json +42 -0
  127. data/test/schemas/v1_0/schema/schema/keyword.json +39 -0
  128. data/test/schemas/v1_0/schema/schema/maintInfo.json +43 -0
  129. data/test/schemas/v1_0/schema/schema/metadata.json +173 -0
  130. data/test/schemas/v1_0/schema/schema/onlineResource.json +42 -0
  131. data/test/schemas/v1_0/schema/schema/resolution.json +51 -0
  132. data/test/schemas/v1_0/schema/schema/resourceConstraint.json +108 -0
  133. data/test/schemas/v1_0/schema/schema/resourceInfo.json +305 -0
  134. data/test/schemas/v1_0/schema/schema/taxonomy.json +122 -0
  135. data/test/schemas/v1_0/schema/schema/usage.json +39 -0
  136. data/test/schemas/v1_0/schema/schema.json +64 -0
  137. data/test/schemas/v1_0/templates/mdJson_template.json +1065 -0
  138. data/test/schemas/v1_0/test/draft-04.json +189 -0
  139. data/test/schemas/v1_0/test/tc_schemas.rb +210 -0
  140. data/test/schemas/v1_0/test/tc_utils.rb +27 -0
  141. metadata +241 -90
  142. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_additionalDocumentation.rb +0 -0
  143. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_address.rb +0 -0
  144. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_associatedResource.rb +0 -0
  145. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_boundingBox.rb +0 -0
  146. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_browseGraphic.rb +0 -0
  147. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_citation.rb +0 -0
  148. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_contacts.rb +0 -0
  149. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_coordinates.rb +0 -0
  150. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_dataDictionary.rb +0 -0
  151. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_dataQuality.rb +0 -0
  152. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_dateTime.rb +0 -0
  153. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_descriptiveKeyword.rb +0 -0
  154. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_dictionaryInfo.rb +0 -0
  155. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_distributionInfo.rb +0 -0
  156. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_domain.rb +0 -0
  157. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_domainItem.rb +0 -0
  158. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_entityForeignKey.rb +0 -0
  159. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_entityIndex.rb +0 -0
  160. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_extent.rb +0 -0
  161. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_geoCoordSystem.rb +0 -0
  162. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_geoProperties.rb +0 -0
  163. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_geographicElement.rb +0 -0
  164. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_legalConstraint.rb +0 -0
  165. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_lineString.rb +0 -0
  166. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_lineage.rb +0 -0
  167. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_metadata.rb +0 -0
  168. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_metadataExtension.rb +0 -0
  169. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_metadataInfo.rb +0 -0
  170. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_onlineResource.rb +0 -0
  171. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_phone.rb +0 -0
  172. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_point.rb +0 -0
  173. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_polygon.rb +0 -0
  174. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_processStep.rb +0 -0
  175. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resolution.rb +0 -0
  176. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resourceFormat.rb +0 -0
  177. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resourceIdentifier.rb +0 -0
  178. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resourceInfo.rb +0 -0
  179. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resourceMaintenance.rb +0 -0
  180. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_resourceSpecificUsage.rb +0 -0
  181. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_responsibleParty.rb +0 -0
  182. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_securityConstraint.rb +0 -0
  183. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_source.rb +0 -0
  184. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_spatialReference.rb +0 -0
  185. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_taxonClass.rb +0 -0
  186. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_taxonomy.rb +0 -0
  187. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_temporalElement.rb +0 -0
  188. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_timeInstant.rb +0 -0
  189. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_timePeriod.rb +0 -0
  190. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_verticalElement.rb +0 -0
  191. /data/lib/adiwg/mdtranslator/readers/mdJson/{modules_0.9 → modules_1.0}/module_voucher.rb +0 -0
@@ -0,0 +1,255 @@
1
+ {
2
+ "id": "contact.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "description": "An array of contacts to be referenced throughout the metadata. Any contact used in the metadata record must be stored within this array and referenced by contactId. Items in array may be used 0-n times throughout the record.",
5
+ "translation": {
6
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
7
+ "FGDC CSDGM": ["[single member of array] = cntinfo"]
8
+ },
9
+ "example": "../../examples/full_example.json#/contact",
10
+ "type": "array",
11
+ "minItems": 1,
12
+ "uniqueItems": true,
13
+ "items": {
14
+ "anyOf": [
15
+ {
16
+ "$ref": "#/definitions/individual"
17
+ }, {
18
+ "$ref": "#/definitions/organization"
19
+ }
20
+ ]
21
+ },
22
+ "definitions": {
23
+ "phone": {
24
+ "type": "object",
25
+ "example": "../../examples/full_example.json#/contact/1/phoneBook",
26
+ "required": ["phoneNumber"],
27
+ "properties": {
28
+ "phoneName": {
29
+ "type": "string",
30
+ "description": "Descriptive name of the phone number."
31
+ },
32
+ "phoneNumber": {
33
+ "type": "string",
34
+ "description": "Telephone number. Recommended format is to use 'x' or 'ext' to denote extensions.",
35
+ "translation": {
36
+ "ISO 19115-2": ["CI_Telephone > voice | facsimile"],
37
+ "FGDC CSDGM": ["cntinfo > cntvoice"]
38
+ },
39
+ "pattern": "^[0-9+()#. \/ext-]+$"
40
+ },
41
+ "service": {
42
+ "type": "array",
43
+ "description": "Type(s) of phone number, e.g. voice, sms."
44
+ ,
45
+ "items": {
46
+ "type": "string"
47
+ },
48
+ "uniqueItems": true
49
+ }
50
+ },
51
+ "additionalProperties": false
52
+ },
53
+ "address": {
54
+ "type": "object",
55
+ "example": "../../examples/full_example.json#/contact/1/address",
56
+ "description": "Physical and email address at which the organization or individual may be contacted.",
57
+ "translation": {
58
+ "ISO 19115-2": ["CI_ResponsibleParty > contactInfo > CI_Contact > address > CI_Address"],
59
+ "FGDC CSDGM": ["cntinfo > cntaddr"]
60
+ },
61
+ "properties": {
62
+ "deliveryPoint": {
63
+ "type": "array",
64
+ "description": "Address line for the location.",
65
+ "translation": {
66
+ "ISO 19115-2": ["CI_Address > deliveryPoint"],
67
+ "FGDC CSDGM": ["cntinfo > cntaddr > address"]
68
+ },
69
+ "items": {
70
+ "type": "string"
71
+ },
72
+ "uniqueItems": true
73
+ },
74
+ "city": {
75
+ "type": "string",
76
+ "description": "City of the location.",
77
+ "translation": {
78
+ "ISO 19115-2": ["CI_Address > city"],
79
+ "FGDC CSDGM": ["cntinfo > cntaddr > city"]
80
+ }
81
+ },
82
+ "administrativeArea": {
83
+ "type": "string",
84
+ "description": "State, province of the location.",
85
+ "translation": {
86
+ "ISO 19115-2": ["CI_Address > administrativeArea"],
87
+ "FGDC CSDGM": ["cntinfo > cntaddr > state"]
88
+ }
89
+ },
90
+ "postalCode": {
91
+ "type": "string",
92
+ "description": "ZIP or other postal code.",
93
+ "translation": {
94
+ "ISO 19115-2": ["CI_Address > postalCode"],
95
+ "FGDC CSDGM": ["cntinfo > cntaddr > postal"]
96
+ }
97
+ },
98
+ "country": {
99
+ "type": "string",
100
+ "description": "ZIP or other postal code.",
101
+ "translation": {
102
+ "ISO 19115-2": ["CI_Address > postalCode"],
103
+ "FGDC CSDGM": ["cntinfo > cntaddr > postal"]
104
+ }
105
+ },
106
+ "electronicMailAddress": {
107
+ "type": "array",
108
+ "description": "E-mail or electronic mailbox address.",
109
+ "translation": {
110
+ "ISO 19115-2": ["CI_Address > electronicMailAddress"],
111
+ "FGDC CSDGM": ["cntinfo > cntemail"]
112
+ },
113
+ "items": {
114
+ "type": "string",
115
+ "pattern": "^.+@.+\\..+$"
116
+ },
117
+ "uniqueItems": true
118
+ }
119
+ },
120
+ "additionalProperties": false
121
+ },
122
+ "baseContact": {
123
+ "type": "object",
124
+ "title": "base contact",
125
+ "description": "Basic information for a contact.",
126
+ "required": ["contactId"],
127
+ "additionalProperties": true,
128
+ "properties": {
129
+ "contactId": {
130
+ "type": "string",
131
+ "example": "../../examples/full_example.json#/contact/1"
132
+ },
133
+ "positionName": {
134
+ "type": "string",
135
+ "example": "../../examples/full_example.json#/contact/1",
136
+ "description": "Role or position of the person, usually within a given organization.",
137
+ "translation": {
138
+ "ISO 19115-2": ["CI_ResponsibleParty > positionName"],
139
+ "FGDC CSDGM": ["cntinfo > cntpos"]
140
+ }
141
+ },
142
+ "address": {
143
+ "$ref": "#/definitions/address"
144
+ },
145
+ "onlineResource": {
146
+ "type": "array",
147
+ "description": "Information about accessing on-line resources and services. This may be a website, profile page, GitHub page, etc. related to the contact.",
148
+ "example": "../../examples/full_example.json#/contact/1",
149
+ "translation": {
150
+ "ISO 19115-2": ["CI_ResponsibleParty > contactInfo > CI_Contact > onlineResource > CI_OnlineResource"]
151
+ },
152
+ "items": {
153
+ "$ref": "onlineResource.json#"
154
+ },
155
+ "uniqueItems": true
156
+ },
157
+ "contactInstructions": {
158
+ "type": "string",
159
+ "description": "Supplemental instructions on how or when to contact the individual or organization.",
160
+ "example": "../../examples/full_example.json#/contact/1",
161
+ "translation": {
162
+ "ISO 19115-2": ["CI_Contact > contactInstructions"],
163
+ "FGDC CSDGM": ["cntinfo > cntinst"]
164
+ }
165
+ },
166
+ "phoneBook": {
167
+ "type": "array",
168
+ "description": "Supplemental instructions on how or when to contact the individual or organization.",
169
+ "example": "../../examples/full_example.json#/contact/1",
170
+ "translation": {
171
+ "ISO 19115-2": ["CI_Contact > contactInstructions"],
172
+ "FGDC CSDGM": ["cntinfo > cntinst"]
173
+ },
174
+ "items": {
175
+ "$ref": "#/definitions/phone"
176
+ }
177
+ }
178
+ }
179
+ },
180
+ "individual": {
181
+ "type": "object",
182
+ "title": "individual",
183
+ "example": "../../examples/full_example.json#/contact/1",
184
+ "description": "Contact information for a person.",
185
+ "translation": {
186
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
187
+ "FGDC CSDGM": ["cntinfo > cntperp"]
188
+ },
189
+ "required": ["individualName"],
190
+ "additionalProperties": true,
191
+ "properties": {
192
+ "individualName": {
193
+ "type": "string",
194
+ "description": "Name of the person - surname, given name, title separated by a delimiter.",
195
+ "example": "../../examples/full_example.json#/contact/1",
196
+ "translation": {
197
+ "ISO 19115-2": ["CI_ResponsibleParty > individualName"],
198
+ "FGDC CSDGM": ["cntinfo > cntperp > cntper"]
199
+ }
200
+ }
201
+ },
202
+ "allOf": [
203
+ {
204
+ "$ref": "#/definitions/baseContact"
205
+ }
206
+ ]
207
+ },
208
+ "organization": {
209
+ "type": "object",
210
+ "title": "organization",
211
+ "example": "../../examples/full_example.json#/contact/0",
212
+ "translation": {
213
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
214
+ "FGDC CSDGM": ["cntinfo > cntorgp"]
215
+ },
216
+ "required": ["organizationName"],
217
+ "additionalProperties": true,
218
+ "properties": {
219
+ "organizationName": {
220
+ "type": "string",
221
+ "description": "Name of the organization.",
222
+ "translation": {
223
+ "ISO 19115-2": ["CI_ResponsibleParty > organisationName"],
224
+ "FGDC CSDGM": ["cntinfo > cntperp > cntorg"]
225
+ }
226
+ }
227
+ },
228
+ "allOf": [
229
+ {
230
+ "$ref": "#/definitions/baseContact"
231
+ }
232
+ ]
233
+ },
234
+ "contactRef": {
235
+ "type": "object",
236
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/responsibleParty",
237
+ "additionalProperties": true,
238
+ "required": ["contactId", "role"],
239
+ "properties": {
240
+ "contactId": {
241
+ "type": "string",
242
+ "description": "Identifier matching a contactId in the main contact array."
243
+ },
244
+ "role": {
245
+ "type": "string",
246
+ "description": "Function performed by the contact in the current context.",
247
+ "translation": {
248
+ "ISO 19115-2": ["MI_Metadata > Contact > CI_Contact > role [CI_RoleCode]"],
249
+ "FGDC CSDGM": ["metainfo > cntinfo > cntpos"]
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "id": "dataDictionary.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "type": "object",
5
+ "description": "A catalogue containing definitions and descriptions of the resource types, resource attributes, and resource associations.",
6
+ "example": "../../examples/full_example.json#/dataDictionary/0",
7
+ "required": ["dictionaryInfo"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "dictionaryInfo": {
11
+ "type": "object",
12
+ "description": "Information describing the dictionary and its source.",
13
+ "example": "../../examples/full_example.json#/dataDictionary/0/dictionaryInfo",
14
+ "required": ["resourceType", "citation", "description"],
15
+ "additionalProperties": false,
16
+ "properties": {
17
+ "citation": {
18
+ "description": "Citation for the dictionary.",
19
+ "example": "../../examples/full_example.json#/dataDictionary/0/dictionaryInfo",
20
+ "$ref": "citation.json#/definitions/dictionary"
21
+ },
22
+ "resourceType": {
23
+ "type": "string",
24
+ "description": "The type of resource described by the dictionary."
25
+ },
26
+ "description": {
27
+ "type": "string",
28
+ "description": "Description of the dictionary."
29
+ },
30
+ "language": {
31
+ "type": "string",
32
+ "description": "Language used within the dictionary. Should be a valid ISO 639-3 code."
33
+ }
34
+ }
35
+ },
36
+ "domain": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "description": "Information describing an enumerated list of values.",
41
+ "example": "../../examples/full_example.json#/dataDictionary/0/domain/0",
42
+ "required": ["domainId", "codeName", "description", "member"],
43
+ "additionalProperties": false,
44
+ "properties": {
45
+ "domainId": {
46
+ "type": "string"
47
+ },
48
+ "commonName": {
49
+ "type": "string"
50
+ },
51
+ "codeName": {
52
+ "type": "string"
53
+ },
54
+ "description": {
55
+ "type": "string"
56
+ },
57
+ "member": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "object",
61
+ "example": "../../examples/full_example.json#/dataDictionary/0/domain/0/member",
62
+ "required": ["name", "value", "definition"],
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "name": {
66
+ "type": "string"
67
+ },
68
+ "value": {
69
+ "type": "string"
70
+ },
71
+ "definition": {
72
+ "type": "string"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "entity": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "object",
84
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1",
85
+ "required": ["entityId", "codeName", "definition"],
86
+ "additionalProperties": false,
87
+ "properties": {
88
+ "entityId": {
89
+ "type": "string"
90
+ },
91
+ "commonName": {
92
+ "type": "string"
93
+ },
94
+ "codeName": {
95
+ "type": "string"
96
+ },
97
+ "alias": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ }
102
+ },
103
+ "definition": {
104
+ "type": "string"
105
+ },
106
+ "primaryKeyAttributeCodeName": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "index": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object",
116
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/index",
117
+ "required": ["codeName", "allowDuplicates", "attributeCodeName"],
118
+ "additionalProperties": false,
119
+ "properties": {
120
+ "codeName": {
121
+ "type": "string"
122
+ },
123
+ "allowDuplicates": {
124
+ "type": "boolean"
125
+ },
126
+ "attributeCodeName": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string"
130
+ }
131
+ }
132
+ }
133
+ }
134
+ },
135
+ "attribute": {
136
+ "type": "array",
137
+ "items": {
138
+ "type": "object",
139
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/attribute",
140
+ "required": ["codeName", "dataType", "definition", "allowNull"],
141
+ "additionalProperties": false,
142
+ "properties": {
143
+ "commonName": {
144
+ "type": "string"
145
+ },
146
+ "codeName": {
147
+ "type": "string"
148
+ },
149
+ "alias": {
150
+ "type": "array",
151
+ "items": {
152
+ "type": "string"
153
+ }
154
+ },
155
+ "definition": {
156
+ "type": "string"
157
+ },
158
+ "dataType": {
159
+ "type": "string"
160
+ },
161
+ "allowNull": {
162
+ "type": "boolean"
163
+ },
164
+ "units": {
165
+ "type": "string"
166
+ },
167
+ "domainId": {
168
+ "type": "string"
169
+ },
170
+ "minValue": {
171
+ "type": "string"
172
+ },
173
+ "maxValue": {
174
+ "type": "string"
175
+ }
176
+ }
177
+ }
178
+ },
179
+ "foreignKey": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "object",
183
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/foreignKey",
184
+ "required": ["localAttributeCodeName", "referencedEntityCodeName", "referencedAttributeCodeName"],
185
+ "additionalProperties": false,
186
+ "properties": {
187
+ "localAttributeCodeName": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "string"
191
+ }
192
+ },
193
+ "referencedEntityCodeName": {
194
+ "type": "string"
195
+ },
196
+ "referencedAttributeCodeName": {
197
+ "type": "array",
198
+ "items": {
199
+ "type": "string"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "id": "dataQuality.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "type": "object",
5
+ "description": "Information about the quality of the resource.",
6
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/dataQualityInfo",
7
+ "translation": {
8
+ "ISO 19115-2": ["DQ_DataQuality"],
9
+ "FGDC CSDGM": ["dataqual"]
10
+ },
11
+ "required": ["scope"],
12
+ "additionalProperties": false,
13
+ "properties": {
14
+ "scope": {
15
+ "type": "string",
16
+ "description": "The scope to which the data quality information is applied, for instance; dataset, attribute, feature, series, etc.",
17
+ "translation": {
18
+ "ISO 19115-2": ["DQ_DataQuality > scope > DQ_Scope > level > MD_ScopeCode"]
19
+ }
20
+ },
21
+ "lineage": {
22
+ "translation": {
23
+ "ISO 19115-2": ["DQ_DataQuality > lineage > LI_Lineage"],
24
+ "FGDC CSDGM": ["dataqual > lineage"]
25
+ },
26
+ "$ref": "#/definitions/lineage"
27
+ }
28
+ },
29
+ "definitions": {
30
+ "lineage": {
31
+ "type": "object",
32
+ "description": "Non-quantitative quality information about the lineage of the resource as specified by the scope.",
33
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/dataQualityInfo/0/lineage",
34
+ "translation": {
35
+ "ISO 19115-2": ["LI_Lineage"]
36
+ },
37
+ "additionalProperties": false,
38
+ "properties": {
39
+ "statement": {
40
+ "type": "string",
41
+ "description": "General explanation of the data producer's knowledge about the lineage of a dataset.",
42
+ "translation": {
43
+ "ISO 19115-2": ["LI_Lineage > statement"]
44
+ }
45
+ },
46
+ "processStep": {
47
+ "type": "array",
48
+ "description": "Process or methodology steps applied to development of the resource.",
49
+ "translation": {
50
+ "ISO 19115-2": ["LI_Lineage > processStep > LI_ProcessStep"]
51
+ },
52
+ "items": {
53
+ "$ref": "#/definitions/processStep"
54
+ }
55
+ },
56
+ "source": {
57
+ "type": "array",
58
+ "description": "Information about the source of the resource relative to the data quality scope.",
59
+ "translation": {
60
+ "ISO 19115-2": ["LI_Lineage > source > LI_Source"],
61
+ "FGDC CSDGM": ["dataqual > lineage > srcinfo"]
62
+ },
63
+ "items": {
64
+ "$ref": "#/definitions/source"
65
+ }
66
+ }
67
+ }
68
+ },
69
+ "processStep": {
70
+ "type": "object",
71
+ "description": "Process or methodology steps applied to development of the resource.",
72
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/dataQualityInfo/0/lineage/processStep",
73
+ "translation": {
74
+ "ISO 19115-2": ["LI_ProcessStep"]
75
+ },
76
+ "required": ["description"],
77
+ "additionalProperties": false,
78
+ "properties": {
79
+ "stepId": {
80
+ "type": "string",
81
+ "description": "Serial identifier used to order the sequence of steps used.",
82
+ "translation": {
83
+ "ISO 19115-2": ["LI_ProcessStep @ id"]
84
+ }
85
+ },
86
+ "description": {
87
+ "type": "string",
88
+ "description": "Description of the process or methodology step.",
89
+ "translation": {
90
+ "ISO 19115-2": ["LI_ProcessStep > description"],
91
+ "FGDC CSDGM": ["dataqual > lineage > procstep > procdesc"]
92
+ }
93
+ },
94
+ "rationale": {
95
+ "type": "string",
96
+ "description": "Requirement or purpose for the process or methodology step.",
97
+ "translation": {
98
+ "ISO 19115-2": ["LI_ProcessStep > rationale"]
99
+ }
100
+ },
101
+ "dateTime": {
102
+ "description": "Date and time or date at which the process or methodology step occurred.",
103
+ "translation": {
104
+ "ISO 19115-2": ["LI_ProcessStep > dateTime"],
105
+ "FGDC CSDGM": ["dataqual > lineage > procstep > procdate"]
106
+ },
107
+ "$ref": "../schema.json#/definitions/date"
108
+ },
109
+ "processor": {
110
+ "type": "array",
111
+ "description": "Identification of, and means of communication with, person(s) and organization(s) associated with the process or methodology step.",
112
+ "translation": {
113
+ "ISO 19115-2": ["LI_ProcessStep > processor > CI_ResponsibleParty"],
114
+ "FGDC CSDGM": ["dataqual > lineage > procstep > proccont > cntinfo"]
115
+ },
116
+ "items": {
117
+ "$ref": "contact.json#/definitions/contactRef"
118
+ }
119
+ }
120
+ }
121
+ },
122
+ "source": {
123
+ "type": "object",
124
+ "description": "Information about the source of the resource relative to the data lineage.",
125
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/dataQualityInfo/0/lineage/source",
126
+ "translation": {
127
+ "ISO 19115-2": ["LI_Source"]
128
+ },
129
+ "additionalProperties": false,
130
+ "properties": {
131
+ "description": {
132
+ "type": "string",
133
+ "description": "Description of the source for the resource.",
134
+ "translation": {
135
+ "ISO 19115-2": ["LI_Source > description"]
136
+ }
137
+ },
138
+ "citation": {
139
+ "description": "Citation for the source.",
140
+ "translation": {
141
+ "ISO 19115-2": ["LI_Source > sourceCitation > CI_Citation"],
142
+ "FGDC CSDGM": ["dataqual > lineage > srcinfo > srccite > citeinfo"]
143
+ },
144
+ "$ref": "citation.json#"
145
+ },
146
+ "processStep": {
147
+ "type": "array",
148
+ "description": "Process or methodology steps applied to the development of the source.",
149
+ "translation": {
150
+ "ISO 19115-2": ["LI_Source > sourceStep > LI_ProcessStep"]
151
+ },
152
+ "items": {
153
+ "$ref": "#/definitions/processStep"
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }