@twin.org/standards-w3c-dcat 0.0.3-next.6 → 0.0.3-next.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/es/dataTypes/dcatDataTypes.js +27 -27
  2. package/dist/es/dataTypes/dcatDataTypes.js.map +1 -1
  3. package/dist/es/index.js +10 -9
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/es/models/IDcatCatalog.js +2 -0
  6. package/dist/es/models/IDcatCatalog.js.map +1 -0
  7. package/dist/es/models/IDcatCatalogRecord.js +2 -0
  8. package/dist/es/models/IDcatCatalogRecord.js.map +1 -0
  9. package/dist/es/models/IDcatDataService.js +2 -0
  10. package/dist/es/models/IDcatDataService.js.map +1 -0
  11. package/dist/es/models/IDcatDataset.js +2 -0
  12. package/dist/es/models/IDcatDataset.js.map +1 -0
  13. package/dist/es/models/IDcatDatasetSeries.js +2 -0
  14. package/dist/es/models/IDcatDatasetSeries.js.map +1 -0
  15. package/dist/es/models/IDcatDistribution.js +2 -0
  16. package/dist/es/models/IDcatDistribution.js.map +1 -0
  17. package/dist/es/models/IDcatRelationship.js +2 -0
  18. package/dist/es/models/IDcatRelationship.js.map +1 -0
  19. package/dist/es/models/IDcatResource.js +2 -0
  20. package/dist/es/models/IDcatResource.js.map +1 -0
  21. package/dist/es/models/IDcatRole.js +2 -0
  22. package/dist/es/models/IDcatRole.js.map +1 -0
  23. package/dist/es/models/dcatClasses.js +9 -9
  24. package/dist/es/models/dcatClasses.js.map +1 -1
  25. package/dist/es/models/dcatContextType.js.map +1 -1
  26. package/dist/es/models/dcatContexts.js +4 -0
  27. package/dist/es/models/dcatContexts.js.map +1 -1
  28. package/dist/es/models/types/dcatContextFreeTypes.js +4 -0
  29. package/dist/es/models/types/dcatContextFreeTypes.js.map +1 -0
  30. package/dist/es/models/types/dcatPropertyTypes.js.map +1 -1
  31. package/dist/es/schemas/{Catalog.json → DcatCatalog.json} +37 -28
  32. package/dist/es/schemas/{CatalogRecord.json → DcatCatalogRecord.json} +16 -7
  33. package/dist/es/schemas/{DataService.json → DcatDataService.json} +20 -11
  34. package/dist/es/schemas/{Dataset.json → DcatDataset.json} +27 -18
  35. package/dist/es/schemas/{DatasetSeries.json → DcatDatasetSeries.json} +25 -16
  36. package/dist/es/schemas/{Distribution.json → DcatDistribution.json} +18 -9
  37. package/dist/es/schemas/{Relationship.json → DcatRelationship.json} +11 -3
  38. package/dist/es/schemas/{Resource.json → DcatResource.json} +24 -15
  39. package/dist/es/schemas/{Role.json → DcatRole.json} +12 -3
  40. package/dist/types/index.d.ts +10 -9
  41. package/dist/types/models/{ICatalog.d.ts → IDcatCatalog.d.ts} +10 -11
  42. package/dist/types/models/{ICatalogRecord.d.ts → IDcatCatalogRecord.d.ts} +9 -9
  43. package/dist/types/models/{IDataService.d.ts → IDcatDataService.d.ts} +2 -2
  44. package/dist/types/models/{IDataset.d.ts → IDcatDataset.d.ts} +9 -9
  45. package/dist/types/models/{IDatasetSeries.d.ts → IDcatDatasetSeries.d.ts} +2 -2
  46. package/dist/types/models/{IDistribution.d.ts → IDcatDistribution.d.ts} +10 -10
  47. package/dist/types/models/{IRelationship.d.ts → IDcatRelationship.d.ts} +3 -3
  48. package/dist/types/models/{IResource.d.ts → IDcatResource.d.ts} +14 -14
  49. package/dist/types/models/{IRole.d.ts → IDcatRole.d.ts} +4 -4
  50. package/dist/types/models/dcatClasses.d.ts +9 -9
  51. package/dist/types/models/dcatContextType.d.ts +4 -0
  52. package/dist/types/models/dcatContexts.d.ts +4 -0
  53. package/dist/types/models/types/dcatContextFreeTypes.d.ts +40 -0
  54. package/dist/types/models/types/dcatPropertyTypes.d.ts +6 -6
  55. package/docs/changelog.md +39 -0
  56. package/docs/reference/index.md +20 -15
  57. package/docs/reference/interfaces/{ICatalog.md → IDcatCatalog.md} +49 -49
  58. package/docs/reference/interfaces/{ICatalogRecord.md → IDcatCatalogRecord.md} +7 -7
  59. package/docs/reference/interfaces/{IDataService.md → IDcatDataService.md} +33 -33
  60. package/docs/reference/interfaces/{IDataset.md → IDcatDataset.md} +37 -37
  61. package/docs/reference/interfaces/{IDatasetSeries.md → IDcatDatasetSeries.md} +43 -43
  62. package/docs/reference/interfaces/{IDistribution.md → IDcatDistribution.md} +6 -6
  63. package/docs/reference/interfaces/{IRelationship.md → IDcatRelationship.md} +3 -3
  64. package/docs/reference/interfaces/{IResource.md → IDcatResource.md} +13 -13
  65. package/docs/reference/interfaces/{IRole.md → IDcatRole.md} +5 -5
  66. package/docs/reference/type-aliases/CatalogOptionalContext.md +11 -0
  67. package/docs/reference/type-aliases/CatalogRecordOptionalContext.md +11 -0
  68. package/docs/reference/type-aliases/DataServiceOptionalContext.md +11 -0
  69. package/docs/reference/type-aliases/DatasetOptionalContext.md +11 -0
  70. package/docs/reference/type-aliases/DcatContextType.md +8 -0
  71. package/docs/reference/type-aliases/{DateTimeType.md → DcatDateTimeType.md} +2 -2
  72. package/docs/reference/type-aliases/DcatDecimalType.md +5 -0
  73. package/docs/reference/type-aliases/DcatDurationType.md +5 -0
  74. package/docs/reference/type-aliases/DcatIriType.md +5 -0
  75. package/docs/reference/type-aliases/{LiteralType.md → DcatLiteralType.md} +2 -2
  76. package/docs/reference/type-aliases/DcatNonNegativeIntegerType.md +5 -0
  77. package/docs/reference/type-aliases/DistributionOptionalContext.md +11 -0
  78. package/docs/reference/variables/DcatClasses.md +9 -9
  79. package/docs/reference/variables/DcatContexts.md +6 -0
  80. package/package.json +5 -5
  81. package/dist/es/models/ICatalog.js +0 -2
  82. package/dist/es/models/ICatalog.js.map +0 -1
  83. package/dist/es/models/ICatalogRecord.js +0 -2
  84. package/dist/es/models/ICatalogRecord.js.map +0 -1
  85. package/dist/es/models/IDataService.js +0 -2
  86. package/dist/es/models/IDataService.js.map +0 -1
  87. package/dist/es/models/IDataset.js +0 -2
  88. package/dist/es/models/IDataset.js.map +0 -1
  89. package/dist/es/models/IDatasetSeries.js +0 -2
  90. package/dist/es/models/IDatasetSeries.js.map +0 -1
  91. package/dist/es/models/IDistribution.js +0 -2
  92. package/dist/es/models/IDistribution.js.map +0 -1
  93. package/dist/es/models/IRelationship.js +0 -2
  94. package/dist/es/models/IRelationship.js.map +0 -1
  95. package/dist/es/models/IResource.js +0 -2
  96. package/dist/es/models/IResource.js.map +0 -1
  97. package/dist/es/models/IRole.js +0 -2
  98. package/dist/es/models/IRole.js.map +0 -1
  99. package/docs/reference/type-aliases/DecimalType.md +0 -5
  100. package/docs/reference/type-aliases/DurationType.md +0 -5
  101. package/docs/reference/type-aliases/IriType.md +0 -5
  102. package/docs/reference/type-aliases/NonNegativeIntegerType.md +0 -5
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schema.twindev.org/w3c-dcat/DatasetSeries",
3
+ "$id": "https://schema.twindev.org/w3c-dcat/DcatDatasetSeries",
4
4
  "description": "Interface for DCAT Dataset Series. A collection of datasets that are published separately, but share some common characteristics that enable them to be grouped together.",
