glossarist 2.9.0 → 2.9.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb2836ebc94ff60e6d5d7dc1bebae5c69da3894855e9a872edae442caa6a1754
4
- data.tar.gz: 4ec6b999d1bc72f416dfff5885b89c31a72cf92feb9c1e9d387ba0c79c926040
3
+ metadata.gz: d50eada0daf92059e77d269ba5aa067172280aa220bea89c64fe87c9fddb6377
4
+ data.tar.gz: 35a8a7cead7330c1e34c973918c02380c8d7328929494abffa3e4feb47c78239
5
5
  SHA512:
6
- metadata.gz: e7db28097d4bd49ca7ca29cdcd0c988be0679d349de14823beebd6d7d13c699b9610d6e381b7fce3507334cfddbedd50bab32b9e7007de4e49e8ff1e18a0e090
7
- data.tar.gz: c4b5c96b1a62920cea474ed1b5bd598d4877f5f4ec364a50738106784963592d833a340abff63e98dc18f29357dc87348b2e6cc8aa6226f63726db666252fcd7
6
+ metadata.gz: dcd5e9c08ccde9518e35b41c2ac1b405f08551ae24e1e9ff9602fe9992f62c59c3c4a3724035ecdcb2bf80cc5b19a32a0ed4cab2d69deca005572ab893e865a5
7
+ data.tar.gz: cb1054564c6e5c22a204c4d6d8c74a0454faa710789184580296bab9512b0556f7ef464dca31e451a90cee1dc4b0b455a5c4c3b7f7c91f5cec81dafdb9815d52
@@ -23,3 +23,4 @@ jobs:
23
23
  next_version: ${{ github.event.inputs.next_version }}
24
24
  secrets:
25
25
  rubygems-api-key: ${{ secrets.GLOSSARIST_CI_RUBYGEMS_API_KEY }}
26
+ pat_token: ${{ secrets.GLOSSARIST_CI_PAT_TOKEN }}
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "repo": "glossarist/concept-model",
3
- "ref": "v3.0.0",
4
- "syncedAt": "2026-06-27T09:55:24Z"
3
+ "ref": "8d5972e",
4
+ "syncedAt": "2026-07-05T02:25:47Z"
5
5
  }
@@ -34,10 +34,19 @@
34
34
  "ConceptRef": "gloss:ConceptRef",
35
35
  "Reference": "gloss:Reference",
36
36
  "RelatedConcept": "gloss:RelatedConcept",
37
+ "DesignationRelationship": "gloss:DesignationRelationship",
37
38
  "ConceptDate": "gloss:ConceptDate",
38
39
  "NonVerbalRepresentation": "gloss:NonVerbalRepresentation",
40
+ "NonVerbalEntity": "gloss:NonVerbalEntity",
41
+ "SharedNonVerbalEntity": "gloss:SharedNonVerbalEntity",
42
+ "Figure": "gloss:Figure",
43
+ "Table": "gloss:Table",
44
+ "Formula": "gloss:Formula",
45
+ "FigureImage": "gloss:FigureImage",
39
46
  "CustomLocality": "gloss:CustomLocality",
40
47
  "Locality": "gloss:Locality",
48
+ "DatasetRegister": "gloss:DatasetRegister",
49
+ "Section": "gloss:Section",
41
50
 
42
51
  "identifier": { "@id": "gloss:identifier", "@type": "xsd:string" },
43
52
  "uri": { "@id": "gloss:uri", "@type": "xsd:anyURI" },
@@ -54,6 +63,8 @@
54
63
  "hasDefinition": { "@id": "gloss:hasDefinition", "@type": "@id" },
55
64
  "hasNote": { "@id": "gloss:hasNote", "@type": "@id" },
56
65
  "hasExample": { "@id": "gloss:hasExample", "@type": "@id" },
66
+ "hasScopedExample": { "@id": "gloss:hasScopedExample", "@type": "@id" },
67
+ "hasAnnotation": { "@id": "gloss:hasAnnotation", "@type": "@id" },
57
68
  "hasNonVerbalRep": { "@id": "gloss:hasNonVerbalRep", "@type": "@id" },
58
69
  "domain": { "@id": "gloss:domain", "@type": "xsd:anyURI" },
59
70
  "release": { "@id": "gloss:release", "@type": "xsd:string" },
@@ -81,6 +92,16 @@
81
92
 
82
93
  "text": { "@id": "gloss:text", "@type": "xsd:string" },
83
94
  "image": { "@id": "gloss:image", "@type": "xsd:anyURI" },
95
+ "caption": { "@id": "gloss:caption", "@type": "xsd:string" },
96
+ "altText": { "@id": "gloss:altText", "@type": "xsd:string" },
97
+ "description": { "@id": "gloss:description", "@type": "xsd:string" },
98
+ "expression": { "@id": "gloss:expression", "@type": "xsd:string" },
99
+ "latexForm": { "@id": "gloss:latexForm", "@type": "xsd:string" },
100
+ "content": { "@id": "gloss:content", "@type": "xsd:string" },
101
+ "hasSubfigure": { "@id": "gloss:hasSubfigure", "@type": "@id" },
102
+ "src": { "@id": "gloss:src", "@type": "xsd:string" },
103
+ "format": { "@id": "gloss:format", "@type": "xsd:string" },
104
+ "role": { "@id": "gloss:role", "@type": "xsd:string" },
84
105
 
85
106
  "pronunciationContent": { "@id": "gloss:pronunciationContent", "@type": "xsd:string" },
