glossarist 0.4.1 → 0.4.3

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 (39) hide show
  1. package/data/concept-model/README.md +44 -0
  2. package/data/concept-model/shapes/glossarist.shacl.ttl +704 -0
  3. package/package.json +24 -4
  4. package/src/concept-collection.js +57 -0
  5. package/src/concept-parser.js +1 -1
  6. package/src/concept-reader.js +1 -1
  7. package/src/concept-serializer.js +1 -1
  8. package/src/gcr-reader.js +1 -1
  9. package/src/index.js +15 -0
  10. package/src/models/bibliography-data.js +1 -1
  11. package/src/models/concept.js +6 -0
  12. package/src/models/dataset-color.js +79 -0
  13. package/src/models/designation.js +54 -0
  14. package/src/models/gcr-metadata.js +1 -1
  15. package/src/models/index.d.ts +121 -4
  16. package/src/models/index.js +13 -0
  17. package/src/models/register.js +99 -1
  18. package/src/models/relation-categories.js +151 -0
  19. package/src/models/relation-colors.js +78 -0
  20. package/src/rdf/deterministic-id.js +17 -0
  21. package/src/rdf/document-writer.js +87 -0
  22. package/src/rdf/gloss-concept.js +43 -0
  23. package/src/rdf/gloss-designation.js +72 -0
  24. package/src/rdf/gloss-detailed-definition.js +69 -0
  25. package/src/rdf/gloss-localized-concept.js +72 -0
  26. package/src/rdf/gloss-source.js +51 -0
  27. package/src/rdf/index.d.ts +107 -0
  28. package/src/rdf/index.js +27 -0
  29. package/src/rdf/normalize-enum.js +23 -0
  30. package/src/rdf/predicates.d.ts +443 -0
  31. package/src/rdf/predicates.js +245 -0
  32. package/src/rdf/prefixes.js +31 -0
  33. package/src/rdf/shacl.js +98 -0
  34. package/src/rdf/terms.js +15 -0
  35. package/src/transforms/concept-to-gloss.transform.js +75 -0
  36. package/src/transforms/index.d.ts +26 -0
  37. package/src/transforms/index.js +1 -0
  38. package/src/v1-reader.js +1 -1
  39. package/src/validators/gcr-validator.js +1 -1
