@shaclmate/compiler 4.0.37 → 4.0.39

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 (162) hide show
  1. package/dist/ShapesGraphToAstTransformer.js +12 -12
  2. package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.js +24 -24
  3. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +4 -4
  4. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +1 -1
  5. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.js +16 -16
  6. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstTermType.js +1 -1
  7. package/dist/ast/AbstractCollectionType.d.ts +1 -1
  8. package/dist/ast/AbstractCompoundType.d.ts +1 -1
  9. package/dist/ast/AbstractCompoundType.js +15 -15
  10. package/dist/ast/AbstractContainerType.d.ts +1 -1
  11. package/dist/ast/AbstractContainerType.js +15 -15
  12. package/dist/ast/AbstractLazyObjectType.d.ts +1 -1
  13. package/dist/ast/AbstractTermType.d.ts +1 -1
  14. package/dist/ast/BlankNodeType.d.ts +1 -1
  15. package/dist/ast/BlankNodeType.js +1 -1
  16. package/dist/ast/DefaultValueType.d.ts +1 -1
  17. package/dist/ast/DefaultValueType.js +2 -2
  18. package/dist/ast/IdentifierType.d.ts +1 -1
  19. package/dist/ast/IdentifierType.js +1 -1
  20. package/dist/ast/IntersectionType.d.ts +1 -1
  21. package/dist/ast/IntersectionType.js +3 -3
  22. package/dist/ast/IriType.d.ts +1 -1
  23. package/dist/ast/IriType.js +1 -1
  24. package/dist/ast/LazyObjectOptionType.d.ts +1 -1
  25. package/dist/ast/LazyObjectOptionType.js +1 -1
  26. package/dist/ast/LazyObjectSetType.d.ts +1 -1
  27. package/dist/ast/LazyObjectSetType.js +1 -1
  28. package/dist/ast/LazyObjectType.d.ts +1 -1
  29. package/dist/ast/LazyObjectType.js +1 -1
  30. package/dist/ast/ListType.d.ts +1 -1
  31. package/dist/ast/ListType.js +16 -16
  32. package/dist/ast/LiteralType.d.ts +1 -1
  33. package/dist/ast/LiteralType.js +1 -1
  34. package/dist/ast/ObjectCompoundType.js +3 -3
  35. package/dist/ast/ObjectType.d.ts +1 -1
  36. package/dist/ast/ObjectType.js +16 -16
  37. package/dist/ast/OptionType.d.ts +1 -1
  38. package/dist/ast/OptionType.js +1 -1
  39. package/dist/ast/SetType.d.ts +1 -1
  40. package/dist/ast/SetType.js +1 -1
  41. package/dist/ast/TermType.d.ts +1 -1
  42. package/dist/ast/TermType.js +1 -1
  43. package/dist/ast/Type.js +15 -15
  44. package/dist/ast/UnionType.d.ts +1 -1
  45. package/dist/ast/UnionType.js +3 -3
  46. package/dist/generators/transformAstToLabeledPropertyGraph.js +10 -10
  47. package/dist/generators/ts/AbstractCollectionType.d.ts +1 -5
  48. package/dist/generators/ts/AbstractCollectionType.js +6 -5
  49. package/dist/generators/ts/AbstractContainerType.d.ts +3 -6
  50. package/dist/generators/ts/AbstractContainerType.js +34 -34
  51. package/dist/generators/ts/AbstractDateType.d.ts +1 -1
  52. package/dist/generators/ts/AbstractIdentifierType.d.ts +1 -1
  53. package/dist/generators/ts/AbstractLazyObjectType.d.ts +7 -10
  54. package/dist/generators/ts/AbstractLazyObjectType.js +20 -32
  55. package/dist/generators/ts/AbstractLiteralType.d.ts +1 -5
  56. package/dist/generators/ts/AbstractLiteralType.js +7 -6
  57. package/dist/generators/ts/AbstractNumericType.d.ts +1 -1
  58. package/dist/generators/ts/AbstractPrimitiveType.d.ts +2 -6
  59. package/dist/generators/ts/AbstractPrimitiveType.js +7 -8
  60. package/dist/generators/ts/AbstractTermType.d.ts +1 -5
  61. package/dist/generators/ts/AbstractTermType.js +1 -15
  62. package/dist/generators/ts/AbstractType.d.ts +7 -5
  63. package/dist/generators/ts/AbstractType.js +12 -7
  64. package/dist/generators/ts/AbstractUnionType.d.ts +7 -10
  65. package/dist/generators/ts/AbstractUnionType.js +70 -81
  66. package/dist/generators/ts/AnonymousUnionType.d.ts +1 -1
  67. package/dist/generators/ts/AnonymousUnionType.js +1 -1
  68. package/dist/generators/ts/BigDecimalType.d.ts +1 -1
  69. package/dist/generators/ts/BigDecimalType.js +1 -1
  70. package/dist/generators/ts/BigIntType.d.ts +1 -1
  71. package/dist/generators/ts/BigIntType.js +1 -1
  72. package/dist/generators/ts/BlankNodeType.d.ts +1 -1
  73. package/dist/generators/ts/BlankNodeType.js +1 -1
  74. package/dist/generators/ts/BooleanType.d.ts +1 -1
  75. package/dist/generators/ts/BooleanType.js +2 -2
  76. package/dist/generators/ts/DateTimeType.d.ts +1 -1
  77. package/dist/generators/ts/DateTimeType.js +1 -1
  78. package/dist/generators/ts/DateType.d.ts +1 -1
  79. package/dist/generators/ts/DateType.js +1 -1
  80. package/dist/generators/ts/DefaultValueType.d.ts +2 -6
  81. package/dist/generators/ts/DefaultValueType.js +12 -15
  82. package/dist/generators/ts/FloatType.d.ts +1 -1
  83. package/dist/generators/ts/FloatType.js +1 -1
  84. package/dist/generators/ts/IdentifierType.d.ts +1 -1
  85. package/dist/generators/ts/IdentifierType.js +1 -1
  86. package/dist/generators/ts/IntType.d.ts +1 -1
  87. package/dist/generators/ts/IntType.js +1 -1
  88. package/dist/generators/ts/IriType.d.ts +3 -1
  89. package/dist/generators/ts/IriType.js +22 -17
  90. package/dist/generators/ts/LazyObjectOptionType.d.ts +1 -1
  91. package/dist/generators/ts/LazyObjectOptionType.js +1 -1
  92. package/dist/generators/ts/LazyObjectSetType.d.ts +1 -1
  93. package/dist/generators/ts/LazyObjectSetType.js +1 -1
  94. package/dist/generators/ts/LazyObjectType.d.ts +1 -1
  95. package/dist/generators/ts/LazyObjectType.js +1 -1
  96. package/dist/generators/ts/ListType.d.ts +1 -1
  97. package/dist/generators/ts/ListType.js +24 -24
  98. package/dist/generators/ts/LiteralType.d.ts +2 -1
  99. package/dist/generators/ts/LiteralType.js +9 -2
  100. package/dist/generators/ts/NamedObjectType.d.ts +1 -0
  101. package/dist/generators/ts/NamedObjectType.js +2 -1
  102. package/dist/generators/ts/NamedObjectUnionType.d.ts +1 -1
  103. package/dist/generators/ts/NamedObjectUnionType.js +6 -8
  104. package/dist/generators/ts/NamedUnionType.d.ts +1 -1
  105. package/dist/generators/ts/NamedUnionType.js +1 -1
  106. package/dist/generators/ts/OptionType.d.ts +1 -5
  107. package/dist/generators/ts/OptionType.js +2 -8
  108. package/dist/generators/ts/RdfjsDatasetObjectSetType.js +1 -1
  109. package/dist/generators/ts/SetType.d.ts +1 -1
  110. package/dist/generators/ts/SetType.js +1 -1
  111. package/dist/generators/ts/Snippets.d.ts +1 -0
  112. package/dist/generators/ts/Snippets.js +7 -0
  113. package/dist/generators/ts/StringType.d.ts +1 -1
  114. package/dist/generators/ts/StringType.js +2 -2
  115. package/dist/generators/ts/TermType.d.ts +1 -1
  116. package/dist/generators/ts/TermType.js +1 -1
  117. package/dist/generators/ts/TypeFactory.js +18 -18
  118. package/dist/generators/ts/ZodGenerator.js +1 -1
  119. package/dist/generators/ts/_NamedObjectType/AbstractProperty.d.ts +7 -7
  120. package/dist/generators/ts/_NamedObjectType/AbstractProperty.js +8 -11
  121. package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.d.ts +2 -1
  122. package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.js +16 -7
  123. package/dist/generators/ts/_NamedObjectType/IdentifierProperty.d.ts +2 -1
  124. package/dist/generators/ts/_NamedObjectType/IdentifierProperty.js +6 -3
  125. package/dist/generators/ts/_NamedObjectType/NamedObjectType_equalsFunctionDeclaration.js +1 -1
  126. package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceFunctionDeclaration.js +3 -27
  127. package/dist/generators/ts/_NamedObjectType/NamedObjectType_hashFunctionDeclarations.js +2 -2
  128. package/dist/generators/ts/_NamedObjectType/NamedObjectType_interfaceDeclaration.js +1 -1
  129. package/dist/generators/ts/_NamedObjectType/NamedObjectType_schemaVariableStatement.js +1 -1
  130. package/dist/generators/ts/_NamedObjectType/ShaclProperty.d.ts +2 -6
  131. package/dist/generators/ts/_NamedObjectType/ShaclProperty.js +19 -23
  132. package/dist/generators/ts/_snippets/snippets_BooleanSchema.js +2 -2
  133. package/dist/generators/ts/_snippets/snippets_CollectionSchema.js +1 -1
  134. package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.js +1 -1
  135. package/dist/generators/ts/_snippets/snippets_IriSchema.js +2 -2
  136. package/dist/generators/ts/_snippets/snippets_MaybeSchema.js +2 -2
  137. package/dist/generators/ts/_snippets/snippets_ShaclPropertySchema.js +1 -1
  138. package/dist/generators/ts/_snippets/snippets_StringSchema.js +2 -2
  139. package/dist/generators/ts/_snippets/snippets_booleanSparqlWherePatterns.js +1 -1
  140. package/dist/generators/ts/_snippets/snippets_convertToIri.js +1 -1
  141. package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +1 -1
  142. package/dist/generators/ts/_snippets/snippets_ensureRdfResourceType.d.ts +3 -0
  143. package/dist/generators/ts/_snippets/snippets_ensureRdfResourceType.js +16 -0
  144. package/dist/generators/ts/_snippets/snippets_iriSparqlWherePatterns.js +1 -1
  145. package/dist/generators/ts/_snippets/snippets_listSparqlConstructTriples.js +2 -2
  146. package/dist/generators/ts/_snippets/snippets_listSparqlWherePatterns.js +2 -2
  147. package/dist/generators/ts/_snippets/snippets_maybeSparqlConstructTriples.js +1 -1
  148. package/dist/generators/ts/_snippets/snippets_maybeSparqlWherePatterns.js +3 -3
  149. package/dist/generators/ts/_snippets/snippets_monkeyPatchObject.js +2 -2
  150. package/dist/generators/ts/_snippets/snippets_setSparqlConstructTriples.js +1 -1
  151. package/dist/generators/ts/_snippets/snippets_setSparqlWherePatterns.js +1 -1
  152. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlConstructTriples.js +1 -1
  153. package/dist/generators/ts/_snippets/snippets_shaclPropertySparqlWherePatterns.js +1 -1
  154. package/dist/generators/ts/_snippets/snippets_stringSparqlWherePatterns.js +1 -1
  155. package/dist/generators/ts/_snippets/snippets_validateArray.js +1 -1
  156. package/dist/generators/ts/_snippets/snippets_validateMaybe.js +1 -1
  157. package/dist/generators/ts/tsComment.js +1 -1
  158. package/dist/input/generated.d.ts +1397 -1466
  159. package/dist/input/generated.js +520 -655
  160. package/package.json +6 -6
  161. package/dist/generators/ts/removeUndefined.d.ts +0 -2
  162. package/dist/generators/ts/removeUndefined.js +0 -17
