glam/schemas/20251121/linkml/modules/classes/PersonName.yaml
kempersc 626bd3a095 refactor(schemas): apply naming conventions to 261 class files
- Apply Rule 39: RiC-O style hasOrHad*/isOrWas* for temporal slots
- Apply Rule 43: Singular noun convention (keywords → keyword)
- Update slot references to match renamed slot files
- Maintain schema integrity across all class definitions
2026-01-10 15:36:33 +01:00

289 lines
10 KiB
YAML

id: https://nde.nl/ontology/hc/class/PersonName
name: PersonName
title: Person Name Class
prefixes:
pnv: https://w3id.org/pnv#
pico: https://personsincontext.org/model#
sdo: https://schema.org/
prov: http://www.w3.org/ns/prov#
skos: http://www.w3.org/2004/02/skos/core#
foaf: http://xmlns.com/foaf/0.1/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../slots/literal_name
- ../slots/given_name
- ../slots/base_surname
- ../slots/surname_prefix
- ../slots/patronym
- ../slots/initial
- ../slots/name_specification
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
PersonName:
class_uri: pnv:PersonName
description: |
Structured person name following the Person Name Vocabulary (PNV).
PNV is a Dutch heritage standard for representing person names with their
constituent parts. It is designed for historical records where names may
be incomplete, spelled variably, or follow naming conventions different
from modern Western norms.
===========================================================================
PNV DESIGN PRINCIPLES (from https://w3id.org/pnv)
===========================================================================
1. A name is a resource in its own right - not just a string
2. Names have structure that can be decomposed into components
3. Components may be missing, uncertain, or abbreviated
4. Patronymics and surname prefixes are distinct name elements
5. Unknown/unnamed persons are explicitly marked, not left blank
===========================================================================
REQUIRED vs OPTIONAL PROPERTIES
===========================================================================
- literal_name: REQUIRED unless name_specification is set
- name_specification: REQUIRED if literal_name is blank ("unknown" or "unnamed")
- All other properties: OPTIONAL
===========================================================================
DUTCH NAME EXAMPLES
===========================================================================
Example 1: "Pieter Corneliszoon van der Berg"
- literal_name: "Pieter Corneliszoon van der Berg"
- given_name: "Pieter"
- patronym: "Corneliszoon" (son of Cornelis)
- surname_prefix: "van der"
- base_surname: "Berg"
Example 2: "H.A.F.M.O. (Hans) van Mierlo"
- literal_name: "H.A.F.M.O. (Hans) van Mierlo"
- initials: "H.A.F.M.O."
- given_name: "Hans"
- surname_prefix: "van"
- base_surname: "Mierlo"
Example 3: "Maria de Vries"
- literal_name: "Maria de Vries"
- given_name: "Maria"
- surname_prefix: "de"
- base_surname: "Vries" (used for alphabetical sorting under V)
Example 4: "Jan Janszoon" (historical record with patronymic only)
- literal_name: "Jan Janszoon"
- given_name: "Jan"
- patronym: "Janszoon" (son of Jan)
- base_surname: null (no family surname)
Example 5: Unknown person in historical record
- literal_name: null
- name_specification: "unknown"
Example 6: Unnamed child who died shortly after birth
- literal_name: null
- name_specification: "unnamed"
===========================================================================
INTERNATIONAL NAME PATTERNS
===========================================================================
Icelandic Patronymic:
- "Björk Guðmundsdóttir" → patronym: "Guðmundsdóttir"
Spanish Compound Surname:
- "Pablo Ruiz Picasso" → given_name: "Pablo", base_surname: "Ruiz Picasso"
Arabic Name with Nasab:
- "Muhammad ibn Abdullah" → given_name: "Muhammad", patronym: "ibn Abdullah"
Indonesian Single Name:
- "Sukarno" → literal_name: "Sukarno", given_name: "Sukarno"
===========================================================================
SORTING BEHAVIOR
===========================================================================
The base_surname property exists specifically for sorting. Dutch names with
prefixes (van, de, van der, etc.) are sorted by the main surname element:
- "Johannes de Vries" sorts under V (base_surname: "Vries")
- "Anna van den Berg" sorts under B (base_surname: "Berg")
However, Belgian Dutch and some other conventions sort by prefix:
- "Jan De Smedt" (Belgian) sorts under D (use surname_prefix in sorting)
===========================================================================
ONTOLOGY ALIGNMENT
===========================================================================
PNV is the PRIMARY ontology for structured name representation.
Additional mappings:
- CIDOC-CRM: crm:E41_Appellation (name as identifying entity)
- Schema.org: sdo:name (simple string fallback)
- FOAF: foaf:name (simple string fallback)
exact_mappings:
- pnv:PersonName
close_mappings:
- crm:E41_Appellation
- foaf:name
- sdo:name
related_mappings:
- skos:prefLabel
- sdo:givenName
- sdo:familyName
slots:
- base_surname
- given_name
- initial
- literal_name
- name_specification
- patronym
- specificity_annotation
- surname_prefix
- template_specificity
slot_usage:
literal_name:
slot_uri: pnv:literalName
description: |
Full personal name as written. REQUIRED unless name_specification is set.
This is the complete name string as it appears in the source material.
It may include given names, patronyms, surname prefixes, and surnames.
Examples:
- "Pieter Corneliszoon van der Berg"
- "H.A.F.M.O. (Hans) van Mierlo"
- "Maria de Vries"
Leave blank ONLY if:
- Person's name was unknown (set name_specification: "unknown")
- Person was unnamed (set name_specification: "unnamed")
range: string
required: false
given_name:
slot_uri: pnv:givenName
description: |
The name(s) given to someone at birth or any other name-giving event.
May include multiple given names, nicknames in parentheses, or call names.
Examples:
- "Pieter" (single given name)
- "Hans" (from "H.A.F.M.O. (Hans)")
- "Jan Willem" (multiple given names)
- "Pietje" (diminutive/nickname)
range: string
base_surname:
slot_uri: pnv:baseSurname
description: |
Family name WITHOUT prefixes, used for alphabetical sorting.
Dutch naming convention sorts by the main surname element, ignoring
prefixes like "van", "de", "van der", etc.
Examples:
- "de Vries" → base_surname: "Vries" (sorts under V)
- "van den Berg" → base_surname: "Berg" (sorts under B)
- "van der Waals" → base_surname: "Waals" (sorts under W)
Equivalent to BioDes:geslachtsnaam in Dutch heritage standards.
range: string
surname_prefix:
slot_uri: pnv:surnamePrefix
description: |
Prefix before the surname (tussenvoegsel in Dutch).
Common Dutch prefixes: van, de, het, ter, ten, van de, van der, van den,
in 't, op den, etc.
German: von, zu, von und zu
French: de, du, de la, des
Examples:
- "van der Berg" → surname_prefix: "van der"
- "de Vries" → surname_prefix: "de"
- "in 't Veld" → surname_prefix: "in 't"
Equivalent to A2A:PersonNamePrefixLastName.
range: string
patronym:
slot_uri: pnv:patronym
description: |
Name element based on the given name of one's father (patronym)
or mother (matronym).
Common patterns:
- Dutch: -zoon, -szoon, -z., -sen, -dochter (e.g., "Janszoon", "Pietersdochter")
- Icelandic: -son, -dóttir (e.g., "Jónsson", "Guðmundsdóttir")
- Arabic: ibn, bin, bint (e.g., "ibn Abdullah", "bint Fatima")
- Hebrew: ben, bat (e.g., "ben David")
- Slavic: -ovich, -ovna (e.g., "Ivanovich", "Petrovna")
Examples:
- "Jan Pieterszoon" → patronym: "Pieterszoon"
- "Björk Guðmundsdóttir" → patronym: "Guðmundsdóttir"
- "Muhammad ibn Abdullah" → patronym: "ibn Abdullah"
range: string
initial:
slot_uri: pnv:initials
description: |
Initial letter(s) of given name(s), each followed by a period.
Used when only initials are known, or to record initials alongside
the full given name.
Format: Each initial followed by period, no spaces between.
Examples:
- "P.R." (for "Peter R.")
- "H.A.F.M.O." (for Hans van Mierlo's full initials)
- "C.Joh." (unusual has_or_had_abbreviation format)
- "J." (single initial)
If only initials are known (not full given name), use this property.
The given_name property may also contain the initials as a fallback.
range: string
pattern: ^[A-Z][a-z]*\.([A-Z][a-z]*\.)*$
name_specification:
slot_uri: pnv:nameSpecification
description: |
Indicates why literal_name is blank: "unknown" or "unnamed".
REQUIRED when literal_name is empty. Prevents ambiguity between
missing data and deliberately unnamed/unknown persons.
Values:
- "unknown": Person existed but name was not recorded or is illegible
- "unnamed": Person was never given a name (e.g., infant who died at birth)
Examples:
- Historical record mentions "a servant" without name → "unknown"
- Baptism record for stillborn child → "unnamed"
- Illegible signature on document → "unknown"
range: string
pattern: ^(unknown|unnamed)$
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
rules:
- postconditions:
slot_conditions:
literal_name:
required: true
preconditions:
slot_conditions:
name_specification:
none_of:
- equals_string: unknown
- equals_string: unnamed
description: literal_name is REQUIRED unless name_specification is set