glam/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml
kempersc 0393b321c9 refactor(schema): unify custodian_type slots into has_or_had_custodian_type (Rule 39, 43)
- Migrate 236+ class files from custodian_types to has_or_had_custodian_type
- Archive deprecated slots: custodian_type, custodian_types, custodian_type_broader/narrower/related
- Update main schema and manifest imports
- Fix Custodian.yaml class to use new slot
- Fix annotation format (list→scalar) in has_or_had_custodian_type.yaml

Rules applied:
- Rule 39: RiC-O naming convention (hasOrHad pattern)
- Rule 43: Slot nouns must be singular (multivalued:true for cardinality)
- Rule 38: Slot centralization with semantic URI
2026-01-09 10:55:21 +01:00

129 lines
3.8 KiB
YAML

id: https://nde.nl/ontology/hc/class/LanguageProficiency
name: language_proficiency_class
title: Language Proficiency Class
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dct: http://purl.org/dc/terms/
imports:
- linkml:types
- ../metadata
- ../slots/specificity_annotation
- ../slots/template_specificity
# LanguageProficiency-specific slots
- ../slots/language_raw
- ../slots/language_name
- ../slots/language_code
- ../slots/proficiency_level
# Enum imports
- ../enums/LanguageProficiencyEnum
# Class imports for slot ranges
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
default_range: string
default_prefix: hc
classes:
LanguageProficiency:
class_uri: schema:knowsLanguage
description: |
A language skill with proficiency level.
Models language abilities as extracted from LinkedIn profiles,
with both raw string and parsed components.
**Schema.org Alignment**:
- Represents schema:knowsLanguage relation
- Language is schema:Language
**Use Cases**:
- LinkedIn profile language sections
- Multilingual staff identification
- Heritage institution language capabilities
**Example JSON Values**:
```json
[
"English - Native or bilingual",
"Dutch - Native or bilingual",
"French - Professional working proficiency"
]
```
**LinkedIn Proficiency Levels**:
- Native or bilingual proficiency
- Full professional proficiency
- Professional working proficiency
- Limited working proficiency
- Elementary proficiency
exact_mappings:
- schema:knowsLanguage
close_mappings:
- dct:language
slots:
- language_code
- language_name
- language_raw
- proficiency_level
- specificity_annotation
- template_specificity
slot_usage:
language_raw:
description: |
Raw language string as extracted from LinkedIn.
Format: "Language - Proficiency level"
Preserved for provenance.
slot_uri: schema:description
range: string
examples:
- value: English - Native or bilingual
description: Native English speaker
- value: Dutch - Professional working proficiency
description: Professional Dutch
language_name:
description: |
Language name (parsed from raw string).
slot_uri: schema:name
range: string
examples:
- value: English
- value: Dutch
- value: French
language_code:
description: |
ISO 639-1 two-letter language code.
Derived from language_name lookup.
slot_uri: dct:language
range: string
pattern: "^[a-z]{2}$"
examples:
- value: en
description: English
- value: nl
description: Dutch
- value: fr
description: French
proficiency_level:
description: |
Proficiency level as parsed from LinkedIn.
Uses LanguageProficiencyEnum values.
slot_uri: schema:proficiencyLevel
range: LanguageProficiencyEnum
examples:
- value: NATIVE_BILINGUAL
description: Native or bilingual proficiency
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Inlined in LinkedInProfile.languages[] as multivalued list
- Preserves raw LinkedIn format for provenance
- ISO 639-1 codes enable language-based filtering
see_also:
- https://schema.org/knowsLanguage
- https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes