glam/schemas/20251121/linkml/modules/classes/CustodianName.yaml
kempersc 69a22e2b5a Refactor and expand LinkML slot definitions
- Deleted the `rights_statement_url` slot definition as it is no longer needed.
- Added multiple new slots including `has_legal_basis`, `has_statement`, `impose`, `pose_condition`, and `reviewed_through` with detailed descriptions and ontology alignments.
- Updated existing slots to improve clarity and consistency, including renaming `close_mappings` to `related_mappings` in several definitions.
- Enhanced the `require` slot with additional aliases for better usability.
- Improved documentation and comments across all slot definitions to clarify their purpose and usage.
2026-02-08 23:37:44 +01:00

118 lines
9.4 KiB
YAML

id: https://nde.nl/ontology/hc/class/CustodianName
name: CustodianName
title: Custodian Name Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
rdfs: http://www.w3.org/2000/01/rdf-schema#
dcterms: http://purl.org/dc/terms/
org: http://www.w3.org/ns/org#
tooi: https://identifier.overheid.nl/tooi/def/ont/
rico: https://www.ica.org/standards/RiC/ontology#
gleif: https://www.gleif.org/ontology/Base/
crm: http://www.cidoc-crm.org/cidoc-crm/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
- ../slots/20260202_matang/has_label
- ../slots/20260202_matang/has_score
- ../slots/20260202_matang/derive_from
- ../slots/20260202_matang/generated_by
- ../slots/20260202_matang/new/name_authority
- ../slots/20260202_matang/new/name_language
- ../slots/20260202_matang/new/name_validity_period
- ../slots/20260202_matang/new/refers_to_custodian
- ../slots/20260202_matang/new/standardized_name
- ../slots/20260202_matang/supersede
- ../slots/20260202_matang/temporal_extent
# - ./ReconstructionActivity
classes:
CustodianName:
is_a: ReconstructedEntity
class_uri: skos:Concept
description: "Standardized emic (insider) name DERIVED FROM CustodianObservation(s).\n\nCRITICAL: CustodianName is NOT a subclass of CustodianObservation!\n- CustodianObservation = Evidence seen in sources (input)\n- CustodianName = Standardized interpretation (output)\n- Relationship: CustodianName prov:wasDerivedFrom CustodianObservation\n\nCustodianName represents the CANONICAL LABEL - the standardized form\naccepted by the custodian itself for public identification.\n\nIMPORTANT: CustodianName \u2260 Legal Name\n- CustodianName = How custodian presents itself (emic, operational)\n- Legal Name = Formal registered name (in CustodianLegalStatus)\n- Example: \"Rijksmuseum\" (emic) vs \"Stichting Rijksmuseum\" (legal)\n\n===========================================================================\nMANDATORY RULE: Legal Form Terms MUST Be Filtered\n===========================================================================\n\nLegal form designations (Stichting, Foundation, Inc., Ltd., GmbH,\
\ etc.)\nMUST ALWAYS be removed from CustodianName, even when the custodian\nself-identifies with them. This is the ONE EXCEPTION to the emic principle.\n\nRATIONALE:\n1. Legal form is METADATA about the entity, not part of its identity\n2. Legal forms change (foundation\u2192corporation) but identity persists\n3. Enables consistent cross-jurisdictional comparison\n4. Prevents duplicate entries (\"X Foundation\" vs \"X\")\n5. Aligns with ISO 20275 (Legal Entity Identifier) principles\n\nEXAMPLES:\n- \"Stichting Rijksmuseum\" \u2192 CustodianName: \"Rijksmuseum\"\n- \"Hidde Nijland Stichting\" \u2192 CustodianName: \"Hidde Nijland\"\n- \"The Getty Foundation\" \u2192 CustodianName: \"The Getty\"\n- \"British Museum Trust Ltd\" \u2192 CustodianName: \"British Museum\"\n- \"Funda\xE7\xE3o Biblioteca Nacional\" \u2192 CustodianName: \"Biblioteca Nacional\"\n\nLEGAL FORM TERMS TO FILTER (partial list by jurisdiction):\n- Dutch: Stichting, Vereniging, Co\xF6peratie, B.V., N.V., V.O.F.\n\
- English: Foundation, Trust, Inc., Ltd., LLC, Corp., Association\n- German: Stiftung, Verein, e.V., GmbH, AG\n- French: Fondation, Association, S.A., S.A.R.L.\n- Spanish: Fundaci\xF3n, Asociaci\xF3n, S.A., S.L.\n- Portuguese: Funda\xE7\xE3o, Associa\xE7\xE3o, Ltda., S.A.\n- Italian: Fondazione, Associazione, S.p.A., S.r.l.\n\nSee: rules/LEGAL_FORM_FILTERING_RULE.md for comprehensive global list\n\n===========================================================================\nMANDATORY RULE: Special Characters MUST Be Excluded from Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, special characters and symbols\nMUST be completely removed. Only alphabetic characters (A-Z) are permitted\nin the has_abbreviation component of the GHCID.\n\nRATIONALE:\n1. URL/URI safety - Special characters require encoding in URIs\n2. Filename safety - Characters like &, /, \\, : are invalid in filenames\n3. Parsing\
\ consistency - Avoids delimiter conflicts in data pipelines\n4. Cross-system compatibility - Ensures interoperability with all systems\n5. Human readability - Clean identifiers are easier to communicate\n\nCHARACTERS TO REMOVE (exhaustive list):\n- Ampersand: & (e.g., \"Records & Archives\" \u2192 \"RA\", not \"R&A\")\n- Slash: / (e.g., \"Art/Design Museum\" \u2192 \"ADM\", not \"A/DM\")\n- Backslash: \\\n- Plus: + (e.g., \"Culture+\" \u2192 \"C\")\n- At sign: @\n- Hash/Pound: #\n- Percent: %\n- Dollar: $\n- Asterisk: *\n- Parentheses: ( )\n- Brackets: [ ] { }\n- Pipe: |\n- Colon: :\n- Semicolon: ;\n- Quotation marks: \" ' ` \n- Comma: ,\n- Period: . (unless part of has_abbreviation like \"U.S.\" \u2192 \"US\")\n- Hyphen: - (skip, do not replace with letter)\n- Underscore: _\n- Equals: =\n- Question mark: ?\n- Exclamation: !\n- Tilde: ~\n- Caret: ^\n- Less/Greater than: < >\n\nEXAMPLES:\n- \"Department of Records & Information Management\" \u2192 \"DRIM\" (not \"DR&IM\")\n\
- \"Art + Culture Center\" \u2192 \"ACC\" (not \"A+CC\")\n- \"Museum/Gallery Amsterdam\" \u2192 \"MGA\" (not \"M/GA\")\n- \"Heritage@Digital\" \u2192 \"HD\" (not \"H@D\")\n- \"Archives (Historical)\" \u2192 \"AH\" (not \"A(H)\")\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\n===========================================================================\nMANDATORY RULE: Diacritics MUST Be Normalized to ASCII in Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, diacritics (accented characters)\nMUST be normalized to their ASCII base letter equivalents. Only ASCII\nuppercase letters (A-Z) are permitted in the has_abbreviation component.\n\nRATIONALE:\n1. URI/URL safety - Non-ASCII requires percent-encoding\n2. Cross-system compatibility - ASCII is universally supported\n3. Parsing consistency - No special character handling needed\n4. Human readability - Easier to type\
\ and communicate\n\nDIACRITICS TO NORMALIZE (examples by language):\n- Czech: \u010C\u2192C, \u0158\u2192R, \u0160\u2192S, \u017D\u2192Z, \u011A\u2192E, \u016E\u2192U\n- Polish: \u0141\u2192L, \u0143\u2192N, \xD3\u2192O, \u015A\u2192S, \u0179\u2192Z, \u017B\u2192Z, \u0104\u2192A, \u0118\u2192E\n- German: \xC4\u2192A, \xD6\u2192O, \xDC\u2192U, \xDF\u2192SS\n- French: \xC9\u2192E, \xC8\u2192E, \xCA\u2192E, \xC7\u2192C, \xD4\u2192O\n- Spanish: \xD1\u2192N, \xC1\u2192A, \xC9\u2192E, \xCD\u2192I, \xD3\u2192O, \xDA\u2192U\n- Nordic: \xC5\u2192A, \xC4\u2192A, \xD6\u2192O, \xD8\u2192O, \xC6\u2192AE\n\nEXAMPLES:\n- \"Vlastiv\u011Bdn\xE9 muzeum\" (Czech) \u2192 \"VM\" (not \"VM\" with h\xE1\u010Dek)\n- \"\xD6sterreichische Nationalbibliothek\" (German) \u2192 \"ON\"\n- \"Biblioth\xE8que nationale\" (French) \u2192 \"BN\"\n\nREAL-WORLD EXAMPLE:\n- \u274C WRONG: CZ-VY-TEL-L-VHSPAO\u010CRZS (contains \u010C)\n- \u2705 CORRECT: CZ-VY-TEL-L-VHSPAOCRZS (ASCII only)\n\nIMPLEMENTATION:\n```python\n\
import unicodedata\nnormalized = unicodedata.normalize('NFD', text)\nascii_text = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')\n```\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\nCan be generated by:\n1. ReconstructionActivity (formal entity resolution) - generated_by link\n2. Direct extraction (simple standardization) - no generated_by link\n"
close_mappings:
- skos:prefLabel
- schema:name
- foaf:name
- rdfs:label
- dcterms:title
- org:legalName
- tooi:officieleNaamInclSoort
- rico:name
related_mappings:
- skos:altLabel
- schema:alternateName
- foaf:nick
- gleif:hasOtherName
slots:
- has_label
- name_authority
- name_language
- name_validity_period
- refers_to_custodian
- standardized_name
- supersedes_or_superseded
- has_score
- temporal_extent
- derived_from
- generated_by
slot_usage:
has_label:
# range: string
inlined: false # Fixed invalid inline for primitive type
multivalued: true
examples:
- value:
has_label: Rijksmuseum
has_type: EmicLabel
- value:
has_label: State Museum
has_type: AlternativeName
name_language:
# range: string
pattern: ^[a-z]{2}(-[A-Z]{2})?$
standardized_name:
# range: string
required: true
name_authority:
# range: string
temporal_extent:
range: TimeSpan
inlined: true
required: false
examples:
- value:
begin_of_the_begin: '1920-01-01'
end_of_the_end: '1950-12-31'
name_validity_period:
range: TimeSpan
examples:
- value:
begin_of_the_begin: '1920-01-01'
end_of_the_begin: '1929-12-31'
begin_of_the_end: '1945-01-01'
end_of_the_end: '1955-12-31'
derived_from:
range: CustodianObservation
multivalued: true
required: true
generated_by:
range: ReconstructionActivity
required: false
refers_to_custodian:
range: Custodian
required: true
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"