- 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
289 lines
10 KiB
YAML
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
|