86
107
  "pronunciationLanguage": { "@id": "gloss:pronunciationLanguage", "@type": "xsd:string" },
@@ -101,6 +122,7 @@
101
122
 
102
123
  "sourceType": { "@id": "gloss:sourceType", "@type": "@id" },
103
124
  "sourceStatus": { "@id": "gloss:sourceStatus", "@type": "@id" },
125
+ "sourceId": { "@id": "gloss:sourceId", "@type": "xsd:string" },
104
126
  "sourceOrigin": { "@id": "gloss:sourceOrigin", "@type": "@id" },
105
127
  "modification": { "@id": "gloss:modification", "@type": "xsd:string" },
106
128
 
@@ -115,6 +137,7 @@
115
137
 
116
138
  "conceptRefSource": { "@id": "gloss:conceptRefSource", "@type": "xsd:string" },
117
139
  "conceptRefId": { "@id": "gloss:conceptRefId", "@type": "xsd:string" },
140
+ "conceptRefText": { "@id": "gloss:conceptRefText", "@type": "xsd:string" },
118
141
 
119
142
  "customLocalityName": { "@id": "gloss:customLocalityName", "@type": "xsd:string" },
120
143
  "customLocalityValue": { "@id": "gloss:customLocalityValue", "@type": "xsd:string" },
@@ -161,6 +184,11 @@
161
184
  "abbreviatedFormFor": { "@id": "gloss:abbreviatedFormFor", "@type": "@id" },
162
185
  "shortFormFor": { "@id": "gloss:shortFormFor", "@type": "@id" },
163
186
 
187
+ "hasDesignationRelationship": { "@id": "gloss:hasDesignationRelationship", "@type": "@id" },
188
+ "designationRelationshipType": { "@id": "gloss:designationRelationshipType", "@type": "@id" },
189
+ "designationRelationshipContent": { "@id": "gloss:designationRelationshipContent", "@type": "xsd:string" },
190
+ "relationshipTarget": { "@id": "gloss:relationshipTarget", "@type": "xsd:string" },
191
+
164
192
  "prefLabel": "skos:prefLabel",
165
193
  "altLabel": "skos:altLabel",
166
194
  "hiddenLabel": "skos:hiddenLabel",
@@ -204,6 +232,30 @@
204
232
 
205
233
  "type": { "@id": "@type", "@container": "@set" },
206
234
  "id": "@id",
207
- "value": "rdf:value"
235
+ "value": "rdf:value",
236
+
237
+ "datasetId": { "@id": "gloss:datasetId", "@type": "xsd:string" },
238
+ "datasetRef": { "@id": "gloss:datasetRef", "@type": "xsd:string" },
239
+ "datasetYear": { "@id": "gloss:datasetYear", "@type": "xsd:integer" },
240
+ "datasetUrn": { "@id": "gloss:datasetUrn", "@type": "xsd:anyURI" },
241
+ "datasetUrnAlias": { "@id": "gloss:datasetUrnAlias", "@type": "xsd:anyURI" },
242
+ "datasetRefAlias": { "@id": "gloss:datasetRefAlias", "@type": "xsd:string" },
243
+ "datasetStatus": { "@id": "gloss:datasetStatus", "@type": "xsd:string" },
244
+ "supersedesDataset": { "@id": "gloss:supersedesDataset","@type": "xsd:string" },
245
+ "owner": { "@id": "gloss:owner", "@type": "xsd:string" },
246
+ "sourceRepo": { "@id": "gloss:sourceRepo", "@type": "xsd:anyURI" },
247
+ "datasetLanguage": { "@id": "gloss:datasetLanguage", "@type": "xsd:string" },
248
+ "languageOrder": { "@id": "gloss:languageOrder", "@type": "xsd:string" },
249
+ "hasSection": { "@id": "gloss:hasSection", "@type": "@id" },
250
+ "hasDefaultOrdering": { "@id": "gloss:hasDefaultOrdering", "@type": "@id" },
251
+ "datasetDescription": { "@id": "gloss:datasetDescription", "@type": "xsd:string" },
252
+ "aboutPath": { "@id": "gloss:aboutPath", "@type": "xsd:string" },
253
+ "logo": { "@id": "gloss:logo", "@type": "xsd:anyURI" },
254
+
255
+ "sectionId": { "@id": "gloss:sectionId", "@type": "xsd:string" },
256
+ "sectionName": { "@id": "gloss:sectionName", "@type": "xsd:string" },
257
+ "hasChildSection": { "@id": "gloss:hasChildSection", "@type": "@id" },
258
+ "hasParentSection": { "@id": "gloss:hasParentSection", "@type": "@id" },
259
+ "sectionOrdering": { "@id": "gloss:sectionOrdering", "@type": "@id" }
208
260
  }
209
261
  }
@@ -14,13 +14,16 @@
14
14
  #
15
15
  # Every class and property here has a direct correspondence to a field in the
16
16
  # Glossarist YAML schema (schemas/v3/concept.yaml, localized-concept.yaml).
17
+ #
18
+ # Prefix bindings: see prefixes.ttl for the canonical SSOT. The declarations
19
+ # below must stay in sync with that file.
17
20
 
18
21
  @prefix gloss: <https://www.glossarist.org/ontologies/> .
19
22
  @prefix owl: <http://www.w3.org/2002/07/owl#> .
20
23
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
21
24
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
22
25
  @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