@@ -0,0 +1,704 @@
1
+ # Glossarist SHACL Shapes
2
+ #
3
+ # Validation shapes for the Glossarist ontology.
4
+ # Validates instance data against the ontology constraints.
5
+ #
6
+ # Requires: SHACL vocabulary (http://www.w3.org/ns/shacl#)
7
+
8
+ @prefix gloss: <https://www.glossarist.org/ontologies/> .
9
+ @prefix sh: <http://www.w3.org/ns/shacl#> .
10
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
11
+ @prefix xl: <http://www.w3.org/2008/05/skos-xl#> .
12
+ @prefix dcterms: <http://purl.org/dc/terms/> .
13
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
15
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
16
+
17
+ # ══════════════════════════════════════════════════════════════════════════
18
+ # Concept shapes
19
+ # ══════════════════════════════════════════════════════════════════════════
20
+
21
+ gloss:ConceptShape a sh:NodeShape ;
22
+ sh:targetClass gloss:Concept ;
23
+ sh:class skos:Concept ;
24
+ sh:property [
25
+ sh:path gloss:identifier ;
26
+ sh:datatype xsd:string ;
27
+ sh:minCount 1 ;
28
+ sh:maxCount 1 ;
29
+ ] ;
30
+ sh:property [
31
+ sh:path gloss:uri ;
32
+ sh:datatype xsd:anyURI ;
33
+ sh:maxCount 1 ;
34
+ ] ;
35
+ sh:property [
36
+ sh:path gloss:hasLocalization ;
37
+ sh:class gloss:LocalizedConcept ;
38
+ ] ;
39
+ sh:property [
40
+ sh:path gloss:hasStatus ;
41
+ sh:class skos:Concept ;
42
+ sh:valuesFrom <https://www.glossarist.org/ontologies/conceptstatus> ;
43
+ sh:maxCount 1 ;
44
+ ] ;
45
+ sh:property [
46
+ sh:path gloss:hasRelatedConcept ;
47
+ sh:class gloss:RelatedConcept ;
48
+ ] ;
49
+ sh:property [
50
+ sh:path gloss:hasDate ;
51
+ sh:class gloss:ConceptDate ;
52
+ ] ;
53
+ sh:property [
54
+ sh:path gloss:hasSource ;
55
+ sh:class gloss:ConceptSource ;
56
+ ] ;
57
+ sh:property [
58
+ sh:path gloss:hasDomain ;
59
+ sh:class gloss:Reference ;
60
+ ] ;
61
+ sh:property [
62
+ sh:path gloss:tag ;
63
+ sh:datatype xsd:string ;
64
+ ] .
65
+
66
+ gloss:LocalizedConceptShape a sh:NodeShape ;
67
+ sh:targetClass gloss:LocalizedConcept ;
68
+ sh:class skos:Concept ;
69
+ sh:property [
70
+ sh:path gloss:isLocalizationOf ;
71
+ sh:class gloss:Concept ;
72
+ sh:minCount 1 ;
73
+ sh:maxCount 1 ;
74
+ ] ;
75
+ sh:property [
76
+ sh:path gloss:language ;
77
+ sh:datatype xsd:string ;
78
+ sh:maxCount 1 ;
79
+ ] ;
80
+ sh:property [
81
+ sh:path gloss:hasDesignation ;
82
+ sh:class gloss:Designation ;
83
+ ] ;
84
+ sh:property [
85
+ sh:path gloss:hasDefinition ;
86
+ sh:class gloss:DetailedDefinition ;
87
+ ] ;
88
+ sh:property [
89
+ sh:path gloss:hasNote ;
90
+ sh:class gloss:DetailedDefinition ;
91
+ ] ;
92
+ sh:property [
93
+ sh:path gloss:hasExample ;
94
+ sh:class gloss:DetailedDefinition ;
95
+ ] ;
96
+ sh:property [
97
+ sh:path gloss:hasAnnotation ;
98
+ sh:class gloss:DetailedDefinition ;
99
+ ] ;
100
+ sh:property [
101
+ sh:path gloss:hasEntryStatus ;
102
+ sh:class skos:Concept ;
103
+ sh:valuesFrom <https://www.glossarist.org/ontologies/entstatus> ;
104
+ sh:maxCount 1 ;
105
+ ] ;
106
+ sh:property [
107
+ sh:path gloss:hasRelatedConcept ;
108
+ sh:class gloss:RelatedConcept ;
109
+ ] ;
110
+ sh:property [
111
+ sh:path gloss:hasDate ;
112
+ sh:class gloss:ConceptDate ;
113
+ ] ;
114
+ sh:property [
115
+ sh:path gloss:hasSource ;
116
+ sh:class gloss:ConceptSource ;
117
+ ] ;
118
+ sh:property [
119
+ sh:path gloss:hasReference ;
120
+ sh:class gloss:Reference ;
121
+ ] ;
122
+ sh:property [
123
+ sh:path gloss:classification ;
124
+ sh:datatype xsd:string ;
125
+ sh:maxCount 1 ;
126
+ ] ;
127
+ sh:property [
128
+ sh:path gloss:domain ;
129
+ sh:datatype xsd:anyURI ;
130
+ sh:maxCount 1 ;
131
+ ] ;
132
+ sh:property [
133
+ sh:path gloss:script ;
134
+ sh:datatype xsd:string ;
135
+ sh:maxCount 1 ;
136
+ ] ;
137
+ sh:property [
138
+ sh:path gloss:conversionSystem ;
139
+ sh:datatype xsd:string ;
140
+ sh:maxCount 1 ;
141
+ ] ;
142
+ sh:property [
143
+ sh:path gloss:release ;
144
+ sh:datatype xsd:string ;
145
+ sh:maxCount 1 ;
146
+ ] ;
147
+ sh:property [
148
+ sh:path gloss:lineageSimilarity ;
149
+ sh:datatype xsd:integer ;
150
+ sh:maxCount 1 ;
151
+ ] ;
152
+ sh:property [
153
+ sh:path gloss:reviewType ;
154
+ sh:datatype xsd:string ;
155
+ sh:maxCount 1 ;
156
+ sh:in ( "editorial" "substantive" ) ;
157
+ ] .
158
+
159
+ gloss:ConceptCollectionShape a sh:NodeShape ;
160
+ sh:targetClass gloss:ConceptCollection ;
161
+ sh:class skos:Collection ;
162
+ sh:property [
163
+ sh:path skos:member ;
164
+ sh:class gloss:Concept ;
165
+ ] ;
166
+ sh:property [
167
+ sh:path dcterms:title ;
168
+ sh:datatype xsd:string ;
169
+ sh:maxCount 1 ;
170
+ ] .
171
+
172
+ # ══════════════════════════════════════════════════════════════════════════
173
+ # Designation shapes
174
+ # ══════════════════════════════════════════════════════════════════════════
175
+
176
+ gloss:DesignationShape a sh:NodeShape ;
177
+ sh:targetClass gloss:Designation ;
178
+ sh:class xl:Label ;
179
+ sh:property [
180
+ sh:path xl:literalForm ;
181
+ sh:minCount 1 ;
182
+ sh:maxCount 1 ;
183
+ ] ;
184
+ sh:property [
185
+ sh:path gloss:normativeStatus ;
186
+ sh:class skos:Concept ;
187
+ sh:valuesFrom <https://www.glossarist.org/ontologies/norm> ;
188
+ sh:maxCount 1 ;
189
+ ] ;
190
+ sh:property [
191
+ sh:path gloss:hasTermType ;
192
+ sh:class skos:Concept ;
193
+ sh:valuesFrom <https://www.glossarist.org/ontologies/termtype> ;
194
+ sh:maxCount 1 ;
195
+ ] ;
196
+ sh:property [
197
+ sh:path gloss:hasDesignationRelationship ;
198
+ sh:class gloss:DesignationRelationship ;
199
+ ] ;
200
+ sh:property [
201
+ sh:path gloss:hasSource ;
202
+ sh:class gloss:ConceptSource ;
203
+ ] ;
204
+ sh:property [
205
+ sh:path gloss:hasPronunciation ;
206
+ sh:class gloss:Pronunciation ;
207
+ ] ;
208
+ sh:property [
209
+ sh:path gloss:language ;
210
+ sh:datatype xsd:string ;
211
+ sh:maxCount 1 ;
212
+ ] ;
213
+ sh:property [
214
+ sh:path gloss:script ;
215
+ sh:datatype xsd:string ;
216
+ sh:maxCount 1 ;
217
+ ] ;
218
+ sh:property [
219
+ sh:path gloss:conversionSystem ;
220
+ sh:datatype xsd:string ;
221
+ sh:maxCount 1 ;
222
+ ] ;
223
+ sh:property [
224
+ sh:path gloss:isInternational ;
225
+ sh:datatype xsd:boolean ;
226
+ sh:maxCount 1 ;
227
+ ] ;
228
+ sh:property [
229
+ sh:path gloss:isAbsent ;
230
+ sh:datatype xsd:boolean ;
231
+ sh:maxCount 1 ;
232
+ ] ;
233
+ sh:property [
234
+ sh:path gloss:register ;
235
+ sh:datatype xsd:string ;
236
+ sh:maxCount 1 ;
237
+ ] .
238
+
239
+ gloss:ExpressionShape a sh:NodeShape ;
240
+ sh:targetClass gloss:Expression ;
241
+ sh:property [
242
+ sh:path gloss:hasGrammarInfo ;
243
+ sh:class gloss:GrammarInfo ;
244
+ ] .
245
+
246
+ gloss:AbbreviationShape a sh:NodeShape ;
247
+ sh:targetClass gloss:Abbreviation ;
248
+ sh:property [
249
+ sh:path gloss:isAcronym ;
250
+ sh:datatype xsd:boolean ;
251
+ sh:maxCount 1 ;
252
+ ] ;
253
+ sh:property [
254
+ sh:path gloss:isInitialism ;
255
+ sh:datatype xsd:boolean ;
256
+ sh:maxCount 1 ;
257
+ ] ;
258
+ sh:property [
259
+ sh:path gloss:isTruncation ;
260
+ sh:datatype xsd:boolean ;
261
+ sh:maxCount 1 ;
262
+ ] .
263
+
264
+ gloss:SymbolShape a sh:NodeShape ;
265
+ sh:targetClass gloss:Symbol .
266
+
267
+ gloss:LetterSymbolShape a sh:NodeShape ;
268
+ sh:targetClass gloss:LetterSymbol ;
269
+ sh:property [
270
+ sh:path gloss:text ;
271
+ sh:datatype xsd:string ;
272
+ sh:maxCount 1 ;
273
+ ] .
274
+
275
+ gloss:GraphicalSymbolShape a sh:NodeShape ;
276
+ sh:targetClass gloss:GraphicalSymbol ;
277
+ sh:property [
278
+ sh:path gloss:text ;
279
+ sh:datatype xsd:string ;
280
+ sh:maxCount 1 ;
281
+ ] ;
282
+ sh:property [
283
+ sh:path gloss:image ;
284
+ sh:datatype xsd:anyURI ;
285
+ sh:maxCount 1 ;
286
+ ] .
287
+
288
+ gloss:PrefixShape a sh:NodeShape ;
289
+ sh:targetClass gloss:Prefix .
290
+
291
+ gloss:SuffixShape a sh:NodeShape ;
292
+ sh:targetClass gloss:Suffix .
293
+
294
+ gloss:DesignationRelationshipShape a sh:NodeShape ;
295
+ sh:targetClass gloss:DesignationRelationship ;
296
+ sh:property [
297
+ sh:path gloss:designationRelationshipType ;
298
+ sh:class skos:Concept ;
299
+ sh:minCount 1 ;
300
+ sh:maxCount 1 ;
301
+ ] ;
302
+ sh:property [
303
+ sh:path gloss:designationRelationshipContent ;
304
+ sh:datatype xsd:string ;
305
+ sh:maxCount 1 ;
306
+ ] ;
307
+ sh:property [
308
+ sh:path gloss:relationshipTarget ;
309
+ sh:datatype xsd:string ;
310
+ sh:maxCount 1 ;
311
+ ] .
312
+
313
+ # ══════════════════════════════════════════════════════════════════════════
314
+ # Supporting class shapes
315
+ # ══════════════════════════════════════════════════════════════════════════
316
+
317
+ gloss:PronunciationShape a sh:NodeShape ;
318
+ sh:targetClass gloss:Pronunciation ;
319
+ sh:property [
320
+ sh:path gloss:pronunciationContent ;
321
+ sh:datatype xsd:string ;
322
+ sh:minCount 1 ;
323
+ sh:maxCount 1 ;
324
+ ] ;
325
+ sh:property [
326
+ sh:path gloss:pronunciationLanguage ;
327
+ sh:datatype xsd:string ;
328
+ sh:maxCount 1 ;
329
+ ] ;
330
+ sh:property [
331
+ sh:path gloss:pronunciationScript ;
332
+ sh:datatype xsd:string ;
333
+ sh:maxCount 1 ;
334
+ ] ;
335
+ sh:property [
336
+ sh:path gloss:pronunciationCountry ;
337
+ sh:datatype xsd:string ;
338
+ sh:maxCount 1 ;
339
+ ] ;
340
+ sh:property [
341
+ sh:path gloss:pronunciationSystem ;
342
+ sh:datatype xsd:string ;
343
+ sh:maxCount 1 ;
344
+ ] .
345
+
346
+ gloss:DetailedDefinitionShape a sh:NodeShape ;
347
+ sh:targetClass gloss:DetailedDefinition ;
348
+ sh:property [
349
+ sh:path rdf:value ;
350
+ sh:minCount 1 ;
351
+ sh:maxCount 1 ;
352
+ ] ;
353
+ sh:property [
354
+ sh:path gloss:hasSource ;
355
+ sh:class gloss:ConceptSource ;
356
+ ] ;
357
+ sh:property [
358
+ sh:path gloss:hasScopedExample ;
359
+ sh:class gloss:DetailedDefinition ;
360
+ ] .
361
+
362
+ gloss:ConceptSourceShape a sh:NodeShape ;
363
+ sh:targetClass gloss:ConceptSource ;
364
+ sh:property [
365
+ sh:path gloss:sourceId ;
366
+ sh:datatype xsd:string ;
367
+ sh:maxCount 1 ;
368
+ ] ;
369
+ sh:property [
370
+ sh:path gloss:sourceType ;
371
+ sh:class skos:Concept ;
372
+ sh:valuesFrom <https://www.glossarist.org/ontologies/srctype> ;
373
+ sh:maxCount 1 ;
374
+ ] ;
375
+ sh:property [
376
+ sh:path gloss:sourceStatus ;
377
+ sh:class skos:Concept ;
378
+ sh:valuesFrom <https://www.glossarist.org/ontologies/srcstatus> ;
379
+ sh:maxCount 1 ;
380
+ ] ;
381
+ sh:property [
382
+ sh:path gloss:sourceOrigin ;
383
+ sh:class gloss:Citation ;
384
+ sh:maxCount 1 ;
385
+ ] ;
386
+ sh:property [
387
+ sh:path gloss:modification ;
388
+ sh:datatype xsd:string ;
389
+ sh:maxCount 1 ;
390
+ ] .
391
+
392
+ gloss:ConceptDateShape a sh:NodeShape ;
393
+ sh:targetClass gloss:ConceptDate ;
394
+ sh:property [
395
+ sh:path gloss:dateValue ;
396
+ sh:datatype xsd:dateTime ;
397
+ sh:minCount 1 ;
398
+ sh:maxCount 1 ;
399
+ ] ;
400
+ sh:property [
401
+ sh:path gloss:dateType ;
402
+ sh:class skos:Concept ;
403
+ sh:valuesFrom <https://www.glossarist.org/ontologies/datetype> ;
404
+ sh:minCount 1 ;
405
+ sh:maxCount 1 ;
406
+ ] ;
407
+ sh:property [
408
+ sh:path gloss:eventDescription ;
409
+ sh:datatype xsd:string ;
410
+ sh:maxCount 1 ;
411
+ ] .
412
+
413
+ gloss:NonVerbalRepresentationShape a sh:NodeShape ;
414
+ sh:targetClass gloss:NonVerbalRepresentation ;
415
+ sh:property [
416
+ sh:path gloss:representationType ;
417
+ sh:datatype xsd:string ;
418
+ sh:minCount 1 ;
419
+ sh:maxCount 1 ;
420
+ sh:in ( "image" "table" "formula" ) ;
421
+ ] ;
422
+ sh:property [
423
+ sh:path gloss:representationRef ;
424
+ sh:datatype xsd:anyURI ;
425
+ sh:minCount 1 ;
426
+ sh:maxCount 1 ;
427
+ ] ;
428
+ sh:property [
429
+ sh:path gloss:hasSource ;
430
+ sh:class gloss:ConceptSource ;
431
+ ] .
432
+
433
+ gloss:ReferenceShape a sh:NodeShape ;
434
+ sh:targetClass gloss:Reference ;
435
+ sh:or (
436
+ [ sh:property [ sh:path gloss:source ; sh:minCount 1 ] ]
437
+ [ sh:property [ sh:path gloss:refId ; sh:minCount 1 ] ]
438
+ ) ;
439
+ sh:property [
440
+ sh:path gloss:source ;
441
+ sh:datatype xsd:string ;
442
+ sh:maxCount 1 ;
443
+ ] ;
444
+ sh:property [
445
+ sh:path gloss:refId ;
446
+ sh:datatype xsd:string ;
447
+ sh:maxCount 1 ;
448
+ ] ;
449
+ sh:property [
450
+ sh:path gloss:refVersion ;
451
+ sh:datatype xsd:string ;
452
+ sh:maxCount 1 ;
453
+ ] ;
454
+ sh:property [
455
+ sh:path gloss:refLink ;
456
+ sh:datatype xsd:anyURI ;
457
+ sh:maxCount 1 ;
458
+ ] ;
459
+ sh:property [
460
+ sh:path gloss:refType ;
461
+ sh:datatype xsd:string ;
462
+ sh:maxCount 1 ;
463
+ ] ;
464
+ sh:property [
465
+ sh:path gloss:urn ;
466
+ sh:datatype xsd:anyURI ;
467
+ sh:maxCount 1 ;
468
+ ] ;
469
+ sh:property [
470
+ sh:path gloss:term ;
471
+ sh:datatype xsd:string ;
472
+ sh:maxCount 1 ;
473
+ ] ;
474
+ sh:property [
475
+ sh:path gloss:hasLocality ;
476
+ sh:class gloss:Locality ;
477
+ sh:maxCount 1 ;
478
+ ] .
479
+
480
+ gloss:LocalityShape a sh:NodeShape ;
481
+ sh:targetClass gloss:Locality ;
482
+ sh:property [
483
+ sh:path gloss:localityType ;
484
+ sh:datatype xsd:string ;
485
+ sh:minCount 1 ;
486
+ sh:maxCount 1 ;
487
+ ] ;
488
+ sh:property [
489
+ sh:path gloss:referenceFrom ;
490
+ sh:datatype xsd:string ;
491
+ sh:maxCount 1 ;
492
+ ] ;
493
+ sh:property [
494
+ sh:path gloss:referenceTo ;
495
+ sh:datatype xsd:string ;
496
+ sh:maxCount 1 ;
497
+ ] .
498
+
499
+ gloss:CitationShape a sh:NodeShape ;
500
+ sh:targetClass gloss:Citation ;
501
+ sh:property [
502
+ sh:path gloss:hasCitationRef ;
503
+ sh:class gloss:CitationRef ;
504
+ sh:maxCount 1 ;
505
+ ] ;
506
+ sh:property [
507
+ sh:path gloss:hasCitationLocality ;
508
+ sh:class gloss:Locality ;
509
+ sh:maxCount 1 ;
510
+ ] ;
511
+ sh:property [
512
+ sh:path gloss:citationLink ;
513
+ sh:datatype xsd:anyURI ;
514
+ sh:maxCount 1 ;
515
+ ] ;
516
+ sh:property [
517
+ sh:path gloss:citationOriginal ;
518
+ sh:datatype xsd:string ;
519
+ sh:maxCount 1 ;
520
+ ] ;
521
+ sh:property [
522
+ sh:path gloss:hasCustomLocality ;
523
+ sh:class gloss:CustomLocality ;
524
+ ] .
525
+
526
+ gloss:CitationRefShape a sh:NodeShape ;
527
+ sh:targetClass gloss:CitationRef ;
528
+ sh:property [
529
+ sh:path gloss:citationRefSource ;
530
+ sh:datatype xsd:string ;
531
+ sh:maxCount 1 ;
532
+ ] ;
533
+ sh:property [
534
+ sh:path gloss:citationRefId ;
535
+ sh:datatype xsd:string ;
536
+ sh:maxCount 1 ;
537
+ ] ;
538
+ sh:property [
539
+ sh:path gloss:citationRefVersion ;
540
+ sh:datatype xsd:string ;
541
+ sh:maxCount 1 ;
542
+ ] .
543
+
544
+ gloss:ConceptRefShape a sh:NodeShape ;
545
+ sh:targetClass gloss:ConceptRef ;
546
+ sh:property [
547
+ sh:path gloss:conceptRefSource ;
548
+ sh:datatype xsd:string ;
549
+ sh:maxCount 1 ;
550
+ ] ;
551
+ sh:property [
552
+ sh:path gloss:conceptRefId ;
553
+ sh:datatype xsd:string ;
554
+ sh:maxCount 1 ;
555
+ ] ;
556
+ sh:property [
557
+ sh:path gloss:conceptRefText ;
558
+ sh:datatype xsd:string ;
559
+ sh:maxCount 1 ;
560
+ ] .
561
+
562
+ gloss:CustomLocalityShape a sh:NodeShape ;
563
+ sh:targetClass gloss:CustomLocality ;
564
+ sh:property [
565
+ sh:path gloss:customLocalityName ;
566
+ sh:datatype xsd:string ;
567
+ sh:minCount 1 ;
568
+ sh:maxCount 1 ;
569
+ ] ;
570
+ sh:property [
571
+ sh:path gloss:customLocalityValue ;
572
+ sh:datatype xsd:string ;
573
+ sh:minCount 1 ;
574
+ sh:maxCount 1 ;
575
+ ] .
576
+
577
+ gloss:RelatedConceptShape a sh:NodeShape ;
578
+ sh:targetClass gloss:RelatedConcept ;
579
+ sh:property [
580
+ sh:path gloss:relationshipType ;
581
+ sh:class skos:Concept ;
582
+ sh:minCount 1 ;
583
+ sh:maxCount 1 ;
584
+ ] ;
585
+ sh:property [
586
+ sh:path gloss:relationshipRef ;
587
+ sh:class gloss:ConceptRef ;
588
+ sh:maxCount 1 ;
589
+ ] ;
590
+ sh:property [
591
+ sh:path gloss:relationshipContent ;
592
+ sh:datatype xsd:string ;
593
+ sh:maxCount 1 ;
594
+ ] .
595
+
596
+ gloss:GrammarInfoShape a sh:NodeShape ;
597
+ sh:targetClass gloss:GrammarInfo ;
598
+ sh:property [
599
+ sh:path gloss:gender ;
600
+ sh:class skos:Concept ;
601
+ sh:valuesFrom <https://www.glossarist.org/ontologies/gender> ;
602
+ ] ;
603
+ sh:property [
604
+ sh:path gloss:number ;
605
+ sh:class skos:Concept ;
606
+ sh:valuesFrom <https://www.glossarist.org/ontologies/number> ;
607
+ ] ;
608
+ sh:property [
609
+ sh:path gloss:partOfSpeech ;
610
+ sh:datatype xsd:string ;
611
+ sh:maxCount 1 ;
612
+ ] .
613
+
614
+ # ══════════════════════════════════════════════════════════════════════════
615
+ # Dataset Register shapes
616
+ # ══════════════════════════════════════════════════════════════════════════
617
+
618
+ gloss:DatasetRegisterShape a sh:NodeShape ;
619
+ sh:targetClass gloss:DatasetRegister ;
620
+ sh:property [
621
+ sh:path gloss:datasetId ;
622
+ sh:datatype xsd:string ;
623
+ sh:minCount 1 ;
624
+ sh:maxCount 1 ;
625
+ ] ;
626
+ sh:property [
627
+ sh:path gloss:datasetUrn ;
628
+ sh:datatype xsd:anyURI ;
629
+ sh:minCount 1 ;
630
+ sh:maxCount 1 ;
631
+ ] ;
632
+ sh:property [
633
+ sh:path gloss:datasetRef ;
634
+ sh:datatype xsd:string ;
635
+ sh:maxCount 1 ;
636
+ ] ;
637
+ sh:property [
638
+ sh:path gloss:datasetYear ;
639
+ sh:datatype xsd:integer ;
640
+ sh:maxCount 1 ;
641
+ ] ;
642
+ sh:property [
643
+ sh:path gloss:datasetStatus ;
644
+ sh:datatype xsd:string ;
645
+ sh:in ( "current" "superseded" "retired" ) ;
646
+ sh:maxCount 1 ;
647
+ ] ;
648
+ sh:property [
649
+ sh:path gloss:supersedesDataset ;
650
+ sh:datatype xsd:string ;
651
+ sh:maxCount 1 ;
652
+ ] ;
653
+ sh:property [
654
+ sh:path gloss:owner ;
655
+ sh:datatype xsd:string ;
656
+ sh:maxCount 1 ;
657
+ ] ;
658
+ sh:property [
659
+ sh:path gloss:sourceRepo ;
660
+ sh:datatype xsd:anyURI ;
661
+ sh:maxCount 1 ;
662
+ ] ;
663
+ sh:property [
664
+ sh:path gloss:datasetLanguage ;
665
+ sh:datatype xsd:string ;
666
+ ] ;
667
+ sh:property [
668
+ sh:path gloss:hasSection ;
669
+ sh:class gloss:Section ;
670
+ ] ;
671
+ sh:property [
672
+ sh:path gloss:hasDefaultOrdering ;
673
+ sh:class skos:Concept ;
674
+ sh:valuesFrom <https://www.glossarist.org/ontologies/orderingmethod> ;
675
+ sh:maxCount 1 ;
676
+ ] ;
677
+ sh:property [
678
+ sh:path gloss:logo ;
679
+ sh:datatype xsd:anyURI ;
680
+ sh:maxCount 1 ;
681
+ ] .
682
+
683
+ gloss:SectionShape a sh:NodeShape ;
684
+ sh:targetClass gloss:Section ;
685
+ sh:property [
686
+ sh:path gloss:sectionId ;
687
+ sh:datatype xsd:string ;
688
+ sh:minCount 1 ;
689
+ sh:maxCount 1 ;
690
+ ] ;
691
+ sh:property [
692
+ sh:path gloss:sectionName ;
693
+ sh:datatype xsd:string ;
694
+ ] ;
695
+ sh:property [
696
+ sh:path gloss:hasChildSection ;
697
+ sh:class gloss:Section ;
698
+ ] ;
699
+ sh:property [
700
+ sh:path gloss:sectionOrdering ;
701
+ sh:class skos:Concept ;
702
+ sh:valuesFrom <https://www.glossarist.org/ontologies/orderingmethod> ;
703
+ sh:maxCount 1 ;
704
+ ] .