5
5
  "type": "object",
6
6
  "properties": {
@@ -83,6 +83,14 @@
83
83
  "dcterms": {
84
84
  "type": "string",
85
85
  "const": "http://purl.org/dc/terms/"
86
+ },
87
+ "odrl": {
88
+ "type": "string",
89
+ "const": "http://www.w3.org/ns/odrl/2/"
90
+ },
91
+ "foaf": {
92
+ "type": "string",
93
+ "const": "https://xmlns.com/foaf/0.1/"
86
94
  }
87
95
  },
88
96
  "required": [
@@ -134,7 +142,7 @@
134
142
  },
135
143
  "@type": {
136
144
  "type": "string",
137
- "const": "DatasetSeries",
145
+ "const": "dcat:DatasetSeries",
138
146
  "description": "The type identifier, typically \"DatasetSeries\"."
139
147
  },
140
148
  "@reverse": {
@@ -147,23 +155,23 @@
147
155
  "type": "string"
148
156
  },
149
157
  "dcterms:title": {
150
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
158
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
151
159
  "description": "A name given to the resource."
152
160
  },
153
161
  "dcterms:description": {
154
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
162
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
155
163
  "description": "A free-text account of the resource."
156
164
  },
157
165
  "dcterms:identifier": {
158
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
166
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
159
167
  "description": "A unique identifier of the resource."
160
168
  },
