@shaclmate/shacl-ast 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.
package/dist/generated.js CHANGED
@@ -80,6 +80,20 @@ function $convertToMaybe(convertToItem) {
80
80
  return convertToItem(value).map(Maybe.of);
81
81
  };
82
82
  }
83
+ function $ensureRdfResourceType(resource, types, options) {
84
+ return resource
85
+ .value($RdfVocabularies.rdf.type, options)
86
+ .chain((actualRdfTypeValue) => actualRdfTypeValue.toIri())
87
+ .chain((actualRdfType) => {
88
+ // Check the expected type and its known subtypes
89
+ for (const type of types) {
90
+ if (resource.isInstanceOf(type, options)) {
91
+ return Right(undefined);
92
+ }
93
+ }
94
+ return Left(new Error(`${resource.identifier} has unexpected RDF type (actual: ${actualRdfType}, expected one of ${types})`));
95
+ });
96
+ }
83
97
  function $fromRdfPreferredLanguages(values, preferredLanguages) {
84
98
  if (!preferredLanguages || preferredLanguages.length === 0) {
85
99
  return Right(values);
@@ -111,14 +125,16 @@ function $identityValidationFunction(_schema, value) {
111
125
  const $literalFactory = new LiteralFactory({ dataFactory: dataFactory });
112
126
  function $monkeyPatchObject(obj, methods) {
113
127
  if (methods.toJson &&
114
- !globalThis.Object.prototype.hasOwnProperty.call(obj, "toJSON")) {
128
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toJSON") ||
129
+ typeof obj.toJSON === "function")) {
115
130
  const toJsonMethod = methods.toJson;
116
131
  obj.toJSON = function (_key) {
117
132
  return toJsonMethod(this);
118
133
  };
119
134
  }
120
135
  if (methods.$toString &&
121
- !globalThis.Object.prototype.hasOwnProperty.call(obj, "toString")) {
136
+ (!globalThis.Object.prototype.hasOwnProperty.call(obj, "toString") ||
137
+ typeof obj.toJSON === "function")) {
122
138
  const toStringMethod = methods.$toString;
123
139
  obj.toString = function () {
124
140
  return toStringMethod(this);
@@ -194,12 +210,12 @@ function $validateArray(validateItem, _readonly) {
194
210
  if (schema.minCount !== undefined && valueArray.length < schema.minCount) {
195
211
  return Left(new Error(`value array has length (${valueArray.length}) less than minCount (${schema.minCount})`));
196
212
  }
197
- return Either.sequence(valueArray.map((value) => validateItem(schema.item(), value)));
213
+ return Either.sequence(valueArray.map((value) => validateItem(schema.itemType, value)));
198
214
  };
199
215
  }
200
216
  function $validateMaybe(validateItem) {
201
217
  return (schema, valueMaybe) => valueMaybe
202
- .map((value) => validateItem(schema.item(), value).map(() => valueMaybe))
218
+ .map((value) => validateItem(schema.itemType, value).map(() => valueMaybe))
203
219
  .orDefault(Either.of(valueMaybe));
204
220
  }
205
221
  function $wrap_FromRdfResourceFunction(_fromRdfResourceFunction) {
@@ -238,38 +254,38 @@ export var PropertyShape;
238
254
  function create(parameters) {
239
255
  return $sequenceRecord({
240
256
  $identifier: $convertToIdentifierProperty(parameters.$identifier),
241
- and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type(), value)),
242
- classes: $convertToArray(($convertToIri), true)(parameters.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type(), value)),
243
- comment: $convertToMaybe($identityConversionFunction)(parameters.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
244
- datatype: $convertToMaybe(($convertToIri))(parameters.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type(), value)),
245
- deactivated: $convertToMaybe($identityConversionFunction)(parameters.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type(), value)),
246
- defaultValue: $convertToMaybe($identityConversionFunction)(parameters.defaultValue).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.defaultValue.type(), value)),
247
- description: $convertToMaybe($identityConversionFunction)(parameters.description).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.description.type(), value)),
248
- flags: $convertToArray($identityConversionFunction, true)(parameters.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type(), value)),
249
- groups: $convertToArray($convertToIdentifier, true)(parameters.groups).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.groups.type(), value)),
250
- hasValues: $convertToArray($identityConversionFunction, true)(parameters.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type(), value)),
251
- in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type(), value)),
252
- isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type(), value)),
253
- label: $convertToMaybe($identityConversionFunction)(parameters.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
254
- languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type(), value)),
255
- maxCount: $convertToMaybe($identityConversionFunction)(parameters.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type(), value)),
256
- maxExclusive: $convertToMaybe($convertToLiteral)(parameters.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type(), value)),
257
- maxInclusive: $convertToMaybe($convertToLiteral)(parameters.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type(), value)),
258
- maxLength: $convertToMaybe($identityConversionFunction)(parameters.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type(), value)),
259
- minCount: $convertToMaybe($identityConversionFunction)(parameters.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type(), value)),
260
- minExclusive: $convertToMaybe($convertToLiteral)(parameters.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type(), value)),
261
- minInclusive: $convertToMaybe($convertToLiteral)(parameters.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type(), value)),
262
- minLength: $convertToMaybe($identityConversionFunction)(parameters.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type(), value)),
263
- name: $convertToMaybe($identityConversionFunction)(parameters.name).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.name.type(), value)),
264
- node: $convertToMaybe($convertToIdentifier)(parameters.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type(), value)),
265
- nodeKind: $convertToMaybe(($convertToIri))(parameters.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type(), value)),
266
- not: $convertToArray($convertToIdentifier, true)(parameters.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type(), value)),
267
- or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type(), value)),
268
- order: $convertToMaybe($identityConversionFunction)(parameters.order).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.order.type(), value)),
257
+ and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type, value)),
258
+ classes: $convertToArray(($convertToIri), true)(parameters.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type, value)),
259
+ comment: $convertToMaybe($identityConversionFunction)(parameters.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
260
+ datatype: $convertToMaybe(($convertToIri))(parameters.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type, value)),
261
+ deactivated: $convertToMaybe($identityConversionFunction)(parameters.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type, value)),
262
+ defaultValue: $convertToMaybe($identityConversionFunction)(parameters.defaultValue).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.defaultValue.type, value)),
263
+ description: $convertToMaybe($identityConversionFunction)(parameters.description).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.description.type, value)),
264
+ flags: $convertToArray($identityConversionFunction, true)(parameters.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type, value)),
265
+ groups: $convertToArray($convertToIdentifier, true)(parameters.groups).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.groups.type, value)),
266
+ hasValues: $convertToArray($identityConversionFunction, true)(parameters.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type, value)),
267
+ in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type, value)),
268
+ isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type, value)),
269
+ label: $convertToMaybe($identityConversionFunction)(parameters.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
270
+ languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type, value)),
271
+ maxCount: $convertToMaybe($identityConversionFunction)(parameters.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type, value)),
272
+ maxExclusive: $convertToMaybe($convertToLiteral)(parameters.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type, value)),
273
+ maxInclusive: $convertToMaybe($convertToLiteral)(parameters.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type, value)),
274
+ maxLength: $convertToMaybe($identityConversionFunction)(parameters.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type, value)),
275
+ minCount: $convertToMaybe($identityConversionFunction)(parameters.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type, value)),
276
+ minExclusive: $convertToMaybe($convertToLiteral)(parameters.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type, value)),
277
+ minInclusive: $convertToMaybe($convertToLiteral)(parameters.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type, value)),
278
+ minLength: $convertToMaybe($identityConversionFunction)(parameters.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type, value)),
279
+ name: $convertToMaybe($identityConversionFunction)(parameters.name).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.name.type, value)),
280
+ node: $convertToMaybe($convertToIdentifier)(parameters.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type, value)),
281
+ nodeKind: $convertToMaybe(($convertToIri))(parameters.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type, value)),
282
+ not: $convertToArray($convertToIdentifier, true)(parameters.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type, value)),
283
+ or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type, value)),
284
+ order: $convertToMaybe($identityConversionFunction)(parameters.order).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.order.type, value)),
269
285
  path: Either.of(parameters.path),
