@twin.org/standards-dataspace-protocol 0.0.3-next.64 → 0.0.3-next.66

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.
@@ -1 +1 @@
1
- {"version":3,"file":"IDataspaceProtocolCatalogBase.js","sourceRoot":"","sources":["../../../../src/models/dcat3/IDataspaceProtocolCatalogBase.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ObjectOrArray } from \"@twin.org/core\";\nimport type { IDcatCatalogBase } from \"@twin.org/standards-w3c-dcat\";\nimport type { IDataspaceProtocolDataServiceBase } from \"./IDataspaceProtocolDataServiceBase.js\";\nimport type { IDataspaceProtocolDatasetBase } from \"./IDataspaceProtocolDatasetBase.js\";\nimport type { IDataspaceProtocolDistributionBase } from \"./IDataspaceProtocolDistributionBase.js\";\nimport type { DataspaceProtocolCatalogTypes } from \"../catalog/dataspaceProtocolCatalogTypes.js\";\n\n/**\n * Catalog interface compliant with Eclipse Data Space Protocol.\n *\n * This interface extends ICatalog and enforces DS Protocol-specific requirements\n * by overriding properties with more specific types and constraints.\n *\n * **Requirements per DS Protocol:**\n * - `@id` MUST be present for dataset identification (REQUIRED)\n * - participantId MUST be present (REQUIRED)\n *\n * **Type System Design:**\n * - Interface extension allows TypeScript to override inherited property types\n * - Standards packages (@twin.org/standards-w3c-*) follow W3C specs exactly\n * - DS Protocol-specific constraints are defined here\n *\n *\n * @see https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1-err1/#lower-level-types\n * @see https://www.w3.org/TR/vocab-dcat-3/ - W3C DCAT v3 spec\n *\n */\nexport interface IDataspaceProtocolCatalogBase extends Omit<\n\tIDcatCatalogBase,\n\t\"@type\" | \"dcat:catalog\" | \"dcat:dataset\" | \"dcat:distribution\" | \"dcat:service\"\n> {\n\t/**\n\t * The type identifier for the Catalog.\n\t * REQUIRED per Eclipse Data Space Protocol.\n\t */\n\t\"@type\": typeof DataspaceProtocolCatalogTypes.Catalog;\n\n\t/**\n\t * Unique identifier for the dataset.\n\t * REQUIRED per Eclipse Data Space Protocol.\n\t */\n\t\"@id\": string;\n\n\t/**\n\t * Participant Id\n\t */\n\tparticipantId: string;\n\n\t/**\n\t * Other concerned catalogs\n\t */\n\tcatalog?: ObjectOrArray<IDataspaceProtocolCatalogBase>;\n\n\t/**\n\t * Datasets registered\n\t */\n\tdataset?: ObjectOrArray<IDataspaceProtocolDatasetBase>;\n\n\t/**\n\t * Catalog's distributions\n\t */\n\tdistribution?: ObjectOrArray<IDataspaceProtocolDistributionBase>;\n\n\t/**\n\t * Data services registered-\n\t */\n\tservice?: ObjectOrArray<IDataspaceProtocolDataServiceBase>;\n}\n"]}
1
+ {"version":3,"file":"IDataspaceProtocolCatalogBase.js","sourceRoot":"","sources":["../../../../src/models/dcat3/IDataspaceProtocolCatalogBase.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IDcatCatalogBase } from \"@twin.org/standards-w3c-dcat\";\nimport type { IDataspaceProtocolDataServiceBase } from \"./IDataspaceProtocolDataServiceBase.js\";\nimport type { IDataspaceProtocolDatasetBase } from \"./IDataspaceProtocolDatasetBase.js\";\nimport type { IDataspaceProtocolDistributionBase } from \"./IDataspaceProtocolDistributionBase.js\";\nimport type { DataspaceProtocolCatalogTypes } from \"../catalog/dataspaceProtocolCatalogTypes.js\";\n\n/**\n * Catalog interface compliant with Eclipse Data Space Protocol.\n *\n * This interface extends ICatalog and enforces DS Protocol-specific requirements\n * by overriding properties with more specific types and constraints.\n *\n * **Requirements per DS Protocol:**\n * - `@id` MUST be present for dataset identification (REQUIRED)\n * - participantId MUST be present (REQUIRED)\n *\n * **Type System Design:**\n * - Interface extension allows TypeScript to override inherited property types\n * - Standards packages (@twin.org/standards-w3c-*) follow W3C specs exactly\n * - DS Protocol-specific constraints are defined here\n *\n *\n * @see https://eclipse-dataspace-protocol-base.github.io/DataspaceProtocol/2025-1-err1/#lower-level-types\n * @see https://www.w3.org/TR/vocab-dcat-3/ - W3C DCAT v3 spec\n *\n */\nexport interface IDataspaceProtocolCatalogBase extends Omit<\n\tIDcatCatalogBase,\n\t\"@type\" | \"dcat:catalog\" | \"dcat:dataset\" | \"dcat:distribution\" | \"dcat:service\"\n> {\n\t/**\n\t * The type identifier for the Catalog.\n\t * REQUIRED per Eclipse Data Space Protocol.\n\t */\n\t\"@type\": typeof DataspaceProtocolCatalogTypes.Catalog;\n\n\t/**\n\t * Unique identifier for the dataset.\n\t * REQUIRED per Eclipse Data Space Protocol.\n\t */\n\t\"@id\": string;\n\n\t/**\n\t * Participant Id\n\t */\n\tparticipantId: string;\n\n\t/**\n\t * Other concerned catalogs\n\t */\n\tcatalog?: IDataspaceProtocolCatalogBase[];\n\n\t/**\n\t * Datasets registered\n\t */\n\tdataset?: IDataspaceProtocolDatasetBase[];\n\n\t/**\n\t * Catalog's distributions\n\t */\n\tdistribution?: IDataspaceProtocolDistributionBase[];\n\n\t/**\n\t * Data services registered-\n\t */\n\tservice?: IDataspaceProtocolDataServiceBase[];\n}\n"]}
@@ -18,59 +18,31 @@
18
18
  "description": "Participant Id"