23
- @prefix xl: <http://www.w3.org/2008/05/skos-xl#> .
26
+ @prefix skosxl: <http://www.w3.org/2008/05/skos-xl#> .
24
27
  @prefix iso-thes: <http://purl.org/iso25964/skos-thes#> .
25
28
  @prefix dcterms: <http://purl.org/dc/terms/> .
26
29
  @prefix prov: <http://www.w3.org/ns/prov#> .
@@ -93,11 +96,11 @@ gloss:LocalizedConcept a owl:Class ;
93
96
  # ── Designation Hierarchy (MECE) ─────────────────────────────────────────
94
97
 
95
98
  gloss:Designation a owl:Class ;
96
- rdfs:subClassOf xl:Label ;
99
+ rdfs:subClassOf skosxl:Label ;
97
100
  rdfs:label "Designation"@en ;
98
101
  rdfs:comment """
99
102
  Abstract base for all designation types. A designation is both a
100
- gloss:Designation and a skosxl:Label. The xl:literalForm carries the
103
+ gloss:Designation and a skosxl:Label. The skosxl:literalForm carries the
101
104
  designation text.
102
105
  Corresponds to Designation::Base in glossarist-ruby.
103
106
  """@en .
@@ -192,6 +195,16 @@ gloss:RelatedConcept a owl:Class ;
192
195
  A concept with a typed relationship (deprecates, broader, equivalent, etc.).
193
196
  """@en .
194
197
 
198
+ gloss:DesignationRelationship a owl:Class ;
199
+ rdfs:subClassOf owl:Thing ;
200
+ rdfs:label "Designation Relationship"@en ;
201
+ rdfs:comment """
202
+ A designation-level relationship between two designations of the same concept
203
+ (ISO 10241-1). Unlike RelatedConcept (which links concepts by identifier),
204
+ DesignationRelationship links designations by their text. Types include
205
+ abbreviated_form_for and short_form_for.
206
+ """@en .
207
+
195
208
  gloss:ConceptDate a owl:Class ;
196
209
  rdfs:label "Concept Date"@en ;
197
210
  rdfs:comment """
@@ -229,7 +242,7 @@ gloss:ConceptRef a owl:Class ;
229
242
  rdfs:label "Concept Reference"@en ;
230
243
  rdfs:comment """
231
244
  A reference to a concept in another registry or vocabulary.
232
- Has source and id only no version, locality, or link.
245
+ Has source, id, and optional text. No version, locality, or link.
233
246
  Used as the ref of RelatedConcept.
234
247
  Corresponds to ConceptRef in glossarist-ruby.
235
248
  """@en .
@@ -238,6 +251,24 @@ gloss:Locality a owl:Class ;
238
251
  rdfs:label "Locality"@en ;
239
252
  rdfs:comment "A locality within a cited document (section, clause, page, etc.)."@en .
240
253
 
254
+ # ── Dataset Register Layer ────────────────────────────────────────────────
255
+
256
+ gloss:DatasetRegister a owl:Class ;
257
+ rdfs:label "Dataset Register"@en ;
258
+ rdfs:comment """
259
+ Self-describing dataset metadata (register.yaml). Each dataset directory
260
+ contains a register.yaml that carries identity, structure, and relationship
261
+ metadata. Corresponds to DatasetRegister in the Lutaml model.
262
+ """@en .
263
+
264
+ gloss:Section a owl:Class ;
265
+ rdfs:label "Section"@en ;
266
+ rdfs:comment """
267
+ A structural division within a dataset. Sections can be hierarchical:
268
+ a section may contain child sections (e.g. Part > Section > Subsection)
269
+ via gloss:hasChildSection.
270
+ """@en .
271
+
241
272
  # ══════════════════════════════════════════════════════════════════════════
242
273
  # OBJECT PROPERTIES — Concept-level
243
274
  # ══════════════════════════════════════════════════════════════════════════
@@ -277,11 +308,11 @@ gloss:tag a owl:DatatypeProperty ;
277
308
  gloss:hasRelatedConcept a owl:ObjectProperty ;
278
309
  rdfs:domain [
279
310
  a owl:Class ;
280
- owl:unionOf ( gloss:Concept gloss:LocalizedConcept gloss:Designation )
311
+ owl:unionOf ( gloss:Concept gloss:LocalizedConcept )
281
312
  ] ;
282
313
  rdfs:range gloss:RelatedConcept ;
283
314
  rdfs:label "has related concept"@en ;
284
- rdfs:comment "DATA: Typed semantic relationship — applicable at concept, localization, and designation levels."@en .
315
+ rdfs:comment "DATA: Typed semantic relationship — applicable at concept and localization levels."@en .
285
316
 
286
317
  gloss:hasDate a owl:ObjectProperty ;