270
- patterns: $convertToArray($identityConversionFunction, true)(parameters.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type(), value)),
271
- uniqueLang: $convertToMaybe($identityConversionFunction)(parameters.uniqueLang).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.uniqueLang.type(), value)),
272
- xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
286
+ patterns: $convertToArray($identityConversionFunction, true)(parameters.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type, value)),
287
+ uniqueLang: $convertToMaybe($identityConversionFunction)(parameters.uniqueLang).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.uniqueLang.type, value)),
288
+ xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type, value)),
273
289
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyShape" }, { $toString }));
274
290
  }
275
291
  PropertyShape.create = create;
@@ -284,22 +300,8 @@ export var PropertyShape;
284
300
  })(Identifier = PropertyShape.Identifier || (PropertyShape.Identifier = {}));
285
301
  PropertyShape._fromRdfResource = ($resource, _$options) => {
286
302
  return (!_$options.ignoreRdfType
287
- ? $resource
288
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
289
- .chain((actualRdfType) => actualRdfType.toIri())
290
- .chain((actualRdfType) => {
291
- // Check the expected type and its known subtypes
292
- switch (actualRdfType.value) {
293
- case "http://www.w3.org/ns/shacl#PropertyShape":
294
- return Right(true);
295
- }
296
- // Check arbitrary rdfs:subClassOf's of the expected type
297
- if ($resource.isInstanceOf(PropertyShape.fromRdfType, {
298
- graph: _$options.graph,
299
- })) {
300
- return Right(true);
301
- }
302
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
303
+ ? $ensureRdfResourceType($resource, [PropertyShape.fromRdfType], {
304
+ graph: _$options.graph,
303
305
  })
304
306
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
305
307
  $identifier: Right(new Resource.Value({
@@ -859,221 +861,200 @@ export var PropertyShape;
859
861
  properties: {
860
862
  $identifier: {
861
863
  kind: "Identifier",
862
- type: () => ({ kind: "Identifier" }),
863
- },
864
- $type: {
865
- kind: "Discriminant",
866
- type: () => ({
867
- kind: "TypeDiscriminant",
868
- ownValues: ["PropertyShape"],
869
- }),
864
+ type: { kind: "Identifier" },
870
865
  },
871
866
  and: {
872
867
  kind: "Shacl",
873
- type: () => ({
874
- kind: "Maybe",
875
- item: () => ({
876
- kind: "List",
877
- item: () => ({ kind: "Identifier" }),
878
- }),
879
- }),
880
868
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
869
+ type: {
870
+ kind: "Option",
871
+ itemType: {
872
+ kind: "List",
873
+ itemType: { kind: "Identifier" },
874
+ },
875
+ },
881
876
  },
882
877
  classes: {
883
878
  kind: "Shacl",
884
- type: () => ({
885
- kind: "Set",
886
- item: () => ({ kind: "Iri" }),
887
- }),
888
879
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
880
+ type: { kind: "Set", itemType: { kind: "Iri" } },
889
881
  },
890
882
  comment: {
891
883
  kind: "Shacl",
892
- type: () => ({
893
- kind: "Maybe",
894
- item: () => ({ kind: "String" }),
895
- }),
896
884
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
885
+ type: {
886
+ kind: "Option",
887
+ itemType: { kind: "String" },
888
+ },
897
889
  },
898
890
  datatype: {
899
891
  kind: "Shacl",
900
- type: () => ({
901
- kind: "Maybe",
902
- item: () => ({ kind: "Iri" }),
903
- }),
904
892
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
893
+ type: { kind: "Option", itemType: { kind: "Iri" } },
905
894
  },
906
895
  deactivated: {
907
896
  kind: "Shacl",
908
- type: () => ({
909
- kind: "Maybe",
910
- item: () => ({ kind: "Boolean" }),
911
- }),
912
897
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
898
+ type: {
899
+ kind: "Option",
900
+ itemType: { kind: "Boolean" },
901
+ },
913
902
  },
914
903
  defaultValue: {
915
904
  kind: "Shacl",
916
- type: () => ({
917
- kind: "Maybe",
918
- item: () => ({ kind: "Term" }),
919
- }),
920
905
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#defaultValue"),
906
+ type: { kind: "Option", itemType: { kind: "Term" } },
921
907
  },
922
908
  description: {
923
909
  kind: "Shacl",
924
- type: () => ({
925
- kind: "Maybe",
926
- item: () => ({ kind: "String" }),
927
- }),
928
910
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#description"),
911
+ type: {
912
+ kind: "Option",
913
+ itemType: { kind: "String" },
914
+ },
929
915
  },
930
916
  flags: {
931
917
  kind: "Shacl",
932
- type: () => ({
933
- kind: "Set",
934
- item: () => ({ kind: "String" }),
935
- }),
936
918
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
919
+ type: { kind: "Set", itemType: { kind: "String" } },
937
920
  },
938
921
  groups: {
939
922
  kind: "Shacl",
940
- type: () => ({
941
- kind: "Set",
942
- item: () => ({ kind: "Identifier" }),
943
- }),
944
923
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#group"),
924
+ type: {
925
+ kind: "Set",
926
+ itemType: { kind: "Identifier" },
927
+ },
945
928
  },
946
929
  hasValues: {
947
930
  kind: "Shacl",
948
- type: () => ({
949
- kind: "Set",
950
- item: () => ({ kind: "Term" }),
951
- }),
952
931
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
932
+ type: { kind: "Set", itemType: { kind: "Term" } },
953
933
  },
954
934
  in_: {
955
935
  kind: "Shacl",
956
- type: () => ({
957
- kind: "Maybe",
958
- item: () => ({
959
- kind: "List",
960
- item: () => ({ kind: "Term" }),
961
- }),
962
- }),
963
936
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
937
+ type: {
938
+ kind: "Option",
939
+ itemType: {
940
+ kind: "List",
941
+ itemType: { kind: "Term" },
942
+ },
943
+ },
964
944
  },
965
945
  isDefinedBy: {
966
946
  kind: "Shacl",
967
- type: () => ({
968
- kind: "Maybe",
969
- item: () => ({ kind: "Identifier" }),
970
- }),
971
947
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
948
+ type: {
949
+ kind: "Option",
950
+ itemType: { kind: "Identifier" },
951
+ },
972
952
  },
973
953
  label: {
974
954
  kind: "Shacl",
975
- type: () => ({
976
- kind: "Maybe",
977
- item: () => ({ kind: "String" }),
978
- }),
979
955
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
956
+ type: {
957
+ kind: "Option",
958
+ itemType: { kind: "String" },
959
+ },
980
960
  },
981
961
  languageIn: {
982
962
  kind: "Shacl",
983
- type: () => ({
984
- kind: "Maybe",
985
- item: () => ({
986
- kind: "List",
987
- item: () => ({ kind: "String" }),
988
- }),
989
- }),
990
963
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
964
+ type: {
965
+ kind: "Option",
966
+ itemType: {
967
+ kind: "List",
968
+ itemType: { kind: "String" },
969
+ },
970
+ },
991
971
  },
992
972
  maxCount: {
993
973
  kind: "Shacl",
994
- type: () => ({
995
- kind: "Maybe",
996
- item: () => ({ kind: "BigInt" }),
997
- }),
998
974
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
975
+ type: {
976
+ kind: "Option",
977
+ itemType: { kind: "BigInt" },
978
+ },
999
979
  },
1000
980
  maxExclusive: {
1001
981
  kind: "Shacl",
1002
- type: () => ({
1003
- kind: "Maybe",
1004
- item: () => ({ kind: "Literal" }),
1005
- }),
1006
982
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
983
+ type: {
984
+ kind: "Option",
985
+ itemType: { kind: "Literal" },
986
+ },
1007
987
  },
1008
988
  maxInclusive: {
1009
989
  kind: "Shacl",
1010
- type: () => ({
1011
- kind: "Maybe",
1012
- item: () => ({ kind: "Literal" }),
1013
- }),
1014
990
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
991
+ type: {
992
+ kind: "Option",
993
+ itemType: { kind: "Literal" },
994
+ },
1015
995
  },
1016
996
  maxLength: {
1017
997
  kind: "Shacl",
1018
- type: () => ({
1019
- kind: "Maybe",
1020
- item: () => ({ kind: "BigInt" }),
1021
- }),
1022
998
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
999
+ type: {
1000
+ kind: "Option",
1001
+ itemType: { kind: "BigInt" },
1002
+ },
1023
1003
  },
1024
1004
  minCount: {
1025
1005
  kind: "Shacl",
1026
- type: () => ({
1027
- kind: "Maybe",
1028
- item: () => ({ kind: "BigInt" }),
1029
- }),
1030
1006
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
1007
+ type: {
1008
+ kind: "Option",
1009
+ itemType: { kind: "BigInt" },
1010
+ },
1031
1011
  },
1032
1012
  minExclusive: {
1033
1013
  kind: "Shacl",
1034
- type: () => ({
1035
- kind: "Maybe",
1036
- item: () => ({ kind: "Literal" }),
1037
- }),
1038
1014
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
1015
+ type: {
1016
+ kind: "Option",
1017
+ itemType: { kind: "Literal" },
1018
+ },
1039
1019
  },
1040
1020
  minInclusive: {
1041
1021
  kind: "Shacl",
1042
- type: () => ({
1043
- kind: "Maybe",
1044
- item: () => ({ kind: "Literal" }),
1045
- }),
1046
1022
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
1023
+ type: {
1024
+ kind: "Option",
1025
+ itemType: { kind: "Literal" },
1026
+ },
1047
1027
  },
1048
1028
  minLength: {
1049
1029
  kind: "Shacl",
1050
- type: () => ({
1051
- kind: "Maybe",
1052
- item: () => ({ kind: "BigInt" }),
1053
- }),
1054
1030
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
1031
+ type: {
1032
+ kind: "Option",
1033
+ itemType: { kind: "BigInt" },
1034
+ },
1055
1035
  },
1056
1036
  name: {
1057
1037
  kind: "Shacl",
1058
- type: () => ({
1059
- kind: "Maybe",
1060
- item: () => ({ kind: "String" }),
1061
- }),
1062
1038
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#name"),
1039
+ type: {
1040
+ kind: "Option",
1041
+ itemType: { kind: "String" },
1042
+ },
1063
1043
  },
1064
1044
  node: {
1065
1045
  kind: "Shacl",
1066
- type: () => ({
1067
- kind: "Maybe",
1068
- item: () => ({ kind: "Identifier" }),
1069
- }),
1070
1046
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
1047
+ type: {
1048
+ kind: "Option",
1049
+ itemType: { kind: "Identifier" },
1050
+ },
1071
1051
  },
1072
1052
  nodeKind: {
1073
1053
  kind: "Shacl",
1074
- type: () => ({
1075
- kind: "Maybe",
1076
- item: () => ({
1054
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
1055
+ type: {
1056
+ kind: "Option",
1057
+ itemType: {
1077
1058
  kind: "Iri",
1078
1059
  in: [
1079
1060
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -1083,68 +1064,63 @@ export var PropertyShape;
1083
1064
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
1084
1065
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
1085
1066
  ],
1086
- }),
1087
- }),
1088
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
1067
+ },
1068
+ },
1089
1069
  },
1090
1070
  not: {
1091
1071
  kind: "Shacl",
1092
- type: () => ({
1093
- kind: "Set",
1094
- item: () => ({ kind: "Identifier" }),
1095
- }),
1096
1072
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
1073
+ type: {
1074
+ kind: "Set",
1075
+ itemType: { kind: "Identifier" },
1076
+ },
1097
1077
  },
1098
1078
  or: {
1099
1079
  kind: "Shacl",
1100
- type: () => ({
1101
- kind: "Maybe",
1102
- item: () => ({
1103
- kind: "List",
1104
- item: () => ({ kind: "Identifier" }),
1105
- }),
1106
- }),
1107
1080
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
1081
+ type: {
1082
+ kind: "Option",
1083
+ itemType: {
1084
+ kind: "List",
1085
+ itemType: { kind: "Identifier" },
1086
+ },
1087
+ },
1108
1088
  },
1109
1089
  order: {
1110
1090
  kind: "Shacl",
1111
- type: () => ({
1112
- kind: "Maybe",
1113
- item: () => ({ kind: "Float" }),
1114
- }),
1115
1091
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#order"),
1092
+ type: { kind: "Option", itemType: { kind: "Float" } },
1116
1093
  },
1117
1094
  path: {
1118
1095
  kind: "Shacl",
1119
- type: () => $PropertyPath.schema,
1120
1096
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#path"),
1097
+ get type() {
1098
+ return $PropertyPath.schema;
1099
+ },
1121
1100
  },
1122
1101
  patterns: {
1123
1102
  kind: "Shacl",
1124
- type: () => ({
1125
- kind: "Set",
1126
- item: () => ({ kind: "String" }),
1127
- }),
1128
1103
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
1104
+ type: { kind: "Set", itemType: { kind: "String" } },
1129
1105
  },
1130
1106
  uniqueLang: {
1131
1107
  kind: "Shacl",
1132
- type: () => ({
1133
- kind: "Maybe",
1134
- item: () => ({ kind: "Boolean" }),
1135
- }),
1136
1108
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#uniqueLang"),
1109
+ type: {
1110
+ kind: "Option",
1111
+ itemType: { kind: "Boolean" },
1112
+ },
1137
1113
  },
1138
1114
  xone: {
1139
1115
  kind: "Shacl",
1140
- type: () => ({
1141
- kind: "Maybe",
1142
- item: () => ({
1143
- kind: "List",
1144
- item: () => ({ kind: "Identifier" }),
1145
- }),
1146
- }),
1147
1116
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
1117
+ type: {
1118
+ kind: "Option",
1119
+ itemType: {
1120
+ kind: "List",
1121
+ itemType: { kind: "Identifier" },
1122
+ },
1123
+ },
1148
1124
  },
1149
1125
  },
1150
1126
  };
@@ -1354,8 +1330,8 @@ export var PropertyGroup;
1354
1330
  function create(parameters) {
1355
1331
  return $sequenceRecord({
1356
1332
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1357
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1358
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1333
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1334
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1359
1335
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "PropertyGroup" }, { $toString }));
1360
1336
  }
1361
1337
  PropertyGroup.create = create;
@@ -1370,22 +1346,8 @@ export var PropertyGroup;
1370
1346
  })(Identifier = PropertyGroup.Identifier || (PropertyGroup.Identifier = {}));
1371
1347
  PropertyGroup._fromRdfResource = ($resource, _$options) => {
1372
1348
  return (!_$options.ignoreRdfType
1373
- ? $resource
1374
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1375
- .chain((actualRdfType) => actualRdfType.toIri())
1376
- .chain((actualRdfType) => {
1377
- // Check the expected type and its known subtypes
1378
- switch (actualRdfType.value) {
1379
- case "http://www.w3.org/ns/shacl#PropertyGroup":
1380
- return Right(true);
1381
- }
1382
- // Check arbitrary rdfs:subClassOf's of the expected type
1383
- if ($resource.isInstanceOf(PropertyGroup.fromRdfType, {
1384
- graph: _$options.graph,
1385
- })) {
1386
- return Right(true);
1387
- }
1388
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
1349
+ ? $ensureRdfResourceType($resource, [PropertyGroup.fromRdfType], {
1350
+ graph: _$options.graph,
1389
1351
  })
1390
1352
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1391
1353
  $identifier: Right(new Resource.Value({
@@ -1446,30 +1408,23 @@ export var PropertyGroup;
1446
1408
  properties: {
1447
1409
  $identifier: {
1448
1410
  kind: "Identifier",
1449
- type: () => ({ kind: "Identifier" }),
1450
- },
1451
- $type: {
1452
- kind: "Discriminant",
1453
- type: () => ({
1454
- kind: "TypeDiscriminant",
1455
- ownValues: ["PropertyGroup"],
1456
- }),
1411
+ type: { kind: "Identifier" },
1457
1412
  },
1458
1413
  comment: {
1459
1414
  kind: "Shacl",
1460
- type: () => ({
1461
- kind: "Maybe",
1462
- item: () => ({ kind: "String" }),
1463
- }),
1464
1415
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
1416
+ type: {
1417
+ kind: "Option",
1418
+ itemType: { kind: "String" },
1419
+ },
1465
1420
  },
1466
1421
  label: {
1467
1422
  kind: "Shacl",
1468
- type: () => ({
1469
- kind: "Maybe",
1470
- item: () => ({ kind: "String" }),
1471
- }),
1472
1423
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
1424
+ type: {
1425
+ kind: "Option",
1426
+ itemType: { kind: "String" },
1427
+ },
1473
1428
  },
1474
1429
  },
1475
1430
  };
@@ -1503,8 +1458,8 @@ export var Ontology;
1503
1458
  function create(parameters) {
1504
1459
  return $sequenceRecord({
1505
1460
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1506
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1507
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1461
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1462
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1508
1463
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "Ontology" }, { $toString }));
1509
1464
  }
1510
1465
  Ontology.create = create;
@@ -1519,22 +1474,8 @@ export var Ontology;
1519
1474
  })(Identifier = Ontology.Identifier || (Ontology.Identifier = {}));
1520
1475
  Ontology._fromRdfResource = ($resource, _$options) => {
1521
1476
  return (!_$options.ignoreRdfType
1522
- ? $resource
1523
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1524
- .chain((actualRdfType) => actualRdfType.toIri())
1525
- .chain((actualRdfType) => {
1526
- // Check the expected type and its known subtypes
1527
- switch (actualRdfType.value) {
1528
- case "http://www.w3.org/2002/07/owl#Ontology":
1529
- return Right(true);
1530
- }
1531
- // Check arbitrary rdfs:subClassOf's of the expected type
1532
- if ($resource.isInstanceOf(Ontology.fromRdfType, {
1533
- graph: _$options.graph,
1534
- })) {
1535
- return Right(true);
1536
- }
1537
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1477
+ ? $ensureRdfResourceType($resource, [Ontology.fromRdfType], {
1478
+ graph: _$options.graph,
1538
1479
  })
1539
1480
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1540
1481
  $identifier: Right(new Resource.Value({
@@ -1595,30 +1536,23 @@ export var Ontology;
1595
1536
  properties: {
1596
1537
  $identifier: {
1597
1538
  kind: "Identifier",
1598
- type: () => ({ kind: "Identifier" }),
1599
- },
1600
- $type: {
1601
- kind: "Discriminant",
1602
- type: () => ({
1603
- kind: "TypeDiscriminant",
1604
- ownValues: ["Ontology"],
1605
- }),
1539
+ type: { kind: "Identifier" },
1606
1540
  },
1607
1541
  comment: {
1608
1542
  kind: "Shacl",
1609
- type: () => ({
1610
- kind: "Maybe",
1611
- item: () => ({ kind: "String" }),
1612
- }),
1613
1543
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
1544
+ type: {
1545
+ kind: "Option",
1546
+ itemType: { kind: "String" },
1547
+ },
1614
1548
  },
1615
1549
  label: {
1616
1550
  kind: "Shacl",
1617
- type: () => ({
1618
- kind: "Maybe",
1619
- item: () => ({ kind: "String" }),
1620
- }),
1621
1551
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
1552
+ type: {
1553
+ kind: "Option",
1554
+ itemType: { kind: "String" },
1555
+ },
1622
1556
  },
1623
1557
  },
1624
1558
  };
@@ -1652,36 +1586,36 @@ export var NodeShape;
1652
1586
  function create(parameters) {
1653
1587
  return $sequenceRecord({
1654
1588
  $identifier: $convertToIdentifierProperty(parameters?.$identifier),
1655
- and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type(), value)),
1656
- classes: $convertToArray(($convertToIri), true)(parameters?.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type(), value)),
1657
- closed: $convertToMaybe($identityConversionFunction)(parameters?.closed).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.closed.type(), value)),
1658
- comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type(), value)),
1659
- datatype: $convertToMaybe(($convertToIri))(parameters?.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type(), value)),
1660
- deactivated: $convertToMaybe($identityConversionFunction)(parameters?.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type(), value)),
1661
- flags: $convertToArray($identityConversionFunction, true)(parameters?.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type(), value)),
1662
- hasValues: $convertToArray($identityConversionFunction, true)(parameters?.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type(), value)),
1663
- ignoredProperties: $convertToMaybe($convertToArray(($convertToIri), true))(parameters?.ignoredProperties).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(NodeShape.schema.properties.ignoredProperties.type(), value)),
1664
- in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type(), value)),
1665
- isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters?.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type(), value)),
1666
- label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type(), value)),
1667
- languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type(), value)),
1668
- maxCount: $convertToMaybe($identityConversionFunction)(parameters?.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type(), value)),
1669
- maxExclusive: $convertToMaybe($convertToLiteral)(parameters?.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type(), value)),
1670
- maxInclusive: $convertToMaybe($convertToLiteral)(parameters?.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type(), value)),
1671
- maxLength: $convertToMaybe($identityConversionFunction)(parameters?.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type(), value)),
1672
- minCount: $convertToMaybe($identityConversionFunction)(parameters?.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type(), value)),
1673
- minExclusive: $convertToMaybe($convertToLiteral)(parameters?.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type(), value)),
1674
- minInclusive: $convertToMaybe($convertToLiteral)(parameters?.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type(), value)),
1675
- minLength: $convertToMaybe($identityConversionFunction)(parameters?.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type(), value)),
1676
- node: $convertToMaybe($convertToIdentifier)(parameters?.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type(), value)),
1677
- nodeKind: $convertToMaybe(($convertToIri))(parameters?.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type(), value)),
1678
- not: $convertToArray($convertToIdentifier, true)(parameters?.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type(), value)),
1679
- or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type(), value)),
1680
- patterns: $convertToArray($identityConversionFunction, true)(parameters?.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type(), value)),
1681
- properties: $convertToArray($convertToIdentifier, true)(parameters?.properties).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.properties.type(), value)),
1682
- subClassOf: $convertToArray(($convertToIri), true)(parameters?.subClassOf).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.subClassOf.type(), value)),
1683
- types: $convertToArray(($convertToIri), true)(parameters?.types).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.types.type(), value)),
1684
- xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type(), value)),
1589
+ and: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.and).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.and.type, value)),
1590
+ classes: $convertToArray(($convertToIri), true)(parameters?.classes).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.classes.type, value)),
1591
+ closed: $convertToMaybe($identityConversionFunction)(parameters?.closed).chain((value) => $validateMaybe($identityValidationFunction)(NodeShape.schema.properties.closed.type, value)),
1592
+ comment: $convertToMaybe($identityConversionFunction)(parameters?.comment).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.comment.type, value)),
1593
+ datatype: $convertToMaybe(($convertToIri))(parameters?.datatype).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.datatype.type, value)),
1594
+ deactivated: $convertToMaybe($identityConversionFunction)(parameters?.deactivated).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.deactivated.type, value)),
1595
+ flags: $convertToArray($identityConversionFunction, true)(parameters?.flags).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.flags.type, value)),
1596
+ hasValues: $convertToArray($identityConversionFunction, true)(parameters?.hasValues).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.hasValues.type, value)),
1597
+ ignoredProperties: $convertToMaybe($convertToArray(($convertToIri), true))(parameters?.ignoredProperties).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(NodeShape.schema.properties.ignoredProperties.type, value)),
1598
+ in_: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.in_).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.in_.type, value)),
1599
+ isDefinedBy: $convertToMaybe($convertToIdentifier)(parameters?.isDefinedBy).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.isDefinedBy.type, value)),
1600
+ label: $convertToMaybe($identityConversionFunction)(parameters?.label).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.label.type, value)),
1601
+ languageIn: $convertToMaybe($convertToArray($identityConversionFunction, true))(parameters?.languageIn).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.languageIn.type, value)),
1602
+ maxCount: $convertToMaybe($identityConversionFunction)(parameters?.maxCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxCount.type, value)),
1603
+ maxExclusive: $convertToMaybe($convertToLiteral)(parameters?.maxExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxExclusive.type, value)),
1604
+ maxInclusive: $convertToMaybe($convertToLiteral)(parameters?.maxInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxInclusive.type, value)),
1605
+ maxLength: $convertToMaybe($identityConversionFunction)(parameters?.maxLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.maxLength.type, value)),
1606
+ minCount: $convertToMaybe($identityConversionFunction)(parameters?.minCount).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minCount.type, value)),
1607
+ minExclusive: $convertToMaybe($convertToLiteral)(parameters?.minExclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minExclusive.type, value)),
1608
+ minInclusive: $convertToMaybe($convertToLiteral)(parameters?.minInclusive).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minInclusive.type, value)),
1609
+ minLength: $convertToMaybe($identityConversionFunction)(parameters?.minLength).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.minLength.type, value)),
1610
+ node: $convertToMaybe($convertToIdentifier)(parameters?.node).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.node.type, value)),
1611
+ nodeKind: $convertToMaybe(($convertToIri))(parameters?.nodeKind).chain((value) => $validateMaybe($identityValidationFunction)(PropertyShape.schema.properties.nodeKind.type, value)),
1612
+ not: $convertToArray($convertToIdentifier, true)(parameters?.not).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.not.type, value)),
1613
+ or: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.or).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.or.type, value)),
1614
+ patterns: $convertToArray($identityConversionFunction, true)(parameters?.patterns).chain((value) => $validateArray($identityValidationFunction, true)(PropertyShape.schema.properties.patterns.type, value)),
1615
+ properties: $convertToArray($convertToIdentifier, true)(parameters?.properties).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.properties.type, value)),
1616
+ subClassOf: $convertToArray(($convertToIri), true)(parameters?.subClassOf).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.subClassOf.type, value)),
1617
+ types: $convertToArray(($convertToIri), true)(parameters?.types).chain((value) => $validateArray($identityValidationFunction, true)(NodeShape.schema.properties.types.type, value)),
1618
+ xone: $convertToMaybe($convertToArray($convertToIdentifier, true))(parameters?.xone).chain((value) => $validateMaybe($validateArray($identityValidationFunction, true))(PropertyShape.schema.properties.xone.type, value)),
1685
1619
  }).map((properties) => $monkeyPatchObject({ ...properties, $type: "NodeShape" }, { $toString }));