19
19
  },
20
20
  "catalog": {
21
- "anyOf": [
22
- {
23
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolCatalogBase"
24
- },
25
- {
26
- "type": "array",
27
- "items": {
28
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolCatalogBase"
29
- }
30
- }
31
- ],
21
+ "type": "array",
22
+ "items": {
23
+ "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolCatalogBase"
24
+ },
32
25
  "description": "Other concerned catalogs"
33
26
  },
34
27
  "dataset": {
35
- "anyOf": [
36
- {
37
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDatasetBase"
38
- },
39
- {
40
- "type": "array",
41
- "items": {
42
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDatasetBase"
43
- }
44
- }
45
- ],
28
+ "type": "array",
29
+ "items": {
30
+ "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDatasetBase"
31
+ },
46
32
  "description": "Datasets registered"
47
33
  },
48
34
  "distribution": {
49
- "anyOf": [
50
- {
51
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDistributionBase"
52
- },
53
- {
54
- "type": "array",
55
- "items": {
56
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDistributionBase"
57
- }
58
- }
59
- ],
35
+ "type": "array",
36
+ "items": {
37
+ "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDistributionBase"
38
+ },
60
39
  "description": "Catalog's distributions"
61
40
  },
62
41
  "service": {
63
- "anyOf": [
64
- {
65
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDataServiceBase"
66
- },
67
- {
68
- "type": "array",
69
- "items": {
70
- "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDataServiceBase"
71
- }
72
- }
73
- ],
42
+ "type": "array",
43
+ "items": {
44
+ "$ref": "https://schema.twindev.org/dataspace-protocol/DataspaceProtocolDataServiceBase"
45
+ },
74
46
  "description": "Data services registered-"
75
47
  }
76
48
  },