287
318
  rdfs:domain [
@@ -351,7 +382,25 @@ gloss:hasExample a owl:ObjectProperty ;
351
382
  rdfs:domain gloss:LocalizedConcept ;
352
383
  rdfs:range gloss:DetailedDefinition ;
353
384
  rdfs:label "has example"@en ;
354
- rdfs:comment "Links a localized concept to an illustrative example."@en .
385
+ rdfs:comment "Links a localized concept to a concept-level illustrative example."@en .
386
+
387
+ gloss:hasScopedExample a owl:ObjectProperty ;
388
+ rdfs:domain gloss:DetailedDefinition ;
389
+ rdfs:range gloss:DetailedDefinition ;
390
+ rdfs:label "has scoped example"@en ;
391
+ rdfs:comment """
392
+ Links a definition, note, or annotation to a scoped example nested
393
+ inside it (VIM 1993 style). Distinct from gloss:hasExample, which
394
+ links a LocalizedConcept to a concept-level example. MECE: concept-
395
+ level examples use hasExample; definition/note-scoped examples use
396
+ hasScopedExample.
397
+ """@en .
398
+
399
+ gloss:hasAnnotation a owl:ObjectProperty ;
400
+ rdfs:domain gloss:LocalizedConcept ;
401
+ rdfs:range gloss:DetailedDefinition ;
402
+ rdfs:label "has annotation"@en ;
403
+ rdfs:comment "Editorial annotations about the definition or entry — distinct from notes, which supplement the concept."@en .
355
404
 
356
405
  gloss:hasNonVerbalRep a owl:ObjectProperty ;
357
406
  rdfs:domain gloss:LocalizedConcept ;
@@ -459,6 +508,30 @@ gloss:register a owl:DatatypeProperty ;
459
508
  rdfs:label "register"@en ;
460
509
  rdfs:comment "Register or usage level of the designation (ISO 12620 / TBX-Linguist: colloquial_register, neutral_register, technical_register, in_house_register, bench_level_register, slang_register, vulgar_register)."@en .
461
510
 
511
+ gloss:hasDesignationRelationship a owl:ObjectProperty ;
512
+ rdfs:domain gloss:Designation ;
513
+ rdfs:range gloss:DesignationRelationship ;
514
+ rdfs:label "has designation relationship"@en ;
515
+ rdfs:comment "Links a designation to a designation-level relationship (e.g. abbreviated_form_for, short_form_for)."@en .
516
+
517
+ gloss:designationRelationshipType a owl:ObjectProperty ;
518
+ rdfs:domain gloss:DesignationRelationship ;
519
+ rdfs:range skos:Concept ;
520
+ rdfs:label "designation relationship type"@en ;
521
+ rdfs:comment "The type of designation relationship."@en .
522
+
523
+ gloss:designationRelationshipContent a owl:DatatypeProperty ;
524
+ rdfs:domain gloss:DesignationRelationship ;
525
+ rdfs:range xsd:string ;
526
+ rdfs:label "designation relationship content"@en ;
527
+ rdfs:comment "Free-text description of the designation relationship."@en .
528
+
529
+ gloss:relationshipTarget a owl:DatatypeProperty ;
530
+ rdfs:domain gloss:DesignationRelationship ;
531
+ rdfs:range xsd:string ;
532
+ rdfs:label "relationship target"@en ;
533
+ rdfs:comment "The target designation text that this designation relates to."@en .
534
+
462
535
  # ── Expression-specific ──────────────────────────────────────────────────
463
536
 
464
537
  gloss:prefix a owl:DatatypeProperty ;
@@ -613,6 +686,16 @@ gloss:term a owl:DatatypeProperty ;
613
686
  # OBJECT PROPERTIES — Source
614
687
  # ══════════════════════════════════════════════════════════════════════════
615
688
 
689
+ gloss:sourceId a owl:DatatypeProperty ;
690
+ rdfs:domain gloss:ConceptSource ;
691
+ rdfs:range xsd:string ;
692
+ rdfs:label "source id"@en ;
693
+ rdfs:comment """
694
+ Optional stable identifier for the source, used by inline
695
+ `{{cite:id}}` references. Local to the concept; must be
696
+ unique within the concept's sources list.
697
+ """@en .
698
+
616
699
  gloss:sourceType a owl:ObjectProperty ;
617
700
  rdfs:domain gloss:ConceptSource ;
618
701
  rdfs:range skos:Concept ;
@@ -637,6 +720,28 @@ gloss:modification a owl:DatatypeProperty ;
637
720
  rdfs:label "modification"@en ;
638
721
  rdfs:comment "How the concept was modified from the source."@en .
639
722
 
723
+ # ── Citation resolution ────────────────────────────────────────────────────
724
+ #
725
+ # An inline `{{cite:id}}` mention in a concept's text
726
+ # resolves to a Citation (ConceptSource#origin) in the same
727
+ # concept's sources list. The resolution is deployment-
728
+ # dependent:
729
+ #
730
+ # 1. Self-contained: the inline Citation is rendered as a
731
+ # flat citation (the source's origin.ref, locality, link).
732
+ # 2. Co-deployed: if the deployment has a bibliographic
733
+ # dataset registered under the same `Citation::Ref.source`
734
+ # (e.g. 'bibliography:ISO'), the citation is resolved to
735
+ # the rich bibliographic record. The inline locality
736
+ # (if any) is shown as the specific point of reference.
737
+ # 3. External: a URI form (e.g. `urn:iso:std:iso:7301:2024`)
738
+ # with no co-deployed match renders as the URI as a link.
739
+ #
740
+ # The Reference data structure (extracted by glossarist-js or
741
+ # glossarist-ruby) carries the URI/lookupKey/cite-key;
742
+ # resolution against the deployment's bibliography registry
743
+ # happens at render time.
744
+
640
745
  # ── Citation properties ────────────────────────────────────────────────────
641
746
 
642
747
  gloss:hasCitationRef a owl:ObjectProperty ;
@@ -697,6 +802,12 @@ gloss:conceptRefId a owl:DatatypeProperty ;
697
802
  rdfs:label "concept ref identifier"@en ;
698
803
  rdfs:comment "Concept identifier within the registry."@en .
699
804
 
805
+ gloss:conceptRefText a owl:DatatypeProperty ;
806
+ rdfs:domain gloss:ConceptRef ;
807
+ rdfs:range xsd:string ;
808
+ rdfs:label "concept ref text"@en ;
809
+ rdfs:comment "Target designation text for lexical relationships (e.g. close_match, abbreviated_form_for)."@en .
810
+
700
811
  # ── CustomLocality ─────────────────────────────────────────────────────────
701
812
 
702
813
  gloss:CustomLocality a owl:Class ;
@@ -958,3 +1069,259 @@ gloss:shortFormFor a owl:ObjectProperty ;
958
1069
  rdfs:range gloss:Designation ;
959
1070
  rdfs:label "short form for"@en ;
960
1071
  rdfs:comment "This designation is a short form of the target designation."@en .
1072
+
1073
+ # ══════════════════════════════════════════════════════════════════════════
1074
+ # DATAPROPERTIES — Dataset Register
1075
+ # ══════════════════════════════════════════════════════════════════════════
1076
+
1077
+ gloss:datasetId a owl:DatatypeProperty ;
1078
+ rdfs:domain gloss:DatasetRegister ;
1079
+ rdfs:range xsd:string ;
1080
+ rdfs:label "dataset id"@en ;
1081
+ rdfs:comment "Dataset identifier, unique within the deployment."@en .
1082
+
1083
+ gloss:datasetRef a owl:DatatypeProperty ;
1084
+ rdfs:domain gloss:DatasetRegister ;
1085
+ rdfs:range xsd:string ;
1086
+ rdfs:label "dataset ref"@en ;
1087
+ rdfs:comment "Publication reference string (e.g. OIML V 1:2022)."@en .
1088
+
1089
+ gloss:datasetYear a owl:DatatypeProperty ;
1090
+ rdfs:domain gloss:DatasetRegister ;
1091
+ rdfs:range xsd:integer ;
1092
+ rdfs:label "dataset year"@en ;
1093
+ rdfs:comment "Publication year."@en .
1094
+
1095
+ gloss:datasetUrn a owl:DatatypeProperty ;
1096
+ rdfs:domain gloss:DatasetRegister ;
1097
+ rdfs:range xsd:anyURI ;
1098
+ rdfs:label "dataset URN"@en ;
1099
+ rdfs:comment "Primary URN for the dataset."@en .
1100
+
1101
+ gloss:datasetUrnAlias a owl:DatatypeProperty ;
1102
+ rdfs:domain gloss:DatasetRegister ;
1103
+ rdfs:range xsd:anyURI ;
1104
+ rdfs:label "dataset URN alias"@en ;
1105
+ rdfs:comment "Additional URN patterns for resolution."@en .
1106
+
1107
+ gloss:datasetRefAlias a owl:DatatypeProperty ;
1108
+ rdfs:domain gloss:DatasetRegister ;
1109
+ rdfs:range xsd:string ;
1110
+ rdfs:label "dataset ref alias"@en ;
1111
+ rdfs:comment "Alternative publication references."@en .
1112
+
1113
+ gloss:datasetStatus a owl:DatatypeProperty ;
1114
+ rdfs:domain gloss:DatasetRegister ;
1115
+ rdfs:range xsd:string ;
1116
+ rdfs:label "dataset status"@en ;
1117
+ rdfs:comment "Dataset lifecycle status: current, superseded, or retired."@en .
1118
+
1119
+ gloss:supersedesDataset a owl:DatatypeProperty ;
1120
+ rdfs:domain gloss:DatasetRegister ;
1121
+ rdfs:range xsd:string ;
1122
+ rdfs:label "supersedes dataset"@en ;
1123
+ rdfs:comment "ID of the dataset edition that this one supersedes."@en .
1124
+
1125
+ gloss:owner a owl:DatatypeProperty ;
1126
+ rdfs:domain gloss:DatasetRegister ;
1127
+ rdfs:range xsd:string ;
1128
+ rdfs:label "owner"@en ;
1129
+ rdfs:comment "Owning organization (e.g. ISO, IEC, OIML)."@en .
1130
+
1131
+ gloss:sourceRepo a owl:DatatypeProperty ;
1132
+ rdfs:domain gloss:DatasetRegister ;
1133
+ rdfs:range xsd:anyURI ;
1134
+ rdfs:label "source repository"@en ;
1135
+ rdfs:comment "URL of the source repository."@en .
1136
+
1137
+ gloss:datasetLanguage a owl:DatatypeProperty ;
1138
+ rdfs:domain gloss:DatasetRegister ;
1139
+ rdfs:range xsd:string ;
1140
+ rdfs:label "dataset language"@en ;
1141
+ rdfs:comment "ISO 639-2 language code available in this dataset."@en .
1142
+
1143
+ gloss:languageOrder a owl:DatatypeProperty ;
1144
+ rdfs:domain gloss:DatasetRegister ;
1145
+ rdfs:range xsd:string ;
1146
+ rdfs:label "language order"@en ;
1147
+ rdfs:comment "Preferred display order for languages."@en .
1148
+
1149
+ gloss:hasSection a owl:ObjectProperty ;
1150
+ rdfs:domain gloss:DatasetRegister ;
1151
+ rdfs:range gloss:Section ;
1152
+ rdfs:label "has section"@en ;
1153
+ rdfs:comment "Top-level section in the dataset's hierarchical section tree."@en .
1154
+
1155
+ gloss:hasDefaultOrdering a owl:ObjectProperty ;
1156
+ rdfs:domain gloss:DatasetRegister ;
1157
+ rdfs:range skos:Concept ;
1158
+ rdfs:label "default ordering"@en ;
1159
+ rdfs:comment "Default concept ordering method for the dataset."@en .
1160
+
1161
+ gloss:datasetDescription a owl:DatatypeProperty ;
1162
+ rdfs:domain gloss:DatasetRegister ;
1163
+ rdfs:range xsd:string ;
1164
+ rdfs:label "dataset description"@en ;
1165
+ rdfs:comment "Localized dataset description."@en .
1166
+
1167
+ gloss:aboutPath a owl:DatatypeProperty ;
1168
+ rdfs:domain gloss:DatasetRegister ;
1169
+ rdfs:range xsd:string ;
1170
+ rdfs:label "about path"@en ;
1171
+ rdfs:comment "Localized path to about-page document."@en .
1172
+
1173
+ gloss:logo a owl:DatatypeProperty ;
1174
+ rdfs:domain gloss:DatasetRegister ;
1175
+ rdfs:range xsd:anyURI ;
1176
+ rdfs:label "logo"@en ;
1177
+ rdfs:comment "Relative path to the dataset logo image."@en .
1178
+
1179
+ # ══════════════════════════════════════════════════════════════════════════
1180
+ # DATAPROPERTIES — Section
1181
+ # ══════════════════════════════════════════════════════════════════════════
1182
+
1183
+ gloss:sectionId a owl:DatatypeProperty ;
1184
+ rdfs:domain gloss:Section ;
1185
+ rdfs:range xsd:string ;
1186
+ rdfs:label "section id"@en ;
1187
+ rdfs:comment "Section identifier used in concept references and URL routing."@en .
1188
+
1189
+ gloss:sectionName a owl:DatatypeProperty ;
1190
+ rdfs:domain gloss:Section ;
1191
+ rdfs:range xsd:string ;
1192
+ rdfs:label "section name"@en ;
1193
+ rdfs:comment "Localized section title."@en .
1194
+
1195
+ gloss:hasChildSection a owl:TransitiveProperty ;
1196
+ owl:inverseOf gloss:hasParentSection ;
1197
+ rdfs:domain gloss:Section ;
1198
+ rdfs:range gloss:Section ;
1199
+ rdfs:label "has child section"@en ;
1200
+ rdfs:comment """
1201
+ Hierarchical containment — parent section contains child sections.
1202
+ Transitive: selecting a parent section includes all descendants.
1203
+ This enables cascading membership at any depth (Part > Section > Subsection).
1204
+ """@en .
1205
+
1206
+ gloss:hasParentSection a owl:TransitiveProperty ;
1207
+ owl:inverseOf gloss:hasChildSection ;
1208
+ rdfs:domain gloss:Section ;
1209
+ rdfs:range gloss:Section ;
1210
+ rdfs:label "has parent section"@en ;
1211
+ rdfs:comment """
1212
+ Inverse of hasChildSection. Transitive: a section inherits membership
1213
+ from all its ancestors. Used for upward traversal in SPARQL queries.
1214
+ """@en .
1215
+
1216
+ gloss:sectionOrdering a owl:ObjectProperty ;
1217
+ rdfs:domain gloss:Section ;
1218
+ rdfs:range skos:Concept ;
1219
+ rdfs:label "section ordering"@en ;
1220
+ rdfs:comment "Per-section ordering override; if absent, inherits dataset default."@en .
1221
+
1222
+ # ── Non-Verbal Entities (ISO 10241-1 §6.5) ──────────────────────────────
1223
+
1224
+ gloss:NonVerbalEntity a owl:Class ;
1225
+ rdfs:label "Non-Verbal Entity"@en ;
1226
+ rdfs:comment """
1227
+ Abstract base for all non-verbal representation entities
1228
+ (ISO 10241-1 §6.5). Carries the shared accessibility + provenance
1229
+ payload: caption, description, alt, sources.
1230
+ """@en .
1231
+
1232
+ gloss:SharedNonVerbalEntity a owl:Class ;
1233
+ rdfs:subClassOf gloss:NonVerbalEntity ;
1234
+ rdfs:label "Shared Non-Verbal Entity"@en ;
1235
+ rdfs:comment """
1236
+ A non-verbal entity that has stable dataset-wide identity. Figure,
1237
+ Table, and Formula inherit from this. Distinct from NonVerbRep,
1238
+ which is concept-local and positional.
1239
+ """@en .
1240
+
1241
+ gloss:Figure a owl:Class ;
1242
+ rdfs:subClassOf gloss:SharedNonVerbalEntity ;
1243
+ rdfs:label "Figure"@en ;
1244
+ rdfs:comment """
1245
+ A dataset-level figure entity with localized caption/alt and
1246
+ multiple image variants. May contain recursive subfigures.
1247
+ """@en .
1248
+
1249
+ gloss:Table a owl:Class ;
1250
+ rdfs:subClassOf gloss:SharedNonVerbalEntity ;
1251
+ rdfs:label "Table"@en ;
1252
+ rdfs:comment "A dataset-level table entity with localized content."@en .
1253
+
1254
+ gloss:Formula a owl:Class ;
1255
+ rdfs:subClassOf gloss:SharedNonVerbalEntity ;
1256
+ rdfs:label "Formula"@en ;
1257
+ rdfs:comment "A dataset-level formula entity with localized expression."@en .
1258
+
1259
+ gloss:FigureImage a owl:Class ;
1260
+ rdfs:label "Figure Image"@en ;
1261
+ rdfs:comment "One image variant within a Figure (format, role, dimensions)."@en .
1262
+
1263
+ gloss:caption a owl:DatatypeProperty ;
1264
+ rdfs:domain gloss:NonVerbalEntity ;
1265
+ rdfs:range rdf:langString ;
1266
+ rdfs:label "caption"@en ;
1267
+ rdfs:comment "Localized title/caption."@en .
1268
+
1269
+ gloss:altText a owl:DatatypeProperty ;
1270
+ rdfs:domain gloss:NonVerbalEntity ;
1271
+ rdfs:range rdf:langString ;
1272
+ rdfs:label "alt text"@en ;
1273
+ rdfs:comment "Localized short alt text for screen readers."@en .
1274
+
1275
+ gloss:description a owl:DatatypeProperty ;
1276
+ rdfs:domain gloss:NonVerbalEntity ;
1277
+ rdfs:range rdf:langString ;
1278
+ rdfs:label "description"@en ;
1279
+ rdfs:comment "Localized long description (aria-describedby)."@en .
1280
+
1281
+ gloss:image a owl:ObjectProperty ;
1282
+ rdfs:domain gloss:Figure ;
1283
+ rdfs:range gloss:FigureImage ;
1284
+ rdfs:label "image"@en ;
1285
+ rdfs:comment "An image variant of a Figure."@en .
1286
+
1287
+ gloss:hasSubfigure a owl:ObjectProperty ;
1288
+ rdfs:domain gloss:Figure ;
1289
+ rdfs:range gloss:Figure ;
1290
+ rdfs:label "has subfigure"@en ;
1291
+ rdfs:comment "Recursive composite subfigure."@en .
1292
+
1293
+ gloss:src a owl:DatatypeProperty ;
1294
+ rdfs:domain gloss:FigureImage ;
1295
+ rdfs:range xsd:string ;
1296
+ rdfs:label "src"@en ;
1297
+ rdfs:comment "Image filename relative to images/ directory."@en .
1298
+
1299
+ gloss:format a owl:DatatypeProperty ;
1300
+ rdfs:domain gloss:FigureImage ;
1301
+ rdfs:range xsd:string ;
1302
+ rdfs:label "format"@en ;
1303
+ rdfs:comment "Image format (svg, png, jpg, webp, avif, gif)."@en .
1304
+
1305
+ gloss:role a owl:DatatypeProperty ;
1306
+ rdfs:domain gloss:FigureImage ;
1307
+ rdfs:range xsd:string ;
1308
+ rdfs:label "role"@en ;
1309
+ rdfs:comment "Variant role (vector, raster, dark, light, print)."@en .
1310
+
1311
+ gloss:content a owl:DatatypeProperty ;
1312
+ rdfs:domain gloss:Table ;
1313
+ rdfs:range xsd:string ;
1314
+ rdfs:label "content"@en ;
1315
+ rdfs:comment "Serialized table content (HTML, AsciiDoc, or similar markup)."@en .
1316
+
1317
+ gloss:expression a owl:DatatypeProperty ;
1318
+ rdfs:domain gloss:Formula ;
1319
+ rdfs:range xsd:string ;
1320
+ rdfs:label "expression"@en ;
1321
+ rdfs:comment "The formula expression in its source notation (AsciiDoc stem, MathML, etc.)."@en .
1322
+
1323
+ gloss:latexForm a owl:DatatypeProperty ;
1324
+ rdfs:domain gloss:Formula ;
1325
+ rdfs:range xsd:string ;
1326
+ rdfs:label "LaTeX form"@en ;
1327
+ rdfs:comment "LaTeX rendering of the formula expression for downstream typesetting."@en .
@@ -0,0 +1,27 @@
1
+ # Glossarist Canonical Prefix Declarations
2
+ #
3
+ # Single source of truth for prefix bindings used across the Glossarist
4
+ # ecosystem. Consumed verbatim by every Turtle/JSON-LD/TBX serializer
5
+ # (glossarist-ruby, glossarist-js, and any third-party emitter).
6
+ #
7
+ # Do NOT hand-edit downstream copies. Reference this file from the
8
+ # concept-model repository.
9
+ #
10
+ # Canonical SKOS-XL prefix is `skosxl:` (per W3C convention and
11
+ # glossarist-ruby's existing namespace registration). `xl:` is intentionally
12
+ # absent — do not introduce it.
13
+
14
+ @prefix gloss: <https://www.glossarist.org/ontologies/> .
15
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
16
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
17
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
18
+ @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
19
+ @prefix skosxl: <http://www.w3.org/2008/05/skos-xl#> .
20
+ @prefix iso-thes: <http://purl.org/iso25964/skos-thes#> .
21
+ @prefix dcterms: <http://purl.org/dc/terms/> .
22
+ @prefix prov: <http://www.w3.org/ns/prov#> .
23
+ @prefix vann: <http://purl.org/vocab/vann/> .
24
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
25
+ @prefix sh: <http://www.w3.org/ns/shacl#> .
26
+ @prefix foaf: <http://xmlns.com/foaf/0.1/> .
27
+ @prefix dcat: <http://www.w3.org/ns/dcat#> .
@@ -8,11 +8,15 @@
8
8
  @prefix gloss: <https://www.glossarist.org/ontologies/> .
9
9
  @prefix sh: <http://www.w3.org/ns/shacl#> .
10
10
  @prefix skos: <http://www.w3.org/2004/02/skos/core#> .
11
- @prefix xl: <http://www.w3.org/2008/05/skos-xl#> .
11
+ @prefix skosxl: <http://www.w3.org/2008/05/skos-xl#> .
12
12
  @prefix dcterms: <http://purl.org/dc/terms/> .
13
13
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
14
14
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
15
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#> .
16
20
 
17
21
  # ══════════════════════════════════════════════════════════════════════════
18
22
  # Concept shapes
@@ -93,6 +97,10 @@ gloss:LocalizedConceptShape a sh:NodeShape ;
93
97
  sh:path gloss:hasExample ;
94
98
  sh:class gloss:DetailedDefinition ;
95
99
  ] ;
