@shaclmate/compiler 4.0.14 → 4.0.15

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 (31) hide show
  1. package/dist/Compiler.d.ts +4 -1
  2. package/dist/Compiler.js +3 -1
  3. package/dist/ShapesGraphToAstTransformer.d.ts +10 -2
  4. package/dist/ShapesGraphToAstTransformer.js +72 -1
  5. package/dist/_ShapesGraphToAstTransformer/nodeShapeIdentifierMintingStrategy.js +14 -13
  6. package/dist/_ShapesGraphToAstTransformer/shapeNodeKinds.js +18 -17
  7. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +6 -2
  8. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +8 -8
  9. package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.js +10 -5
  10. package/dist/generators/ts/AbstractCollectionType.js +1 -7
  11. package/dist/generators/ts/AbstractTermType.d.ts +1 -0
  12. package/dist/generators/ts/AbstractTermType.js +6 -0
  13. package/dist/generators/ts/AbstractUnionType.d.ts +31 -9
  14. package/dist/generators/ts/AbstractUnionType.js +252 -126
  15. package/dist/generators/ts/SetType.d.ts +1 -0
  16. package/dist/generators/ts/SetType.js +12 -0
  17. package/dist/input/ShapesGraph.d.ts +38 -21
  18. package/dist/input/ShapesGraph.js +56 -58
  19. package/dist/input/generated.d.ts +204 -39
  20. package/dist/input/generated.js +2281 -676
  21. package/dist/input/index.d.ts +1 -3
  22. package/dist/input/index.js +1 -3
  23. package/package.json +2 -2
  24. package/dist/input/NodeShape.d.ts +0 -11
  25. package/dist/input/NodeShape.js +0 -2
  26. package/dist/input/Shape.d.ts +0 -4
  27. package/dist/input/Shape.js +0 -2
  28. package/dist/input/ancestorClassIris.d.ts +0 -4
  29. package/dist/input/ancestorClassIris.js +0 -24
  30. package/dist/input/descendantClassIris.d.ts +0 -4
  31. package/dist/input/descendantClassIris.js +0 -27
@@ -162,6 +162,21 @@ class $IdentifierSet {
162
162
  }
163
163
  }
164
164
  }
165
+ function $isReadonlyBigIntArray(x) {
166
+ return Array.isArray(x) && x.every((z) => typeof z === "bigint");
167
+ }
168
+ function $isReadonlyBooleanArray(x) {
169
+ return Array.isArray(x) && x.every((z) => typeof z === "boolean");
170
+ }
171
+ function $isReadonlyNumberArray(x) {
172
+ return Array.isArray(x) && x.every((z) => typeof z === "number");
173
+ }
174
+ function $isReadonlyObjectArray(x) {
175
+ return Array.isArray(x) && x.every((z) => typeof z === "object");
176
+ }
177
+ function $isReadonlyStringArray(x) {
178
+ return Array.isArray(x) && x.every((z) => typeof z === "string");
179
+ }
165
180
  const $literalFactory = new LiteralFactory({ dataFactory: dataFactory });
166
181
  export var $PropertyPath;
