@glossarist/concept-browser 0.7.57 → 0.7.59

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.
@@ -0,0 +1,815 @@
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 skosxl: <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
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
17
+ @prefix prov: <http://www.w3.org/ns/prov#> .
18
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
19
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
20
+
21
+ # ══════════════════════════════════════════════════════════════════════════
22
+ # Concept shapes
23
+ # ══════════════════════════════════════════════════════════════════════════
24
+
25
+ gloss:ConceptShape a sh:NodeShape ;
26
+ sh:targetClass gloss:Concept ;
27
+ sh:class skos:Concept ;
28
+ sh:property [
29
+ sh:path gloss:identifier ;
30
+ sh:datatype xsd:string ;
31
+ sh:minCount 1 ;
32
+ sh:maxCount 1 ;
33
+ ] ;
34
+ sh:property [
35
+ sh:path gloss:uri ;
36
+ sh:datatype xsd:anyURI ;
37
+ sh:maxCount 1 ;
38
+ ] ;
39
+ sh:property [
40
+ sh:path gloss:hasLocalization ;
41
+ sh:class gloss:LocalizedConcept ;
42
+ ] ;
43
+ sh:property [
44
+ sh:path gloss:hasStatus ;
45
+ sh:class skos:Concept ;
46
+ sh:valuesFrom <https://www.glossarist.org/ontologies/conceptstatus> ;
47
+ sh:maxCount 1 ;
48
+ ] ;
49
+ sh:property [
50
+ sh:path gloss:hasRelatedConcept ;
51
+ sh:class gloss:RelatedConcept ;
52
+ ] ;
53
+ sh:property [
54
+ sh:path gloss:hasDate ;
55
+ sh:class gloss:ConceptDate ;
56
+ ] ;
57
+ sh:property [
58
+ sh:path gloss:hasSource ;
59
+ sh:class gloss:ConceptSource ;
60
+ ] ;
61
+ sh:property [
62
+ sh:path gloss:hasDomain ;
63
+ sh:class gloss:Reference ;
64
+ ] ;
65
+ sh:property [
66
+ sh:path gloss:tag ;
67
+ sh:datatype xsd:string ;
68
+ ] .
69
+
70
+ gloss:LocalizedConceptShape a sh:NodeShape ;
71
+ sh:targetClass gloss:LocalizedConcept ;
72
+ sh:class skos:Concept ;
73
+ sh:property [
74
+ sh:path gloss:isLocalizationOf ;
75
+ sh:class gloss:Concept ;
76
+ sh:minCount 1 ;
77
+ sh:maxCount 1 ;
78
+ ] ;
79
+ sh:property [
80
+ sh:path gloss:language ;
81
+ sh:datatype xsd:string ;
82
+ sh:maxCount 1 ;
83
+ ] ;
84
+ sh:property [
85
+ sh:path gloss:hasDesignation ;
86
+ sh:class gloss:Designation ;
87
+ ] ;
88
+ sh:property [
89
+ sh:path gloss:hasDefinition ;
90
+ sh:class gloss:DetailedDefinition ;
91
+ ] ;
92
+ sh:property [
93
+ sh:path gloss:hasNote ;
94
+ sh:class gloss:DetailedDefinition ;
95
+ ] ;
96
+ sh:property [
97
+ sh:path gloss:hasExample ;
98
+ sh:class gloss:DetailedDefinition ;
99
+ ] ;
100
+ sh:property [
101
+ sh:path gloss:hasAnnotation ;
102
+ sh:class gloss:DetailedDefinition ;
103
+ ] ;
104
+ sh:property [
105
+ sh:path gloss:hasEntryStatus ;
106
+ sh:class skos:Concept ;
107
+ sh:valuesFrom <https://www.glossarist.org/ontologies/entstatus> ;
108
+ sh:maxCount 1 ;
109
+ ] ;
110
+ sh:property [
111
+ sh:path gloss:hasRelatedConcept ;
112
+ sh:class gloss:RelatedConcept ;
113
+ ] ;
114
+ sh:property [
115
+ sh:path gloss:hasDate ;
116
+ sh:class gloss:ConceptDate ;
117
+ ] ;
118
+ sh:property [
119
+ sh:path gloss:hasSource ;
120
+ sh:class gloss:ConceptSource ;
121
+ ] ;
122
+ sh:property [
123
+ sh:path gloss:hasReference ;
124
+ sh:class gloss:Reference ;
125
+ ] ;
126
+ sh:property [
127
+ sh:path gloss:classification ;
128
+ sh:datatype xsd:string ;
129
+ sh:maxCount 1 ;
130
+ ] ;
131
+ sh:property [
132
+ sh:path gloss:domain ;
133
+ sh:datatype xsd:anyURI ;
134
+ sh:maxCount 1 ;
135
+ ] ;
136
+ sh:property [
137
+ sh:path gloss:script ;
138
+ sh:datatype xsd:string ;
139
+ sh:maxCount 1 ;
140
+ ] ;
141
+ sh:property [
142
+ sh:path gloss:conversionSystem ;
143
+ sh:datatype xsd:string ;
144
+ sh:maxCount 1 ;
145
+ ] ;
146
+ sh:property [
147
+ sh:path gloss:release ;
148
+ sh:datatype xsd:string ;
149
+ sh:maxCount 1 ;
150
+ ] ;
151
+ sh:property [
152
+ sh:path gloss:lineageSimilarity ;
153
+ sh:datatype xsd:integer ;
154
+ sh:maxCount 1 ;
155
+ ] ;
156
+ sh:property [
157
+ sh:path gloss:reviewType ;
158
+ sh:datatype xsd:string ;
159
+ sh:maxCount 1 ;
160
+ sh:in ( "editorial" "substantive" ) ;
161
+ ] .
162
+
163
+ gloss:ConceptCollectionShape a sh:NodeShape ;
164
+ sh:targetClass gloss:ConceptCollection ;
165
+ sh:class skos:Collection ;
166
+ sh:property [
167
+ sh:path skos:member ;
168
+ sh:class gloss:Concept ;
169
+ ] ;
170
+ sh:property [
171
+ sh:path dcterms:title ;
172
+ sh:datatype xsd:string ;
173
+ sh:maxCount 1 ;
174
+ ] .
175
+
176
+ # ══════════════════════════════════════════════════════════════════════════
177
+ # Designation shapes
178
+ # ══════════════════════════════════════════════════════════════════════════
179
+
180
+ gloss:DesignationShape a sh:NodeShape ;
181
+ sh:targetClass gloss:Designation ;
182
+ sh:class skosxl:Label ;
183
+ sh:property [
184
+ sh:path skosxl:literalForm ;
185
+ sh:minCount 1 ;
186
+ sh:maxCount 1 ;
187
+ ] ;
188
+ sh:property [
189
+ sh:path gloss:normativeStatus ;
190
+ sh:class skos:Concept ;
191
+ sh:valuesFrom <https://www.glossarist.org/ontologies/norm> ;
192
+ sh:maxCount 1 ;
193
+ ] ;
194
+ sh:property [
195
+ sh:path gloss:hasTermType ;
196
+ sh:class skos:Concept ;
197
+ sh:valuesFrom <https://www.glossarist.org/ontologies/termtype> ;
198
+ sh:maxCount 1 ;
199
+ ] ;
200
+ sh:property [
201
+ sh:path gloss:hasDesignationRelationship ;
202
+ sh:class gloss:DesignationRelationship ;
203
+ ] ;
204
+ sh:property [
205
+ sh:path gloss:hasSource ;
206
+ sh:class gloss:ConceptSource ;
207
+ ] ;
208
+ sh:property [
209
+ sh:path gloss:hasPronunciation ;
210
+ sh:class gloss:Pronunciation ;
211
+ ] ;
212
+ sh:property [
213
+ sh:path gloss:language ;
214
+ sh:datatype xsd:string ;
215
+ sh:maxCount 1 ;
216
+ ] ;
217
+ sh:property [
218
+ sh:path gloss:script ;
219
+ sh:datatype xsd:string ;
220
+ sh:maxCount 1 ;
221
+ ] ;
222
+ sh:property [
223
+ sh:path gloss:conversionSystem ;
224
+ sh:datatype xsd:string ;
225
+ sh:maxCount 1 ;
226
+ ] ;
227
+ sh:property [
228
+ sh:path gloss:isInternational ;
229
+ sh:datatype xsd:boolean ;
230
+ sh:maxCount 1 ;
231
+ ] ;
232
+ sh:property [
233
+ sh:path gloss:isAbsent ;
234
+ sh:datatype xsd:boolean ;
235
+ sh:maxCount 1 ;
236
+ ] ;
237
+ sh:property [
238
+ sh:path gloss:register ;
239
+ sh:datatype xsd:string ;
240
+ sh:maxCount 1 ;
241
+ ] .
242
+
243
+ gloss:ExpressionShape a sh:NodeShape ;
244
+ sh:targetClass gloss:Expression ;
245
+ sh:property [
246
+ sh:path gloss:hasGrammarInfo ;
247
+ sh:class gloss:GrammarInfo ;
248
+ ] .
249
+
250
+ gloss:AbbreviationShape a sh:NodeShape ;
251
+ sh:targetClass gloss:Abbreviation ;
252
+ sh:property [
253
+ sh:path gloss:isAcronym ;
254
+ sh:datatype xsd:boolean ;
255
+ sh:maxCount 1 ;
256
+ ] ;
257
+ sh:property [
258
+ sh:path gloss:isInitialism ;
259
+ sh:datatype xsd:boolean ;
260
+ sh:maxCount 1 ;
261
+ ] ;
262
+ sh:property [
263
+ sh:path gloss:isTruncation ;
264
+ sh:datatype xsd:boolean ;
265
+ sh:maxCount 1 ;
266
+ ] .
267
+
268
+ gloss:SymbolShape a sh:NodeShape ;
269
+ sh:targetClass gloss:Symbol .
270
+
271
+ gloss:LetterSymbolShape a sh:NodeShape ;
272
+ sh:targetClass gloss:LetterSymbol ;
273
+ sh:property [
274
+ sh:path gloss:text ;
275
+ sh:datatype xsd:string ;
276
+ sh:maxCount 1 ;
277
+ ] .
278
+
279
+ gloss:GraphicalSymbolShape a sh:NodeShape ;
280
+ sh:targetClass gloss:GraphicalSymbol ;
281
+ sh:property [
282
+ sh:path gloss:text ;
283
+ sh:datatype xsd:string ;
284
+ sh:maxCount 1 ;
285
+ ] ;
286
+ sh:property [
287
+ sh:path gloss:image ;
288
+ sh:datatype xsd:anyURI ;
289
+ sh:maxCount 1 ;
290
+ ] .
291
+
292
+ gloss:PrefixShape a sh:NodeShape ;
293
+ sh:targetClass gloss:Prefix .
294
+
295
+ gloss:SuffixShape a sh:NodeShape ;
296
+ sh:targetClass gloss:Suffix .
297
+
298
+ gloss:DesignationRelationshipShape a sh:NodeShape ;
299
+ sh:targetClass gloss:DesignationRelationship ;
300
+ sh:property [
301
+ sh:path gloss:designationRelationshipType ;
302
+ sh:class skos:Concept ;
303
+ sh:minCount 1 ;
304
+ sh:maxCount 1 ;
305
+ ] ;
306
+ sh:property [
307
+ sh:path gloss:designationRelationshipContent ;
308
+ sh:datatype xsd:string ;
309
+ sh:maxCount 1 ;
310
+ ] ;
311
+ sh:property [
312
+ sh:path gloss:relationshipTarget ;
313
+ sh:datatype xsd:string ;
314
+ sh:maxCount 1 ;
315
+ ] .
316
+
317
+ # ══════════════════════════════════════════════════════════════════════════
318
+ # Supporting class shapes
319
+ # ══════════════════════════════════════════════════════════════════════════
320
+
321
+ gloss:PronunciationShape a sh:NodeShape ;
322
+ sh:targetClass gloss:Pronunciation ;
323
+ sh:property [
324
+ sh:path gloss:pronunciationContent ;
325
+ sh:datatype xsd:string ;
326
+ sh:minCount 1 ;
327
+ sh:maxCount 1 ;
328
+ ] ;
329
+ sh:property [
330
+ sh:path gloss:pronunciationLanguage ;
331
+ sh:datatype xsd:string ;
332
+ sh:maxCount 1 ;
333
+ ] ;
334
+ sh:property [
335
+ sh:path gloss:pronunciationScript ;
336
+ sh:datatype xsd:string ;
337
+ sh:maxCount 1 ;
338
+ ] ;
339
+ sh:property [
340
+ sh:path gloss:pronunciationCountry ;
341
+ sh:datatype xsd:string ;
342
+ sh:maxCount 1 ;
343
+ ] ;
344
+ sh:property [
345
+ sh:path gloss:pronunciationSystem ;
346
+ sh:datatype xsd:string ;
347
+ sh:maxCount 1 ;
348
+ ] .
349
+
350
+ gloss:DetailedDefinitionShape a sh:NodeShape ;
351
+ sh:targetClass gloss:DetailedDefinition ;
352
+ sh:property [
353
+ sh:path rdf:value ;
354
+ sh:minCount 1 ;
355
+ sh:maxCount 1 ;
356
+ ] ;
357
+ sh:property [
358
+ sh:path gloss:hasSource ;
359
+ sh:class gloss:ConceptSource ;
360
+ ] ;
361
+ sh:property [
362
+ sh:path gloss:hasScopedExample ;
363
+ sh:class gloss:DetailedDefinition ;
364
+ ] .
365
+
366
+ gloss:ConceptSourceShape a sh:NodeShape ;
367
+ sh:targetClass gloss:ConceptSource ;
368
+ sh:property [
369
+ sh:path gloss:sourceId ;
370
+ sh:datatype xsd:string ;
371
+ sh:maxCount 1 ;
372
+ ] ;
373
+ sh:property [
374
+ sh:path gloss:sourceType ;
375
+ sh:class skos:Concept ;
376
+ sh:valuesFrom <https://www.glossarist.org/ontologies/srctype> ;
377
+ sh:maxCount 1 ;
378
+ ] ;
379
+ sh:property [
380
+ sh:path gloss:sourceStatus ;
381
+ sh:class skos:Concept ;
382
+ sh:valuesFrom <https://www.glossarist.org/ontologies/srcstatus> ;
383
+ sh:maxCount 1 ;
384
+ ] ;
385
+ sh:property [
386
+ sh:path gloss:sourceOrigin ;
387
+ sh:class gloss:Citation ;
388
+ sh:maxCount 1 ;
389
+ ] ;
390
+ sh:property [
391
+ sh:path gloss:modification ;
392
+ sh:datatype xsd:string ;
393
+ sh:maxCount 1 ;
394
+ ] .
395
+
396
+ gloss:ConceptDateShape a sh:NodeShape ;
397
+ sh:targetClass gloss:ConceptDate ;
398
+ sh:property [
399
+ sh:path gloss:dateValue ;
400
+ sh:datatype xsd:dateTime ;
401
+ sh:minCount 1 ;
402
+ sh:maxCount 1 ;
403
+ ] ;
404
+ sh:property [
405
+ sh:path gloss:dateType ;
406
+ sh:class skos:Concept ;
407
+ sh:valuesFrom <https://www.glossarist.org/ontologies/datetype> ;
408
+ sh:minCount 1 ;
409
+ sh:maxCount 1 ;
410
+ ] ;
411
+ sh:property [
412
+ sh:path gloss:eventDescription ;
413
+ sh:datatype xsd:string ;
414
+ sh:maxCount 1 ;
415
+ ] .
416
+
417
+ gloss:NonVerbalRepresentationShape a sh:NodeShape ;
418
+ sh:targetClass gloss:NonVerbalRepresentation ;
419
+ sh:property [
420
+ sh:path gloss:representationType ;
421
+ sh:datatype xsd:string ;
422
+ sh:minCount 1 ;
423
+ sh:maxCount 1 ;
424
+ sh:in ( "image" "table" "formula" ) ;
425
+ ] ;
426
+ sh:property [
427
+ sh:path gloss:representationRef ;
428
+ sh:datatype xsd:anyURI ;
429
+ sh:minCount 1 ;
430
+ sh:maxCount 1 ;
431
+ ] ;
432
+ sh:property [
433
+ sh:path gloss:hasSource ;
434
+ sh:class gloss:ConceptSource ;
435
+ ] .
436
+
437
+ # === K1: Non-verbal entity shapes ===
438
+ # Class declarations (NonVerbalEntity, Figure, Table, Formula, SharedNonVerbalEntity)
439
+ # live in glossarist.ttl — this file contains validation shapes only.
440
+
441
+ gloss:FigureShape a sh:NodeShape ;
442
+ sh:targetClass gloss:Figure ;
443
+ sh:property [
444
+ sh:path gloss:image ;
445
+ sh:datatype xsd:anyURI ;
446
+ sh:minCount 1 ;
447
+ ] ;
448
+ sh:property [
449
+ sh:path gloss:caption ;
450
+ sh:datatype xsd:string ;
451
+ sh:maxCount 1 ;
452
+ ] ;
453
+ sh:property [
454
+ sh:path dcterms:description ;
455
+ sh:datatype xsd:string ;
456
+ sh:maxCount 1 ;
457
+ ] .
458
+
459
+ gloss:TableShape a sh:NodeShape ;
460
+ sh:targetClass gloss:Table ;
461
+ sh:property [
462
+ sh:path gloss:content ;
463
+ sh:datatype xsd:string ;
464
+ sh:minCount 1 ;
465
+ ] ;
466
+ sh:property [
467
+ sh:path gloss:caption ;
468
+ sh:datatype xsd:string ;
469
+ sh:maxCount 1 ;
470
+ ] ;
471
+ sh:property [
472
+ sh:path dcterms:title ;
473
+ sh:datatype xsd:string ;
474
+ sh:maxCount 1 ;
475
+ ] .
476
+
477
+ gloss:FormulaShape a sh:NodeShape ;
478
+ sh:targetClass gloss:Formula ;
479
+ sh:property [
480
+ sh:path gloss:expression ;
481
+ sh:datatype xsd:string ;
482
+ sh:minCount 1 ;
483
+ ] ;
484
+ sh:property [
485
+ sh:path gloss:latexForm ;
486
+ sh:datatype xsd:string ;
487
+ sh:maxCount 1 ;
488
+ ] ;
489
+ sh:property [
490
+ sh:path dcterms:description ;
491
+ sh:datatype xsd:string ;
492
+ sh:maxCount 1 ;
493
+ ] .
494
+
495
+ # === K2: Image binary references ===
496
+
497
+ gloss:ImageShape a sh:NodeShape ;
498
+ sh:targetClass foaf:Image ;
499
+ sh:property [
500
+ sh:path dcterms:format ;
501
+ sh:datatype xsd:string ;
502
+ sh:minCount 1 ;
503
+ ] ;
504
+ sh:property [
505
+ sh:path dcterms:language ;
506
+ sh:datatype xsd:string ;
507
+ sh:maxCount 1 ;
508
+ ] ;
509
+ sh:property [
510
+ sh:path dcat:byteSize ;
511
+ sh:datatype xsd:integer ;
512
+ sh:maxCount 1 ;
513
+ ] .
514
+
515
+ # === K4: NonVerbalRepresentation (concept-level NVR) ===
516
+ # Class declaration lives in glossarist.ttl as gloss:NonVerbalRepresentation.
517
+
518
+ gloss:NonVerbalRepresentationShape a sh:NodeShape ;
519
+ sh:targetClass gloss:NonVerbalRepresentation ;
520
+ sh:property [
521
+ sh:path skosxl:prefLabel ;
522
+ sh:minCount 1 ;
523
+ ] ;
524
+ sh:property [
525
+ sh:path gloss:image ;
526
+ sh:datatype xsd:anyURI ;
527
+ sh:maxCount 1 ;
528
+ ] ;
529
+ sh:property [
530
+ sh:path dcterms:description ;
531
+ sh:maxCount 1 ;
532
+ ] ;
533
+ sh:property [
534
+ sh:path prov:wasDerivedFrom ;
535
+ sh:class prov:Entity ;
536
+ sh:maxCount 1 ;
537
+ ] .
538
+
539
+ gloss:ReferenceShape a sh:NodeShape ;
540
+ sh:targetClass gloss:Reference ;
541
+ sh:or (
542
+ [ sh:property [ sh:path gloss:source ; sh:minCount 1 ] ]
543
+ [ sh:property [ sh:path gloss:refId ; sh:minCount 1 ] ]
544
+ ) ;
545
+ sh:property [
546
+ sh:path gloss:source ;
547
+ sh:datatype xsd:string ;
548
+ sh:maxCount 1 ;
549
+ ] ;
550
+ sh:property [
551
+ sh:path gloss:refId ;
552
+ sh:datatype xsd:string ;
553
+ sh:maxCount 1 ;
554
+ ] ;
555
+ sh:property [
556
+ sh:path gloss:refVersion ;
557
+ sh:datatype xsd:string ;
558
+ sh:maxCount 1 ;
559
+ ] ;
560
+ sh:property [
561
+ sh:path gloss:refLink ;
562
+ sh:datatype xsd:anyURI ;
563
+ sh:maxCount 1 ;
564
+ ] ;
565
+ sh:property [
566
+ sh:path gloss:refType ;
567
+ sh:datatype xsd:string ;
568
+ sh:maxCount 1 ;
569
+ ] ;
570
+ sh:property [
571
+ sh:path gloss:urn ;
572
+ sh:datatype xsd:anyURI ;
573
+ sh:maxCount 1 ;
574
+ ] ;
575
+ sh:property [
576
+ sh:path gloss:term ;
577
+ sh:datatype xsd:string ;
578
+ sh:maxCount 1 ;
579
+ ] ;
580
+ sh:property [
581
+ sh:path gloss:hasLocality ;
582
+ sh:class gloss:Locality ;
583
+ sh:maxCount 1 ;
584
+ ] .
585
+
586
+ gloss:LocalityShape a sh:NodeShape ;
587
+ sh:targetClass gloss:Locality ;
588
+ sh:property [
589
+ sh:path gloss:localityType ;
590
+ sh:datatype xsd:string ;
591
+ sh:minCount 1 ;
592
+ sh:maxCount 1 ;
593
+ ] ;
594
+ sh:property [
595
+ sh:path gloss:referenceFrom ;
596
+ sh:datatype xsd:string ;
597
+ sh:maxCount 1 ;
598
+ ] ;
599
+ sh:property [
600
+ sh:path gloss:referenceTo ;
601
+ sh:datatype xsd:string ;
602
+ sh:maxCount 1 ;
603
+ ] .
604
+
605
+ gloss:CitationShape a sh:NodeShape ;
606
+ sh:targetClass gloss:Citation ;
607
+ sh:property [
608
+ sh:path gloss:hasCitationRef ;
609
+ sh:class gloss:CitationRef ;
610
+ sh:maxCount 1 ;
611
+ ] ;
612
+ sh:property [
613
+ sh:path gloss:hasCitationLocality ;
614
+ sh:class gloss:Locality ;
615
+ sh:maxCount 1 ;
616
+ ] ;
617
+ sh:property [
618
+ sh:path gloss:citationLink ;
619
+ sh:datatype xsd:anyURI ;
620
+ sh:maxCount 1 ;
621
+ ] ;
622
+ sh:property [
623
+ sh:path gloss:citationOriginal ;
624
+ sh:datatype xsd:string ;
625
+ sh:maxCount 1 ;
626
+ ] ;
627
+ sh:property [
628
+ sh:path gloss:hasCustomLocality ;
629
+ sh:class gloss:CustomLocality ;
630
+ ] .
631
+
632
+ gloss:CitationRefShape a sh:NodeShape ;
633
+ sh:targetClass gloss:CitationRef ;
634
+ sh:property [
635
+ sh:path gloss:citationRefSource ;
636
+ sh:datatype xsd:string ;
637
+ sh:maxCount 1 ;
638
+ ] ;
639
+ sh:property [
640
+ sh:path gloss:citationRefId ;
641
+ sh:datatype xsd:string ;
642
+ sh:maxCount 1 ;
643
+ ] ;
644
+ sh:property [
645
+ sh:path gloss:citationRefVersion ;
646
+ sh:datatype xsd:string ;
647
+ sh:maxCount 1 ;
648
+ ] .
649
+
650
+ gloss:ConceptRefShape a sh:NodeShape ;
651
+ sh:targetClass gloss:ConceptRef ;
652
+ sh:property [
653
+ sh:path gloss:conceptRefSource ;
654
+ sh:datatype xsd:string ;
655
+ sh:maxCount 1 ;
656
+ ] ;
657
+ sh:property [
658
+ sh:path gloss:conceptRefId ;
659
+ sh:datatype xsd:string ;
660
+ sh:maxCount 1 ;
661
+ ] ;
662
+ sh:property [
663
+ sh:path gloss:conceptRefText ;
664
+ sh:datatype xsd:string ;
665
+ sh:maxCount 1 ;
666
+ ] .
667
+
668
+ gloss:CustomLocalityShape a sh:NodeShape ;
669
+ sh:targetClass gloss:CustomLocality ;
670
+ sh:property [
671
+ sh:path gloss:customLocalityName ;
672
+ sh:datatype xsd:string ;
673
+ sh:minCount 1 ;
674
+ sh:maxCount 1 ;
675
+ ] ;
676
+ sh:property [
677
+ sh:path gloss:customLocalityValue ;
678
+ sh:datatype xsd:string ;
679
+ sh:minCount 1 ;
680
+ sh:maxCount 1 ;
681
+ ] .
682
+
683
+ gloss:RelatedConceptShape a sh:NodeShape ;
684
+ sh:targetClass gloss:RelatedConcept ;
685
+ sh:property [
686
+ sh:path gloss:relationshipType ;
687
+ sh:class skos:Concept ;
688
+ sh:minCount 1 ;
689
+ sh:maxCount 1 ;
690
+ ] ;
691
+ sh:property [
692
+ sh:path gloss:relationshipRef ;
693
+ sh:class gloss:ConceptRef ;
694
+ sh:maxCount 1 ;
695
+ ] ;
696
+ sh:property [
697
+ sh:path gloss:relationshipContent ;
698
+ sh:datatype xsd:string ;
699
+ sh:maxCount 1 ;
700
+ ] .
701
+
702
+ gloss:GrammarInfoShape a sh:NodeShape ;
703
+ sh:targetClass gloss:GrammarInfo ;
704
+ sh:property [
705
+ sh:path gloss:gender ;
706
+ sh:class skos:Concept ;
707
+ sh:valuesFrom <https://www.glossarist.org/ontologies/gender> ;
708
+ ] ;
709
+ sh:property [
710
+ sh:path gloss:number ;
711
+ sh:class skos:Concept ;
712
+ sh:valuesFrom <https://www.glossarist.org/ontologies/number> ;
713
+ ] ;
714
+ sh:property [
715
+ sh:path gloss:partOfSpeech ;
716
+ sh:datatype xsd:string ;
717
+ sh:maxCount 1 ;
718
+ ] .
719
+
720
+ # ══════════════════════════════════════════════════════════════════════════
721
+ # Dataset Register shapes
722
+ # ══════════════════════════════════════════════════════════════════════════
723
+
724
+ gloss:DatasetRegisterShape a sh:NodeShape ;
725
+ sh:targetClass gloss:DatasetRegister ;
726
+ sh:property [
727
+ sh:path gloss:datasetId ;
728
+ sh:datatype xsd:string ;
729
+ sh:minCount 1 ;
730
+ sh:maxCount 1 ;
731
+ ] ;
732
+ sh:property [
733
+ sh:path gloss:datasetUrn ;
734
+ sh:datatype xsd:anyURI ;
735
+ sh:minCount 1 ;
736
+ sh:maxCount 1 ;
737
+ ] ;
738
+ sh:property [
739
+ sh:path gloss:datasetRef ;
740
+ sh:datatype xsd:string ;
741
+ sh:maxCount 1 ;
742
+ ] ;
743
+ sh:property [
744
+ sh:path gloss:datasetYear ;
745
+ sh:datatype xsd:integer ;
746
+ sh:maxCount 1 ;
747
+ ] ;
748
+ sh:property [
749
+ sh:path gloss:datasetStatus ;
750
+ sh:datatype xsd:string ;
751
+ sh:in ( "current" "superseded" "retired" ) ;
752
+ sh:maxCount 1 ;
753
+ ] ;
754
+ sh:property [
755
+ sh:path gloss:supersedesDataset ;
756
+ sh:datatype xsd:string ;
757
+ sh:maxCount 1 ;
758
+ ] ;
759
+ sh:property [
760
+ sh:path gloss:owner ;
761
+ sh:datatype xsd:string ;
762
+ sh:maxCount 1 ;
763
+ ] ;
764
+ sh:property [
765
+ sh:path gloss:sourceRepo ;
766
+ sh:datatype xsd:anyURI ;
767
+ sh:maxCount 1 ;
768
+ ] ;
769
+ sh:property [
770
+ sh:path gloss:datasetLanguage ;
771
+ sh:datatype xsd:string ;
772
+ ] ;
773
+ sh:property [
774
+ sh:path gloss:hasSection ;
775
+ sh:class gloss:Section ;
776
+ ] ;
777
+ sh:property [
778
+ sh:path gloss:hasDefaultOrdering ;
779
+ sh:class skos:Concept ;
780
+ sh:valuesFrom <https://www.glossarist.org/ontologies/orderingmethod> ;
781
+ sh:maxCount 1 ;
782
+ ] ;
783
+ sh:property [
784
+ sh:path gloss:logo ;
785
+ sh:datatype xsd:anyURI ;
786
+ sh:maxCount 1 ;
787
+ ] .
788
+
789
+ gloss:SectionShape a sh:NodeShape ;
790
+ sh:targetClass gloss:Section ;
791
+ sh:property [
792
+ sh:path gloss:sectionId ;
793
+ sh:datatype xsd:string ;
794
+ sh:minCount 1 ;
795
+ sh:maxCount 1 ;
796
+ ] ;
797
+ sh:property [
798
+ sh:path gloss:sectionName ;
799
+ sh:datatype xsd:string ;
800
+ ] ;
801
+ sh:property [
802
+ sh:path gloss:hasChildSection ;
803
+ sh:class gloss:Section ;
804
+ ] ;
805
+ sh:property [
806
+ sh:path gloss:hasParentSection ;
807
+ sh:class gloss:Section ;
808
+ sh:maxCount 1 ;
809
+ ] ;
810
+ sh:property [
811
+ sh:path gloss:sectionOrdering ;
812
+ sh:class skos:Concept ;
813
+ sh:valuesFrom <https://www.glossarist.org/ontologies/orderingmethod> ;
814
+ sh:maxCount 1 ;
815
+ ] .