100
+ sh:property [
101
+ sh:path gloss:hasAnnotation ;
102
+ sh:class gloss:DetailedDefinition ;
103
+ ] ;
96
104
  sh:property [
97
105
  sh:path gloss:hasEntryStatus ;
98
106
  sh:class skos:Concept ;
@@ -171,9 +179,9 @@ gloss:ConceptCollectionShape a sh:NodeShape ;
171
179
 
172
180
  gloss:DesignationShape a sh:NodeShape ;
173
181
  sh:targetClass gloss:Designation ;
174
- sh:class xl:Label ;
182
+ sh:class skosxl:Label ;
175
183
  sh:property [
176
- sh:path xl:literalForm ;
184
+ sh:path skosxl:literalForm ;
177
185
  sh:minCount 1 ;
178
186
  sh:maxCount 1 ;
179
187
  ] ;
@@ -190,8 +198,8 @@ gloss:DesignationShape a sh:NodeShape ;
190
198
  sh:maxCount 1 ;
191
199
  ] ;
192
200
  sh:property [
193
- sh:path gloss:hasRelatedConcept ;
194
- sh:class gloss:RelatedConcept ;
201
+ sh:path gloss:hasDesignationRelationship ;
202
+ sh:class gloss:DesignationRelationship ;
195
203
  ] ;
