diff --git a/.gitignore b/.gitignore
index e43b0f9..563f8f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,6 @@
.DS_Store
+.vscode/
+Gemfile.lock
+html_documentation/
+images/*.png
+reference-docs/*.owl
diff --git a/Makefile b/Makefile
index 873b801..398e721 100644
--- a/Makefile
+++ b/Makefile
@@ -19,8 +19,8 @@ PNG := $(patsubst views/%.lutaml,images/%.png,$(SRC))
all: $(PNG)
-images/%.png: views/%.lutaml
- lutaml -t png -o $@ $<
+images/%.png: views/%.lutaml | images
+ lutaml lml generate -t png -o $@ $<
views/%.lutaml: models/%.wsd | views
lutaml-wsd2uml $< > $@
@@ -28,7 +28,10 @@ views/%.lutaml: models/%.wsd | views
views:
mkdir views
+images:
+ mkdir images
+
clean:
- $(RM) images/*.png
+ -$(RM) images/*.png
.PHONY: clean
diff --git a/images/ConceptSource.png b/images/ConceptSource.png
deleted file mode 100644
index cbf8c33..0000000
Binary files a/images/ConceptSource.png and /dev/null differ
diff --git a/images/Concepts.png b/images/Concepts.png
deleted file mode 100644
index 9ef5f8e..0000000
Binary files a/images/Concepts.png and /dev/null differ
diff --git a/images/Designations.png b/images/Designations.png
deleted file mode 100644
index 2049b05..0000000
Binary files a/images/Designations.png and /dev/null differ
diff --git a/images/ManagedConcepts.png b/images/ManagedConcepts.png
deleted file mode 100644
index c87a180..0000000
Binary files a/images/ManagedConcepts.png and /dev/null differ
diff --git a/ontologies/README.md b/ontologies/README.md
new file mode 100644
index 0000000..e4a347c
--- /dev/null
+++ b/ontologies/README.md
@@ -0,0 +1,136 @@
+# Glossarist Ontology Suite
+
+A comprehensive OWL ontology for the [Glossarist concept model](https://github.com/glossarist/concept-model) implementing ISO 10241-1 terminology management.
+
+## Namespace
+
+| Prefix | IRI | Purpose |
+|--------|-----|---------|
+| `gloss:` | `https://www.glossarist.org/ontologies/` | Glossarist-specific classes and properties |
+| `skos:` | `http://www.w3.org/2004/02/skos/core#` | Concept scheme, labels, relationships |
+| `skosxl:` | `http://www.w3.org/2008/05/skos-xl#` | Reified lexical labels (designations) |
+| `iso-thes:` | `http://purl.org/iso25964/skos-thes#` | Hierarchical relationship subtypes |
+| `dcterms:` | `http://purl.org/dc/terms/` | Language, bibliographic citation |
+| `prov:` | `http://www.w3.org/ns/prov#` | Source provenance |
+
+## File Layout
+
+```
+ontologies/
+├── glossarist.ttl # Core OWL ontology — classes and properties
+├── glossarist.context.jsonld # JSON-LD @context for the namespace
+├── README.md # This file
+├── reference-docs/ # W3C reference ontology copies
+│ ├── skos.ttl # SKOS namespace reference
+│ ├── skos-xl.ttl # SKOS-XL namespace reference
+│ └── iso-25964-skos-thes.ttl # ISO 25964 SKOS-Thes reference
+├── taxonomies/ # SKOS ConceptSchemes for enum values
+│ ├── concept-status.ttl # Concept lifecycle status
+│ ├── entry-status.ttl # Localized entry status
+│ ├── normative-status.ttl # Designation normative status
+│ ├── source-type.ttl # Source type (authoritative/lineage)
+│ ├── source-status.ttl # Source status (identical/modified/...)
+│ ├── relationship-type.ttl # Glossarist-specific relationship types
+│ ├── designation-type.ttl # Designation types (expression/abbreviation/symbol/...)
+│ ├── term-type.ttl # ISO 12620 term types (24 values)
+│ ├── grammar-gender.ttl # Grammatical gender
+│ └── grammar-number.ttl # Grammatical number
+└── shapes/
+ └── glossarist.shacl.ttl # SHACL validation shapes
+```
+
+## Design Principles
+
+1. **SKOS alignment** — `gloss:Concept` is a `skos:Concept`. Designations use `skosxl:Label`. Instant interoperability with SKOS tooling.
+
+2. **SKOS-XL for designations** — Each designation is both a `gloss:Designation` subclass and a `skosxl:Label`, with `skosxl:literalForm` carrying the text. Preferred designations are linked via `skosxl:prefLabel`, non-preferred via `skosxl:altLabel`.
+
+3. **ISO 25964 reuse** — Hierarchical relationship subtypes (`broaderGeneric`/`narrowerGeneric`, `broaderPartitive`/`narrowerPartitive`, `broaderInstantial`/`narrowerInstantial`) are reused directly from `iso-thes:` rather than duplicated.
+
+4. **SKOS taxonomies for enums** — All enumeration values are `skos:Concept` individuals in `skos:ConceptScheme` collections, not OWL named individuals.
+
+5. **No blank nodes** — All instances are identifiable with proper IRIs.
+
+## Core Classes
+
+### Concept Management
+
+| Class | Alignment | Maps to (glossarist-ruby) |
+|-------|-----------|--------------------------|
+| `gloss:Concept` | `skos:Concept` | `ManagedConcept` |
+| `gloss:LocalizedConcept` | `skos:Concept` | `LocalizedConcept` |
+| `gloss:ConceptCollection` | `skos:Collection` | `ManagedConceptCollection` |
+
+### Designation Hierarchy (MECE)
+
+```
+gloss:Designation (skosxl:Label)
+├── gloss:Expression
+│ └── gloss:Abbreviation
+└── gloss:Symbol
+ ├── gloss:LetterSymbol
+ └── gloss:GraphicalSymbol
+```
+
+### Supporting Classes
+
+`Pronunciation`, `GrammarInfo`, `DetailedDefinition`, `ConceptSource`, `ConceptReference`, `RelatedConcept`, `ConceptDate`, `NonVerbalRepresentation`, `DesignationRelationship`, `Citation`, `Locality`.
+
+## Relationship Property Mapping
+
+Standard relationships are reused directly:
+
+| Glossarist type | RDF property |
+|----------------|-------------|
+| broader / narrower | `skos:broader` / `skos:narrower` |
+| broader_generic | `iso-thes:broaderGeneric` |
+| broader_partitive | `iso-thes:broaderPartitive` |
+| broader_instantial | `iso-thes:broaderInstantial` |
+| equivalent | `skos:exactMatch` |
+| close_match | `skos:closeMatch` |
+| broad_match | `skos:broadMatch` |
+| see / related | `skos:related` |
+
+Glossarist-specific relationships are defined as `gloss:` properties:
+
+`gloss:deprecates`, `gloss:supersedes`, `gloss:compares`, `gloss:contrasts`, `gloss:sequentiallyRelated`, `gloss:spatiallyRelated`, `gloss:temporallyRelated`, `gloss:hasHomograph`, `gloss:hasFalseFriend`, `gloss:abbreviatedFormFor`, `gloss:shortFormFor`.
+
+## Usage Example
+
+```turtle
+@prefix gloss: .
+@prefix skos: .
+@prefix xl: .
+@prefix iso-thes: .
+@prefix dcterms: .
+
+ a gloss:Concept, skos:Concept ;
+ gloss:identifier "103-01-01" ;
+ gloss:hasStatus gloss:status/valid ;
+ gloss:hasLocalization .
+
+ a gloss:LocalizedConcept, skos:Concept ;
+ gloss:isLocalizationOf ;
+ dcterms:language "eng" ;
+ skosxl:prefLabel ;
+ gloss:hasDefinition [
+ rdf:value "a concept within a defined scope..."@eng
+ ] .
+
+ a gloss:Expression, iso-thes:PreferredTerm ;
+ xl:literalForm "geometric node"@eng ;
+ gloss:normativeStatus gloss:norm/preferred .
+```
+
+## Validation
+
+SHACL shapes in `shapes/glossarist.shacl.ttl` validate:
+- Concept types and required properties
+- Designation class hierarchy and property constraints
+- Source, citation, and date structure
+
+Use [pySHACL](https://github.com/RDFLib/pySHACL) or [Apache Jena](https://jena.apache.org/) to validate instance data against these shapes.
+
+## License
+
+CC-BY 4.0
diff --git a/ontologies/glossarist.context.jsonld b/ontologies/glossarist.context.jsonld
new file mode 100644
index 0000000..1009d60
--- /dev/null
+++ b/ontologies/glossarist.context.jsonld
@@ -0,0 +1,189 @@
+{
+ "@context": {
+ "@version": 1.1,
+
+ "gloss": "https://www.glossarist.org/ontologies/",
+ "skos": "http://www.w3.org/2004/02/skos/core#",
+ "skosxl": "http://www.w3.org/2008/05/skos-xl#",
+ "iso-thes": "http://purl.org/iso25964/skos-thes#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "prov": "http://www.w3.org/ns/prov#",
+ "owl": "http://www.w3.org/2002/07/owl#",
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+ "vann": "http://purl.org/vocab/vann/",
+
+ "Concept": "gloss:Concept",
+ "ConceptCollection": "gloss:ConceptCollection",
+ "LocalizedConcept": "gloss:LocalizedConcept",
+ "Designation": "gloss:Designation",
+ "Expression": "gloss:Expression",
+ "Abbreviation": "gloss:Abbreviation",
+ "Symbol": "gloss:Symbol",
+ "LetterSymbol": "gloss:LetterSymbol",
+ "GraphicalSymbol": "gloss:GraphicalSymbol",
+ "Pronunciation": "gloss:Pronunciation",
+ "GrammarInfo": "gloss:GrammarInfo",
+ "DetailedDefinition": "gloss:DetailedDefinition",
+ "ConceptSource": "gloss:ConceptSource",
+ "ConceptReference": "gloss:ConceptReference",
+ "RelatedConcept": "gloss:RelatedConcept",
+ "ConceptDate": "gloss:ConceptDate",
+ "NonVerbalRepresentation": "gloss:NonVerbalRepresentation",
+ "DesignationRelationship": "gloss:DesignationRelationship",
+ "Citation": "gloss:Citation",
+ "Locality": "gloss:Locality",
+
+ "identifier": { "@id": "gloss:identifier", "@type": "xsd:string" },
+ "hasLocalization": { "@id": "gloss:hasLocalization", "@type": "@id" },
+ "isLocalizationOf": { "@id": "gloss:isLocalizationOf", "@type": "@id" },
+ "hasStatus": { "@id": "gloss:hasStatus", "@type": "@id" },
+ "hasDomain": { "@id": "gloss:hasDomain", "@type": "@id" },
+ "hasRelatedConcept": { "@id": "gloss:hasRelatedConcept", "@type": "@id" },
+ "hasDate": { "@id": "gloss:hasDate", "@type": "@id" },
+ "hasSource": { "@id": "gloss:hasSource", "@type": "@id" },
+
+ "hasEntryStatus": { "@id": "gloss:hasEntryStatus", "@type": "@id" },
+ "hasDesignation": { "@id": "gloss:hasDesignation", "@type": "@id" },
+ "hasDefinition": { "@id": "gloss:hasDefinition", "@type": "@id" },
+ "hasNote": { "@id": "gloss:hasNote", "@type": "@id" },
+ "hasExample": { "@id": "gloss:hasExample", "@type": "@id" },
+ "hasNonVerbalRep": { "@id": "gloss:hasNonVerbalRep", "@type": "@id" },
+ "domain": { "@id": "gloss:domain", "@type": "xsd:anyURI" },
+ "release": { "@id": "gloss:release", "@type": "xsd:string" },
+ "lineageSimilarity": { "@id": "gloss:lineageSimilarity", "@type": "xsd:integer" },
+
+ "normativeStatus": { "@id": "gloss:normativeStatus", "@type": "@id" },
+ "hasPronunciation": { "@id": "gloss:hasPronunciation", "@type": "@id" },
+ "hasTermType": { "@id": "gloss:hasTermType", "@type": "@id" },
+ "hasDesignationRel": { "@id": "gloss:hasDesignationRel", "@type": "@id" },
+ "hasGrammarInfo": { "@id": "gloss:hasGrammarInfo", "@type": "@id" },
+ "geographicalArea": { "@id": "gloss:geographicalArea", "@type": "xsd:string" },
+ "isInternational": { "@id": "gloss:isInternational", "@type": "xsd:boolean" },
+ "isAbsent": { "@id": "gloss:isAbsent", "@type": "xsd:boolean" },
+
+ "prefix": { "@id": "gloss:prefix", "@type": "xsd:string" },
+ "usageInfo": { "@id": "gloss:usageInfo", "@type": "xsd:string" },
+ "fieldOfApplication": { "@id": "gloss:fieldOfApplication", "@type": "xsd:string" },
+
+ "isAcronym": { "@id": "gloss:isAcronym", "@type": "xsd:boolean" },
+ "isInitialism": { "@id": "gloss:isInitialism", "@type": "xsd:boolean" },
+ "isTruncation": { "@id": "gloss:isTruncation", "@type": "xsd:boolean" },
+
+ "text": { "@id": "gloss:text", "@type": "xsd:string" },
+ "image": { "@id": "gloss:image", "@type": "xsd:anyURI" },
+
+ "pronunciationContent": { "@id": "gloss:pronunciationContent", "@type": "xsd:string" },
+ "pronunciationLanguage": { "@id": "gloss:pronunciationLanguage", "@type": "xsd:string" },
+ "pronunciationScript": { "@id": "gloss:pronunciationScript", "@type": "xsd:string" },
+ "pronunciationCountry": { "@id": "gloss:pronunciationCountry", "@type": "xsd:string" },
+ "pronunciationSystem": { "@id": "gloss:pronunciationSystem", "@type": "xsd:string" },
+
+ "relationshipType": { "@id": "gloss:relationshipType", "@type": "@id" },
+ "relationshipContent": { "@id": "gloss:relationshipContent", "@type": "xsd:string" },
+ "relationshipRef": { "@id": "gloss:relationshipRef", "@type": "@id" },
+
+ "refType": { "@id": "gloss:refType", "@type": "xsd:string" },
+ "conceptId": { "@id": "gloss:conceptId", "@type": "xsd:string" },
+ "sourceUri": { "@id": "gloss:sourceUri", "@type": "xsd:anyURI" },
+ "urn": { "@id": "gloss:urn", "@type": "xsd:anyURI" },
+
+ "sourceType": { "@id": "gloss:sourceType", "@type": "@id" },
+ "sourceStatus": { "@id": "gloss:sourceStatus", "@type": "@id" },
+ "sourceOrigin": { "@id": "gloss:sourceOrigin", "@type": "@id" },
+ "modification": { "@id": "gloss:modification", "@type": "xsd:string" },
+
+ "citationText": { "@id": "gloss:citationText", "@type": "xsd:string" },
+ "citationSource": { "@id": "gloss:citationSource", "@type": "xsd:string" },
+ "citationId": { "@id": "gloss:citationId", "@type": "xsd:string" },
+ "citationVersion": { "@id": "gloss:citationVersion", "@type": "xsd:string" },
+ "citationLink": { "@id": "gloss:citationLink", "@type": "xsd:anyURI" },
+ "hasLocality": { "@id": "gloss:hasLocality", "@type": "@id" },
+
+ "dateValue": { "@id": "gloss:dateValue", "@type": "xsd:dateTime" },
+ "dateType": { "@id": "gloss:dateType", "@type": "@id" },
+
+ "representationType": { "@id": "gloss:representationType", "@type": "xsd:string" },
+ "representationRef": { "@id": "gloss:representationRef", "@type": "xsd:anyURI" },
+ "representationText": { "@id": "gloss:representationText", "@type": "xsd:string" },
+
+ "designationRelType": { "@id": "gloss:designationRelType", "@type": "xsd:string" },
+ "designationRelTarget": { "@id": "gloss:designationRelTarget", "@type": "xsd:string" },
+
+ "localityType": { "@id": "gloss:localityType", "@type": "xsd:string" },
+ "referenceFrom": { "@id": "gloss:referenceFrom", "@type": "xsd:string" },
+ "referenceTo": { "@id": "gloss:referenceTo", "@type": "xsd:string" },
+
+ "gender": { "@id": "gloss:gender", "@type": "@id" },
+ "number": { "@id": "gloss:number", "@type": "@id" },
+ "isNoun": { "@id": "gloss:isNoun", "@type": "xsd:boolean" },
+ "isVerb": { "@id": "gloss:isVerb", "@type": "xsd:boolean" },
+ "isAdjective": { "@id": "gloss:isAdjective", "@type": "xsd:boolean" },
+ "isAdverb": { "@id": "gloss:isAdverb", "@type": "xsd:boolean" },
+ "isPreposition": { "@id": "gloss:isPreposition", "@type": "xsd:boolean" },
+ "isParticiple": { "@id": "gloss:isParticiple", "@type": "xsd:boolean" },
+
+ "script": { "@id": "gloss:script", "@type": "xsd:string" },
+ "conversionSystem": { "@id": "gloss:conversionSystem", "@type": "xsd:string" },
+
+ "deprecates": { "@id": "gloss:deprecates", "@type": "@id" },
+ "deprecatedBy": { "@id": "gloss:deprecatedBy", "@type": "@id" },
+ "supersedes": { "@id": "gloss:supersedes", "@type": "@id" },
+ "supersededBy": { "@id": "gloss:supersededBy", "@type": "@id" },
+ "compares": { "@id": "gloss:compares", "@type": "@id" },
+ "contrasts": { "@id": "gloss:contrasts", "@type": "@id" },
+ "sequentiallyRelated": { "@id": "gloss:sequentiallyRelated", "@type": "@id" },
+ "spatiallyRelated": { "@id": "gloss:spatiallyRelated", "@type": "@id" },
+ "temporallyRelated": { "@id": "gloss:temporallyRelated", "@type": "@id" },
+ "hasHomograph": { "@id": "gloss:hasHomograph", "@type": "@id" },
+ "hasFalseFriend": { "@id": "gloss:hasFalseFriend", "@type": "@id" },
+ "abbreviatedFormFor": { "@id": "gloss:abbreviatedFormFor", "@type": "@id" },
+ "shortFormFor": { "@id": "gloss:shortFormFor", "@type": "@id" },
+
+ "prefLabel": "skos:prefLabel",
+ "altLabel": "skos:altLabel",
+ "hiddenLabel": "skos:hiddenLabel",
+ "definition": "skos:definition",
+ "scopeNote": "skos:scopeNote",
+ "note": "skos:note",
+ "example": "skos:example",
+ "notation": "skos:notation",
+ "inScheme": { "@id": "skos:inScheme", "@type": "@id" },
+ "hasTopConcept": { "@id": "skos:hasTopConcept", "@type": "@id" },
+ "broader": { "@id": "skos:broader", "@type": "@id" },
+ "narrower": { "@id": "skos:narrower", "@type": "@id" },
+ "related": { "@id": "skos:related", "@type": "@id" },
+ "exactMatch": { "@id": "skos:exactMatch", "@type": "@id" },
+ "closeMatch": { "@id": "skos:closeMatch", "@type": "@id" },
+ "broadMatch": { "@id": "skos:broadMatch", "@type": "@id" },
+ "narrowMatch": { "@id": "skos:narrowMatch", "@type": "@id" },
+ "relatedMatch": { "@id": "skos:relatedMatch", "@type": "@id" },
+
+ "literalForm": "skosxl:literalForm",
+ "labelRelation": "skosxl:labelRelation",
+
+ "broaderGeneric": { "@id": "iso-thes:broaderGeneric", "@type": "@id" },
+ "narrowerGeneric": { "@id": "iso-thes:narrowerGeneric", "@type": "@id" },
+ "broaderPartitive": { "@id": "iso-thes:broaderPartitive", "@type": "@id" },
+ "narrowerPartitive": { "@id": "iso-thes:narrowerPartitive", "@type": "@id" },
+ "broaderInstantial": { "@id": "iso-thes:broaderInstantial", "@type": "@id" },
+ "narrowerInstantial": { "@id": "iso-thes:narrowerInstantial", "@type": "@id" },
+
+ "language": { "@id": "dcterms:language", "@type": "@id" },
+ "bibliographicCitation": { "@id": "dcterms:bibliographicCitation", "@type": "xsd:string" },
+
+ "wasDerivedFrom": { "@id": "prov:wasDerivedFrom", "@type": "@id" },
+ "hadDerivation": { "@id": "prov:hadDerivation", "@type": "@id" },
+ "qualifiedDerivation": { "@id": "prov:qualifiedDerivation", "@type": "@id" },
+
+ "label": "rdfs:label",
+ "comment": "rdfs:comment",
+ "seeAlso": { "@id": "rdfs:seeAlso", "@type": "@id" },
+ "subClassOf": { "@id": "rdfs:subClassOf", "@type": "@id" },
+
+ "type": { "@id": "@type", "@container": "@set" },
+ "id": "@id",
+ "value": "rdf:value"
+ }
+}
diff --git a/ontologies/glossarist.ttl b/ontologies/glossarist.ttl
new file mode 100644
index 0000000..bfe32da
--- /dev/null
+++ b/ontologies/glossarist.ttl
@@ -0,0 +1,798 @@
+# Glossarist Ontology — Core
+#
+# IRI: https://www.glossarist.org/ontologies/glossarist
+# Prefix: gloss:
+#
+# An OWL ontology for the Glossarist concept model (ISO 10241-1 terminology
+# management). Aligns with SKOS (concepts, labels, relationships), SKOS-XL
+# (reified lexical labels for designations), ISO 25964 SKOS-Thes (hierarchical
+# relationship subtypes, concept groups), PROV-O (source provenance), and
+# Dublin Core Terms (language, bibliographic citation).
+#
+# Every class and property here has a direct correspondence to a field in the
+# Glossarist YAML schema (schemas/v2/concept.yaml, localized-concept.yaml).
+
+@prefix gloss: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix xl: .
+@prefix iso-thes: .
+@prefix dcterms: .
+@prefix prov: .
+@prefix vann: .
+@prefix xsd: .
+
+ a owl:Ontology ;
+ rdfs:label "Glossarist Ontology"@en ;
+ rdfs:comment """
+ An OWL ontology for the Glossarist concept model implementing
+ ISO 10241-1 terminology management.
+
+ Design principles:
+ - gloss:Concept rdfs:subClassOf skos:Concept — instant SKOS interop
+ - gloss:Designation rdfs:subClassOf skosxl:Label — SKOS-XL pattern
+ - Designations are separate named resources, linked via skosxl:prefLabel / skosxl:altLabel
+ - Relationship subtypes reuse iso-thes: properties directly (broaderGeneric, etc.)
+ - Source provenance uses prov:qualifiedDerivation
+ - SKOS ConceptSchemes for all enumeration values (taxonomies/)
+ """@en ;
+ vann:preferredNamespacePrefix "gloss" ;
+ vann:preferredNamespaceUri "https://www.glossarist.org/ontologies/" ;
+ owl:imports ;
+ owl:imports ;
+ owl:imports ;
+ owl:imports ;
+ dcterms:title "Glossarist Ontology"@en ;
+ dcterms:description "OWL ontology for ISO 10241-1 terminology management."@en ;
+ dcterms:license ;
+ dcterms:created "2025-05-14"^^xsd:date .
+
+# ══════════════════════════════════════════════════════════════════════════
+# CLASSES
+# ══════════════════════════════════════════════════════════════════════════
+
+# ── Concept Management Layer ─────────────────────────────────────────────
+
+gloss:Concept a owl:Class ;
+ rdfs:subClassOf skos:Concept ;
+ rdfs:label "Concept"@en ;
+ rdfs:comment """
+ A managed terminology concept — the top-level entity in Glossarist.
+ Has status, dates, domains, related concepts, and localizations.
+ Corresponds to ManagedConcept in glossarist-ruby.
+ """@en .
+
+gloss:ConceptCollection a owl:Class ;
+ rdfs:subClassOf skos:Collection ;
+ rdfs:label "Concept Collection"@en ;
+ rdfs:comment """
+ A managed collection of concepts (a glossary or register).
+ Corresponds to ManagedConceptCollection in glossarist-ruby.
+ """@en .
+
+# ── Localization Layer ───────────────────────────────────────────────────
+
+gloss:LocalizedConcept a owl:Class ;
+ rdfs:subClassOf skos:Concept ;
+ rdfs:label "Localized Concept"@en ;
+ rdfs:comment """
+ A concept in a specific language. Contains designations, definition,
+ notes, examples, sources. Linked to its managed concept via
+ gloss:isLocalizationOf.
+ Corresponds to LocalizedConcept in glossarist-ruby.
+ """@en .
+
+# ── Designation Hierarchy (MECE) ─────────────────────────────────────────
+
+gloss:Designation a owl:Class ;
+ rdfs:subClassOf xl:Label ;
+ rdfs:label "Designation"@en ;
+ rdfs:comment """
+ Abstract base for all designation types. A designation is both a
+ gloss:Designation and a skosxl:Label. The xl:literalForm carries the
+ designation text.
+ Corresponds to Designation::Base in glossarist-ruby.
+ """@en .
+
+gloss:Expression a owl:Class ;
+ rdfs:subClassOf gloss:Designation ;
+ rdfs:label "Expression"@en ;
+ rdfs:comment "A word or phrase used as a designation."@en ;
+ owl:disjointWith gloss:Symbol .
+
+gloss:Abbreviation a owl:Class ;
+ rdfs:subClassOf gloss:Expression ;
+ rdfs:label "Abbreviation"@en ;
+ rdfs:comment """
+ A shortened form of a word or phrase (acronym, initialism, or truncation).
+ """@en .
+
+gloss:Symbol a owl:Class ;
+ rdfs:subClassOf gloss:Designation ;
+ rdfs:label "Symbol"@en ;
+ rdfs:comment "A non-letter symbol representing a concept."@en ;
+ owl:disjointWith gloss:Expression .
+
+gloss:LetterSymbol a owl:Class ;
+ rdfs:subClassOf gloss:Symbol ;
+ rdfs:label "Letter Symbol"@en ;
+ rdfs:comment "A single letter used as a symbol."@en .
+
+gloss:GraphicalSymbol a owl:Class ;
+ rdfs:subClassOf gloss:Symbol ;
+ rdfs:label "Graphical Symbol"@en ;
+ rdfs:comment "An iconic or graphical symbol."@en ;
+ owl:disjointWith gloss:LetterSymbol .
+
+# ── Supporting Classes ───────────────────────────────────────────────────
+
+gloss:Pronunciation a owl:Class ;
+ rdfs:label "Pronunciation"@en ;
+ rdfs:comment """
+ A pronunciation or transcription entry for a designation.
+ Supports IPA, romanization, and other transcription systems.
+ """@en .
+
+gloss:GrammarInfo a owl:Class ;
+ rdfs:label "Grammar Information"@en ;
+ rdfs:comment """
+ Grammatical information about a designation: gender, number, part of speech.
+ """@en .
+
+gloss:DetailedDefinition a owl:Class ;
+ rdfs:label "Detailed Definition"@en ;
+ rdfs:comment """
+ A definition, note, or example with optional per-item sources.
+ Uses rdf:value for the text content.
+ """@en .
+
+gloss:ConceptSource a owl:Class ;
+ rdfs:label "Concept Source"@en ;
+ rdfs:comment """
+ Bibliographic source with type (authoritative/lineage), status
+ (identical/modified/...), and an origin citation.
+ """@en .
+
+gloss:ConceptReference a owl:Class ;
+ rdfs:label "Concept Reference"@en ;
+ rdfs:comment """
+ A typed reference to another concept, either local or external.
+ """@en .
+
+gloss:RelatedConcept a owl:Class ;
+ rdfs:label "Related Concept"@en ;
+ rdfs:comment """
+ A concept with a typed relationship (deprecates, broader, equivalent, etc.).
+ """@en .
+
+gloss:ConceptDate a owl:Class ;
+ rdfs:label "Concept Date"@en ;
+ rdfs:comment "A date in the concept lifecycle (accepted, amended, retired)."@en .
+
+gloss:NonVerbalRepresentation a owl:Class ;
+ rdfs:label "Non-Verbal Representation"@en ;
+ rdfs:comment """
+ Reference to an external image, table, or formula resource
+ (ISO 10241-1 §6.5).
+ """@en .
+
+gloss:DesignationRelationship a owl:Class ;
+ rdfs:label "Designation Relationship"@en ;
+ rdfs:comment """
+ A designation-to-designation link within the same concept entry
+ (abbreviated_form_for, short_form_for).
+ """@en .
+
+gloss:Citation a owl:Class ;
+ rdfs:label "Citation"@en ;
+ rdfs:comment """
+ Bibliographic citation — structured (source/id/version/locality) or
+ unstructured (plain text).
+ """@en .
+
+gloss:Locality a owl:Class ;
+ rdfs:label "Locality"@en ;
+ rdfs:comment "A locality within a cited document (section, clause, page, etc.)."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Concept-level
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:hasLocalization a owl:ObjectProperty ;
+ owl:inverseOf gloss:isLocalizationOf ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range gloss:LocalizedConcept ;
+ rdfs:label "has localization"@en ;
+ rdfs:comment "Links a managed concept to one of its language-specific localizations."@en .
+
+gloss:isLocalizationOf a owl:ObjectProperty ;
+ owl:inverseOf gloss:hasLocalization ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:Concept ;
+ rdfs:label "is localization of"@en ;
+ rdfs:comment "Links a localized concept back to its managed concept."@en .
+
+gloss:hasStatus a owl:ObjectProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has status"@en ;
+ rdfs:comment "Concept lifecycle status (draft, valid, superseded, etc.)."@en .
+
+gloss:hasDomain a owl:ObjectProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range gloss:ConceptReference ;
+ rdfs:label "has domain"@en ;
+ rdfs:comment "Links a concept to a domain (subject area) classification."@en .
+
+gloss:hasRelatedConcept a owl:ObjectProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range gloss:RelatedConcept ;
+ rdfs:label "has related concept"@en ;
+ rdfs:comment "Links a concept to a related concept with a typed relationship."@en .
+
+gloss:hasDate a owl:ObjectProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range gloss:ConceptDate ;
+ rdfs:label "has date"@en ;
+ rdfs:comment "A date in the concept lifecycle."@en .
+
+gloss:hasSource a owl:ObjectProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range gloss:ConceptSource ;
+ rdfs:label "has source"@en ;
+ rdfs:comment "Links a concept to a bibliographic source."@en .
+
+gloss:identifier a owl:DatatypeProperty ;
+ rdfs:domain gloss:Concept ;
+ rdfs:range xsd:string ;
+ rdfs:label "identifier"@en ;
+ rdfs:comment "The management identifier for the concept."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Localized concept
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:hasEntryStatus a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has entry status"@en ;
+ rdfs:comment "Localized entry lifecycle status (valid, not_valid, superseded, retired)."@en .
+
+gloss:hasDesignation a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:Designation ;
+ rdfs:label "has designation"@en ;
+ rdfs:comment "Links a localized concept to one of its designations (terms/symbols)."@en .
+
+gloss:hasDefinition a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:DetailedDefinition ;
+ rdfs:label "has definition"@en ;
+ rdfs:comment "Links a localized concept to a definition."@en .
+
+gloss:hasNote a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:DetailedDefinition ;
+ rdfs:label "has note"@en ;
+ rdfs:comment "Links a localized concept to a supplementary note."@en .
+
+gloss:hasExample a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:DetailedDefinition ;
+ rdfs:label "has example"@en ;
+ rdfs:comment "Links a localized concept to an illustrative example."@en .
+
+gloss:hasNonVerbalRep a owl:ObjectProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range gloss:NonVerbalRepresentation ;
+ rdfs:label "has non-verbal representation"@en ;
+ rdfs:comment "Links a localized concept to a non-verbal representation resource."@en .
+
+gloss:domain a owl:DatatypeProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "domain"@en ;
+ rdfs:comment "Per-language domain URI reference."@en .
+
+gloss:release a owl:DatatypeProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range xsd:string ;
+ rdfs:label "release"@en ;
+ rdfs:comment "Release version of this localized concept."@en .
+
+gloss:lineageSimilarity a owl:DatatypeProperty ;
+ rdfs:domain gloss:LocalizedConcept ;
+ rdfs:range xsd:integer ;
+ rdfs:label "lineage similarity"@en ;
+ rdfs:comment "Similarity percentage to the lineage source."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Designation
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:normativeStatus a owl:ObjectProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range skos:Concept ;
+ rdfs:label "normative status"@en ;
+ rdfs:comment """
+ Normative status of a designation (preferred, admitted, deprecated, superseded).
+ Preferred designations SHOULD also be typed as iso-thes:PreferredTerm;
+ others as iso-thes:SimpleNonPreferredTerm.
+ """@en .
+
+gloss:hasPronunciation a owl:ObjectProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range gloss:Pronunciation ;
+ rdfs:label "has pronunciation"@en .
+
+gloss:hasTermType a owl:ObjectProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has term type"@en ;
+ rdfs:comment "ISO 12620 term type classification."@en .
+
+gloss:hasDesignationRel a owl:ObjectProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range gloss:DesignationRelationship ;
+ rdfs:label "has designation relationship"@en ;
+ rdfs:comment "Designation-to-designation link (abbreviated_form_for, short_form_for)."@en .
+
+gloss:hasGrammarInfo a owl:ObjectProperty ;
+ rdfs:domain gloss:Expression ;
+ rdfs:range gloss:GrammarInfo ;
+ rdfs:label "has grammar info"@en .
+
+gloss:geographicalArea a owl:DatatypeProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range xsd:string ;
+ rdfs:label "geographical area"@en ;
+ rdfs:comment "ISO 3166-1 alpha-2 country code."@en .
+
+gloss:isInternational a owl:DatatypeProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is international"@en ;
+ rdfs:comment "Whether the designation is valid across all languages/regions."@en .
+
+gloss:isAbsent a owl:DatatypeProperty ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is absent"@en ;
+ rdfs:comment "The designation is explicitly absent for this concept in this language."@en .
+
+# ── Expression-specific ──────────────────────────────────────────────────
+
+gloss:prefix a owl:DatatypeProperty ;
+ rdfs:domain gloss:Expression ;
+ rdfs:range xsd:string ;
+ rdfs:label "prefix"@en .
+
+gloss:usageInfo a owl:DatatypeProperty ;
+ rdfs:domain gloss:Expression ;
+ rdfs:range xsd:string ;
+ rdfs:label "usage info"@en ;
+ rdfs:comment "Disambiguation context for homonymous designations."@en .
+
+gloss:fieldOfApplication a owl:DatatypeProperty ;
+ rdfs:domain gloss:Expression ;
+ rdfs:range xsd:string ;
+ rdfs:label "field of application"@en ;
+ rdfs:comment "Subject field in which the designation is used."@en .
+
+# ── Abbreviation-specific ────────────────────────────────────────────────
+
+gloss:isAcronym a owl:DatatypeProperty ;
+ rdfs:domain gloss:Abbreviation ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is acronym"@en .
+
+gloss:isInitialism a owl:DatatypeProperty ;
+ rdfs:domain gloss:Abbreviation ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is initialism"@en .
+
+gloss:isTruncation a owl:DatatypeProperty ;
+ rdfs:domain gloss:Abbreviation ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is truncation"@en .
+
+# ── Symbol-specific ──────────────────────────────────────────────────────
+
+gloss:text a owl:DatatypeProperty ;
+ rdfs:domain [ a owl:Class ; owl:unionOf ( gloss:LetterSymbol gloss:GraphicalSymbol ) ] ;
+ rdfs:range xsd:string ;
+ rdfs:label "text"@en ;
+ rdfs:comment "Textual representation of a letter or graphical symbol."@en .
+
+gloss:image a owl:DatatypeProperty ;
+ rdfs:domain gloss:GraphicalSymbol ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "image"@en ;
+ rdfs:comment "URI to the graphical symbol image."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Pronunciation
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:pronunciationContent a owl:DatatypeProperty ;
+ rdfs:domain gloss:Pronunciation ;
+ rdfs:range xsd:string ;
+ rdfs:label "pronunciation content"@en ;
+ rdfs:comment "Phonetic or transcribed text."@en .
+
+gloss:pronunciationLanguage a owl:DatatypeProperty ;
+ rdfs:domain gloss:Pronunciation ;
+ rdfs:range xsd:string ;
+ rdfs:label "pronunciation language"@en ;
+ rdfs:comment "ISO 639 three-character language code."@en .
+
+gloss:pronunciationScript a owl:DatatypeProperty ;
+ rdfs:domain gloss:Pronunciation ;
+ rdfs:range xsd:string ;
+ rdfs:label "pronunciation script"@en ;
+ rdfs:comment "ISO 15924 four-letter script code."@en .
+
+gloss:pronunciationCountry a owl:DatatypeProperty ;
+ rdfs:domain gloss:Pronunciation ;
+ rdfs:range xsd:string ;
+ rdfs:label "pronunciation country"@en ;
+ rdfs:comment "ISO 3166-1 alpha-2 country code."@en .
+
+gloss:pronunciationSystem a owl:DatatypeProperty ;
+ rdfs:domain gloss:Pronunciation ;
+ rdfs:range xsd:string ;
+ rdfs:label "pronunciation system"@en ;
+ rdfs:comment "ISO 24229 conversion system code or simple identifier (e.g. IPA)."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Relationship / Reference
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:relationshipType a owl:ObjectProperty ;
+ rdfs:domain gloss:RelatedConcept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "relationship type"@en ;
+ rdfs:comment "The type of relationship between concepts."@en .
+
+gloss:relationshipContent a owl:DatatypeProperty ;
+ rdfs:domain gloss:RelatedConcept ;
+ rdfs:range xsd:string ;
+ rdfs:label "relationship content"@en ;
+ rdfs:comment "Free-text description of the relationship."@en .
+
+gloss:relationshipRef a owl:ObjectProperty ;
+ rdfs:domain gloss:RelatedConcept ;
+ rdfs:range gloss:Citation ;
+ rdfs:label "relationship reference"@en ;
+ rdfs:comment "Citation reference for the related concept."@en .
+
+# ── Concept Reference ────────────────────────────────────────────────────
+
+gloss:refType a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptReference ;
+ rdfs:range xsd:string ;
+ rdfs:label "reference type"@en ;
+ rdfs:comment "Type of reference: local, designation, urn, domain."@en .
+
+gloss:conceptId a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptReference ;
+ rdfs:range xsd:string ;
+ rdfs:label "concept identifier"@en ;
+ rdfs:comment "Target concept identifier."@en .
+
+gloss:sourceUri a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptReference ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "source URI"@en ;
+ rdfs:comment "Source registry URN prefix for external references."@en .
+
+gloss:urn a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptReference ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "URN"@en ;
+ rdfs:comment "Direct URN reference to the target concept."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Source / Citation
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:sourceType a owl:ObjectProperty ;
+ rdfs:domain gloss:ConceptSource ;
+ rdfs:range skos:Concept ;
+ rdfs:label "source type"@en ;
+ rdfs:comment "Type of source: authoritative or lineage."@en .
+
+gloss:sourceStatus a owl:ObjectProperty ;
+ rdfs:domain gloss:ConceptSource ;
+ rdfs:range skos:Concept ;
+ rdfs:label "source status"@en ;
+ rdfs:comment "Status relative to source: identical, modified, etc."@en .
+
+gloss:sourceOrigin a owl:ObjectProperty ;
+ rdfs:domain gloss:ConceptSource ;
+ rdfs:range gloss:Citation ;
+ rdfs:label "source origin"@en ;
+ rdfs:comment "The bibliographic citation from which this concept was sourced."@en .
+
+gloss:modification a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptSource ;
+ rdfs:range xsd:string ;
+ rdfs:label "modification"@en ;
+ rdfs:comment "How the concept was modified from the source."@en .
+
+# ── Citation ─────────────────────────────────────────────────────────────
+
+gloss:citationText a owl:DatatypeProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range xsd:string ;
+ rdfs:label "citation text"@en ;
+ rdfs:comment "Unstructured (plain text) reference."@en .
+
+gloss:citationSource a owl:DatatypeProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range xsd:string ;
+ rdfs:label "citation source"@en ;
+ rdfs:comment "Source document identifier (e.g., ISO, IEC)."@en .
+
+gloss:citationId a owl:DatatypeProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range xsd:string ;
+ rdfs:label "citation identifier"@en ;
+ rdfs:comment "Document identifier in a structured reference."@en .
+
+gloss:citationVersion a owl:DatatypeProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range xsd:string ;
+ rdfs:label "citation version"@en ;
+ rdfs:comment "Document version in a structured reference."@en .
+
+gloss:citationLink a owl:DatatypeProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "citation link"@en ;
+ rdfs:comment "URL link to the source document."@en .
+
+gloss:hasLocality a owl:ObjectProperty ;
+ rdfs:domain gloss:Citation ;
+ rdfs:range gloss:Locality ;
+ rdfs:label "has locality"@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Date
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:dateValue a owl:DatatypeProperty ;
+ rdfs:domain gloss:ConceptDate ;
+ rdfs:range xsd:dateTime ;
+ rdfs:label "date value"@en .
+
+gloss:dateType a owl:ObjectProperty ;
+ rdfs:domain gloss:ConceptDate ;
+ rdfs:range skos:Concept ;
+ rdfs:label "date type"@en ;
+ rdfs:comment "Kind of lifecycle event: accepted, amended, retired."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Non-verbal representation
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:representationType a owl:DatatypeProperty ;
+ rdfs:domain gloss:NonVerbalRepresentation ;
+ rdfs:range xsd:string ;
+ rdfs:label "representation type"@en ;
+ rdfs:comment "Type of representation: image, table, or formula."@en .
+
+gloss:representationRef a owl:DatatypeProperty ;
+ rdfs:domain gloss:NonVerbalRepresentation ;
+ rdfs:range xsd:anyURI ;
+ rdfs:label "representation reference"@en ;
+ rdfs:comment "URI to the external resource."@en .
+
+gloss:representationText a owl:DatatypeProperty ;
+ rdfs:domain gloss:NonVerbalRepresentation ;
+ rdfs:range xsd:string ;
+ rdfs:label "representation text"@en ;
+ rdfs:comment "Alt text or description of the representation."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Designation relationship
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:designationRelType a owl:DatatypeProperty ;
+ rdfs:domain gloss:DesignationRelationship ;
+ rdfs:range xsd:string ;
+ rdfs:label "designation relationship type"@en ;
+ rdfs:comment "Type: abbreviated_form_for or short_form_for."@en .
+
+gloss:designationRelTarget a owl:DatatypeProperty ;
+ rdfs:domain gloss:DesignationRelationship ;
+ rdfs:range xsd:string ;
+ rdfs:label "designation relationship target"@en ;
+ rdfs:comment "Text of the target designation being referenced."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Locality
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:localityType a owl:DatatypeProperty ;
+ rdfs:domain gloss:Locality ;
+ rdfs:range xsd:string ;
+ rdfs:label "locality type"@en ;
+ rdfs:comment "Type of locality: section, clause, page, etc."@en .
+
+gloss:referenceFrom a owl:DatatypeProperty ;
+ rdfs:domain gloss:Locality ;
+ rdfs:range xsd:string ;
+ rdfs:label "reference from"@en ;
+ rdfs:comment "Starting point of the locality reference."@en .
+
+gloss:referenceTo a owl:DatatypeProperty ;
+ rdfs:domain gloss:Locality ;
+ rdfs:range xsd:string ;
+ rdfs:label "reference to"@en ;
+ rdfs:comment "Ending point of the locality reference (for ranges)."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Grammar
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:gender a owl:ObjectProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range skos:Concept ;
+ rdfs:label "gender"@en ;
+ rdfs:comment "Grammatical gender (m, f, n, c)."@en .
+
+gloss:number a owl:ObjectProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range skos:Concept ;
+ rdfs:label "number"@en ;
+ rdfs:comment "Grammatical number (singular, dual, plural)."@en .
+
+gloss:isNoun a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is noun"@en .
+
+gloss:isVerb a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is verb"@en .
+
+gloss:isAdjective a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is adjective"@en .
+
+gloss:isAdverb a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is adverb"@en .
+
+gloss:isPreposition a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is preposition"@en .
+
+gloss:isParticiple a owl:DatatypeProperty ;
+ rdfs:domain gloss:GrammarInfo ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "is participle"@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Language / Script / System
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:script a owl:DatatypeProperty ;
+ rdfs:domain [ a owl:Class ; owl:unionOf ( gloss:LocalizedConcept gloss:Designation gloss:Pronunciation ) ] ;
+ rdfs:range xsd:string ;
+ rdfs:label "script"@en ;
+ rdfs:comment "ISO 15924 four-letter script code."@en .
+
+gloss:conversionSystem a owl:DatatypeProperty ;
+ rdfs:domain [ a owl:Class ; owl:unionOf ( gloss:LocalizedConcept gloss:Designation gloss:Pronunciation ) ] ;
+ rdfs:range xsd:string ;
+ rdfs:label "conversion system"@en ;
+ rdfs:comment "ISO 24229 conversion system code."@en .
+
+# ══════════════════════════════════════════════════════════════════════════
+# OBJECT PROPERTIES — Glossarist-specific relationships
+# (no standard SKOS / iso-thes equivalent)
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:deprecates a owl:ObjectProperty ;
+ owl:inverseOf gloss:deprecatedBy ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "deprecates"@en ;
+ rdfs:comment "Lifecycle: this concept deprecates another."@en .
+
+gloss:deprecatedBy a owl:ObjectProperty ;
+ owl:inverseOf gloss:deprecates ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "deprecated by"@en .
+
+gloss:supersedes a owl:ObjectProperty ;
+ owl:inverseOf gloss:supersededBy ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "supersedes"@en ;
+ rdfs:comment "Lifecycle: this concept supersedes another."@en .
+
+gloss:supersededBy a owl:ObjectProperty ;
+ owl:inverseOf gloss:supersedes ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "superseded by"@en .
+
+gloss:compares a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "compares"@en ;
+ rdfs:comment "Comparative: this concept is compared to another."@en .
+
+gloss:contrasts a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "contrasts"@en ;
+ rdfs:comment "Comparative: this concept contrasts with another."@en .
+
+gloss:sequentiallyRelated a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "sequentially related"@en ;
+ rdfs:comment "Associative spatiotemporal: sequential relationship."@en .
+
+gloss:spatiallyRelated a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "spatially related"@en ;
+ rdfs:comment "Associative spatiotemporal: spatial relationship."@en .
+
+gloss:temporallyRelated a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "temporally related"@en ;
+ rdfs:comment "Associative spatiotemporal: temporal relationship."@en .
+
+gloss:hasHomograph a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has homograph"@en ;
+ rdfs:comment "Lexical: this concept has a homograph in another entry."@en .
+
+gloss:hasFalseFriend a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has false friend"@en ;
+ rdfs:comment "Lexical: this concept has a false friend in another language."@en .
+
+gloss:relatedConceptBroader a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "related concept (broader)"@en ;
+ rdfs:comment "Associative: related concept with broader scope."@en .
+
+gloss:relatedConceptNarrower a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "related concept (narrower)"@en ;
+ rdfs:comment "Associative: related concept with narrower scope."@en .
+
+# ── Designation-level relationship properties ────────────────────────────
+
+gloss:abbreviatedFormFor a owl:ObjectProperty ;
+ owl:inverseOf gloss:shortFormFor ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range gloss:Designation ;
+ rdfs:label "abbreviated form for"@en ;
+ rdfs:comment "This designation is an abbreviated form of the target designation."@en .
+
+gloss:shortFormFor a owl:ObjectProperty ;
+ owl:inverseOf gloss:abbreviatedFormFor ;
+ rdfs:domain gloss:Designation ;
+ rdfs:range gloss:Designation ;
+ rdfs:label "short form for"@en ;
+ rdfs:comment "This designation is a short form of the target designation."@en .
diff --git a/ontologies/reference-docs/iso-25964-skos-thes.ttl b/ontologies/reference-docs/iso-25964-skos-thes.ttl
new file mode 100644
index 0000000..9c2c3e2
--- /dev/null
+++ b/ontologies/reference-docs/iso-25964-skos-thes.ttl
@@ -0,0 +1,179 @@
+# ISO 25964 SKOS-Thes Namespace Reference
+#
+# Source: http://purl.org/iso25964/skos-thes
+# Date: 2015-03-17
+# Authors: Antoine Isaac, Johan De Smedt
+#
+# This is a reference copy of the key classes and properties from the
+# ISO 25964 SKOS-Thes ontology used by the Glossarist ontology.
+# The full ontology is available at http://purl.org/iso25964/skos-thes
+
+@prefix iso-thes: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix xsd: .
+@prefix xl: .
+
+ a owl:Ontology ;
+ rdfs:label "ISO 25964 SKOS-Thes"@en ;
+ rdfs:comment "Mapping between ISO 25964 data model and SKOS schema."@en ;
+ owl:imports ;
+ owl:imports .
+
+# ── Classes ──────────────────────────────────────────────────────────────
+
+iso-thes:ConceptGroup a owl:Class ;
+ rdfs:subClassOf skos:Collection ;
+ rdfs:label "Concept Group"@en ;
+ rdfs:comment "A group of concepts making up a subset of the thesaurus."@en ;
+ owl:disjointWith iso-thes:ThesaurusArray .
+
+iso-thes:ThesaurusArray a owl:Class ;
+ rdfs:subClassOf skos:Collection ;
+ rdfs:label "Thesaurus Array"@en ;
+ rdfs:comment "An array is a group of sibling concepts."@en .
+
+iso-thes:PreferredTerm a owl:Class ;
+ rdfs:subClassOf xl:Label ;
+ rdfs:label "Preferred Term"@en ;
+ rdfs:comment "Instances are objects of skosxl:prefLabel statements."@en .
+
+iso-thes:SimpleNonPreferredTerm a owl:Class ;
+ rdfs:subClassOf xl:Label ;
+ rdfs:label "Simple Non Preferred Term"@en ;
+ rdfs:comment "Instances are objects of skosxl:altLabel or skosxl:hiddenLabel statements."@en .
+
+iso-thes:SplitNonPreferredTerm a owl:Class ;
+ rdfs:subClassOf xl:Label ;
+ rdfs:label "Split Non Preferred Term"@en ;
+ rdfs:comment "A concept represented by a combination of two or more preferred terms."@en .
+
+iso-thes:CompoundEquivalence a owl:Class ;
+ rdfs:label "Compound Equivalence"@en ;
+ rdfs:comment "Links a split non-preferred term to its component preferred terms."@en .
+
+# ── Object Properties (Hierarchical) ────────────────────────────────────
+
+iso-thes:broaderGeneric a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:broader ;
+ owl:inverseOf iso-thes:narrowerGeneric ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "broader term (generic)"@en ;
+ rdfs:comment "ISO 25964-1: BTG — The immediate class-generalized class relationship."@en .
+
+iso-thes:narrowerGeneric a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:narrower ;
+ owl:inverseOf iso-thes:broaderGeneric ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "narrower term (generic)"@en ;
+ rdfs:comment "ISO 25964-1: NTG — The immediate class-specialized class relationship."@en .
+
+iso-thes:broaderPartitive a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:broader ;
+ owl:inverseOf iso-thes:narrowerPartitive ;
+ a owl:TransitiveProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "broader term (partitive)"@en ;
+ rdfs:comment "ISO 25964-1: BTP — Part-whole relationship (transitive)."@en .
+
+iso-thes:narrowerPartitive a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:narrower ;
+ owl:inverseOf iso-thes:broaderPartitive ;
+ a owl:TransitiveProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "narrower term (partitive)"@en ;
+ rdfs:comment "ISO 25964-1: NTP — Whole-part relationship (transitive)."@en .
+
+iso-thes:broaderInstantial a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:broader ;
+ owl:inverseOf iso-thes:narrowerInstantial ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "broader term (instantial)"@en ;
+ rdfs:comment "ISO 25964-1: BTI — The immediate instance-class relationship."@en .
+
+iso-thes:narrowerInstantial a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:narrower ;
+ owl:inverseOf iso-thes:broaderInstantial ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "narrower term (instantial)"@en ;
+ rdfs:comment "ISO 25964-1: NTI — The immediate class-instance relationship."@en .
+
+# ── Object Properties (Group/Array structure) ───────────────────────────
+
+iso-thes:subGroup a owl:ObjectProperty, owl:TransitiveProperty ;
+ owl:inverseOf iso-thes:superGroup ;
+ rdfs:domain iso-thes:ConceptGroup ;
+ rdfs:range iso-thes:ConceptGroup ;
+ rdfs:label "sub group"@en ;
+ rdfs:comment "All members of the object subGroup are members of the subject group."@en .
+
+iso-thes:superGroup a owl:ObjectProperty, owl:TransitiveProperty ;
+ owl:inverseOf iso-thes:subGroup ;
+ rdfs:domain iso-thes:ConceptGroup ;
+ rdfs:range iso-thes:ConceptGroup ;
+ rdfs:label "super group"@en .
+
+iso-thes:subordinateArray a owl:ObjectProperty ;
+ owl:inverseOf iso-thes:superOrdinate ;
+ rdfs:domain skos:Concept ;
+ rdfs:range iso-thes:ThesaurusArray ;
+ rdfs:label "subordinate array"@en .
+
+iso-thes:superOrdinate a owl:ObjectProperty ;
+ owl:inverseOf iso-thes:subordinateArray ;
+ rdfs:domain iso-thes:ThesaurusArray ;
+ rdfs:range skos:Concept ;
+ rdfs:label "super ordinate"@en .
+
+iso-thes:microThesaurusOf a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:inScheme ;
+ rdfs:domain iso-thes:ConceptGroup ;
+ rdfs:range skos:ConceptScheme ;
+ rdfs:label "micro-thesaurus of"@en .
+
+# ── Object Properties (Term relations) ──────────────────────────────────
+
+iso-thes:plusUseTerm a owl:ObjectProperty ;
+ rdfs:subPropertyOf xl:labelRelation ;
+ owl:inverseOf iso-thes:plusUFTerm ;
+ rdfs:domain iso-thes:SplitNonPreferredTerm ;
+ rdfs:range iso-thes:PreferredTerm ;
+ rdfs:label "USE+"@en .
+
+iso-thes:plusUFTerm a owl:ObjectProperty ;
+ rdfs:subPropertyOf xl:labelRelation ;
+ owl:inverseOf iso-thes:plusUseTerm ;
+ rdfs:domain iso-thes:PreferredTerm ;
+ rdfs:range iso-thes:SplitNonPreferredTerm ;
+ rdfs:label "UF+"@en .
+
+iso-thes:plusUse a owl:ObjectProperty ;
+ rdfs:domain iso-thes:CompoundEquivalence ;
+ rdfs:range iso-thes:PreferredTerm ;
+ rdfs:label "component preferred term"@en .
+
+iso-thes:plusUF a owl:ObjectProperty ;
+ rdfs:domain iso-thes:CompoundEquivalence ;
+ rdfs:range iso-thes:SplitNonPreferredTerm ;
+ rdfs:label "split non preferred term"@en .
+
+# ── Data Properties ─────────────────────────────────────────────────────
+
+iso-thes:status a owl:DatatypeProperty ;
+ rdfs:domain [ a owl:Class ; owl:unionOf ( skos:Concept xl:Label ) ] ;
+ rdfs:range xsd:string ;
+ rdfs:label "status"@en ;
+ rdfs:comment "ISO status on ThesaurusConcept or ThesaurusTerm."@en .
+
+# ── Disjointness ────────────────────────────────────────────────────────
+
+[ a owl:AllDisjointClasses ;
+ owl:members ( iso-thes:PreferredTerm iso-thes:SimpleNonPreferredTerm iso-thes:SplitNonPreferredTerm ) ] .
diff --git a/ontologies/reference-docs/skos-xl.ttl b/ontologies/reference-docs/skos-xl.ttl
new file mode 100644
index 0000000..9ced4f7
--- /dev/null
+++ b/ontologies/reference-docs/skos-xl.ttl
@@ -0,0 +1,62 @@
+# SKOS-XL Namespace Reference
+#
+# Source: https://www.w3.org/TR/skos-reference/#xl
+# Namespace: http://www.w3.org/2008/05/skos-xl#
+# W3C Recommendation 18 August 2009 (Section on SKOS-XL)
+#
+# This is a reference copy of the key classes and properties from the
+# SKOS-XL extension used by the Glossarist ontology for designation handling.
+
+@prefix xl: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix dcterms: .
+@prefix xsd: .
+
+ a owl:Ontology ;
+ rdfs:label "SKOS-XL"@en ;
+ rdfs:comment "An extension to SKOS that allows label properties (prefLabel, altLabel, hiddenLabel) to be represented as resources rather than plain literals."@en ;
+ owl:imports .
+
+# ── Classes ──────────────────────────────────────────────────────────────
+
+xl:Label a owl:Class ;
+ rdfs:label "Label"@en ;
+ rdfs:comment "An instance of xl:Label is a resource representing a lexical label."@en .
+
+# ── Label Properties (linking concepts to label resources) ───────────────
+
+xl:prefLabel a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:prefLabel ;
+ rdfs:range xl:Label ;
+ rdfs:label "preferred label"@en ;
+ rdfs:comment "If C xl:prefLabel L and C xl:prefLabel L', then L and L' are the same resource."@en .
+
+xl:altLabel a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:altLabel ;
+ rdfs:range xl:Label ;
+ rdfs:label "alternative label"@en ;
+ rdfs:comment "An alternative label resource for a concept."@en .
+
+xl:hiddenLabel a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:hiddenLabel ;
+ rdfs:range xl:Label ;
+ rdfs:label "hidden label"@en ;
+ rdfs:comment "A hidden label resource for a concept."@en .
+
+# ── Literal Form ─────────────────────────────────────────────────────────
+
+xl:literalForm a owl:DatatypeProperty ;
+ rdfs:domain xl:Label ;
+ rdfs:label "literal form"@en ;
+ rdfs:comment "The literal form of an xl:Label."@en .
+
+# ── Label Relation ───────────────────────────────────────────────────────
+
+xl:labelRelation a owl:ObjectProperty , owl:SymmetricProperty ;
+ rdfs:domain xl:Label ;
+ rdfs:range xl:Label ;
+ rdfs:label "label relation"@en ;
+ rdfs:comment "Relates two xl:Label instances."@en .
diff --git a/ontologies/reference-docs/skos.ttl b/ontologies/reference-docs/skos.ttl
new file mode 100644
index 0000000..db74338
--- /dev/null
+++ b/ontologies/reference-docs/skos.ttl
@@ -0,0 +1,219 @@
+# SKOS Core Namespace Reference
+#
+# Source: https://www.w3.org/TR/skos-reference/
+# Namespace: http://www.w3.org/2004/02/skos/core#
+# W3C Recommendation 18 August 2009
+#
+# This is a reference copy of the key classes and properties from the
+# SKOS Core vocabulary used by the Glossarist ontology.
+
+@prefix skos: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix dcterms: .
+@prefix xsd: .
+
+ a owl:Ontology ;
+ rdfs:label "SKOS Core"@en ;
+ rdfs:comment "An RDF vocabulary for representing thesauri, classification schemes, taxonomies, and other types of structured controlled vocabulary."@en ;
+ dcterms:title "SKOS Vocabulary"@en ;
+ dcterms:date "2009-08-18"^^xsd:date .
+
+# ── Classes ──────────────────────────────────────────────────────────────
+
+skos:Concept a owl:Class ;
+ rdfs:label "Concept"@en ;
+ rdfs:comment "An idea or notion; a unit of thought."@en ;
+ owl:disjointWith skos:Collection , skos:ConceptScheme .
+
+skos:ConceptScheme a owl:Class ;
+ rdfs:label "Concept Scheme"@en ;
+ rdfs:comment "A set of concepts, optionally including statements about semantic relationships between those concepts."@en ;
+ owl:disjointWith skos:Concept .
+
+skos:Collection a owl:Class ;
+ rdfs:label "Collection"@en ;
+ rdfs:comment "A meaningful collection of concepts."@en ;
+ owl:disjointWith skos:Concept , skos:ConceptScheme .
+
+skos:OrderedCollection a owl:Class ;
+ rdfs:subClassOf skos:Collection ;
+ rdfs:label "Ordered Collection"@en ;
+ rdfs:comment "An ordered collection of concepts, where both the grouping and the ordering are meaningful."@en .
+
+# ── Semantic Relationship Properties ─────────────────────────────────────
+
+skos:broader a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:broaderTransitive ;
+ owl:inverseOf skos:narrower ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has broader"@en ;
+ rdfs:comment "Relates a concept to a concept that is more general in meaning."@en .
+
+skos:narrower a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:narrowerTransitive ;
+ owl:inverseOf skos:broader ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has narrower"@en ;
+ rdfs:comment "Relates a concept to a concept that is more specific in meaning."@en .
+
+skos:related a owl:ObjectProperty , owl:SymmetricProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has related"@en ;
+ rdfs:comment "Relates a concept to a concept with which there is an associative semantic relationship."@en .
+
+skos:broaderTransitive a owl:ObjectProperty , owl:TransitiveProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has broader transitive"@en ;
+ rdfs:comment "skos:broaderTransitive is the transitive closure of skos:broader."@en .
+
+skos:narrowerTransitive a owl:ObjectProperty , owl:TransitiveProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has narrower transitive"@en ;
+ rdfs:comment "skos:narrowerTransitive is the transitive closure of skos:narrower."@en .
+
+# ── Mapping Properties ───────────────────────────────────────────────────
+
+skos:mappingRelation a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:semanticRelation ;
+ rdfs:label "is in mapping relation with"@en ;
+ rdfs:comment "Relates two concepts coming, by convention, from different schemes, and that have comparable meanings."@en .
+
+skos:closeMatch a owl:ObjectProperty , owl:SymmetricProperty ;
+ rdfs:subPropertyOf skos:mappingRelation ;
+ rdfs:label "is in close match with"@en ;
+ rdfs:comment "Relates two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications."@en .
+
+skos:exactMatch a owl:ObjectProperty , owl:SymmetricProperty , owl:TransitiveProperty ;
+ rdfs:subPropertyOf skos:closeMatch ;
+ rdfs:label "has exact match"@en ;
+ rdfs:comment "Relates two concepts having exactly the same meaning."@en .
+
+skos:broadMatch a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:mappingRelation , skos:broader ;
+ owl:inverseOf skos:narrowMatch ;
+ rdfs:label "has broader match"@en ;
+ rdfs:comment "Relates a concept to a concept in a different concept scheme that is more general in meaning."@en .
+
+skos:narrowMatch a owl:ObjectProperty ;
+ rdfs:subPropertyOf skos:mappingRelation , skos:narrower ;
+ owl:inverseOf skos:broadMatch ;
+ rdfs:label "has narrower match"@en ;
+ rdfs:comment "Relates a concept to a concept in a different concept scheme that is more specific in meaning."@en .
+
+skos:relatedMatch a owl:ObjectProperty , owl:SymmetricProperty ;
+ rdfs:subPropertyOf skos:mappingRelation , skos:related ;
+ rdfs:label "has related match"@en ;
+ rdfs:comment "Relates two concepts from different concept schemes that have an associative relationship."@en .
+
+# ── Lexical Label Properties ─────────────────────────────────────────────
+
+skos:prefLabel a owl:AnnotationProperty , owl:DatatypeProperty ;
+ rdfs:subPropertyOf rdfs:label ;
+ rdfs:domain skos:Concept ;
+ rdfs:label "preferred lexical label"@en ;
+ rdfs:comment "The preferred lexical label for a resource, in a given language."@en .
+
+skos:altLabel a owl:AnnotationProperty ;
+ rdfs:subPropertyOf rdfs:label ;
+ rdfs:domain skos:Concept ;
+ rdfs:label "alternative lexical label"@en ;
+ rdfs:comment "An alternative lexical label for a resource."@en .
+
+skos:hiddenLabel a owl:AnnotationProperty ;
+ rdfs:subPropertyOf rdfs:label ;
+ rdfs:domain skos:Concept ;
+ rdfs:label "hidden lexical label"@en ;
+ rdfs:comment "A lexical label for a resource that should be hidden when generating visual displays of the resource, but should still be accessible to free text search operations."@en .
+
+# ── Notation ─────────────────────────────────────────────────────────────
+
+skos:notation a owl:DatatypeProperty ;
+ rdfs:label "notation"@en ;
+ rdfs:comment "A notation, also known as classification code, is a string of characters such as 'UBA' or 'LCS-15' that can be used to identify a concept within the context of a given concept scheme."@en .
+
+# ── Documentation Properties ─────────────────────────────────────────────
+
+skos:note a owl:AnnotationProperty ;
+ rdfs:label "note"@en ;
+ rdfs:comment "A general note, for any purpose."@en .
+
+skos:definition a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "definition"@en ;
+ rdfs:comment "A statement or formal explanation of the meaning of a concept."@en .
+
+skos:scopeNote a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "scope note"@en ;
+ rdfs:comment "A note that helps to clarify the meaning and/or the use of a concept."@en .
+
+skos:example a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "example"@en ;
+ rdfs:comment "An example of the use of a concept."@en .
+
+skos:historyNote a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "history note"@en ;
+ rdfs:comment "A note about the past state/use/meaning of a concept."@en .
+
+skos:editorialNote a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "editorial note"@en ;
+ rdfs:comment "A note for an editor, translator or maintainer of the vocabulary."@en .
+
+skos:changeNote a owl:AnnotationProperty ;
+ rdfs:subPropertyOf skos:note ;
+ rdfs:label "change note"@en ;
+ rdfs:comment "A note about a modification to a concept."@en .
+
+# ── Concept Scheme Properties ────────────────────────────────────────────
+
+skos:inScheme a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:ConceptScheme ;
+ rdfs:label "is in scheme"@en ;
+ rdfs:comment "Relates a resource (for example a concept) to a concept scheme in which it is included."@en .
+
+skos:hasTopConcept a owl:ObjectProperty ;
+ owl:inverseOf skos:topConceptOf ;
+ rdfs:domain skos:ConceptScheme ;
+ rdfs:range skos:Concept ;
+ rdfs:label "has top concept"@en ;
+ rdfs:comment "Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme."@en .
+
+skos:topConceptOf a owl:ObjectProperty ;
+ owl:inverseOf skos:hasTopConcept ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:ConceptScheme ;
+ rdfs:label "is top concept in scheme"@en ;
+ rdfs:comment "Relates a concept to the concept scheme that it is a top level concept of."@en .
+
+# ── Collection Properties ────────────────────────────────────────────────
+
+skos:member a owl:ObjectProperty ;
+ rdfs:domain skos:Collection ;
+ rdfs:range [ a owl:Class ; owl:unionOf ( skos:Concept skos:Collection ) ] ;
+ rdfs:label "has member"@en ;
+ rdfs:comment "Relates a collection to one of its members."@en .
+
+skos:memberList a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain skos:OrderedCollection ;
+ rdfs:range rdf:List ;
+ rdfs:label "has member list"@en ;
+ rdfs:comment "Relates an ordered collection to the RDF list containing its members."@en .
+
+# ── Semantic Relation (super-property) ───────────────────────────────────
+
+skos:semanticRelation a owl:ObjectProperty ;
+ rdfs:domain skos:Concept ;
+ rdfs:range skos:Concept ;
+ rdfs:label "is in semantic relation with"@en ;
+ rdfs:comment "Links a concept to a concept related by meaning."@en .
diff --git a/ontologies/shapes/glossarist.shacl.ttl b/ontologies/shapes/glossarist.shacl.ttl
new file mode 100644
index 0000000..697c6ca
--- /dev/null
+++ b/ontologies/shapes/glossarist.shacl.ttl
@@ -0,0 +1,246 @@
+# Glossarist SHACL Shapes
+#
+# Validation shapes for the Glossarist ontology.
+# Validates instance data against the ontology constraints.
+#
+# Requires: SHACL vocabulary (http://www.w3.org/ns/shacl#)
+
+@prefix gloss: .
+@prefix sh: .
+@prefix skos: .
+@prefix xl: .
+@prefix dcterms: .
+@prefix xsd: .
+@prefix rdf: .
+@prefix rdfs: .
+
+# ══════════════════════════════════════════════════════════════════════════
+# Concept shapes
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:ConceptShape a sh:NodeShape ;
+ sh:targetClass gloss:Concept ;
+ sh:class skos:Concept ;
+ sh:property [
+ sh:path gloss:identifier ;
+ sh:datatype xsd:string ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasLocalization ;
+ sh:class gloss:LocalizedConcept ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasStatus ;
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasDate ;
+ sh:class gloss:ConceptDate ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasSource ;
+ sh:class gloss:ConceptSource ;
+ ] .
+
+gloss:LocalizedConceptShape a sh:NodeShape ;
+ sh:targetClass gloss:LocalizedConcept ;
+ sh:class skos:Concept ;
+ sh:property [
+ sh:path gloss:isLocalizationOf ;
+ sh:class gloss:Concept ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path dcterms:language ;
+ sh:datatype xsd:string ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasDesignation ;
+ sh:class gloss:Designation ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasDefinition ;
+ sh:class gloss:DetailedDefinition ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasEntryStatus ;
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ ] .
+
+# ══════════════════════════════════════════════════════════════════════════
+# Designation shapes
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:DesignationShape a sh:NodeShape ;
+ sh:targetClass gloss:Designation ;
+ sh:class xl:Label ;
+ sh:property [
+ sh:path xl:literalForm ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:normativeStatus ;
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:hasPronunciation ;
+ sh:class gloss:Pronunciation ;
+ ] ;
+ sh:property [
+ sh:path gloss:isInternational ;
+ sh:datatype xsd:boolean ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:isAbsent ;
+ sh:datatype xsd:boolean ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:ExpressionShape a sh:NodeShape ;
+ sh:targetClass gloss:Expression ;
+ sh:property [
+ sh:path gloss:hasGrammarInfo ;
+ sh:class gloss:GrammarInfo ;
+ ] .
+
+gloss:AbbreviationShape a sh:NodeShape ;
+ sh:targetClass gloss:Abbreviation ;
+ sh:property [
+ sh:path gloss:isAcronym ;
+ sh:datatype xsd:boolean ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:isInitialism ;
+ sh:datatype xsd:boolean ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:isTruncation ;
+ sh:datatype xsd:boolean ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:SymbolShape a sh:NodeShape ;
+ sh:targetClass gloss:Symbol .
+
+gloss:LetterSymbolShape a sh:NodeShape ;
+ sh:targetClass gloss:LetterSymbol ;
+ sh:property [
+ sh:path gloss:text ;
+ sh:datatype xsd:string ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:GraphicalSymbolShape a sh:NodeShape ;
+ sh:targetClass gloss:GraphicalSymbol ;
+ sh:property [
+ sh:path gloss:text ;
+ sh:datatype xsd:string ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:image ;
+ sh:datatype xsd:anyURI ;
+ sh:maxCount 1 ;
+ ] .
+
+# ══════════════════════════════════════════════════════════════════════════
+# Supporting class shapes
+# ══════════════════════════════════════════════════════════════════════════
+
+gloss:PronunciationShape a sh:NodeShape ;
+ sh:targetClass gloss:Pronunciation ;
+ sh:property [
+ sh:path gloss:pronunciationContent ;
+ sh:datatype xsd:string ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:DetailedDefinitionShape a sh:NodeShape ;
+ sh:targetClass gloss:DetailedDefinition ;
+ sh:property [
+ sh:path rdf:value ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:ConceptSourceShape a sh:NodeShape ;
+ sh:targetClass gloss:ConceptSource ;
+ sh:property [
+ sh:path gloss:sourceType ;
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:sourceStatus ;
+ sh:class skos:Concept ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:sourceOrigin ;
+ sh:class gloss:Citation ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:ConceptDateShape a sh:NodeShape ;
+ sh:targetClass gloss:ConceptDate ;
+ sh:property [
+ sh:path gloss:dateValue ;
+ sh:datatype xsd:dateTime ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:dateType ;
+ sh:class skos:Concept ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:NonVerbalRepresentationShape a sh:NodeShape ;
+ sh:targetClass gloss:NonVerbalRepresentation ;
+ sh:property [
+ sh:path gloss:representationType ;
+ sh:datatype xsd:string ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:in ( "image" "table" "formula" ) ;
+ ] ;
+ sh:property [
+ sh:path gloss:representationRef ;
+ sh:datatype xsd:anyURI ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] .
+
+gloss:CitationShape a sh:NodeShape ;
+ sh:targetClass gloss:Citation ;
+ sh:or (
+ [ sh:property [ sh:path gloss:citationText ; sh:minCount 1 ] ]
+ [ sh:property [ sh:path gloss:citationSource ; sh:minCount 1 ] ]
+ ) .
+
+gloss:LocalityShape a sh:NodeShape ;
+ sh:targetClass gloss:Locality ;
+ sh:property [
+ sh:path gloss:localityType ;
+ sh:datatype xsd:string ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ ] ;
+ sh:property [
+ sh:path gloss:referenceFrom ;
+ sh:datatype xsd:string ;
+ sh:maxCount 1 ;
+ ] .
diff --git a/ontologies/taxonomies/concept-status.ttl b/ontologies/taxonomies/concept-status.ttl
new file mode 100644
index 0000000..96a1e4d
--- /dev/null
+++ b/ontologies/taxonomies/concept-status.ttl
@@ -0,0 +1,51 @@
+# Concept Status Taxonomy
+#
+# SKOS ConceptScheme for managed concept lifecycle status values.
+# Source: ISO 10241-1, glossarist config.yml concept.status
+
+@prefix gloss: .
+@prefix skos: .
+@prefix rdfs: .
+@prefix dcterms: .
+
+gloss:status a skos:ConceptScheme ;
+ skos:prefLabel "Concept Status"@en ;
+ skos:definition "Lifecycle status of a managed terminology concept."@en ;
+ dcterms:source .
+
+gloss:status/draft a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "draft"@en ;
+ skos:definition "The concept is in draft form and has not yet been submitted."@en .
+
+gloss:status/submitted a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "submitted"@en ;
+ skos:definition "The concept has been submitted for review."@en .
+
+gloss:status/not_valid a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "not valid"@en ;
+ skos:definition "The concept has been reviewed and is not valid."@en .
+
+gloss:status/invalid a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "invalid"@en ;
+ skos:definition "The concept is invalid."@en .
+
+gloss:status/valid a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "valid"@en ;
+ skos:definition "The concept has been reviewed and is valid."@en .
+
+gloss:status/superseded a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "superseded"@en ;
+ skos:definition "The concept has been superseded by a newer version."@en .
+
+gloss:status/retired a skos:Concept ;
+ skos:inScheme gloss:status ;
+ skos:prefLabel "retired"@en ;
+ skos:definition "The concept has been retired from active use."@en .
+
+gloss:status skos:hasTopConcept gloss:status/draft , gloss:status/valid , gloss:status/retired .
diff --git a/ontologies/taxonomies/designation-type.ttl b/ontologies/taxonomies/designation-type.ttl
new file mode 100644
index 0000000..882ebf3
--- /dev/null
+++ b/ontologies/taxonomies/designation-type.ttl
@@ -0,0 +1,48 @@
+# Designation Type Taxonomy
+#
+# SKOS ConceptScheme for designation types.
+# Source: glossarist config.yml, schemas/v2/localized-concept designation discriminator
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:desig a skos:ConceptScheme ;
+ skos:prefLabel "Designation Type"@en ;
+ skos:definition "Type of designation (term, symbol, abbreviation) for a concept."@en ;
+ dcterms:source .
+
+gloss:desig/expression a skos:Concept ;
+ skos:inScheme gloss:desig ;
+ skos:prefLabel "expression"@en ;
+ skos:definition "A word or phrase used as a designation."@en ;
+ rdfs:seeAlso gloss:Expression .
+
+gloss:desig/abbreviation a skos:Concept ;
+ skos:inScheme gloss:desig ;
+ skos:prefLabel "abbreviation"@en ;
+ skos:definition "A shortened form of a word or phrase (acronym, initialism, or truncation)."@en ;
+ skos:broader gloss:desig/expression ;
+ rdfs:seeAlso gloss:Abbreviation .
+
+gloss:desig/symbol a skos:Concept ;
+ skos:inScheme gloss:desig ;
+ skos:prefLabel "symbol"@en ;
+ skos:definition "A non-letter symbol representing a concept."@en ;
+ rdfs:seeAlso gloss:Symbol .
+
+gloss:desig/letter_symbol a skos:Concept ;
+ skos:inScheme gloss:desig ;
+ skos:prefLabel "letter symbol"@en ;
+ skos:definition "A single letter used as a symbol."@en ;
+ skos:broader gloss:desig/symbol ;
+ rdfs:seeAlso gloss:LetterSymbol .
+
+gloss:desig/graphical_symbol a skos:Concept ;
+ skos:inScheme gloss:desig ;
+ skos:prefLabel "graphical symbol"@en ;
+ skos:definition "An iconic or graphical symbol."@en ;
+ skos:broader gloss:desig/symbol ;
+ rdfs:seeAlso gloss:GraphicalSymbol .
+
+gloss:desig skos:hasTopConcept gloss:desig/expression , gloss:desig/symbol .
diff --git a/ontologies/taxonomies/entry-status.ttl b/ontologies/taxonomies/entry-status.ttl
new file mode 100644
index 0000000..518a6f9
--- /dev/null
+++ b/ontologies/taxonomies/entry-status.ttl
@@ -0,0 +1,35 @@
+# Entry Status Taxonomy
+#
+# SKOS ConceptScheme for localized concept entry lifecycle status.
+# Source: ISO 10241-1, glossarist config.yml localized-concept entry_status
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:entstatus a skos:ConceptScheme ;
+ skos:prefLabel "Entry Status"@en ;
+ skos:definition "Lifecycle status of a localized concept entry within a glossary."@en ;
+ dcterms:source .
+
+gloss:entstatus/valid a skos:Concept ;
+ skos:inScheme gloss:entstatus ;
+ skos:prefLabel "valid"@en ;
+ skos:definition "The localized entry is valid and current."@en .
+
+gloss:entstatus/not_valid a skos:Concept ;
+ skos:inScheme gloss:entstatus ;
+ skos:prefLabel "not valid"@en ;
+ skos:definition "The localized entry is not valid."@en .
+
+gloss:entstatus/superseded a skos:Concept ;
+ skos:inScheme gloss:entstatus ;
+ skos:prefLabel "superseded"@en ;
+ skos:definition "The localized entry has been superseded by a newer version."@en .
+
+gloss:entstatus/retired a skos:Concept ;
+ skos:inScheme gloss:entstatus ;
+ skos:prefLabel "retired"@en ;
+ skos:definition "The localized entry has been retired from active use."@en .
+
+gloss:entstatus skos:hasTopConcept gloss:entstatus/valid , gloss:entstatus/retired .
diff --git a/ontologies/taxonomies/grammar-gender.ttl b/ontologies/taxonomies/grammar-gender.ttl
new file mode 100644
index 0000000..7c6fe4c
--- /dev/null
+++ b/ontologies/taxonomies/grammar-gender.ttl
@@ -0,0 +1,39 @@
+# Grammar Gender Taxonomy
+#
+# SKOS ConceptScheme for grammatical gender values.
+# Source: ISO 12620, glossarist config.yml grammar_info.gender
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:gender a skos:ConceptScheme ;
+ skos:prefLabel "Grammar Gender"@en ;
+ skos:definition "Grammatical gender classification for designations."@en ;
+ dcterms:source .
+
+gloss:gender/m a skos:Concept ;
+ skos:inScheme gloss:gender ;
+ skos:prefLabel "masculine"@en ;
+ skos:altLabel "m"@en ;
+ skos:definition "Masculine grammatical gender."@en .
+
+gloss:gender/f a skos:Concept ;
+ skos:inScheme gloss:gender ;
+ skos:prefLabel "feminine"@en ;
+ skos:altLabel "f"@en ;
+ skos:definition "Feminine grammatical gender."@en .
+
+gloss:gender/n a skos:Concept ;
+ skos:inScheme gloss:gender ;
+ skos:prefLabel "neuter"@en ;
+ skos:altLabel "n"@en ;
+ skos:definition "Neuter grammatical gender."@en .
+
+gloss:gender/c a skos:Concept ;
+ skos:inScheme gloss:gender ;
+ skos:prefLabel "common"@en ;
+ skos:altLabel "c"@en ;
+ skos:definition "Common grammatical gender (combined masculine/feminine)."@en .
+
+gloss:gender skos:hasTopConcept gloss:gender/m , gloss:gender/f , gloss:gender/n , gloss:gender/c .
diff --git a/ontologies/taxonomies/grammar-number.ttl b/ontologies/taxonomies/grammar-number.ttl
new file mode 100644
index 0000000..24b1092
--- /dev/null
+++ b/ontologies/taxonomies/grammar-number.ttl
@@ -0,0 +1,30 @@
+# Grammar Number Taxonomy
+#
+# SKOS ConceptScheme for grammatical number values.
+# Source: ISO 12620, glossarist config.yml grammar_info.number
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:number a skos:ConceptScheme ;
+ skos:prefLabel "Grammar Number"@en ;
+ skos:definition "Grammatical number classification for designations."@en ;
+ dcterms:source .
+
+gloss:number/singular a skos:Concept ;
+ skos:inScheme gloss:number ;
+ skos:prefLabel "singular"@en ;
+ skos:definition "Singular grammatical number (one item)."@en .
+
+gloss:number/dual a skos:Concept ;
+ skos:inScheme gloss:number ;
+ skos:prefLabel "dual"@en ;
+ skos:definition "Dual grammatical number (two items)."@en .
+
+gloss:number/plural a skos:Concept ;
+ skos:inScheme gloss:number ;
+ skos:prefLabel "plural"@en ;
+ skos:definition "Plural grammatical number (more than one item)."@en .
+
+gloss:number skos:hasTopConcept gloss:number/singular , gloss:number/dual , gloss:number/plural .
diff --git a/ontologies/taxonomies/normative-status.ttl b/ontologies/taxonomies/normative-status.ttl
new file mode 100644
index 0000000..a3deb80
--- /dev/null
+++ b/ontologies/taxonomies/normative-status.ttl
@@ -0,0 +1,46 @@
+# Normative Status Taxonomy
+#
+# SKOS ConceptScheme for designation normative status.
+# Source: ISO 10241-1, glossarist config.yml designation.base.normative_status
+#
+# Alignment with ISO 25964:
+# gloss:norm/preferred → also typed as iso-thes:PreferredTerm
+# gloss:norm/admitted → also typed as iso-thes:SimpleNonPreferredTerm
+# gloss:norm/deprecated → also typed as iso-thes:SimpleNonPreferredTerm
+# gloss:norm/superseded → also typed as iso-thes:SimpleNonPreferredTerm
+
+@prefix gloss: .
+@prefix skos: .
+@prefix iso-thes: .
+@prefix dcterms: .
+
+gloss:norm a skos:ConceptScheme ;
+ skos:prefLabel "Normative Status"@en ;
+ skos:definition "Normative status of a designation within a concept entry."@en ;
+ dcterms:source .
+
+gloss:norm/preferred a skos:Concept , iso-thes:PreferredTerm ;
+ skos:inScheme gloss:norm ;
+ skos:prefLabel "preferred"@en ;
+ skos:definition "The preferred designation for this concept in this language."@en ;
+ rdfs:seeAlso iso-thes:PreferredTerm .
+
+gloss:norm/admitted a skos:Concept , iso-thes:SimpleNonPreferredTerm ;
+ skos:inScheme gloss:norm ;
+ skos:prefLabel "admitted"@en ;
+ skos:definition "An admitted (accepted but not preferred) designation."@en ;
+ rdfs:seeAlso iso-thes:SimpleNonPreferredTerm .
+
+gloss:norm/deprecated a skos:Concept , iso-thes:SimpleNonPreferredTerm ;
+ skos:inScheme gloss:norm ;
+ skos:prefLabel "deprecated"@en ;
+ skos:definition "A deprecated designation that should no longer be used."@en ;
+ rdfs:seeAlso iso-thes:SimpleNonPreferredTerm .
+
+gloss:norm/superseded a skos:Concept , iso-thes:SimpleNonPreferredTerm ;
+ skos:inScheme gloss:norm ;
+ skos:prefLabel "superseded"@en ;
+ skos:definition "A superseded designation that has been replaced."@en ;
+ rdfs:seeAlso iso-thes:SimpleNonPreferredTerm .
+
+gloss:norm skos:hasTopConcept gloss:norm/preferred .
diff --git a/ontologies/taxonomies/relationship-type.ttl b/ontologies/taxonomies/relationship-type.ttl
new file mode 100644
index 0000000..60d7b31
--- /dev/null
+++ b/ontologies/taxonomies/relationship-type.ttl
@@ -0,0 +1,112 @@
+# Relationship Type Taxonomy
+#
+# SKOS ConceptScheme for glossarist-specific concept relationship types.
+# Only includes types that have NO standard SKOS or iso-thes equivalent.
+#
+# Types NOT included here (reused directly from standards):
+# skos:broader / skos:narrower
+# skos:exactMatch / skos:closeMatch
+# skos:broadMatch / skos:narrowMatch / skos:relatedMatch
+# skos:related
+# iso-thes:broaderGeneric / iso-thes:narrowerGeneric
+# iso-thes:broaderPartitive / iso-thes:narrowerPartitive
+# iso-thes:broaderInstantial / iso-thes:narrowerInstantial
+#
+# Source: ISO 10241-1, ISO 12620/TBX, glossarist config.yml related_concept.type
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:rel a skos:ConceptScheme ;
+ skos:prefLabel "Relationship Type"@en ;
+ skos:definition """
+ Typed relationships between concepts that have no standard SKOS or
+ ISO 25964 equivalent. Standard relationship types (broader, narrower,
+ exactMatch, etc.) are reused directly from SKOS and iso-thes vocabularies.
+ """@en ;
+ dcterms:source .
+
+# ── Lifecycle ────────────────────────────────────────────────────────────
+
+gloss:rel/deprecates a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "deprecates"@en ;
+ skos:definition "This concept deprecates another concept."@en .
+
+gloss:rel/supersedes a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "supersedes"@en ;
+ skos:definition "This concept supersedes another concept."@en .
+
+gloss:rel/superseded_by a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "superseded by"@en ;
+ skos:definition "This concept has been superseded by another concept."@en .
+
+# ── Comparative ──────────────────────────────────────────────────────────
+
+gloss:rel/compare a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "compare"@en ;
+ skos:definition "This concept is compared to another concept (ISO 10241-1)."@en .
+
+gloss:rel/contrast a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "contrast"@en ;
+ skos:definition "This concept contrasts with another concept (ISO 10241-1)."@en .
+
+# ── Associative (glossarist-specific sub-types) ──────────────────────────
+
+gloss:rel/related_concept_broader a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "related concept (broader)"@en ;
+ skos:definition "Associative relationship to a concept with broader scope (ISO 25964 / TBX)."@en .
+
+gloss:rel/related_concept_narrower a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "related concept (narrower)"@en ;
+ skos:definition "Associative relationship to a concept with narrower scope (ISO 25964 / TBX)."@en .
+
+# ── Spatiotemporal ───────────────────────────────────────────────────────
+
+gloss:rel/sequentially_related a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "sequentially related"@en ;
+ skos:definition "Sequential spatiotemporal relationship (ISO 25964 / TBX)."@en .
+
+gloss:rel/spatially_related a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "spatially related"@en ;
+ skos:definition "Spatial relationship (ISO 25964 / TBX)."@en .
+
+gloss:rel/temporally_related a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "temporally related"@en ;
+ skos:definition "Temporal relationship (ISO 25964 / TBX)."@en .
+
+# ── Lexical ──────────────────────────────────────────────────────────────
+
+gloss:rel/homograph a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "homograph"@en ;
+ skos:definition "This concept has a homograph in another entry (ISO 12620 / TBX)."@en .
+
+gloss:rel/false_friend a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "false friend"@en ;
+ skos:definition "This concept has a false friend in another language (ISO 12620 / TBX)."@en .
+
+# ── Designation-level ────────────────────────────────────────────────────
+
+gloss:rel/abbreviated_form_for a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "abbreviated form for"@en ;
+ skos:definition "This designation is an abbreviated form of another designation."@en .
+
+gloss:rel/short_form_for a skos:Concept ;
+ skos:inScheme gloss:rel ;
+ skos:prefLabel "short form for"@en ;
+ skos:definition "This designation is a short form of another designation."@en .
+
+gloss:rel skos:hasTopConcept gloss:rel/deprecates , gloss:rel/compare , gloss:rel/sequentially_related , gloss:rel/homograph , gloss:rel/abbreviated_form_for .
diff --git a/ontologies/taxonomies/source-status.ttl b/ontologies/taxonomies/source-status.ttl
new file mode 100644
index 0000000..13860df
--- /dev/null
+++ b/ontologies/taxonomies/source-status.ttl
@@ -0,0 +1,65 @@
+# Source Status Taxonomy
+#
+# SKOS ConceptScheme for concept source status values.
+# Source: ISO 10241-1, glossarist config.yml concept_source.status
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:srcstatus a skos:ConceptScheme ;
+ skos:prefLabel "Source Status"@en ;
+ skos:definition "Status of the concept relative to the bibliographic source."@en ;
+ dcterms:source .
+
+gloss:srcstatus/identical a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "identical"@en ;
+ skos:definition "The concept is identical to the source."@en .
+
+gloss:srcstatus/similar a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "similar"@en ;
+ skos:definition "The concept is similar to the source."@en .
+
+gloss:srcstatus/modified a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "modified"@en ;
+ skos:definition "The concept has been modified from the source."@en .
+
+gloss:srcstatus/restyle a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "restyle"@en ;
+ skos:definition "The concept has been restyled from the source (editorial changes only)."@en .
+
+gloss:srcstatus/context_added a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "context added"@en ;
+ skos:definition "Context has been added to the concept beyond the source."@en .
+
+gloss:srcstatus/generalisation a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "generalisation"@en ;
+ skos:definition "The concept is a generalisation of the source concept."@en .
+
+gloss:srcstatus/specialisation a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "specialisation"@en ;
+ skos:definition "The concept is a specialisation of the source concept."@en .
+
+gloss:srcstatus/unspecified a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "unspecified"@en ;
+ skos:definition "The relationship to the source is unspecified."@en .
+
+gloss:srcstatus/related a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "related"@en ;
+ skos:definition "The concept is related to the source."@en .
+
+gloss:srcstatus/not_equal a skos:Concept ;
+ skos:inScheme gloss:srcstatus ;
+ skos:prefLabel "not equal"@en ;
+ skos:definition "The concept is not equal to the source."@en .
+
+gloss:srcstatus skos:hasTopConcept gloss:srcstatus/identical , gloss:srcstatus/modified , gloss:srcstatus/unspecified .
diff --git a/ontologies/taxonomies/source-type.ttl b/ontologies/taxonomies/source-type.ttl
new file mode 100644
index 0000000..e432252
--- /dev/null
+++ b/ontologies/taxonomies/source-type.ttl
@@ -0,0 +1,25 @@
+# Source Type Taxonomy
+#
+# SKOS ConceptScheme for concept source types.
+# Source: ISO 10241-1, glossarist config.yml concept_source.type
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:srctype a skos:ConceptScheme ;
+ skos:prefLabel "Source Type"@en ;
+ skos:definition "Type of bibliographic source for a concept or designation."@en ;
+ dcterms:source .
+
+gloss:srctype/authoritative a skos:Concept ;
+ skos:inScheme gloss:srctype ;
+ skos:prefLabel "authoritative"@en ;
+ skos:definition "The concept is directly sourced from an authoritative standard or document."@en .
+
+gloss:srctype/lineage a skos:Concept ;
+ skos:inScheme gloss:srctype ;
+ skos:prefLabel "lineage"@en ;
+ skos:definition "The concept's lineage or historical reference."@en .
+
+gloss:srctype skos:hasTopConcept gloss:srctype/authoritative , gloss:srctype/lineage .
diff --git a/ontologies/taxonomies/term-type.ttl b/ontologies/taxonomies/term-type.ttl
new file mode 100644
index 0000000..1d4dddd
--- /dev/null
+++ b/ontologies/taxonomies/term-type.ttl
@@ -0,0 +1,151 @@
+# Term Type Taxonomy (ISO 12620)
+#
+# SKOS ConceptScheme for ISO 12620 term type classification.
+# Source: ISO 12620, glossarist config.yml iso12620.term_type
+#
+# 24 term types organized by category:
+# Orthographic / structural (9)
+# Symbolic / formulaic (4)
+# Usage / provenance (11)
+
+@prefix gloss: .
+@prefix skos: .
+@prefix dcterms: .
+
+gloss:termtype a skos:ConceptScheme ;
+ skos:prefLabel "Term Type"@en ;
+ skos:definition """
+ ISO 12620 term type classification for designations. A categorization
+ of a term with respect to formal representations or where/how it is used.
+ """@en ;
+ dcterms:source .
+
+# ── Orthographic / Structural ────────────────────────────────────────────
+
+gloss:termtype/abbreviation a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "abbreviation"@en ;
+ skos:definition "A shortened form of a word or phrase."@en .
+
+gloss:termtype/acronym a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "acronym"@en ;
+ skos:definition "An abbreviation formed from initial letters, pronounced as a word."@en ;
+ skos:broader gloss:termtype/abbreviation .
+
+gloss:termtype/clipped_term a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "clipped term"@en ;
+ skos:definition "A term formed by shortening a longer term."@en .
+
+gloss:termtype/full_form a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "full form"@en ;
+ skos:definition "The complete, unabbreviated form of a term."@en .
+
+gloss:termtype/initialism a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "initialism"@en ;
+ skos:definition "An abbreviation formed from initial letters, each pronounced separately."@en ;
+ skos:broader gloss:termtype/abbreviation .
+
+gloss:termtype/short_form a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "short form"@en ;
+ skos:definition "A shortened form of a term."@en .
+
+gloss:termtype/transliterated_form a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "transliterated form"@en ;
+ skos:definition "A term that has been converted from one script to another."@en .
+
+gloss:termtype/transcribed_form a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "transcribed form"@en ;
+ skos:definition "A term that has been phonetically transcribed into another script."@en .
+
+gloss:termtype/variant a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "variant"@en ;
+ skos:definition "An alternative spelling or form of a term."@en .
+
+# ── Symbolic / Formulaic ─────────────────────────────────────────────────
+
+gloss:termtype/equation a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "equation"@en ;
+ skos:definition "A mathematical equation used as a term."@en .
+
+gloss:termtype/formula a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "formula"@en ;
+ skos:definition "A mathematical formula used as a term."@en .
+
+gloss:termtype/logical_expression a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "logical expression"@en ;
+ skos:definition "A logical expression used as a term."@en .
+
+gloss:termtype/symbol a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "symbol"@en ;
+ skos:definition "A symbol used as a term."@en .
+
+# ── Usage / Provenance ───────────────────────────────────────────────────
+
+gloss:termtype/common_name a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "common name"@en ;
+ skos:definition "A non-scientific, commonly used name."@en .
+
+gloss:termtype/entry_term a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "entry term"@en ;
+ skos:definition "The primary term for a concept entry."@en .
+
+gloss:termtype/internationalism a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "internationalism"@en ;
+ skos:definition "A term that is used internationally across multiple languages."@en .
+
+gloss:termtype/international_scientific_term a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "international scientific term"@en ;
+ skos:definition "A term established by an international scientific body."@en .
+
+gloss:termtype/part_number a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "part number"@en ;
+ skos:definition "A part number used as a term."@en .
+
+gloss:termtype/phraseological_unit a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "phraseological unit"@en ;
+ skos:definition "A fixed phrase or collocation used as a term."@en .
+
+gloss:termtype/shortcut a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "shortcut"@en ;
+ skos:definition "A shortcut or quick reference used as a term."@en .
+
+gloss:termtype/sku a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "SKU"@en ;
+ skos:definition "A stock keeping unit identifier used as a term."@en .
+
+gloss:termtype/standard_text a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "standard text"@en ;
+ skos:definition "Standardized text used as a term."@en .
+
+gloss:termtype/synonym a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "synonym"@en ;
+ skos:definition "A synonym of the primary term."@en .
+
+gloss:termtype/synonymous_phrase a skos:Concept ;
+ skos:inScheme gloss:termtype ;
+ skos:prefLabel "synonymous phrase"@en ;
+ skos:definition "A phrase that is synonymous with the primary term."@en .
+
+gloss:termtype skos:hasTopConcept gloss:termtype/full_form , gloss:termtype/abbreviation , gloss:termtype/symbol , gloss:termtype/entry_term .
diff --git a/schemas/v2/concept.yaml b/schemas/v2/concept.yaml
index 19b5565..cc40774 100644
--- a/schemas/v2/concept.yaml
+++ b/schemas/v2/concept.yaml
@@ -23,6 +23,11 @@ properties:
examples:
- "1234"
- "foobar"
+ uri:
+ type: string
+ description: Optional URI for the concept
+ examples:
+ - "https://example.org/concepts/1234"
localized_concepts:
type: object
description: Three digit language code followed by the `id` of the localization for that language.
@@ -33,6 +38,11 @@ properties:
$ref: "#/$defs/iso639_three_char_code"
additionalProperties:
type: string
+ domains:
+ type: array
+ items:
+ $ref: "#/$defs/concept_reference"
+ description: Domain/subject area references (replaces legacy groups field).
related:
type: array
items:
@@ -64,7 +74,9 @@ $defs:
description: The normative status of the managed term.
enum:
- draft
+ - submitted
- not_valid
+ - invalid
- valid
- superseded
- retired
@@ -101,8 +113,10 @@ $defs:
type:
$ref: "#/$defs/related_concept_type"
ref:
- type: string
description: Reference to the related concept
+ oneOf:
+ - type: string
+ - $ref: "#/$defs/concept_reference"
content:
type: string
description: Content describing the relationship
@@ -112,15 +126,64 @@ $defs:
type: string
description: The relation of a term to the current term.
enum:
+ # Lifecycle
- deprecates
- supersedes
- - narrower
+ - superseded_by
+ # Hierarchical (SKOS)
- broader
+ - narrower
+ # ISO 25964 generic
+ - broader_generic
+ - narrower_generic
+ # ISO 25964 partitive
+ - broader_partitive
+ - narrower_partitive
+ # ISO 25964 instantial
+ - broader_instantial
+ - narrower_instantial
+ # SKOS mapping
- equivalent
+ - close_match
+ - broad_match
+ - narrow_match
+ - related_match
+ # Associative (SKOS)
+ - see
+ - related_concept
+ - related_concept_broader
+ - related_concept_narrower
+ # Comparative
- compare
- contrast
- - see
- - see-also
+ # Spatiotemporal
+ - sequentially_related
+ - spatially_related
+ - temporally_related
+ # Lexical
+ - homograph
+ - false_friend
+ # Designation-level
+ - abbreviated_form_for
+ - short_form_for
+
+ # Concept Reference
+ concept_reference:
+ type: object
+ description: A typed reference to another concept (local or external).
+ properties:
+ concept_id:
+ type: string
+ description: The target concept identifier.
+ source:
+ type: string
+ description: URN prefix for external references.
+ ref_type:
+ type: string
+ description: The type of reference (domain, relationship, etc.).
+ urn:
+ type: string
+ description: Direct URN reference.
# Concept Source
concept_source:
@@ -132,17 +195,10 @@ $defs:
status:
$ref: "#/$defs/concept_source_status"
origin:
- type: object
- properties:
- ref:
- type: string
- clause:
- type: string
- link:
- type: string
- link:
+ $ref: "#/$defs/citation"
+ modification:
type: string
- description: Link of the source
+ description: How the concept was modified from the source.
# Concept Source Type enum
concept_source_type:
@@ -151,22 +207,78 @@ $defs:
enum:
- authoritative
- lineage
- examples:
- - authoritative
- - lineage
# Concept Source Status enum
concept_source_status:
type: string
- description: The status of the managed term in the present context, relative to the term as found in the bibliographic source.
+ description: The status of the managed term relative to the source.
enum:
- identical
+ - similar
- modified
- - restyled
- - context-added
+ - restyle
+ - context_added
- generalisation
- specialisation
- unspecified
+ - related
+ - not_equal
+
+ # Citation
+ citation:
+ type: object
+ description: A bibliographic citation.
+ properties:
+ text:
+ type: string
+ source:
+ type: string
+ id:
+ type: string
+ version:
+ type: string
+ locality:
+ $ref: "#/$defs/locality"
+ link:
+ type: string
+ original:
+ type: string
+ ref:
+ description: Reference identifier (string or structured hash).
+ oneOf:
+ - type: string
+ - type: object
+ properties:
+ source:
+ type: string
+ id:
+ type: string
+ version:
+ type: string
+ clause:
+ type: string
+ custom_locality:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+
+ # Locality
+ locality:
+ type: object
+ description: A locality within a cited document.
+ properties:
+ type:
+ type: string
+ description: Type of the locality (section, clause, page, etc.)
+ reference_from:
+ type: string
+ reference_to:
+ type: string
# Data Types
iso639_three_char_code:
diff --git a/schemas/v2/examples/01-minimal-concept.yaml b/schemas/v2/examples/01-minimal-concept.yaml
new file mode 100644
index 0000000..ff79a8d
--- /dev/null
+++ b/schemas/v2/examples/01-minimal-concept.yaml
@@ -0,0 +1,36 @@
+# 01 — Minimal Concept
+#
+# The smallest valid managed concept: an id, a localization map, and status.
+# Demonstrates identity, localization map, and lifecycle metadata.
+
+---
+id: "113-01-01"
+data:
+ identifier: "113-01-01"
+
+ # Optional URI reference for the concept (external representation)
+ uri: "urn:iec:std:iec:60050-113-01-01"
+
+ # Maps ISO 639 language codes to localized concept UUIDs.
+ # The actual localized concept data lives in separate files.
+ localized_concepts:
+ eng: a1b2c3d4-e5f6-7890-abcd-ef1234567890
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-113"
+ version: "2011"
+
+status: valid
+
+# Simplified date — internally mapped to ConceptDate(type: accepted)
+date_accepted: "2011-04-01T00:00:00+00:00"
+
+# Structured dates are also supported:
+# dates:
+# - date: "2011-04-01T00:00:00+00:00"
+# type: accepted
+# - date: "2019-03-01T00:00:00+00:00"
+# type: amended
diff --git a/schemas/v2/examples/01-minimal-localized.yaml b/schemas/v2/examples/01-minimal-localized.yaml
new file mode 100644
index 0000000..14c07ae
--- /dev/null
+++ b/schemas/v2/examples/01-minimal-localized.yaml
@@ -0,0 +1,25 @@
+# 01 — Minimal Localized Concept
+#
+# The smallest valid localized concept: id, language, term, definition, source.
+
+---
+id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "length"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ distance between two points
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-113"
+ version: "2011"
+status: valid
diff --git a/schemas/v2/examples/02-designation-abbreviation.yaml b/schemas/v2/examples/02-designation-abbreviation.yaml
new file mode 100644
index 0000000..ea09ab3
--- /dev/null
+++ b/schemas/v2/examples/02-designation-abbreviation.yaml
@@ -0,0 +1,53 @@
+# 02 — Designation: Abbreviation
+#
+# Abbreviation designations extend Expression with type booleans:
+# acronym, initialism, truncation. Also supports designation-level relationships.
+
+---
+id: c1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: eng
+
+ terms:
+ # Full form (preferred)
+ - type: expression
+ designation: "Light Emitting Diode"
+ normative_status: preferred
+
+ # Acronym — pronounced as a word
+ - type: abbreviation
+ designation: "LED"
+ normative_status: admitted
+ acronym: true
+ # Designation-level relationship: this abbreviation is the
+ # abbreviated form of the preferred term above
+ related:
+ - type: abbreviated_form_for
+ target: "Light Emitting Diode"
+
+ # Another example: initialism (each letter pronounced separately)
+ - type: abbreviation
+ designation: "HTML"
+ normative_status: admitted
+ initialism: true
+
+ # Truncation — shortened by cutting off the end
+ - type: abbreviation
+ designation: "app"
+ normative_status: admitted
+ truncation: true
+ related:
+ - type: short_form_for
+ target: "application"
+
+ definition:
+ - content: >-
+ a semiconductor device that emits light when current flows through it
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-521"
+ version: "2002"
+status: valid
diff --git a/schemas/v2/examples/02-designation-expression.yaml b/schemas/v2/examples/02-designation-expression.yaml
new file mode 100644
index 0000000..3370d09
--- /dev/null
+++ b/schemas/v2/examples/02-designation-expression.yaml
@@ -0,0 +1,123 @@
+# 02 — Designation: Expression
+#
+# Expression designations are words or phrases — the most common type.
+# Shows normative_status, grammar_info, usage_info, field_of_application,
+# term_type (ISO 12620), and designation-level sources.
+
+---
+id: b1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: eng
+
+ terms:
+ # Preferred term with full grammar info (noun, singular)
+ - type: expression
+ designation: "color"
+ normative_status: preferred
+ geographical_area: US
+ grammar_info:
+ - noun: true
+ number: singular
+ term_type: full_form
+
+ # Admitted alternative — different geographical area
+ - type: expression
+ designation: "colour"
+ normative_status: admitted
+ geographical_area: GB
+ grammar_info:
+ - noun: true
+ number: singular
+ term_type: variant
+
+ # Deprecated term with usage context and part-of-speech
+ - type: expression
+ designation: "colour signal"
+ normative_status: deprecated
+ usage_info: "television"
+ field_of_application: "in analogue television"
+ grammar_info:
+ - noun: true
+ number: singular
+ term_type: entry_term
+
+ # Verb form with its own grammar info
+ - type: expression
+ designation: "to color"
+ normative_status: admitted
+ grammar_info:
+ - verb: true
+ term_type: full_form
+
+ # Adjective form — dual gender, plural number
+ - type: expression
+ designation: "colorful"
+ normative_status: admitted
+ grammar_info:
+ - adj: true
+ gender: [m, f]
+ number: plural
+
+ # Adverb form
+ - type: expression
+ designation: "colorfully"
+ normative_status: admitted
+ grammar_info:
+ - adverb: true
+
+ # Participle form
+ - type: expression
+ designation: "coloring"
+ normative_status: admitted
+ grammar_info:
+ - participle: true
+
+ # Preposition usage
+ - type: expression
+ designation: "in color"
+ normative_status: admitted
+ grammar_info:
+ - preposition: true
+
+ # Expression with prefix
+ - type: expression
+ designation: "color"
+ normative_status: admitted
+ prefix: "non-"
+ usage_info: "pigment chemistry"
+
+ # Common name term type (ISO 12620)
+ - type: expression
+ designation: "sun"
+ normative_status: admitted
+ term_type: common_name
+
+ # Synonym (ISO 12620)
+ - type: expression
+ designation: "hue"
+ normative_status: admitted
+ term_type: synonym
+
+ # Designation-level source (ISO 10241-1 §6.8)
+ - type: expression
+ designation: "chromatic"
+ normative_status: admitted
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "IEC"
+ id: "60050-845"
+ version: "2020"
+
+ definition:
+ - content: >-
+ visual sensation produced by light of a specific wavelength
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-845"
+ version: "2020"
+status: valid
diff --git a/schemas/v2/examples/02-designation-symbol.yaml b/schemas/v2/examples/02-designation-symbol.yaml
new file mode 100644
index 0000000..3104f25
--- /dev/null
+++ b/schemas/v2/examples/02-designation-symbol.yaml
@@ -0,0 +1,44 @@
+# 02 — Designation: Symbol, Letter Symbol, Graphical Symbol
+#
+# Three symbol designation types, each inheriting from Base.
+# Symbols are often international (valid across languages).
+
+---
+id: d1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: eng
+
+ terms:
+ # Symbol — a non-letter symbol
+ - type: symbol
+ designation: "Ω"
+ normative_status: preferred
+ international: true
+
+ # Letter symbol — a letter used as a symbol
+ - type: letter_symbol
+ designation: "R"
+ text: "R"
+ normative_status: admitted
+ international: true
+
+ # Graphical symbol — an iconic or graphical symbol
+ - type: graphical_symbol
+ designation: "warning sign"
+ text: "general warning"
+ image: "⚠"
+ normative_status: preferred
+ international: true
+
+ definition:
+ - content: >-
+ a designation that is not a word or an abbreviation, used to represent
+ a concept in a given language
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+status: valid
diff --git a/schemas/v2/examples/03-pronunciation.yaml b/schemas/v2/examples/03-pronunciation.yaml
new file mode 100644
index 0000000..76b5695
--- /dev/null
+++ b/schemas/v2/examples/03-pronunciation.yaml
@@ -0,0 +1,52 @@
+# 03 — Pronunciation & Per-Designation Language Overrides
+#
+# Pronunciations attach to individual designations. Each pronunciation entry
+# can specify its own language, script, country, and transcription system.
+# Designations can also override the concept-level language/script/system.
+
+---
+id: e1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: jpn
+ script: Hani
+
+ terms:
+ # Japanese term with two pronunciations in different systems
+ - type: expression
+ designation: "東京"
+ normative_status: preferred
+
+ # Multiple pronunciations for different romanization systems
+ pronunciation:
+ # Hepburn romanization (ISO 24229 system code)
+ - content: "Tōkyō"
+ language: jpn
+ script: Latn
+ system: "Var:jpn-Hrkt:Latn:Hepburn-1886"
+
+ # IPA phonetic transcription
+ - content: "toːkjoː"
+ language: jpn
+ script: Latn
+ system: IPA
+
+ # A designation in a different script overrides the concept-level script
+ - type: expression
+ designation: "とうきょう"
+ normative_status: admitted
+ script: Hrkt
+ pronunciation:
+ - content: "Tōkyō"
+ language: jpn
+ script: Latn
+ system: "Var:jpn-Hrkt:Latn:Hepburn-1886"
+
+ definition:
+ - content: >-
+ capital city of Japan
+
+ sources:
+ - type: authoritative
+ origin:
+ text: "Example pronunciation data"
+status: valid
diff --git a/schemas/v2/examples/04-definition-notes-examples.yaml b/schemas/v2/examples/04-definition-notes-examples.yaml
new file mode 100644
index 0000000..dd5f394
--- /dev/null
+++ b/schemas/v2/examples/04-definition-notes-examples.yaml
@@ -0,0 +1,59 @@
+# 04 — Definition, Notes, and Examples
+#
+# Definitions, notes, and examples all use DetailedDefinition —
+# text content with optional per-item sources.
+
+---
+id: f1b2c3d4-e5f6-7890-abcd-ef1234567890
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "resistance"
+ normative_status: preferred
+ grammar_info:
+ - noun: true
+
+ - type: symbol
+ designation: "R"
+ normative_status: admitted
+ international: true
+
+ # Primary definition — can have sources specific to this definition
+ definition:
+ - content: >-
+ quotient of the voltage and the current in a conductor at a given
+ temperature
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-131"
+ version: "2002"
+
+ # Supplementary notes — each is a DetailedDefinition
+ notes:
+ - content: >-
+ Resistance is a property of a conductor and depends on its dimensions,
+ material, and temperature.
+ - content: >-
+ The SI unit of resistance is the ohm (Ω).
+ sources:
+ - type: lineage
+ origin:
+ text: "SI Brochure, 9th edition"
+
+ # Illustrative examples — also DetailedDefinition
+ examples:
+ - content: >-
+ A copper wire 1 m long with a cross-section of 1 mm² has a resistance
+ of approximately 0.017 Ω at 20 °C.
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-131"
+ version: "2002"
+status: valid
diff --git a/schemas/v2/examples/05-domains-localized.yaml b/schemas/v2/examples/05-domains-localized.yaml
new file mode 100644
index 0000000..c4967ae
--- /dev/null
+++ b/schemas/v2/examples/05-domains-localized.yaml
@@ -0,0 +1,34 @@
+# 05 — Domains (Localized): per-language domain URI
+#
+# LocalizedConcept.data.domain is a simple URI string.
+# It can be relative, a URN, or an HTTP URL.
+
+---
+id: 11111111-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ # Per-language domain — URI string (not a ConceptReference)
+ # Three MECE URI forms:
+ domain: "urn:iec:std:iec:60050-103-01"
+ # Alternative forms:
+ # domain: "section-103-01" # relative URI
+ # domain: "https://www.electropedia.org/..." # HTTP URL
+
+ terms:
+ - type: expression
+ designation: "functional"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ relating to a correspondence that associates uniquely to each element
+ of a set an element of another set
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-103"
+ version: "2009"
+status: valid
diff --git a/schemas/v2/examples/05-domains.yaml b/schemas/v2/examples/05-domains.yaml
new file mode 100644
index 0000000..0f55d36
--- /dev/null
+++ b/schemas/v2/examples/05-domains.yaml
@@ -0,0 +1,32 @@
+# 05 — Domains (Classification)
+#
+# Domains classify a concept into subject areas — language-agnostic tags.
+# ManagedConcept.data.domains is a ConceptReference array with ref_type "domain".
+# LocalizedConcept.data.domain is a per-language URI string.
+
+---
+id: "103-01-02"
+data:
+ identifier: "103-01-02"
+ localized_concepts:
+ eng: 11111111-aaaa-bbbb-cccc-dddddddddddd
+
+ # Domains: classification into subject areas
+ # These are ConceptReference objects with ref_type "domain"
+ domains:
+ # Local domain reference
+ - concept_id: "103"
+ source: "urn:iec:std:iec:60050"
+ ref_type: "domain"
+ - concept_id: "103-01"
+ source: "urn:iec:std:iec:60050"
+ ref_type: "domain"
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-103"
+ version: "2009"
+status: valid
+date_accepted: "2009-12-14T00:00:00+00:00"
diff --git a/schemas/v2/examples/06-related-localized-fra.yaml b/schemas/v2/examples/06-related-localized-fra.yaml
new file mode 100644
index 0000000..ecc294b
--- /dev/null
+++ b/schemas/v2/examples/06-related-localized-fra.yaml
@@ -0,0 +1,38 @@
+# 06 — Related Concepts (French — false_friend)
+#
+# The French variant has a `false_friend` relationship (ISO 12620/TBX)
+# that the English variant does not. This demonstrates language-specific
+# relationships.
+
+---
+id: 33333333-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: fra
+
+ terms:
+ - type: expression
+ designation: "mesure"
+ normative_status: preferred
+ grammar_info:
+ - gender: f
+ number: singular
+
+ definition:
+ - content: >-
+ ensemble d'opérations ayant pour but de déterminer la valeur d'une
+ grandeur
+
+ # Language-specific: false_friend only exists in French
+ related:
+ - type: false_friend
+ content: "measure (English, musical sense)"
+ ref:
+ text: "measure"
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/06-related-localized.yaml b/schemas/v2/examples/06-related-localized.yaml
new file mode 100644
index 0000000..ad35826
--- /dev/null
+++ b/schemas/v2/examples/06-related-localized.yaml
@@ -0,0 +1,37 @@
+# 06 — Related Concepts (Language-Specific)
+#
+# LocalizedConcept.data.related holds relationships that only exist in
+# one language variant. For example, French "mesure" has a false_friend
+# relationship that English "measurement" does not.
+
+---
+id: 22222222-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "system"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ set of interrelated elements considered in a defined context as a whole
+ and separated from their environment
+
+ # Language-specific relationships
+ related:
+ # Associative cross-reference
+ - type: see
+ content: "open system"
+ ref:
+ source: "IEC"
+ id: "102-03-05"
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-102"
+ version: "2007"
+status: valid
diff --git a/schemas/v2/examples/06-related-relationships.yaml b/schemas/v2/examples/06-related-relationships.yaml
new file mode 100644
index 0000000..f3a12e6
--- /dev/null
+++ b/schemas/v2/examples/06-related-relationships.yaml
@@ -0,0 +1,202 @@
+# 06 — Related Concepts (All Typed Semantic Relationships)
+#
+# Relationships are typed semantic links between concepts, spanning:
+# - ISO 10241-1: lifecycle (deprecates, supersedes, superseded_by),
+# comparative (compare, contrast), associative (see)
+# - ISO 25964 / SKOS: hierarchical (broader, narrower) with generic/
+# partitive/instantial subtypes, equivalence (equivalent),
+# approximate mapping (close_match, broad_match, narrow_match,
+# related_match)
+# - ISO 12620 / TBX: associative subtypes (related_concept,
+# related_concept_broader, related_concept_narrower),
+# spatiotemporal (sequentially_related, spatially_related,
+# temporally_related), lexical (homograph, false_friend)
+#
+# false_friend and language-specific relationships are demonstrated
+# in the localized companion files.
+
+---
+id: "102-03-01"
+data:
+ identifier: "102-03-01"
+ localized_concepts:
+ eng: 22222222-aaaa-bbbb-cccc-dddddddddddd
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-102"
+ version: "2007"
+
+related:
+ # ── Hierarchical (ISO 10241-1 / ISO 25964 BT/NT) ──────────────────────
+ - type: broader
+ content: "complex system"
+ ref:
+ source: "IEC"
+ id: "102-03-02"
+
+ - type: narrower
+ content: "subsystem"
+ ref:
+ source: "IEC"
+ id: "102-03-03"
+
+ # ── ISO 25964 Generic Hierarchy (BTG/NTG) ─────────────────────────────
+ # "is a kind of" — generic/specific relationship
+ - type: broader_generic
+ content: "physical system"
+ ref:
+ source: "IEC"
+ id: "102-01-01"
+
+ - type: narrower_generic
+ content: "closed system"
+ ref:
+ source: "IEC"
+ id: "102-03-04"
+
+ # ── ISO 25964 Partitive Hierarchy (BTP/NTP) ───────────────────────────
+ # "is a part of" — whole/part relationship (transitive)
+ - type: broader_partitive
+ content: "larger assembly"
+ ref:
+ source: "IEC"
+ id: "102-05-01"
+
+ - type: narrower_partitive
+ content: "system component"
+ ref:
+ source: "IEC"
+ id: "102-05-02"
+
+ # ── ISO 25964 Instantial Hierarchy (BTI/NTI) ───────────────────────────
+ # "is an instance of" — class/instance relationship
+ - type: broader_instantial
+ content: "thermodynamic system (class)"
+ ref:
+ source: "IEC"
+ id: "102-06-01"
+
+ - type: narrower_instantial
+ content: "specific Carnot engine"
+ ref:
+ source: "IEC"
+ id: "102-06-02"
+
+ # ── Equivalence (SKOS exactMatch) ─────────────────────────────────────
+ - type: equivalent
+ content: "system (general systems theory)"
+ ref:
+ source: "ISO"
+ id: "10241-1"
+
+ # ── SKOS Mapping Properties ───────────────────────────────────────────
+ - type: close_match
+ ref:
+ text: "system (general systems theory)"
+
+ - type: broad_match
+ content: "related broader concept in another vocabulary"
+ ref:
+ source: "ISO"
+ id: "1087-1"
+
+ - type: narrow_match
+ content: "related narrower concept in another vocabulary"
+ ref:
+ source: "ISO"
+ id: "1087-2"
+
+ - type: related_match
+ content: "related concept in another vocabulary"
+ ref:
+ source: "IEC"
+ id: "60050-151"
+
+ # ── Comparative (ISO 10241-1) ─────────────────────────────────────────
+ - type: compare
+ content: "closed system"
+ ref:
+ source: "IEC"
+ id: "102-03-04"
+
+ - type: contrast
+ content: "environment"
+ ref:
+ source: "IEC"
+ id: "102-03-06"
+
+ # ── Associative (ISO 10241-1 / ISO 25964 RT) ─────────────────────────
+ - type: see
+ content: "open system"
+ ref:
+ source: "IEC"
+ id: "102-03-05"
+
+ # ── Associative Subtypes (ISO 25964 / TBX) ────────────────────────────
+ - type: related_concept
+ content: "boundary of a system"
+ ref:
+ source: "IEC"
+ id: "102-04-01"
+
+ - type: related_concept_broader
+ content: "system boundary (broader sense)"
+ ref:
+ source: "IEC"
+ id: "102-04-02"
+
+ - type: related_concept_narrower
+ content: "permeable boundary (narrower sense)"
+ ref:
+ source: "IEC"
+ id: "102-04-03"
+
+ # ── Spatiotemporal (ISO 25964 / TBX) ──────────────────────────────────
+ - type: sequentially_related_concept
+ content: "next process step"
+ ref:
+ source: "IEC"
+ id: "102-07-01"
+
+ - type: spatially_related_concept
+ content: "adjacent region"
+ ref:
+ source: "IEC"
+ id: "102-07-02"
+
+ - type: temporally_related_concept
+ content: "preceding state"
+ ref:
+ source: "IEC"
+ id: "102-07-03"
+
+ # ── Lifecycle (ISO 10241-1) ───────────────────────────────────────────
+ - type: supersedes
+ ref:
+ source: "IEC"
+ id: "102-03-00"
+
+ - type: superseded_by
+ content: "replaced by newer concept"
+ ref:
+ source: "IEC"
+ id: "102-03-10"
+
+ - type: deprecates
+ content: "old deprecated term"
+ ref:
+ source: "IEC"
+ id: "102-03-11"
+
+ # ── Lexical (ISO 12620 / TBX) ─────────────────────────────────────────
+ # false_friend is language-specific — see 06-related-localized-fra.yaml
+ - type: homograph
+ content: "same spelling, different meaning"
+ ref:
+ source: "IEC"
+ id: "102-08-01"
+
+status: valid
+date_accepted: "2007-08-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/07-sources-localized.yaml b/schemas/v2/examples/07-sources-localized.yaml
new file mode 100644
index 0000000..38aa42d
--- /dev/null
+++ b/schemas/v2/examples/07-sources-localized.yaml
@@ -0,0 +1,173 @@
+# 07 — Sources (Localized — all source features)
+#
+# Comprehensive demonstration of sources and citations at all levels:
+# localized concept, definition, note, example, and designation.
+# Shows all source status values, citation locality features
+# (ranges, custom_locality, link), and modification notes.
+
+---
+id: 44444444-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "standard"
+ normative_status: preferred
+
+ # Designation-level source (ISO 10241-1 §6.8)
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+
+ # Definition with modified source — status indicates how it was changed
+ definition:
+ - content: >-
+ a document established by consensus and approved by a recognized body
+ that provides rules, guidelines or characteristics
+ sources:
+ - type: authoritative
+ status: modified
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ clause: "3.1"
+ modification: >-
+ replaced "for common and repeated use" with broader wording
+
+ # Notes demonstrating source status values
+ notes:
+ # similar — close but not identical
+ - content: >-
+ Standards include but are not limited to international standards,
+ regional standards, and national standards.
+ sources:
+ - type: lineage
+ status: similar
+ origin:
+ text: "ISO/IEC Guide 2"
+
+ # context_added — original meaning preserved with added context
+ - content: >-
+ The term "standard" also applies to de facto standards that arise
+ through widespread adoption.
+ sources:
+ - type: lineage
+ status: context_added
+ origin:
+ source: "ISO"
+ id: "IEC Guide 2"
+ version: "2004"
+
+ # generalisation — source was narrower, generalised for this concept
+ - content: >-
+ Standards may cover products, processes, or services.
+ sources:
+ - type: authoritative
+ status: generalisation
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ modification: "generalised from product standards to all types"
+
+ # specialisation — source was broader, specialised for this concept
+ - content: >-
+ A terminology standard provides terms, definitions, and notes.
+ sources:
+ - type: authoritative
+ status: specialisation
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ modification: "specialised from general standards to terminology"
+
+ # restyle — same content, different presentation
+ - content: >-
+ Standards are published by recognized standards bodies.
+ sources:
+ - type: lineage
+ status: restyle
+ origin:
+ text: "ISO/IEC Guide 2:2004, definition 3.2"
+
+ # unspecified — relationship to source is not classified
+ - content: >-
+ Standards evolve through periodic review and revision cycles.
+ sources:
+ - type: lineage
+ status: unspecified
+ origin:
+ text: "Wikipedia article on standardization"
+
+ # Example with its own source and locality range
+ examples:
+ - content: >-
+ ISO 9001 is an example of an international standard for quality
+ management systems.
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "9001"
+ version: "2015"
+ # Locality with range: reference_from → reference_to
+ locality:
+ type: clause
+ reference_from: "1"
+ reference_to: "4"
+
+ # Localized concept level sources
+ sources:
+ # Structured citation with locality (single point)
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ clause: "3.1"
+
+ # Citation with link field
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ link: "https://www.iso.org/standard/44798.html"
+
+ # Citation with custom_locality
+ - type: lineage
+ status: restyle
+ origin:
+ text: "ISO/IEC Guide 2:2004"
+ custom_locality:
+ - name: schema
+ value: Aec_service_life_arm
+ - name: version
+ value: "2"
+
+ # Unstructured citation (plain text)
+ - type: lineage
+ status: related
+ origin:
+ text: "ISO/IEC Guide 2:2004, definition 3.2"
+
+ # not_equal — concept meaning diverges from source
+ - type: lineage
+ status: not_equal
+ origin:
+ source: "IEC"
+ id: "60050-171"
+ version: "2019"
+ modification: "meaning diverges from IEC definition of standard"
+
+status: valid
diff --git a/schemas/v2/examples/07-sources.yaml b/schemas/v2/examples/07-sources.yaml
new file mode 100644
index 0000000..79ff000
--- /dev/null
+++ b/schemas/v2/examples/07-sources.yaml
@@ -0,0 +1,36 @@
+# 07 — Sources (Bibliographic Citations)
+#
+# Sources appear at managed concept level, localized concept level,
+# definition/note/example level, and designation level.
+# Each source has a type (authoritative/lineage), status, and origin citation.
+
+---
+id: "151-01-01"
+data:
+ identifier: "151-01-01"
+ localized_concepts:
+ eng: 44444444-aaaa-bbbb-cccc-dddddddddddd
+
+ # Managed concept level sources
+ sources:
+ # Authoritative source — the concept is directly from this standard
+ - type: authoritative
+ origin:
+ source: "ISO"
+ id: "10241-1"
+ version: "2011"
+ clause: "3.1"
+ # Lineage source — historical/provenance reference
+ - type: lineage
+ origin:
+ text: "ISO/IEC Guide 2:2004"
+
+ related:
+ - type: supersedes
+ ref:
+ source: "ISO"
+ id: "10241-1"
+ version: "2007"
+
+status: valid
+date_accepted: "2011-10-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/08-multilanguage-ara.yaml b/schemas/v2/examples/08-multilanguage-ara.yaml
new file mode 100644
index 0000000..00a3986
--- /dev/null
+++ b/schemas/v2/examples/08-multilanguage-ara.yaml
@@ -0,0 +1,31 @@
+# 08 — Arabic localization for 121-01-01
+#
+# Arabic uses Arab script. The entry_status field tracks this
+# localization's lifecycle independently.
+
+---
+id: 66666666-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: ara
+ script: Arab
+
+ terms:
+ - type: expression
+ designation: "مجال كهرومغناطيسي"
+ normative_status: preferred
+ language: ara
+ script: Arab
+
+ definition:
+ - content: >-
+ مجال يتحدد بشدة المجال الكهربائي وشدة المجال المغناطيسي
+
+ entry_status: valid
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "IEC"
+ id: "60050-121"
+ version: "1998"
+status: valid
diff --git a/schemas/v2/examples/08-multilanguage-eng.yaml b/schemas/v2/examples/08-multilanguage-eng.yaml
new file mode 100644
index 0000000..ff123de
--- /dev/null
+++ b/schemas/v2/examples/08-multilanguage-eng.yaml
@@ -0,0 +1,29 @@
+# 08 — English localization for 121-01-01
+
+---
+id: 55555555-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+ script: Latn
+
+ terms:
+ - type: expression
+ designation: "electromagnetic field"
+ normative_status: preferred
+ - type: abbreviation
+ designation: "EMF"
+ normative_status: admitted
+ acronym: true
+
+ definition:
+ - content: >-
+ field determined by the electric field strength and the magnetic
+ field strength
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-121"
+ version: "1998"
+status: valid
diff --git a/schemas/v2/examples/08-multilanguage-jpn.yaml b/schemas/v2/examples/08-multilanguage-jpn.yaml
new file mode 100644
index 0000000..848c1f5
--- /dev/null
+++ b/schemas/v2/examples/08-multilanguage-jpn.yaml
@@ -0,0 +1,46 @@
+# 08 — Japanese localization for 121-01-01
+#
+# Japanese uses multiple scripts simultaneously. The script cascade
+# (ConceptData → Designation → Pronunciation) is demonstrated here.
+
+---
+id: 77777777-aaaa-bbbb-cccc-dddddddddddd
+data:
+ # ConceptData-level defaults
+ language_code: jpn
+ script: Hani
+
+ terms:
+ # Kanji form — uses concept-level script (Hani)
+ - type: expression
+ designation: "電磁界"
+ normative_status: preferred
+
+ # Katakana form — overrides script to Kana
+ - type: expression
+ designation: "デンジカイ"
+ normative_status: admitted
+ script: Kana
+ pronunciation:
+ - content: "denjikai"
+ language: jpn
+ script: Latn
+ system: "Var:jpn-Hrkt:Latn:Hepburn-1886"
+
+ # Latin script form — overrides script to Latn
+ - type: expression
+ designation: "denjikai"
+ normative_status: admitted
+ script: Latn
+
+ definition:
+ - content: >-
+ 界は電界の強さ及び磁界の強さによって定まる場
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-121"
+ version: "1998"
+status: valid
diff --git a/schemas/v2/examples/08-multilanguage-rus.yaml b/schemas/v2/examples/08-multilanguage-rus.yaml
new file mode 100644
index 0000000..77b46de
--- /dev/null
+++ b/schemas/v2/examples/08-multilanguage-rus.yaml
@@ -0,0 +1,40 @@
+# 08 — Russian localization for 121-01-01
+#
+# Russian uses Cyrl script. The conversion system (ISO 24229) can
+# specify the romanization system for transliteration.
+
+---
+id: 88888888-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: rus
+ script: Cyrl
+
+ terms:
+ - type: expression
+ designation: "электромагнитное поле"
+ normative_status: preferred
+ grammar_info:
+ - noun: true
+ number: singular
+ gender: n
+
+ # Transliterated form using ISO 24229 system code
+ - type: expression
+ designation: "elektromagnitnoye pole"
+ normative_status: admitted
+ script: Latn
+ term_type: transliterated_form
+ system: "UN:rus-Cyrl:Latn:1993"
+
+ definition:
+ - content: >-
+ поле, определяемое напряженностью электрического поля и
+ напряженностью магнитного поля
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-121"
+ version: "1998"
+status: valid
diff --git a/schemas/v2/examples/08-multilanguage.yaml b/schemas/v2/examples/08-multilanguage.yaml
new file mode 100644
index 0000000..20234f5
--- /dev/null
+++ b/schemas/v2/examples/08-multilanguage.yaml
@@ -0,0 +1,25 @@
+# 08 — Multi-Language & Multi-Script
+#
+# A managed concept with multiple localizations in different languages
+# and scripts. The localization map keys are ISO 639 three-character codes.
+#
+# Also demonstrates the per-designation language/script/system cascade:
+# ConceptData defaults → Designation overrides → Pronunciation overrides
+
+---
+id: "121-01-01"
+data:
+ identifier: "121-01-01"
+ localized_concepts:
+ eng: 55555555-aaaa-bbbb-cccc-dddddddddddd
+ ara: 66666666-aaaa-bbbb-cccc-dddddddddddd
+ jpn: 77777777-aaaa-bbbb-cccc-dddddddddddd
+ rus: 88888888-aaaa-bbbb-cccc-dddddddddddd
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-121"
+ version: "1998"
+status: valid
+date_accepted: "1998-08-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/09-nonverbal.yaml b/schemas/v2/examples/09-nonverbal.yaml
new file mode 100644
index 0000000..b9c2d7c
--- /dev/null
+++ b/schemas/v2/examples/09-nonverbal.yaml
@@ -0,0 +1,49 @@
+# 09 — Non-Verbal Representations
+#
+# Non-verbal representations (ISO 10241-1 §6.5) are URI references to
+# external resources: images, tables, or formulas. They are NOT embedded
+# content — they reference resources that live outside the concept model.
+
+---
+id: 99999999-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "Nyquist plot"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ a polar plot of the frequency response of a system, used in control
+ theory to assess stability
+
+ # Non-verbal representations referenced by URI
+ non_verbal_rep:
+ # Image — relative path within the GCR package
+ - type: image
+ ref: "assets/nyquist-plot.svg"
+ text: "Nyquist plot for a typical second-order system"
+ sources:
+ - type: authoritative
+ origin:
+ text: "IEC 60050-351"
+
+ # Table — URN reference
+ - type: table
+ ref: "urn:gcr:assets:stability-criteria-table"
+ text: "Comparison of stability criteria"
+
+ # Formula — URL reference
+ - type: formula
+ ref: "https://example.org/formulas/nyquist-criterion"
+ text: "Nyquist stability criterion formula"
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-351"
+ version: "2013"
+status: valid
diff --git a/schemas/v2/examples/10-concept-reference-localized.yaml b/schemas/v2/examples/10-concept-reference-localized.yaml
new file mode 100644
index 0000000..2d9c2cd
--- /dev/null
+++ b/schemas/v2/examples/10-concept-reference-localized.yaml
@@ -0,0 +1,42 @@
+# 10 — Concept References (Localized)
+#
+# The references field on LocalizedConcept holds ConceptReference objects
+# for typed cross-references within concept data.
+
+---
+id: aaaaaaaa-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "insulating material"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ material used to prevent the flow of electric current
+
+ # Typed references to other concepts
+ references:
+ # Local reference — concept in the same glossary
+ - concept_id: "212-01-02"
+ ref_type: "local"
+ term: "insulation"
+
+ # External reference — concept in another registry (URN)
+ - urn: "urn:iso:std:iso:10241:term:3.1.1"
+ ref_type: "urn"
+
+ # Designation reference — points to a specific designation
+ - concept_id: "212-05-03"
+ ref_type: "designation"
+ term: "dielectric strength"
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-212"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/10-concept-reference.yaml b/schemas/v2/examples/10-concept-reference.yaml
new file mode 100644
index 0000000..122382f
--- /dev/null
+++ b/schemas/v2/examples/10-concept-reference.yaml
@@ -0,0 +1,33 @@
+# 10 — Concept References
+#
+# ConceptReference is a typed reference to another concept — either local
+# (within the same glossary) or external (in another registry).
+# Used for domain assignments, concept mentions, and cross-references.
+
+---
+id: "212-01-01"
+data:
+ identifier: "212-01-01"
+ localized_concepts:
+ eng: aaaaaaaa-aaaa-bbbb-cccc-dddddddddddd
+
+ # Domains demonstrate ConceptReference with ref_type "domain"
+ domains:
+ # Local reference — concept_id only, source indicates the registry
+ - concept_id: "212"
+ source: "urn:iec:std:iec:60050"
+ ref_type: "domain"
+ - concept_id: "212-01"
+ source: "urn:iec:std:iec:60050"
+ ref_type: "domain"
+
+ # ConceptReference also appears in LocalizedConcept.data.references
+ # for typed cross-references (see localized companion file)
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-212"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/11-lifecycle-localized.yaml b/schemas/v2/examples/11-lifecycle-localized.yaml
new file mode 100644
index 0000000..c37caa7
--- /dev/null
+++ b/schemas/v2/examples/11-lifecycle-localized.yaml
@@ -0,0 +1,64 @@
+# 11 — Lifecycle & Review (Localized)
+#
+# Localized concepts have their own entry_status, dates, and review metadata.
+# A localization can be retired while the managed concept remains valid.
+# Also demonstrates classification and review_type fields.
+
+---
+id: bbbbbbbb-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ # Entry status of this specific localization
+ entry_status: valid
+
+ terms:
+ - type: expression
+ designation: "oscillation"
+ normative_status: preferred
+ grammar_info:
+ - noun: true
+
+ definition:
+ - content: >-
+ the variation, usually with time, of the magnitude of a quantity with
+ respect to a specified reference
+
+ # Localization-level dates
+ dates:
+ - date: "1992-03-01T00:00:00+00:00"
+ type: accepted
+ - date: "2016-08-01T00:00:00+00:00"
+ type: amended
+
+ # Review metadata
+ review_date: "2019-06-01T00:00:00+00:00"
+ review_decision_date: "2019-09-01T00:00:00+00:00"
+ review_decision_event: "published"
+
+ # Lineage similarity — how close this entry is to the source
+ lineage_source_similarity: 95
+
+ # Release version
+ release: "2.1"
+
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "IEC"
+ id: "60050-702"
+ version: "1992"
+ - type: lineage
+ status: similar
+ origin:
+ text: "IEC 60050-702:1988"
+
+# Classification of this localized concept within the glossary
+classification: "admitted"
+
+# Review type applied to this localized concept
+review_type: "editorial"
+
+status: valid
+date_accepted: "1992-03-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/11-lifecycle.yaml b/schemas/v2/examples/11-lifecycle.yaml
new file mode 100644
index 0000000..fb67bf3
--- /dev/null
+++ b/schemas/v2/examples/11-lifecycle.yaml
@@ -0,0 +1,37 @@
+# 11 — Lifecycle & Review
+#
+# Managed concepts and localizations have lifecycle metadata:
+# status, dates, review information.
+
+---
+id: "702-01-01"
+data:
+ identifier: "702-01-01"
+ localized_concepts:
+ eng: bbbbbbbb-aaaa-bbbb-cccc-dddddddddddd
+
+ # Structured dates (alternative to simplified date_accepted at top level)
+ dates:
+ - date: "1992-03-01T00:00:00+00:00"
+ type: accepted
+ - date: "2016-08-01T00:00:00+00:00"
+ type: amended
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-702"
+ version: "1992"
+
+ # This concept supersedes an older entry
+ related:
+ - type: supersedes
+ ref:
+ source: "IEC"
+ id: "60050-702"
+ version: "1988"
+
+# Concept lifecycle status
+status: valid
+date_accepted: "1992-03-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/12-absent-designation-eng.yaml b/schemas/v2/examples/12-absent-designation-eng.yaml
new file mode 100644
index 0000000..d3b4048
--- /dev/null
+++ b/schemas/v2/examples/12-absent-designation-eng.yaml
@@ -0,0 +1,27 @@
+# 12 — English: normal designation
+
+---
+id: cccccccc-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "kilogram"
+ normative_status: preferred
+ - type: symbol
+ designation: "kg"
+ normative_status: admitted
+ international: true
+
+ definition:
+ - content: >-
+ SI unit of mass
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/12-absent-designation-jpn.yaml b/schemas/v2/examples/12-absent-designation-jpn.yaml
new file mode 100644
index 0000000..b085d59
--- /dev/null
+++ b/schemas/v2/examples/12-absent-designation-jpn.yaml
@@ -0,0 +1,50 @@
+# 12 — Japanese: absent designation for expression, international symbol shared
+#
+# Japanese may not have a native expression for some technical terms.
+# The `absent` flag makes this explicit. The international symbol (kg)
+# is still used — it has `international: true` and no language override,
+# so it applies across all localizations.
+
+---
+id: dddddddd-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: jpn
+ script: Hani
+
+ terms:
+ # No native Japanese expression exists — explicitly marked absent
+ - type: expression
+ designation: null
+ absent: true
+ language: eng
+ script: Latn
+
+ # The international symbol is shared — no language override needed
+ - type: symbol
+ designation: "kg"
+ normative_status: admitted
+ international: true
+
+ # Japanese uses a transliterated form
+ - type: expression
+ designation: "キログラム"
+ normative_status: admitted
+ script: Kana
+ term_type: transliterated_form
+ pronunciation:
+ - content: "kiriguramu"
+ language: jpn
+ script: Latn
+ system: "Var:jpn-Hrkt:Latn:Hepburn-1886"
+
+ definition:
+ - content: >-
+ 質量のSI単位
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/12-absent-designation.yaml b/schemas/v2/examples/12-absent-designation.yaml
new file mode 100644
index 0000000..73d1027
--- /dev/null
+++ b/schemas/v2/examples/12-absent-designation.yaml
@@ -0,0 +1,19 @@
+# 12 — Absent Designation & International Symbols
+#
+# The `absent` flag indicates no equivalent designation exists in this language.
+# The `international` flag indicates a symbol valid across all languages.
+
+---
+id: "112-02-01"
+data:
+ identifier: "112-02-01"
+ localized_concepts:
+ eng: cccccccc-aaaa-bbbb-cccc-dddddddddddd
+ jpn: dddddddd-aaaa-bbbb-cccc-dddddddddddd
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+status: valid
diff --git a/schemas/v2/examples/13-superseded-deprecated-localized.yaml b/schemas/v2/examples/13-superseded-deprecated-localized.yaml
new file mode 100644
index 0000000..7ce3733
--- /dev/null
+++ b/schemas/v2/examples/13-superseded-deprecated-localized.yaml
@@ -0,0 +1,50 @@
+# 13 — Superseded & Deprecated (Localized)
+#
+# The localized concept for a superseded entry. Shows deprecated
+# normative_status on designations and entry_status transitions.
+
+---
+id: cccccccc-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ # Entry status reflects superseded state
+ entry_status: superseded
+
+ terms:
+ # The preferred term is now deprecated
+ - type: expression
+ designation: "quantity"
+ normative_status: deprecated
+ grammar_info:
+ - noun: true
+ number: singular
+
+ # Superseded by this preferred term in the newer entry
+ - type: expression
+ designation: "kind of quantity"
+ normative_status: superseded
+ term_type: full_form
+
+ definition:
+ - content: >-
+ property of a phenomenon, body, or substance, where the property
+ has a magnitude that can be expressed as a number and a reference
+ sources:
+ - type: authoritative
+ status: identical
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+
+ dates:
+ - date: "2010-01-01T00:00:00+00:00"
+ type: accepted
+ - date: "2023-06-01T00:00:00+00:00"
+ type: retired
+
+ release: "1.0"
+
+status: superseded
+date_accepted: "2010-01-01T00:00:00+00:00"
diff --git a/schemas/v2/examples/13-superseded-deprecated.yaml b/schemas/v2/examples/13-superseded-deprecated.yaml
new file mode 100644
index 0000000..ad6a57a
--- /dev/null
+++ b/schemas/v2/examples/13-superseded-deprecated.yaml
@@ -0,0 +1,44 @@
+# 13 — Superseded & Deprecated Concept Lifecycle
+#
+# Demonstrates the deprecated/superseded lifecycle: a concept that was
+# replaced by a newer entry. Shows superseded_by at the managed level,
+# deprecated normative_status on designations, and retired dates.
+#
+# Companion: 13-superseded-deprecated-localized.yaml
+
+---
+id: "112-01-02"
+data:
+ identifier: "112-01-02"
+ localized_concepts:
+ eng: cccccccc-aaaa-bbbb-cccc-dddddddddddd
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "IEC"
+ id: "60050-112"
+ version: "2010"
+
+# This concept is superseded — replaced by a newer entry
+related:
+ - type: superseded_by
+ content: "replaced by updated definition"
+ ref:
+ source: "IEC"
+ id: "112-01-03"
+
+ - type: deprecates
+ content: "deprecated older entry"
+ ref:
+ source: "IEC"
+ id: "112-01-01"
+
+# Concept lifecycle status: superseded
+status: superseded
+
+dates:
+ - date: "2010-01-01T00:00:00+00:00"
+ type: accepted
+ - date: "2023-06-01T00:00:00+00:00"
+ type: retired
diff --git a/schemas/v2/examples/14-term-types.yaml b/schemas/v2/examples/14-term-types.yaml
new file mode 100644
index 0000000..0021c3d
--- /dev/null
+++ b/schemas/v2/examples/14-term-types.yaml
@@ -0,0 +1,193 @@
+# 14 — ISO 12620 Term Types
+#
+# ISO 12620 / TBX term_type classification for designations. The term_type
+# attribute categorizes a designation with respect to how it is formed or
+# where/how it is used.
+#
+# Categories:
+# Orthographic/structural: abbreviation, acronym, clipped_term, full_form,
+# initialism, short_form, transliterated_form, transcribed_form, variant
+# Symbolic/formulaic: equation, formula, logical_expression, symbol
+# Usage/provenance: common_name, entry_term, internationalism,
+# international_scientific_term, part_number, phraseological_unit,
+# shortcut, sku, standard_text, synonym, synonymous_phrase
+
+---
+id: dddddddd-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ # ── Orthographic / Structural ────────────────────────────────────────
+
+ # full_form — the complete, unabbreviated form (default for expressions)
+ - type: expression
+ designation: "World Health Organization"
+ normative_status: preferred
+ term_type: full_form
+
+ # abbreviation — generic shortened form
+ - type: abbreviation
+ designation: "WHO"
+ normative_status: admitted
+ acronym: true
+ term_type: abbreviation
+
+ # acronym — pronounced as a word
+ - type: abbreviation
+ designation: "laser"
+ normative_status: admitted
+ acronym: true
+ term_type: acronym
+
+ # initialism — each letter pronounced separately
+ - type: abbreviation
+ designation: "DNA"
+ normative_status: admitted
+ initialism: true
+ term_type: initialism
+
+ # clipped_term — shortened by removing part of the word
+ - type: expression
+ designation: "phone"
+ normative_status: admitted
+ term_type: clipped_term
+
+ # short_form — any recognized short form
+ - type: expression
+ designation: "app"
+ normative_status: admitted
+ term_type: short_form
+
+ # variant — regional or stylistic variant
+ - type: expression
+ designation: "catalog"
+ normative_status: admitted
+ geographical_area: US
+ term_type: variant
+
+ # transliterated_form — converted from one script to another, letter by letter
+ - type: expression
+ designation: "elektromagnitnoye pole"
+ normative_status: admitted
+ language: rus
+ script: Latn
+ system: "UN:rus-Cyrl:Latn:1993"
+ term_type: transliterated_form
+
+ # transcribed_form — converted from one script to another, phonetically
+ - type: expression
+ designation: "Tōkyō"
+ normative_status: admitted
+ language: jpn
+ script: Latn
+ system: "Var:jpn-Hrkt:Latn:Hepburn-1886"
+ term_type: transcribed_form
+
+ # ── Symbolic / Formulaic ─────────────────────────────────────────────
+
+ # symbol — a non-letter symbol designation
+ - type: symbol
+ designation: "Ω"
+ normative_status: preferred
+ international: true
+ term_type: symbol
+
+ # formula — a mathematical or chemical formula
+ - type: expression
+ designation: "H₂O"
+ normative_status: admitted
+ term_type: formula
+
+ # logical_expression
+ - type: expression
+ designation: "A ∧ B"
+ normative_status: admitted
+ term_type: logical_expression
+
+ # equation — a mathematical equation as a designation
+ - type: expression
+ designation: "E = mc²"
+ normative_status: admitted
+ term_type: equation
+
+ # ── Usage / Provenance ───────────────────────────────────────────────
+
+ # common_name — everyday name for a scientific concept
+ - type: expression
+ designation: "water"
+ normative_status: admitted
+ term_type: common_name
+
+ # entry_term — the term as it appears in a specific entry/listing
+ - type: expression
+ designation: "dihydrogen monoxide"
+ normative_status: admitted
+ term_type: entry_term
+
+ # internationalism — word shared across many languages
+ - type: expression
+ designation: "computer"
+ normative_status: admitted
+ term_type: internationalism
+
+ # international_scientific_term — internationally recognized scientific term
+ - type: expression
+ designation: "photosynthesis"
+ normative_status: admitted
+ term_type: international_scientific_term
+
+ # synonym — a true synonym of the preferred term
+ - type: expression
+ designation: "liquid hydrogen oxide"
+ normative_status: admitted
+ term_type: synonym
+
+ # synonymous_phrase — a phrasal synonym
+ - type: expression
+ designation: "oxidane"
+ normative_status: admitted
+ term_type: synonymous_phrase
+
+ # part_number — a part or component identifier
+ - type: expression
+ designation: "47kΩ resistor"
+ normative_status: admitted
+ term_type: part_number
+
+ # phraseological_unit — a fixed expression or collocation
+ - type: expression
+ designation: "standard atmospheric pressure"
+ normative_status: admitted
+ term_type: phraseological_unit
+
+ # shortcut — a commonly used shortcut reference
+ - type: expression
+ designation: "spec"
+ normative_status: admitted
+ term_type: shortcut
+
+ # sku — stock keeping unit identifier
+ - type: expression
+ designation: "SKU-2024-BLK-M"
+ normative_status: admitted
+ term_type: sku
+
+ # standard_text — boilerplate or standardized text
+ - type: expression
+ designation: "Not applicable"
+ normative_status: admitted
+ term_type: standard_text
+
+ definition:
+ - content: >-
+ comprehensive example demonstrating all ISO 12620 term type
+ classifications across orthographic, symbolic, and usage categories
+
+ sources:
+ - type: authoritative
+ origin:
+ source: "ISO"
+ id: "12620"
+ version: "2019"
+status: valid
diff --git a/schemas/v2/examples/15-citation-features.yaml b/schemas/v2/examples/15-citation-features.yaml
new file mode 100644
index 0000000..83aa7f0
--- /dev/null
+++ b/schemas/v2/examples/15-citation-features.yaml
@@ -0,0 +1,141 @@
+# 15 — Citation & Locality Features
+#
+# Demonstrates all citation and locality features:
+# - Structured citation (source + id + version)
+# - Unstructured citation (plain text)
+# - Locality with single reference (clause, section, page)
+# - Locality with range (reference_from → reference_to)
+# - Custom locality (name-value pairs)
+# - Link field (URL to source document)
+# - Clause shorthand
+# - Original field
+
+---
+id: eeeeeeee-aaaa-bbbb-cccc-dddddddddddd
+data:
+ language_code: eng
+
+ terms:
+ - type: expression
+ designation: "quality management"
+ normative_status: preferred
+
+ definition:
+ - content: >-
+ coordinated activities to direct and control an organization with
+ regard to quality
+ sources:
+ # Structured citation with clause locality (single point)
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "9000"
+ version: "2015"
+ clause: "3.3.3"
+
+ - content: >-
+ the aspect of overall management that determines and implements
+ quality policy
+ sources:
+ # Locality range: clause 3.3.3 through 3.3.5
+ - type: authoritative
+ status: modified
+ origin:
+ source: "ISO"
+ id: "8402"
+ version: "1994"
+ locality:
+ type: clause
+ reference_from: "3.3.3"
+ reference_to: "3.3.5"
+ modification: "updated from 1994 terminology"
+
+ notes:
+ - content: >-
+ Quality management includes quality planning, quality control,
+ quality assurance, and quality improvement.
+ sources:
+ # Citation with link field
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "9000"
+ version: "2015"
+ link: "https://www.iso.org/standard/45481.html"
+ locality:
+ type: section
+ reference_from: "2.2"
+
+ - content: >-
+ The concept of quality management was significantly influenced
+ by the work of Deming and Juran.
+ sources:
+ # Unstructured citation (plain text)
+ - type: lineage
+ status: related
+ origin:
+ text: "Deming, W.E., Out of the Crisis, MIT Press, 1986"
+
+ - content: >-
+ Quality management frameworks may use custom schema versioning.
+ sources:
+ # Citation with custom_locality
+ - type: lineage
+ status: context_added
+ origin:
+ text: "Internal quality manual QM-2024"
+ custom_locality:
+ - name: schema
+ value: QMS_Framework_v3
+ - name: version
+ value: "3"
+ - name: department
+ value: engineering
+
+ - content: >-
+ This definition was adapted from an earlier standard.
+ sources:
+ # Citation with original field (transitional)
+ - type: lineage
+ status: restyle
+ origin:
+ text: "ISO 8402:1986, quality management"
+ original: "ISO/TC 176 document N45"
+
+ - content: >-
+ Page-range reference using locality.
+ sources:
+ # Locality range: pages 42-47
+ - type: authoritative
+ status: similar
+ origin:
+ source: "ISO"
+ id: "9000"
+ version: "2005"
+ locality:
+ type: page
+ reference_from: "42"
+ reference_to: "47"
+
+ sources:
+ # Multiple locality types on the concept source
+ - type: authoritative
+ status: identical
+ origin:
+ source: "ISO"
+ id: "9001"
+ version: "2015"
+ link: "https://www.iso.org/standard/62085.html"
+ locality:
+ type: annex
+ reference_from: "A"
+
+ - type: lineage
+ status: unspecified
+ origin:
+ text: "Juran, J.M., Quality Control Handbook, McGraw-Hill, 1951"
+ link: "https://archive.org/details/qualitycontrolha00jura"
+
+status: valid
diff --git a/schemas/v2/examples/README.md b/schemas/v2/examples/README.md
new file mode 100644
index 0000000..8d948ff
--- /dev/null
+++ b/schemas/v2/examples/README.md
@@ -0,0 +1,343 @@
+# Glossarist Concept Model — YAML Examples
+
+Concrete YAML examples for every feature of the v2 concept model. Each example
+is a valid instance against the schemas in `../concept.yaml` (managed concept)
+and `../localized-concept.yaml` (localized concept).
+
+Companion files share a numeric prefix and are meant to be read together:
+`NN-topic.yaml` is the managed concept, `NN-topic-localized*.yaml` are its
+localizations.
+
+## Feature Coverage
+
+| # | Topic | Managed concept | Localized concept(s) |
+|---|-------|----------------|---------------------|
+| 01 | Minimal concept | `01-minimal-concept.yaml` | `01-minimal-localized.yaml` |
+| 02 | Designations (all 5 types + grammar + term_type) | — | `02-designation-expression.yaml`, `02-designation-abbreviation.yaml`, `02-designation-symbol.yaml` |
+| 03 | Pronunciation | — | `03-pronunciation.yaml` |
+| 04 | Definition, notes, examples | — | `04-definition-notes-examples.yaml` |
+| 05 | Domains (classification) | `05-domains.yaml` | `05-domains-localized.yaml` |
+| 06 | Related concepts (all 27 types) | `06-related-relationships.yaml` | `06-related-localized.yaml`, `06-related-localized-fra.yaml` |
+| 07 | Sources & citations (all features) | `07-sources.yaml` | `07-sources-localized.yaml` |
+| 08 | Multi-language / multi-script | `08-multilanguage.yaml` | `08-multilanguage-eng.yaml`, `-ara.yaml`, `-jpn.yaml`, `-rus.yaml` |
+| 09 | Non-verbal representations | — | `09-nonverbal.yaml` |
+| 10 | Concept references | `10-concept-reference.yaml` | `10-concept-reference-localized.yaml` |
+| 11 | Lifecycle & review | `11-lifecycle.yaml` | `11-lifecycle-localized.yaml` |
+| 12 | Absent & international designations | `12-absent-designation.yaml` | `12-absent-designation-eng.yaml`, `12-absent-designation-jpn.yaml` |
+| 13 | Superseded & deprecated lifecycle | `13-superseded-deprecated.yaml` | `13-superseded-deprecated-localized.yaml` |
+| 14 | ISO 12620 term types (24 values) | — | `14-term-types.yaml` |
+| 15 | Citation & locality features | — | `15-citation-features.yaml` |
+
+---
+
+## 01 — Minimal Concept
+
+The smallest valid managed concept and its localization.
+
+**Features:** `id`, `identifier`, `localized_concepts` map, `status`, `date_accepted`, structured `dates`.
+
+## 02 — Designations (5 types + grammar + term_type)
+
+Five designation types form a MECE hierarchy:
+
+| Type | Extends | Key additions |
+|------|---------|---------------|
+| `expression` | Base | `prefix`, `usage_info`, `field_of_application`, `grammar_info` |
+| `abbreviation` | Expression | `acronym`, `initialism`, `truncation` booleans |
+| `symbol` | Base | (none — pure base) |
+| `letter_symbol` | Symbol | `text` |
+| `graphical_symbol` | Symbol | `text`, `image` |
+
+All types inherit from Base: `designation`, `normative_status`, `geographical_area`,
+`language`/`script`/`system`, `international`, `absent`, `pronunciation`, `sources`,
+`term_type`, `related` (designation-level).
+
+- **Expression** — `02-designation-expression.yaml`: preferred/admitted/deprecated
+ terms, all grammar info options (noun, verb, adj, adverb, preposition, participle;
+ gender: m/f/n/c; number: singular/dual/plural), `geographical_area` (US vs GB),
+ `usage_info`, `field_of_application`, `term_type` (full_form, variant, entry_term,
+ common_name, synonym), designation-level sources.
+- **Abbreviation** — `02-designation-abbreviation.yaml`: acronym/initialism/truncation
+ booleans, designation-level `related` (abbreviated_form_for, short_form_for).
+- **Symbol, letter_symbol, graphical_symbol** — `02-designation-symbol.yaml`:
+ international symbols, text/image representations.
+
+## 03 — Pronunciation
+
+Pronunciations attach to individual designations with language, script, country,
+and transcription system (ISO 24229). Demonstrates the three-level cascade:
+ConceptData defaults → Designation overrides → Pronunciation overrides.
+
+- **`03-pronunciation.yaml`**: Japanese term with Hepburn romanization and IPA
+ transcriptions; Hiragana variant with script override.
+
+## 04 — Definition, Notes, Examples
+
+All three use `DetailedDefinition` — text content with optional per-item sources.
+
+- **`04-definition-notes-examples.yaml`**: definition with authoritative source,
+ two notes (one with lineage source), and an example.
+
+## 05 — Domains (Classification)
+
+Domains are language-agnostic classification tags. A concept *belongs to*
+subject areas — this is not semantic hierarchy.
+
+- **`05-domains.yaml`**: ConceptReference array with `ref_type: "domain"`.
+- **`05-domains-localized.yaml`**: Per-language `domain` URI string (relative,
+ URN, or URL forms).
+
+## 06 — Related Concepts (All 27 Typed Semantic Relationships)
+
+Typed semantic links between concepts. The full type enum covers four standards:
+
+| Category | Standard | Types |
+|----------|----------|-------|
+| Hierarchical | ISO 10241-1 / ISO 25964 | `broader`, `narrower` |
+| Generic hierarchy | ISO 25964 (BTG/NTG) | `broader_generic`, `narrower_generic` |
+| Partitive hierarchy | ISO 25964 (BTP/NTP) | `broader_partitive`, `narrower_partitive` |
+| Instantial hierarchy | ISO 25964 (BTI/NTI) | `broader_instantial`, `narrower_instantial` |
+| Equivalence | ISO 10241-1 / SKOS | `equivalent` |
+| Approximate mapping | ISO 25964 / SKOS | `close_match` |
+| Cross-vocabulary mapping | SKOS | `broad_match`, `narrow_match`, `related_match` |
+| Comparative | ISO 10241-1 | `compare`, `contrast` |
+| Associative | ISO 10241-1 / ISO 25964 | `see` |
+| Associative subtypes | ISO 25964 / TBX | `related_concept`, `related_concept_broader`, `related_concept_narrower` |
+| Spatiotemporal | ISO 25964 / TBX | `sequentially_related_concept`, `spatially_related_concept`, `temporally_related_concept` |
+| Lifecycle | ISO 10241-1 | `deprecates`, `supersedes`, `superseded_by` |
+| Lexical | ISO 12620 / TBX | `homograph`, `false_friend` |
+
+- **`06-related-relationships.yaml`**: All 27 relationship types at the managed
+ concept level, organized by category.
+- **`06-related-localized.yaml`**: English `see` relationship at the localization level.
+- **`06-related-localized-fra.yaml`**: French `false_friend` (ISO 12620/TBX) —
+ a relationship that only exists in one language.
+
+## 07 — Sources & Citations (All Features)
+
+Sources appear at four levels: managed concept, localized concept,
+definition/note/example, and designation. Each source has:
+- `type`: authoritative or lineage
+- `status`: 10 values (identical, similar, modified, restyle, context_added,
+ generalisation, specialisation, unspecified, related, not_equal)
+- `origin`: structured citation (source/id/version/clause/locality) or
+ unstructured text
+- `modification`: free-text description of changes
+
+- **`07-sources.yaml`**: Managed concept with authoritative and lineage sources.
+- **`07-sources-localized.yaml`**: All 10 source status values, locality ranges
+ (reference_from → reference_to), custom_locality, link field, clause shorthand,
+ modification notes.
+
+## 08 — Multi-Language / Multi-Script
+
+A concept with four localizations demonstrating different scripts and writing systems.
+
+- **`08-multilanguage.yaml`**: Managed concept with eng/ara/jpn/rus map.
+- **`08-multilanguage-eng.yaml`**: English (Latn) with expression + abbreviation.
+- **`08-multilanguage-ara.yaml`**: Arabic (Arab) with entry_status.
+- **`08-multilanguage-jpn.yaml`**: Japanese with Kanji/Kana/Latn variants,
+ demonstrating the script cascade and pronunciation overrides.
+- **`08-multilanguage-rus.yaml`**: Russian (Cyrl) with transliterated form
+ using ISO 24229 conversion system code.
+
+## 09 — Non-Verbal Representations
+
+URI references to external resources (ISO 10241-1 §6.5): images, tables, formulas.
+Resources live outside the concept model and are referenced by relative path,
+URN, or URL.
+
+- **`09-nonverbal.yaml`**: Three representation types with different URI schemes.
+
+## 10 — Concept References
+
+Typed references to other concepts — local (same glossary) or external (another
+registry). `ref_type` values: `local`, `designation`, `urn`, `domain`.
+
+- **`10-concept-reference.yaml`**: Domain references on managed concept.
+- **`10-concept-reference-localized.yaml`**: Local, URN, and designation
+ references on localized concept.
+
+## 11 — Lifecycle & Review
+
+Status transitions, structured dates, review metadata, release version, and
+lineage similarity tracking.
+
+- **`11-lifecycle.yaml`**: Managed concept with dates (accepted, amended),
+ supersedes relationship.
+- **`11-lifecycle-localized.yaml`**: entry_status, dates, review_date/decision,
+ lineage_source_similarity, release version.
+
+## 12 — Absent & International Designations
+
+- `absent: true` — explicitly marks that no designation exists in this language.
+- `international: true` — symbol valid across all languages (no script override).
+
+- **`12-absent-designation.yaml`**: Managed concept with eng/jpn map.
+- **`12-absent-designation-eng.yaml`**: English with normal expression + international symbol.
+- **`12-absent-designation-jpn.yaml`**: Japanese with `absent: true` expression,
+ international symbol shared, transliterated form as admitted alternative.
+
+## 13 — Superseded & Deprecated Lifecycle
+
+Demonstrates the deprecated/superseded concept lifecycle — a concept that was
+replaced by a newer entry. Shows:
+- Managed concept with `status: superseded`
+- `superseded_by` and `deprecates` relationships
+- Localized concept with `entry_status: superseded`
+- `normative_status: deprecated` and `normative_status: superseded` on designations
+- Retired date
+
+- **`13-superseded-deprecated.yaml`**: Managed concept with superseded_by, deprecates,
+ retired date.
+- **`13-superseded-deprecated-localized.yaml`**: Deprecated/superseded designations,
+ entry_status transitions.
+
+## 14 — ISO 12620 Term Types (24 Values)
+
+ISO 12620 / TBX term_type classification for designations. All 24 values
+organized by category:
+
+| Category | Types |
+|----------|-------|
+| Orthographic/structural | `full_form`, `abbreviation`, `acronym`, `initialism`, `clipped_term`, `short_form`, `transliterated_form`, `transcribed_form`, `variant` |
+| Symbolic/formulaic | `symbol`, `formula`, `equation`, `logical_expression` |
+| Usage/provenance | `common_name`, `entry_term`, `internationalism`, `international_scientific_term`, `part_number`, `phraseological_unit`, `shortcut`, `sku`, `standard_text`, `synonym`, `synonymous_phrase` |
+
+- **`14-term-types.yaml`**: All 24 term_type values demonstrated with contextual
+ designations.
+
+## 15 — Citation & Locality Features
+
+All citation and locality features in one example:
+
+| Feature | Shown in |
+|---------|----------|
+| Structured citation (source + id + version) | multiple sources |
+| Unstructured citation (plain text) | Deming reference |
+| Locality single reference (clause, section, page, annex) | multiple sources |
+| Locality range (reference_from → reference_to) | clause 3.3.3–3.3.5, pages 42–47 |
+| Custom locality (name-value pairs) | schema/version/department |
+| Link field (URL to source) | ISO 9000, ISO 9001 |
+| Clause shorthand | definition source |
+| Original field (transitional) | note source |
+
+- **`15-citation-features.yaml`**: All citation features with contextual examples.
+
+## Schema-to-Example Mapping
+
+The tables below map each schema feature to the example(s) that demonstrate it.
+
+### Managed concept features (`concept.yaml`)
+
+| Feature | Examples |
+|---------|----------|
+| `id` / `identifier` | 01, 05, 06, 10, 11, 13 |
+| `data.uri` | 01 (urn:iec:std:iec:60050-113-01-01) |
+| `data.localized_concepts` | 01, 05, 06, 08, 10, 11, 13 |
+| `data.domains` | 05, 10 |
+| `data.sources` | 01, 05, 06, 07, 08, 10, 11 |
+| `data.related` | (localized-level only) |
+| `data.dates` | 11, 13 |
+| `status` (7 values) | 01 (valid), 11 (valid), 13 (superseded) |
+| `date_accepted` | 01, 06, 11 |
+| `related` (27 types) | 06 (all 27), 11 (supersedes), 13 (superseded_by, deprecates) |
+
+### Localized concept features (`localized-concept.yaml`)
+
+| Feature | Examples |
+|---------|----------|
+| `language_code` | 01, 02, 03, 04, 07, 08, 09, 12, 14, 15 |
+| `script` (ISO 15924) | 03 (Hani), 08 (Hani, Kana, Latn, Cyrl, Arab) |
+| `system` (ISO 24229) | 03 (Hepburn, IPA), 08 (UN:rus-Cyrl:Latn:1993) |
+| `entry_status` (4 values) | 08-ara (not_valid), 11 (valid), 13 (superseded) |
+| `terms` (5 types) | 02 (all 5), 04, 14 |
+| `definition` | 01, 02, 03, 04, 07, 09, 11, 13, 14, 15 |
+| `domain` | 05-localized |
+| `notes` | 04, 07, 15 |
+| `examples` | 04, 07, 15 |
+| `sources` | 01, 02, 04, 07, 11, 13 |
+| `dates` | 11, 13 |
+| `related` | 06-localized, 06-fra |
+| `references` | 10-localized |
+| `lineage_source_similarity` | 11 |
+| `release` | 11, 13 |
+| `review_date` / `review_decision_date` / `review_decision_event` | 11 |
+| `non_verbal_rep` | 09 |
+| `classification` | 11 (admitted) |
+| `review_type` | 11 (editorial) |
+
+### Designation features (`localized-concept.yaml` → designation)
+
+| Feature | Examples |
+|---------|----------|
+| `designation` | all examples |
+| `normative_status` (4 values) | 02 (preferred, admitted, deprecated), 12, 13 (deprecated, superseded) |
+| `geographical_area` | 02 (US, GB), 14 (US) |
+| `type` (5 values) | 02 (all 5) |
+| `language` (per-designation override) | 03 |
+| `script` (per-designation override) | 03, 08-jpn, 08-rus |
+| `system` (per-designation override) | 08-rus |
+| `international` | 02-symbol, 04, 12 |
+| `absent` | 12 |
+| `pronunciation` | 03, 08-jpn |
+| `sources` (per-designation) | 02-expression, 07, 09 |
+| `term_type` (24 values) | 08-rus (transliterated_form), 14 (all 24 including transcribed_form, transliterated_form) |
+| `related` (designation-level) | 02-abbreviation |
+| `prefix` | 02-expression (non-) |
+| `usage_info` | 02-expression |
+| `field_of_application` | 02-expression |
+| `grammar_info` | 02-expression (noun, verb, adj, adverb, preposition, participle; gender; number) |
+| `acronym` / `initialism` / `truncation` | 02-abbreviation |
+| `text` (letter/graphical symbol) | 02-symbol |
+| `image` (graphical symbol) | 02-symbol |
+
+### Citation & source features
+
+| Feature | Examples |
+|---------|----------|
+| Structured citation (source + id + version) | 01, 04, 07, 15 |
+| Unstructured citation (text) | 03, 04, 06, 07, 15 |
+| Locality (single reference) | 07, 15 |
+| Locality (range: reference_to) | 07, 15 |
+| Custom locality | 07, 15 |
+| Link field | 07, 15 |
+| Clause shorthand | 07, 15 |
+| Original field | 15 |
+| Source type (authoritative/lineage) | all source examples |
+| Source status (10 values) | 07 (all 10) |
+| Modification | 07, 15 |
+
+### Relationship type coverage
+
+| Category | Type | Example |
+|----------|------|---------|
+| Hierarchical | `broader` | 06 |
+| Hierarchical | `narrower` | 06 |
+| Generic | `broader_generic` | 06 |
+| Generic | `narrower_generic` | 06 |
+| Partitive | `broader_partitive` | 06 |
+| Partitive | `narrower_partitive` | 06 |
+| Instantial | `broader_instantial` | 06 |
+| Instantial | `narrower_instantial` | 06 |
+| Equivalence | `equivalent` | 06 |
+| Mapping | `close_match` | 06 |
+| Mapping | `broad_match` | 06 |
+| Mapping | `narrow_match` | 06 |
+| Mapping | `related_match` | 06 |
+| Comparative | `compare` | 06 |
+| Comparative | `contrast` | 06 |
+| Associative | `see` | 06, 06-localized |
+| Associative | `related_concept` | 06 |
+| Associative | `related_concept_broader` | 06 |
+| Associative | `related_concept_narrower` | 06 |
+| Spatiotemporal | `sequentially_related_concept` | 06 |
+| Spatiotemporal | `spatially_related_concept` | 06 |
+| Spatiotemporal | `temporally_related_concept` | 06 |
+| Lifecycle | `deprecates` | 06, 13 |
+| Lifecycle | `supersedes` | 06, 11 |
+| Lifecycle | `superseded_by` | 06, 13 |
+| Lexical | `homograph` | 06 |
+| Lexical | `false_friend` | 06-localized-fra |
+| Designation | `abbreviated_form_for` | 02-abbreviation |
+| Designation | `short_form_for` | 02-abbreviation |
diff --git a/schemas/v2/localized-concept.yaml b/schemas/v2/localized-concept.yaml
index b229042..ccf798b 100644
--- a/schemas/v2/localized-concept.yaml
+++ b/schemas/v2/localized-concept.yaml
@@ -20,6 +20,20 @@ properties:
properties:
language_code:
$ref: "#/$defs/language_code"
+ entry_status:
+ $ref: "#/$defs/entry_status"
+ classification:
+ type: string
+ description: Classification of the localized concept entry.
+ examples:
+ - admitted
+ - preferred
+ review_type:
+ type: string
+ description: Type of review for this entry.
+ examples:
+ - editorial
+ - substantive
designations:
type: array
description: List of designations (terms) of the concept
@@ -46,22 +60,14 @@ properties:
notes:
type: array
items:
- type: object
- description: List of notes for current localization
- properties:
- content:
- type: string
- description: content of a single note
+ $ref: "#/$defs/detailed_definition"
+ description: List of notes for current localization
examples:
type: array
items:
- type: object
- description: List of all examples for current localization
- properties:
- content:
- type: string
- description: content of a single example
+ $ref: "#/$defs/detailed_definition"
+ description: List of examples for current localization
non_verbal:
type: array
@@ -79,6 +85,20 @@ properties:
$ref: "#/$defs/concept_source"
description: The authoritative source for current localization
+ dates:
+ type: array
+ items:
+ $ref: "#/$defs/concept_date"
+ description: Dates relevant to this localized concept.
+
+ release:
+ type: string
+ description: Release version of this localized entry.
+
+ lineage_source_similarity:
+ type: integer
+ description: Percentage similarity to the lineage source (0-100).
+
status:
$ref: "#/$defs/concept_status"
@@ -102,10 +122,10 @@ $defs:
description: Indication that the term designation is missing.
field_of_application:
type: string
- description: Text used to disambiguate a designation from other, homonymous designations, by describing the subject field that the designation is used in.
+ description: Text used to disambiguate a designation by describing the subject field.
usage_info:
type: string
- description: Text used to disambiguate a designation from other, homonymous designations, by describing how the designation is used.
+ description: Text used to disambiguate a designation by describing how it is used.
geographical_area:
type: array
items:
@@ -116,6 +136,13 @@ $defs:
items:
$ref: "#/$defs/concept_source"
description: Bibliographic references for this designation.
+ term_type:
+ $ref: "#/$defs/term_type"
+ related:
+ type: array
+ items:
+ $ref: "#/$defs/related_concept"
+ description: Designation-level relationships (e.g. abbreviated_form_for, short_form_for).
# Expression Designation
designation_expression:
@@ -139,16 +166,24 @@ $defs:
$ref: "#/$defs/iso639_three_char_code"
script:
$ref: "#/$defs/iso15924_code"
+ system:
+ $ref: "#/$defs/iso24229_code"
+ international:
+ type: boolean
+ description: Whether the designation is valid across all regions.
pronunciation:
type: array
items:
- type: string
- description: A pronunciation guide to the designation.
+ $ref: "#/$defs/pronunciation"
+ description: Pronunciation guides for the designation.
grammar_info:
type: array
items:
$ref: "#/$defs/grammar_info"
description: Grammatical information about the designation.
+ prefix:
+ type: string
+ description: A prefix that attaches to the designation.
# Abbreviation Designation
designation_abbreviation:
@@ -168,9 +203,25 @@ $defs:
examples:
- j
- ATS
- is_international:
+ language:
+ $ref: "#/$defs/iso639_three_char_code"
+ script:
+ $ref: "#/$defs/iso15924_code"
+ system:
+ $ref: "#/$defs/iso24229_code"
+ international:
type: boolean
- description: Whether an abbreviation is the same across languages, or language-specific.
+ description: Whether an abbreviation is the same across languages.
+ pronunciation:
+ type: array
+ items:
+ $ref: "#/$defs/pronunciation"
+ grammar_info:
+ type: array
+ items:
+ $ref: "#/$defs/grammar_info"
+ prefix:
+ type: string
abbreviation_type:
$ref: "#/$defs/abbreviation_type"
@@ -188,7 +239,7 @@ $defs:
const: symbol
international:
type: boolean
- description: Whether the designation is valid across all regions, or is region-specific.
+ description: Whether the designation is valid across all regions.
designation:
type: string
description: The symbol used to represent the localized term
@@ -210,13 +261,19 @@ $defs:
const: graphical_symbol
international:
type: boolean
- description: Whether the designation is valid across all regions, or is region-specific.
+ description: Whether the designation is valid across all regions.
designation:
type: string
description: The symbol used to represent the localized term
examples:
- ♕
- ♖
+ text:
+ type: string
+ description: Alt text description of the graphical symbol.
+ image:
+ type: string
+ description: URI or path to the graphical symbol image.
# Letter Symbol Designation
designation_letter_symbol:
@@ -232,13 +289,16 @@ $defs:
const: letter_symbol
international:
type: boolean
- description: Whether the designation is valid across all regions, or is region-specific.
+ description: Whether the designation is valid across all regions.
designation:
type: string
description: The symbol used to represent the localized term
examples:
- C
- L
+ text:
+ type: string
+ description: The letter text of the symbol.
# Prefix Designation
designation_prefix:
@@ -272,6 +332,24 @@ $defs:
type: string
description: The suffix used to represent the localized term
+ # Pronunciation
+ pronunciation:
+ type: object
+ description: A pronunciation guide for a designation.
+ properties:
+ content:
+ type: string
+ description: The phonetic transcription text.
+ language:
+ $ref: "#/$defs/iso639_three_char_code"
+ script:
+ $ref: "#/$defs/iso15924_code"
+ system:
+ type: string
+ description: The transcription system (e.g. IPA, romaji).
+ country:
+ $ref: "#/$defs/iso3166_code"
+
# Enums and Types
abbreviation_type:
type: string
@@ -289,6 +367,45 @@ $defs:
- preferred
- admitted
- deprecated
+ - superseded
+
+ entry_status:
+ type: string
+ description: Status of the localized concept entry.
+ enum:
+ - valid
+ - not_valid
+ - superseded
+ - retired
+
+ term_type:
+ type: string
+ description: ISO 12620 term type classification.
+ enum:
+ - full_form
+ - variant
+ - entry_term
+ - common_name
+ - synonym
+ - transliterated_form
+ - transcribed_form
+ - scientific_name
+ - short_form
+ - acronym
+ - initialism
+ - abbreviation
+ - truncation
+ - symbol
+ - equation
+ - formula
+ - reference_symbol
+ - figure_symbol
+ - graphic_symbol
+ - letter_symbol
+ - roman_numeral
+ - mathematical_expression
+ - code
+ - phrase
grammar_gender:
type: string
@@ -339,11 +456,27 @@ $defs:
description: Status of the concept
enum:
- draft
+ - submitted
- not_valid
+ - invalid
- valid
- superseded
- retired
+ concept_date:
+ type: object
+ description: A date relevant to the lifecycle of the localized concept.
+ properties:
+ date:
+ type: string
+ format: date
+ type:
+ type: string
+ enum:
+ - accepted
+ - amended
+ - retired
+
concept_source_statuses:
type: string
description: Status of the concept source
@@ -382,6 +515,7 @@ $defs:
citation:
type: object
+ description: A bibliographic citation.
properties:
text:
type: string
@@ -399,63 +533,69 @@ $defs:
original:
type: string
ref:
- type: string
+ description: Reference identifier.
+ oneOf:
+ - type: string
+ - type: object
+ properties:
+ source:
+ type: string
+ id:
+ type: string
+ version:
+ type: string
clause:
type: string
custom_locality:
- $ref: "#/$defs/custom_locality"
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ value:
+ type: string
locality:
- type: string
- description: The locality of the origin
+ type: object
+ description: A locality within a cited document.
properties:
type:
type: string
- description: Type of the locality
- pattern:
- format: section|clause|part|paragraph|chapter|page|title|line|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+
- example: clause
+ description: Type of the locality (section, clause, page, etc.)
reference_from:
type: string
- description: The source of the type of the locality
- example: 3.2.1
reference_to:
type: string
- description: The target of the type of the locality
- example: 3.2.2
-
- custom_locality:
- type: array
- items:
- type: object
- description: Custom locality for the origin
- properties:
- name:
- type: string
- description: Name of the custom locality
- examples:
- - schema
- - version
- value:
- type: string
- description: Value of the custom locality
- examples:
- - Aec_service_life_arm
- - '2'
detailed_definition:
type: object
- description: A definition of the concept.
+ description: A definition, note, or example with optional sources.
properties:
content:
type: string
- description: The text of the definition of the concept.
- example: some definition of a geometric node
+ description: The text content.
sources:
type: array
items:
$ref: "#/$defs/concept_source"
- description: Bibliographic references for this particular definition of the concept.
+ description: Bibliographic references for this content.
+
+ related_concept:
+ type: object
+ description: A concept related to the current concept or designation.
+ properties:
+ type:
+ type: string
+ description: The type of relationship.
+ ref:
+ description: Reference to the related concept.
+ oneOf:
+ - type: string
+ - type: object
+ content:
+ type: string
+ description: Text describing the relationship.
# Data Types
iso639_three_char_code:
@@ -484,17 +624,13 @@ $defs:
- Arab
- Cyrl
- # Legacy aliases for backward compatibility
- geographical_area:
- $ref: "#/$defs/iso3166_code"
-
- usage_info:
+ iso24229_code:
type: string
- description: >-
- Text used to disambiguate a designation from other, homonymous designations,
- by describing how the designation is used. The usageinfo
- is supplementary, language-specific text appended
- to the designation.
+ description: The ISO-24229 conversion system code
+ examples:
+ - pinyin
+ - romaji
+ - ISO
language_code:
$ref: "#/$defs/iso639_three_char_code"
@@ -502,19 +638,23 @@ $defs:
# Non-verbal representation
non_verbal_rep:
type: object
- description: A non-verbal representation of the term, used to help define it.
+ description: A non-verbal representation of the term.
properties:
- image:
- type: object
- description: An image used to help define a term.
- table:
- type: object
- description: A table used to help define a term.
- formula:
- type: object
- description: A formula used to help define a term.
+ type:
+ type: string
+ description: Type of representation.
+ enum:
+ - image
+ - table
+ - formula
+ ref:
+ type: string
+ description: URI or path to the resource.
+ text:
+ type: string
+ description: Alt text or description.
sources:
type: array
items:
$ref: "#/$defs/concept_source"
- description: Bibliographic source for the non-verbal representation of the term.
+ description: Bibliographic source for the non-verbal representation.