167
182
  (function ($PropertyPath) {
@@ -219,291 +234,924 @@ function $shaclPropertyFromRdf({ graph, propertySchema, resource, typeFromRdf, }
219
234
  }
220
235
  export var PropertyShape;
221
236
  (function (PropertyShape) {
222
- let $Identifier;
223
- (function ($Identifier) {
224
- $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
225
- $Identifier.toString = Resource.Identifier.toString;
226
- })($Identifier = PropertyShape.$Identifier || (PropertyShape.$Identifier = {}));
227
- function $filter(filter, value) {
228
- if (filter.$identifier !== undefined &&
229
- !$filterIdentifier(filter.$identifier, value.$identifier)) {
230
- return false;
237
+ function $create(parameters) {
238
+ let $identifier;
239
+ if (typeof parameters.$identifier === "object") {
240
+ $identifier = parameters.$identifier;
231
241
  }
232
- if (filter.and !== undefined &&
233
- !$filterArray($filterArray($filterIdentifier))(filter.and, value.and)) {
234
- return false;
242
+ else if (typeof parameters.$identifier === "string") {
243
+ $identifier = dataFactory.namedNode(parameters.$identifier);
235
244
  }
236
- if (filter.classes !== undefined &&
237
- !$filterArray($filterIri)(filter.classes, value.classes)) {
238
- return false;
245
+ else if (parameters.$identifier === undefined) {
246
+ $identifier = dataFactory.blankNode();
239
247
  }
240
- if (filter.comment !== undefined &&
241
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
242
- return false;
248
+ else {
249
+ $identifier = parameters.$identifier;
243
250
  }
244
- if (filter.datatype !== undefined &&
245
- !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
246
- return false;
251
+ const $type = "PropertyShape";
252
+ let and;
253
+ if (Maybe.isMaybe(parameters.and)) {
254
+ and = parameters.and;
247
255
  }
248
- if (filter.deactivated !== undefined &&
249
- !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
250
- return false;
256
+ else if ($isReadonlyObjectArray(parameters.and)) {
257
+ and = Maybe.of(parameters.and);
251
258
  }
252
- if (filter.defaultValue !== undefined &&
253
- !$filterMaybe($filterTerm)(filter.defaultValue, value.defaultValue)) {
254
- return false;
259
+ else if ($isReadonlyStringArray(parameters.and)) {
260
+ and = Maybe.of(parameters.and.map((item) => dataFactory.namedNode(item)));
255
261
  }
256
- if (filter.description !== undefined &&
257
- !$filterMaybe($filterString)(filter.description, value.description)) {
258
- return false;
262
+ else if (parameters.and === undefined) {
263
+ and = Maybe.empty();
259
264
  }
260
- if (filter.flags !== undefined &&
261
- !$filterArray($filterString)(filter.flags, value.flags)) {
262
- return false;
265
+ else {
266
+ and = parameters.and;
263
267
  }
264
- if (filter.groups !== undefined &&
265
- !$filterArray($filterIdentifier)(filter.groups, value.groups)) {
266
- return false;
268
+ let classes;
269
+ if (parameters.classes === undefined) {
270
+ classes = [];
267
271
  }
268
- if (filter.hasValues !== undefined &&
269
- !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
270
- return false;
272
+ else if ($isReadonlyObjectArray(parameters.classes)) {
273
+ classes = parameters.classes;
271
274
  }
272
- if (filter.in_ !== undefined &&
273
- !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
274
- return false;
275
+ else if ($isReadonlyStringArray(parameters.classes)) {
276
+ classes = parameters.classes.map((item) => dataFactory.namedNode(item));
275
277
  }
276
- if (filter.isDefinedBy !== undefined &&
277
- !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
278
- return false;
278
+ else {
279
+ classes = parameters.classes;
279
280
  }
280
- if (filter.label !== undefined &&
281
- !$filterMaybe($filterString)(filter.label, value.label)) {
282
- return false;
281
+ let comment;
282
+ if (Maybe.isMaybe(parameters.comment)) {
283
+ comment = parameters.comment;
283
284
  }
284
- if (filter.languageIn !== undefined &&
285
- !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
286
- return false;
285
+ else if (typeof parameters.comment === "string") {
286
+ comment = Maybe.of(parameters.comment);
287
287
  }
288
- if (filter.maxCount !== undefined &&
289
- !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
290
- return false;
288
+ else if (parameters.comment === undefined) {
289
+ comment = Maybe.empty();
291
290
  }
292
- if (filter.maxExclusive !== undefined &&
293
- !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
294
- return false;
291
+ else {
292
+ comment = parameters.comment;
295
293
  }
296
- if (filter.maxInclusive !== undefined &&
297
- !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
298
- return false;
294
+ let datatype;
295
+ if (Maybe.isMaybe(parameters.datatype)) {
296
+ datatype = parameters.datatype;
299
297
  }
300
- if (filter.maxLength !== undefined &&
301
- !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
302
- return false;
298
+ else if (typeof parameters.datatype === "object") {
299
+ datatype = Maybe.of(parameters.datatype);
303
300
  }
304
- if (filter.minCount !== undefined &&
305
- !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
306
- return false;
301
+ else if (typeof parameters.datatype === "string") {
302
+ datatype = Maybe.of(dataFactory.namedNode(parameters.datatype));
307
303
  }
308
- if (filter.minExclusive !== undefined &&
309
- !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
310
- return false;
304
+ else if (parameters.datatype === undefined) {
305
+ datatype = Maybe.empty();
311
306
  }
312
- if (filter.minInclusive !== undefined &&
313
- !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
314
- return false;
307
+ else {
308
+ datatype = parameters.datatype;
315
309
  }
316
- if (filter.minLength !== undefined &&
317
- !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
318
- return false;
310
+ let deactivated;
311
+ if (Maybe.isMaybe(parameters.deactivated)) {
312
+ deactivated = parameters.deactivated;
319
313
  }
320
- if (filter.mutable !== undefined &&
321
- !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
322
- return false;
314
+ else if (typeof parameters.deactivated === "boolean") {
315
+ deactivated = Maybe.of(parameters.deactivated);
323
316
  }
324
- if (filter.name !== undefined &&
325
- !$filterMaybe($filterString)(filter.name, value.name)) {
326
- return false;
317
+ else if (parameters.deactivated === undefined) {
318
+ deactivated = Maybe.empty();
327
319
  }
328
- if (filter.nodeKind !== undefined &&
329
- !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
330
- return false;
320
+ else {
321
+ deactivated = parameters.deactivated;
331
322
  }
332
- if (filter.nodes !== undefined &&
333
- !$filterArray($filterIdentifier)(filter.nodes, value.nodes)) {
334
- return false;
323
+ let defaultValue;
324
+ if (Maybe.isMaybe(parameters.defaultValue)) {
325
+ defaultValue = parameters.defaultValue;
335
326
  }
336
- if (filter.not !== undefined &&
337
- !$filterArray($filterIdentifier)(filter.not, value.not)) {
338
- return false;
327
+ else if (typeof parameters.defaultValue === "bigint") {
328
+ defaultValue = Maybe.of($literalFactory.bigint(parameters.defaultValue));
339
329
  }
340
- if (filter.or !== undefined &&
341
- !$filterArray($filterArray($filterIdentifier))(filter.or, value.or)) {
342
- return false;
330
+ else if (typeof parameters.defaultValue === "boolean") {
331
+ defaultValue = Maybe.of($literalFactory.boolean(parameters.defaultValue));
343
332
  }
344
- if (filter.order !== undefined &&
345
- !$filterMaybe(($filterNumeric))(filter.order, value.order)) {
346
- return false;
333
+ else if (typeof parameters.defaultValue === "object" &&
334
+ parameters.defaultValue instanceof Date) {
335
+ defaultValue = Maybe.of($literalFactory.date(parameters.defaultValue));
347
336
  }
348
- if (filter.path !== undefined &&
349
- !$PropertyPath.$filter(filter.path, value.path)) {
350
- return false;
337
+ else if (typeof parameters.defaultValue === "number") {
338
+ defaultValue = Maybe.of($literalFactory.number(parameters.defaultValue));
351
339
  }
352
- if (filter.patterns !== undefined &&
353
- !$filterArray($filterString)(filter.patterns, value.patterns)) {
354
- return false;
340
+ else if (typeof parameters.defaultValue === "string") {
341
+ defaultValue = Maybe.of($literalFactory.string(parameters.defaultValue));
355
342
  }
356
- if (filter.resolve !== undefined &&
357
- !$filterMaybe($filterIdentifier)(filter.resolve, value.resolve)) {
358
- return false;
343
+ else if (typeof parameters.defaultValue === "object") {
344
+ defaultValue = Maybe.of(parameters.defaultValue);
359
345
  }
360
- if (filter.shaclmateName !== undefined &&
361
- !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
362
- return false;
346
+ else if (parameters.defaultValue === undefined) {
347
+ defaultValue = Maybe.empty();
363
348
  }
364
- if (filter.uniqueLang !== undefined &&
365
- !$filterMaybe($filterBoolean)(filter.uniqueLang, value.uniqueLang)) {
366
- return false;
349
+ else {
350
+ defaultValue = parameters.defaultValue;
367
351
  }
368
- if (filter.visibility !== undefined &&
369
- !$filterMaybe($filterIri)(filter.visibility, value.visibility)) {
370
- return false;
352
+ let description;
353
+ if (Maybe.isMaybe(parameters.description)) {
354
+ description = parameters.description;
371
355
  }
372
- if (filter.xone !== undefined &&
373
- !$filterArray($filterArray($filterIdentifier))(filter.xone, value.xone)) {
374
- return false;
356
+ else if (typeof parameters.description === "string") {
357
+ description = Maybe.of(parameters.description);
375
358
  }
376
- return true;
377
- }
378
- PropertyShape.$filter = $filter;
379
- PropertyShape.$fromRdfResource = (resource, options) => {
380
- let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
381
- if (!objectSet) {
382
- objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
359
+ else if (parameters.description === undefined) {
360
+ description = Maybe.empty();
383
361
  }
384
- return PropertyShape.$propertiesFromRdfResource(resource, {
385
- context,
386
- graph,
387
- ignoreRdfType,
388
- objectSet,
389
- preferredLanguages,
390
- });
391
- };
392
- PropertyShape.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
393
- .toResource()
394
- .chain((resource) => PropertyShape.$fromRdfResource(resource, options))));
395
- PropertyShape.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape");
396
- function isPropertyShape(object) {
397
- switch (object.$type) {
398
- case "PropertyShape":
399
- return true;
400
- default:
401
- return false;
362
+ else {
363
+ description = parameters.description;
402
364
  }
403
- }
404
- PropertyShape.isPropertyShape = isPropertyShape;
405
- PropertyShape.$propertiesFromRdfResource = ($resource, _$options) => {
406
- return (!_$options.ignoreRdfType
407
- ? $resource
408
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
409
- .chain((actualRdfType) => actualRdfType.toIri())
410
- .chain((actualRdfType) => {
411
- // Check the expected type and its known subtypes
412
- switch (actualRdfType.value) {
413
- case "http://www.w3.org/ns/shacl#PropertyShape":
414
- return Right(true);
415
- }
416
- // Check arbitrary rdfs:subClassOf's of the expected type
417
- if ($resource.isInstanceOf(PropertyShape.$fromRdfType, {
418
- graph: _$options.graph,
419
- })) {
420
- return Right(true);
421
- }
422
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
423
- })
424
- : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
425
- dataFactory: dataFactory,
426
- focusResource: $resource,
427
- propertyPath: $RdfVocabularies.rdf.subject,
428
- term: $resource.identifier,
429
- }).toValues())
430
- .chain((values) => values.chainMap((value) => value.toIdentifier()))
431
- .chain((values) => values.head())
432
- .chain(($identifier) => Right("PropertyShape").chain(($type) => $shaclPropertyFromRdf({
433
- graph: _$options.graph,
434
- resource: $resource,
435
- propertySchema: PropertyShape.$schema.properties.and,
436
- typeFromRdf: (resourceValues) => resourceValues
437
- .chain((values) => values.chainMap((value) => value.toList({ graph: _$options.graph })))
438
- .chain((valueLists) => valueLists.chainMap((valueList) => Right(Resource.Values.fromArray({
439
- focusResource: $resource,
440
- propertyPath: PropertyShape.$schema.properties.and.path,
441
- values: valueList.toArray(),
442
- })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
443
- .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
444
- .map((values) => values.toArray())
445
- .map((valuesArray) => Resource.Values.fromValue({
446
- focusResource: $resource,
447
- propertyPath: PropertyShape.$schema.properties.and.path,
448
- value: valuesArray,
449
- })),
450
- }).chain((and) => $shaclPropertyFromRdf({
451
- graph: _$options.graph,
452
- resource: $resource,
453
- propertySchema: PropertyShape.$schema.properties.classes,
454
- typeFromRdf: (resourceValues) => resourceValues
455
- .chain((values) => values.chainMap((value) => value.toIri()))
456
- .map((values) => values.toArray())
457
- .map((valuesArray) => Resource.Values.fromValue({
458
- focusResource: $resource,
459
- propertyPath: PropertyShape.$schema.properties.classes.path,
460
- value: valuesArray,
461
- })),
462
- }).chain((classes) => $shaclPropertyFromRdf({
463
- graph: _$options.graph,
464
- resource: $resource,
465
- propertySchema: PropertyShape.$schema.properties.comment,
466
- typeFromRdf: (resourceValues) => resourceValues
467
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
468
- .chain((values) => values.chainMap((value) => value.toString()))
469
- .map((values) => values.length > 0
470
- ? values.map((value) => Maybe.of(value))
471
- : Resource.Values.fromValue({
472
- focusResource: $resource,
473
- propertyPath: PropertyShape.$schema.properties.comment.path,
474
- value: Maybe.empty(),
475
- })),
476
- }).chain((comment) => $shaclPropertyFromRdf({
477
- graph: _$options.graph,
478
- resource: $resource,
479
- propertySchema: PropertyShape.$schema.properties.datatype,
480
- typeFromRdf: (resourceValues) => resourceValues
481
- .chain((values) => values.chainMap((value) => value.toIri()))
482
- .map((values) => values.length > 0
483
- ? values.map((value) => Maybe.of(value))
484
- : Resource.Values.fromValue({
485
- focusResource: $resource,
486
- propertyPath: PropertyShape.$schema.properties.datatype
487
- .path,
488
- value: Maybe.empty(),
489
- })),
490
- }).chain((datatype) => $shaclPropertyFromRdf({
491
- graph: _$options.graph,
492
- resource: $resource,
493
- propertySchema: PropertyShape.$schema.properties.deactivated,
494
- typeFromRdf: (resourceValues) => resourceValues
495
- .chain((values) => values.chainMap((value) => value.toBoolean()))
496
- .map((values) => values.length > 0
497
- ? values.map((value) => Maybe.of(value))
498
- : Resource.Values.fromValue({
499
- focusResource: $resource,
500
- propertyPath: PropertyShape.$schema.properties.deactivated
501
- .path,
502
- value: Maybe.empty(),
503
- })),
504
- }).chain((deactivated) => $shaclPropertyFromRdf({
505
- graph: _$options.graph,
506
- resource: $resource,
365
+ let flags;
366
+ if (parameters.flags === undefined) {
367
+ flags = [];
368
+ }
369
+ else if (typeof parameters.flags === "object") {
370
+ flags = parameters.flags;
371
+ }
372
+ else {
373
+ flags = parameters.flags;
374
+ }
375
+ let groups;
376
+ if (parameters.groups === undefined) {
377
+ groups = [];
378
+ }
379
+ else if ($isReadonlyObjectArray(parameters.groups)) {
380
+ groups = parameters.groups;
381
+ }
382
+ else if ($isReadonlyStringArray(parameters.groups)) {
383
+ groups = parameters.groups.map((item) => dataFactory.namedNode(item));
384
+ }
385
+ else {
386
+ groups = parameters.groups;
387
+ }
388
+ let hasValues;
389
+ if (parameters.hasValues === undefined) {
390
+ hasValues = [];
391
+ }
392
+ else if ($isReadonlyObjectArray(parameters.hasValues)) {
393
+ hasValues = parameters.hasValues;
394
+ }
395
+ else if ($isReadonlyBigIntArray(parameters.hasValues)) {
396
+ hasValues = parameters.hasValues.map((item) => $literalFactory.bigint(item));
397
+ }
398
+ else if ($isReadonlyBooleanArray(parameters.hasValues)) {
399
+ hasValues = parameters.hasValues.map((item) => $literalFactory.boolean(item));
400
+ }
401
+ else if ($isReadonlyNumberArray(parameters.hasValues)) {
402
+ hasValues = parameters.hasValues.map((item) => $literalFactory.number(item));
403
+ }
404
+ else if ($isReadonlyStringArray(parameters.hasValues)) {
405
+ hasValues = parameters.hasValues.map((item) => $literalFactory.string(item));
406
+ }
407
+ else {
408
+ hasValues = parameters.hasValues;
409
+ }
410
+ let in_;
411
+ if (Maybe.isMaybe(parameters.in_)) {
412
+ in_ = parameters.in_;
413
+ }
414
+ else if ($isReadonlyObjectArray(parameters.in_)) {
415
+ in_ = Maybe.of(parameters.in_);
416
+ }
417
+ else if ($isReadonlyBigIntArray(parameters.in_)) {
418
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.bigint(item)));
419
+ }
420
+ else if ($isReadonlyBooleanArray(parameters.in_)) {
421
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.boolean(item)));
422
+ }
423
+ else if ($isReadonlyNumberArray(parameters.in_)) {
424
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.number(item)));
425
+ }
426
+ else if ($isReadonlyStringArray(parameters.in_)) {
427
+ in_ = Maybe.of(parameters.in_.map((item) => $literalFactory.string(item)));
428
+ }
429
+ else if (parameters.in_ === undefined) {
430
+ in_ = Maybe.empty();
431
+ }
432
+ else {
433
+ in_ = parameters.in_;
434
+ }
435
+ let isDefinedBy;
436
+ if (Maybe.isMaybe(parameters.isDefinedBy)) {
437
+ isDefinedBy = parameters.isDefinedBy;
438
+ }
439
+ else if (typeof parameters.isDefinedBy === "object") {
440
+ isDefinedBy = Maybe.of(parameters.isDefinedBy);
441
+ }
442
+ else if (typeof parameters.isDefinedBy === "string") {
443
+ isDefinedBy = Maybe.of(dataFactory.namedNode(parameters.isDefinedBy));
444
+ }
445
+ else if (parameters.isDefinedBy === undefined) {
446
+ isDefinedBy = Maybe.empty();
447
+ }
448
+ else {
449
+ isDefinedBy = parameters.isDefinedBy;
450
+ }
451
+ let label;
452
+ if (Maybe.isMaybe(parameters.label)) {
453
+ label = parameters.label;
454
+ }
455
+ else if (typeof parameters.label === "string") {
456
+ label = Maybe.of(parameters.label);
457
+ }
458
+ else if (parameters.label === undefined) {
459
+ label = Maybe.empty();
460
+ }
461
+ else {
462
+ label = parameters.label;
463
+ }
464
+ let languageIn;
465
+ if (Maybe.isMaybe(parameters.languageIn)) {
466
+ languageIn = parameters.languageIn;
467
+ }
468
+ else if (typeof parameters.languageIn === "object") {
469
+ languageIn = Maybe.of(parameters.languageIn);
470
+ }
471
+ else if (parameters.languageIn === undefined) {
472
+ languageIn = Maybe.empty();
473
+ }
474
+ else {
475
+ languageIn = parameters.languageIn;
476
+ }
477
+ let maxCount;
478
+ if (Maybe.isMaybe(parameters.maxCount)) {
479
+ maxCount = parameters.maxCount;
480
+ }
481
+ else if (typeof parameters.maxCount === "number") {
482
+ maxCount = Maybe.of(parameters.maxCount);
483
+ }
484
+ else if (parameters.maxCount === undefined) {
485
+ maxCount = Maybe.empty();
486
+ }
487
+ else {
488
+ maxCount = parameters.maxCount;
489
+ }
490
+ let maxExclusive;
491
+ if (Maybe.isMaybe(parameters.maxExclusive)) {
492
+ maxExclusive = parameters.maxExclusive;
493
+ }
494
+ else if (typeof parameters.maxExclusive === "bigint") {
495
+ maxExclusive = Maybe.of($literalFactory.bigint(parameters.maxExclusive));
496
+ }
497
+ else if (typeof parameters.maxExclusive === "boolean") {
498
+ maxExclusive = Maybe.of($literalFactory.boolean(parameters.maxExclusive));
499
+ }
500
+ else if (typeof parameters.maxExclusive === "object" &&
501
+ parameters.maxExclusive instanceof Date) {
502
+ maxExclusive = Maybe.of($literalFactory.date(parameters.maxExclusive));
503
+ }
504
+ else if (typeof parameters.maxExclusive === "number") {
505
+ maxExclusive = Maybe.of($literalFactory.number(parameters.maxExclusive));
506
+ }
507
+ else if (typeof parameters.maxExclusive === "string") {
508
+ maxExclusive = Maybe.of($literalFactory.string(parameters.maxExclusive));
509
+ }
510
+ else if (typeof parameters.maxExclusive === "object") {
511
+ maxExclusive = Maybe.of(parameters.maxExclusive);
512
+ }
513
+ else if (parameters.maxExclusive === undefined) {
514
+ maxExclusive = Maybe.empty();
515
+ }
516
+ else {
517
+ maxExclusive = parameters.maxExclusive;
518
+ }
519
+ let maxInclusive;
520
+ if (Maybe.isMaybe(parameters.maxInclusive)) {
521
+ maxInclusive = parameters.maxInclusive;
522
+ }
523
+ else if (typeof parameters.maxInclusive === "bigint") {
524
+ maxInclusive = Maybe.of($literalFactory.bigint(parameters.maxInclusive));
525
+ }
526
+ else if (typeof parameters.maxInclusive === "boolean") {
527
+ maxInclusive = Maybe.of($literalFactory.boolean(parameters.maxInclusive));
528
+ }
529
+ else if (typeof parameters.maxInclusive === "object" &&
530
+ parameters.maxInclusive instanceof Date) {
531
+ maxInclusive = Maybe.of($literalFactory.date(parameters.maxInclusive));
532
+ }
533
+ else if (typeof parameters.maxInclusive === "number") {
534
+ maxInclusive = Maybe.of($literalFactory.number(parameters.maxInclusive));
535
+ }
536
+ else if (typeof parameters.maxInclusive === "string") {
537
+ maxInclusive = Maybe.of($literalFactory.string(parameters.maxInclusive));
538
+ }
539
+ else if (typeof parameters.maxInclusive === "object") {
540
+ maxInclusive = Maybe.of(parameters.maxInclusive);
541
+ }
542
+ else if (parameters.maxInclusive === undefined) {
543
+ maxInclusive = Maybe.empty();
544
+ }
545
+ else {
546
+ maxInclusive = parameters.maxInclusive;
547
+ }
548
+ let maxLength;
549
+ if (Maybe.isMaybe(parameters.maxLength)) {
550
+ maxLength = parameters.maxLength;
551
+ }
552
+ else if (typeof parameters.maxLength === "number") {
553
+ maxLength = Maybe.of(parameters.maxLength);
554
+ }
555
+ else if (parameters.maxLength === undefined) {
556
+ maxLength = Maybe.empty();
557
+ }
558
+ else {
559
+ maxLength = parameters.maxLength;
560
+ }
561
+ let minCount;
562
+ if (Maybe.isMaybe(parameters.minCount)) {
563
+ minCount = parameters.minCount;
564
+ }
565
+ else if (typeof parameters.minCount === "number") {
566
+ minCount = Maybe.of(parameters.minCount);
567
+ }
568
+ else if (parameters.minCount === undefined) {
569
+ minCount = Maybe.empty();
570
+ }
571
+ else {
572
+ minCount = parameters.minCount;
573
+ }
574
+ let minExclusive;
575
+ if (Maybe.isMaybe(parameters.minExclusive)) {
576
+ minExclusive = parameters.minExclusive;
577
+ }
578
+ else if (typeof parameters.minExclusive === "bigint") {
579
+ minExclusive = Maybe.of($literalFactory.bigint(parameters.minExclusive));
580
+ }
581
+ else if (typeof parameters.minExclusive === "boolean") {
582
+ minExclusive = Maybe.of($literalFactory.boolean(parameters.minExclusive));
583
+ }
584
+ else if (typeof parameters.minExclusive === "object" &&
585
+ parameters.minExclusive instanceof Date) {
586
+ minExclusive = Maybe.of($literalFactory.date(parameters.minExclusive));
587
+ }
588
+ else if (typeof parameters.minExclusive === "number") {
589
+ minExclusive = Maybe.of($literalFactory.number(parameters.minExclusive));
590
+ }
591
+ else if (typeof parameters.minExclusive === "string") {
592
+ minExclusive = Maybe.of($literalFactory.string(parameters.minExclusive));
593
+ }
594
+ else if (typeof parameters.minExclusive === "object") {
595
+ minExclusive = Maybe.of(parameters.minExclusive);
596
+ }
597
+ else if (parameters.minExclusive === undefined) {
598
+ minExclusive = Maybe.empty();
599
+ }
600
+ else {
601
+ minExclusive = parameters.minExclusive;
602
+ }
603
+ let minInclusive;
604
+ if (Maybe.isMaybe(parameters.minInclusive)) {
605
+ minInclusive = parameters.minInclusive;
606
+ }
607
+ else if (typeof parameters.minInclusive === "bigint") {
608
+ minInclusive = Maybe.of($literalFactory.bigint(parameters.minInclusive));
609
+ }
610
+ else if (typeof parameters.minInclusive === "boolean") {
611
+ minInclusive = Maybe.of($literalFactory.boolean(parameters.minInclusive));
612
+ }
613
+ else if (typeof parameters.minInclusive === "object" &&
614
+ parameters.minInclusive instanceof Date) {
615
+ minInclusive = Maybe.of($literalFactory.date(parameters.minInclusive));
616
+ }
617
+ else if (typeof parameters.minInclusive === "number") {
618
+ minInclusive = Maybe.of($literalFactory.number(parameters.minInclusive));
619
+ }
620
+ else if (typeof parameters.minInclusive === "string") {
621
+ minInclusive = Maybe.of($literalFactory.string(parameters.minInclusive));
622
+ }
623
+ else if (typeof parameters.minInclusive === "object") {
624
+ minInclusive = Maybe.of(parameters.minInclusive);
625
+ }
626
+ else if (parameters.minInclusive === undefined) {
627
+ minInclusive = Maybe.empty();
628
+ }
629
+ else {
630
+ minInclusive = parameters.minInclusive;
631
+ }
632
+ let minLength;
633
+ if (Maybe.isMaybe(parameters.minLength)) {
634
+ minLength = parameters.minLength;
635
+ }
636
+ else if (typeof parameters.minLength === "number") {
637
+ minLength = Maybe.of(parameters.minLength);
638
+ }
639
+ else if (parameters.minLength === undefined) {
640
+ minLength = Maybe.empty();
641
+ }
642
+ else {
643
+ minLength = parameters.minLength;
644
+ }
645
+ let mutable;
646
+ if (Maybe.isMaybe(parameters.mutable)) {
647
+ mutable = parameters.mutable;
648
+ }
649
+ else if (typeof parameters.mutable === "boolean") {
650
+ mutable = Maybe.of(parameters.mutable);
651
+ }
652
+ else if (parameters.mutable === undefined) {
653
+ mutable = Maybe.empty();
654
+ }
655
+ else {
656
+ mutable = parameters.mutable;
657
+ }
658
+ let name;
659
+ if (Maybe.isMaybe(parameters.name)) {
660
+ name = parameters.name;
661
+ }
662
+ else if (typeof parameters.name === "string") {
663
+ name = Maybe.of(parameters.name);
664
+ }
665
+ else if (parameters.name === undefined) {
666
+ name = Maybe.empty();
667
+ }
668
+ else {
669
+ name = parameters.name;
670
+ }
671
+ let nodeKind;
672
+ if (Maybe.isMaybe(parameters.nodeKind)) {
673
+ nodeKind = parameters.nodeKind;
674
+ }
675
+ else if (typeof parameters.nodeKind === "object") {
676
+ nodeKind = Maybe.of(parameters.nodeKind);
677
+ }
678
+ else if (typeof parameters.nodeKind === "string") {
679
+ nodeKind = Maybe.of(dataFactory.namedNode(parameters.nodeKind));
680
+ }
681
+ else if (parameters.nodeKind === undefined) {
682
+ nodeKind = Maybe.empty();
683
+ }
684
+ else {
685
+ nodeKind = parameters.nodeKind;
686
+ }
687
+ let nodes;
688
+ if (parameters.nodes === undefined) {
689
+ nodes = [];
690
+ }
691
+ else if ($isReadonlyObjectArray(parameters.nodes)) {
692
+ nodes = parameters.nodes;
693
+ }
694
+ else if ($isReadonlyStringArray(parameters.nodes)) {
695
+ nodes = parameters.nodes.map((item) => dataFactory.namedNode(item));
696
+ }
697
+ else {
698
+ nodes = parameters.nodes;
699
+ }
700
+ let not;
701
+ if (parameters.not === undefined) {
702
+ not = [];
703
+ }
704
+ else if ($isReadonlyObjectArray(parameters.not)) {
705
+ not = parameters.not;
706
+ }
707
+ else if ($isReadonlyStringArray(parameters.not)) {
708
+ not = parameters.not.map((item) => dataFactory.namedNode(item));
709
+ }
710
+ else {
711
+ not = parameters.not;
712
+ }
713
+ let or;
714
+ if (Maybe.isMaybe(parameters.or)) {
715
+ or = parameters.or;
716
+ }
717
+ else if ($isReadonlyObjectArray(parameters.or)) {
718
+ or = Maybe.of(parameters.or);
719
+ }
720
+ else if ($isReadonlyStringArray(parameters.or)) {
721
+ or = Maybe.of(parameters.or.map((item) => dataFactory.namedNode(item)));
722
+ }
723
+ else if (parameters.or === undefined) {
724
+ or = Maybe.empty();
725
+ }
726
+ else {
727
+ or = parameters.or;
728
+ }
729
+ let order;
730
+ if (Maybe.isMaybe(parameters.order)) {
731
+ order = parameters.order;
732
+ }
733
+ else if (typeof parameters.order === "number") {
734
+ order = Maybe.of(parameters.order);
735
+ }
736
+ else if (parameters.order === undefined) {
737
+ order = Maybe.empty();
738
+ }
739
+ else {
740
+ order = parameters.order;
741
+ }
742
+ const path = parameters.path;
743
+ let patterns;
744
+ if (parameters.patterns === undefined) {
745
+ patterns = [];
746
+ }
747
+ else if (typeof parameters.patterns === "object") {
748
+ patterns = parameters.patterns;
749
+ }
750
+ else {
751
+ patterns = parameters.patterns;
752
+ }
753
+ let resolve;
754
+ if (Maybe.isMaybe(parameters.resolve)) {
755
+ resolve = parameters.resolve;
756
+ }
757
+ else if (typeof parameters.resolve === "object") {
758
+ resolve = Maybe.of(parameters.resolve);
759
+ }
760
+ else if (typeof parameters.resolve === "string") {
761
+ resolve = Maybe.of(dataFactory.namedNode(parameters.resolve));
762
+ }
763
+ else if (parameters.resolve === undefined) {
764
+ resolve = Maybe.empty();
765
+ }
766
+ else {
767
+ resolve = parameters.resolve;
768
+ }
769
+ let shaclmateName;
770
+ if (Maybe.isMaybe(parameters.shaclmateName)) {
771
+ shaclmateName = parameters.shaclmateName;
772
+ }
773
+ else if (typeof parameters.shaclmateName === "string") {
774
+ shaclmateName = Maybe.of(parameters.shaclmateName);
775
+ }
776
+ else if (parameters.shaclmateName === undefined) {
777
+ shaclmateName = Maybe.empty();
778
+ }
779
+ else {
780
+ shaclmateName = parameters.shaclmateName;
781
+ }
782
+ let uniqueLang;
783
+ if (Maybe.isMaybe(parameters.uniqueLang)) {
784
+ uniqueLang = parameters.uniqueLang;
785
+ }
786
+ else if (typeof parameters.uniqueLang === "boolean") {
787
+ uniqueLang = Maybe.of(parameters.uniqueLang);
788
+ }
789
+ else if (parameters.uniqueLang === undefined) {
790
+ uniqueLang = Maybe.empty();
791
+ }
792
+ else {
793
+ uniqueLang = parameters.uniqueLang;
794
+ }
795
+ let visibility;
796
+ if (Maybe.isMaybe(parameters.visibility)) {
797
+ visibility = parameters.visibility;
798
+ }
799
+ else if (typeof parameters.visibility === "object") {
800
+ visibility = Maybe.of(parameters.visibility);
801
+ }
802
+ else if (typeof parameters.visibility === "string") {
803
+ visibility = Maybe.of(dataFactory.namedNode(parameters.visibility));
804
+ }
805
+ else if (parameters.visibility === undefined) {
806
+ visibility = Maybe.empty();
807
+ }
808
+ else {
809
+ visibility = parameters.visibility;
810
+ }
811
+ let xone;
812
+ if (Maybe.isMaybe(parameters.xone)) {
813
+ xone = parameters.xone;
814
+ }
815
+ else if ($isReadonlyObjectArray(parameters.xone)) {
816
+ xone = Maybe.of(parameters.xone);
817
+ }
818
+ else if ($isReadonlyStringArray(parameters.xone)) {
819
+ xone = Maybe.of(parameters.xone.map((item) => dataFactory.namedNode(item)));
820
+ }
821
+ else if (parameters.xone === undefined) {
822
+ xone = Maybe.empty();
823
+ }
824
+ else {
825
+ xone = parameters.xone;
826
+ }
827
+ return {
828
+ $identifier,
829
+ $type,
830
+ and,
831
+ classes,
832
+ comment,
833
+ datatype,
834
+ deactivated,
835
+ defaultValue,
836
+ description,
837
+ flags,
838
+ groups,
839
+ hasValues,
840
+ in_,
841
+ isDefinedBy,
842
+ label,
843
+ languageIn,
844
+ maxCount,
845
+ maxExclusive,
846
+ maxInclusive,
847
+ maxLength,
848
+ minCount,
849
+ minExclusive,
850
+ minInclusive,
851
+ minLength,
852
+ mutable,
853
+ name,
854
+ nodeKind,
855
+ nodes,
856
+ not,
857
+ or,
858
+ order,
859
+ path,
860
+ patterns,
861
+ resolve,
862
+ shaclmateName,
863
+ uniqueLang,
864
+ visibility,
865
+ xone,
866
+ };
867
+ }
868
+ PropertyShape.$create = $create;
869
+ let $Identifier;
870
+ (function ($Identifier) {
871
+ $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
872
+ $Identifier.toString = Resource.Identifier.toString;
873
+ })($Identifier = PropertyShape.$Identifier || (PropertyShape.$Identifier = {}));
874
+ function $filter(filter, value) {
875
+ if (filter.$identifier !== undefined &&
876
+ !$filterIdentifier(filter.$identifier, value.$identifier)) {
877
+ return false;
878
+ }
879
+ if (filter.and !== undefined &&
880
+ !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
881
+ return false;
882
+ }
883
+ if (filter.classes !== undefined &&
884
+ !$filterArray($filterIri)(filter.classes, value.classes)) {
885
+ return false;
886
+ }
887
+ if (filter.comment !== undefined &&
888
+ !$filterMaybe($filterString)(filter.comment, value.comment)) {
889
+ return false;
890
+ }
891
+ if (filter.datatype !== undefined &&
892
+ !$filterMaybe($filterIri)(filter.datatype, value.datatype)) {
893
+ return false;
894
+ }
895
+ if (filter.deactivated !== undefined &&
896
+ !$filterMaybe($filterBoolean)(filter.deactivated, value.deactivated)) {
897
+ return false;
898
+ }
899
+ if (filter.defaultValue !== undefined &&
900
+ !$filterMaybe($filterTerm)(filter.defaultValue, value.defaultValue)) {
901
+ return false;
902
+ }
903
+ if (filter.description !== undefined &&
904
+ !$filterMaybe($filterString)(filter.description, value.description)) {
905
+ return false;
906
+ }
907
+ if (filter.flags !== undefined &&
908
+ !$filterArray($filterString)(filter.flags, value.flags)) {
909
+ return false;
910
+ }
911
+ if (filter.groups !== undefined &&
912
+ !$filterArray($filterIdentifier)(filter.groups, value.groups)) {
913
+ return false;
914
+ }
915
+ if (filter.hasValues !== undefined &&
916
+ !$filterArray($filterTerm)(filter.hasValues, value.hasValues)) {
917
+ return false;
918
+ }
919
+ if (filter.in_ !== undefined &&
920
+ !$filterMaybe($filterArray($filterTerm))(filter.in_, value.in_)) {
921
+ return false;
922
+ }
923
+ if (filter.isDefinedBy !== undefined &&
924
+ !$filterMaybe($filterIdentifier)(filter.isDefinedBy, value.isDefinedBy)) {
925
+ return false;
926
+ }
927
+ if (filter.label !== undefined &&
928
+ !$filterMaybe($filterString)(filter.label, value.label)) {
929
+ return false;
930
+ }
931
+ if (filter.languageIn !== undefined &&
932
+ !$filterMaybe($filterArray($filterString))(filter.languageIn, value.languageIn)) {
933
+ return false;
934
+ }
935
+ if (filter.maxCount !== undefined &&
936
+ !$filterMaybe(($filterNumeric))(filter.maxCount, value.maxCount)) {
937
+ return false;
938
+ }
939
+ if (filter.maxExclusive !== undefined &&
940
+ !$filterMaybe($filterLiteral)(filter.maxExclusive, value.maxExclusive)) {
941
+ return false;
942
+ }
943
+ if (filter.maxInclusive !== undefined &&
944
+ !$filterMaybe($filterLiteral)(filter.maxInclusive, value.maxInclusive)) {
945
+ return false;
946
+ }
947
+ if (filter.maxLength !== undefined &&
948
+ !$filterMaybe(($filterNumeric))(filter.maxLength, value.maxLength)) {
949
+ return false;
950
+ }
951
+ if (filter.minCount !== undefined &&
952
+ !$filterMaybe(($filterNumeric))(filter.minCount, value.minCount)) {
953
+ return false;
954
+ }
955
+ if (filter.minExclusive !== undefined &&
956
+ !$filterMaybe($filterLiteral)(filter.minExclusive, value.minExclusive)) {
957
+ return false;
958
+ }
959
+ if (filter.minInclusive !== undefined &&
960
+ !$filterMaybe($filterLiteral)(filter.minInclusive, value.minInclusive)) {
961
+ return false;
962
+ }
963
+ if (filter.minLength !== undefined &&
964
+ !$filterMaybe(($filterNumeric))(filter.minLength, value.minLength)) {
965
+ return false;
966
+ }
967
+ if (filter.mutable !== undefined &&
968
+ !$filterMaybe($filterBoolean)(filter.mutable, value.mutable)) {
969
+ return false;
970
+ }
971
+ if (filter.name !== undefined &&
972
+ !$filterMaybe($filterString)(filter.name, value.name)) {
973
+ return false;
974
+ }
975
+ if (filter.nodeKind !== undefined &&
976
+ !$filterMaybe($filterIri)(filter.nodeKind, value.nodeKind)) {
977
+ return false;
978
+ }
979
+ if (filter.nodes !== undefined &&
980
+ !$filterArray($filterIdentifier)(filter.nodes, value.nodes)) {
981
+ return false;
982
+ }
983
+ if (filter.not !== undefined &&
984
+ !$filterArray($filterIdentifier)(filter.not, value.not)) {
985
+ return false;
986
+ }
987
+ if (filter.or !== undefined &&
988
+ !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
989
+ return false;
990
+ }
991
+ if (filter.order !== undefined &&
992
+ !$filterMaybe(($filterNumeric))(filter.order, value.order)) {
993
+ return false;
994
+ }
995
+ if (filter.path !== undefined &&
996
+ !$PropertyPath.$filter(filter.path, value.path)) {
997
+ return false;
998
+ }
999
+ if (filter.patterns !== undefined &&
1000
+ !$filterArray($filterString)(filter.patterns, value.patterns)) {
1001
+ return false;
1002
+ }
1003
+ if (filter.resolve !== undefined &&
1004
+ !$filterMaybe($filterIdentifier)(filter.resolve, value.resolve)) {
1005
+ return false;
1006
+ }
1007
+ if (filter.shaclmateName !== undefined &&
1008
+ !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
1009
+ return false;
1010
+ }
1011
+ if (filter.uniqueLang !== undefined &&
1012
+ !$filterMaybe($filterBoolean)(filter.uniqueLang, value.uniqueLang)) {
1013
+ return false;
1014
+ }
1015
+ if (filter.visibility !== undefined &&
1016
+ !$filterMaybe($filterIri)(filter.visibility, value.visibility)) {
1017
+ return false;
1018
+ }
1019
+ if (filter.xone !== undefined &&
1020
+ !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
1021
+ return false;
1022
+ }
1023
+ return true;
1024
+ }
1025
+ PropertyShape.$filter = $filter;
1026
+ PropertyShape.$fromRdfResource = (resource, options) => {
1027
+ let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1028
+ if (!objectSet) {
1029
+ objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
1030
+ }
1031
+ return PropertyShape.$propertiesFromRdfResource(resource, {
1032
+ context,
1033
+ graph,
1034
+ ignoreRdfType,
1035
+ objectSet,
1036
+ preferredLanguages,
1037
+ });
1038
+ };
1039
+ PropertyShape.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1040
+ .toResource()
1041
+ .chain((resource) => PropertyShape.$fromRdfResource(resource, options))));
1042
+ PropertyShape.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape");
1043
+ function isPropertyShape(object) {
1044
+ switch (object.$type) {
1045
+ case "PropertyShape":
1046
+ return true;
1047
+ default:
1048
+ return false;
1049
+ }
1050
+ }
1051
+ PropertyShape.isPropertyShape = isPropertyShape;
1052
+ PropertyShape.$propertiesFromRdfResource = ($resource, _$options) => {
1053
+ return (!_$options.ignoreRdfType
1054
+ ? $resource
1055
+ .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1056
+ .chain((actualRdfType) => actualRdfType.toIri())
1057
+ .chain((actualRdfType) => {
1058
+ // Check the expected type and its known subtypes
1059
+ switch (actualRdfType.value) {
1060
+ case "http://www.w3.org/ns/shacl#PropertyShape":
1061
+ return Right(true);
1062
+ }
1063
+ // Check arbitrary rdfs:subClassOf's of the expected type
1064
+ if ($resource.isInstanceOf(PropertyShape.$fromRdfType, {
1065
+ graph: _$options.graph,
1066
+ })) {
1067
+ return Right(true);
1068
+ }
1069
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyShape)`));
1070
+ })
1071
+ : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1072
+ dataFactory: dataFactory,
1073
+ focusResource: $resource,
1074
+ propertyPath: $RdfVocabularies.rdf.subject,
1075
+ term: $resource.identifier,
1076
+ }).toValues())
1077
+ .chain((values) => values.chainMap((value) => value.toIdentifier()))
1078
+ .chain((values) => values.head())
1079
+ .chain(($identifier) => Right("PropertyShape").chain(($type) => $shaclPropertyFromRdf({
1080
+ graph: _$options.graph,
1081
+ resource: $resource,
1082
+ propertySchema: PropertyShape.$schema.properties.and,
1083
+ typeFromRdf: (resourceValues) => resourceValues
1084
+ .chain((values) => values.chainMap((value) => value.toList({ graph: _$options.graph })))
1085
+ .chain((valueLists) => valueLists.chainMap((valueList) => Right(Resource.Values.fromArray({
1086
+ focusResource: $resource,
1087
+ propertyPath: PropertyShape.$schema.properties.and.path,
1088
+ values: valueList.toArray(),
1089
+ })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
1090
+ .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
1091
+ .map((values) => values.length > 0
1092
+ ? values.map((value) => Maybe.of(value))
1093
+ : Resource.Values.fromValue({
1094
+ focusResource: $resource,
1095
+ propertyPath: PropertyShape.$schema.properties.and.path,
1096
+ value: Maybe.empty(),
1097
+ })),
1098
+ }).chain((and) => $shaclPropertyFromRdf({
1099
+ graph: _$options.graph,
1100
+ resource: $resource,
1101
+ propertySchema: PropertyShape.$schema.properties.classes,
1102
+ typeFromRdf: (resourceValues) => resourceValues
1103
+ .chain((values) => values.chainMap((value) => value.toIri()))
1104
+ .map((values) => values.toArray())
1105
+ .map((valuesArray) => Resource.Values.fromValue({
1106
+ focusResource: $resource,
1107
+ propertyPath: PropertyShape.$schema.properties.classes.path,
1108
+ value: valuesArray,
1109
+ })),
1110
+ }).chain((classes) => $shaclPropertyFromRdf({
1111
+ graph: _$options.graph,
1112
+ resource: $resource,
1113
+ propertySchema: PropertyShape.$schema.properties.comment,
1114
+ typeFromRdf: (resourceValues) => resourceValues
1115
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1116
+ .chain((values) => values.chainMap((value) => value.toString()))
1117
+ .map((values) => values.length > 0
1118
+ ? values.map((value) => Maybe.of(value))
1119
+ : Resource.Values.fromValue({
1120
+ focusResource: $resource,
1121
+ propertyPath: PropertyShape.$schema.properties.comment.path,
1122
+ value: Maybe.empty(),
1123
+ })),
1124
+ }).chain((comment) => $shaclPropertyFromRdf({
1125
+ graph: _$options.graph,
1126
+ resource: $resource,
1127
+ propertySchema: PropertyShape.$schema.properties.datatype,
1128
+ typeFromRdf: (resourceValues) => resourceValues
1129
+ .chain((values) => values.chainMap((value) => value.toIri()))
1130
+ .map((values) => values.length > 0
1131
+ ? values.map((value) => Maybe.of(value))
1132
+ : Resource.Values.fromValue({
1133
+ focusResource: $resource,
1134
+ propertyPath: PropertyShape.$schema.properties.datatype
1135
+ .path,
1136
+ value: Maybe.empty(),
1137
+ })),
1138
+ }).chain((datatype) => $shaclPropertyFromRdf({
1139
+ graph: _$options.graph,
1140
+ resource: $resource,
1141
+ propertySchema: PropertyShape.$schema.properties.deactivated,
1142
+ typeFromRdf: (resourceValues) => resourceValues
1143
+ .chain((values) => values.chainMap((value) => value.toBoolean()))
1144
+ .map((values) => values.length > 0
1145
+ ? values.map((value) => Maybe.of(value))
1146
+ : Resource.Values.fromValue({
1147
+ focusResource: $resource,
1148
+ propertyPath: PropertyShape.$schema.properties.deactivated
1149
+ .path,
1150
+ value: Maybe.empty(),
1151
+ })),
1152
+ }).chain((deactivated) => $shaclPropertyFromRdf({
1153
+ graph: _$options.graph,
1154
+ resource: $resource,
507
1155
  propertySchema: PropertyShape.$schema.properties.defaultValue,
508
1156
  typeFromRdf: (resourceValues) => resourceValues
509
1157
  .chain((values) => values.chainMap((value) => value.toTerm().chain((term) => {
@@ -956,16 +1604,18 @@ export var PropertyShape;
956
1604
  values: valueList.toArray(),
957
1605
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
958
1606
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
959
- .map((values) => values.toArray())
960
- .map((valuesArray) => Resource.Values.fromValue({
961
- focusResource: $resource,
962
- propertyPath: PropertyShape
963
- .$schema
964
- .properties
965
- .or
966
- .path,
967
- value: valuesArray,
968
- })),
1607
+ .map((values) => values.length >
1608
+ 0
1609
+ ? values.map((value) => Maybe.of(value))
1610
+ : Resource.Values.fromValue({
1611
+ focusResource: $resource,
1612
+ propertyPath: PropertyShape
1613
+ .$schema
1614
+ .properties
1615
+ .or
1616
+ .path,
1617
+ value: Maybe.empty(),
1618
+ })),
969
1619
  }).chain((or) => $shaclPropertyFromRdf({
970
1620
  graph: _$options.graph,
971
1621
  resource: $resource,
@@ -1129,16 +1779,18 @@ export var PropertyShape;
1129
1779
  values: valueList.toArray(),
1130
1780
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
1131
1781
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
1132
- .map((values) => values.toArray())
1133
- .map((valuesArray) => Resource.Values.fromValue({
1134
- focusResource: $resource,
1135
- propertyPath: PropertyShape
1136
- .$schema
1137
- .properties
1138
- .xone
1139
- .path,
1140
- value: valuesArray,
1141
- })),
1782
+ .map((values) => values.length >
1783
+ 0
1784
+ ? values.map((value) => Maybe.of(value))
1785
+ : Resource.Values.fromValue({
1786
+ focusResource: $resource,
1787
+ propertyPath: PropertyShape
1788
+ .$schema
1789
+ .properties
1790
+ .xone
1791
+ .path,
1792
+ value: Maybe.empty(),
1793
+ })),
1142
1794
  }).map((xone) => ({
1143
1795
  $identifier,
1144
1796
  $type,
@@ -1196,7 +1848,7 @@ export var PropertyShape;
1196
1848
  and: {
1197
1849
  kind: "Shacl",
1198
1850
  type: () => ({
1199
- kind: "Set",
1851
+ kind: "Maybe",
1200
1852
  item: () => ({
1201
1853
  kind: "List",
1202
1854
  item: () => ({ kind: "Identifier" }),
@@ -1431,7 +2083,7 @@ export var PropertyShape;
1431
2083
  or: {
1432
2084
  kind: "Shacl",
1433
2085
  type: () => ({
1434
- kind: "Set",
2086
+ kind: "Maybe",
1435
2087
  item: () => ({
1436
2088
  kind: "List",
1437
2089
  item: () => ({ kind: "Identifier" }),
@@ -1502,7 +2154,7 @@ export var PropertyShape;
1502
2154
  xone: {
1503
2155
  kind: "Shacl",
1504
2156
  type: () => ({
1505
- kind: "Set",
2157
+ kind: "Maybe",
1506
2158
  item: () => ({
1507
2159
  kind: "List",
1508
2160
  item: () => ({ kind: "Identifier" }),
@@ -1519,9 +2171,9 @@ export var PropertyShape;
1519
2171
  if (!options?.ignoreRdfType) {
1520
2172
  resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyShape"), options?.graph);
1521
2173
  }
1522
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _propertyShape.and.flatMap((item) => [
1523
- item.length > 0
1524
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2174
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _propertyShape.and.toList().flatMap((value) => [
2175
+ value.length > 0
2176
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1525
2177
  if (itemIndex === 0) {
1526
2178
  currentSubListResource = listResource;
1527
2179
  }
@@ -1641,9 +2293,9 @@ export var PropertyShape;
1641
2293
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"), _propertyShape.nodeKind.toList(), options?.graph);
1642
2294
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#node"), _propertyShape.nodes.flatMap((item) => [item]), options?.graph);
1643
2295
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#not"), _propertyShape.not.flatMap((item) => [item]), options?.graph);
1644
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _propertyShape.or.flatMap((item) => [
1645
- item.length > 0
1646
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2296
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _propertyShape.or.toList().flatMap((value) => [
2297
+ value.length > 0
2298
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1647
2299
  if (itemIndex === 0) {
1648
2300
  currentSubListResource = listResource;
1649
2301
  }
@@ -1685,9 +2337,9 @@ export var PropertyShape;
1685
2337
  $literalFactory.boolean(value, $RdfVocabularies.xsd.boolean),
1686
2338
  ]), options?.graph);
1687
2339
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#visibility"), _propertyShape.visibility.toList(), options?.graph);
1688
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _propertyShape.xone.flatMap((item) => [
1689
- item.length > 0
1690
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
2340
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _propertyShape.xone.toList().flatMap((value) => [
2341
+ value.length > 0
2342
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
1691
2343
  if (itemIndex === 0) {
1692
2344
  currentSubListResource = listResource;
1693
2345
  }
@@ -1709,15 +2361,319 @@ export var PropertyShape;
1709
2361
  ]), options?.graph);
1710
2362
  return resource;
1711
2363
  }
1712
- PropertyShape.$toRdfResource = $toRdfResource;
1713
- })(PropertyShape || (PropertyShape = {}));
1714
- export var PropertyGroup;
1715
- (function (PropertyGroup) {
2364
+ PropertyShape.$toRdfResource = $toRdfResource;
2365
+ })(PropertyShape || (PropertyShape = {}));
2366
+ export var PropertyGroup;
2367
+ (function (PropertyGroup) {
2368
+ function $create(parameters) {
2369
+ let $identifier;
2370
+ if (typeof parameters?.$identifier === "object") {
2371
+ $identifier = parameters?.$identifier;
2372
+ }
2373
+ else if (typeof parameters?.$identifier === "string") {
2374
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
2375
+ }
2376
+ else if (parameters?.$identifier === undefined) {
2377
+ $identifier = dataFactory.blankNode();
2378
+ }
2379
+ else {
2380
+ $identifier = parameters?.$identifier;
2381
+ }
2382
+ const $type = "PropertyGroup";
2383
+ let comment;
2384
+ if (Maybe.isMaybe(parameters?.comment)) {
2385
+ comment = parameters?.comment;
2386
+ }
2387
+ else if (typeof parameters?.comment === "string") {
2388
+ comment = Maybe.of(parameters?.comment);
2389
+ }
2390
+ else if (parameters?.comment === undefined) {
2391
+ comment = Maybe.empty();
2392
+ }
2393
+ else {
2394
+ comment = parameters?.comment;
2395
+ }
2396
+ let label;
2397
+ if (Maybe.isMaybe(parameters?.label)) {
2398
+ label = parameters?.label;
2399
+ }
2400
+ else if (typeof parameters?.label === "string") {
2401
+ label = Maybe.of(parameters?.label);
2402
+ }
2403
+ else if (parameters?.label === undefined) {
2404
+ label = Maybe.empty();
2405
+ }
2406
+ else {
2407
+ label = parameters?.label;
2408
+ }
2409
+ return { $identifier, $type, comment, label };
2410
+ }
2411
+ PropertyGroup.$create = $create;
2412
+ let $Identifier;
2413
+ (function ($Identifier) {
2414
+ $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
2415
+ $Identifier.toString = Resource.Identifier.toString;
2416
+ })($Identifier = PropertyGroup.$Identifier || (PropertyGroup.$Identifier = {}));
2417
+ function $filter(filter, value) {
2418
+ if (filter.$identifier !== undefined &&
2419
+ !$filterIdentifier(filter.$identifier, value.$identifier)) {
2420
+ return false;
2421
+ }
2422
+ if (filter.comment !== undefined &&
2423
+ !$filterMaybe($filterString)(filter.comment, value.comment)) {
2424
+ return false;
2425
+ }
2426
+ if (filter.label !== undefined &&
2427
+ !$filterMaybe($filterString)(filter.label, value.label)) {
2428
+ return false;
2429
+ }
2430
+ return true;
2431
+ }
2432
+ PropertyGroup.$filter = $filter;
2433
+ PropertyGroup.$fromRdfResource = (resource, options) => {
2434
+ let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
2435
+ if (!objectSet) {
2436
+ objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
2437
+ }
2438
+ return PropertyGroup.$propertiesFromRdfResource(resource, {
2439
+ context,
2440
+ graph,
2441
+ ignoreRdfType,
2442
+ objectSet,
2443
+ preferredLanguages,
2444
+ });
2445
+ };
2446
+ PropertyGroup.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
2447
+ .toResource()
2448
+ .chain((resource) => PropertyGroup.$fromRdfResource(resource, options))));
2449
+ PropertyGroup.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup");
2450
+ function isPropertyGroup(object) {
2451
+ switch (object.$type) {
2452
+ case "PropertyGroup":
2453
+ return true;
2454
+ default:
2455
+ return false;
2456
+ }
2457
+ }
2458
+ PropertyGroup.isPropertyGroup = isPropertyGroup;
2459
+ PropertyGroup.$propertiesFromRdfResource = ($resource, _$options) => {
2460
+ return (!_$options.ignoreRdfType
2461
+ ? $resource
2462
+ .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
2463
+ .chain((actualRdfType) => actualRdfType.toIri())
2464
+ .chain((actualRdfType) => {
2465
+ // Check the expected type and its known subtypes
2466
+ switch (actualRdfType.value) {
2467
+ case "http://www.w3.org/ns/shacl#PropertyGroup":
2468
+ return Right(true);
2469
+ }
2470
+ // Check arbitrary rdfs:subClassOf's of the expected type
2471
+ if ($resource.isInstanceOf(PropertyGroup.$fromRdfType, {
2472
+ graph: _$options.graph,
2473
+ })) {
2474
+ return Right(true);
2475
+ }
2476
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
2477
+ })
2478
+ : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
2479
+ dataFactory: dataFactory,
2480
+ focusResource: $resource,
2481
+ propertyPath: $RdfVocabularies.rdf.subject,
2482
+ term: $resource.identifier,
2483
+ }).toValues())
2484
+ .chain((values) => values.chainMap((value) => value.toIdentifier()))
2485
+ .chain((values) => values.head())
2486
+ .chain(($identifier) => Right("PropertyGroup").chain(($type) => $shaclPropertyFromRdf({
2487
+ graph: _$options.graph,
2488
+ resource: $resource,
2489
+ propertySchema: PropertyGroup.$schema.properties.comment,
2490
+ typeFromRdf: (resourceValues) => resourceValues
2491
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2492
+ .chain((values) => values.chainMap((value) => value.toString()))
2493
+ .map((values) => values.length > 0
2494
+ ? values.map((value) => Maybe.of(value))
2495
+ : Resource.Values.fromValue({
2496
+ focusResource: $resource,
2497
+ propertyPath: PropertyShape.$schema.properties.comment.path,
2498
+ value: Maybe.empty(),
2499
+ })),
2500
+ }).chain((comment) => $shaclPropertyFromRdf({
2501
+ graph: _$options.graph,
2502
+ resource: $resource,
2503
+ propertySchema: PropertyGroup.$schema.properties.label,
2504
+ typeFromRdf: (resourceValues) => resourceValues
2505
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2506
+ .chain((values) => values.chainMap((value) => value.toString()))
2507
+ .map((values) => values.length > 0
2508
+ ? values.map((value) => Maybe.of(value))
2509
+ : Resource.Values.fromValue({
2510
+ focusResource: $resource,
2511
+ propertyPath: PropertyShape.$schema.properties.label.path,
2512
+ value: Maybe.empty(),
2513
+ })),
2514
+ }).map((label) => ({ $identifier, $type, comment, label }))))));
2515
+ };
2516
+ PropertyGroup.$schema = {
2517
+ properties: {
2518
+ $identifier: {
2519
+ kind: "Identifier",
2520
+ type: () => ({ kind: "Identifier" }),
2521
+ },
2522
+ $type: {
2523
+ kind: "Discriminant",
2524
+ type: () => ({
2525
+ kind: "TypeDiscriminant",
2526
+ ownValues: ["PropertyGroup"],
2527
+ }),
2528
+ },
2529
+ comment: {
2530
+ kind: "Shacl",
2531
+ type: () => ({
2532
+ kind: "Maybe",
2533
+ item: () => ({ kind: "String" }),
2534
+ }),
2535
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2536
+ },
2537
+ label: {
2538
+ kind: "Shacl",
2539
+ type: () => ({
2540
+ kind: "Maybe",
2541
+ item: () => ({ kind: "String" }),
2542
+ }),
2543
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2544
+ },
2545
+ },
2546
+ };
2547
+ function $toRdfResource(_propertyGroup, options) {
2548
+ const resourceSet = options?.resourceSet ??
2549
+ new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
2550
+ const resource = resourceSet.resource(_propertyGroup.$identifier);
2551
+ if (!options?.ignoreRdfType) {
2552
+ resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup"), options?.graph);
2553
+ }
2554
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _propertyGroup.comment
2555
+ .toList()
2556
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2557
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _propertyGroup.label
2558
+ .toList()
2559
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2560
+ return resource;
2561
+ }
2562
+ PropertyGroup.$toRdfResource = $toRdfResource;
2563
+ })(PropertyGroup || (PropertyGroup = {}));
2564
+ export var Ontology;
2565
+ (function (Ontology) {
2566
+ function $create(parameters) {
2567
+ let $identifier;
2568
+ if (typeof parameters?.$identifier === "object") {
2569
+ $identifier = parameters?.$identifier;
2570
+ }
2571
+ else if (typeof parameters?.$identifier === "string") {
2572
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
2573
+ }
2574
+ else if (parameters?.$identifier === undefined) {
2575
+ $identifier = dataFactory.blankNode();
2576
+ }
2577
+ else {
2578
+ $identifier = parameters?.$identifier;
2579
+ }
2580
+ const $type = "Ontology";
2581
+ let comment;
2582
+ if (Maybe.isMaybe(parameters?.comment)) {
2583
+ comment = parameters?.comment;
2584
+ }
2585
+ else if (typeof parameters?.comment === "string") {
2586
+ comment = Maybe.of(parameters?.comment);
2587
+ }
2588
+ else if (parameters?.comment === undefined) {
2589
+ comment = Maybe.empty();
2590
+ }
2591
+ else {
2592
+ comment = parameters?.comment;
2593
+ }
2594
+ let label;
2595
+ if (Maybe.isMaybe(parameters?.label)) {
2596
+ label = parameters?.label;
2597
+ }
2598
+ else if (typeof parameters?.label === "string") {
2599
+ label = Maybe.of(parameters?.label);
2600
+ }
2601
+ else if (parameters?.label === undefined) {
2602
+ label = Maybe.empty();
2603
+ }
2604
+ else {
2605
+ label = parameters?.label;
2606
+ }
2607
+ let tsFeatureExcludes;
2608
+ if (parameters?.tsFeatureExcludes === undefined) {
2609
+ tsFeatureExcludes = [];
2610
+ }
2611
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureExcludes)) {
2612
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
2613
+ }
2614
+ else if ($isReadonlyStringArray(parameters?.tsFeatureExcludes)) {
2615
+ tsFeatureExcludes = parameters?.tsFeatureExcludes.map((item) => dataFactory.namedNode(item));
2616
+ }
2617
+ else {
2618
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
2619
+ }
2620
+ let tsFeatureIncludes;
2621
+ if (parameters?.tsFeatureIncludes === undefined) {
2622
+ tsFeatureIncludes = [];
2623
+ }
2624
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureIncludes)) {
2625
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
2626
+ }
2627
+ else if ($isReadonlyStringArray(parameters?.tsFeatureIncludes)) {
2628
+ tsFeatureIncludes = parameters?.tsFeatureIncludes.map((item) => dataFactory.namedNode(item));
2629
+ }
2630
+ else {
2631
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
2632
+ }
2633
+ let tsImports;
2634
+ if (parameters?.tsImports === undefined) {
2635
+ tsImports = [];
2636
+ }
2637
+ else if (typeof parameters?.tsImports === "object") {
2638
+ tsImports = parameters?.tsImports;
2639
+ }
2640
+ else {
2641
+ tsImports = parameters?.tsImports;
2642
+ }
2643
+ let tsObjectDeclarationType;
2644
+ if (Maybe.isMaybe(parameters?.tsObjectDeclarationType)) {
2645
+ tsObjectDeclarationType = parameters?.tsObjectDeclarationType;
2646
+ }
2647
+ else if (typeof parameters?.tsObjectDeclarationType === "object") {
2648
+ tsObjectDeclarationType = Maybe.of(parameters?.tsObjectDeclarationType);
2649
+ }
2650
+ else if (typeof parameters?.tsObjectDeclarationType === "string") {
2651
+ tsObjectDeclarationType = Maybe.of(dataFactory.namedNode(parameters?.tsObjectDeclarationType));
2652
+ }
2653
+ else if (parameters?.tsObjectDeclarationType === undefined) {
2654
+ tsObjectDeclarationType = Maybe.empty();
2655
+ }
2656
+ else {
2657
+ tsObjectDeclarationType =
2658
+ parameters?.tsObjectDeclarationType;
2659
+ }
2660
+ return {
2661
+ $identifier,
2662
+ $type,
2663
+ comment,
2664
+ label,
2665
+ tsFeatureExcludes,
2666
+ tsFeatureIncludes,
2667
+ tsImports,
2668
+ tsObjectDeclarationType,
2669
+ };
2670
+ }
2671
+ Ontology.$create = $create;
1716
2672
  let $Identifier;
1717
2673
  (function ($Identifier) {
1718
2674
  $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
1719
2675
  $Identifier.toString = Resource.Identifier.toString;
1720
- })($Identifier = PropertyGroup.$Identifier || (PropertyGroup.$Identifier = {}));
2676
+ })($Identifier = Ontology.$Identifier || (Ontology.$Identifier = {}));
1721
2677
  function $filter(filter, value) {
1722
2678
  if (filter.$identifier !== undefined &&
1723
2679
  !$filterIdentifier(filter.$identifier, value.$identifier)) {
@@ -1731,15 +2687,31 @@ export var PropertyGroup;
1731
2687
  !$filterMaybe($filterString)(filter.label, value.label)) {
1732
2688
  return false;
1733
2689
  }
2690
+ if (filter.tsFeatureExcludes !== undefined &&
2691
+ !$filterArray($filterIri)(filter.tsFeatureExcludes, value.tsFeatureExcludes)) {
2692
+ return false;
2693
+ }
2694
+ if (filter.tsFeatureIncludes !== undefined &&
2695
+ !$filterArray($filterIri)(filter.tsFeatureIncludes, value.tsFeatureIncludes)) {
2696
+ return false;
2697
+ }
2698
+ if (filter.tsImports !== undefined &&
2699
+ !$filterArray($filterString)(filter.tsImports, value.tsImports)) {
2700
+ return false;
2701
+ }
2702
+ if (filter.tsObjectDeclarationType !== undefined &&
2703
+ !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
2704
+ return false;
2705
+ }
1734
2706
  return true;
1735
2707
  }
1736
- PropertyGroup.$filter = $filter;
1737
- PropertyGroup.$fromRdfResource = (resource, options) => {
2708
+ Ontology.$filter = $filter;
2709
+ Ontology.$fromRdfResource = (resource, options) => {
1738
2710
  let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1739
2711
  if (!objectSet) {
1740
2712
  objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
1741
2713
  }
1742
- return PropertyGroup.$propertiesFromRdfResource(resource, {
2714
+ return Ontology.$propertiesFromRdfResource(resource, {
1743
2715
  context,
1744
2716
  graph,
1745
2717
  ignoreRdfType,
@@ -1747,20 +2719,20 @@ export var PropertyGroup;
1747
2719
  preferredLanguages,
1748
2720
  });
1749
2721
  };
1750
- PropertyGroup.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
2722
+ Ontology.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1751
2723
  .toResource()
1752
- .chain((resource) => PropertyGroup.$fromRdfResource(resource, options))));
1753
- PropertyGroup.$fromRdfType = dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup");
1754
- function isPropertyGroup(object) {
2724
+ .chain((resource) => Ontology.$fromRdfResource(resource, options))));
2725
+ Ontology.$fromRdfType = dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology");
2726
+ function isOntology(object) {
1755
2727
  switch (object.$type) {
1756
- case "PropertyGroup":
2728
+ case "Ontology":
1757
2729
  return true;
1758
2730
  default:
1759
2731
  return false;
1760
2732
  }
1761
2733
  }
1762
- PropertyGroup.isPropertyGroup = isPropertyGroup;
1763
- PropertyGroup.$propertiesFromRdfResource = ($resource, _$options) => {
2734
+ Ontology.isOntology = isOntology;
2735
+ Ontology.$propertiesFromRdfResource = ($resource, _$options) => {
1764
2736
  return (!_$options.ignoreRdfType
1765
2737
  ? $resource
1766
2738
  .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
@@ -1768,16 +2740,16 @@ export var PropertyGroup;
1768
2740
  .chain((actualRdfType) => {
1769
2741
  // Check the expected type and its known subtypes
1770
2742
  switch (actualRdfType.value) {
1771
- case "http://www.w3.org/ns/shacl#PropertyGroup":
2743
+ case "http://www.w3.org/2002/07/owl#Ontology":
1772
2744
  return Right(true);
1773
2745
  }
1774
2746
  // Check arbitrary rdfs:subClassOf's of the expected type
1775
- if ($resource.isInstanceOf(PropertyGroup.$fromRdfType, {
2747
+ if ($resource.isInstanceOf(Ontology.$fromRdfType, {
1776
2748
  graph: _$options.graph,
1777
2749
  })) {
1778
2750
  return Right(true);
1779
2751
  }
1780
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/ns/shacl#PropertyGroup)`));
2752
+ return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1781
2753
  })
1782
2754
  : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1783
2755
  dataFactory: dataFactory,
@@ -1787,10 +2759,10 @@ export var PropertyGroup;
1787
2759
  }).toValues())
1788
2760
  .chain((values) => values.chainMap((value) => value.toIdentifier()))
1789
2761
  .chain((values) => values.head())
1790
- .chain(($identifier) => Right("PropertyGroup").chain(($type) => $shaclPropertyFromRdf({
2762
+ .chain(($identifier) => Right("Ontology").chain(($type) => $shaclPropertyFromRdf({
1791
2763
  graph: _$options.graph,
1792
2764
  resource: $resource,
1793
- propertySchema: PropertyGroup.$schema.properties.comment,
2765
+ propertySchema: Ontology.$schema.properties.comment,
1794
2766
  typeFromRdf: (resourceValues) => resourceValues
1795
2767
  .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1796
2768
  .chain((values) => values.chainMap((value) => value.toString()))
@@ -1804,7 +2776,7 @@ export var PropertyGroup;
1804
2776
  }).chain((comment) => $shaclPropertyFromRdf({
1805
2777
  graph: _$options.graph,
1806
2778
  resource: $resource,
1807
- propertySchema: PropertyGroup.$schema.properties.label,
2779
+ propertySchema: Ontology.$schema.properties.label,
1808
2780
  typeFromRdf: (resourceValues) => resourceValues
1809
2781
  .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1810
2782
  .chain((values) => values.chainMap((value) => value.toString()))
@@ -1815,9 +2787,95 @@ export var PropertyGroup;
1815
2787
  propertyPath: PropertyShape.$schema.properties.label.path,
1816
2788
  value: Maybe.empty(),
1817
2789
  })),
1818
- }).map((label) => ({ $identifier, $type, comment, label }))))));
2790
+ }).chain((label) => $shaclPropertyFromRdf({
2791
+ graph: _$options.graph,
2792
+ resource: $resource,
2793
+ propertySchema: Ontology.$schema.properties.tsFeatureExcludes,
2794
+ typeFromRdf: (resourceValues) => resourceValues
2795
+ .chain((values) => values.chainMap((value) => value.toIri([
2796
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2797
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2798
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2799
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2800
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2801
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2802
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2803
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2804
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2805
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2806
+ ])))
2807
+ .map((values) => values.toArray())
2808
+ .map((valuesArray) => Resource.Values.fromValue({
2809
+ focusResource: $resource,
2810
+ propertyPath: Ontology.$schema.properties.tsFeatureExcludes.path,
2811
+ value: valuesArray,
2812
+ })),
2813
+ }).chain((tsFeatureExcludes) => $shaclPropertyFromRdf({
2814
+ graph: _$options.graph,
2815
+ resource: $resource,
2816
+ propertySchema: Ontology.$schema.properties.tsFeatureIncludes,
2817
+ typeFromRdf: (resourceValues) => resourceValues
2818
+ .chain((values) => values.chainMap((value) => value.toIri([
2819
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2820
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2821
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2822
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2823
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2824
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2825
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2826
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2827
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2828
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2829
+ ])))
2830
+ .map((values) => values.toArray())
2831
+ .map((valuesArray) => Resource.Values.fromValue({
2832
+ focusResource: $resource,
2833
+ propertyPath: Ontology.$schema.properties.tsFeatureIncludes
2834
+ .path,
2835
+ value: valuesArray,
2836
+ })),
2837
+ }).chain((tsFeatureIncludes) => $shaclPropertyFromRdf({
2838
+ graph: _$options.graph,
2839
+ resource: $resource,
2840
+ propertySchema: Ontology.$schema.properties.tsImports,
2841
+ typeFromRdf: (resourceValues) => resourceValues
2842
+ .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2843
+ .chain((values) => values.chainMap((value) => value.toString()))
2844
+ .map((values) => values.toArray())
2845
+ .map((valuesArray) => Resource.Values.fromValue({
2846
+ focusResource: $resource,
2847
+ propertyPath: Ontology.$schema.properties.tsImports.path,
2848
+ value: valuesArray,
2849
+ })),
2850
+ }).chain((tsImports) => $shaclPropertyFromRdf({
2851
+ graph: _$options.graph,
2852
+ resource: $resource,
2853
+ propertySchema: Ontology.$schema.properties.tsObjectDeclarationType,
2854
+ typeFromRdf: (resourceValues) => resourceValues
2855
+ .chain((values) => values.chainMap((value) => value.toIri([
2856
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2857
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2858
+ ])))
2859
+ .map((values) => values.length > 0
2860
+ ? values.map((value) => Maybe.of(value))
2861
+ : Resource.Values.fromValue({
2862
+ focusResource: $resource,
2863
+ propertyPath: Ontology.$schema.properties
2864
+ .tsObjectDeclarationType.path,
2865
+ value: Maybe.empty(),
2866
+ })),
2867
+ }).map((tsObjectDeclarationType) => ({
2868
+ $identifier,
2869
+ $type,
2870
+ comment,
2871
+ label,
2872
+ tsFeatureExcludes,
2873
+ tsFeatureIncludes,
2874
+ tsImports,
2875
+ tsObjectDeclarationType,
2876
+ }))))))))));
1819
2877
  };
1820
- PropertyGroup.$schema = {
2878
+ Ontology.$schema = {
1821
2879
  properties: {
1822
2880
  $identifier: {
1823
2881
  kind: "Identifier",
@@ -1827,372 +2885,850 @@ export var PropertyGroup;
1827
2885
  kind: "Discriminant",
1828
2886
  type: () => ({
1829
2887
  kind: "TypeDiscriminant",
1830
- ownValues: ["PropertyGroup"],
2888
+ ownValues: ["Ontology"],
2889
+ }),
2890
+ },
2891
+ comment: {
2892
+ kind: "Shacl",
2893
+ type: () => ({
2894
+ kind: "Maybe",
2895
+ item: () => ({ kind: "String" }),
2896
+ }),
2897
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2898
+ },
2899
+ label: {
2900
+ kind: "Shacl",
2901
+ type: () => ({
2902
+ kind: "Maybe",
2903
+ item: () => ({ kind: "String" }),
2904
+ }),
2905
+ path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2906
+ },
2907
+ tsFeatureExcludes: {
2908
+ kind: "Shacl",
2909
+ type: () => ({
2910
+ kind: "Set",
2911
+ item: () => ({
2912
+ kind: "Iri",
2913
+ in: [
2914
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2915
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2916
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2917
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2918
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2919
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2920
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2921
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2922
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2923
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2924
+ ],
2925
+ }),
2926
+ }),
2927
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"),
2928
+ },
2929
+ tsFeatureIncludes: {
2930
+ kind: "Shacl",
2931
+ type: () => ({
2932
+ kind: "Set",
2933
+ item: () => ({
2934
+ kind: "Iri",
2935
+ in: [
2936
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2937
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2938
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2939
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2940
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2941
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2942
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2943
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2944
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2945
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2946
+ ],
2947
+ }),
1831
2948
  }),
2949
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"),
1832
2950
  },
1833
- comment: {
2951
+ tsImports: {
1834
2952
  kind: "Shacl",
1835
2953
  type: () => ({
1836
- kind: "Maybe",
2954
+ kind: "Set",
1837
2955
  item: () => ({ kind: "String" }),
1838
2956
  }),
1839
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2957
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"),
1840
2958
  },
1841
- label: {
2959
+ tsObjectDeclarationType: {
1842
2960
  kind: "Shacl",
1843
2961
  type: () => ({
1844
2962
  kind: "Maybe",
1845
- item: () => ({ kind: "String" }),
2963
+ item: () => ({
2964
+ kind: "Iri",
2965
+ in: [
2966
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2967
+ dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2968
+ ],
2969
+ }),
1846
2970
  }),
1847
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2971
+ path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
1848
2972
  },
1849
2973
  },
1850
2974
  };
1851
- function $toRdfResource(_propertyGroup, options) {
2975
+ function $toRdfResource(_ontology, options) {
1852
2976
  const resourceSet = options?.resourceSet ??
1853
2977
  new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
1854
- const resource = resourceSet.resource(_propertyGroup.$identifier);
2978
+ const resource = resourceSet.resource(_ontology.$identifier);
1855
2979
  if (!options?.ignoreRdfType) {
1856
- resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/ns/shacl#PropertyGroup"), options?.graph);
2980
+ resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology"), options?.graph);
2981
+ }
2982
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _ontology.comment
2983
+ .toList()
2984
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2985
+ resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _ontology.label
2986
+ .toList()
2987
+ .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2988
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _ontology.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
2989
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _ontology.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
2990
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _ontology.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
2991
+ resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _ontology.tsObjectDeclarationType.toList(), options?.graph);
2992
+ return resource;
2993
+ }
2994
+ Ontology.$toRdfResource = $toRdfResource;
2995
+ })(Ontology || (Ontology = {}));
2996
+ export var NodeShape;
2997
+ (function (NodeShape) {
2998
+ function $create(parameters) {
2999
+ let $identifier;
3000
+ if (typeof parameters?.$identifier === "object") {
3001
+ $identifier = parameters?.$identifier;
3002
+ }
3003
+ else if (typeof parameters?.$identifier === "string") {
3004
+ $identifier = dataFactory.namedNode(parameters?.$identifier);
3005
+ }
3006
+ else if (parameters?.$identifier === undefined) {
3007
+ $identifier = dataFactory.blankNode();
3008
+ }
3009
+ else {
3010
+ $identifier = parameters?.$identifier;
3011
+ }
3012
+ const $type = "NodeShape";
3013
+ let abstract;
3014
+ if (Maybe.isMaybe(parameters?.abstract)) {
3015
+ abstract = parameters?.abstract;
3016
+ }
3017
+ else if (typeof parameters?.abstract === "boolean") {
3018
+ abstract = Maybe.of(parameters?.abstract);
3019
+ }
3020
+ else if (parameters?.abstract === undefined) {
3021
+ abstract = Maybe.empty();
3022
+ }
3023
+ else {
3024
+ abstract = parameters?.abstract;
3025
+ }
3026
+ let and;
3027
+ if (Maybe.isMaybe(parameters?.and)) {
3028
+ and = parameters?.and;
3029
+ }
3030
+ else if ($isReadonlyObjectArray(parameters?.and)) {
3031
+ and = Maybe.of(parameters?.and);
3032
+ }
3033
+ else if ($isReadonlyStringArray(parameters?.and)) {
3034
+ and = Maybe.of(parameters?.and.map((item) => dataFactory.namedNode(item)));
3035
+ }
3036
+ else if (parameters?.and === undefined) {
3037
+ and = Maybe.empty();
3038
+ }
3039
+ else {
3040
+ and = parameters?.and;
3041
+ }
3042
+ let classes;
3043
+ if (parameters?.classes === undefined) {
3044
+ classes = [];
3045
+ }
3046
+ else if ($isReadonlyObjectArray(parameters?.classes)) {
3047
+ classes = parameters?.classes;
3048
+ }
3049
+ else if ($isReadonlyStringArray(parameters?.classes)) {
3050
+ classes = parameters?.classes.map((item) => dataFactory.namedNode(item));
3051
+ }
3052
+ else {
3053
+ classes = parameters?.classes;
3054
+ }
3055
+ let closed;
3056
+ if (Maybe.isMaybe(parameters?.closed)) {
3057
+ closed = parameters?.closed;
3058
+ }
3059
+ else if (typeof parameters?.closed === "boolean") {
3060
+ closed = Maybe.of(parameters?.closed);
3061
+ }
3062
+ else if (parameters?.closed === undefined) {
3063
+ closed = Maybe.empty();
3064
+ }
3065
+ else {
3066
+ closed = parameters?.closed;
3067
+ }
3068
+ let comment;
3069
+ if (Maybe.isMaybe(parameters?.comment)) {
3070
+ comment = parameters?.comment;
3071
+ }
3072
+ else if (typeof parameters?.comment === "string") {
3073
+ comment = Maybe.of(parameters?.comment);
3074
+ }
3075
+ else if (parameters?.comment === undefined) {
3076
+ comment = Maybe.empty();
3077
+ }
3078
+ else {
3079
+ comment = parameters?.comment;
3080
+ }
3081
+ let datatype;
3082
+ if (Maybe.isMaybe(parameters?.datatype)) {
3083
+ datatype = parameters?.datatype;
3084
+ }
3085
+ else if (typeof parameters?.datatype === "object") {
3086
+ datatype = Maybe.of(parameters?.datatype);
3087
+ }
3088
+ else if (typeof parameters?.datatype === "string") {
3089
+ datatype = Maybe.of(dataFactory.namedNode(parameters?.datatype));
3090
+ }
3091
+ else if (parameters?.datatype === undefined) {
3092
+ datatype = Maybe.empty();
3093
+ }
3094
+ else {
3095
+ datatype = parameters?.datatype;
3096
+ }
3097
+ let deactivated;
3098
+ if (Maybe.isMaybe(parameters?.deactivated)) {
3099
+ deactivated = parameters?.deactivated;
3100
+ }
3101
+ else if (typeof parameters?.deactivated === "boolean") {
3102
+ deactivated = Maybe.of(parameters?.deactivated);
3103
+ }
3104
+ else if (parameters?.deactivated === undefined) {
3105
+ deactivated = Maybe.empty();
3106
+ }
3107
+ else {
3108
+ deactivated = parameters?.deactivated;
3109
+ }
3110
+ let discriminantValue;
3111
+ if (Maybe.isMaybe(parameters?.discriminantValue)) {
3112
+ discriminantValue = parameters?.discriminantValue;
3113
+ }
3114
+ else if (typeof parameters?.discriminantValue === "string") {
3115
+ discriminantValue = Maybe.of(parameters?.discriminantValue);
3116
+ }
3117
+ else if (parameters?.discriminantValue === undefined) {
3118
+ discriminantValue = Maybe.empty();
3119
+ }
3120
+ else {
3121
+ discriminantValue = parameters?.discriminantValue;
3122
+ }
3123
+ let extern;
3124
+ if (Maybe.isMaybe(parameters?.extern)) {
3125
+ extern = parameters?.extern;
3126
+ }
3127
+ else if (typeof parameters?.extern === "boolean") {
3128
+ extern = Maybe.of(parameters?.extern);
3129
+ }
3130
+ else if (parameters?.extern === undefined) {
3131
+ extern = Maybe.empty();
3132
+ }
3133
+ else {
3134
+ extern = parameters?.extern;
3135
+ }
3136
+ let flags;
3137
+ if (parameters?.flags === undefined) {
3138
+ flags = [];
3139
+ }
3140
+ else if (typeof parameters?.flags === "object") {
3141
+ flags = parameters?.flags;
3142
+ }
3143
+ else {
3144
+ flags = parameters?.flags;
3145
+ }
3146
+ let fromRdfType;
3147
+ if (Maybe.isMaybe(parameters?.fromRdfType)) {
3148
+ fromRdfType = parameters?.fromRdfType;
3149
+ }
3150
+ else if (typeof parameters?.fromRdfType === "object") {
3151
+ fromRdfType = Maybe.of(parameters?.fromRdfType);
3152
+ }
3153
+ else if (typeof parameters?.fromRdfType === "string") {
3154
+ fromRdfType = Maybe.of(dataFactory.namedNode(parameters?.fromRdfType));
3155
+ }
3156
+ else if (parameters?.fromRdfType === undefined) {
3157
+ fromRdfType = Maybe.empty();
3158
+ }
3159
+ else {
3160
+ fromRdfType = parameters?.fromRdfType;
3161
+ }
3162
+ let hasValues;
3163
+ if (parameters?.hasValues === undefined) {
3164
+ hasValues = [];
3165
+ }
3166
+ else if ($isReadonlyObjectArray(parameters?.hasValues)) {
3167
+ hasValues = parameters?.hasValues;
3168
+ }
3169
+ else if ($isReadonlyBigIntArray(parameters?.hasValues)) {
3170
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.bigint(item));
3171
+ }
3172
+ else if ($isReadonlyBooleanArray(parameters?.hasValues)) {
3173
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.boolean(item));
3174
+ }
3175
+ else if ($isReadonlyNumberArray(parameters?.hasValues)) {
3176
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.number(item));
3177
+ }
3178
+ else if ($isReadonlyStringArray(parameters?.hasValues)) {
3179
+ hasValues = parameters?.hasValues.map((item) => $literalFactory.string(item));
3180
+ }
3181
+ else {
3182
+ hasValues = parameters?.hasValues;
3183
+ }
3184
+ let identifierMintingStrategy;
3185
+ if (Maybe.isMaybe(parameters?.identifierMintingStrategy)) {
3186
+ identifierMintingStrategy = parameters?.identifierMintingStrategy;
3187
+ }
3188
+ else if (typeof parameters?.identifierMintingStrategy === "object") {
3189
+ identifierMintingStrategy = Maybe.of(parameters?.identifierMintingStrategy);
3190
+ }
3191
+ else if (typeof parameters?.identifierMintingStrategy === "string") {
3192
+ identifierMintingStrategy = Maybe.of(dataFactory.namedNode(parameters?.identifierMintingStrategy));
3193
+ }
3194
+ else if (parameters?.identifierMintingStrategy === undefined) {
3195
+ identifierMintingStrategy = Maybe.empty();
3196
+ }
3197
+ else {
3198
+ identifierMintingStrategy =
3199
+ parameters?.identifierMintingStrategy;
3200
+ }
3201
+ let ignoredProperties;
3202
+ if (Maybe.isMaybe(parameters?.ignoredProperties)) {
3203
+ ignoredProperties = parameters?.ignoredProperties;
3204
+ }
3205
+ else if ($isReadonlyObjectArray(parameters?.ignoredProperties)) {
3206
+ ignoredProperties = Maybe.of(parameters?.ignoredProperties);
3207
+ }
3208
+ else if ($isReadonlyStringArray(parameters?.ignoredProperties)) {
3209
+ ignoredProperties = Maybe.of(parameters?.ignoredProperties.map((item) => dataFactory.namedNode(item)));
3210
+ }
3211
+ else if (parameters?.ignoredProperties === undefined) {
3212
+ ignoredProperties = Maybe.empty();
3213
+ }
3214
+ else {
3215
+ ignoredProperties = parameters?.ignoredProperties;
3216
+ }
3217
+ let in_;
3218
+ if (Maybe.isMaybe(parameters?.in_)) {
3219
+ in_ = parameters?.in_;
3220
+ }
3221
+ else if ($isReadonlyObjectArray(parameters?.in_)) {
3222
+ in_ = Maybe.of(parameters?.in_);
3223
+ }
3224
+ else if ($isReadonlyBigIntArray(parameters?.in_)) {
3225
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.bigint(item)));
3226
+ }
3227
+ else if ($isReadonlyBooleanArray(parameters?.in_)) {
3228
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.boolean(item)));
3229
+ }
3230
+ else if ($isReadonlyNumberArray(parameters?.in_)) {
3231
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.number(item)));
3232
+ }
3233
+ else if ($isReadonlyStringArray(parameters?.in_)) {
3234
+ in_ = Maybe.of(parameters?.in_.map((item) => $literalFactory.string(item)));
3235
+ }
3236
+ else if (parameters?.in_ === undefined) {
3237
+ in_ = Maybe.empty();
3238
+ }
3239
+ else {
3240
+ in_ = parameters?.in_;
3241
+ }
3242
+ let isDefinedBy;
3243
+ if (Maybe.isMaybe(parameters?.isDefinedBy)) {
3244
+ isDefinedBy = parameters?.isDefinedBy;
3245
+ }
3246
+ else if (typeof parameters?.isDefinedBy === "object") {
3247
+ isDefinedBy = Maybe.of(parameters?.isDefinedBy);
3248
+ }
3249
+ else if (typeof parameters?.isDefinedBy === "string") {
3250
+ isDefinedBy = Maybe.of(dataFactory.namedNode(parameters?.isDefinedBy));
3251
+ }
3252
+ else if (parameters?.isDefinedBy === undefined) {
3253
+ isDefinedBy = Maybe.empty();
3254
+ }
3255
+ else {
3256
+ isDefinedBy = parameters?.isDefinedBy;
3257
+ }
3258
+ let label;
3259
+ if (Maybe.isMaybe(parameters?.label)) {
3260
+ label = parameters?.label;
3261
+ }
3262
+ else if (typeof parameters?.label === "string") {
3263
+ label = Maybe.of(parameters?.label);
3264
+ }
3265
+ else if (parameters?.label === undefined) {
3266
+ label = Maybe.empty();
3267
+ }
3268
+ else {
3269
+ label = parameters?.label;
3270
+ }
3271
+ let languageIn;
3272
+ if (Maybe.isMaybe(parameters?.languageIn)) {
3273
+ languageIn = parameters?.languageIn;
3274
+ }
3275
+ else if (typeof parameters?.languageIn === "object") {
3276
+ languageIn = Maybe.of(parameters?.languageIn);
3277
+ }
3278
+ else if (parameters?.languageIn === undefined) {
3279
+ languageIn = Maybe.empty();
3280
+ }
3281
+ else {
3282
+ languageIn = parameters?.languageIn;
3283
+ }
3284
+ let maxCount;
3285
+ if (Maybe.isMaybe(parameters?.maxCount)) {
3286
+ maxCount = parameters?.maxCount;
3287
+ }
3288
+ else if (typeof parameters?.maxCount === "number") {
3289
+ maxCount = Maybe.of(parameters?.maxCount);
3290
+ }
3291
+ else if (parameters?.maxCount === undefined) {
3292
+ maxCount = Maybe.empty();
3293
+ }
3294
+ else {
3295
+ maxCount = parameters?.maxCount;
3296
+ }
3297
+ let maxExclusive;
3298
+ if (Maybe.isMaybe(parameters?.maxExclusive)) {
3299
+ maxExclusive = parameters?.maxExclusive;
3300
+ }
3301
+ else if (typeof parameters?.maxExclusive === "bigint") {
3302
+ maxExclusive = Maybe.of($literalFactory.bigint(parameters?.maxExclusive));
3303
+ }
3304
+ else if (typeof parameters?.maxExclusive === "boolean") {
3305
+ maxExclusive = Maybe.of($literalFactory.boolean(parameters?.maxExclusive));
3306
+ }
3307
+ else if (typeof parameters?.maxExclusive === "object" &&
3308
+ parameters?.maxExclusive instanceof Date) {
3309
+ maxExclusive = Maybe.of($literalFactory.date(parameters?.maxExclusive));
3310
+ }
3311
+ else if (typeof parameters?.maxExclusive === "number") {
3312
+ maxExclusive = Maybe.of($literalFactory.number(parameters?.maxExclusive));
3313
+ }
3314
+ else if (typeof parameters?.maxExclusive === "string") {
3315
+ maxExclusive = Maybe.of($literalFactory.string(parameters?.maxExclusive));
3316
+ }
3317
+ else if (typeof parameters?.maxExclusive === "object") {
3318
+ maxExclusive = Maybe.of(parameters?.maxExclusive);
3319
+ }
3320
+ else if (parameters?.maxExclusive === undefined) {
3321
+ maxExclusive = Maybe.empty();
3322
+ }
3323
+ else {
3324
+ maxExclusive = parameters?.maxExclusive;
3325
+ }
3326
+ let maxInclusive;
3327
+ if (Maybe.isMaybe(parameters?.maxInclusive)) {
3328
+ maxInclusive = parameters?.maxInclusive;
3329
+ }
3330
+ else if (typeof parameters?.maxInclusive === "bigint") {
3331
+ maxInclusive = Maybe.of($literalFactory.bigint(parameters?.maxInclusive));
3332
+ }
3333
+ else if (typeof parameters?.maxInclusive === "boolean") {
3334
+ maxInclusive = Maybe.of($literalFactory.boolean(parameters?.maxInclusive));
3335
+ }
3336
+ else if (typeof parameters?.maxInclusive === "object" &&
3337
+ parameters?.maxInclusive instanceof Date) {
3338
+ maxInclusive = Maybe.of($literalFactory.date(parameters?.maxInclusive));
3339
+ }
3340
+ else if (typeof parameters?.maxInclusive === "number") {
3341
+ maxInclusive = Maybe.of($literalFactory.number(parameters?.maxInclusive));
3342
+ }
3343
+ else if (typeof parameters?.maxInclusive === "string") {
3344
+ maxInclusive = Maybe.of($literalFactory.string(parameters?.maxInclusive));
3345
+ }
3346
+ else if (typeof parameters?.maxInclusive === "object") {
3347
+ maxInclusive = Maybe.of(parameters?.maxInclusive);
3348
+ }
3349
+ else if (parameters?.maxInclusive === undefined) {
3350
+ maxInclusive = Maybe.empty();
3351
+ }
3352
+ else {
3353
+ maxInclusive = parameters?.maxInclusive;
3354
+ }
3355
+ let maxLength;
3356
+ if (Maybe.isMaybe(parameters?.maxLength)) {
3357
+ maxLength = parameters?.maxLength;
3358
+ }
3359
+ else if (typeof parameters?.maxLength === "number") {
3360
+ maxLength = Maybe.of(parameters?.maxLength);
3361
+ }
3362
+ else if (parameters?.maxLength === undefined) {
3363
+ maxLength = Maybe.empty();
3364
+ }
3365
+ else {
3366
+ maxLength = parameters?.maxLength;
3367
+ }
3368
+ let minCount;
3369
+ if (Maybe.isMaybe(parameters?.minCount)) {
3370
+ minCount = parameters?.minCount;
3371
+ }
3372
+ else if (typeof parameters?.minCount === "number") {
3373
+ minCount = Maybe.of(parameters?.minCount);
3374
+ }
3375
+ else if (parameters?.minCount === undefined) {
3376
+ minCount = Maybe.empty();
3377
+ }
3378
+ else {
3379
+ minCount = parameters?.minCount;
3380
+ }
3381
+ let minExclusive;
3382
+ if (Maybe.isMaybe(parameters?.minExclusive)) {
3383
+ minExclusive = parameters?.minExclusive;
3384
+ }
3385
+ else if (typeof parameters?.minExclusive === "bigint") {
3386
+ minExclusive = Maybe.of($literalFactory.bigint(parameters?.minExclusive));
3387
+ }
3388
+ else if (typeof parameters?.minExclusive === "boolean") {
3389
+ minExclusive = Maybe.of($literalFactory.boolean(parameters?.minExclusive));
3390
+ }
3391
+ else if (typeof parameters?.minExclusive === "object" &&
3392
+ parameters?.minExclusive instanceof Date) {
3393
+ minExclusive = Maybe.of($literalFactory.date(parameters?.minExclusive));
3394
+ }
3395
+ else if (typeof parameters?.minExclusive === "number") {
3396
+ minExclusive = Maybe.of($literalFactory.number(parameters?.minExclusive));
3397
+ }
3398
+ else if (typeof parameters?.minExclusive === "string") {
3399
+ minExclusive = Maybe.of($literalFactory.string(parameters?.minExclusive));
3400
+ }
3401
+ else if (typeof parameters?.minExclusive === "object") {
3402
+ minExclusive = Maybe.of(parameters?.minExclusive);
3403
+ }
3404
+ else if (parameters?.minExclusive === undefined) {
3405
+ minExclusive = Maybe.empty();
3406
+ }
3407
+ else {
3408
+ minExclusive = parameters?.minExclusive;
3409
+ }
3410
+ let minInclusive;
3411
+ if (Maybe.isMaybe(parameters?.minInclusive)) {
3412
+ minInclusive = parameters?.minInclusive;
3413
+ }
3414
+ else if (typeof parameters?.minInclusive === "bigint") {
3415
+ minInclusive = Maybe.of($literalFactory.bigint(parameters?.minInclusive));
3416
+ }
3417
+ else if (typeof parameters?.minInclusive === "boolean") {
3418
+ minInclusive = Maybe.of($literalFactory.boolean(parameters?.minInclusive));
3419
+ }
3420
+ else if (typeof parameters?.minInclusive === "object" &&
3421
+ parameters?.minInclusive instanceof Date) {
3422
+ minInclusive = Maybe.of($literalFactory.date(parameters?.minInclusive));
3423
+ }
3424
+ else if (typeof parameters?.minInclusive === "number") {
3425
+ minInclusive = Maybe.of($literalFactory.number(parameters?.minInclusive));
3426
+ }
3427
+ else if (typeof parameters?.minInclusive === "string") {
3428
+ minInclusive = Maybe.of($literalFactory.string(parameters?.minInclusive));
3429
+ }
3430
+ else if (typeof parameters?.minInclusive === "object") {
3431
+ minInclusive = Maybe.of(parameters?.minInclusive);
3432
+ }
3433
+ else if (parameters?.minInclusive === undefined) {
3434
+ minInclusive = Maybe.empty();
3435
+ }
3436
+ else {
3437
+ minInclusive = parameters?.minInclusive;
3438
+ }
3439
+ let minLength;
3440
+ if (Maybe.isMaybe(parameters?.minLength)) {
3441
+ minLength = parameters?.minLength;
3442
+ }
3443
+ else if (typeof parameters?.minLength === "number") {
3444
+ minLength = Maybe.of(parameters?.minLength);
3445
+ }
3446
+ else if (parameters?.minLength === undefined) {
3447
+ minLength = Maybe.empty();
3448
+ }
3449
+ else {
3450
+ minLength = parameters?.minLength;
3451
+ }
3452
+ let mutable;
3453
+ if (Maybe.isMaybe(parameters?.mutable)) {
3454
+ mutable = parameters?.mutable;
3455
+ }
3456
+ else if (typeof parameters?.mutable === "boolean") {
3457
+ mutable = Maybe.of(parameters?.mutable);
3458
+ }
3459
+ else if (parameters?.mutable === undefined) {
3460
+ mutable = Maybe.empty();
3461
+ }
3462
+ else {
3463
+ mutable = parameters?.mutable;
3464
+ }
3465
+ let nodeKind;
3466
+ if (Maybe.isMaybe(parameters?.nodeKind)) {
3467
+ nodeKind = parameters?.nodeKind;
3468
+ }
3469
+ else if (typeof parameters?.nodeKind === "object") {
3470
+ nodeKind = Maybe.of(parameters?.nodeKind);
3471
+ }
3472
+ else if (typeof parameters?.nodeKind === "string") {
3473
+ nodeKind = Maybe.of(dataFactory.namedNode(parameters?.nodeKind));
3474
+ }
3475
+ else if (parameters?.nodeKind === undefined) {
3476
+ nodeKind = Maybe.empty();
3477
+ }
3478
+ else {
3479
+ nodeKind = parameters?.nodeKind;
3480
+ }
3481
+ let nodes;
3482
+ if (parameters?.nodes === undefined) {
3483
+ nodes = [];
3484
+ }
3485
+ else if ($isReadonlyObjectArray(parameters?.nodes)) {
3486
+ nodes = parameters?.nodes;
3487
+ }
3488
+ else if ($isReadonlyStringArray(parameters?.nodes)) {
3489
+ nodes = parameters?.nodes.map((item) => dataFactory.namedNode(item));
3490
+ }
3491
+ else {
3492
+ nodes = parameters?.nodes;
3493
+ }
3494
+ let not;
3495
+ if (parameters?.not === undefined) {
3496
+ not = [];
3497
+ }
3498
+ else if ($isReadonlyObjectArray(parameters?.not)) {
3499
+ not = parameters?.not;
3500
+ }
3501
+ else if ($isReadonlyStringArray(parameters?.not)) {
3502
+ not = parameters?.not.map((item) => dataFactory.namedNode(item));
3503
+ }
3504
+ else {
3505
+ not = parameters?.not;
3506
+ }
3507
+ let or;
3508
+ if (Maybe.isMaybe(parameters?.or)) {
3509
+ or = parameters?.or;
3510
+ }
3511
+ else if ($isReadonlyObjectArray(parameters?.or)) {
3512
+ or = Maybe.of(parameters?.or);
3513
+ }
3514
+ else if ($isReadonlyStringArray(parameters?.or)) {
3515
+ or = Maybe.of(parameters?.or.map((item) => dataFactory.namedNode(item)));
3516
+ }
3517
+ else if (parameters?.or === undefined) {
3518
+ or = Maybe.empty();
3519
+ }
3520
+ else {
3521
+ or = parameters?.or;
3522
+ }
3523
+ let patterns;
3524
+ if (parameters?.patterns === undefined) {
3525
+ patterns = [];
3526
+ }
3527
+ else if (typeof parameters?.patterns === "object") {
3528
+ patterns = parameters?.patterns;
3529
+ }
3530
+ else {
3531
+ patterns = parameters?.patterns;
3532
+ }
3533
+ let properties;
3534
+ if (parameters?.properties === undefined) {
3535
+ properties = [];
3536
+ }
3537
+ else if ($isReadonlyObjectArray(parameters?.properties)) {
3538
+ properties = parameters?.properties;
3539
+ }
3540
+ else if ($isReadonlyStringArray(parameters?.properties)) {
3541
+ properties = parameters?.properties.map((item) => dataFactory.namedNode(item));
3542
+ }
3543
+ else {
3544
+ properties = parameters?.properties;
3545
+ }
3546
+ let rdfType;
3547
+ if (Maybe.isMaybe(parameters?.rdfType)) {
3548
+ rdfType = parameters?.rdfType;
3549
+ }
3550
+ else if (typeof parameters?.rdfType === "object") {
3551
+ rdfType = Maybe.of(parameters?.rdfType);
3552
+ }
3553
+ else if (typeof parameters?.rdfType === "string") {
3554
+ rdfType = Maybe.of(dataFactory.namedNode(parameters?.rdfType));
3555
+ }
3556
+ else if (parameters?.rdfType === undefined) {
3557
+ rdfType = Maybe.empty();
3558
+ }
3559
+ else {
3560
+ rdfType = parameters?.rdfType;
1857
3561
  }
1858
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _propertyGroup.comment
1859
- .toList()
1860
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
1861
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _propertyGroup.label
1862
- .toList()
1863
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
1864
- return resource;
1865
- }
1866
- PropertyGroup.$toRdfResource = $toRdfResource;
1867
- })(PropertyGroup || (PropertyGroup = {}));
1868
- export var Ontology;
1869
- (function (Ontology) {
1870
- let $Identifier;
1871
- (function ($Identifier) {
1872
- $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
1873
- $Identifier.toString = Resource.Identifier.toString;
1874
- })($Identifier = Ontology.$Identifier || (Ontology.$Identifier = {}));
1875
- function $filter(filter, value) {
1876
- if (filter.$identifier !== undefined &&
1877
- !$filterIdentifier(filter.$identifier, value.$identifier)) {
1878
- return false;
3562
+ let shaclmateName;
3563
+ if (Maybe.isMaybe(parameters?.shaclmateName)) {
3564
+ shaclmateName = parameters?.shaclmateName;
1879
3565
  }
1880
- if (filter.comment !== undefined &&
1881
- !$filterMaybe($filterString)(filter.comment, value.comment)) {
1882
- return false;
3566
+ else if (typeof parameters?.shaclmateName === "string") {
3567
+ shaclmateName = Maybe.of(parameters?.shaclmateName);
1883
3568
  }
1884
- if (filter.label !== undefined &&
1885
- !$filterMaybe($filterString)(filter.label, value.label)) {
1886
- return false;
3569
+ else if (parameters?.shaclmateName === undefined) {
3570
+ shaclmateName = Maybe.empty();
1887
3571
  }
1888
- if (filter.tsFeatureExcludes !== undefined &&
1889
- !$filterArray($filterIri)(filter.tsFeatureExcludes, value.tsFeatureExcludes)) {
1890
- return false;
3572
+ else {
3573
+ shaclmateName = parameters?.shaclmateName;
1891
3574
  }
1892
- if (filter.tsFeatureIncludes !== undefined &&
1893
- !$filterArray($filterIri)(filter.tsFeatureIncludes, value.tsFeatureIncludes)) {
1894
- return false;
3575
+ let subClassOf;
3576
+ if (parameters?.subClassOf === undefined) {
3577
+ subClassOf = [];
1895
3578
  }
1896
- if (filter.tsImports !== undefined &&
1897
- !$filterArray($filterString)(filter.tsImports, value.tsImports)) {
1898
- return false;
3579
+ else if ($isReadonlyObjectArray(parameters?.subClassOf)) {
3580
+ subClassOf = parameters?.subClassOf;
1899
3581
  }
1900
- if (filter.tsObjectDeclarationType !== undefined &&
1901
- !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
1902
- return false;
3582
+ else if ($isReadonlyStringArray(parameters?.subClassOf)) {
3583
+ subClassOf = parameters?.subClassOf.map((item) => dataFactory.namedNode(item));
1903
3584
  }
1904
- return true;
1905
- }
1906
- Ontology.$filter = $filter;
1907
- Ontology.$fromRdfResource = (resource, options) => {
1908
- let { context, graph, ignoreRdfType = false, objectSet, preferredLanguages, } = options ?? {};
1909
- if (!objectSet) {
1910
- objectSet = new $RdfjsDatasetObjectSet(resource.dataset);
3585
+ else {
3586
+ subClassOf = parameters?.subClassOf;
1911
3587
  }
1912
- return Ontology.$propertiesFromRdfResource(resource, {
1913
- context,
1914
- graph,
1915
- ignoreRdfType,
1916
- objectSet,
1917
- preferredLanguages,
1918
- });
1919
- };
1920
- Ontology.$fromRdfResourceValues = (values, options) => values.chain((values) => values.chainMap((value) => value
1921
- .toResource()
1922
- .chain((resource) => Ontology.$fromRdfResource(resource, options))));
1923
- Ontology.$fromRdfType = dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology");
1924
- function isOntology(object) {
1925
- switch (object.$type) {
1926
- case "Ontology":
1927
- return true;
1928
- default:
1929
- return false;
3588
+ let toRdfTypes;
3589
+ if (parameters?.toRdfTypes === undefined) {
3590
+ toRdfTypes = [];
1930
3591
  }
1931
- }
1932
- Ontology.isOntology = isOntology;
1933
- Ontology.$propertiesFromRdfResource = ($resource, _$options) => {
1934
- return (!_$options.ignoreRdfType
1935
- ? $resource
1936
- .value($RdfVocabularies.rdf.type, { graph: _$options.graph })
1937
- .chain((actualRdfType) => actualRdfType.toIri())
1938
- .chain((actualRdfType) => {
1939
- // Check the expected type and its known subtypes
1940
- switch (actualRdfType.value) {
1941
- case "http://www.w3.org/2002/07/owl#Ontology":
1942
- return Right(true);
1943
- }
1944
- // Check arbitrary rdfs:subClassOf's of the expected type
1945
- if ($resource.isInstanceOf(Ontology.$fromRdfType, {
1946
- graph: _$options.graph,
1947
- })) {
1948
- return Right(true);
1949
- }
1950
- return Left(new Error(`${Resource.Identifier.toString($resource.identifier)} has unexpected RDF type (actual: ${actualRdfType.value}, expected: http://www.w3.org/2002/07/owl#Ontology)`));
1951
- })
1952
- : Right(true)).chain((_rdfTypeCheck) => Right(new Resource.Value({
1953
- dataFactory: dataFactory,
1954
- focusResource: $resource,
1955
- propertyPath: $RdfVocabularies.rdf.subject,
1956
- term: $resource.identifier,
1957
- }).toValues())
1958
- .chain((values) => values.chainMap((value) => value.toIdentifier()))
1959
- .chain((values) => values.head())
1960
- .chain(($identifier) => Right("Ontology").chain(($type) => $shaclPropertyFromRdf({
1961
- graph: _$options.graph,
1962
- resource: $resource,
1963
- propertySchema: Ontology.$schema.properties.comment,
1964
- typeFromRdf: (resourceValues) => resourceValues
1965
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1966
- .chain((values) => values.chainMap((value) => value.toString()))
1967
- .map((values) => values.length > 0
1968
- ? values.map((value) => Maybe.of(value))
1969
- : Resource.Values.fromValue({
1970
- focusResource: $resource,
1971
- propertyPath: PropertyShape.$schema.properties.comment.path,
1972
- value: Maybe.empty(),
1973
- })),
1974
- }).chain((comment) => $shaclPropertyFromRdf({
1975
- graph: _$options.graph,
1976
- resource: $resource,
1977
- propertySchema: Ontology.$schema.properties.label,
1978
- typeFromRdf: (resourceValues) => resourceValues
1979
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
1980
- .chain((values) => values.chainMap((value) => value.toString()))
1981
- .map((values) => values.length > 0
1982
- ? values.map((value) => Maybe.of(value))
1983
- : Resource.Values.fromValue({
1984
- focusResource: $resource,
1985
- propertyPath: PropertyShape.$schema.properties.label.path,
1986
- value: Maybe.empty(),
1987
- })),
1988
- }).chain((label) => $shaclPropertyFromRdf({
1989
- graph: _$options.graph,
1990
- resource: $resource,
1991
- propertySchema: Ontology.$schema.properties.tsFeatureExcludes,
1992
- typeFromRdf: (resourceValues) => resourceValues
1993
- .chain((values) => values.chainMap((value) => value.toIri([
1994
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
1995
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
1996
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
1997
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
1998
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
1999
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2000
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2001
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2002
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2003
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2004
- ])))
2005
- .map((values) => values.toArray())
2006
- .map((valuesArray) => Resource.Values.fromValue({
2007
- focusResource: $resource,
2008
- propertyPath: Ontology.$schema.properties.tsFeatureExcludes.path,
2009
- value: valuesArray,
2010
- })),
2011
- }).chain((tsFeatureExcludes) => $shaclPropertyFromRdf({
2012
- graph: _$options.graph,
2013
- resource: $resource,
2014
- propertySchema: Ontology.$schema.properties.tsFeatureIncludes,
2015
- typeFromRdf: (resourceValues) => resourceValues
2016
- .chain((values) => values.chainMap((value) => value.toIri([
2017
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2018
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2019
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2020
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2021
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2022
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2023
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2024
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2025
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2026
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2027
- ])))
2028
- .map((values) => values.toArray())
2029
- .map((valuesArray) => Resource.Values.fromValue({
2030
- focusResource: $resource,
2031
- propertyPath: Ontology.$schema.properties.tsFeatureIncludes
2032
- .path,
2033
- value: valuesArray,
2034
- })),
2035
- }).chain((tsFeatureIncludes) => $shaclPropertyFromRdf({
2036
- graph: _$options.graph,
2037
- resource: $resource,
2038
- propertySchema: Ontology.$schema.properties.tsImports,
2039
- typeFromRdf: (resourceValues) => resourceValues
2040
- .chain((values) => $fromRdfPreferredLanguages(values, _$options.preferredLanguages))
2041
- .chain((values) => values.chainMap((value) => value.toString()))
2042
- .map((values) => values.toArray())
2043
- .map((valuesArray) => Resource.Values.fromValue({
2044
- focusResource: $resource,
2045
- propertyPath: Ontology.$schema.properties.tsImports.path,
2046
- value: valuesArray,
2047
- })),
2048
- }).chain((tsImports) => $shaclPropertyFromRdf({
2049
- graph: _$options.graph,
2050
- resource: $resource,
2051
- propertySchema: Ontology.$schema.properties.tsObjectDeclarationType,
2052
- typeFromRdf: (resourceValues) => resourceValues
2053
- .chain((values) => values.chainMap((value) => value.toIri([
2054
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2055
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2056
- ])))
2057
- .map((values) => values.length > 0
2058
- ? values.map((value) => Maybe.of(value))
2059
- : Resource.Values.fromValue({
2060
- focusResource: $resource,
2061
- propertyPath: Ontology.$schema.properties
2062
- .tsObjectDeclarationType.path,
2063
- value: Maybe.empty(),
2064
- })),
2065
- }).map((tsObjectDeclarationType) => ({
3592
+ else if ($isReadonlyObjectArray(parameters?.toRdfTypes)) {
3593
+ toRdfTypes = parameters?.toRdfTypes;
3594
+ }
3595
+ else if ($isReadonlyStringArray(parameters?.toRdfTypes)) {
3596
+ toRdfTypes = parameters?.toRdfTypes.map((item) => dataFactory.namedNode(item));
3597
+ }
3598
+ else {
3599
+ toRdfTypes = parameters?.toRdfTypes;
3600
+ }
3601
+ let tsFeatureExcludes;
3602
+ if (parameters?.tsFeatureExcludes === undefined) {
3603
+ tsFeatureExcludes = [];
3604
+ }
3605
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureExcludes)) {
3606
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
3607
+ }
3608
+ else if ($isReadonlyStringArray(parameters?.tsFeatureExcludes)) {
3609
+ tsFeatureExcludes = parameters?.tsFeatureExcludes.map((item) => dataFactory.namedNode(item));
3610
+ }
3611
+ else {
3612
+ tsFeatureExcludes = parameters?.tsFeatureExcludes;
3613
+ }
3614
+ let tsFeatureIncludes;
3615
+ if (parameters?.tsFeatureIncludes === undefined) {
3616
+ tsFeatureIncludes = [];
3617
+ }
3618
+ else if ($isReadonlyObjectArray(parameters?.tsFeatureIncludes)) {
3619
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
3620
+ }
3621
+ else if ($isReadonlyStringArray(parameters?.tsFeatureIncludes)) {
3622
+ tsFeatureIncludes = parameters?.tsFeatureIncludes.map((item) => dataFactory.namedNode(item));
3623
+ }
3624
+ else {
3625
+ tsFeatureIncludes = parameters?.tsFeatureIncludes;
3626
+ }
3627
+ let tsImports;
3628
+ if (parameters?.tsImports === undefined) {
3629
+ tsImports = [];
3630
+ }
3631
+ else if (typeof parameters?.tsImports === "object") {
3632
+ tsImports = parameters?.tsImports;
3633
+ }
3634
+ else {
3635
+ tsImports = parameters?.tsImports;
3636
+ }
3637
+ let tsObjectDeclarationType;
3638
+ if (Maybe.isMaybe(parameters?.tsObjectDeclarationType)) {
3639
+ tsObjectDeclarationType = parameters?.tsObjectDeclarationType;
3640
+ }
3641
+ else if (typeof parameters?.tsObjectDeclarationType === "object") {
3642
+ tsObjectDeclarationType = Maybe.of(parameters?.tsObjectDeclarationType);
3643
+ }
3644
+ else if (typeof parameters?.tsObjectDeclarationType === "string") {
3645
+ tsObjectDeclarationType = Maybe.of(dataFactory.namedNode(parameters?.tsObjectDeclarationType));
3646
+ }
3647
+ else if (parameters?.tsObjectDeclarationType === undefined) {
3648
+ tsObjectDeclarationType = Maybe.empty();
3649
+ }
3650
+ else {
3651
+ tsObjectDeclarationType =
3652
+ parameters?.tsObjectDeclarationType;
3653
+ }
3654
+ let types;
3655
+ if (parameters?.types === undefined) {
3656
+ types = [];
3657
+ }
3658
+ else if ($isReadonlyObjectArray(parameters?.types)) {
3659
+ types = parameters?.types;
3660
+ }
3661
+ else if ($isReadonlyStringArray(parameters?.types)) {
3662
+ types = parameters?.types.map((item) => dataFactory.namedNode(item));
3663
+ }
3664
+ else {
3665
+ types = parameters?.types;
3666
+ }
3667
+ let xone;
3668
+ if (Maybe.isMaybe(parameters?.xone)) {
3669
+ xone = parameters?.xone;
3670
+ }
3671
+ else if ($isReadonlyObjectArray(parameters?.xone)) {
3672
+ xone = Maybe.of(parameters?.xone);
3673
+ }
3674
+ else if ($isReadonlyStringArray(parameters?.xone)) {
3675
+ xone = Maybe.of(parameters?.xone.map((item) => dataFactory.namedNode(item)));
3676
+ }
3677
+ else if (parameters?.xone === undefined) {
3678
+ xone = Maybe.empty();
3679
+ }
3680
+ else {
3681
+ xone = parameters?.xone;
3682
+ }
3683
+ return {
2066
3684
  $identifier,
2067
3685
  $type,
3686
+ abstract,
3687
+ and,
3688
+ classes,
3689
+ closed,
2068
3690
  comment,
3691
+ datatype,
3692
+ deactivated,
3693
+ discriminantValue,
3694
+ extern,
3695
+ flags,
3696
+ fromRdfType,
3697
+ hasValues,
3698
+ identifierMintingStrategy,
3699
+ ignoredProperties,
3700
+ in_,
3701
+ isDefinedBy,
2069
3702
  label,
3703
+ languageIn,
3704
+ maxCount,
3705
+ maxExclusive,
3706
+ maxInclusive,
3707
+ maxLength,
3708
+ minCount,
3709
+ minExclusive,
3710
+ minInclusive,
3711
+ minLength,
3712
+ mutable,
3713
+ nodeKind,
3714
+ nodes,
3715
+ not,
3716
+ or,
3717
+ patterns,
3718
+ properties,
3719
+ rdfType,
3720
+ shaclmateName,
3721
+ subClassOf,
3722
+ toRdfTypes,
2070
3723
  tsFeatureExcludes,
2071
3724
  tsFeatureIncludes,
2072
3725
  tsImports,
2073
3726
  tsObjectDeclarationType,
2074
- }))))))))));
2075
- };
2076
- Ontology.$schema = {
2077
- properties: {
2078
- $identifier: {
2079
- kind: "Identifier",
2080
- type: () => ({ kind: "Identifier" }),
2081
- },
2082
- $type: {
2083
- kind: "Discriminant",
2084
- type: () => ({
2085
- kind: "TypeDiscriminant",
2086
- ownValues: ["Ontology"],
2087
- }),
2088
- },
2089
- comment: {
2090
- kind: "Shacl",
2091
- type: () => ({
2092
- kind: "Maybe",
2093
- item: () => ({ kind: "String" }),
2094
- }),
2095
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"),
2096
- },
2097
- label: {
2098
- kind: "Shacl",
2099
- type: () => ({
2100
- kind: "Maybe",
2101
- item: () => ({ kind: "String" }),
2102
- }),
2103
- path: dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"),
2104
- },
2105
- tsFeatureExcludes: {
2106
- kind: "Shacl",
2107
- type: () => ({
2108
- kind: "Set",
2109
- item: () => ({
2110
- kind: "Iri",
2111
- in: [
2112
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2113
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2114
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2115
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2116
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2117
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2118
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2119
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2120
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2121
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2122
- ],
2123
- }),
2124
- }),
2125
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"),
2126
- },
2127
- tsFeatureIncludes: {
2128
- kind: "Shacl",
2129
- type: () => ({
2130
- kind: "Set",
2131
- item: () => ({
2132
- kind: "Iri",
2133
- in: [
2134
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_All"),
2135
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Create"),
2136
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_Default"),
2137
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Equals"),
2138
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Graphql"),
2139
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Hash"),
2140
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Json"),
2141
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeatures_None"),
2142
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Rdf"),
2143
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsFeature_Sparql"),
2144
- ],
2145
- }),
2146
- }),
2147
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"),
2148
- },
2149
- tsImports: {
2150
- kind: "Shacl",
2151
- type: () => ({
2152
- kind: "Set",
2153
- item: () => ({ kind: "String" }),
2154
- }),
2155
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"),
2156
- },
2157
- tsObjectDeclarationType: {
2158
- kind: "Shacl",
2159
- type: () => ({
2160
- kind: "Maybe",
2161
- item: () => ({
2162
- kind: "Iri",
2163
- in: [
2164
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Class"),
2165
- dataFactory.namedNode("http://purl.org/shaclmate/ontology#_TsObjectDeclarationType_Interface"),
2166
- ],
2167
- }),
2168
- }),
2169
- path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
2170
- },
2171
- },
2172
- };
2173
- function $toRdfResource(_ontology, options) {
2174
- const resourceSet = options?.resourceSet ??
2175
- new ResourceSet(datasetFactory.dataset(), { dataFactory: dataFactory });
2176
- const resource = resourceSet.resource(_ontology.$identifier);
2177
- if (!options?.ignoreRdfType) {
2178
- resource.add($RdfVocabularies.rdf.type, dataFactory.namedNode("http://www.w3.org/2002/07/owl#Ontology"), options?.graph);
2179
- }
2180
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#comment"), _ontology.comment
2181
- .toList()
2182
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2183
- resource.add(dataFactory.namedNode("http://www.w3.org/2000/01/rdf-schema#label"), _ontology.label
2184
- .toList()
2185
- .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
2186
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _ontology.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
2187
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _ontology.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
2188
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _ontology.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
2189
- resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _ontology.tsObjectDeclarationType.toList(), options?.graph);
2190
- return resource;
3727
+ types,
3728
+ xone,
3729
+ };
2191
3730
  }
2192
- Ontology.$toRdfResource = $toRdfResource;
2193
- })(Ontology || (Ontology = {}));
2194
- export var NodeShape;
2195
- (function (NodeShape) {
3731
+ NodeShape.$create = $create;
2196
3732
  let $Identifier;
2197
3733
  (function ($Identifier) {
2198
3734
  $Identifier.fromString = $identifierFromString; // biome-ignore lint/suspicious/noShadowRestrictedNames: allow toString
@@ -2208,7 +3744,7 @@ export var NodeShape;
2208
3744
  return false;
2209
3745
  }
2210
3746
  if (filter.and !== undefined &&
2211
- !$filterArray($filterArray($filterIdentifier))(filter.and, value.and)) {
3747
+ !$filterMaybe($filterArray($filterIdentifier))(filter.and, value.and)) {
2212
3748
  return false;
2213
3749
  }
2214
3750
  if (filter.classes !== undefined &&
@@ -2324,7 +3860,7 @@ export var NodeShape;
2324
3860
  return false;
2325
3861
  }
2326
3862
  if (filter.or !== undefined &&
2327
- !$filterArray($filterArray($filterIdentifier))(filter.or, value.or)) {
3863
+ !$filterMaybe($filterArray($filterIdentifier))(filter.or, value.or)) {
2328
3864
  return false;
2329
3865
  }
2330
3866
  if (filter.patterns !== undefined &&
@@ -2343,6 +3879,10 @@ export var NodeShape;
2343
3879
  !$filterMaybe($filterString)(filter.shaclmateName, value.shaclmateName)) {
2344
3880
  return false;
2345
3881
  }
3882
+ if (filter.subClassOf !== undefined &&
3883
+ !$filterArray($filterIri)(filter.subClassOf, value.subClassOf)) {
3884
+ return false;
3885
+ }
2346
3886
  if (filter.toRdfTypes !== undefined &&
2347
3887
  !$filterArray($filterIri)(filter.toRdfTypes, value.toRdfTypes)) {
2348
3888
  return false;
@@ -2363,8 +3903,12 @@ export var NodeShape;
2363
3903
  !$filterMaybe($filterIri)(filter.tsObjectDeclarationType, value.tsObjectDeclarationType)) {
2364
3904
  return false;
2365
3905
  }
3906
+ if (filter.types !== undefined &&
3907
+ !$filterArray($filterIri)(filter.types, value.types)) {
3908
+ return false;
3909
+ }
2366
3910
  if (filter.xone !== undefined &&
2367
- !$filterArray($filterArray($filterIdentifier))(filter.xone, value.xone)) {
3911
+ !$filterMaybe($filterArray($filterIdentifier))(filter.xone, value.xone)) {
2368
3912
  return false;
2369
3913
  }
2370
3914
  return true;
@@ -2448,12 +3992,13 @@ export var NodeShape;
2448
3992
  values: valueList.toArray(),
2449
3993
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
2450
3994
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
2451
- .map((values) => values.toArray())
2452
- .map((valuesArray) => Resource.Values.fromValue({
2453
- focusResource: $resource,
2454
- propertyPath: PropertyShape.$schema.properties.and.path,
2455
- value: valuesArray,
2456
- })),
3995
+ .map((values) => values.length > 0
3996
+ ? values.map((value) => Maybe.of(value))
3997
+ : Resource.Values.fromValue({
3998
+ focusResource: $resource,
3999
+ propertyPath: PropertyShape.$schema.properties.and.path,
4000
+ value: Maybe.empty(),
4001
+ })),
2457
4002
  }).chain((and) => $shaclPropertyFromRdf({
2458
4003
  graph: _$options.graph,
2459
4004
  resource: $resource,
@@ -3016,16 +4561,18 @@ export var NodeShape;
3016
4561
  values: valueList.toArray(),
3017
4562
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
3018
4563
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
3019
- .map((values) => values.toArray())
3020
- .map((valuesArray) => Resource.Values.fromValue({
3021
- focusResource: $resource,
3022
- propertyPath: PropertyShape
3023
- .$schema
3024
- .properties
3025
- .or
3026
- .path,
3027
- value: valuesArray,
3028
- })),
4564
+ .map((values) => values.length >
4565
+ 0
4566
+ ? values.map((value) => Maybe.of(value))
4567
+ : Resource.Values.fromValue({
4568
+ focusResource: $resource,
4569
+ propertyPath: PropertyShape
4570
+ .$schema
4571
+ .properties
4572
+ .or
4573
+ .path,
4574
+ value: Maybe.empty(),
4575
+ })),
3029
4576
  }).chain((or) => $shaclPropertyFromRdf({
3030
4577
  graph: _$options.graph,
3031
4578
  resource: $resource,
@@ -3105,6 +4652,24 @@ export var NodeShape;
3105
4652
  value: Maybe.empty(),
3106
4653
  })),
3107
4654
  }).chain((shaclmateName) => $shaclPropertyFromRdf({
4655
+ graph: _$options.graph,
4656
+ resource: $resource,
4657
+ propertySchema: NodeShape.$schema
4658
+ .properties
4659
+ .subClassOf,
4660
+ typeFromRdf: (resourceValues) => resourceValues
4661
+ .chain((values) => values.chainMap((value) => value.toIri()))
4662
+ .map((values) => values.toArray())
4663
+ .map((valuesArray) => Resource.Values.fromValue({
4664
+ focusResource: $resource,
4665
+ propertyPath: NodeShape
4666
+ .$schema
4667
+ .properties
4668
+ .subClassOf
4669
+ .path,
4670
+ value: valuesArray,
4671
+ })),
4672
+ }).chain((subClassOf) => $shaclPropertyFromRdf({
3108
4673
  graph: _$options.graph,
3109
4674
  resource: $resource,
3110
4675
  propertySchema: NodeShape.$schema
@@ -3223,6 +4788,24 @@ export var NodeShape;
3223
4788
  value: Maybe.empty(),
3224
4789
  })),
3225
4790
  }).chain((tsObjectDeclarationType) => $shaclPropertyFromRdf({
4791
+ graph: _$options.graph,
4792
+ resource: $resource,
4793
+ propertySchema: NodeShape.$schema
4794
+ .properties
4795
+ .types,
4796
+ typeFromRdf: (resourceValues) => resourceValues
4797
+ .chain((values) => values.chainMap((value) => value.toIri()))
4798
+ .map((values) => values.toArray())
4799
+ .map((valuesArray) => Resource.Values.fromValue({
4800
+ focusResource: $resource,
4801
+ propertyPath: NodeShape
4802
+ .$schema
4803
+ .properties
4804
+ .types
4805
+ .path,
4806
+ value: valuesArray,
4807
+ })),
4808
+ }).chain((types) => $shaclPropertyFromRdf({
3226
4809
  graph: _$options.graph,
3227
4810
  resource: $resource,
3228
4811
  propertySchema: NodeShape.$schema
@@ -3242,16 +4825,18 @@ export var NodeShape;
3242
4825
  values: valueList.toArray(),
3243
4826
  })).chain((values) => values.chainMap((value) => value.toIdentifier()))))
3244
4827
  .map((valueLists) => valueLists.map((valueList) => valueList.toArray()))
3245
- .map((values) => values.toArray())
3246
- .map((valuesArray) => Resource.Values.fromValue({
3247
- focusResource: $resource,
3248
- propertyPath: PropertyShape
3249
- .$schema
3250
- .properties
3251
- .xone
3252
- .path,
3253
- value: valuesArray,
3254
- })),
4828
+ .map((values) => values.length >
4829
+ 0
4830
+ ? values.map((value) => Maybe.of(value))
4831
+ : Resource.Values.fromValue({
4832
+ focusResource: $resource,
4833
+ propertyPath: PropertyShape
4834
+ .$schema
4835
+ .properties
4836
+ .xone
4837
+ .path,
4838
+ value: Maybe.empty(),
4839
+ })),
3255
4840
  }).map((xone) => ({
3256
4841
  $identifier,
3257
4842
  $type,
@@ -3290,13 +4875,15 @@ export var NodeShape;
3290
4875
  properties,
3291
4876
  rdfType,
3292
4877
  shaclmateName,
4878
+ subClassOf,
3293
4879
  toRdfTypes,
3294
4880
  tsFeatureExcludes,
3295
4881
  tsFeatureIncludes,
3296
4882
  tsImports,
3297
4883
  tsObjectDeclarationType,
4884
+ types,
3298
4885
  xone,
3299
- })))))))))))))))))))))))))))))))))))))))))))));
4886
+ })))))))))))))))))))))))))))))))))))))))))))))));
3300
4887
  };