@@ -88,6 +88,20 @@ function $convertWithDefaultValue(convertToItem, defaultValue) {
88
88
  return convertToItem(value);
89
89
  };
90
90
  }
91
+ function $ensureRdfResourceType(resource, types, options) {
92
+ return resource
93
+ .value($RdfVocabularies.rdf.type, options)
94
+ .chain((actualRdfTypeValue) => actualRdfTypeValue.toIri())
95
+ .chain((actualRdfType) => {
96
+ // Check the expected type and its known subtypes
97
+ for (const type of types) {
98
+ if (resource.isInstanceOf(type, options)) {
99
+ return Right(undefined);
100
+ }
101
+ }
102
+ return Left(new Error(`${resource.identifier} has unexpected RDF type (actual: ${actualRdfType}, expected one of ${types})`));
103
+ });
104
+ }
91
105
  export var $EqualsResult;
92
106
  (function ($EqualsResult) {
93
107
  $EqualsResult.Equal = Right(true);
@@ -133,14 +147,16 @@ function $identityValidationFunction(_schema, value) {
133
147
  const $literalFactory = new LiteralFactory({ dataFactory: dataFactory });
134
148
  function $monkeyPatchObject(obj, methods) {
135
149
  if (methods.toJson &&
136
- !globalThis.Object.prototype.hasOwnProperty.call(obj, "toJSON")) {
150
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toJSON") ||
151
+ typeof obj.toJSON === "function")) {
137
152
  const toJsonMethod = methods.toJson;
138
153
  obj.toJSON = function (_key) {
139
154
  return toJsonMethod(this);
140
155
  };
141
156
  }
142
157
  if (methods.$toString &&
143
- !globalThis.Object.prototype.hasOwnProperty.call(obj, "toString")) {
158
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toString") ||
159
+ typeof obj.toJSON === "function")) {
144
160
  const toStringMethod = methods.$toString;
145
161
  obj.toString = function () {
146
162
  return toStringMethod(this);
@@ -222,12 +238,12 @@ function $validateArray(validateItem, _readonly) {
222
238
  if (schema.minCount !== undefined && valueArray.length < schema.minCount) {
223
239
  return Left(new Error(`value array has length (${valueArray.length}) less than minCount (${schema.minCount})`));
224
240
  }
225
- return Either.sequence(valueArray.map((value) => validateItem(schema.item(), value)));
241
+ return Either.sequence(valueArray.map((value) => validateItem(schema.itemType, value)));
226
242
  };
227
243
  }
228
244
  function $validateMaybe(validateItem) {
229
245
  return (schema, valueMaybe) => valueMaybe
230
- .map((value) => validateItem(schema.item(), value).map(() => valueMaybe))
246
+ .map((value) => validateItem(schema.itemType, value).map(() => valueMaybe))
231
247
  .orDefault(Either.of(valueMaybe));
232
248
  }
233
249
  function $wrap_FromRdfResourceFunction(_fromRdfResourceFunction) {
@@ -266,42 +282,42 @@ export var PropertyShape;
266
282
  function create(parameters) {
267
283
  return $sequenceRecord({
268
284
  $identifier: $convertToIdentifierProperty(parameters.$identifier),
269
- and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type(), value)),
270
- classes: $convertToArray(($convertToIri), true)(parameters.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type(), value)),
271
- comment: $convertToMaybe($identityConversionFunction)(parameters.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
272
- datatype: $convertToMaybe(($convertToIri))(parameters.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type(), value)),
273
- deactivated: $convertToMaybe($identityConversionFunction)(parameters.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type(), value)),
274
- defaultValue: $convertToMaybe($identityConversionFunction)(parameters.defaultValue).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.defaultValue.type(), value)),
275
- description: $convertToMaybe($identityConversionFunction)(parameters.description).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.description.type(), value)),
285
+ and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type, value)),
286
+ classes: $convertToArray(($convertToIri), true)(parameters.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type, value)),
287
+ comment: $convertToMaybe($identityConversionFunction)(parameters.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
288
+ datatype: $convertToMaybe(($convertToIri))(parameters.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type, value)),
289
+ deactivated: $convertToMaybe($identityConversionFunction)(parameters.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type, value)),
290
+ defaultValue: $convertToMaybe($identityConversionFunction)(parameters.defaultValue).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.defaultValue.type, value)),
291
+ description: $convertToMaybe($identityConversionFunction)(parameters.description).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.description.type, value)),
276
292
  display: $convertWithDefaultValue($identityConversionFunction, false)(parameters.display),
277
- flags: $convertToArray($identityConversionFunction, true)(parameters.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type(), value)),
278
- groups: $convertToArray($convertToIdentifier, true)(parameters.groups).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.groups.type(), value)),
279
- hasValues: $convertToArray($identityConversionFunction, true)(parameters.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type(), value)),
280
- in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type(), value)),
281
- isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type(), value)),
282
- label: $convertToMaybe($identityConversionFunction)(parameters.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
283
- languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type(), value)),
284
- maxCount: $convertToMaybe($identityConversionFunction)(parameters.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type(), value)),
285
- maxExclusive: $convertToMaybe($convertToLiteral)(parameters.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type(), value)),
286
- maxInclusive: $convertToMaybe($convertToLiteral)(parameters.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type(), value)),
287
- maxLength: $convertToMaybe($identityConversionFunction)(parameters.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type(), value)),
288
- minCount: $convertToMaybe($identityConversionFunction)(parameters.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type(), value)),
289
- minExclusive: $convertToMaybe($convertToLiteral)(parameters.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type(), value)),
290
- minInclusive: $convertToMaybe($convertToLiteral)(parameters.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type(), value)),
291
- minLength: $convertToMaybe($identityConversionFunction)(parameters.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type(), value)),
292
- mutable: $convertToMaybe($identityConversionFunction)(parameters.mutable).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.mutable.type(), value)),
293
- name: $convertToMaybe($identityConversionFunction)(parameters.name).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.name.type(), value)),
294
- node: $convertToMaybe($convertToIdentifier)(parameters.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type(), value)),
295
- nodeKind: $convertToMaybe(($convertToIri))(parameters.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type(), value)),
296
- not: $convertToArray($convertToIdentifier, true)(parameters.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type(), value)),
297
- or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type(), value)),
298
- order: $convertToMaybe($identityConversionFunction)(parameters.order).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.order.type(), value)),
293
+ flags: $convertToArray($identityConversionFunction, true)(parameters.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type, value)),
294
+ groups: $convertToArray($convertToIdentifier, true)(parameters.groups).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.groups.type, value)),
295
+ hasValues: $convertToArray($identityConversionFunction, true)(parameters.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type, value)),
296
+ in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type, value)),
297
+ isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type, value)),
298
+ label: $convertToMaybe($identityConversionFunction)(parameters.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
299
+ languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type, value)),
300
+ maxCount: $convertToMaybe($identityConversionFunction)(parameters.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type, value)),
301
+ maxExclusive: $convertToMaybe($convertToLiteral)(parameters.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type, value)),
302
+ maxInclusive: $convertToMaybe($convertToLiteral)(parameters.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type, value)),
303
+ maxLength: $convertToMaybe($identityConversionFunction)(parameters.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type, value)),
304
+ minCount: $convertToMaybe($identityConversionFunction)(parameters.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type, value)),
305
+ minExclusive: $convertToMaybe($convertToLiteral)(parameters.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type, value)),
306
+ minInclusive: $convertToMaybe($convertToLiteral)(parameters.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type, value)),
307
+ minLength: $convertToMaybe($identityConversionFunction)(parameters.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type, value)),
308
+ mutable: $convertToMaybe($identityConversionFunction)(parameters.mutable).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.mutable.type, value)),
309
+ name: $convertToMaybe($identityConversionFunction)(parameters.name).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.name.type, value)),
310
+ node: $convertToMaybe($convertToIdentifier)(parameters.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type, value)),
311
+ nodeKind: $convertToMaybe(($convertToIri))(parameters.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type, value)),
312
+ not: $convertToArray($convertToIdentifier, true)(parameters.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type, value)),
313
+ or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type, value)),
314
+ order: $convertToMaybe($identityConversionFunction)(parameters.order).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.order.type, value)),
299
315
  path: Either.of(parameters.path),