1686
1620
  }
1687
1621
  NodeShape.create = create;
@@ -1696,22 +1630,8 @@ export var NodeShape;
1696
1630
  })(Identifier = NodeShape.Identifier || (NodeShape.Identifier = {}));
1697
1631
  NodeShape._fromRdfResource = ($resource, _$options) => {
1698
1632
  return (!_$options.ignoreRdfType
1699
- ? $resource
1700
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1701
- .chain((actualRdfType) => actualRdfType.toIri())
1702
- .chain((actualRdfType) => {
1703
- // Check the expected type and its known subtypes
1704
- switch (actualRdfType.value) {
1705
- case "http://www.w3.org/ns/shacl#NodeShape":
1706
- return Right(true);
1707
- }
1708
- // Check arbitrary rdfs:subClassOf's of the expected type
1709
- if ($resource.isInstanceOf(NodeShape.fromRdfType, {
1710
- graph: _$options.graph,
1711
- })) {
1712
- return Right(true);
1713
- }
1714
- return Left(new Error(`${$resource.identifier} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#NodeShape)`));
1633
+ ? $ensureRdfResourceType($resource, [NodeShape.fromRdfType], {
1634
+ graph: _$options.graph,
1715
1635
  })
1716
1636
  : Right(true)).chain((_rdfTypeCheck) => $sequenceRecord({
1717
1637
  $identifier: Right(new Resource.Value({
@@ -2233,208 +2153,190 @@ export var NodeShape;
2233
2153
  properties: {
2234
2154
  $identifier: {
2235
2155
  kind: "Identifier",
2236
- type: () => ({ kind: "Identifier" }),
2237
- },
2238
- $type: {
2239
- kind: "Discriminant",
2240
- type: () => ({
2241
- kind: "TypeDiscriminant",
2242
- ownValues: ["NodeShape"],
2243
- }),
2156
+ type: { kind: "Identifier" },
2244
2157
  },
2245
2158
  and: {
2246
2159
  kind: "Shacl",
2247
- type: () => ({
2248
- kind: "Maybe",
2249
- item: () => ({
2250
- kind: "List",
2251
- item: () => ({ kind: "Identifier" }),
2252
- }),
2253
- }),
2254
2160
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
2161
+ type: {
2162
+ kind: "Option",
2163
+ itemType: {
2164
+ kind: "List",
2165
+ itemType: { kind: "Identifier" },
2166
+ },
2167
+ },
2255
2168
  },
2256
2169
  classes: {
2257
2170
  kind: "Shacl",
2258
- type: () => ({
2259
- kind: "Set",
2260
- item: () => ({ kind: "Iri" }),
2261
- }),
2262
2171
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
2172
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2263
2173
  },
2264
2174
  closed: {
2265
2175
  kind: "Shacl",
2266
- type: () => ({
2267
- kind: "Maybe",
2268
- item: () => ({ kind: "Boolean" }),
2269
- }),
2270
2176
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#closed"),
2177
+ type: {
2178
+ kind: "Option",
2179
+ itemType: { kind: "Boolean" },
2180
+ },
2271
2181
  },
2272
2182
  comment: {
2273
2183
  kind: "Shacl",
2274
- type: () => ({
2275
- kind: "Maybe",
2276
- item: () => ({ kind: "String" }),
2277
- }),
2278
2184
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2185
+ type: {
2186
+ kind: "Option",
2187
+ itemType: { kind: "String" },
2188
+ },
2279
2189
  },
2280
2190
  datatype: {
2281
2191
  kind: "Shacl",
2282
- type: () => ({
2283
- kind: "Maybe",
2284
- item: () => ({ kind: "Iri" }),
2285
- }),
2286
2192
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
2193
+ type: { kind: "Option", itemType: { kind: "Iri" } },
2287
2194
  },
2288
2195
  deactivated: {
2289
2196
  kind: "Shacl",
2290
- type: () => ({
2291
- kind: "Maybe",
2292
- item: () => ({ kind: "Boolean" }),
2293
- }),
2294
2197
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
2198
+ type: {
2199
+ kind: "Option",
2200
+ itemType: { kind: "Boolean" },
2201
+ },
2295
2202
  },
2296
2203
  flags: {
2297
2204
  kind: "Shacl",
2298
- type: () => ({
2299
- kind: "Set",
2300
- item: () => ({ kind: "String" }),
2301
- }),
2302
2205
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
2206
+ type: { kind: "Set", itemType: { kind: "String" } },
2303
2207
  },
2304
2208
  hasValues: {
2305
2209
  kind: "Shacl",
2306
- type: () => ({
2307
- kind: "Set",
2308
- item: () => ({ kind: "Term" }),
2309
- }),
2310
2210
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
2211
+ type: { kind: "Set", itemType: { kind: "Term" } },
2311
2212
  },
2312
2213
  ignoredProperties: {
2313
2214
  kind: "Shacl",
2314
- type: () => ({
2315
- kind: "Maybe",
2316
- item: () => ({
2317
- kind: "List",
2318
- item: () => ({ kind: "Iri" }),
2319
- }),
2320
- }),
2321
2215
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#ignoredProperties"),
2216
+ type: {
2217
+ kind: "Option",
2218
+ itemType: {
2219
+ kind: "List",
2220
+ itemType: { kind: "Iri" },
2221
+ },
2222
+ },
2322
2223
  },
2323
2224
  in_: {
2324
2225
  kind: "Shacl",
2325
- type: () => ({
2326
- kind: "Maybe",
2327
- item: () => ({
2328
- kind: "List",
2329
- item: () => ({ kind: "Term" }),
2330
- }),
2331
- }),
2332
2226
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
2227
+ type: {
2228
+ kind: "Option",
2229
+ itemType: {
2230
+ kind: "List",
2231
+ itemType: { kind: "Term" },
2232
+ },
2233
+ },
2333
2234
  },
2334
2235
  isDefinedBy: {
2335
2236
  kind: "Shacl",
2336
- type: () => ({
2337
- kind: "Maybe",
2338
- item: () => ({ kind: "Identifier" }),
2339
- }),
2340
2237
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
2238
+ type: {
2239
+ kind: "Option",
2240
+ itemType: { kind: "Identifier" },
2241
+ },
2341
2242
  },
2342
2243
  label: {
2343
2244
  kind: "Shacl",
2344
- type: () => ({
2345
- kind: "Maybe",
2346
- item: () => ({ kind: "String" }),
2347
- }),
2348
2245
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2246
+ type: {
2247
+ kind: "Option",
2248
+ itemType: { kind: "String" },
2249
+ },
2349
2250
  },
2350
2251
  languageIn: {
2351
2252
  kind: "Shacl",
2352
- type: () => ({
2353
- kind: "Maybe",
2354
- item: () => ({
2355
- kind: "List",
2356
- item: () => ({ kind: "String" }),
2357
- }),
2358
- }),
2359
2253
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
2254
+ type: {
2255
+ kind: "Option",
2256
+ itemType: {
2257
+ kind: "List",
2258
+ itemType: { kind: "String" },
2259
+ },
2260
+ },
2360
2261
  },
2361
2262
  maxCount: {
2362
2263
  kind: "Shacl",
2363
- type: () => ({
2364
- kind: "Maybe",
2365
- item: () => ({ kind: "BigInt" }),
2366
- }),
2367
2264
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
2265
+ type: {
2266
+ kind: "Option",
2267
+ itemType: { kind: "BigInt" },
2268
+ },
2368
2269
  },
2369
2270
  maxExclusive: {
2370
2271
  kind: "Shacl",
2371
- type: () => ({
2372
- kind: "Maybe",
2373
- item: () => ({ kind: "Literal" }),
2374
- }),
2375
2272
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
2273
+ type: {
2274
+ kind: "Option",
2275
+ itemType: { kind: "Literal" },
2276
+ },
2376
2277
  },
2377
2278
  maxInclusive: {
2378
2279
  kind: "Shacl",
2379
- type: () => ({
2380
- kind: "Maybe",
2381
- item: () => ({ kind: "Literal" }),
2382
- }),
2383
2280
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
2281
+ type: {
2282
+ kind: "Option",
2283
+ itemType: { kind: "Literal" },
2284
+ },
2384
2285
  },
2385
2286
  maxLength: {
2386
2287
  kind: "Shacl",
2387
- type: () => ({
2388
- kind: "Maybe",
2389
- item: () => ({ kind: "BigInt" }),
2390
- }),
2391
2288
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
2289
+ type: {
2290
+ kind: "Option",
2291
+ itemType: { kind: "BigInt" },
2292
+ },
2392
2293
  },
2393
2294
  minCount: {
2394
2295
  kind: "Shacl",
2395
- type: () => ({
2396
- kind: "Maybe",
2397
- item: () => ({ kind: "BigInt" }),
2398
- }),
2399
2296
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
2297
+ type: {
2298
+ kind: "Option",
2299
+ itemType: { kind: "BigInt" },
2300
+ },
2400
2301
  },
2401
2302
  minExclusive: {
2402
2303
  kind: "Shacl",
2403
- type: () => ({
2404
- kind: "Maybe",
2405
- item: () => ({ kind: "Literal" }),
2406
- }),
2407
2304
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
2305
+ type: {
2306
+ kind: "Option",
2307
+ itemType: { kind: "Literal" },
2308
+ },
2408
2309
  },
2409
2310
  minInclusive: {
2410
2311
  kind: "Shacl",
2411
- type: () => ({
2412
- kind: "Maybe",
2413
- item: () => ({ kind: "Literal" }),
2414
- }),
2415
2312
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
2313
+ type: {
2314
+ kind: "Option",
2315
+ itemType: { kind: "Literal" },
2316
+ },
2416
2317
  },
2417
2318
  minLength: {
2418
2319
  kind: "Shacl",
2419
- type: () => ({
2420
- kind: "Maybe",
2421
- item: () => ({ kind: "BigInt" }),
2422
- }),
2423
2320
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
2321
+ type: {
2322
+ kind: "Option",
2323
+ itemType: { kind: "BigInt" },
2324
+ },
2424
2325
  },
2425
2326
  node: {
2426
2327
  kind: "Shacl",
2427
- type: () => ({
2428
- kind: "Maybe",
2429
- item: () => ({ kind: "Identifier" }),
2430
- }),
2431
2328
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
2329
+ type: {
2330
+ kind: "Option",
2331
+ itemType: { kind: "Identifier" },
2332
+ },
2432
2333
  },
2433
2334
  nodeKind: {
2434
2335
  kind: "Shacl",
2435
- type: () => ({
2436
- kind: "Maybe",
2437
- item: () => ({
2336
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2337
+ type: {
2338
+ kind: "Option",
2339
+ itemType: {
2438
2340
  kind: "Iri",
2439
2341
  in: [
2440
2342
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -2444,71 +2346,61 @@ export var NodeShape;
2444
2346
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
2445
2347
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
2446
2348
  ],
2447
- }),
2448
- }),
2449
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2349
+ },
2350
+ },
2450
2351
  },
2451
2352
  not: {
2452
2353
  kind: "Shacl",
2453
- type: () => ({
2454
- kind: "Set",
2455
- item: () => ({ kind: "Identifier" }),
2456
- }),
2457
2354
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
2355
+ type: {
2356
+ kind: "Set",
2357
+ itemType: { kind: "Identifier" },
2358
+ },
2458
2359
  },
2459
2360
  or: {
2460
2361
  kind: "Shacl",
2461
- type: () => ({
2462
- kind: "Maybe",
2463
- item: () => ({
2464
- kind: "List",
2465
- item: () => ({ kind: "Identifier" }),
2466
- }),
2467
- }),
2468
2362
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
2363
+ type: {
2364
+ kind: "Option",
2365
+ itemType: {
2366
+ kind: "List",
2367
+ itemType: { kind: "Identifier" },
2368
+ },
2369
+ },
2469
2370
  },
2470
2371
  patterns: {
2471
2372
  kind: "Shacl",
2472
- type: () => ({
2473
- kind: "Set",
2474
- item: () => ({ kind: "String" }),
2475
- }),
2476
2373
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
2374
+ type: { kind: "Set", itemType: { kind: "String" } },
2477
2375
  },
2478
2376
  properties: {
2479
2377
  kind: "Shacl",
2480
- type: () => ({
2481
- kind: "Set",
2482
- item: () => ({ kind: "Identifier" }),
2483
- }),
2484
2378
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#property"),
2379
+ type: {
2380
+ kind: "Set",
2381
+ itemType: { kind: "Identifier" },
2382
+ },
2485
2383
  },
2486
2384
  subClassOf: {
2487
2385
  kind: "Shacl",
2488
- type: () => ({
2489
- kind: "Set",
2490
- item: () => ({ kind: "Iri" }),
2491
- }),
2492
2386
  path: $RdfVocabularies.rdfs.subClassOf,
2387
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2493
2388
  },
2494
2389
  types: {
2495
2390
  kind: "Shacl",
2496
- type: () => ({
2497
- kind: "Set",
2498
- item: () => ({ kind: "Iri" }),
2499
- }),
2500
2391
  path: $RdfVocabularies.rdf.type,
2392
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2501
2393
  },
2502
2394
  xone: {
2503
2395
  kind: "Shacl",
2504
- type: () => ({
2505
- kind: "Maybe",
2506
- item: () => ({
2507
- kind: "List",
2508
- item: () => ({ kind: "Identifier" }),
2509
- }),
2510
- }),
2511
2396
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
2397
+ type: {
2398
+ kind: "Option",
2399
+ itemType: {
2400
+ kind: "List",
2401
+ itemType: { kind: "Identifier" },
2402
+ },
2403
+ },
2512
2404
  },
2513
2405
  },
2514
2406
  };
@@ -2776,178 +2668,167 @@ export var Shape;
2776
2668
  properties: {
2777
2669
  and: {
2778
2670
  kind: "Shacl",
2779
- type: () => ({
2780
- kind: "Maybe",
2781
- item: () => ({
2782
- kind: "List",
2783
- item: () => ({ kind: "Identifier" }),
2784
- }),
2785
- }),
2786
2671
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#and"),
2672
+ type: {
2673
+ kind: "Option",
2674
+ itemType: {
2675
+ kind: "List",
2676
+ itemType: { kind: "Identifier" },
2677
+ },
2678
+ },
2787
2679
  },
2788
2680
  classes: {
2789
2681
  kind: "Shacl",
2790
- type: () => ({
2791
- kind: "Set",
2792
- item: () => ({ kind: "Iri" }),
2793
- }),
2794
2682
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#class"),
2683
+ type: { kind: "Set", itemType: { kind: "Iri" } },
2795
2684
  },
2796
2685
  comment: {
2797
2686
  kind: "Shacl",
2798
- type: () => ({
2799
- kind: "Maybe",
2800
- item: () => ({ kind: "String" }),
2801
- }),
2802
2687
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2688
+ type: {
2689
+ kind: "Option",
2690
+ itemType: { kind: "String" },
2691
+ },
2803
2692
  },
2804
2693
  datatype: {
2805
2694
  kind: "Shacl",
2806
- type: () => ({
2807
- kind: "Maybe",
2808
- item: () => ({ kind: "Iri" }),
2809
- }),
2810
2695
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#datatype"),
2696
+ type: { kind: "Option", itemType: { kind: "Iri" } },
2811
2697
  },
2812
2698
  deactivated: {
2813
2699
  kind: "Shacl",
2814
- type: () => ({
2815
- kind: "Maybe",
2816
- item: () => ({ kind: "Boolean" }),
2817
- }),
2818
2700
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#deactivated"),
2701
+ type: {
2702
+ kind: "Option",
2703
+ itemType: { kind: "Boolean" },
2704
+ },
2819
2705
  },
2820
2706
  flags: {
2821
2707
  kind: "Shacl",
2822
- type: () => ({
2823
- kind: "Set",
2824
- item: () => ({ kind: "String" }),
2825
- }),
2826
2708
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#flags"),
2709
+ type: { kind: "Set", itemType: { kind: "String" } },
2827
2710
  },
2828
2711
  hasValues: {
2829
2712
  kind: "Shacl",
2830
- type: () => ({
2831
- kind: "Set",
2832
- item: () => ({ kind: "Term" }),
2833
- }),
2834
2713
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#hasValue"),
2714
+ type: { kind: "Set", itemType: { kind: "Term" } },
2835
2715
  },
2836
2716
  in_: {
2837
2717
  kind: "Shacl",
2838
- type: () => ({
2839
- kind: "Maybe",
2840
- item: () => ({
2841
- kind: "List",
2842
- item: () => ({ kind: "Term" }),
2843
- }),
2844
- }),
2845
2718
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#in"),
2719
+ type: {
2720
+ kind: "Option",
2721
+ itemType: {
2722
+ kind: "List",
2723
+ itemType: { kind: "Term" },
2724
+ },
2725
+ },
2846
2726
  },
2847
2727
  isDefinedBy: {
2848
2728
  kind: "Shacl",
2849
- type: () => ({
2850
- kind: "Maybe",
2851
- item: () => ({ kind: "Identifier" }),
2852
- }),
2853
2729
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#isDefinedBy"),
2730
+ type: {
2731
+ kind: "Option",
2732
+ itemType: { kind: "Identifier" },
2733
+ },
2854
2734
  },
2855
2735
  label: {
2856
2736
  kind: "Shacl",
2857
- type: () => ({
2858
- kind: "Maybe",
2859
- item: () => ({ kind: "String" }),
2860
- }),
2861
2737
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2738
+ type: {
2739
+ kind: "Option",
2740
+ itemType: { kind: "String" },
2741
+ },
2862
2742
  },
2863
2743
  languageIn: {
2864
2744
  kind: "Shacl",
2865
- type: () => ({
2866
- kind: "Maybe",
2867
- item: () => ({
2868
- kind: "List",
2869
- item: () => ({ kind: "String" }),
2870
- }),
2871
- }),
2872
2745
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#languageIn"),
2746
+ type: {
2747
+ kind: "Option",
2748
+ itemType: {
2749
+ kind: "List",
2750
+ itemType: { kind: "String" },
2751
+ },
2752
+ },
2873
2753
  },
2874
2754
  maxCount: {
2875
2755
  kind: "Shacl",
2876
- type: () => ({
2877
- kind: "Maybe",
2878
- item: () => ({ kind: "BigInt" }),
2879
- }),
2880
2756
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxCount"),
2757
+ type: {
2758
+ kind: "Option",
2759
+ itemType: { kind: "BigInt" },
2760
+ },
2881
2761
  },
2882
2762
  maxExclusive: {
2883
2763
  kind: "Shacl",
2884
- type: () => ({
2885
- kind: "Maybe",
2886
- item: () => ({ kind: "Literal" }),
2887
- }),
2888
2764
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxExclusive"),
2765
+ type: {
2766
+ kind: "Option",
2767
+ itemType: { kind: "Literal" },
2768
+ },
2889
2769
  },
2890
2770
  maxInclusive: {
2891
2771
  kind: "Shacl",
2892
- type: () => ({
2893
- kind: "Maybe",
2894
- item: () => ({ kind: "Literal" }),
2895
- }),
2896
2772
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxInclusive"),
2773
+ type: {
2774
+ kind: "Option",
2775
+ itemType: { kind: "Literal" },
2776
+ },
2897
2777
  },
2898
2778
  maxLength: {
2899
2779
  kind: "Shacl",
2900
- type: () => ({
2901
- kind: "Maybe",
2902
- item: () => ({ kind: "BigInt" }),
2903
- }),
2904
2780
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#maxLength"),
2781
+ type: {
2782
+ kind: "Option",
2783
+ itemType: { kind: "BigInt" },
2784
+ },
2905
2785
  },
2906
2786
  minCount: {
2907
2787
  kind: "Shacl",
2908
- type: () => ({
2909
- kind: "Maybe",
2910
- item: () => ({ kind: "BigInt" }),
2911
- }),
2912
2788
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minCount"),
2789
+ type: {
2790
+ kind: "Option",
2791
+ itemType: { kind: "BigInt" },
2792
+ },
2913
2793
  },
2914
2794
  minExclusive: {
2915
2795
  kind: "Shacl",
2916
- type: () => ({
2917
- kind: "Maybe",
2918
- item: () => ({ kind: "Literal" }),
2919
- }),
2920
2796
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minExclusive"),
2797
+ type: {
2798
+ kind: "Option",
2799
+ itemType: { kind: "Literal" },
2800
+ },
2921
2801
  },
2922
2802
  minInclusive: {
2923
2803
  kind: "Shacl",
2924
- type: () => ({
2925
- kind: "Maybe",
2926
- item: () => ({ kind: "Literal" }),
2927
- }),
2928
2804
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minInclusive"),
2805
+ type: {
2806
+ kind: "Option",
2807
+ itemType: { kind: "Literal" },
2808
+ },
2929
2809
  },
2930
2810
  minLength: {
2931
2811
  kind: "Shacl",
2932
- type: () => ({
2933
- kind: "Maybe",
2934
- item: () => ({ kind: "BigInt" }),
2935
- }),
2936
2812
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#minLength"),
2813
+ type: {
2814
+ kind: "Option",
2815
+ itemType: { kind: "BigInt" },
2816
+ },
2937
2817
  },
2938
2818
  node: {
2939
2819
  kind: "Shacl",
2940
- type: () => ({
2941
- kind: "Maybe",
2942
- item: () => ({ kind: "Identifier" }),
2943
- }),
2944
2820
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#node"),
2821
+ type: {
2822
+ kind: "Option",
2823
+ itemType: { kind: "Identifier" },
2824
+ },
2945
2825
  },
2946
2826
  nodeKind: {
2947
2827
  kind: "Shacl",
2948
- type: () => ({
2949
- kind: "Maybe",
2950
- item: () => ({
2828
+ path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2829
+ type: {
2830
+ kind: "Option",
2831
+ itemType: {
2951
2832
  kind: "Iri",
2952
2833
  in: [
2953
2834
  dataFactory.namedNode("http://www.w3.org/ns/shacl#BlankNode"),
@@ -2957,47 +2838,43 @@ export var Shape;
2957
2838
  dataFactory.namedNode("http://www.w3.org/ns/shacl#IRIOrLiteral"),
2958
2839
  dataFactory.namedNode("http://www.w3.org/ns/shacl#Literal"),
2959
2840
  ],
2960
- }),
2961
- }),
2962
- path: dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"),
2841
+ },
2842
+ },
2963
2843
  },
2964
2844
  not: {
2965
2845
  kind: "Shacl",
2966
- type: () => ({
2967
- kind: "Set",
2968
- item: () => ({ kind: "Identifier" }),
2969
- }),
2970
2846
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#not"),
2847
+ type: {
2848
+ kind: "Set",
2849
+ itemType: { kind: "Identifier" },
2850
+ },
2971
2851
  },
2972
2852
  or: {
2973
2853
  kind: "Shacl",
2974
- type: () => ({
2975
- kind: "Maybe",
2976
- item: () => ({
2977
- kind: "List",
2978
- item: () => ({ kind: "Identifier" }),
2979
- }),
2980
- }),
2981
2854
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#or"),
2855
+ type: {
2856
+ kind: "Option",
2857
+ itemType: {
2858
+ kind: "List",
2859
+ itemType: { kind: "Identifier" },
2860
+ },
2861
+ },
2982
2862
  },
2983
2863
  patterns: {
2984
2864
  kind: "Shacl",
2985
- type: () => ({
2986
- kind: "Set",
2987
- item: () => ({ kind: "String" }),
2988
- }),
2989
2865
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#pattern"),
2866
+ type: { kind: "Set", itemType: { kind: "String" } },
2990
2867
  },
2991
2868
  xone: {
2992
2869
  kind: "Shacl",
2993
- type: () => ({
2994
- kind: "Maybe",
2995
- item: () => ({
2996
- kind: "List",
2997
- item: () => ({ kind: "Identifier" }),
2998
- }),
2999
- }),
3000
2870
  path: dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"),
2871
+ type: {
2872
+ kind: "Option",
2873
+ itemType: {
2874
+ kind: "List",
2875
+ itemType: { kind: "Identifier" },
2876
+ },
2877
+ },
3001
2878
  },
3002
2879
  },
3003
2880
  };
@@ -3121,19 +2998,19 @@ export var $Object;
3121
2998
  properties: {
3122
2999
  comment: {
3123
3000
  kind: "Shacl",
3124
- type: () => ({
3125
- kind: "Maybe",
3126
- item: () => ({ kind: "String" }),
3127
- }),
3128
3001
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
3002
+ type: {
3003
+ kind: "Option",
3004
+ itemType: { kind: "String" },
3005
+ },
3129
3006
  },
3130
3007
  label: {
3131
3008
  kind: "Shacl",
3132
- type: () => ({
3133
- kind: "Maybe",
3134
- item: () => ({ kind: "String" }),
3135
- }),
3136
3009
  path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
3010
+ type: {
3011
+ kind: "Option",
3012
+ itemType: { kind: "String" },
3013
+ },
3137
3014
  },
3138
3015
  },
3139
3016
  };