@@ -164,7 +136,110 @@
164
136
  "dcterms:publisher": {
165
137
  "anyOf": [
166
138
  {
167
- "$ref": "https://schema.twindev.org/json-ld/JsonLdObjectWithAliases"
139
+ "description": "A FOAF Agent.",
140
+ "type": "object",
141
+ "properties": {
142
+ "@context": {
143
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafContextType",
144
+ "description": "The LD Context.",
145
+ "$comment": "Inherited from FoafAgent"
146
+ },
147
+ "@id": {
148
+ "type": "string",
149
+ "description": "The unique identifier for the FOAF object.",
150
+ "$comment": "Inherited from FoafBaseObject"
151
+ },
152
+ "foaf:name": {
153
+ "type": "string",
154
+ "description": "A name for some thing.",
155
+ "$comment": "Inherited from FoafBaseObject"
156
+ },
157
+ "foaf:title": {
158
+ "type": "string",
159
+ "description": "Title (Mr, Mrs, Ms, Dr. etc)",
160
+ "$comment": "Inherited from FoafBaseObject"
161
+ },
162
+ "foaf:mbox": {
163
+ "type": "string",
164
+ "description": "A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox",
165
+ "$comment": "Inherited from FoafBaseObject"
166
+ },
167
+ "foaf:homepage": {
168
+ "type": "string",
169
+ "description": "A homepage for some thing.",
170
+ "$comment": "Inherited from FoafBaseObject"
171
+ },
172
+ "foaf:depiction": {
173
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafImage",
174
+ "description": "A depiction of some thing.",
175
+ "$comment": "Inherited from FoafBaseObject"
176
+ },
177
+ "@type": {
178
+ "anyOf": [
179
+ {
180
+ "const": "Agent"
181
+ },
182
+ {
183
+ "const": "Person"
184
+ },
185
+ {
186
+ "const": "Organization"
187
+ },
188
+ {
189
+ "const": "Group"
190
+ },
191
+ {
192
+ "type": "string"
193
+ }
194
+ ],
195
+ "description": "Type.",
196
+ "$comment": "Inherited from FoafAgent"
197
+ },
198
+ "foaf:age": {
199
+ "type": "number",
200
+ "description": "The age in years of some agent.",
201
+ "$comment": "Inherited from FoafAgent"
202
+ },
203
+ "foaf:made": {
204
+ "anyOf": [
205
+ {
206
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
207
+ },
208
+ {
209
+ "type": "array",
210
+ "items": {
211
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
212
+ }
213
+ }
214
+ ],
215
+ "description": "Something that was made by this agent.",
216
+ "$comment": "Inherited from FoafAgent"
217
+ },
218
+ "foaf:weblog": {
219
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
220
+ "description": "A weblog of some thing (whether person, group, company etc.).",
221
+ "$comment": "Inherited from FoafAgent"
222
+ },
223
+ "foaf:openid": {
224
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
225
+ "description": "An OpenID for an agent.",
226
+ "$comment": "Inherited from FoafAgent"
227
+ },
228
+ "foaf:interest": {
229
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
230
+ "description": "A page about a topic of interest to this person.",
231
+ "$comment": "Inherited from FoafAgent"
232
+ },
233
+ "foaf:topic_interest": {
234
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject",
235
+ "description": "A thing of interest to this person.",
236
+ "$comment": "Inherited from FoafAgent"
237
+ }
238
+ },
239
+ "required": [
240
+ "@type"
241
+ ],
242
+ "$comment": "Inlined utility base type FoafAgent so utility transformations can operate on concrete properties instead of a $ref."
168
243
  },
169
244
  {
170
245
  "type": "string"
@@ -176,7 +251,110 @@
176
251
  "dcterms:creator": {
177
252
  "anyOf": [
178
253
  {
179
- "$ref": "https://schema.twindev.org/json-ld/JsonLdObjectWithAliases"
254
+ "description": "A FOAF Agent.",
255
+ "type": "object",
256
+ "properties": {
257
+ "@context": {
258
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafContextType",
259
+ "description": "The LD Context.",
260
+ "$comment": "Inherited from FoafAgent"
261
+ },
262
+ "@id": {
263
+ "type": "string",
264
+ "description": "The unique identifier for the FOAF object.",
265
+ "$comment": "Inherited from FoafBaseObject"
266
+ },
267
+ "foaf:name": {
268
+ "type": "string",
269
+ "description": "A name for some thing.",
270
+ "$comment": "Inherited from FoafBaseObject"
271
+ },
272
+ "foaf:title": {
273
+ "type": "string",
274
+ "description": "Title (Mr, Mrs, Ms, Dr. etc)",
275
+ "$comment": "Inherited from FoafBaseObject"
276
+ },
277
+ "foaf:mbox": {
278
+ "type": "string",
279
+ "description": "A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox",
280
+ "$comment": "Inherited from FoafBaseObject"
281
+ },
282
+ "foaf:homepage": {
283
+ "type": "string",
284
+ "description": "A homepage for some thing.",
285
+ "$comment": "Inherited from FoafBaseObject"
286
+ },
287
+ "foaf:depiction": {
288
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafImage",
289
+ "description": "A depiction of some thing.",
290
+ "$comment": "Inherited from FoafBaseObject"
291
+ },
292
+ "@type": {
293
+ "anyOf": [
294
+ {
295
+ "const": "Agent"
296
+ },
297
+ {
298
+ "const": "Person"
299
+ },
300
+ {
301
+ "const": "Organization"
302
+ },
303
+ {
304
+ "const": "Group"
305
+ },
306
+ {
307
+ "type": "string"
308
+ }
309
+ ],
310
+ "description": "Type.",
311
+ "$comment": "Inherited from FoafAgent"
312
+ },
313
+ "foaf:age": {
314
+ "type": "number",
315
+ "description": "The age in years of some agent.",
316
+ "$comment": "Inherited from FoafAgent"
317
+ },
318
+ "foaf:made": {
319
+ "anyOf": [
320
+ {
321
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
322
+ },
323
+ {
324
+ "type": "array",
325
+ "items": {
326
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
327
+ }
328
+ }
329
+ ],
330
+ "description": "Something that was made by this agent.",
331
+ "$comment": "Inherited from FoafAgent"
332
+ },
333
+ "foaf:weblog": {
334
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
335
+ "description": "A weblog of some thing (whether person, group, company etc.).",
336
+ "$comment": "Inherited from FoafAgent"
337
+ },
338
+ "foaf:openid": {
339
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
340
+ "description": "An OpenID for an agent.",
341
+ "$comment": "Inherited from FoafAgent"
342
+ },
343
+ "foaf:interest": {
344
+ "$ref": "https://schema.twindev.org/dataspace-protocol/FoafDocument",
345
+ "description": "A page about a topic of interest to this person.",
346
+ "$comment": "Inherited from FoafAgent"
347
+ },
348
+ "foaf:topic_interest": {
349
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject",
350
+ "description": "A thing of interest to this person.",
351
+ "$comment": "Inherited from FoafAgent"
352
+ }
353
+ },
354
+ "required": [
355
+ "@type"
356
+ ],
357
+ "$comment": "Inlined utility base type FoafAgent so utility transformations can operate on concrete properties instead of a $ref."
180
358
  },
181
359
  {
182
360
  "type": "string"
@@ -311,9 +489,222 @@
311
489
  "$comment": "Inherited from DcatResourceBase"
312
490
  },
313
491
  "odrl:hasPolicy": {
314
- "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPolicy",
315
492
  "description": "An ODRL conformant policy expressing the rights associated with the resource.",
316
- "$comment": "Inherited from DcatResourceBase"
493
+ "type": "object",
494
+ "properties": {
495
+ "@type": {
496
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPolicyType",
497
+ "description": "The type of policy.\nMust be one of: \"Set\", \"Offer\", \"Agreement\""
498
+ },
499
+ "uid": {
500
+ "type": "string",
501
+ "description": "The unique identifier for the policy.\nMust be an IRI.",
502
+ "format": "uri"
503
+ },
504
+ "profile": {
505
+ "anyOf": [
506
+ {
507
+ "type": "string"
508
+ },
509
+ {
510
+ "type": "array",
511
+ "items": {
512
+ "type": "string"
513
+ }
514
+ }
515
+ ],
516
+ "description": "The profile(s) this policy conforms to.\nIRIs identifying the ODRL Profile(s)."
517
+ },
518
+ "assigner": {
519
+ "anyOf": [
520
+ {
521
+ "type": "string"
522
+ },
523
+ {
524
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
525
+ },
526
+ {
527
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
528
+ },
529
+ {
530
+ "type": "array",
531
+ "items": {
532
+ "anyOf": [
533
+ {
534
+ "type": "string"
535
+ },
536
+ {
537
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
538
+ },
539
+ {
540
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
541
+ }
542
+ ]
543
+ }
544
+ }
545
+ ],
546
+ "description": "The assigner of the policy.\nApplies to all rules unless overridden at rule level."
547
+ },
548
+ "assignee": {
549
+ "anyOf": [
550
+ {
551
+ "type": "string"
552
+ },
553
+ {
554
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
555
+ },
556
+ {
557
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
558
+ },
559
+ {
560
+ "type": "array",
561
+ "items": {
562
+ "anyOf": [
563
+ {
564
+ "type": "string"
565
+ },
566
+ {
567
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlParty"
568
+ },
569
+ {
570
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPartyCollection"
571
+ }
572
+ ]
573
+ }
574
+ }
575
+ ],
576
+ "description": "The assignee of the policy.\nApplies to all rules unless overridden at rule level."
577
+ },
578
+ "target": {
579
+ "anyOf": [
580
+ {
581
+ "type": "string"
582
+ },
583
+ {
584
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAsset"
585
+ },
586
+ {
587
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAssetCollection"
588
+ },
589
+ {
590
+ "type": "array",
591
+ "items": {
592
+ "anyOf": [
593
+ {
594
+ "type": "string"
595
+ },
596
+ {
597
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAsset"
598
+ },
599
+ {
600
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAssetCollection"
601
+ }
602
+ ]
603
+ }
604
+ }
605
+ ],
606
+ "description": "The target asset for the rule."
607
+ },
608
+ "action": {
609
+ "anyOf": [
610
+ {
611
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlActionType"
612
+ },
613
+ {
614
+ "type": "string"
615
+ },
616
+ {
617
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAction"
618
+ },
619
+ {
620
+ "type": "array",
621
+ "items": {
622
+ "anyOf": [
623
+ {
624
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlActionType"
625
+ },
626
+ {
627
+ "type": "string"
628
+ },
629
+ {
630
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlAction"
631
+ }
632
+ ]
633
+ }
634
+ }
635
+ ],
636
+ "description": "The action associated with the rule."
637
+ },
638
+ "inheritFrom": {
639
+ "anyOf": [
640
+ {
641
+ "type": "string"
642
+ },
643
+ {
644
+ "type": "array",
645
+ "items": {
646
+ "type": "string"
647
+ }
648
+ }
649
+ ],
650
+ "description": "The parent policy(ies) this policy inherits from.\nIRIs identifying the parent Policy(ies)."
651
+ },
652
+ "conflict": {
653
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlConflictStrategyType",
654
+ "description": "The conflict resolution strategy.\n- perm: Permissions override Prohibitions\n- prohibit: Prohibitions override Permissions\n- invalid: Policy is void if conflicts exist (default)"
655
+ },
656
+ "permission": {
657
+ "anyOf": [
658
+ {
659
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPermission"
660
+ },
661
+ {
662
+ "type": "array",
663
+ "items": {
664
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlPermission"
665
+ }
666
+ }
667
+ ],
668
+ "description": "The permissions in the policy.\nAt least one of permission, prohibition, or obligation must be present."
669
+ },
670
+ "prohibition": {
671
+ "anyOf": [
672
+ {
673
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlProhibition"
674
+ },
675
+ {
676
+ "type": "array",
677
+ "items": {
678
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlProhibition"
679
+ }
680
+ }
681
+ ],
682
+ "description": "The prohibitions in the policy.\nAt least one of permission, prohibition, or obligation must be present."
683
+ },
684
+ "obligation": {
685
+ "anyOf": [
686
+ {
687
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlDuty"
688
+ },
689
+ {
690
+ "type": "array",
691
+ "items": {
692
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlDuty"
693
+ }
694
+ }
695
+ ],
696
+ "description": "The obligations in the policy.\nAt least one of permission, prohibition, or obligation must be present."
697
+ },
698
+ "@context": {
699
+ "$ref": "https://schema.twindev.org/w3c-odrl/OdrlContextType",
700
+ "description": "The context for the policy.\nMust include \"https://www.w3.org/ns/odrl.jsonld\""
701
+ }
702
+ },
703
+ "required": [
704
+ "@type",
705
+ "uid"
706
+ ],
707
+ "$comment": "Inlined utility base type OdrlPolicy so utility transformations can operate on concrete properties instead of a $ref."
317
708
  },
318
709
  "dcterms:accrualPeriodicity": {
319
710
  "type": "string",