300
- patterns: $convertToArray($identityConversionFunction, true)(parameters.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type(), value)),
301
- resolve: $convertToMaybe($convertToIdentifier)(parameters.resolve).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.resolve.type(), value)),
302
- shaclmateName: $convertToMaybe($identityConversionFunction)(parameters.shaclmateName).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.shaclmateName.type(), value)),
303
- uniqueLang: $convertToMaybe($identityConversionFunction)(parameters.uniqueLang).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.uniqueLang.type(), value)),
304
- xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
316
+ patterns: $convertToArray($identityConversionFunction, true)(parameters.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type, value)),
317
+ resolve: $convertToMaybe($convertToIdentifier)(parameters.resolve).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.resolve.type, value)),
318
+ shaclmateName: $convertToMaybe($identityConversionFunction)(parameters.shaclmateName).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.shaclmateName.type, value)),
319
+ uniqueLang: $convertToMaybe($identityConversionFunction)(parameters.uniqueLang).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.uniqueLang.type, value)),
320
+ xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type, value)),
305
321
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyShape" }, { $toString }));
306
322
  }
307
323
  PropertyShape.create = create;
@@ -316,22 +332,8 @@ export var PropertyShape;
316
332
  })(Identifier = PropertyShape.Identifier || (PropertyShape.Identifier = {}));
