# Language - Language class # Extended 2026-01-22: Added text_content attribute for language-tagged text support # Supports migration of language-specific text slots (fr, de, en, nl) per slot_fixes.yaml id: https://nde.nl/ontology/hc/class/Language name: Language prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ dct: http://purl.org/dc/terms/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: - linkml:types - ../slots/has_or_had_code classes: Language: class_uri: dct:LinguisticSystem description: | A language with ISO codes and optional text content. **Purpose**: Represents a language entity that can identify the language of text content. Used for language-tagged text where the language code and content are bundled together. **Use Cases**: 1. Language identification only (just codes, no content) 2. Language-tagged text (codes + text_content for multilingual data) **Migration Support**: This class supports migration from language-specific text slots (fr, de, en, nl) to a unified `has_or_had_language` + `Language` pattern per slot_fixes.yaml. **Ontological Alignment**: - **Primary**: `dct:LinguisticSystem` - Dublin Core linguistic system - **Close**: `schema:Language` - Schema.org language exact_mappings: - dct:LinguisticSystem close_mappings: - schema:Language slots: - has_or_had_code attributes: language_name: range: string description: | Human-readable name of the language (e.g., "English", "Dutch", "French"). Parsed from raw string, not authoritative. Use ISO codes for formal identification. iso_639_1: range: string description: ISO 639-1 two-letter code (e.g., "fr", "en", "de", "nl") pattern: "^[a-z]{2}$" iso_639_3: range: string description: ISO 639-3 three-letter code (e.g., "fra", "eng", "deu", "nld") pattern: "^[a-z]{3}$" text_content: range: string description: | Text content in this language. Used when bundling language identification with the actual text content. This enables migration from language-specific slots (fr, de, en, nl) to a unified Language-tagged pattern. **Example**: ```yaml has_or_had_language: - iso_639_1: "fr" language_name: "French" text_content: "archives universitaires" - iso_639_1: "en" language_name: "English" text_content: "university archives" ``` examples: - value: | iso_639_1: "fr" language_name: "French" text_content: "archives universitaires" description: French language-tagged text for multilingual label - value: | iso_639_1: "en" language_name: "English" description: English language identifier (without text content) - value: | iso_639_1: "nl" language_name: "Dutch" text_content: "universitair archief" description: Dutch language-tagged text