3301
4888
  NodeShape.$schema = {
3302
4889
  properties: {
@@ -3322,7 +4909,7 @@ export var NodeShape;
3322
4909
  and: {
3323
4910
  kind: "Shacl",
3324
4911
  type: () => ({
3325
- kind: "Set",
4912
+ kind: "Maybe",
3326
4913
  item: () => ({
3327
4914
  kind: "List",
3328
4915
  item: () => ({ kind: "Identifier" }),
@@ -3583,7 +5170,7 @@ export var NodeShape;
3583
5170
  or: {
3584
5171
  kind: "Shacl",
3585
5172
  type: () => ({
3586
- kind: "Set",
5173
+ kind: "Maybe",
3587
5174
  item: () => ({
3588
5175
  kind: "List",
3589
5176
  item: () => ({ kind: "Identifier" }),
@@ -3623,6 +5210,14 @@ export var NodeShape;
3623
5210
  }),
3624
5211
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"),
3625
5212
  },
5213
+ subClassOf: {
5214
+ kind: "Shacl",
5215
+ type: () => ({
5216
+ kind: "Set",
5217
+ item: () => ({ kind: "Iri" }),
5218
+ }),
5219
+ path: $RdfVocabularies.rdfs.subClassOf,
5220
+ },
3626
5221
  toRdfTypes: {
3627
5222
  kind: "Shacl",
3628
5223
  type: () => ({
@@ -3697,10 +5292,18 @@ export var NodeShape;
3697
5292
  }),
3698
5293
  path: dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"),
3699
5294
  },
3700
- xone: {
5295
+ types: {
3701
5296
  kind: "Shacl",
3702
5297
  type: () => ({
3703
5298
  kind: "Set",
5299
+ item: () => ({ kind: "Iri" }),
5300
+ }),
5301
+ path: $RdfVocabularies.rdf.type,
5302
+ },
5303
+ xone: {
5304
+ kind: "Shacl",
5305
+ type: () => ({
5306
+ kind: "Maybe",
3704
5307
  item: () => ({
3705
5308
  kind: "List",
3706
5309
  item: () => ({ kind: "Identifier" }),
@@ -3722,9 +5325,9 @@ export var NodeShape;
3722
5325
  .flatMap((value) => [
3723
5326
  $literalFactory.boolean(value, $RdfVocabularies.xsd.boolean),
3724
5327
  ]), options?.graph);
3725
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _nodeShape.and.flatMap((item) => [
3726
- item.length > 0
3727
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5328
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#and"), _nodeShape.and.toList().flatMap((value) => [
5329
+ value.length > 0
5330
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3728
5331
  if (itemIndex === 0) {
3729
5332
  currentSubListResource = listResource;
3730
5333
  }
@@ -3873,9 +5476,9 @@ export var NodeShape;
3873
5476
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#nodeKind"), _nodeShape.nodeKind.toList(), options?.graph);
3874
5477
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#node"), _nodeShape.nodes.flatMap((item) => [item]), options?.graph);
3875
5478
  resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#not"), _nodeShape.not.flatMap((item) => [item]), options?.graph);
3876
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _nodeShape.or.flatMap((item) => [
3877
- item.length > 0
3878
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5479
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#or"), _nodeShape.or.toList().flatMap((value) => [
5480
+ value.length > 0
5481
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3879
5482
  if (itemIndex === 0) {
3880
5483
  currentSubListResource = listResource;
3881
5484
  }
@@ -3901,14 +5504,16 @@ export var NodeShape;
3901
5504
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#name"), _nodeShape.shaclmateName
3902
5505
  .toList()
3903
5506
  .flatMap((value) => [$literalFactory.string(value)]), options?.graph);
5507
+ resource.add($RdfVocabularies.rdfs.subClassOf, _nodeShape.subClassOf.flatMap((item) => [item]), options?.graph);
3904
5508
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#toRdfType"), _nodeShape.toRdfTypes.flatMap((item) => [item]), options?.graph);
3905
5509
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureExclude"), _nodeShape.tsFeatureExcludes.flatMap((item) => [item]), options?.graph);
3906
5510
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsFeatureInclude"), _nodeShape.tsFeatureIncludes.flatMap((item) => [item]), options?.graph);
3907
5511
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsImport"), _nodeShape.tsImports.flatMap((item) => [$literalFactory.string(item)]), options?.graph);
3908
5512
  resource.add(dataFactory.namedNode("http://purl.org/shaclmate/ontology#tsObjectDeclarationType"), _nodeShape.tsObjectDeclarationType.toList(), options?.graph);
3909
- resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _nodeShape.xone.flatMap((item) => [
3910
- item.length > 0
3911
- ? item.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
5513
+ resource.add($RdfVocabularies.rdf.type, _nodeShape.types.flatMap((item) => [item]), options?.graph);
5514
+ resource.add(dataFactory.namedNode("http://www.w3.org/ns/shacl#xone"), _nodeShape.xone.toList().flatMap((value) => [
5515
+ value.length > 0
5516
+ ? value.reduce(({ currentSubListResource, listResource }, item, itemIndex, list) => {
3912
5517
  if (itemIndex === 0) {
3913
5518
  currentSubListResource = listResource;
3914
5519
  }
@@ -4000,7 +5605,7 @@ export var Shape;
4000
5605
  and: {
4001
5606
  kind: "Shacl",
4002
5607
  type: () => ({
4003
- kind: "Set",
5608
+ kind: "Maybe",
4004
5609
  item: () => ({
4005
5610
  kind: "List",
4006
5611
  item: () => ({ kind: "Identifier" }),
@@ -4203,7 +5808,7 @@ export var Shape;
4203
5808
  or: {
4204
5809
  kind: "Shacl",
4205
5810
  type: () => ({
4206
- kind: "Set",
5811
+ kind: "Maybe",
4207
5812
  item: () => ({
4208
5813
  kind: "List",
4209
5814
  item: () => ({ kind: "Identifier" }),
@@ -4230,7 +5835,7 @@ export var Shape;
4230
5835
  xone: {
4231
5836
  kind: "Shacl",
4232
5837
  type: () => ({
4233
- kind: "Set",
5838
+ kind: "Maybe",
4234
5839
  item: () => ({
4235
5840
  kind: "List",
4236
5841
  item: () => ({ kind: "Identifier" }),