317
333
  PropertyShape._fromRdfResource = ($resource, _$options) => {
318
334
  return (!_$options.ignoreRdfType
319
- ? $resource
320
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
321
- .chain((actualRdfType) => actualRdfType.toIri())
322
- .chain((actualRdfType) => {
323
- // Check the expected type and its known subtypes
324
- switch (actualRdfType.value) {
325
- case "http://www.w3.org/ns/shacl#PropertyShape":
326
- return Right(true);
327
- }
328
- // Check arbitrary rdfs:subClassOf's of the expected type
329
- if ($resource.isInstanceOf(PropertyShape.fromRdfType, {
330
- graph: _$options.graph,
331
- })) {
332
- return Right(true);
333
- }
334
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
335
+ ? $ensureRdfResourceType($resource, [PropertyShape.fromRdfType], {
336
+ graph: _$options.graph,
335
337
  })
336
338
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
337
339
  $identifier: Right(new Resource.Value({
@@ -949,238 +951,217 @@ export var PropertyShape;
949
951
  properties: {
950
952
  $identifier: {
951
953
  kind: "Identifier",
952
- type: () => ({ kind: "Identifier" }),
953
- },
954
- $type: {
955
- kind: "Discriminant",
956
- type: () => ({
957
- kind: "TypeDiscriminant",
958
- ownValues: ["PropertyShape"],
959
- }),
954
+ type: { kind: "Identifier" },
960
955
  },
961
956
  and: {
962
957
  kind: "Shacl",
963
- type: () => ({
964
- kind: "Maybe",
965
- item: () => ({
966
- kind: "List",
967
- item: () => ({ kind: "Identifier" }),
968
- }),
969
- }),
970
958
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
959
+ type: {
960
+ kind: "Option",
961
+ itemType: {
962
+ kind: "List",
963
+ itemType: { kind: "Identifier" },
964
+ },
965
+ },
971
966
  },
972
967
  classes: {
973
968
  kind: "Shacl",
974
- type: () => ({
975
- kind: "Set",
976
- item: () => ({ kind: "Iri" }),
977
- }),
978
969
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
970
+ type: { kind: "Set", itemType: { kind: "Iri" } },
979
971
  },
980
972
  comment: {
981
973
  kind: "Shacl",
982
- type: () => ({
983
- kind: "Maybe",
984
- item: () => ({ kind: "String" }),
985
- }),
986
974
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
975
+ type: {
976
+ kind: "Option",
977
+ itemType: { kind: "String" },
978
+ },
987
979
  },
988
980
  datatype: {
989
981
  kind: "Shacl",
990
- type: () => ({
991
- kind: "Maybe",
992
- item: () => ({ kind: "Iri" }),
993
- }),
994
982
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
983
+ type: { kind: "Option", itemType: { kind: "Iri" } },
995
984
  },
996
985
  deactivated: {
997
986
  kind: "Shacl",
998
- type: () => ({
999
- kind: "Maybe",
1000
- item: () => ({ kind: "Boolean" }),
1001
- }),
1002
987
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
988
+ type: {
989
+ kind: "Option",
990
+ itemType: { kind: "Boolean" },
991
+ },
1003
992
  },
1004
993
  defaultValue: {
1005
994
  kind: "Shacl",
1006
- type: () => ({
1007
- kind: "Maybe",
1008
- item: () => ({ kind: "Term" }),
1009
- }),
1010
995
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#defaultValue"),
996
+ type: { kind: "Option", itemType: { kind: "Term" } },
1011
997
  },
1012
998
  description: {
1013
999
  kind: "Shacl",
1014
- type: () => ({
1015
- kind: "Maybe",
1016
- item: () => ({ kind: "String" }),
1017
- }),
1018
1000
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#description"),
1001
+ type: {
1002
+ kind: "Option",
1003
+ itemType: { kind: "String" },
1004
+ },
1019
1005
  },
1020
1006
  display: {
1021
1007
  kind: "Shacl",
1022
- type: () => ({
1008
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#display"),
1009
+ type: {
1023
1010
  kind: "DefaultValue",
1024
- item: () => ({ kind: "Boolean" }),
1011
+ itemType: { kind: "Boolean" },
1025
1012
  defaultValue: false,
1026
- }),
1027
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#display"),
1013
+ },
1028
1014
  },
1029
1015
  flags: {
1030
1016
  kind: "Shacl",
1031
- type: () => ({
1032
- kind: "Set",
1033
- item: () => ({ kind: "String" }),
1034
- }),
1035
1017
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
1018
+ type: { kind: "Set", itemType: { kind: "String" } },
1036
1019
  },
1037
1020
  groups: {
1038
1021
  kind: "Shacl",
1039
- type: () => ({
1040
- kind: "Set",
1041
- item: () => ({ kind: "Identifier" }),
1042
- }),
1043
1022
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#group"),
1023
+ type: {
1024
+ kind: "Set",
1025
+ itemType: { kind: "Identifier" },
1026
+ },
1044
1027
  },
1045
1028
  hasValues: {
1046
1029
  kind: "Shacl",
1047
- type: () => ({
1048
- kind: "Set",
1049
- item: () => ({ kind: "Term" }),
1050
- }),
1051
1030
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
1031
+ type: { kind: "Set", itemType: { kind: "Term" } },
1052
1032
  },
1053
1033
  in_: {
1054
1034
  kind: "Shacl",
1055
- type: () => ({
1056
- kind: "Maybe",
1057
- item: () => ({
1058
- kind: "List",
1059
- item: () => ({ kind: "Term" }),
1060
- }),
1061
- }),
1062
1035
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
1036
+ type: {
1037
+ kind: "Option",
1038
+ itemType: {
1039
+ kind: "List",
1040
+ itemType: { kind: "Term" },
1041
+ },
1042
+ },
1063
1043
  },
1064
1044
  isDefinedBy: {
1065
1045
  kind: "Shacl",
1066
- type: () => ({
1067
- kind: "Maybe",
1068
- item: () => ({ kind: "Identifier" }),
1069
- }),
1070
1046
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
1047
+ type: {
1048
+ kind: "Option",
1049
+ itemType: { kind: "Identifier" },
1050
+ },
1071
1051
  },
1072
1052
  label: {
1073
1053
  kind: "Shacl",
1074
- type: () => ({
1075
- kind: "Maybe",
1076
- item: () => ({ kind: "String" }),
1077
- }),
1078
1054
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
1055
+ type: {
1056
+ kind: "Option",
1057
+ itemType: { kind: "String" },
1058
+ },
1079
1059
  },
1080
1060
  languageIn: {
1081
1061
  kind: "Shacl",
1082
- type: () => ({
1083
- kind: "Maybe",
1084
- item: () => ({
1085
- kind: "List",
1086
- item: () => ({ kind: "String" }),
1087
- }),
1088
- }),
1089
1062
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
1063
+ type: {
1064
+ kind: "Option",
1065
+ itemType: {
1066
+ kind: "List",
1067
+ itemType: { kind: "String" },
1068
+ },
1069
+ },
1090
1070
  },
1091
1071
  maxCount: {
1092
1072
  kind: "Shacl",
1093
- type: () => ({
1094
- kind: "Maybe",
1095
- item: () => ({ kind: "BigInt" }),
1096
- }),
1097
1073
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
1074
+ type: {
1075
+ kind: "Option",
1076
+ itemType: { kind: "BigInt" },
1077
+ },
1098
1078
  },
1099
1079
  maxExclusive: {
1100
1080
  kind: "Shacl",
1101
- type: () => ({
1102
- kind: "Maybe",
1103
- item: () => ({ kind: "Literal" }),
1104
- }),
1105
1081
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
1082
+ type: {
1083
+ kind: "Option",
1084
+ itemType: { kind: "Literal" },
1085
+ },
1106
1086
  },
1107
1087
  maxInclusive: {
1108
1088
  kind: "Shacl",
1109
- type: () => ({
1110
- kind: "Maybe",
1111
- item: () => ({ kind: "Literal" }),
1112
- }),
1113
1089
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
1090
+ type: {
1091
+ kind: "Option",
1092
+ itemType: { kind: "Literal" },
1093
+ },
1114
1094
  },
1115
1095
  maxLength: {
1116
1096
  kind: "Shacl",
1117
- type: () => ({
1118
- kind: "Maybe",
1119
- item: () => ({ kind: "BigInt" }),
1120
- }),
1121
1097
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
1098
+ type: {
1099
+ kind: "Option",
1100
+ itemType: { kind: "BigInt" },
1101
+ },
1122
1102
  },
1123
1103
  minCount: {
1124
1104
  kind: "Shacl",
1125
- type: () => ({
1126
- kind: "Maybe",
1127
- item: () => ({ kind: "BigInt" }),
1128
- }),
1129
1105
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
1106
+ type: {
1107
+ kind: "Option",
1108
+ itemType: { kind: "BigInt" },
1109
+ },
1130
1110
  },
1131
1111
  minExclusive: {
1132
1112
  kind: "Shacl",
1133
- type: () => ({
1134
- kind: "Maybe",
1135
- item: () => ({ kind: "Literal" }),
1136
- }),
1137
1113
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
1114
+ type: {
1115
+ kind: "Option",
1116
+ itemType: { kind: "Literal" },
1117
+ },
1138
1118
  },
1139
1119
  minInclusive: {
1140
1120
  kind: "Shacl",
1141
- type: () => ({
1142
- kind: "Maybe",
1143
- item: () => ({ kind: "Literal" }),
1144
- }),
1145
1121
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
1122
+ type: {
1123
+ kind: "Option",
1124
+ itemType: { kind: "Literal" },
1125
+ },
1146
1126
  },
1147
1127
  minLength: {
1148
1128
  kind: "Shacl",
1149
- type: () => ({
1150
- kind: "Maybe",
1151
- item: () => ({ kind: "BigInt" }),
1152
- }),
1153
1129
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
1130
+ type: {
1131
+ kind: "Option",
1132
+ itemType: { kind: "BigInt" },
1133
+ },
1154
1134
  },
1155
1135
  mutable: {
1156
1136
  kind: "Shacl",
1157
- type: () => ({
1158
- kind: "Maybe",
1159
- item: () => ({ kind: "Boolean" }),
1160
- }),
1161
1137
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#mutable"),
1138
+ type: {
1139
+ kind: "Option",
1140
+ itemType: { kind: "Boolean" },
1141
+ },
1162
1142
  },
1163
1143
  name: {
1164
1144
  kind: "Shacl",
1165
- type: () => ({
1166
- kind: "Maybe",
1167
- item: () => ({ kind: "String" }),
1168
- }),
1169
1145
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#name"),
1146
+ type: {
1147
+ kind: "Option",
1148
+ itemType: { kind: "String" },
1149
+ },
1170
1150
  },
1171
1151
  node: {
1172
1152
  kind: "Shacl",
1173
- type: () => ({
1174
- kind: "Maybe",
1175
- item: () => ({ kind: "Identifier" }),
1176
- }),
1177
1153
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
1154
+ type: {
1155
+ kind: "Option",
1156
+ itemType: { kind: "Identifier" },
1157
+ },
1178
1158
  },
1179
1159
  nodeKind: {
1180
1160
  kind: "Shacl",
1181
- type: () => ({
1182
- kind: "Maybe",
1183
- item: () => ({
1161
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
1162
+ type: {
1163
+ kind: "Option",
1164
+ itemType: {
1184
1165
  kind: "Iri",
1185
1166
  in: [
1186
1167
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -1190,84 +1171,79 @@ export var PropertyShape;
1190
1171
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
1191
1172
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
1192
1173
  ],
1193
- }),
1194
- }),
1195
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
1174
+ },
1175
+ },
1196
1176
  },
1197
1177
  not: {
1198
1178
  kind: "Shacl",
1199
- type: () => ({
1200
- kind: "Set",
1201
- item: () => ({ kind: "Identifier" }),
1202
- }),
1203
1179
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
1180
+ type: {
1181
+ kind: "Set",
1182
+ itemType: { kind: "Identifier" },
1183
+ },
1204
1184
  },
1205
1185
  or: {
1206
1186
  kind: "Shacl",
1207
- type: () => ({
1208
- kind: "Maybe",
1209
- item: () => ({
1210
- kind: "List",
1211
- item: () => ({ kind: "Identifier" }),
1212
- }),
1213
- }),
1214
1187
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
1188
+ type: {
1189
+ kind: "Option",
1190
+ itemType: {
1191
+ kind: "List",
1192
+ itemType: { kind: "Identifier" },
1193
+ },
1194
+ },
1215
1195
  },
1216
1196
  order: {
1217
1197
  kind: "Shacl",
1218
- type: () => ({
1219
- kind: "Maybe",
1220
- item: () => ({ kind: "Float" }),
1221
- }),
1222
1198
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#order"),
1199
+ type: { kind: "Option", itemType: { kind: "Float" } },
1223
1200
  },
1224
1201
  path: {
1225
1202
  kind: "Shacl",
1226
- type: () => $PropertyPath.schema,
1227
1203
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#path"),
1204
+ get type() {
1205
+ return $PropertyPath.schema;
1206
+ },
1228
1207
  },
1229
1208
  patterns: {
1230
1209
  kind: "Shacl",
1231
- type: () => ({
1232
- kind: "Set",
1233
- item: () => ({ kind: "String" }),
1234
- }),
1235
1210
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
1211
+ type: { kind: "Set", itemType: { kind: "String" } },
1236
1212
  },
1237
1213
  resolve: {
1238
1214
  kind: "Shacl",
1239
- type: () => ({
1240
- kind: "Maybe",
1241
- item: () => ({ kind: "Identifier" }),
1242
- }),
1243
1215
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#resolve"),
1216
+ type: {
1217
+ kind: "Option",
1218
+ itemType: { kind: "Identifier" },
1219
+ },
1244
1220
  },
1245
1221
  shaclmateName: {
1246
1222
  kind: "Shacl",
1247
- type: () => ({
1248
- kind: "Maybe",
1249
- item: () => ({ kind: "String" }),
1250
- }),
1251
1223
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"),
1224
+ type: {
1225
+ kind: "Option",
1226
+ itemType: { kind: "String" },
1227
+ },
1252
1228
  },
1253
1229
  uniqueLang: {
1254
1230
  kind: "Shacl",
1255
- type: () => ({
1256
- kind: "Maybe",
1257
- item: () => ({ kind: "Boolean" }),
1258
- }),
1259
1231
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#uniqueLang"),
1232
+ type: {
1233
+ kind: "Option",
1234
+ itemType: { kind: "Boolean" },
1235
+ },
1260
1236
  },
1261
1237
  xone: {
1262
1238
  kind: "Shacl",
1263
- type: () => ({
1264
- kind: "Maybe",
1265
- item: () => ({
1266
- kind: "List",
1267
- item: () => ({ kind: "Identifier" }),
1268
- }),
1269
- }),
1270
1239
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
1240
+ type: {
1241
+ kind: "Option",
1242
+ itemType: {
1243
+ kind: "List",
1244
+ itemType: { kind: "Identifier" },
1245
+ },
1246
+ },
1271
1247
  },
1272
1248
  },
1273
1249
  };
@@ -1494,8 +1470,8 @@ export var PropertyGroup;
1494
1470
  function create(parameters) {
1495
1471
  return $sequenceRecord({
1496
1472
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1497
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1498
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1473
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1474
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1499
1475
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyGroup" }, { $toString }));
1500
1476
  }
1501
1477
  PropertyGroup.create = create;
@@ -1510,22 +1486,8 @@ export var PropertyGroup;
1510
1486
  })(Identifier = PropertyGroup.Identifier || (PropertyGroup.Identifier = {}));
1511
1487
  PropertyGroup._fromRdfResource = ($resource, _$options) => {
1512
1488
  return (!_$options.ignoreRdfType
1513
- ? $resource
1514
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1515
- .chain((actualRdfType) => actualRdfType.toIri())
1516
- .chain((actualRdfType) => {
1517
- // Check the expected type and its known subtypes
1518
- switch (actualRdfType.value) {
1519
- case "http://www.w3.org/ns/shacl#PropertyGroup":
1520
- return Right(true);
1521
- }
1522
- // Check arbitrary rdfs:subClassOf's of the expected type
1523
- if ($resource.isInstanceOf(PropertyGroup.fromRdfType, {
1524
- graph: _$options.graph,
1525
- })) {
1526
- return Right(true);
1527
- }
1528
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
1489
+ ? $ensureRdfResourceType($resource, [PropertyGroup.fromRdfType], {
1490
+ graph: _$options.graph,
1529
1491
  })
1530
1492
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1531
1493
  $identifier: Right(new Resource.Value({
@@ -1586,30 +1548,23 @@ export var PropertyGroup;
1586
1548
  properties: {
1587
1549
  $identifier: {
1588
1550
  kind: "Identifier",
1589
- type: () => ({ kind: "Identifier" }),
1590
- },
1591
- $type: {
1592
- kind: "Discriminant",
1593
- type: () => ({
1594
- kind: "TypeDiscriminant",
1595
- ownValues: ["PropertyGroup"],
1596
- }),
1551
+ type: { kind: "Identifier" },
1597
1552
  },
1598
1553
  comment: {
1599
1554
  kind: "Shacl",
1600
- type: () => ({
1601
- kind: "Maybe",
1602
- item: () => ({ kind: "String" }),
1603
- }),
1604
1555
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
1556
+ type: {
1557
+ kind: "Option",
1558
+ itemType: { kind: "String" },
1559
+ },
1605
1560
  },
1606
1561
  label: {
1607
1562
  kind: "Shacl",
1608
- type: () => ({
1609
- kind: "Maybe",
1610
- item: () => ({ kind: "String" }),
1611
- }),
1612
1563
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
1564
+ type: {
1565
+ kind: "Option",
1566
+ itemType: { kind: "String" },
1567
+ },
1613
1568
  },
1614
1569
  },
1615
1570
  };
@@ -1643,8 +1598,8 @@ export var Ontology;
1643
1598
  function create(parameters) {
1644
1599
  return $sequenceRecord({
1645
1600
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1646
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1647
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1601
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1602
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1648
1603
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "Ontology" }, { $toString }));
1649
1604
  }
1650
1605
  Ontology.create = create;
@@ -1659,22 +1614,8 @@ export var Ontology;
1659
1614
  })(Identifier = Ontology.Identifier || (Ontology.Identifier = {}));
1660
1615
  Ontology._fromRdfResource = ($resource, _$options) => {
1661
1616
  return (!_$options.ignoreRdfType
1662
- ? $resource
1663
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1664
- .chain((actualRdfType) => actualRdfType.toIri())
1665
- .chain((actualRdfType) => {
1666
- // Check the expected type and its known subtypes
1667
- switch (actualRdfType.value) {
1668
- case "http://www.w3.org/2002/07/owl#Ontology":
1669
- return Right(true);
1670
- }
1671
- // Check arbitrary rdfs:subClassOf's of the expected type
1672
- if ($resource.isInstanceOf(Ontology.fromRdfType, {
1673
- graph: _$options.graph,
1674
- })) {
1675
- return Right(true);
1676
- }
1677
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1617
+ ? $ensureRdfResourceType($resource, [Ontology.fromRdfType], {
1618
+ graph: _$options.graph,
1678
1619
  })
1679
1620
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1680
1621
  $identifier: Right(new Resource.Value({
@@ -1735,30 +1676,23 @@ export var Ontology;
1735
1676
  properties: {
1736
1677
  $identifier: {
1737
1678
  kind: "Identifier",
1738
- type: () => ({ kind: "Identifier" }),
1739
- },
1740
- $type: {
1741
- kind: "Discriminant",
1742
- type: () => ({
1743
- kind: "TypeDiscriminant",
1744
- ownValues: ["Ontology"],
1745
- }),
1679
+ type: { kind: "Identifier" },
1746
1680
  },
1747
1681
  comment: {
1748
1682
  kind: "Shacl",
1749
- type: () => ({
1750
- kind: "Maybe",
1751
- item: () => ({ kind: "String" }),
1752
- }),
1753
1683
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
1684
+ type: {
1685
+ kind: "Option",
1686
+ itemType: { kind: "String" },
1687
+ },
1754
1688
  },
1755
1689
  label: {
1756
1690
  kind: "Shacl",
1757
- type: () => ({
1758
- kind: "Maybe",
1759
- item: () => ({ kind: "String" }),
1760
- }),
1761
1691
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
1692
+ type: {
1693
+ kind: "Option",
1694
+ itemType: { kind: "String" },
1695
+ },
1762
1696
  },
1763
1697
  },
1764
1698
  };
@@ -1792,44 +1726,44 @@ export var NodeShape;
1792
1726
  function create(parameters) {
1793
1727
  return $sequenceRecord({
1794
1728
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1795
- and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type(), value)),
1796
- classes: $convertToArray(($convertToIri), true)(parameters?.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type(), value)),
1797
- closed: $convertToMaybe($identityConversionFunction)(parameters?.closed).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.closed.type(), value)),
1798
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1799
- datatype: $convertToMaybe(($convertToIri))(parameters?.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type(), value)),
1800
- deactivated: $convertToMaybe($identityConversionFunction)(parameters?.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type(), value)),
1801
- discriminantValue: $convertToMaybe($identityConversionFunction)(parameters?.discriminantValue).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.discriminantValue.type(), value)),
1802
- extern: $convertToMaybe($identityConversionFunction)(parameters?.extern).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.extern.type(), value)),
1803
- flags: $convertToArray($identityConversionFunction, true)(parameters?.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type(), value)),
1804
- fromRdfType: $convertToMaybe(($convertToIri))(parameters?.fromRdfType).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.fromRdfType.type(), value)),
1805
- hasValues: $convertToArray($identityConversionFunction, true)(parameters?.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type(), value)),
1806
- ignoredProperties: $convertToMaybe($convertToArray(($convertToIri), true))(parameters?.ignoredProperties).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(NodeShape.schema.properties.ignoredProperties.type(), value)),
1807
- in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type(), value)),
1808
- isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters?.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type(), value)),
1809
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1810
- languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type(), value)),
1811
- maxCount: $convertToMaybe($identityConversionFunction)(parameters?.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type(), value)),
1812
- maxExclusive: $convertToMaybe($convertToLiteral)(parameters?.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type(), value)),
1813
- maxInclusive: $convertToMaybe($convertToLiteral)(parameters?.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type(), value)),
1814
- maxLength: $convertToMaybe($identityConversionFunction)(parameters?.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type(), value)),
1815
- minCount: $convertToMaybe($identityConversionFunction)(parameters?.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type(), value)),
1816
- minExclusive: $convertToMaybe($convertToLiteral)(parameters?.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type(), value)),
1817
- minInclusive: $convertToMaybe($convertToLiteral)(parameters?.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type(), value)),
1818
- minLength: $convertToMaybe($identityConversionFunction)(parameters?.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type(), value)),
1819
- mutable: $convertToMaybe($identityConversionFunction)(parameters?.mutable).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.mutable.type(), value)),
1820
- node: $convertToMaybe($convertToIdentifier)(parameters?.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type(), value)),
1821
- nodeKind: $convertToMaybe(($convertToIri))(parameters?.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type(), value)),
1822
- not: $convertToArray($convertToIdentifier, true)(parameters?.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type(), value)),
1823
- or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type(), value)),
1824
- patterns: $convertToArray($identityConversionFunction, true)(parameters?.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type(), value)),
1825
- properties: $convertToArray($convertToIdentifier, true)(parameters?.properties).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.properties.type(), value)),
1826
- rdfType: $convertToMaybe(($convertToIri))(parameters?.rdfType).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.rdfType.type(), value)),
1827
- shaclmateName: $convertToMaybe($identityConversionFunction)(parameters?.shaclmateName).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.shaclmateName.type(), value)),
1828
- subClassOf: $convertToArray(($convertToIri), true)(parameters?.subClassOf).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.subClassOf.type(), value)),
1829
- toRdfTypes: $convertToArray(($convertToIri), true)(parameters?.toRdfTypes).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.toRdfTypes.type(), value)),
1830
- tsImports: $convertToArray($identityConversionFunction, true)(parameters?.tsImports).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.tsImports.type(), value)),
1831
- types: $convertToArray(($convertToIri), true)(parameters?.types).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.types.type(), value)),
1832
- xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
1729
+ and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type, value)),
1730
+ classes: $convertToArray(($convertToIri), true)(parameters?.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type, value)),
1731
+ closed: $convertToMaybe($identityConversionFunction)(parameters?.closed).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.closed.type, value)),
1732
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1733
+ datatype: $convertToMaybe(($convertToIri))(parameters?.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type, value)),
1734
+ deactivated: $convertToMaybe($identityConversionFunction)(parameters?.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type, value)),
1735
+ discriminantValue: $convertToMaybe($identityConversionFunction)(parameters?.discriminantValue).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.discriminantValue.type, value)),
1736
+ extern: $convertToMaybe($identityConversionFunction)(parameters?.extern).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.extern.type, value)),
1737
+ flags: $convertToArray($identityConversionFunction, true)(parameters?.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type, value)),
1738
+ fromRdfType: $convertToMaybe(($convertToIri))(parameters?.fromRdfType).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.fromRdfType.type, value)),
1739
+ hasValues: $convertToArray($identityConversionFunction, true)(parameters?.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type, value)),
1740
+ ignoredProperties: $convertToMaybe($convertToArray(($convertToIri), true))(parameters?.ignoredProperties).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(NodeShape.schema.properties.ignoredProperties.type, value)),
1741
+ in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type, value)),
1742
+ isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters?.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type, value)),
1743
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1744
+ languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type, value)),
1745
+ maxCount: $convertToMaybe($identityConversionFunction)(parameters?.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type, value)),
1746
+ maxExclusive: $convertToMaybe($convertToLiteral)(parameters?.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type, value)),
1747
+ maxInclusive: $convertToMaybe($convertToLiteral)(parameters?.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type, value)),
1748
+ maxLength: $convertToMaybe($identityConversionFunction)(parameters?.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type, value)),
1749
+ minCount: $convertToMaybe($identityConversionFunction)(parameters?.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type, value)),
1750
+ minExclusive: $convertToMaybe($convertToLiteral)(parameters?.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type, value)),
1751
+ minInclusive: $convertToMaybe($convertToLiteral)(parameters?.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type, value)),
1752
+ minLength: $convertToMaybe($identityConversionFunction)(parameters?.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type, value)),
1753
+ mutable: $convertToMaybe($identityConversionFunction)(parameters?.mutable).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.mutable.type, value)),
1754
+ node: $convertToMaybe($convertToIdentifier)(parameters?.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type, value)),
1755
+ nodeKind: $convertToMaybe(($convertToIri))(parameters?.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type, value)),
1756
+ not: $convertToArray($convertToIdentifier, true)(parameters?.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type, value)),
1757
+ or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type, value)),
1758
+ patterns: $convertToArray($identityConversionFunction, true)(parameters?.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type, value)),
1759
+ properties: $convertToArray($convertToIdentifier, true)(parameters?.properties).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.properties.type, value)),
1760
+ rdfType: $convertToMaybe(($convertToIri))(parameters?.rdfType).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.rdfType.type, value)),
1761
+ shaclmateName: $convertToMaybe($identityConversionFunction)(parameters?.shaclmateName).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.shaclmateName.type, value)),
1762
+ subClassOf: $convertToArray(($convertToIri), true)(parameters?.subClassOf).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.subClassOf.type, value)),
1763
+ toRdfTypes: $convertToArray(($convertToIri), true)(parameters?.toRdfTypes).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.toRdfTypes.type, value)),
1764
+ tsImports: $convertToArray($identityConversionFunction, true)(parameters?.tsImports).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.tsImports.type, value)),
1765
+ types: $convertToArray(($convertToIri), true)(parameters?.types).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.types.type, value)),
1766
+ xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type, value)),
1833
1767
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "NodeShape" }, { $toString }));
1834
1768
  }