161
169
  "dcterms:issued": {
162
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
170
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
163
171
  "description": "Date of formal issuance (publication) of the resource."
164
172
  },
165
173
  "dcterms:modified": {
166
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
174
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
167
175
  "description": "Most recent date on which the resource was changed, updated or modified."
168
176
  },
169
177
  "dcterms:language": {
@@ -183,7 +191,7 @@
183
191
  "dcterms:publisher": {
184
192
  "anyOf": [
185
193
  {
186
- "$ref": "https://schema.twindev.org/w3c-dcat/Agent"
194
+ "$ref": "https://schema.twindev.org/w3c-dcat/FoafAgent"
187
195
  },
188
196
  {
189
197
  "type": "string"
@@ -192,7 +200,7 @@
192
200
  "description": "An entity responsible for making the resource available."
193
201
  },
194
202
  "dcterms:creator": {
195
- "$ref": "https://schema.twindev.org/w3c-dcat/Agent",
203
+ "$ref": "https://schema.twindev.org/w3c-dcat/FoafAgent",
196
204
  "description": "An entity responsible for producing the resource."
197
205
  },
198
206
  "dcterms:accessRights": {
@@ -258,7 +266,7 @@
258
266
  "description": "Relevant contact information for the catalogued resource."
259
267
  },
260
268
  "dcat:keyword": {
261
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
269
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
262
270
  "description": "A keyword or tag describing the resource."
263
271
  },
264
272
  "dcat:theme": {
@@ -292,7 +300,7 @@
292
300
  "dcat:qualifiedRelation": {
293
301
  "anyOf": [
294
302
  {
295
- "$ref": "https://schema.twindev.org/w3c-dcat/Relationship"
303
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatRelationship"
296
304
  },
297
305
  {
298
306
  "type": "string"
@@ -308,12 +316,12 @@
308
316
  "description": "Object or array data type",
309
317
  "anyOf": [
310
318
  {
311
- "$ref": "https://schema.twindev.org/w3c-dcat/Distribution"
319
+ "$ref": "https://schema.twindev.org/w3c-dcat/DistributionOptionalContext"
312
320
  },
313
321
  {
314
322
  "type": "array",
315
323
  "items": {
316
- "$ref": "https://schema.twindev.org/w3c-dcat/Distribution"
324
+ "$ref": "https://schema.twindev.org/w3c-dcat/DistributionOptionalContext"
317
325
  }
318
326
  }
319
327
  ]
@@ -349,15 +357,15 @@
349
357
  "description": "The geographical area covered by the dataset."
350
358
  },
351
359
  "dcat:spatialResolutionInMeters": {
352
- "$ref": "https://schema.twindev.org/w3c-dcat/DecimalType",
360
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDecimalType",
353
361
  "description": "Minimum spatial separation resolvable in a dataset, measured in meters."
354
362
  },
355
363
  "dcterms:temporal": {
356
- "$ref": "https://schema.twindev.org/w3c-dcat/PeriodOfTime",
364
+ "$ref": "https://schema.twindev.org/w3c-dcat/DublinCorePeriodOfTime",
357
365
  "description": "The temporal period that the dataset covers."
358
366
  },
359
367
  "dcat:temporalResolution": {
360
- "$ref": "https://schema.twindev.org/w3c-dcat/DurationType",
368
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDurationType",
361
369
  "description": "Minimum time period resolvable in the dataset."
362
370
  },
363
371
  "prov:wasGeneratedBy": {
@@ -395,6 +403,7 @@
395
403
  }
396
404
  },
397
405
  "required": [
406
+ "@context",
398
407
  "@type"
399
408
  ],
400
409
  "additionalProperties": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schema.twindev.org/w3c-dcat/Distribution",
3
+ "$id": "https://schema.twindev.org/w3c-dcat/DcatDistribution",
4
4
  "description": "Interface for DCAT Distribution. A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways.",
5
5
  "type": "object",
6
6
  "properties": {
@@ -83,6 +83,14 @@
83
83
  "dcterms": {
84
84
  "type": "string",
85
85
  "const": "http://purl.org/dc/terms/"
86
+ },
87
+ "odrl": {
88
+ "type": "string",
89
+ "const": "http://www.w3.org/ns/odrl/2/"
90
+ },
91
+ "foaf": {
92
+ "type": "string",
93
+ "const": "https://xmlns.com/foaf/0.1/"
86
94
  }
87
95
  },
88
96
  "required": [
@@ -134,7 +142,7 @@
134
142
  },
135
143
  "@type": {
136
144
  "type": "string",
137
- "const": "Distribution",
145
+ "const": "dcat:Distribution",
138
146
  "description": "The type identifier, typically \"Distribution\"."
139
147
  },
140
148
  "@reverse": {
@@ -147,19 +155,19 @@
147
155
  "type": "string"
148
156
  },
149
157
  "dcterms:title": {
150
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
158
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
151
159
  "description": "A name given to the distribution."
152
160
  },
153
161
  "dcterms:description": {
154
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
162
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
155
163
  "description": "A free-text account of the distribution."
156
164
  },
157
165
  "dcterms:issued": {
158
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
166
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
159
167
  "description": "Date of formal issuance of the distribution."
160
168
  },
161
169
  "dcterms:modified": {
162
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
170
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
163
171
  "description": "Most recent date on which the distribution was changed, updated or modified."
164
172
  },
165
173
  "dcterms:license": {
@@ -187,15 +195,15 @@
187
195
  "description": "The URL of the downloadable file in a given format."
188
196
  },
189
197
  "dcat:byteSize": {
190
- "$ref": "https://schema.twindev.org/w3c-dcat/NonNegativeIntegerType",
198
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatNonNegativeIntegerType",
191
199
  "description": "The size of the distribution in bytes."
192
200
  },
193
201
  "dcat:spatialResolutionInMeters": {
194
- "$ref": "https://schema.twindev.org/w3c-dcat/DecimalType",
202
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDecimalType",
195
203
  "description": "The minimum spatial separation resolvable in a distribution, measured in meters."
196
204
  },
197
205
  "dcat:temporalResolution": {
198
- "$ref": "https://schema.twindev.org/w3c-dcat/DurationType",
206
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDurationType",
199
207
  "description": "Minimum time period resolvable in the distribution."
200
208
  },
201
209
  "dcterms:conformsTo": {
@@ -238,6 +246,7 @@
238
246
  }
239
247
  },
240
248
  "required": [
249
+ "@context",
241
250
  "@type"
242
251
  ],
243
252
  "additionalProperties": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schema.twindev.org/w3c-dcat/Relationship",
3
+ "$id": "https://schema.twindev.org/w3c-dcat/DcatRelationship",
4
4
  "description": "Interface for DCAT Relationship. An association class for attaching additional information to a relationship between DCAT Resources.",
5
5
  "type": "object",
6
6
  "properties": {
@@ -83,6 +83,14 @@
83
83
  "dcterms": {
84
84
  "type": "string",
85
85
  "const": "http://purl.org/dc/terms/"
86
+ },
87
+ "odrl": {
88
+ "type": "string",
89
+ "const": "http://www.w3.org/ns/odrl/2/"
90
+ },
91
+ "foaf": {
92
+ "type": "string",
93
+ "const": "https://xmlns.com/foaf/0.1/"
86
94
  }
87
95
  },
88
96
  "required": [
@@ -134,7 +142,7 @@
134
142
  },
135
143
  "@type": {
136
144
  "type": "string",
137
- "const": "Relationship",
145
+ "const": "dcat:Relationship",
138
146
  "description": "The type identifier, typically \"Relationship\"."
139
147
  },
140
148
  "@reverse": {
@@ -151,7 +159,7 @@
151
159
  "description": "The link to a related resource."
152
160
  },
153
161
  "dcat:hadRole": {
154
- "$ref": "https://schema.twindev.org/w3c-dcat/Role",
162
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatRole",
155
163
  "description": "The function of an entity or agent with respect to another resource."
156
164
  }
157
165
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schema.twindev.org/w3c-dcat/Resource",
3
+ "$id": "https://schema.twindev.org/w3c-dcat/DcatResource",
4
4
  "description": "Base interface for DCAT catalogued resources. This is the parent class of dcat:Dataset, dcat:DataService, and dcat:Catalog.",
5
5
  "type": "object",
6
6
  "properties": {
@@ -83,6 +83,14 @@
83
83
  "dcterms": {
84
84
  "type": "string",
85
85
  "const": "http://purl.org/dc/terms/"
86
+ },
87
+ "odrl": {
88
+ "type": "string",
89
+ "const": "http://www.w3.org/ns/odrl/2/"
90
+ },
91
+ "foaf": {
92
+ "type": "string",
93
+ "const": "https://xmlns.com/foaf/0.1/"
86
94
  }
87
95
  },
88
96
  "required": [
@@ -135,11 +143,11 @@
135
143
  "@type": {
136
144
  "type": "string",
137
145
  "enum": [
138
- "Resource",
139
- "Dataset",
140
- "DataService",
141
- "Catalog",
142
- "DatasetSeries"
146
+ "dcat:Resource",
147
+ "dcat:Dataset",
148
+ "dcat:DataService",
149
+ "dcat:Catalog",
150
+ "dcat:DatasetSeries"
143
151
  ],
144
152
  "description": "The type of the resource. Typically \"Catalog\", \"Dataset\", \"DataService\", \"DatasetSeries\", or the base \"Resource\"."
145
153
  },
@@ -153,23 +161,23 @@
153
161
  "type": "string"
154
162
  },
155
163
  "dcterms:title": {
156
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
164
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
157
165
  "description": "A name given to the resource."
158
166
  },
159
167
  "dcterms:description": {
160
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
168
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
161
169
  "description": "A free-text account of the resource."
162
170
  },
163
171
  "dcterms:identifier": {
164
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
172
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
165
173
  "description": "A unique identifier of the resource."
166
174
  },
167
175
  "dcterms:issued": {
168
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
176
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
169
177
  "description": "Date of formal issuance (publication) of the resource."
170
178
  },
171
179
  "dcterms:modified": {
172
- "$ref": "https://schema.twindev.org/w3c-dcat/DateTimeType",
180
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatDateTimeType",
173
181
  "description": "Most recent date on which the resource was changed, updated or modified."
174
182
  },
175
183
  "dcterms:language": {
@@ -189,7 +197,7 @@
189
197
  "dcterms:publisher": {
190
198
  "anyOf": [
191
199
  {
192
- "$ref": "https://schema.twindev.org/w3c-dcat/Agent"
200
+ "$ref": "https://schema.twindev.org/w3c-dcat/FoafAgent"
193
201
  },
194
202
  {
195
203
  "type": "string"
@@ -198,7 +206,7 @@
198
206
  "description": "An entity responsible for making the resource available."
199
207
  },
200
208
  "dcterms:creator": {
201
- "$ref": "https://schema.twindev.org/w3c-dcat/Agent",
209
+ "$ref": "https://schema.twindev.org/w3c-dcat/FoafAgent",
202
210
  "description": "An entity responsible for producing the resource."
203
211
  },
204
212
  "dcterms:accessRights": {
@@ -264,7 +272,7 @@
264
272
  "description": "Relevant contact information for the catalogued resource."
265
273
  },
266
274
  "dcat:keyword": {
267
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
275
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
268
276
  "description": "A keyword or tag describing the resource."
269
277
  },
270
278
  "dcat:theme": {
@@ -298,7 +306,7 @@
298
306
  "dcat:qualifiedRelation": {
299
307
  "anyOf": [
300
308
  {
301
- "$ref": "https://schema.twindev.org/w3c-dcat/Relationship"
309
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatRelationship"
302
310
  },
303
311
  {
304
312
  "type": "string"
@@ -312,6 +320,7 @@
312
320
  }
313
321
  },
314
322
  "required": [
323
+ "@context",
315
324
  "@type"
316
325
  ],
317
326
  "additionalProperties": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://schema.twindev.org/w3c-dcat/Role",
3
+ "$id": "https://schema.twindev.org/w3c-dcat/DcatRole",
4
4
  "description": "Interface for DCAT Role. A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships.",
5
5
  "type": "object",
6
6
  "properties": {
@@ -83,6 +83,14 @@
83
83
  "dcterms": {
84
84
  "type": "string",
85
85
  "const": "http://purl.org/dc/terms/"
86
+ },
87
+ "odrl": {
88
+ "type": "string",
89
+ "const": "http://www.w3.org/ns/odrl/2/"
90
+ },
91
+ "foaf": {
92
+ "type": "string",
93
+ "const": "https://xmlns.com/foaf/0.1/"
86
94
  }
87
95
  },
88
96
  "required": [
@@ -134,7 +142,7 @@
134
142
  },
135
143
  "@type": {
136
144
  "type": "string",
137
- "const": "Role",
145
+ "const": "dcat:Role",
138
146
  "description": "The type identifier, typically \"Role\"."
139
147
  },
140
148
  "@reverse": {
@@ -147,11 +155,12 @@
147
155
  "type": "string"
148
156
  },
149
157
  "dcterms:title": {
150
- "$ref": "https://schema.twindev.org/w3c-dcat/LiteralType",
158
+ "$ref": "https://schema.twindev.org/w3c-dcat/DcatLiteralType",
151
159
  "description": "A name given to the distribution."
152
160
  }
153
161
  },
154
162
  "required": [
163
+ "@context",
155
164
  "@type"
156
165
  ],
157
166
  "additionalProperties": {
@@ -3,13 +3,14 @@ export * from "./models/dcatClasses.js";
3
3
  export * from "./models/dcatContexts.js";
4
4
  export * from "./models/dcatContextType.js";
5
5
  export * from "./models/dcatRelationshipTypes.js";
6
- export * from "./models/ICatalog.js";
7
- export * from "./models/ICatalogRecord.js";
8
- export * from "./models/IDataService.js";
9
- export * from "./models/IDataset.js";
10
- export * from "./models/IDatasetSeries.js";
11
- export * from "./models/IDistribution.js";
12
- export * from "./models/IRelationship.js";
13
- export * from "./models/IResource.js";
14
- export * from "./models/IRole.js";
6
+ export * from "./models/IDcatCatalog.js";
7
+ export * from "./models/IDcatCatalogRecord.js";
8
+ export * from "./models/IDcatDataService.js";
9
+ export * from "./models/IDcatDataset.js";
10
+ export * from "./models/IDcatDatasetSeries.js";
11
+ export * from "./models/IDcatDistribution.js";
12
+ export * from "./models/IDcatRelationship.js";
13
+ export * from "./models/IDcatResource.js";
14
+ export * from "./models/IDcatRole.js";
15
15
  export * from "./models/types/dcatPropertyTypes.js";
16
+ export * from "./models/types/dcatContextFreeTypes.js";
@@ -1,16 +1,15 @@
1
1
  import type { ObjectOrArray } from "@twin.org/core";
2
2
  import type { DcatClasses } from "./dcatClasses.js";
3
- import type { ICatalogRecord } from "./ICatalogRecord.js";
4
- import type { IDataService } from "./IDataService.js";
5
- import type { IDataset } from "./IDataset.js";
6
- import type { IResource } from "./IResource.js";
3
+ import type { IDcatDataset } from "./IDcatDataset.js";
4
+ import type { IDcatResource } from "./IDcatResource.js";
5
+ import type { CatalogOptionalContext, CatalogRecordOptionalContext, DataServiceOptionalContext, DatasetOptionalContext } from "./types/dcatContextFreeTypes.js";
7
6
  /**
8
7
  * Interface for DCAT Catalog.
9
8
  * A curated collection of metadata about resources (datasets and data services).
10
9
  * Note: dcat:Catalog is a sub-class of dcat:Dataset per the W3C spec.
11
10
  * @see https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog
12
11
  */
13
- export interface ICatalog extends IDataset {
12
+ export interface IDcatCatalog extends IDcatDataset {
14
13
  /**
15
14
  * The type identifier, typically "Catalog".
16
15
  */
@@ -24,30 +23,30 @@ export interface ICatalog extends IDataset {
24
23
  * A knowledge organization system (KOS) used to classify the resources in the catalog.
25
24
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_themes
26
25
  */
27
- "dcat:themeTaxonomy"?: ObjectOrArray<IResource>;
26
+ "dcat:themeTaxonomy"?: ObjectOrArray<IDcatResource>;
28
27
  /**
29
28
  * A resource that is listed in the catalog.
30
29
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_resource
31
30
  */
32
- "dcat:resource"?: ObjectOrArray<IResource>;
31
+ "dcat:resource"?: ObjectOrArray<IDcatResource>;
33
32
  /**
34
33
  * A dataset that is listed in the catalog.
35
34
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_dataset
36
35
  */
37
- "dcat:dataset"?: ObjectOrArray<IDataset>;
36
+ "dcat:dataset"?: ObjectOrArray<DatasetOptionalContext>;
38
37
  /**
39
38
  * A data service that is listed in the catalog.
40
39
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_service
41
40
  */
42
- "dcat:service"?: ObjectOrArray<IDataService>;
41
+ "dcat:service"?: ObjectOrArray<DataServiceOptionalContext>;
43
42
  /**
44
43
  * A catalog that is listed in the catalog.
45
44
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_catalog
46
45
  */
47
- "dcat:catalog"?: ObjectOrArray<ICatalog>;
46
+ "dcat:catalog"?: ObjectOrArray<CatalogOptionalContext>;
48
47
  /**
49
48
  * A record describing the registration of a single resource in the catalog.
50
49
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:catalog_catalog_record
51
50
  */
52
- "dcat:record"?: ObjectOrArray<ICatalogRecord>;
51
+ "dcat:record"?: ObjectOrArray<CatalogRecordOptionalContext>;
53
52
  }
@@ -2,19 +2,19 @@ import type { ObjectOrArray } from "@twin.org/core";
2
2
  import type { IJsonLdNodeObject } from "@twin.org/data-json-ld";
3
3
  import type { DcatClasses } from "./dcatClasses.js";
4
4
  import type { DcatContextType } from "./dcatContextType.js";
5
- import type { IResource } from "./IResource.js";
6
- import type { DateTimeType, LiteralType } from "./types/dcatPropertyTypes.js";
5
+ import type { IDcatResource } from "./IDcatResource.js";
6
+ import type { DcatDateTimeType, DcatLiteralType } from "./types/dcatPropertyTypes.js";
7
7
  /**
8
8
  * Interface for DCAT Catalog Record.
9
9
  * A record in a catalog, describing the registration of a single dataset or data
10
10
  * service.
11
11
  * @see https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog_Record
12
12
  */
13
- export interface ICatalogRecord extends IJsonLdNodeObject {
13
+ export interface IDcatCatalogRecord extends IJsonLdNodeObject {
14
14
  /**
15
15
  * The JSON-LD context for the resource.
16
16
  */
17
- "@context"?: DcatContextType;
17
+ "@context": DcatContextType;
18
18
  /**
19
19
  * The type identifier, typically "CatalogRecord".
20
20
  */
@@ -23,22 +23,22 @@ export interface ICatalogRecord extends IJsonLdNodeObject {
23
23
  * A name given to the catalog record.
24
24
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_title
25
25
  */
26
- "dcterms:title"?: LiteralType;
26
+ "dcterms:title"?: DcatLiteralType;
27
27
  /**
28
28
  * A free-text account of the catalog record.
29
29
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_description
30
30
  */
31
- "dcterms:description"?: LiteralType;
31
+ "dcterms:description"?: DcatLiteralType;
32
32
  /**
33
33
  * The date of listing of the catalog record in the catalog.
34
34
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_listing_date
35
35
  */
36
- "dcterms:issued"?: DateTimeType;
36
+ "dcterms:issued"?: DcatDateTimeType;
37
37
  /**
38
38
  * Most recent date on which the catalog record entry was changed or modified.
39
39
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_update_date
40
40
  */
41
- "dcterms:modified"?: DateTimeType;
41
+ "dcterms:modified"?: DcatDateTimeType;
42
42
  /**
43
43
  * An established standard to which the catalog record conforms.
44
44
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_conforms_to
@@ -48,5 +48,5 @@ export interface ICatalogRecord extends IJsonLdNodeObject {
48
48
  * The dataset or data service described in the catalog record.
49
49
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:record_primary_topic
50
50
  */
51
- "foaf:primaryTopic"?: IResource;
51
+ "foaf:primaryTopic"?: IDcatResource;
52
52
  }
@@ -1,13 +1,13 @@
1
1
  import type { ObjectOrArray } from "@twin.org/core";
2
2
  import type { DcatClasses } from "./dcatClasses.js";
3
- import type { IResource } from "./IResource.js";
3
+ import type { IDcatResource } from "./IDcatResource.js";
4
4
  /**
5
5
  * Interface for DCAT Data Service.
6
6
  * A collection of operations that provides access to one or more datasets or data
7
7
  * processing functions.
8
8
  * @see https://www.w3.org/TR/vocab-dcat-3/#Class:Data_Service
9
9
  */
10
- export interface IDataService extends IResource {
10
+ export interface IDcatDataService extends IDcatResource {
11
11
  /**
12
12
  * The type identifier, typically "DataService".
13
13
  */
@@ -1,17 +1,17 @@
1
1
  import type { ObjectOrArray } from "@twin.org/core";
2
2
  import type { IJsonLdNodeObject } from "@twin.org/data-json-ld";
3
- import type { IPeriodOfTime } from "@twin.org/standards-dublin-core";
3
+ import type { IDublinCorePeriodOfTime } from "@twin.org/standards-dublin-core";
4
4
  import type { DcatClasses } from "./dcatClasses.js";
5
- import type { IDistribution } from "./IDistribution.js";
6
- import type { IResource } from "./IResource.js";
7
- import type { DecimalType, DurationType } from "./types/dcatPropertyTypes.js";
5
+ import type { IDcatResource } from "./IDcatResource.js";
6
+ import type { DistributionOptionalContext } from "./types/dcatContextFreeTypes.js";
7
+ import type { DcatDecimalType, DcatDurationType } from "./types/dcatPropertyTypes.js";
8
8
  /**
9
9
  * Interface for DCAT Dataset.
10
10
  * A collection of data, published or curated by a single agent, and available
11
11
  * for access or download in one or more representations.
12
12
  * @see https://www.w3.org/TR/vocab-dcat-3/#Class:Dataset
13
13
  */
14
- export interface IDataset extends IResource {
14
+ export interface IDcatDataset extends IDcatResource {
15
15
  /**
16
16
  * The type identifier, typically "Dataset".
17
17
  * Can also be "Catalog" or "DatasetSeries" for subclasses.
@@ -21,7 +21,7 @@ export interface IDataset extends IResource {
21
21
  * An available distribution of the dataset.
22
22
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_distribution
23
23
  */
24
- "dcat:distribution"?: ObjectOrArray<IDistribution>;
24
+ "dcat:distribution"?: ObjectOrArray<DistributionOptionalContext>;
25
25
  /**
26
26
  * The frequency at which the dataset is published.
27
27
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_frequency
@@ -41,17 +41,17 @@ export interface IDataset extends IResource {
41
41
  * Minimum spatial separation resolvable in a dataset, measured in meters.
42
42
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_spatial_resolution
43
43
  */
44
- "dcat:spatialResolutionInMeters"?: DecimalType;
44
+ "dcat:spatialResolutionInMeters"?: DcatDecimalType;
45
45
  /**
46
46
  * The temporal period that the dataset covers.
47
47
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_temporal
48
48
  */
49
- "dcterms:temporal"?: IPeriodOfTime;
49
+ "dcterms:temporal"?: IDublinCorePeriodOfTime;
50
50
  /**
51
51
  * Minimum time period resolvable in the dataset.
52
52
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_temporal_resolution
53
53
  */
54
- "dcat:temporalResolution"?: DurationType;
54
+ "dcat:temporalResolution"?: DcatDurationType;
55
55
  /**
56
56
  * An activity that generated, or provides the business context for, the creation of the dataset.
57
57
  * @see https://www.w3.org/TR/vocab-dcat-3/#Property:dataset_was_generated_by
@@ -1,13 +1,13 @@
1
1
  import type { ObjectOrArray } from "@twin.org/core";
2
2
  import type { DcatClasses } from "./dcatClasses.js";
3
- import type { IDataset } from "./IDataset.js";
3
+ import type { IDcatDataset } from "./IDcatDataset.js";
4
4
  /**
5
5
  * Interface for DCAT Dataset Series.
6
6
  * A collection of datasets that are published separately, but share some common
7
7
  * characteristics that enable them to be grouped together.
8
8
  * @see https://www.w3.org/TR/vocab-dcat-3/#Class:Dataset_Series
9
9
  */
10
- export interface IDatasetSeries extends IDataset {
10
+ export interface IDcatDatasetSeries extends IDcatDataset {
11
11
  /**
12
12
  * The type identifier, typically "DatasetSeries".
13
13
  */