196
204
  sh:property [
197
205
  sh:path gloss:hasSource ;
@@ -287,6 +295,25 @@ gloss:PrefixShape a sh:NodeShape ;
287
295
  gloss:SuffixShape a sh:NodeShape ;
288
296
  sh:targetClass gloss:Suffix .
289
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
+
290
317
  # ══════════════════════════════════════════════════════════════════════════
291
318
  # Supporting class shapes
292
319
  # ══════════════════════════════════════════════════════════════════════════
@@ -330,10 +357,19 @@ gloss:DetailedDefinitionShape a sh:NodeShape ;
330
357
  sh:property [
331
358
  sh:path gloss:hasSource ;
332
359
  sh:class gloss:ConceptSource ;
360
+ ] ;
361
+ sh:property [
362
+ sh:path gloss:hasScopedExample ;
363
+ sh:class gloss:DetailedDefinition ;
333
364
  ] .
334
365
 
335
366
  gloss:ConceptSourceShape a sh:NodeShape ;
336
367
  sh:targetClass gloss:ConceptSource ;
368
+ sh:property [
369
+ sh:path gloss:sourceId ;
370
+ sh:datatype xsd:string ;
371
+ sh:maxCount 1 ;
372
+ ] ;
337
373
  sh:property [
338
374
  sh:path gloss:sourceType ;
339
375
  sh:class skos:Concept ;
@@ -398,6 +434,108 @@ gloss:NonVerbalRepresentationShape a sh:NodeShape ;
398
434
  sh:class gloss:ConceptSource ;
399
435
  ] .
400
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
+
401
539
  gloss:ReferenceShape a sh:NodeShape ;
402
540
  sh:targetClass gloss:Reference ;
403
541
  sh:or (
@@ -520,6 +658,11 @@ gloss:ConceptRefShape a sh:NodeShape ;
520
658
  sh:path gloss:conceptRefId ;
521
659
  sh:datatype xsd:string ;
522
660
  sh:maxCount 1 ;
661
+ ] ;
662
+ sh:property [
663
+ sh:path gloss:conceptRefText ;
664
+ sh:datatype xsd:string ;
665
+ sh:maxCount 1 ;
523
666
  ] .
524
667
 
525
668
  gloss:CustomLocalityShape a sh:NodeShape ;
@@ -573,3 +716,100 @@ gloss:GrammarInfoShape a sh:NodeShape ;
573
716
  sh:datatype xsd:string ;
574
717
  sh:maxCount 1 ;
575
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
+ ] .
@@ -17,6 +17,10 @@ module Glossarist
17
17
  OUT_DIR = File.expand_path("data/concept-model", File.join(__dir__, "..", "..", ".."))
18
18
 
19
19
  TARGETS = {
20
+ "prefixes.ttl" => %w[
21
+ ontologies/prefixes.ttl
22
+ prefixes.ttl
23
+ ].freeze,
20
24
  "glossarist.context.jsonld" => %w[
21
25
  ontologies/glossarist.context.jsonld
22
26
  glossarist.context.jsonld
@@ -4,5 +4,5 @@
4
4
  #
5
5
 
6
6
  module Glossarist
7
- VERSION = "2.9.0"
7
+ VERSION = "2.9.1"
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glossarist
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-07-03 00:00:00.000000000 Z
11
+ date: 2026-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -202,6 +202,7 @@ files:
202
202
  - data/concept-model/SOURCE.json
203
203
  - data/concept-model/glossarist.context.jsonld
204
204
  - data/concept-model/glossarist.ttl
205
+ - data/concept-model/prefixes.ttl
205
206
  - data/concept-model/shapes/glossarist.shacl.ttl
206
207
  - exe/glossarist
207
208
  - glossarist.gemspec