1835
1769
  NodeShape.create = create;
@@ -1844,22 +1778,8 @@ export var NodeShape;
1844
1778
  })(Identifier = NodeShape.Identifier || (NodeShape.Identifier = {}));
1845
1779
  NodeShape._fromRdfResource = ($resource, _$options) => {
1846
1780
  return (!_$options.ignoreRdfType
1847
- ? $resource
1848
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1849
- .chain((actualRdfType) => actualRdfType.toIri())
1850
- .chain((actualRdfType) => {
1851
- // Check the expected type and its known subtypes
1852
- switch (actualRdfType.value) {
1853
- case "http://www.w3.org/ns/shacl#NodeShape":
1854
- return Right(true);
1855
- }
1856
- // Check arbitrary rdfs:subClassOf's of the expected type
1857
- if ($resource.isInstanceOf(NodeShape.fromRdfType, {
1858
- graph: _$options.graph,
1859
- })) {
1860
- return Right(true);
1861
- }
1862
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#NodeShape)`));
1781
+ ? $ensureRdfResourceType($resource, [NodeShape.fromRdfType], {
1782
+ graph: _$options.graph,
1863
1783
  })
1864
1784
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1865
1785
  $identifier: Right(new Resource.Value({
@@ -2494,240 +2414,219 @@ export var NodeShape;
2494
2414
  properties: {
2495
2415
  $identifier: {
2496
2416
  kind: "Identifier",
2497
- type: () => ({ kind: "Identifier" }),
2498
- },
2499
- $type: {
2500
- kind: "Discriminant",
2501
- type: () => ({
2502
- kind: "TypeDiscriminant",
2503
- ownValues: ["NodeShape"],
2504
- }),
2417
+ type: { kind: "Identifier" },
2505
2418
  },
2506
2419
  and: {
2507
2420
  kind: "Shacl",
2508
- type: () => ({
2509
- kind: "Maybe",
2510
- item: () => ({
2511
- kind: "List",
2512
- item: () => ({ kind: "Identifier" }),
2513
- }),
2514
- }),
2515
2421
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
2422
+ type: {
2423
+ kind: "Option",
2424
+ itemType: {
2425
+ kind: "List",
2426
+ itemType: { kind: "Identifier" },
2427
+ },
2428
+ },
2516
2429
  },
2517
2430
  classes: {
2518
2431
  kind: "Shacl",
2519
- type: () => ({
2520
- kind: "Set",
2521
- item: () => ({ kind: "Iri" }),
2522
- }),
2523
2432
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
2433
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2524
2434
  },
2525
2435
  closed: {
2526
2436
  kind: "Shacl",
2527
- type: () => ({
2528
- kind: "Maybe",
2529
- item: () => ({ kind: "Boolean" }),
2530
- }),
2531
2437
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#closed"),
2438
+ type: {
2439
+ kind: "Option",
2440
+ itemType: { kind: "Boolean" },
2441
+ },
2532
2442
  },
2533
2443
  comment: {
2534
2444
  kind: "Shacl",
2535
- type: () => ({
2536
- kind: "Maybe",
2537
- item: () => ({ kind: "String" }),
2538
- }),
2539
2445
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2446
+ type: {
2447
+ kind: "Option",
2448
+ itemType: { kind: "String" },
2449
+ },
2540
2450
  },
2541
2451
  datatype: {
2542
2452
  kind: "Shacl",
2543
- type: () => ({
2544
- kind: "Maybe",
2545
- item: () => ({ kind: "Iri" }),
2546
- }),
2547
2453
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
2454
+ type: { kind: "Option", itemType: { kind: "Iri" } },
2548
2455
  },
2549
2456
  deactivated: {
2550
2457
  kind: "Shacl",
2551
- type: () => ({
2552
- kind: "Maybe",
2553
- item: () => ({ kind: "Boolean" }),
2554
- }),
2555
2458
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
2459
+ type: {
2460
+ kind: "Option",
2461
+ itemType: { kind: "Boolean" },
2462
+ },
2556
2463
  },
2557
2464
  discriminantValue: {
2558
2465
  kind: "Shacl",
2559
- type: () => ({
2560
- kind: "Maybe",
2561
- item: () => ({ kind: "String" }),
2562
- }),
2563
2466
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#discriminantValue"),
2467
+ type: {
2468
+ kind: "Option",
2469
+ itemType: { kind: "String" },
2470
+ },
2564
2471
  },
2565
2472
  extern: {
2566
2473
  kind: "Shacl",
2567
- type: () => ({
2568
- kind: "Maybe",
2569
- item: () => ({ kind: "Boolean" }),
2570
- }),
2571
2474
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#extern"),
2475
+ type: {
2476
+ kind: "Option",
2477
+ itemType: { kind: "Boolean" },
2478
+ },
2572
2479
  },
2573
2480
  flags: {
2574
2481
  kind: "Shacl",
2575
- type: () => ({
2576
- kind: "Set",
2577
- item: () => ({ kind: "String" }),
2578
- }),
2579
2482
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
2483
+ type: { kind: "Set", itemType: { kind: "String" } },
2580
2484
  },
2581
2485
  fromRdfType: {
2582
2486
  kind: "Shacl",
2583
- type: () => ({
2584
- kind: "Maybe",
2585
- item: () => ({ kind: "Iri" }),
2586
- }),
2587
2487
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#fromRdfType"),
2488
+ type: { kind: "Option", itemType: { kind: "Iri" } },
2588
2489
  },
2589
2490
  hasValues: {
2590
2491
  kind: "Shacl",
2591
- type: () => ({
2592
- kind: "Set",
2593
- item: () => ({ kind: "Term" }),
2594
- }),
2595
2492
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
2493
+ type: { kind: "Set", itemType: { kind: "Term" } },
2596
2494
  },
2597
2495
  ignoredProperties: {
2598
2496
  kind: "Shacl",
2599
- type: () => ({
2600
- kind: "Maybe",
2601
- item: () => ({
2602
- kind: "List",
2603
- item: () => ({ kind: "Iri" }),
2604
- }),
2605
- }),
2606
2497
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#ignoredProperties"),
2498
+ type: {
2499
+ kind: "Option",
2500
+ itemType: {
2501
+ kind: "List",
2502
+ itemType: { kind: "Iri" },
2503
+ },
2504
+ },
2607
2505
  },
2608
2506
  in_: {
2609
2507
  kind: "Shacl",
2610
- type: () => ({
2611
- kind: "Maybe",
2612
- item: () => ({
2613
- kind: "List",
2614
- item: () => ({ kind: "Term" }),
2615
- }),
2616
- }),
2617
2508
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
2509
+ type: {
2510
+ kind: "Option",
2511
+ itemType: {
2512
+ kind: "List",
2513
+ itemType: { kind: "Term" },
2514
+ },
2515
+ },
2618
2516
  },
2619
2517
  isDefinedBy: {
2620
2518
  kind: "Shacl",
2621
- type: () => ({
2622
- kind: "Maybe",
2623
- item: () => ({ kind: "Identifier" }),
2624
- }),
2625
2519
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
2520
+ type: {
2521
+ kind: "Option",
2522
+ itemType: { kind: "Identifier" },
2523
+ },
2626
2524
  },
2627
2525
  label: {
2628
2526
  kind: "Shacl",
2629
- type: () => ({
2630
- kind: "Maybe",
2631
- item: () => ({ kind: "String" }),
2632
- }),
2633
2527
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2528
+ type: {
2529
+ kind: "Option",
2530
+ itemType: { kind: "String" },
2531
+ },
2634
2532
  },
2635
2533
  languageIn: {
2636
2534
  kind: "Shacl",
2637
- type: () => ({
2638
- kind: "Maybe",
2639
- item: () => ({
2640
- kind: "List",
2641
- item: () => ({ kind: "String" }),
2642
- }),
2643
- }),
2644
2535
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
2536
+ type: {
2537
+ kind: "Option",
2538
+ itemType: {
2539
+ kind: "List",
2540
+ itemType: { kind: "String" },
2541
+ },
2542
+ },
2645
2543
  },
2646
2544
  maxCount: {
2647
2545
  kind: "Shacl",
2648
- type: () => ({
2649
- kind: "Maybe",
2650
- item: () => ({ kind: "BigInt" }),
2651
- }),
2652
2546
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
2547
+ type: {
2548
+ kind: "Option",
2549
+ itemType: { kind: "BigInt" },
2550
+ },
2653
2551
  },
2654
2552
  maxExclusive: {
2655
2553
  kind: "Shacl",
2656
- type: () => ({
2657
- kind: "Maybe",
2658
- item: () => ({ kind: "Literal" }),
2659
- }),
2660
2554
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
2555
+ type: {
2556
+ kind: "Option",
2557
+ itemType: { kind: "Literal" },
2558
+ },
2661
2559
  },
2662
2560
  maxInclusive: {
2663
2561
  kind: "Shacl",
2664
- type: () => ({
2665
- kind: "Maybe",
2666
- item: () => ({ kind: "Literal" }),
2667
- }),
2668
2562
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
2563
+ type: {
2564
+ kind: "Option",
2565
+ itemType: { kind: "Literal" },
2566
+ },
2669
2567
  },
2670
2568
  maxLength: {
2671
2569
  kind: "Shacl",
2672
- type: () => ({
2673
- kind: "Maybe",
2674
- item: () => ({ kind: "BigInt" }),
2675
- }),
2676
2570
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
2571
+ type: {
2572
+ kind: "Option",
2573
+ itemType: { kind: "BigInt" },
2574
+ },
2677
2575
  },
2678
2576
  minCount: {
2679
2577
  kind: "Shacl",
2680
- type: () => ({
2681
- kind: "Maybe",
2682
- item: () => ({ kind: "BigInt" }),
2683
- }),
2684
2578
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
2579
+ type: {
2580
+ kind: "Option",
2581
+ itemType: { kind: "BigInt" },
2582
+ },
2685
2583
  },
2686
2584
  minExclusive: {
2687
2585
  kind: "Shacl",
2688
- type: () => ({
2689
- kind: "Maybe",
2690
- item: () => ({ kind: "Literal" }),
2691
- }),
2692
2586
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
2587
+ type: {
2588
+ kind: "Option",
2589
+ itemType: { kind: "Literal" },
2590
+ },
2693
2591
  },
2694
2592
  minInclusive: {
2695
2593
  kind: "Shacl",
2696
- type: () => ({
2697
- kind: "Maybe",
2698
- item: () => ({ kind: "Literal" }),
2699
- }),
2700
2594
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
2595
+ type: {
2596
+ kind: "Option",
2597
+ itemType: { kind: "Literal" },
2598
+ },
2701
2599
  },
2702
2600
  minLength: {
2703
2601
  kind: "Shacl",
2704
- type: () => ({
2705
- kind: "Maybe",
2706
- item: () => ({ kind: "BigInt" }),
2707
- }),
2708
2602
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
2603
+ type: {
2604
+ kind: "Option",
2605
+ itemType: { kind: "BigInt" },
2606
+ },
2709
2607
  },
2710
2608
  mutable: {
2711
2609
  kind: "Shacl",
2712
- type: () => ({
2713
- kind: "Maybe",
2714
- item: () => ({ kind: "Boolean" }),
2715
- }),
2716
2610
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#mutable"),
2611
+ type: {
2612
+ kind: "Option",
2613
+ itemType: { kind: "Boolean" },
2614
+ },
2717
2615
  },
2718
2616
  node: {
2719
2617
  kind: "Shacl",
2720
- type: () => ({
2721
- kind: "Maybe",
2722
- item: () => ({ kind: "Identifier" }),
2723
- }),
2724
2618
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
2619
+ type: {
2620
+ kind: "Option",
2621
+ itemType: { kind: "Identifier" },
2622
+ },
2725
2623
  },
2726
2624
  nodeKind: {
2727
2625
  kind: "Shacl",
2728
- type: () => ({
2729
- kind: "Maybe",
2730
- item: () => ({
2626
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2627
+ type: {
2628
+ kind: "Option",
2629
+ itemType: {
2731
2630
  kind: "Iri",
2732
2631
  in: [
2733
2632
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -2737,103 +2636,84 @@ export var NodeShape;
2737
2636
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
2738
2637
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
2739
2638
  ],
2740
- }),
2741
- }),
2742
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2639
+ },
2640
+ },
2743
2641
  },
2744
2642
  not: {
2745
2643
  kind: "Shacl",
2746
- type: () => ({
2747
- kind: "Set",
2748
- item: () => ({ kind: "Identifier" }),
2749
- }),
2750
2644
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
2645
+ type: {
2646
+ kind: "Set",
2647
+ itemType: { kind: "Identifier" },
2648
+ },
2751
2649
  },
2752
2650
  or: {
2753
2651
  kind: "Shacl",
2754
- type: () => ({
2755
- kind: "Maybe",
2756
- item: () => ({
2757
- kind: "List",
2758
- item: () => ({ kind: "Identifier" }),
2759
- }),
2760
- }),
2761
2652
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
2653
+ type: {
2654
+ kind: "Option",
2655
+ itemType: {
2656
+ kind: "List",
2657
+ itemType: { kind: "Identifier" },
2658
+ },
2659
+ },
2762
2660
  },
2763
2661
  patterns: {
2764
2662
  kind: "Shacl",
2765
- type: () => ({
2766
- kind: "Set",
2767
- item: () => ({ kind: "String" }),
2768
- }),
2769
2663
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
2664
+ type: { kind: "Set", itemType: { kind: "String" } },
2770
2665
  },
2771
2666
  properties: {
2772
2667
  kind: "Shacl",
2773
- type: () => ({
2774
- kind: "Set",
2775
- item: () => ({ kind: "Identifier" }),
2776
- }),
2777
2668
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#property"),
2669
+ type: {
2670
+ kind: "Set",
2671
+ itemType: { kind: "Identifier" },
2672
+ },
2778
2673
  },
2779
2674
  rdfType: {
2780
2675
  kind: "Shacl",
2781
- type: () => ({
2782
- kind: "Maybe",
2783
- item: () => ({ kind: "Iri" }),
2784
- }),
2785
2676
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#rdfType"),
2677
+ type: { kind: "Option", itemType: { kind: "Iri" } },
2786
2678
  },
2787
2679
  shaclmateName: {
2788
2680
  kind: "Shacl",
2789
- type: () => ({
2790
- kind: "Maybe",
2791
- item: () => ({ kind: "String" }),
2792
- }),
2793
2681
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"),
2682
+ type: {
2683
+ kind: "Option",
2684
+ itemType: { kind: "String" },
2685
+ },
2794
2686
  },
2795
2687
  subClassOf: {
2796
2688
  kind: "Shacl",
2797
- type: () => ({
2798
- kind: "Set",
2799
- item: () => ({ kind: "Iri" }),
2800
- }),
2801
2689
  path: $RdfVocabularies.rdfs.subClassOf,
2690
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2802
2691
  },
2803
2692
  toRdfTypes: {
2804
2693
  kind: "Shacl",
2805
- type: () => ({
2806
- kind: "Set",
2807
- item: () => ({ kind: "Iri" }),
2808
- }),
2809
2694
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#toRdfType"),
2695
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2810
2696
  },
2811
2697
  tsImports: {
2812
2698
  kind: "Shacl",
2813
- type: () => ({
2814
- kind: "Set",
2815
- item: () => ({ kind: "String" }),
2816
- }),
2817
2699
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"),
2700
+ type: { kind: "Set", itemType: { kind: "String" } },
2818
2701
  },
2819
2702
  types: {
2820
2703
  kind: "Shacl",
2821
- type: () => ({
2822
- kind: "Set",
2823
- item: () => ({ kind: "Iri" }),
2824
- }),
2825
2704
  path: $RdfVocabularies.rdf.type,
2705
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2826
2706
  },
2827
2707
  xone: {
2828
2708
  kind: "Shacl",
2829
- type: () => ({
2830
- kind: "Maybe",
2831
- item: () => ({
2832
- kind: "List",
2833
- item: () => ({ kind: "Identifier" }),
2834
- }),
2835
- }),
2836
2709
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
2710
+ type: {
2711
+ kind: "Option",
2712
+ itemType: {
2713
+ kind: "List",
2714
+ itemType: { kind: "Identifier" },
2715
+ },
2716
+ },
2837
2717
  },
2838
2718
  },
2839
2719
  };
@@ -3126,186 +3006,175 @@ export var Shape;
3126
3006
  properties: {
3127
3007
  and: {
3128
3008
  kind: "Shacl",
3129
- type: () => ({
3130
- kind: "Maybe",
3131
- item: () => ({
3132
- kind: "List",
3133
- item: () => ({ kind: "Identifier" }),
3134
- }),
3135
- }),
3136
3009
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
3010
+ type: {
3011
+ kind: "Option",
3012
+ itemType: {
3013
+ kind: "List",
3014
+ itemType: { kind: "Identifier" },
3015
+ },
3016
+ },
3137
3017
  },
3138
3018
  classes: {
3139
3019
  kind: "Shacl",
3140
- type: () => ({
3141
- kind: "Set",
3142
- item: () => ({ kind: "Iri" }),
3143
- }),
3144
3020
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
3021
+ type: { kind: "Set", itemType: { kind: "Iri" } },
3145
3022
  },
3146
3023
  comment: {
3147
3024
  kind: "Shacl",
3148
- type: () => ({
3149
- kind: "Maybe",
3150
- item: () => ({ kind: "String" }),
3151
- }),
3152
3025
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
3026
+ type: {
3027
+ kind: "Option",
3028
+ itemType: { kind: "String" },
3029
+ },
3153
3030
  },
3154
3031
  datatype: {
3155
3032
  kind: "Shacl",
3156
- type: () => ({
3157
- kind: "Maybe",
3158
- item: () => ({ kind: "Iri" }),
3159
- }),
3160
3033
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
3034
+ type: { kind: "Option", itemType: { kind: "Iri" } },
3161
3035
  },
3162
3036
  deactivated: {
3163
3037
  kind: "Shacl",
3164
- type: () => ({
3165
- kind: "Maybe",
3166
- item: () => ({ kind: "Boolean" }),
3167
- }),
3168
3038
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
3039
+ type: {
3040
+ kind: "Option",
3041
+ itemType: { kind: "Boolean" },
3042
+ },
3169
3043
  },
3170
3044
  flags: {
3171
3045
  kind: "Shacl",
3172
- type: () => ({
3173
- kind: "Set",
3174
- item: () => ({ kind: "String" }),
3175
- }),
3176
3046
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
3047
+ type: { kind: "Set", itemType: { kind: "String" } },
3177
3048
  },
3178
3049
  hasValues: {
3179
3050
  kind: "Shacl",
3180
- type: () => ({
3181
- kind: "Set",
3182
- item: () => ({ kind: "Term" }),
3183
- }),
3184
3051
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
3052
+ type: { kind: "Set", itemType: { kind: "Term" } },
3185
3053
  },
3186
3054
  in_: {
3187
3055
  kind: "Shacl",
3188
- type: () => ({
3189
- kind: "Maybe",
3190
- item: () => ({
3191
- kind: "List",
3192
- item: () => ({ kind: "Term" }),
3193
- }),
3194
- }),
3195
3056
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
3057
+ type: {
3058
+ kind: "Option",
3059
+ itemType: {
3060
+ kind: "List",
3061
+ itemType: { kind: "Term" },
3062
+ },
3063
+ },
3196
3064
  },
3197
3065
  isDefinedBy: {
3198
3066
  kind: "Shacl",
3199
- type: () => ({
3200
- kind: "Maybe",
3201
- item: () => ({ kind: "Identifier" }),
3202
- }),
3203
3067
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
3068
+ type: {
3069
+ kind: "Option",
3070
+ itemType: { kind: "Identifier" },
3071
+ },
3204
3072
  },
3205
3073
  label: {
3206
3074
  kind: "Shacl",
3207
- type: () => ({
3208
- kind: "Maybe",
3209
- item: () => ({ kind: "String" }),
3210
- }),
3211
3075
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
3076
+ type: {
3077
+ kind: "Option",
3078
+ itemType: { kind: "String" },
3079
+ },
3212
3080
  },
3213
3081
  languageIn: {
3214
3082
  kind: "Shacl",
3215
- type: () => ({
3216
- kind: "Maybe",
3217
- item: () => ({
3218
- kind: "List",
3219
- item: () => ({ kind: "String" }),
3220
- }),
3221
- }),
3222
3083
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
3084
+ type: {
3085
+ kind: "Option",
3086
+ itemType: {
3087
+ kind: "List",
3088
+ itemType: { kind: "String" },
3089
+ },
3090
+ },
3223
3091
  },
3224
3092
  maxCount: {
3225
3093
  kind: "Shacl",
3226
- type: () => ({
3227
- kind: "Maybe",
3228
- item: () => ({ kind: "BigInt" }),
3229
- }),
3230
3094
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
3095
+ type: {
3096
+ kind: "Option",
3097
+ itemType: { kind: "BigInt" },
3098
+ },
3231
3099
  },
3232
3100
  maxExclusive: {
3233
3101
  kind: "Shacl",
3234
- type: () => ({
3235
- kind: "Maybe",
3236
- item: () => ({ kind: "Literal" }),
3237
- }),
3238
3102
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
3103
+ type: {
3104
+ kind: "Option",
3105
+ itemType: { kind: "Literal" },
3106
+ },
3239
3107
  },
3240
3108
  maxInclusive: {
3241
3109
  kind: "Shacl",
3242
- type: () => ({
3243
- kind: "Maybe",
3244
- item: () => ({ kind: "Literal" }),
3245
- }),
3246
3110
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
3111
+ type: {
3112
+ kind: "Option",
3113
+ itemType: { kind: "Literal" },
3114
+ },
3247
3115
  },
3248
3116
  maxLength: {
3249
3117
  kind: "Shacl",
3250
- type: () => ({
3251
- kind: "Maybe",
3252
- item: () => ({ kind: "BigInt" }),
3253
- }),
3254
3118
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
3119
+ type: {
3120
+ kind: "Option",
3121
+ itemType: { kind: "BigInt" },
3122
+ },
3255
3123
  },
3256
3124
  minCount: {
3257
3125
  kind: "Shacl",
3258
- type: () => ({
3259
- kind: "Maybe",
3260
- item: () => ({ kind: "BigInt" }),
3261
- }),
3262
3126
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
3127
+ type: {
3128
+ kind: "Option",
3129
+ itemType: { kind: "BigInt" },
3130
+ },
3263
3131
  },
3264
3132
  minExclusive: {
3265
3133
  kind: "Shacl",
3266
- type: () => ({
3267
- kind: "Maybe",
3268
- item: () => ({ kind: "Literal" }),
3269
- }),
3270
3134
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
3135
+ type: {
3136
+ kind: "Option",
3137
+ itemType: { kind: "Literal" },
3138
+ },
3271
3139
  },
3272
3140
  minInclusive: {
3273
3141
  kind: "Shacl",
3274
- type: () => ({
3275
- kind: "Maybe",
3276
- item: () => ({ kind: "Literal" }),
3277
- }),
3278
3142
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
3143
+ type: {
3144
+ kind: "Option",
3145
+ itemType: { kind: "Literal" },
3146
+ },
3279
3147
  },
3280
3148
  minLength: {
3281
3149
  kind: "Shacl",
3282
- type: () => ({
3283
- kind: "Maybe",
3284
- item: () => ({ kind: "BigInt" }),
3285
- }),
3286
3150
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
3151
+ type: {
3152
+ kind: "Option",
3153
+ itemType: { kind: "BigInt" },
3154
+ },
3287
3155
  },
3288
3156
  mutable: {
3289
3157
  kind: "Shacl",
3290
- type: () => ({
3291
- kind: "Maybe",
3292
- item: () => ({ kind: "Boolean" }),
3293
- }),
3294
3158
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#mutable"),
3159
+ type: {
3160
+ kind: "Option",
3161
+ itemType: { kind: "Boolean" },
3162
+ },
3295
3163
  },
3296
3164
  node: {
3297
3165
  kind: "Shacl",
3298
- type: () => ({
3299
- kind: "Maybe",
3300
- item: () => ({ kind: "Identifier" }),
3301
- }),
3302
3166
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
3167
+ type: {
3168
+ kind: "Option",
3169
+ itemType: { kind: "Identifier" },
3170
+ },
3303
3171
  },
3304
3172
  nodeKind: {
3305
3173
  kind: "Shacl",
3306
- type: () => ({
3307
- kind: "Maybe",
3308
- item: () => ({
3174
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
3175
+ type: {
3176
+ kind: "Option",
3177
+ itemType: {
3309
3178
  kind: "Iri",
3310
3179
  in: [
3311
3180
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -3315,55 +3184,51 @@ export var Shape;
3315
3184
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
3316
3185
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
3317
3186
  ],
3318
- }),
3319
- }),
3320
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
3187
+ },
3188
+ },
3321
3189
  },
3322
3190
  not: {
3323
3191
  kind: "Shacl",
3324
- type: () => ({
3325
- kind: "Set",
3326
- item: () => ({ kind: "Identifier" }),
3327
- }),
3328
3192
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
3193
+ type: {
3194
+ kind: "Set",
3195
+ itemType: { kind: "Identifier" },
3196
+ },
3329
3197
  },
3330
3198
  or: {
3331
3199
  kind: "Shacl",
3332
- type: () => ({
3333
- kind: "Maybe",
3334
- item: () => ({
3335
- kind: "List",
3336
- item: () => ({ kind: "Identifier" }),
3337
- }),
3338
- }),
3339
3200
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
3201
+ type: {
3202
+ kind: "Option",
3203
+ itemType: {
3204
+ kind: "List",
3205
+ itemType: { kind: "Identifier" },
3206
+ },
3207
+ },
3340
3208
  },
3341
3209
  patterns: {
3342
3210
  kind: "Shacl",
3343
- type: () => ({
3344
- kind: "Set",
3345
- item: () => ({ kind: "String" }),
3346
- }),
3347
3211
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
3212
+ type: { kind: "Set", itemType: { kind: "String" } },
3348
3213
  },
3349
3214
  shaclmateName: {
3350
3215
  kind: "Shacl",
3351
- type: () => ({
3352
- kind: "Maybe",
3353
- item: () => ({ kind: "String" }),
3354
- }),
3355
3216
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"),
3217
+ type: {
3218
+ kind: "Option",
3219
+ itemType: { kind: "String" },
3220
+ },
3356
3221
  },
3357
3222
  xone: {
3358
3223
  kind: "Shacl",
3359
- type: () => ({
3360
- kind: "Maybe",
3361
- item: () => ({
3362
- kind: "List",
3363
- item: () => ({ kind: "Identifier" }),
3364
- }),
3365
- }),
3366
3224
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
3225
+ type: {
3226
+ kind: "Option",
3227
+ itemType: {
3228
+ kind: "List",
3229
+ itemType: { kind: "Identifier" },
3230
+ },
3231
+ },
3367
3232
  },
3368
3233
  },
3369
3234
  };
@@ -3487,19 +3352,19 @@ export var $Object;
3487
3352
  properties: {
3488
3353
  comment: {
3489
3354
  kind: "Shacl",
3490
- type: () => ({
3491
- kind: "Maybe",
3492
- item: () => ({ kind: "String" }),
3493
- }),
3494
3355
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
3356
+ type: {
3357
+ kind: "Option",
3358
+ itemType: { kind: "String" },
3359
+ },
3495
3360
  },
3496
3361
  label: {
3497
3362
  kind: "Shacl",
3498
- type: () => ({
3499
- kind: "Maybe",
3500
- item: () => ({ kind: "String" }),
3501
- }),
3502
3363
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
3364
+ type: {
3365
+ kind: "Option",
3366
+ itemType: { kind: "String" },
3367
+ },
3503
3368
  },
3504
3369
  },
3505
3370
  };