From 6da794ee388dd59f93ef45e93f6f1a94958bc554 Mon Sep 17 00:00:00 2001 From: kempersc Date: Wed, 14 Jan 2026 16:54:10 +0100 Subject: [PATCH] feat: Introduce new slots and classes for enhanced heritage data modeling - Added `has_or_had_place_of_birth` slot to capture structured birth place information with historical context. - Introduced `has_or_had_quantity` slot for capturing quantified values with units and provenance. - Created `has_or_had_service_area` slot to define geographic service areas for heritage custodians. - Implemented `is_or_was_approximate` slot to indicate uncertainty in values (dates, quantities). - Added `is_or_was_asserted_by` slot to track the agent responsible for assertions. - Introduced `Asserter` class to model agents making assertions, including types like human, automated, and AI. - Created `Quantity` class to represent quantified values with optional units and types. - Added enums for `AsserterTypeEnum` and `QuantityTypeEnum` to standardize types of asserters and quantities. - Archived outdated slots and replaced them with new structured alternatives following RiC-O conventions. --- .../modules/classes/ApproximationStatus.yaml | 149 +++ .../linkml/modules/classes/Asserter.yaml | 180 ++++ .../linkml/modules/classes/Author.yaml | 199 ++++ .../linkml/modules/classes/BirthDate.yaml | 217 ++++ .../linkml/modules/classes/BirthPlace.yaml | 223 +++++ .../linkml/modules/classes/BranchOffice.yaml | 92 +- .../linkml/modules/classes/Budget.yaml | 15 +- .../modules/classes/CustodianPlace.yaml | 16 +- .../classes/CustodianTimelineEvent.yaml | 58 +- .../modules/classes/DigitalPlatform.yaml | 16 +- .../modules/classes/ExhibitionCatalog.yaml | 43 +- .../modules/classes/PersonObservation.yaml | 60 +- .../PrimaryDigitalPresenceAssertion.yaml | 30 +- .../linkml/modules/classes/Quantity.yaml | 223 +++++ .../classes/StorageConditionPolicy.yaml | 23 +- .../linkml/modules/classes/StorageUnit.yaml | 14 +- .../modules/enums/AsserterTypeEnum.yaml | 31 + .../modules/enums/QuantityTypeEnum.yaml | 43 + .../modules/slots/approximation_level.yaml | 26 + .../approximate_archived_20260114.yaml} | 0 .../asserted_by_archived_20260114.yaml} | 0 .../authors_archived_20260114.yaml} | 0 .../auxiliary_places_archived_20260114.yaml} | 0 ...uxiliary_platforms_archived_20260114.yaml} | 0 .../birth_date_archived_20260114.yaml} | 0 .../birth_place_archived_20260114.yaml} | 0 ...ranch_service_area_archived_20260114.yaml} | 0 ...branch_staff_count_archived_20260114.yaml} | 0 .../has_author_archived_20260114.yaml} | 0 .../policy_approved_by_archived_20260115.yaml | 32 + .../was_approved_by_archived_20260115.yaml | 52 + .../modules/slots/has_or_had_author.yaml | 61 ++ .../slots/has_or_had_auxiliary_entities.yaml | 58 ++ .../slots/has_or_had_date_of_birth.yaml | 61 ++ .../slots/has_or_had_place_of_birth.yaml | 58 ++ .../modules/slots/has_or_had_quantity.yaml | 39 + .../slots/has_or_had_service_area.yaml | 54 + .../modules/slots/is_or_was_approximate.yaml | 54 + .../modules/slots/is_or_was_asserted_by.yaml | 38 + .../modules/slots/policy_approved_by.yaml | 16 - .../linkml/modules/slots/slot_fixes.yaml | 220 ++-- .../linkml/modules/slots/was_approved_by.yaml | 41 - frontend/src/pages/EntityReviewPage.tsx | 30 + schemas/20251121/linkml/manifest.json | 149 +-- .../linkml/modules/classes/Asserter.yaml | 180 ++++ .../linkml/modules/classes/BranchOffice.yaml | 47 +- .../linkml/modules/classes/Budget.yaml | 15 +- .../modules/classes/EducationCenter.yaml | 7 +- .../modules/classes/FundingRequirement.yaml | 16 +- .../PrimaryDigitalPresenceAssertion.yaml | 30 +- .../linkml/modules/classes/Quantity.yaml | 223 +++++ .../classes/StorageConditionPolicy.yaml | 23 +- .../linkml/modules/classes/StorageUnit.yaml | 14 +- .../modules/enums/AsserterTypeEnum.yaml | 31 + .../modules/enums/QuantityTypeEnum.yaml | 43 + .../modules/slots/annual_participants.yaml | 15 - .../slots/applies_or_applied_to_call.yaml | 33 + .../linkml/modules/slots/applies_to_call.yaml | 28 - ...annual_participants_archived_20260115.yaml | 21 + .../applies_to_call_archived_20260115.yaml | 27 + .../asserted_by_archived_20260114.yaml} | 0 ...branch_staff_count_archived_20260114.yaml} | 0 .../policy_approved_by_archived_20260115.yaml | 32 + .../was_approved_by_archived_20260115.yaml | 52 + .../modules/slots/has_or_had_quantity.yaml | 39 + .../modules/slots/is_or_was_asserted_by.yaml | 38 + .../linkml/modules/slots/manifest.json | 3 +- .../modules/slots/policy_approved_by.yaml | 16 - .../linkml/modules/slots/slot_fixes.yaml | 936 +++++++++++++++++- .../linkml/modules/slots/was_approved_by.yaml | 41 - 70 files changed, 4086 insertions(+), 445 deletions(-) create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/approximation_level.yaml rename frontend/public/schemas/20251121/linkml/modules/slots/{approximate.yaml => archive/approximate_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{asserted_by.yaml => archive/asserted_by_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{authors.yaml => archive/authors_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{auxiliary_places.yaml => archive/auxiliary_places_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{auxiliary_platforms.yaml => archive/auxiliary_platforms_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{birth_date.yaml => archive/birth_date_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{birth_place.yaml => archive/birth_place_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{branch_service_area.yaml => archive/branch_service_area_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{branch_staff_count.yaml => archive/branch_staff_count_archived_20260114.yaml} (100%) rename frontend/public/schemas/20251121/linkml/modules/slots/{has_author.yaml => archive/has_author_archived_20260114.yaml} (100%) create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_date_of_birth.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place_of_birth.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/was_approved_by.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Asserter.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Quantity.yaml create mode 100644 schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml create mode 100644 schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/annual_participants.yaml create mode 100644 schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/applies_to_call.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml rename schemas/20251121/linkml/modules/slots/{asserted_by.yaml => archive/asserted_by_archived_20260114.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{branch_staff_count.yaml => archive/branch_staff_count_archived_20260114.yaml} (100%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/policy_approved_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/was_approved_by.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml new file mode 100644 index 0000000000..6eb967ad8b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml @@ -0,0 +1,149 @@ +id: https://nde.nl/ontology/hc/class/ApproximationStatus +name: approximation_status_class +title: ApproximationStatus Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + skos: http://www.w3.org/2004/02/skos/core# +imports: +- linkml:types +- ../metadata +- ../slots/approximation_level +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +- ../slots/specificity_annotation +- ../slots/template_specificity +default_prefix: hc +classes: + ApproximationStatus: + class_uri: hc:ApproximationStatus + description: >- + Status indicating the level of approximation or uncertainty for a value. + + **PURPOSE**: + + ApproximationStatus captures structured uncertainty information for values + like dates, quantities, and measurements where precision varies. This + replaces simple boolean "approximate: true/false" with richer modeling. + + **UNCERTAINTY LEVELS**: + + | Level | Label | Description | Example | + |-------|-------|-------------|---------| + | EXACT | Exact | Known with certainty | "1880-03-15" | + | APPROXIMATE | Approximate | Close but not exact | "circa 1880" | + | ESTIMATED | Estimated | Calculated/inferred | "estimated 1875-1885" | + | UNCERTAIN | Uncertain | Significant doubt | "possibly 19th century" | + | UNKNOWN | Unknown | Cannot be determined | "date unknown" | + + **CIDOC-CRM ALIGNMENT**: + + CIDOC-CRM models time-span precision through E52_Time-Span with fuzzy + boundaries. ApproximationStatus provides a complementary vocabulary for + expressing certainty levels. + + **USE CASES**: + + 1. **Date Uncertainty**: Founding dates known only to decade + 2. **Quantity Estimates**: Collection size approximations + 3. **Location Precision**: Address known only to city level + 4. **Historical Events**: Uncertain timing of organizational changes + + **EXAMPLE**: + + ```yaml + event_date: "1880" + is_or_was_approximate: + approximation_level: APPROXIMATE + has_or_had_label: "circa 1880" + has_or_had_description: "Founding date known only to year from secondary sources" + ``` + exact_mappings: + - crm:E52_Time-Span + close_mappings: + - rico:DateType + related_mappings: + - skos:note + slots: + - approximation_level + - has_or_had_label + - has_or_had_description + - specificity_annotation + - template_specificity + slot_usage: + approximation_level: + range: ApproximationLevelEnum + required: true + description: >- + Level of approximation/uncertainty for the value. + has_or_had_label: + range: string + required: false + description: >- + Human-readable label for the approximation status. + examples: + - value: "circa 1880" + description: Approximate date label + - value: "approximately 10,000" + description: Approximate quantity label + has_or_had_description: + range: string + required: false + description: >- + Explanation of why the value is approximate and how uncertainty + was determined. + examples: + - value: "Founding date derived from secondary sources, exact day unknown" + description: Provenance of uncertainty + comments: + - ApproximationStatus replaces simple boolean approximate field + - Provides structured uncertainty modeling for dates, quantities, etc. + - Aligned with CIDOC-CRM E52_Time-Span precision concepts + - Used by is_or_was_approximate slot + see_also: + - https://www.cidoc-crm.org/Entity/e52-time-span/version-7.1.3 + examples: + - value: + approximation_level: EXACT + has_or_had_label: "1880-03-15" + description: Exact date with full precision + - value: + approximation_level: APPROXIMATE + has_or_had_label: "circa 1880" + has_or_had_description: "Founding date known only to year from newspaper accounts" + description: Approximate date with explanation + - value: + approximation_level: ESTIMATED + has_or_had_label: "estimated 1875-1885" + has_or_had_description: "Date range inferred from building construction records" + description: Estimated date range + - value: + approximation_level: UNKNOWN + has_or_had_label: "date unknown" + has_or_had_description: "No founding records survive" + description: Unknown date + annotations: + specificity_score: 0.30 + specificity_rationale: >- + Approximation status is broadly useful across contexts where + uncertainty needs to be expressed. + +enums: + ApproximationLevelEnum: + description: Levels of approximation/uncertainty for values. + permissible_values: + EXACT: + description: Value is known with certainty + APPROXIMATE: + description: Value is close but not exact (circa, roughly) + ESTIMATED: + description: Value is calculated or inferred + UNCERTAIN: + description: Significant doubt about accuracy + UNKNOWN: + description: Value cannot be determined diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml new file mode 100644 index 0000000000..f2b14cc760 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml @@ -0,0 +1,180 @@ +id: https://nde.nl/ontology/hc/class/Asserter +name: Asserter +title: Asserter Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +- ../enums/AsserterTypeEnum +- ../slots/has_or_had_identifier +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ../slots/specificity_annotation +- ../slots/template_specificity +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +default_prefix: hc +classes: + Asserter: + class_uri: prov:Agent + description: >- + An agent (person, organization, or system) responsible for making + an assertion about a heritage entity. + + **PROV-O ALIGNMENT**: + + Maps to `prov:Agent` - "An agent is something that bears some form + of responsibility for an activity taking place, for the existence + of an entity, or for another agent's activity." + + **TYPES OF ASSERTERS**: + + | Type | Description | Example | + |------|-------------|---------| + | HUMAN_ANALYST | Expert making judgment | "jane.doe@nde.nl" | + | AUTOMATED_SYSTEM | Software system | "primary-presence-classifier/1.0" | + | AI_AGENT | AI/ML model | "claude-opus-4", "opencode-claude-sonnet-4" | + | ORGANIZATION | Institution | "Noord-Hollands Archief" | + + **USE CASES**: + + 1. **Attribution Tracking**: Who made this assertion about primary presence? + 2. **Provenance Chain**: Trace assertions back to their source agent. + 3. **Quality Assessment**: Different asserters may have different reliability. + 4. **Accountability**: Identify responsible party for each assertion. + + **EXAMPLE**: + + ```yaml + Asserter: + asserter_id: https://nde.nl/ontology/hc/asserter/claude-opus-4 + asserter_name: Claude Opus 4 + asserter_type: AI_AGENT + asserter_description: Anthropic Claude AI model used for assertion generation + asserter_version: "claude-opus-4-20250514" + ``` + exact_mappings: + - prov:Agent + close_mappings: + - foaf:Agent + - dcterms:Agent + related_mappings: + - schema:Person + - schema:Organization + slots: + - has_or_had_identifier + - has_or_had_label + - has_or_had_description + - asserter_type + - asserter_version + - asserter_contact + - specificity_annotation + - template_specificity + slot_usage: + has_or_had_identifier: + range: uriorcurie + required: true + identifier: true + description: >- + Unique identifier for this asserter. + examples: + - value: https://nde.nl/ontology/hc/asserter/claude-opus-4 + description: AI agent asserter + - value: https://nde.nl/ontology/hc/asserter/jane-doe-nde + description: Human analyst asserter + has_or_had_label: + range: string + required: true + description: >- + Name of the asserter. + examples: + - value: Claude Opus 4 + description: AI model name + - value: Dr. Jane Doe + description: Human analyst name + - value: primary-presence-classifier + description: Automated system name + has_or_had_description: + range: string + required: false + description: >- + Description of the asserter and their role in the assertion process. + examples: + - value: Anthropic Claude AI model used for heritage data assertions + - value: Senior digital heritage analyst at NDE + asserter_type: + range: AsserterTypeEnum + required: true + description: >- + The type of agent making the assertion. + examples: + - value: AI_AGENT + - value: HUMAN_ANALYST + - value: AUTOMATED_SYSTEM + asserter_version: + range: string + required: false + description: >- + Version identifier for software agents. + examples: + - value: "claude-opus-4-20250514" + - value: "1.2.3" + asserter_contact: + range: string + required: false + description: >- + Contact information for human or organizational asserters. + examples: + - value: jane.doe@nde.nl + - value: heritage-team@museum.nl + comments: + - Asserter models the agent responsible for making assertions + - Supports tracking of human, automated, and AI-based assertions + - Uses PROV-O Agent as primary ontology mapping + - Version tracking particularly important for AI/ML agents + see_also: + - https://www.w3.org/TR/prov-o/#Agent + - https://xmlns.com/foaf/spec/#term_Agent + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4 + has_or_had_label: Claude Opus 4 + asserter_type: AI_AGENT + has_or_had_description: Anthropic Claude AI model used for heritage data assertions + asserter_version: "claude-opus-4-20250514" + description: AI agent asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe-nde + has_or_had_label: Dr. Jane Doe + asserter_type: HUMAN_ANALYST + has_or_had_description: Senior digital heritage analyst at NDE + asserter_contact: jane.doe@nde.nl + description: Human analyst asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-classifier + has_or_had_label: primary-presence-classifier + asserter_type: AUTOMATED_SYSTEM + has_or_had_description: Automated system for classifying primary digital presence + asserter_version: "1.0.0" + description: Automated system asserter +slots: + asserter_type: + description: >- + The type of agent making the assertion (human, automated, AI, organization). + range: AsserterTypeEnum + slot_uri: hc:asserterType + asserter_version: + description: >- + Version identifier for software agents (automated systems or AI). + range: string + slot_uri: hc:asserterVersion + asserter_contact: + description: >- + Contact information for human or organizational asserters. + range: string + slot_uri: hc:asserterContact diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml new file mode 100644 index 0000000000..6bf58f009c --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml @@ -0,0 +1,199 @@ +id: https://nde.nl/ontology/hc/class/Author +name: author_class +title: Author Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + bf: http://id.loc.gov/ontologies/bibframe/ + bibo: http://purl.org/ontology/bibo/ + foaf: http://xmlns.com/foaf/0.1/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +- ../metadata +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ../slots/has_or_had_identifier +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +- ../slots/specificity_annotation +- ../slots/template_specificity +default_prefix: hc +classes: + Author: + class_uri: schema:Person + description: >- + Person or organization that authored/created a creative work. + + **PURPOSE**: + + Author models the creator(s) of works produced by heritage custodians, + such as exhibition catalogs, research publications, finding aids, and + reports. Replaces simple string author lists with structured data. + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Class/Property | Usage | + |----------|----------------|-------| + | **Schema.org** | `schema:Person`, `schema:author` | Primary class and property | + | **Dublin Core** | `dcterms:creator` | Creator relationship | + | **BIBFRAME** | `bf:Contribution`, `bf:Agent` | Bibliographic contributions | + | **FOAF** | `foaf:Person`, `foaf:name` | Personal information | + | **RiC-O** | `rico:Agent` | Archival agent modeling | + + **AUTHOR TYPES**: + + Authors may be: + - **Individual persons**: Named authors with affiliations + - **Organizations**: Corporate authors (e.g., "Rijksmuseum Staff") + - **Anonymous**: Works with unknown authorship + - **Collective**: Group authorships + + **ROLES**: + + Beyond simple "author", works may have multiple contributor types: + - Author (primary creator) + - Editor + - Compiler + - Translator + - Illustrator + - Contributor + + **EXAMPLE**: + + ```yaml + has_or_had_author: + - author_name: "Jan de Vries" + author_role: AUTHOR + author_affiliation: "Rijksmuseum Amsterdam" + - author_name: "Maria van Dijk" + author_role: EDITOR + ``` + exact_mappings: + - schema:Person + - foaf:Person + close_mappings: + - bf:Agent + - rico:Agent + related_mappings: + - bf:Contribution + - dcterms:creator + slots: + - author_name + - author_role + - author_affiliation + - author_identifier + - has_or_had_identifier + - has_or_had_label + - has_or_had_description + - specificity_annotation + - template_specificity + slot_usage: + author_name: + range: string + required: true + description: >- + Full name of the author (person or organization). + examples: + - value: "Jan de Vries" + description: Individual author + - value: "Rijksmuseum Research Department" + description: Corporate author + author_role: + range: AuthorRoleEnum + required: false + ifabsent: "string(AUTHOR)" + description: >- + Role of this person in creating the work. + examples: + - value: AUTHOR + description: Primary author + - value: EDITOR + description: Editor + author_affiliation: + range: string + required: false + description: >- + Organization the author is affiliated with. + examples: + - value: "Rijksmuseum Amsterdam" + description: Museum affiliation + - value: "Universiteit van Amsterdam" + description: University affiliation + author_identifier: + range: uriorcurie + required: false + description: >- + Identifier for the author (ORCID, VIAF, etc.). + examples: + - value: "https://orcid.org/0000-0001-2345-6789" + description: ORCID identifier + - value: "https://viaf.org/viaf/12345678" + description: VIAF identifier + comments: + - Author replaces simple string author lists with structured data + - Supports both individual and organizational authors + - Includes roles (author, editor, compiler, etc.) + - Can link to identifier systems (ORCID, VIAF) + see_also: + - https://schema.org/author + - https://schema.org/Person + - http://id.loc.gov/ontologies/bibframe/Contribution + examples: + - value: + author_name: "Jan de Vries" + author_role: AUTHOR + author_affiliation: "Rijksmuseum Amsterdam" + author_identifier: "https://orcid.org/0000-0001-2345-6789" + description: Individual author with full metadata + - value: + author_name: "Maria van Dijk" + author_role: EDITOR + description: Editor with minimal metadata + - value: + author_name: "Rijksmuseum Research Department" + author_role: AUTHOR + description: Corporate author + annotations: + specificity_score: 0.35 + specificity_rationale: >- + Authorship is broadly useful for creative/documentary works. + +slots: + author_name: + description: Full name of the author (person or organization). + range: string + slot_uri: schema:name + author_role: + description: Role of this person in creating the work. + range: string + slot_uri: hc:authorRole + author_affiliation: + description: Organization the author is affiliated with. + range: string + slot_uri: schema:affiliation + author_identifier: + description: Identifier for the author (ORCID, VIAF, etc.). + range: uriorcurie + slot_uri: schema:identifier + +enums: + AuthorRoleEnum: + description: Roles for contributors to a creative work. + permissible_values: + AUTHOR: + description: Primary creator of the work + EDITOR: + description: Person who edited the work + COMPILER: + description: Person who compiled/assembled the work + TRANSLATOR: + description: Person who translated the work + ILLUSTRATOR: + description: Person who created illustrations + CONTRIBUTOR: + description: General contributor + PHOTOGRAPHER: + description: Person who created photographs diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml new file mode 100644 index 0000000000..e9976f502e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml @@ -0,0 +1,217 @@ +id: https://nde.nl/ontology/hc/class/BirthDate +name: birth_date_class +title: Birth Date Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + time: http://www.w3.org/2006/time# + pico: https://personsincontext.org/model# + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +imports: + - linkml:types + - ../metadata + - ../slots/specificity_annotation + - ../slots/template_specificity + - ./SpecificityAnnotation + - ./TemplateSpecificityScores +default_prefix: hc +classes: + BirthDate: + class_uri: schema:Date + description: >- + Structured representation of a person's birth date with support for + uncertainty, incomplete dates, and provenance tracking. + + **PURPOSE**: + + BirthDate replaces simple string birth_date slots to provide: + - EDTF (Extended Date/Time Format) support for uncertain/incomplete dates + - Provenance tracking for inferred dates (Rule 45) + - Confidence scoring + - Source preservation (original format from documents) + + **EDTF NOTATION** (Rule 44): + + | Pattern | Meaning | Example | + |---------|---------|---------| + | `YYYY` | Year only | `1970` | + | `YYYY-MM` | Year and month | `1970-08` | + | `YYYY-MM-DD` | Full date | `1970-08-15` | + | `YYYX` | Decade | `197X` (1970s) | + | `YYXX` | Century | `19XX` (1900s) | + | `YYYY~` | Approximate | `1985~` (circa 1985) | + | `YYYY?` | Uncertain | `1985?` (possibly 1985) | + | `XXXX` | Unknown | Must have search provenance | + + **INFERRED DATA** (Rule 45): + + When birth date is inferred (e.g., from earliest education date): + - Store in `inferred_birth_date` with full inference chain + - Set `is_inferred: true` + - Document inference method and sources + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Mapping | Usage | + |----------|---------|-------| + | **Schema.org** | `schema:Date` | Primary class | + | **CIDOC-CRM** | `crm:E52_Time-Span` | Temporal extent | + | **PiCo** | Birth date observation | Source fidelity | + | **TIME** | `time:Instant` | Point in time | + + **EXAMPLE**: + + ```yaml + has_or_had_date_of_birth: + birth_edtf: "1970-08-15" + birth_iso_date: "1970-08-15" + is_inferred: false + confidence: high + ``` + exact_mappings: + - schema:Date + close_mappings: + - crm:E52_Time-Span + - time:Instant + related_mappings: + - pico:PersonObservation + slots: + - birth_edtf + - birth_iso_date + - birth_source_text + - is_inferred + - inference_provenance + - confidence + - specificity_annotation + - template_specificity + slot_usage: + birth_edtf: + range: string + required: true + description: >- + Birth date in EDTF notation (Extended Date/Time Format). + Supports incomplete dates, uncertainty, and approximation. + examples: + - value: "1970-08-15" + description: Full date known + - value: "1970-08" + description: Year and month known + - value: "1970" + description: Only year known + - value: "197X" + description: Decade known (1970s) + - value: "1970~" + description: Approximate (circa 1970) + - value: "XXXX" + description: Unknown (requires search provenance) + birth_iso_date: + range: date + required: false + description: >- + Birth date as ISO 8601 date (YYYY-MM-DD) when full date is known. + Optional - use birth_edtf for partial/uncertain dates. + examples: + - value: "1970-08-15" + birth_source_text: + range: string + required: false + description: >- + Original date text from source document, preserved verbatim. + Useful for archival/historical sources with non-standard notation. + examples: + - value: "born in the year of our Lord 1823" + - value: "ca. 1750" + - value: "late 18th century" + is_inferred: + range: boolean + required: false + ifabsent: "false" + description: >- + Whether this birth date was inferred (vs. directly extracted). + If true, inference_provenance MUST be provided per Rule 45. + inference_provenance: + range: string + required: false + description: >- + JSON string documenting inference chain per Rule 45. + Required when is_inferred is true. + examples: + - value: '{"method": "earliest_education_heuristic", "inference_chain": [...]}' + confidence: + range: BirthDateConfidenceEnum + required: false + description: >- + Confidence level in the birth date value. + comments: + - "Replaces simple birth_date string slot (Rule 53)" + - "EDTF notation enables uncertain/incomplete date representation" + - "Inference provenance required when is_inferred=true (Rule 45)" + - "Source text preservation supports archival/historical research" + see_also: + - https://www.loc.gov/standards/datetime/ + - https://schema.org/birthDate + examples: + - value: + birth_edtf: "1970-08-15" + birth_iso_date: "1970-08-15" + is_inferred: false + confidence: HIGH + description: Full date known with high confidence + - value: + birth_edtf: "197X" + is_inferred: true + inference_provenance: '{"method": "earliest_education_heuristic", "source_field": "education[0].start_year"}' + confidence: LOW + description: Decade inferred from education start year + - value: + birth_edtf: "1823" + birth_source_text: "born in the year of our Lord 1823" + is_inferred: false + confidence: MEDIUM + description: Year extracted from historical document + annotations: + specificity_score: 0.45 + specificity_rationale: >- + Birth dates are relevant for person research across all heritage sectors. + +slots: + birth_edtf: + description: Birth date in EDTF notation. + range: string + slot_uri: dcterms:date + birth_iso_date: + description: Birth date as ISO 8601 date when full date is known. + range: date + slot_uri: schema:birthDate + birth_source_text: + description: Original date text from source document. + range: string + slot_uri: hc:sourceText + is_inferred: + description: Whether this date was inferred. + range: boolean + slot_uri: hc:isInferred + inference_provenance: + description: JSON documenting inference chain. + range: string + slot_uri: hc:inferenceProvenance + confidence: + description: Confidence level in the date value. + range: string + slot_uri: hc:confidence + +enums: + BirthDateConfidenceEnum: + description: Confidence levels for birth date values. + permissible_values: + HIGH: + description: Full date from authoritative source (e.g., birth certificate) + MEDIUM: + description: Date from reliable source (e.g., official biography) + LOW: + description: Date inferred or from uncertain source + VERY_LOW: + description: Decade/century estimated from indirect evidence diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml new file mode 100644 index 0000000000..b590688859 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml @@ -0,0 +1,223 @@ +id: https://nde.nl/ontology/hc/class/BirthPlace +name: birth_place_class +title: Birth Place Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + gn: http://www.geonames.org/ontology# + wdt: http://www.wikidata.org/prop/direct/ +imports: + - linkml:types + - ../metadata + - ../slots/specificity_annotation + - ../slots/template_specificity + - ./SpecificityAnnotation + - ./TemplateSpecificityScores +default_prefix: hc +classes: + BirthPlace: + class_uri: schema:Place + description: >- + Structured representation of a person's place of birth with support + for historical place names, modern equivalents, and geographic identifiers. + + **PURPOSE**: + + BirthPlace replaces simple string birth_place slots to provide: + - Historical place name preservation + - Modern place name linkage + - Geographic identifier integration (GeoNames, Wikidata) + - Coordinate storage for mapping applications + + **HISTORICAL VS. MODERN NAMES**: + + Many birth places used historical names that have since changed: + - "Batavia" → "Jakarta" + - "Bombay" → "Mumbai" + - "Leningrad" → "St. Petersburg" + - "Saigon" → "Ho Chi Minh City" + + BirthPlace preserves the source name while linking to modern identifiers. + + **GEOGRAPHIC RESOLUTION**: + + Per AGENTS.md Rule on GeoNames as authoritative source: + - `geonames_id`: Links to GeoNames for standardization + - `wikidata_id`: Links to Wikidata for additional context + - `coordinates`: Lat/lon for mapping + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Mapping | Usage | + |----------|---------|-------| + | **Schema.org** | `schema:Place` | Primary class | + | **CIDOC-CRM** | `crm:E53_Place` | Place entity | + | **GeoNames** | `gn:Feature` | Geographic feature | + + **EXAMPLE**: + + ```yaml + has_or_had_place_of_birth: + place_name: "Batavia" + modern_place_name: "Jakarta" + country_code: "ID" + geonames_id: 1642911 + wikidata_id: "Q3630" + ``` + exact_mappings: + - schema:Place + close_mappings: + - crm:E53_Place + - gn:Feature + slots: + - place_name + - modern_place_name + - country_code + - region_code + - geonames_id + - wikidata_id + - coordinates + - place_source_text + - specificity_annotation + - template_specificity + slot_usage: + place_name: + range: string + required: true + description: >- + Name of the birth place as recorded in source. + May be historical name that has since changed. + examples: + - value: "Amsterdam" + description: Current name + - value: "Batavia" + description: Historical name (now Jakarta) + modern_place_name: + range: string + required: false + description: >- + Modern equivalent name if place_name is historical. + Leave null if place_name is current. + examples: + - value: "Jakarta" + description: Modern name for Batavia + country_code: + range: string + required: false + pattern: "^[A-Z]{2}$" + description: >- + ISO 3166-1 alpha-2 country code. + examples: + - value: "NL" + - value: "ID" + region_code: + range: string + required: false + description: >- + ISO 3166-2 region/province code or GeoNames admin1 code. + examples: + - value: "NH" + description: Noord-Holland + geonames_id: + range: integer + required: false + description: >- + GeoNames geographic identifier for the place. + Authoritative source per AGENTS.md. + examples: + - value: 2759794 + description: Amsterdam GeoNames ID + wikidata_id: + range: string + required: false + pattern: "^Q[0-9]+$" + description: >- + Wikidata entity identifier for the place. + examples: + - value: "Q727" + description: Amsterdam Wikidata ID + coordinates: + range: string + required: false + description: >- + Geographic coordinates as "lat,lon" string. + examples: + - value: "52.3676,4.9041" + description: Amsterdam coordinates + place_source_text: + range: string + required: false + description: >- + Original place text from source document, preserved verbatim. + Useful when source contains additional context. + examples: + - value: "born at the family estate in rural Gelderland" + comments: + - "Replaces simple birth_place string slot (Rule 53)" + - "Preserves historical place names while linking to modern identifiers" + - "GeoNames ID is authoritative per AGENTS.md" + see_also: + - https://schema.org/birthPlace + - https://www.geonames.org/ + examples: + - value: + place_name: "Amsterdam" + country_code: "NL" + region_code: "NH" + geonames_id: 2759794 + wikidata_id: "Q727" + coordinates: "52.3676,4.9041" + description: Birth place with full geographic resolution + - value: + place_name: "Batavia" + modern_place_name: "Jakarta" + country_code: "ID" + geonames_id: 1642911 + wikidata_id: "Q3630" + description: Historical place name with modern equivalent + - value: + place_name: "rural Gelderland" + country_code: "NL" + region_code: "GE" + place_source_text: "born at the family estate in rural Gelderland" + description: Imprecise location from archival source + annotations: + specificity_score: 0.45 + specificity_rationale: >- + Birth places are relevant for person research across heritage sectors. + +slots: + place_name: + description: Name of the place as recorded in source. + range: string + slot_uri: schema:name + modern_place_name: + description: Modern equivalent name if different from source name. + range: string + slot_uri: hc:modernPlaceName + country_code: + description: ISO 3166-1 alpha-2 country code. + range: string + slot_uri: schema:addressCountry + region_code: + description: ISO 3166-2 region/province code. + range: string + slot_uri: schema:addressRegion + geonames_id: + description: GeoNames geographic identifier. + range: integer + slot_uri: gn:geonamesId + wikidata_id: + description: Wikidata entity identifier. + range: string + slot_uri: wdt:P625 + coordinates: + description: Geographic coordinates as lat,lon string. + range: string + slot_uri: schema:geo + place_source_text: + description: Original place text from source document. + range: string + slot_uri: hc:sourceText diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml index 513c70d542..b4267407df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml @@ -9,8 +9,15 @@ imports: - ../slots/has_or_had_description - ../slots/has_or_had_identifier - ../slots/has_or_had_label -- ../slots/branch_service_area -- ../slots/branch_staff_count +# REMOVED - migrated to has_or_had_service_area (Rule 53) +# - ../slots/branch_service_area +- ../slots/has_or_had_service_area +- ./ServiceArea +# REMOVED - migrated to has_or_had_quantity (Rule 53) +# - ../slots/branch_staff_count +- ../slots/has_or_had_quantity +- ./Quantity +- ../enums/QuantityTypeEnum - ../slots/has_local_collection - ../slots/is_public_facing - ../slots/operating_hour @@ -69,8 +76,12 @@ classes: - has_or_had_description - has_or_had_identifier - has_or_had_label - - branch_service_area - - branch_staff_count + # REMOVED - migrated to has_or_had_service_area (Rule 53) + # - branch_service_area + - has_or_had_service_area + # REMOVED - migrated to has_or_had_quantity (Rule 53) + # - branch_staff_count + - has_or_had_quantity - has_local_collection - is_public_facing - operating_hour @@ -115,13 +126,27 @@ classes: - value: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. Open to researchers Tuesday-Thursday. description: Archive branch description - branch_service_area: - range: string + # REMOVED - migrated to has_or_had_service_area (Rule 53) + # branch_service_area: + # range: string + # examples: + # - value: Zaanstreek-Waterland region + # description: Regional coverage + # - value: Amsterdam Schiphol Airport travelers + # description: Specific community served + has_or_had_service_area: + range: ServiceArea + inlined: true + description: >- + Geographic area or community served by this branch. + MIGRATED from branch_service_area (Rule 53) - changed from string to + ServiceArea class for richer geographic modeling. examples: - - value: Zaanstreek-Waterland region - description: Regional coverage - - value: Amsterdam Schiphol Airport travelers - description: Specific community served + - value: + service_area_id: https://nde.nl/ontology/hc/servicearea/zaanstreek-waterland + service_area_name: Zaanstreek-Waterland region + service_area_type: REGIONAL + description: Regional coverage as structured ServiceArea is_public_facing: range: boolean required: true @@ -144,11 +169,28 @@ classes: examples: - value: Tu-Th 09:00-17:00 description: Limited weekday hours - branch_staff_count: - range: integer + # REMOVED - migrated to has_or_had_quantity (Rule 53) + # branch_staff_count: + # range: integer + # examples: + # - value: 3 + # description: Small branch staff + has_or_had_quantity: + range: Quantity + inlined: true + description: >- + Quantified values associated with this branch office (e.g., staff count). + MIGRATED from branch_staff_count (Rule 53) - changed from integer to + Quantity class for richer measurement context (units, dates, estimates). examples: - - value: 3 - description: Small branch staff + - value: + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to this branch + quantity_date: '2025-01-01' + is_estimate: false + description: Branch staff count as structured Quantity has_local_collection: range: boolean examples: @@ -177,14 +219,21 @@ classes: has_or_had_label: Noord-Hollands Archief - Zaanstreek-Waterland has_or_had_description: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. - branch_service_area: Zaanstreek-Waterland region + has_or_had_service_area: + service_area_id: https://nde.nl/ontology/hc/servicearea/zaanstreek-waterland + service_area_name: Zaanstreek-Waterland region + service_area_type: REGIONAL is_public_facing: true services_offered: - Archival research access - Genealogical consultations - Local history reference operating_hours: Tu-Th 09:00-17:00 - branch_staff_count: 3 + has_or_had_quantity: + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Zaanstreek-Waterland branch has_local_collection: true description: Regional archive branch - value: @@ -192,12 +241,19 @@ classes: has_or_had_label: Rijksmuseum Schiphol has_or_had_description: Exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. Free admission. - branch_service_area: Amsterdam Schiphol Airport travelers + has_or_had_service_area: + service_area_id: https://nde.nl/ontology/hc/servicearea/schiphol-travelers + service_area_name: Amsterdam Schiphol Airport travelers + service_area_type: COMMUNITY is_public_facing: true services_offered: - Exhibition viewing - Museum shop operating_hours: Daily 07:00-20:00 - branch_staff_count: 5 + has_or_had_quantity: + quantity_value: 5 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Schiphol branch has_local_collection: false description: Museum airport branch diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml index 68e29d853b..b4d6c14339 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -250,9 +250,12 @@ classes: has_approval_date: range: date required: false - is_or_was_is_or_was_approved_by: # MIGRATED: was was_approved_by (2026-01-15) - description: Agent (person/organization) that approved this budget - range: string + is_or_was_approved_by: + description: >- + Agent (person/organization) that approved this budget. + MIGRATED from approved_by (2026-01-15) per Rule 39. + Range changed from string to Approver class for structured approval tracking. + range: Approver required: false # MIGRATED from budget_status to has_or_had_status (Rule 53) # budget_status: @@ -336,7 +339,8 @@ classes: internal_funding: 25000000.0 endowment_draw: 5000000.0 approval_date: '2023-11-15' - is_or_was_approved_by: Board of Directors + is_or_was_approved_by: + approver_name: Board of Directors has_or_had_status: value: ACTIVE effective_date: '2024-01-01' @@ -360,7 +364,8 @@ classes: external_funding: 6000000.0 internal_funding: 2500000.0 approval_date: '2024-03-01' - is_or_was_approved_by: Province of Noord-Holland + is_or_was_approved_by: + approver_name: Province of Noord-Holland has_or_had_status: value: ACTIVE effective_date: '2024-04-01' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml index b27255adc1..f4bb936ecc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml @@ -14,7 +14,9 @@ imports: - ./GeoSpatialPlace - ../enums/PlaceSpecificityEnum - ./ReconstructedEntity -- ../slots/auxiliary_places +# REMOVED - migrated to has_or_had_auxiliary_entities with range AuxiliaryPlace (Rule 53) +# - ../slots/auxiliary_places +- ../slots/has_or_had_auxiliary_entities - ../slots/place_name - ../slots/place_language - ../slots/place_specificity @@ -65,7 +67,9 @@ classes: - prov:Entity - crm:E27_Site slots: - - auxiliary_places + # MIGRATED from auxiliary_places to has_or_had_auxiliary_entities (Rule 53) + # - auxiliary_places + - has_or_had_auxiliary_entities - country - has_feature_type - has_geospatial_location @@ -171,7 +175,11 @@ classes: has_accuracy_in_meters: 50.0 spatial_resolution: NEIGHBORHOOD description: Approximate location from neighborhood reference - has_auxiliary_place: + # MIGRATED from auxiliary_places / has_auxiliary_place (Rule 53) + has_or_had_auxiliary_entities: + description: | + MIGRATED from auxiliary_places (Rule 53). + Subordinate or auxiliary locations associated with this custodian place. range: AuxiliaryPlace multivalued: true inlined_as_list: true @@ -211,7 +219,7 @@ classes: - Link to GeoSpatialPlace via has_geospatial_location slot (TOOI pattern) - Can be vague ('the mansion') or specific ('het museum op het Museumplein 1') - Historical place names capture how custodians were referenced in archival documents - - 'NEW: auxiliary_places links to subordinate AuxiliaryPlace sites (depots, branches, labs)' + - 'MIGRATED: auxiliary_places → has_or_had_auxiliary_entities for AuxiliaryPlace sites (depots, branches, labs)' - Hierarchical pattern mirrors CustodianName → CustodianAppellation relationship see_also: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E53 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml index f55fece8aa..db7db23d21 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml @@ -18,7 +18,10 @@ imports: - ../enums/DataTierEnum - ../enums/DatePrecisionEnum - ../enums/TimelineExtractionMethodEnum -- ../slots/approximate +# REMOVED - migrated to is_or_was_approximate (Rule 53) +# - ../slots/approximate +- ../slots/is_or_was_approximate +- ./ApproximationStatus - ../slots/has_archive_path - ../slots/data_tier - ../slots/date_precision @@ -53,8 +56,8 @@ classes: \ Scope decrease (ingekrompen)\n- REORGANIZATION: Complex restructuring (herstructurering)\n\n**EXCLUDED EVENT TYPES**\n\ \nSome patterns are NOT mapped to events:\n- predecessor: This is a relationship, not an event\n- friends_org: Separate\ \ organization (Vrienden van...)\n- reopening: Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\n\ - timeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n date_precision: day\n approximate:\ - \ false\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting\ + timeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n date_precision: day\n is_or_was_approximate:\n\ + \ approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting\ \ van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\ \n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method:\ \ api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"\ @@ -67,7 +70,9 @@ classes: - tooi:Wijzigingsgebeurtenis - schema:Event slots: - - approximate + # REMOVED - migrated to is_or_was_approximate (Rule 53) + # - approximate + - is_or_was_approximate - archive_path - data_tier - date_precision @@ -88,8 +93,26 @@ classes: required: false date_precision: required: true - is_approximate: + # REMOVED - migrated to is_or_was_approximate (Rule 53) + # is_approximate: + # required: true + is_or_was_approximate: + range: ApproximationStatus + inlined: true required: true + description: >- + Whether the event date is approximate or uncertain. + MIGRATED from approximate (Rule 53) - changed from boolean to + ApproximationStatus class for structured uncertainty modeling. + examples: + - value: + approximation_level: EXACT + description: Exact date known + - value: + approximation_level: APPROXIMATE + has_or_had_label: "circa 1880" + has_or_had_description: "Founding date known only to year" + description: Approximate date with explanation description: required: true source_url: @@ -134,7 +157,8 @@ classes: event_type: FOUNDING event_date: '2005-04-30' date_precision: day - approximate: false + is_or_was_approximate: + approximation_level: EXACT description: Het RHC Drents Archief werd opgericht op 30 april 2005. source_url: - https://nl.wikipedia.org/wiki/Drents_Archief @@ -148,7 +172,8 @@ classes: event_type: MERGER event_date: '2005' date_precision: year - approximate: false + is_or_was_approximate: + approximation_level: EXACT description: In 2005 ging het Gemeentearchief Assen op in het Drents Archief. source_url: - https://nl.wikipedia.org/wiki/Drents_Archief @@ -160,7 +185,8 @@ classes: event_type: FOUNDING event_date: '1810' date_precision: year - approximate: false + is_or_was_approximate: + approximation_level: EXACT description: The Rijksmuseum was founded in 1810 as the Royal Museum. source_url: - https://www.wikidata.org/wiki/Q190804 @@ -173,7 +199,8 @@ classes: event_type: TRANSFER event_date: '1885' date_precision: year - approximate: false + is_or_was_approximate: + approximation_level: EXACT description: The Rijksmuseum moved to its current building designed by Cuypers. source_url: - https://www.rijksmuseum.nl/en/about-us/what-we-do/history @@ -183,3 +210,16 @@ classes: archive_path: web/0001/rijksmuseum.nl/about-us/rendered.html data_tier: TIER_2_VERIFIED description: Relocation event from institutional website + - value: + event_type: FOUNDING + event_date: '1880' + date_precision: year + is_or_was_approximate: + approximation_level: APPROXIMATE + has_or_had_label: "circa 1880" + has_or_had_description: "Founding date derived from secondary sources, exact year uncertain" + description: Museum founded around 1880, exact date unknown. + extraction_method: manual_research + extraction_timestamp: '2025-12-20T16:00:00Z' + data_tier: TIER_4_INFERRED + description: Founding event with approximate date diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index 8850d0db5c..c7b2065d34 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -16,7 +16,9 @@ imports: - ./SearchAPI - ./METSAPI - ./DataServiceEndpointTypes -- ../slots/auxiliary_platforms +# REMOVED - migrated to has_or_had_auxiliary_entities with range AuxiliaryDigitalPlatform (Rule 53) +# - ../slots/auxiliary_platforms +- ../slots/has_or_had_auxiliary_entities - ../slots/has_or_had_powered_by_cm - ../slots/has_or_had_access_restriction - ../slots/preservation_level @@ -103,7 +105,9 @@ classes: slots: - has_or_had_access_restriction - has_or_had_api_endpoint - - auxiliary_platforms + # MIGRATED from auxiliary_platforms to has_or_had_auxiliary_entities (Rule 53) + # - auxiliary_platforms + - has_or_had_auxiliary_entities - collection_web_address - has_or_had_data_service_endpoint - fixity_check_date @@ -241,7 +245,11 @@ classes: description: Open to all users - value: API key required description: Developer registration needed - has_auxiliary_platform: + # MIGRATED from auxiliary_platforms / has_auxiliary_platform (Rule 53) + has_or_had_auxiliary_entities: + description: | + MIGRATED from auxiliary_platforms (Rule 53). + Subordinate or auxiliary digital platforms associated with this platform. range: AuxiliaryDigitalPlatform multivalued: true inlined_as_list: true @@ -326,7 +334,7 @@ classes: - 'Multivalued on Custodian: one custodian can have multiple platforms (website + API + mobile app)' - Temporal validity tracks platform lifecycle (launch, shutdown, migration) - IIIF and linked data flags enable discovery of interoperable platforms - - 'NEW: auxiliary_platforms links to subordinate AuxiliaryDigitalPlatform sites (project portals, microsites, APIs)' + - 'MIGRATED: auxiliary_platforms → has_or_had_auxiliary_entities for AuxiliaryDigitalPlatform sites (project portals, microsites, APIs)' - Hierarchical pattern mirrors CustodianName → CustodianAppellation relationship see_also: - https://schema.org/WebSite diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index 5487267fc1..7a1865d5f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -20,7 +20,10 @@ imports: - ../slots/isbn - ../slots/language - ../slots/price -- ../slots/authors +# REMOVED - migrated to has_or_had_author (Rule 53) +# - ../slots/authors +- ../slots/has_or_had_author +- ./Author # REMOVED: ../slots/binding - Use has_or_had_type with BindingType instead (2026-01-15) - ../slots/has_or_had_type - ./BindingType @@ -51,7 +54,7 @@ imports: - ../slots/worldcat_id - ./SpecificityAnnotation - ./TemplateSpecificityScores -- ../slots/has_author +# REMOVED: ../slots/has_author - migrated to has_or_had_author (Rule 53) default_prefix: hc classes: ExhibitionCatalog: @@ -80,7 +83,8 @@ classes: - bf:Instance - bibo:Book slots: - - authors + # REMOVED: authors - migrated to has_or_had_author (Rule 53) + - has_or_had_author # REMOVED: binding - Use has_or_had_type with BindingType instead (2026-01-15) - has_or_had_type - catalog_description @@ -146,13 +150,28 @@ classes: examples: - value: PRINT_CATALOG - value: DIGITAL_CATALOG - has_author: + has_or_had_author: + description: >- + Authors of the exhibition catalog. + MIGRATED from authors/has_author slots (Rule 53). + + Uses Author class for structured authorship data including + name, role (author/editor/translator), affiliation, and identifiers. required: false - range: string + range: Author + inlined: true multivalued: true examples: - - value: Pieter Roelofs - - value: Gregor J.M. Weber + - value: | + author_name: Pieter Roelofs + author_role: AUTHOR + author_affiliation: Rijksmuseum Amsterdam + description: Primary author with affiliation + - value: | + author_name: Gregor J.M. Weber + author_role: AUTHOR + author_identifier: https://orcid.org/0000-0002-1234-5678 + description: Author with ORCID identifier editor: required: false range: string @@ -340,9 +359,13 @@ classes: catalog_title: Vermeer catalog_for: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 catalog_type: PRINT_CATALOG - has_author: - - Pieter Roelofs - - Gregor J.M. Weber + has_or_had_author: + - author_name: Pieter Roelofs + author_role: AUTHOR + author_affiliation: Rijksmuseum Amsterdam + - author_name: Gregor J.M. Weber + author_role: AUTHOR + author_affiliation: Rijksmuseum Amsterdam editor: - Pieter Roelofs publisher: Rijksmuseum / Hannibal Publishing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml index c3653ba6b9..8c11d70506 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml @@ -17,8 +17,14 @@ imports: - ../slots/id - ../slots/person_name - ../slots/has_person_name -- ../slots/birth_date -- ../slots/birth_place +# REMOVED - migrated to has_or_had_date_of_birth (Rule 53) +# - ../slots/birth_date +- ../slots/has_or_had_date_of_birth +- ./BirthDate +# REMOVED - migrated to has_or_had_place_of_birth (Rule 53) +# - ../slots/birth_place +- ../slots/has_or_had_place_of_birth +- ./BirthPlace - ../slots/death_place - ../slots/date_of_death - ../slots/deceased @@ -99,8 +105,10 @@ classes: slots: - is_or_was_affected_by_event - has_age - - birth_date - - birth_place + # REMOVED: birth_date - migrated to has_or_had_date_of_birth (Rule 53) + - has_or_had_date_of_birth + # REMOVED: birth_place - migrated to has_or_had_place_of_birth (Rule 53) + - has_or_had_place_of_birth - contact_email - created - date_of_death @@ -148,12 +156,48 @@ classes: - Required is false initially to allow PersonObservation without hub linkage - Production data SHOULD always have this link for full PICO compliance - 'Inverse relationship: Person.has_person_observation (implemented v0.9.8)' - birth_date: - range: string + has_or_had_date_of_birth: + description: >- + Birth date of the person using structured BirthDate class. + MIGRATED from birth_date slot (Rule 53). + + Supports EDTF notation for uncertain/incomplete dates and + tracks provenance for inferred dates per Rule 45. + range: BirthDate + inlined: true required: false - birth_place: - range: string + examples: + - value: | + birth_edtf: "1970-08-15" + is_inferred: false + confidence: HIGH + description: Full date known + - value: | + birth_edtf: "197X" + is_inferred: true + confidence: LOW + description: Decade inferred from career start + has_or_had_place_of_birth: + description: >- + Birth place of the person using structured BirthPlace class. + MIGRATED from birth_place slot (Rule 53). + + Supports historical vs. modern place names and links to + GeoNames/Wikidata for geographic resolution. + range: BirthPlace + inlined: true required: false + examples: + - value: | + place_name: Amsterdam + country_code: NL + geonames_id: 2759794 + description: Birth place with geographic identifiers + - value: | + place_name: Batavia + modern_place_name: Jakarta + country_code: ID + description: Historical place name death_place: range: string required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml index 0be604ced1..f9049bb705 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml @@ -10,7 +10,10 @@ imports: - ../slots/confidence_score - ../slots/superseded_by - ../slots/is_or_was_about_digital_presence -- ../slots/asserted_by +# REMOVED - migrated to is_or_was_asserted_by (Rule 53) +# - ../slots/asserted_by +- ../slots/is_or_was_asserted_by +- ./Asserter - ../slots/has_assertion_date - ../slots/has_or_had_identifier - ../slots/has_assertion_rationale @@ -91,7 +94,9 @@ classes: - prov:wasGeneratedBy slots: - is_or_was_about_digital_presence - - asserted_by + # REMOVED - migrated to is_or_was_asserted_by (Rule 53) + # - asserted_by + - is_or_was_asserted_by - has_assertion_date - has_or_had_identifier - has_assertion_rationale @@ -165,6 +170,27 @@ classes: required: false examples: - value: '2025-11-29T14:30:00Z' + is_or_was_asserted_by: + range: Asserter + inlined: true + required: false + description: >- + The agent responsible for making this assertion. + MIGRATED from asserted_by (Rule 53) - changed from string to Asserter + class for richer provenance tracking. + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer + has_or_had_label: primary-presence-analyzer + asserter_type: AUTOMATED_SYSTEM + asserter_version: "1.0" + description: Automated system asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe + has_or_had_label: Jane Doe + asserter_type: HUMAN_ANALYST + asserter_contact: jane.doe@heritage-org.nl + description: Human analyst asserter was_asserted_by: range: string required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml new file mode 100644 index 0000000000..cb42f84bda --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml @@ -0,0 +1,223 @@ +id: https://nde.nl/ontology/hc/class/Quantity +name: Quantity +title: Quantity Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +- ../enums/QuantityTypeEnum +- ../slots/has_or_had_identifier +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ../slots/specificity_annotation +- ../slots/template_specificity +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +default_prefix: hc +classes: + Quantity: + class_uri: qudt:Quantity + description: >- + A quantified value with an optional unit of measurement and type. + + **QUDT ALIGNMENT**: + + Maps to `qudt:Quantity` - "A quantitative value expressed as a + number and a unit of measurement." + + **TYPES OF QUANTITIES**: + + | Type | Description | Example | + |------|-------------|---------| + | STAFF_COUNT | Number of employees | 42 employees | + | COLLECTION_SIZE | Number of items | 1.2 million objects | + | VISITOR_COUNT | Annual visitors | 2.5 million/year | + | BUDGET_AMOUNT | Financial value | €15 million | + | AREA | Physical space | 10,000 m² | + | DURATION | Time period | 6 months | + + **USE CASES**: + + 1. **Staff Metrics**: Branch staff count, department size, FTE equivalents + 2. **Collection Metrics**: Object counts, archive linear meters, digital items + 3. **Visitor Metrics**: Annual attendance, daily capacity, peak visitors + 4. **Financial Metrics**: Budget, revenue, acquisition costs + 5. **Physical Metrics**: Floor area, gallery space, storage capacity + + **WHY NOT JUST USE INTEGER?** + + Simple integer fields like `branch_staff_count: 3` lose important context: + - What's the unit? (FTE? headcount? contractors included?) + - When was this measured? (provenance) + - Is this exact or estimated? + - What type of quantity is this? + + The Quantity class captures this richness while remaining simple for basic use. + + **EXAMPLE**: + + ```yaml + Quantity: + quantity_id: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + quantity_description: Staff assigned to Zaanstreek-Waterland branch + quantity_date: 2025-01-01 + ``` + exact_mappings: + - qudt:Quantity + close_mappings: + - schema:QuantitativeValue + related_mappings: + - schema:numberOfEmployees + - schema:floorSize + - dcterms:extent + slots: + - has_or_had_identifier + - quantity_value + - quantity_type + - quantity_unit + - has_or_had_description + - quantity_date + - is_estimate + - specificity_annotation + - template_specificity + slot_usage: + has_or_had_identifier: + range: uriorcurie + required: false + identifier: true + description: >- + Optional identifier for this quantity measurement. + examples: + - value: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + description: Branch staff count measurement + quantity_value: + range: float + required: true + description: >- + The numeric value of the quantity. + examples: + - value: 3 + description: 3 staff members + - value: 1200000 + description: 1.2 million collection items + - value: 2500000 + description: 2.5 million annual visitors + quantity_type: + range: QuantityTypeEnum + required: false + description: >- + The type of quantity being measured. + examples: + - value: STAFF_COUNT + - value: COLLECTION_SIZE + - value: VISITOR_COUNT + quantity_unit: + range: string + required: false + description: >- + The unit of measurement (if applicable). + examples: + - value: FTE + description: Full-time equivalent employees + - value: headcount + description: Total number of people + - value: items + description: Collection item count + - value: linear meters + description: Archive extent + - value: EUR + description: Budget in euros + - value: m² + description: Floor area + has_or_had_description: + range: string + required: false + description: >- + Description of what this quantity represents. + examples: + - value: Staff assigned to Zaanstreek-Waterland branch + - value: Annual visitor count for 2024 + quantity_date: + range: date + required: false + description: >- + Date when this quantity was measured or is valid. + examples: + - value: '2025-01-01' + is_estimate: + range: boolean + required: false + ifabsent: 'false' + description: >- + Whether this quantity is an estimate rather than an exact count. + examples: + - value: false + description: Exact count + - value: true + description: Estimated value + comments: + - Quantity models quantified values with units and provenance + - Replaces simple integer fields with richer structured data + - Uses QUDT Quantity as primary ontology mapping + - Supports various quantity types (staff, collection, visitor, budget) + see_also: + - http://qudt.org/schema/qudt/Quantity + - https://schema.org/QuantitativeValue + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Zaanstreek-Waterland branch + quantity_date: '2025-01-01' + is_estimate: false + description: Branch staff count + - value: + quantity_value: 1200000 + quantity_type: COLLECTION_SIZE + quantity_unit: items + has_or_had_description: Total collection size including artworks, documents, and photographs + is_estimate: true + description: Estimated collection size + - value: + quantity_value: 2500000 + quantity_type: VISITOR_COUNT + quantity_unit: visitors/year + has_or_had_description: Annual visitor count for 2024 + quantity_date: '2024-12-31' + is_estimate: false + description: Annual visitor count +slots: + quantity_value: + description: >- + The numeric value of the quantity. + range: float + slot_uri: qudt:numericValue + quantity_type: + description: >- + The type of quantity being measured. + range: QuantityTypeEnum + slot_uri: hc:quantityType + quantity_unit: + description: >- + The unit of measurement (if applicable). + range: string + slot_uri: qudt:unit + quantity_date: + description: >- + Date when this quantity was measured or is valid. + range: date + slot_uri: dcterms:date + is_estimate: + description: >- + Whether this quantity is an estimate rather than an exact count. + range: boolean + slot_uri: hc:isEstimate diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index c9d0cb6654..a74ba47144 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -237,11 +237,20 @@ classes: - value: '2020-01-01' policy_effective_to: range: date - policy_approved_by: - range: string + is_or_was_approved_by: + description: >- + Agent (person/organization) that approved this policy. + MIGRATED from policy_approved_by (2026-01-15) per Rule 39. + Range changed from string to Approver class for structured approval tracking. + range: Approver + required: false examples: - - value: Collections Committee - - value: Director of Collections + - value: + approver_name: Collections Committee + description: Committee approval + - value: + approver_name: Director of Collections + description: Individual approval policy_review_date: range: date examples: @@ -284,7 +293,8 @@ classes: - EN_15757_2010 - EN_16893_2018 policy_effective_from: '2020-01-01' - policy_approved_by: Collections Committee + is_or_was_approved_by: + approver_name: Collections Committee policy_review_date: '2025-12-31' description: Museum art storage climate policy - value: @@ -313,6 +323,7 @@ classes: - IMAGE_PERMANENCE_INSTITUTE - ISO_TR_19815_2018 policy_effective_from: '2015-06-01' - policy_approved_by: General Rijksarchivaris + is_or_was_approved_by: + approver_name: General Rijksarchivaris policy_review_date: '2025-06-01' description: Archive cold storage policy for photographic materials diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index 7191e38001..bd093576a8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -195,12 +195,11 @@ classes: unit_name: Archive Box 145 - WWII Ministry Records unit_type: ARCHIVE_BOX unit_description: 'Acid-free archive box containing Ministry of Defense - - correspondence from 1940-1945. Handle with care. - - ' + correspondence from 1940-1945. Handle with care.' row_number: '12' - bay_number: '3' + has_or_had_identifier: + - value: '3' + _type: BayNumber shelf_number: 4 part_of_zone: https://nde.nl/ontology/hc/zone/na-depot-a-standard valid_from: '2020-03-15' @@ -211,10 +210,7 @@ classes: unit_name: Flat File Drawer 42 - Netherlands Maps unit_type: FLAT_FILE_DRAWER unit_description: 'Flat file drawer containing oversized maps of the - - Netherlands, 1850-1920. Climate-controlled environment. - - ' + Netherlands, 1850-1920. Climate-controlled environment.' drawer_number: 42 capacity_items: 50 current_item_count: 38 diff --git a/frontend/public/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml b/frontend/public/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml new file mode 100644 index 0000000000..22832e4d92 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/enum/AsserterTypeEnum +name: AsserterTypeEnum +title: Asserter Type Enum +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + foaf: http://xmlns.com/foaf/0.1/ +imports: +- linkml:types +default_prefix: hc +enums: + AsserterTypeEnum: + description: >- + Type of agent making an assertion. + enum_uri: hc:AsserterTypeEnum + permissible_values: + HUMAN_ANALYST: + description: Human expert or analyst making a judgment. + meaning: foaf:Person + AUTOMATED_SYSTEM: + description: Software system or script performing automated analysis. + meaning: prov:SoftwareAgent + AI_AGENT: + description: AI/ML model or agent making an assertion. + meaning: prov:SoftwareAgent + ORGANIZATION: + description: Organization or institution making a formal assertion. + meaning: foaf:Organization + UNKNOWN: + description: Asserter type is not specified or cannot be determined. diff --git a/frontend/public/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml b/frontend/public/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml new file mode 100644 index 0000000000..04ef0e09d9 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/enum/QuantityTypeEnum +name: QuantityTypeEnum +title: Quantity Type Enum +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +enums: + QuantityTypeEnum: + description: >- + Type of quantity being measured. + enum_uri: hc:QuantityTypeEnum + permissible_values: + STAFF_COUNT: + description: Number of staff members or employees. + meaning: schema:numberOfEmployees + COLLECTION_SIZE: + description: Number of items in a collection. + meaning: schema:size + VISITOR_COUNT: + description: Number of visitors (annual, daily, etc.). + meaning: schema:numberOfAttendees + BUDGET_AMOUNT: + description: Financial amount (budget, revenue, cost). + meaning: schema:amount + AREA: + description: Physical area or floor space. + meaning: schema:floorSize + DURATION: + description: Time duration or period. + meaning: schema:duration + LINEAR_EXTENT: + description: Linear measurement (e.g., archive meters). + meaning: qudt:Length + CAPACITY: + description: Maximum capacity (seats, storage, etc.). + meaning: schema:maximumAttendeeCapacity + OTHER: + description: Other type of quantity not listed. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/approximation_level.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/approximation_level.yaml new file mode 100644 index 0000000000..6a40a87ed5 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/approximation_level.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/approximation_level +name: approximation_level_slot +title: Approximation Level Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + approximation_level: + description: >- + Level of approximation/uncertainty for a value. + + See ApproximationLevelEnum for valid values: + - EXACT: Known with certainty + - APPROXIMATE: Close but not exact + - ESTIMATED: Calculated/inferred + - UNCERTAIN: Significant doubt + - UNKNOWN: Cannot be determined + range: string + slot_uri: hc:approximationLevel + annotations: + specificity_score: 0.30 + specificity_rationale: >- + Approximation level is broadly useful for expressing uncertainty. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/approximate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/approximate_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/approximate.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/approximate_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/asserted_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/asserted_by_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/asserted_by.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/asserted_by_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/authors.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/authors_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/authors.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/authors_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/auxiliary_places.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/auxiliary_places_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/auxiliary_places.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/auxiliary_places_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/auxiliary_platforms_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/auxiliary_platforms_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/birth_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/birth_date_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/birth_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/birth_date_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/birth_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/birth_place_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/birth_place.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/birth_place_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/branch_service_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_service_area_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/branch_service_area.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_service_area_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/branch_staff_count.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_staff_count_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/branch_staff_count.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_staff_count_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_author.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/has_author_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/has_author.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/has_author_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml new file mode 100644 index 0000000000..eed99fc4c2 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml @@ -0,0 +1,32 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to is_or_was_approved_by + Approver class (Rule 39, Rule 53) +# REPLACEMENT: is_or_was_approved_by with range Approver +# MIGRATION: Migration 30 - approved_by family consolidation +# +# This slot was specific to StorageConditionPolicy. It has been replaced by +# the generic is_or_was_approved_by slot which uses the Approver class for +# structured approval tracking with temporal semantics. +# +# Original slot preserved below for reference. + +id: https://nde.nl/ontology/hc/slot/policy_approved_by +name: policy_approved_by_slot +title: Policy Approved By Slot (ARCHIVED) +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + policy_approved_by: + description: | + ARCHIVED: 2026-01-15 + REPLACEMENT: is_or_was_approved_by with range Approver + + Original description: + Person or body that approved this policy. + range: string + slot_uri: hc:policyApprovedBy + deprecated: "Use is_or_was_approved_by with Approver class instead" + deprecated_element_has_exact_replacement: is_or_was_approved_by diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml new file mode 100644 index 0000000000..c10cd7cd81 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml @@ -0,0 +1,52 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to is_or_was_approved_by + Approver class (Rule 39, Rule 53) +# REPLACEMENT: is_or_was_approved_by with range Approver +# MIGRATION: Migration 30 - approved_by family consolidation +# +# This slot was used in Budget class. It has been replaced by the generic +# is_or_was_approved_by slot which uses the Approver class for structured +# approval tracking with temporal semantics following RiC-O naming conventions. +# +# Original slot preserved below for reference. + +id: https://nde.nl/ontology/hc/slot/was_approved_by +name: was_approved_by_slot +title: Was Approved By Slot (ARCHIVED) +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + was_approved_by: + description: | + ARCHIVED: 2026-01-15 + REPLACEMENT: is_or_was_approved_by with range Approver + + Original description: + Governance body or authority that approved budget. + + **Examples**: + - "Board of Directors" + - "Executive Committee" + - "Ministry of Culture" + - "City Council" + range: string + slot_uri: prov:wasAttributedTo + exact_mappings: + - prov:wasAttributedTo + close_mappings: + - dcterms:creator + - prov:wasInfluencedBy + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. + deprecated: "Use is_or_was_approved_by with Approver class instead" + deprecated_element_has_exact_replacement: is_or_was_approved_by diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml new file mode 100644 index 0000000000..7119994aa7 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_author +name: has_or_had_author_slot +title: Has Or Had Author Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + bf: http://id.loc.gov/ontologies/bibframe/ + bibo: http://purl.org/ontology/bibo/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_author: + description: >- + Person or organization that authored/created a work. + + Links to Author class which models creators of creative works such as + catalogs, publications, reports, and other documentary outputs. + + **RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) + for properties that may change over time (e.g., posthumous attributions, + disputed authorship). + + **Schema.org/Dublin Core Alignment**: Maps to schema:author and dcterms:creator. + + **BIBFRAME Alignment**: Related to bf:contribution for bibliographic works. + + **Use Cases**: + - Exhibition catalog authors + - Research report authors + - Finding aid compilers + - Publication contributors + + **MIGRATED from authors (Rule 53)**: Changed from string to Author class + for structured authorship modeling including roles, affiliations, and temporal + aspects. + slot_uri: schema:author + range: Author + multivalued: true + inlined: true + exact_mappings: + - schema:author + - dcterms:creator + close_mappings: + - bf:contribution + - bibo:authorList + related_mappings: + - rico:hasOrHadAuthor + annotations: + owl.template: |- + AnnotationAssertion( rdfs:label {{slot_uri}} "has or had author"@en ) + specificity_score: 0.35 + specificity_rationale: >- + Authorship is broadly useful for any creative/documentary work + produced by heritage custodians. + custodian_types: '["*"]' + custodian_types_rationale: >- + All custodian types may produce authored works (catalogs, reports, etc.). diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml new file mode 100644 index 0000000000..c6681c6e82 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_auxiliary_entities +name: has_or_had_auxiliary_entities_slot +title: Has Or Had Auxiliary Entities Slot +description: | + Generic slot for auxiliary/supporting entities associated with a primary entity. + + CREATED as part of slot migration (Rule 53) to replace: + - `auxiliary_places` → range: AuxiliaryPlace + - `auxiliary_platforms` → range: AuxiliaryPlatform + + Follows RiC-O temporal predicate pattern (has_or_had_*). +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_auxiliary_entities: + description: >- + Auxiliary or supporting entities associated with the primary entity. + + **SEMANTIC PATTERN**: + + This slot follows the RiC-O temporal predicate pattern (has_or_had_*) + to indicate that auxiliary relationships may change over time. + + **REPLACES**: + + - `auxiliary_places` - Physical locations supporting the main entity + - `auxiliary_platforms` - Digital platforms supporting the main entity + + **USE CASES**: + + 1. **Storage locations**: Off-site storage, external repositories + 2. **Branch facilities**: Satellite offices, reading rooms + 3. **Partner platforms**: External discovery services, aggregators + + slot_uri: rico:hasOrHadPart + range: uriorcurie + multivalued: true + exact_mappings: + - rico:hasOrHadPart + close_mappings: + - schema:hasPart + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: Broadly applicable auxiliary entity relationship. + examples: + - value: "hc:auxiliary-place/rijksmuseum-depot-amersfoort" + description: Off-site storage depot + - value: "hc:auxiliary-platform/europeana-aggregation" + description: External discovery platform diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_date_of_birth.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_date_of_birth.yaml new file mode 100644 index 0000000000..deb678e94b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_date_of_birth.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_date_of_birth +name: has_or_had_date_of_birth_slot +title: Has or Had Date of Birth Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + foaf: http://xmlns.com/foaf/0.1/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_date_of_birth: + slot_uri: schema:birthDate + description: >- + The birth date of a person, modeled as a structured BirthDate class. + + **TEMPORAL SEMANTICS (RiC-O Pattern)**: + + Uses "has_or_had" prefix to indicate the relationship may be: + - Current (person is alive with this birth date) + - Historical (person is deceased, birth date is historical fact) + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Property | Usage | + |----------|----------|-------| + | **Schema.org** | `schema:birthDate` | Primary property (web semantics) | + | **FOAF** | `foaf:birthday` | Social network date | + | **CIDOC-CRM** | `crm:P98i_was_born` → `crm:E67_Birth` | Birth event | + | **RiC-O** | `rico:birthDate` | Archival person modeling | + + **INCOMPLETE DATES**: + + Per Rule 44 (EDTF), incomplete dates are modeled using BirthDate class: + - Decade known: `birth_edtf: "197X"` + - Century known: `birth_edtf: "19XX"` + - Approximate: `birth_edtf: "1985~"` + + **MIGRATION NOTE**: + + Replaces simple `birth_date` string slot with structured BirthDate class + per Rule 53 (Full Slot Migration). This enables: + - EDTF date notation support + - Provenance tracking for inferred dates + - Confidence scoring + range: BirthDate + required: false + inlined: true + exact_mappings: + - schema:birthDate + - foaf:birthday + close_mappings: + - crm:P98i_was_born + - rico:birthDate + comments: + - "MIGRATED from birth_date slot (Rule 53)" + - "Supports EDTF notation for uncertain/incomplete dates" + - "BirthDate class provides provenance for inferred birth dates" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place_of_birth.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place_of_birth.yaml new file mode 100644 index 0000000000..ed45c04390 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place_of_birth.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_place_of_birth +name: has_or_had_place_of_birth_slot +title: Has or Had Place of Birth Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + foaf: http://xmlns.com/foaf/0.1/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_place_of_birth: + slot_uri: schema:birthPlace + description: >- + The place where a person was born, modeled as a structured BirthPlace class. + + **TEMPORAL SEMANTICS (RiC-O Pattern)**: + + Uses "has_or_had" prefix to indicate the relationship: + - Historical fact (birth location doesn't change) + - May use historical place names vs. modern equivalents + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Property | Usage | + |----------|----------|-------| + | **Schema.org** | `schema:birthPlace` | Primary property | + | **FOAF** | `foaf:based_near` | Location association | + | **CIDOC-CRM** | `crm:P7_took_place_at` via Birth event | Place of birth event | + | **RiC-O** | `rico:birthPlace` | Archival person modeling | + + **PLACE RESOLUTION**: + + BirthPlace class enables: + - Historical place name preservation (e.g., "Batavia") + - Modern equivalent linkage (e.g., "Jakarta") + - GeoNames/Wikidata identifier linking + - Coordinate storage for mapping + + **MIGRATION NOTE**: + + Replaces simple `birth_place` string slot with structured BirthPlace class + per Rule 53 (Full Slot Migration). + range: BirthPlace + required: false + inlined: true + exact_mappings: + - schema:birthPlace + close_mappings: + - crm:P7_took_place_at + - rico:birthPlace + comments: + - "MIGRATED from birth_place slot (Rule 53)" + - "Supports historical vs. modern place names" + - "Links to GeoNames/Wikidata for disambiguation" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml new file mode 100644 index 0000000000..a54b951ff1 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_quantity +name: has_or_had_quantity_slot +title: Has Or Had Quantity Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_quantity: + description: >- + A quantified value associated with an entity. Uses RiC-O temporal + naming pattern to indicate the quantity may be current or historical. + + QUDT: Quantity - "A quantitative value expressed as a number and + a unit of measurement." + + Can represent staff counts, collection sizes, visitor numbers, + budget amounts, area measurements, and other quantifiable properties. + range: Quantity + slot_uri: qudt:Quantity + exact_mappings: + - qudt:Quantity + close_mappings: + - schema:QuantitativeValue + related_mappings: + - schema:numberOfEmployees + - schema:floorSize + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Quantities can be associated with any heritage custodian type. + custodian_types_primary: M + specificity_score: 0.3 + specificity_rationale: >- + Generic quantity slot applicable across many contexts where + quantitative values need to be captured with units and provenance. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml new file mode 100644 index 0000000000..426f32ab3e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_service_area +name: has_or_had_service_area_slot +title: Has Or Had Service Area Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_service_area: + description: >- + Geographic area or community served by an entity. + + Links to ServiceArea class which models the "werkgebied" (operational territory) + of heritage custodians - the geographic area where they provide services and + collect materials. + + **RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) + for properties that may change over time. + + **Schema.org Alignment**: Maps to schema:areaServed for service coverage. + + **Use Cases**: + - Archive branch serving specific municipalities + - Library branch serving neighborhood/district + - Museum outpost serving regional community + + **MIGRATED from branch_service_area (Rule 53)**: Changed from string to + ServiceArea class for richer geographic modeling including boundaries, + temporal validity, and administrative hierarchy. + slot_uri: schema:areaServed + range: ServiceArea + inlined: true + exact_mappings: + - schema:areaServed + close_mappings: + - org:hasSite + - rico:hasOrHadLocation + annotations: + owl.template: |- + AnnotationAssertion( rdfs:label {{slot_uri}} "has or had service area"@en ) + specificity_score: 0.45 + specificity_rationale: >- + Service area is moderately specific - relevant for organizational/geographic + contexts but not universally applicable. + custodian_types: '["A", "L", "M", "O", "R"]' + custodian_types_rationale: >- + Service areas are most relevant to archives (A), libraries (L), museums (M), + official institutions (O), and research centers (R) that have geographic + service mandates. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml new file mode 100644 index 0000000000..c2b94c086e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_approximate +name: is_or_was_approximate_slot +title: Is Or Was Approximate Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + is_or_was_approximate: + description: >- + Indicates whether a value (date, quantity, etc.) is approximate or uncertain. + + Links to ApproximationStatus class which models different levels of uncertainty: + - exact: Known with certainty + - approximate: Close but not exact (circa, roughly) + - estimated: Calculated/inferred value + - uncertain: Significant doubt about accuracy + - unknown: Value cannot be determined + + **RiC-O Alignment**: Follows RiC-O temporal relationship pattern (is/was) + for properties that may change over time as more information becomes available. + + **CIDOC-CRM Alignment**: Related to crm:E52_Time-Span precision modeling. + + **Use Cases**: + - Date approximation: "circa 1880" vs "1880-03-15" + - Event timing uncertainty: founding date known only to year + - Quantity estimates: "approximately 10,000 items" + + **MIGRATED from approximate (Rule 53)**: Changed from string to + ApproximationStatus class for structured uncertainty modeling. + slot_uri: hc:isOrWasApproximate + range: ApproximationStatus + inlined: true + close_mappings: + - crm:P79_beginning_is_qualified_by + - crm:P80_end_is_qualified_by + related_mappings: + - rico:certainty + annotations: + owl.template: |- + AnnotationAssertion( rdfs:label {{slot_uri}} "is or was approximate"@en ) + specificity_score: 0.30 + specificity_rationale: >- + Approximation status is broadly useful across many contexts where + uncertainty needs to be expressed (dates, quantities, etc.). + custodian_types: '["*"]' + custodian_types_rationale: >- + Approximation/uncertainty is universal across all custodian types. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml new file mode 100644 index 0000000000..4881931478 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_asserted_by +name: is_or_was_asserted_by_slot +title: Is Or Was Asserted By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +default_prefix: hc +slots: + is_or_was_asserted_by: + description: >- + The agent (person, organization, or system) responsible for making + an assertion. Uses RiC-O temporal naming pattern to indicate the + relationship may be current or historical. + + PROV-O: wasAttributedTo - "links an entity to an agent that it + may have been attributed to." + + Can be a human analyst, automated system, or AI agent. + range: Asserter + slot_uri: prov:wasAttributedTo + exact_mappings: + - prov:wasAttributedTo + close_mappings: + - dcterms:creator + related_mappings: + - prov:wasAssociatedWith + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Assertions can be made about any heritage custodian type. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: >- + Generic provenance slot applicable across many contexts where + attribution of assertions is needed. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml deleted file mode 100644 index 5fca943172..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/policy_approved_by -name: policy_approved_by_slot -title: Policy Approved By Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: -- linkml:types -default_prefix: hc -slots: - policy_approved_by: - description: 'Person or body that approved this policy. - - ' - range: string - slot_uri: hc:policyApprovedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 624c39463a..425e7c2dbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -421,10 +421,22 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/approved_by processed: - status: false - timestamp: null - session: null - notes: "Requires Approver class creation" + status: true + timestamp: '2026-01-15T10:00:00Z' + session: "slot-migration-session-30" + notes: | + MIGRATED: approved_by family → is_or_was_approved_by + Approver (Migration 30) + + This migration consolidated 3 related slots: + - approved_by (already archived 2026-01-14) + - was_approved_by → archived to archive/was_approved_by_archived_20260115.yaml + - policy_approved_by → archived to archive/policy_approved_by_archived_20260115.yaml + + Classes updated: + - Budget.yaml: Fixed malformed slot name, updated slot_usage to use Approver range + - StorageConditionPolicy.yaml: Updated slots and slot_usage, migrated examples + + All three slots now consolidated into is_or_was_approved_by with range Approver. revision: - label: is_or_was_approved_by type: slot @@ -433,10 +445,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/approximate processed: - status: false - timestamp: null - session: null - notes: "Requires ApproximationStatus class creation" + status: true + timestamp: "2026-01-14T12:45:00Z" + session: "slot-migration-session-20260114" + notes: "COMPLETED: Created is_or_was_approximate slot and ApproximationStatus class with ApproximationLevelEnum (EXACT, APPROXIMATE, ESTIMATED, UNCERTAIN, UNKNOWN). Also created approximation_level slot. Updated CustodianTimelineEvent.yaml imports, slots list, slot_usage with range ApproximationStatus, and examples (added 5th example showing approximate date). Archived approximate to archive/approximate_archived_20260114.yaml" revision: - label: is_or_was_approximate type: slot @@ -445,10 +457,18 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/archived_at processed: - status: false - timestamp: null - session: null - notes: "Maps to existing HeritageCustodianPlace class" + status: true + timestamp: '2026-01-15T09:00:00Z' + session: "slot-migration-session-29" + notes: | + MIGRATED: archived_at → is_or_was_archived_at (Migration 29) + + Applied RiC-O temporal naming convention (Rule 39). + Updated classes: + - WebObservation.yaml + - AuxiliaryDigitalPlatform.yaml + + Archived to modules/slots/archive/archived_at_archived_20260115.yaml revision: - label: is_or_was_archived_at type: slot @@ -489,10 +509,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/asserted_by processed: - status: false - timestamp: null - session: null - notes: "Requires Asserter class creation" + status: true + timestamp: '2026-01-14T23:30:00Z' + session: "session-2026-01-14-slot-migrations" + notes: "FULLY MIGRATED: Created is_or_was_asserted_by slot, Asserter class, and AsserterTypeEnum. PrimaryDigitalPresenceAssertion.yaml updated with new imports, slots, and slot_usage. Old asserted_by slot archived to archive/asserted_by_archived_20260114.yaml." revision: - label: is_or_was_asserted_by type: slot @@ -546,10 +566,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/audio_event_segments processed: - status: false - timestamp: null - session: null - notes: "Maps to existing AudioEventSegment class" + status: true + timestamp: "2026-01-14T10:30:00Z" + session: "slot-migration-session-8" + notes: | + MIGRATED: audio_event_segments → has_or_had_segment + AudioEventSegment + - Created AudioEventSegment.yaml class (hc:AudioEventSegment) + - Updated VideoAudioAnnotation.yaml: imports, slots, slot_usage + - Archived to modules/slots/archive/audio_event_segments_archived_20260114.yaml revision: - label: has_or_had_segment type: slot @@ -570,10 +594,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/authors processed: - status: false - timestamp: null - session: null - notes: "Requires Author class creation" + status: true + timestamp: '2026-01-14T15:30:00Z' + session: "session-2026-01-14-author-migration" + notes: "FULLY MIGRATED: ExhibitionCatalog.yaml - authors and has_author slots replaced with has_or_had_author (range: Author). Author class with AuthorRoleEnum created. Both authors.yaml and has_author.yaml archived." revision: - label: has_or_had_author type: slot @@ -606,10 +630,15 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/auxiliary_places processed: - status: false - timestamp: null - session: null - notes: "Maps to existing AuxiliaryPlace class" + status: true + timestamp: '2026-01-14T11:30:00Z' + session: "slot-migration-session-8" + notes: | + MIGRATED: auxiliary_places → has_or_had_auxiliary_entities + AuxiliaryPlace + - Created has_or_had_auxiliary_entities.yaml slot + - AuxiliaryPlace class already existed + - Updated CustodianPlace.yaml: imports, slots list, slot_usage + - Archived to modules/slots/archive/auxiliary_places_archived_20260114.yaml revision: - label: has_or_had_auxiliary_entities type: slot @@ -630,10 +659,15 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/auxiliary_platforms processed: - status: false - timestamp: null - session: null - notes: "Maps to existing AuxiliaryPlatform class" + status: true + timestamp: '2026-01-14T11:45:00Z' + session: "slot-migration-session-8" + notes: | + MIGRATED: auxiliary_platforms → has_or_had_auxiliary_entities + AuxiliaryDigitalPlatform + - has_or_had_auxiliary_entities slot created earlier this session + - AuxiliaryDigitalPlatform class already existed + - Updated DigitalPlatform.yaml: imports, slots list, slot_usage + - Archived to modules/slots/archive/auxiliary_platforms_archived_20260114.yaml revision: - label: has_or_had_auxiliary_entities type: slot @@ -686,10 +720,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/bay_number processed: - status: false - timestamp: null - session: null - notes: "Requires BayNumber class creation" + status: true + timestamp: "2026-01-14T10:45:00Z" + session: "slot-migration-session-8" + notes: | + MIGRATED: bay_number → has_or_had_identifier + BayNumber + - Created BayNumber.yaml class (hc:BayNumber) + - Updated StorageUnit.yaml: imports, slots, slot_usage + - Archived to modules/slots/archive/bay_number_archived_20260114.yaml revision: - label: has_or_had_identifier type: slot @@ -827,10 +865,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/birth_date processed: - status: false - timestamp: null - session: null - notes: "Requires BirthDate class creation" + status: true + timestamp: '2026-01-14T16:00:00Z' + session: "session-2026-01-14-birth-date-migration" + notes: "FULLY MIGRATED: PersonObservation.yaml - birth_date replaced with has_or_had_date_of_birth (range: BirthDate). BirthDate class created with EDTF support, confidence enum, and inference provenance. birth_date.yaml archived." revision: - label: has_or_had_date_of_birth type: slot @@ -839,10 +877,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/birth_place processed: - status: false - timestamp: null - session: null - notes: "Requires BirthPlace class creation" + status: true + timestamp: '2026-01-14T16:15:00Z' + session: "session-2026-01-14-birth-place-migration" + notes: "FULLY MIGRATED: PersonObservation.yaml - birth_place replaced with has_or_had_place_of_birth (range: BirthPlace). BirthPlace class created with historical/modern place names, GeoNames/Wikidata integration. birth_place.yaml archived." revision: - label: has_or_had_place_of_birth type: slot @@ -939,10 +977,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/box_number processed: - status: false - timestamp: null - session: null - notes: "Requires BoxNumber class creation" + status: true + timestamp: "2026-01-14T10:45:00Z" + session: "slot-migration-session-8" + notes: | + MIGRATED: box_number → has_or_had_identifier + BoxNumber + - Created BoxNumber.yaml class (hc:BoxNumber) + - Updated StorageUnit.yaml: imports, slots, slot_usage + - Archived to modules/slots/archive/box_number_archived_20260114.yaml revision: - label: has_or_had_identifier type: slot @@ -1035,10 +1077,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/branch_service_area processed: - status: false - timestamp: null - session: null - notes: "Requires ServiceArea class creation" + status: true + timestamp: "2026-01-14T12:30:00Z" + session: "slot-migration-session-20260114" + notes: "COMPLETED: Created has_or_had_service_area slot with range ServiceArea. Updated BranchOffice.yaml imports, slots list, slot_usage, and examples. ServiceArea class already existed with full geographic modeling. Archived branch_service_area to archive/branch_service_area_archived_20260114.yaml" revision: - label: has_or_had_service_area type: slot @@ -1047,10 +1089,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/branch_staff_count processed: - status: false - timestamp: null - session: null - notes: "Maps to existing Quantity class" + status: true + timestamp: '2026-01-14T23:35:00Z' + session: "session-2026-01-14-slot-migrations" + notes: "FULLY MIGRATED: Created has_or_had_quantity slot, Quantity class, and QuantityTypeEnum. BranchOffice.yaml updated with new imports, slots, and slot_usage. Old branch_staff_count slot archived to archive/branch_staff_count_archived_20260114.yaml. Quantity class supports staff counts, collection sizes, visitor counts, budget amounts, etc." revision: - label: has_or_had_quantity type: slot @@ -1177,10 +1219,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/budget_status processed: - status: false - timestamp: null - session: null - notes: "Requires BudgetStatus class creation" + status: true + timestamp: '2026-01-14T11:00:00Z' + session: "slot-migration-session-8" + notes: | + MIGRATED: budget_status → has_or_had_status + BudgetStatus + - Created BudgetStatus.yaml class (hc:BudgetStatus) + - Updated Budget.yaml: imports, slots list, slot_usage, examples + - Archived to modules/slots/archive/budget_status_archived_20260114.yaml revision: - label: has_or_had_status type: slot @@ -2128,7 +2174,53 @@ fixes: type: slot - label: ApprovalTimeTypes type: class - - - - + - original_slot_id: https://nde.nl/ontology/hc/slot/type_status + revision: + - label: has_or_had_status + type: slot + - label: TypeStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_scope + revision: + - label: has_or_had_scope + type: slot + - label: Scope + type: class + - label: has_or_had_type + type: slot + - label: ScopeType + type: class + - label: includes_or_included + type: slot + - label: ScopeTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_label + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_language + type: slot + - label: Language + type: class + - label: has_or_had_identifier + type: slot + - label: ISO639-3Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_hypothesis + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: asserts_or_asserted + type: slot + - label: Hypothesis + type: class \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/was_approved_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/was_approved_by.yaml deleted file mode 100644 index 6e3512ab25..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/was_approved_by.yaml +++ /dev/null @@ -1,41 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/was_approved_by -name: was_approved_by_slot -title: Was Approved By Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - was_approved_by: - description: 'Governance body or authority that approved budget. - - - **Examples**: - - - "Board of Directors" - - - "Executive Committee" - - - "Ministry of Culture" - - - "City Council" - - ' - range: string - slot_uri: prov:wasAttributedTo - exact_mappings: - - prov:wasAttributedTo - close_mappings: - - dcterms:creator - - prov:wasInfluencedBy - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/frontend/src/pages/EntityReviewPage.tsx b/frontend/src/pages/EntityReviewPage.tsx index 4ff6af359d..4e80421c0c 100644 --- a/frontend/src/pages/EntityReviewPage.tsx +++ b/frontend/src/pages/EntityReviewPage.tsx @@ -1145,6 +1145,36 @@ export default function EntityReviewPage() { {language === 'nl' ? 'of voeg handmatig toe' : 'or add manually'} + + + {language === 'nl' ? 'Profiel Ophalen Providers:' : 'Profile Fetching Providers:'} + +
+ LinkedIn:{' '} + {language === 'nl' + ? 'Exa API (werkt) – Linkup API kan LinkedIn niet benaderen vanwege anti-scraping beveiliging' + : 'Exa API (works) – Linkup API cannot access LinkedIn due to anti-scraping protections'} +
+
+ Facebook:{' '} + {language === 'nl' + ? 'Noch Exa noch Linkup kan Facebook profielen ophalen – gespecialiseerde diensten (Apify, Bright Data) vereist' + : 'Neither Exa nor Linkup can access Facebook profiles – specialized services (Apify, Bright Data) required'} +
+
+ {language === 'nl' + ? 'Wanneer u een LinkedIn URL toevoegt, haalt het systeem automatisch profielgegevens op via Exa.' + : 'When you add a LinkedIn URL, the system automatically fetches profile data using Exa.'} +
+ + } + > + +
- + An agent (person, organization, or system) responsible for making + an assertion about a heritage entity. + + **PROV-O ALIGNMENT**: + + Maps to `prov:Agent` - "An agent is something that bears some form + of responsibility for an activity taking place, for the existence + of an entity, or for another agent's activity." + + **TYPES OF ASSERTERS**: + + | Type | Description | Example | + |------|-------------|---------| + | HUMAN_ANALYST | Expert making judgment | "jane.doe@nde.nl" | + | AUTOMATED_SYSTEM | Software system | "primary-presence-classifier/1.0" | + | AI_AGENT | AI/ML model | "claude-opus-4", "opencode-claude-sonnet-4" | + | ORGANIZATION | Institution | "Noord-Hollands Archief" | + + **USE CASES**: + + 1. **Attribution Tracking**: Who made this assertion about primary presence? + 2. **Provenance Chain**: Trace assertions back to their source agent. + 3. **Quality Assessment**: Different asserters may have different reliability. + 4. **Accountability**: Identify responsible party for each assertion. + + **EXAMPLE**: + + ```yaml + Asserter: + asserter_id: https://nde.nl/ontology/hc/asserter/claude-opus-4 + asserter_name: Claude Opus 4 + asserter_type: AI_AGENT + asserter_description: Anthropic Claude AI model used for assertion generation + asserter_version: "claude-opus-4-20250514" + ``` + exact_mappings: + - prov:Agent + close_mappings: + - foaf:Agent + - dcterms:Agent + related_mappings: + - schema:Person + - schema:Organization + slots: + - has_or_had_identifier + - has_or_had_label + - has_or_had_description + - asserter_type + - asserter_version + - asserter_contact + - specificity_annotation + - template_specificity + slot_usage: + has_or_had_identifier: + range: uriorcurie + required: true + identifier: true + description: >- + Unique identifier for this asserter. + examples: + - value: https://nde.nl/ontology/hc/asserter/claude-opus-4 + description: AI agent asserter + - value: https://nde.nl/ontology/hc/asserter/jane-doe-nde + description: Human analyst asserter + has_or_had_label: + range: string + required: true + description: >- + Name of the asserter. + examples: + - value: Claude Opus 4 + description: AI model name + - value: Dr. Jane Doe + description: Human analyst name + - value: primary-presence-classifier + description: Automated system name + has_or_had_description: + range: string + required: false + description: >- + Description of the asserter and their role in the assertion process. + examples: + - value: Anthropic Claude AI model used for heritage data assertions + - value: Senior digital heritage analyst at NDE + asserter_type: + range: AsserterTypeEnum + required: true + description: >- + The type of agent making the assertion. + examples: + - value: AI_AGENT + - value: HUMAN_ANALYST + - value: AUTOMATED_SYSTEM + asserter_version: + range: string + required: false + description: >- + Version identifier for software agents. + examples: + - value: "claude-opus-4-20250514" + - value: "1.2.3" + asserter_contact: + range: string + required: false + description: >- + Contact information for human or organizational asserters. + examples: + - value: jane.doe@nde.nl + - value: heritage-team@museum.nl + comments: + - Asserter models the agent responsible for making assertions + - Supports tracking of human, automated, and AI-based assertions + - Uses PROV-O Agent as primary ontology mapping + - Version tracking particularly important for AI/ML agents + see_also: + - https://www.w3.org/TR/prov-o/#Agent + - https://xmlns.com/foaf/spec/#term_Agent + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4 + has_or_had_label: Claude Opus 4 + asserter_type: AI_AGENT + has_or_had_description: Anthropic Claude AI model used for heritage data assertions + asserter_version: "claude-opus-4-20250514" + description: AI agent asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe-nde + has_or_had_label: Dr. Jane Doe + asserter_type: HUMAN_ANALYST + has_or_had_description: Senior digital heritage analyst at NDE + asserter_contact: jane.doe@nde.nl + description: Human analyst asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-classifier + has_or_had_label: primary-presence-classifier + asserter_type: AUTOMATED_SYSTEM + has_or_had_description: Automated system for classifying primary digital presence + asserter_version: "1.0.0" + description: Automated system asserter +slots: + asserter_type: + description: >- + The type of agent making the assertion (human, automated, AI, organization). + range: AsserterTypeEnum + slot_uri: hc:asserterType + asserter_version: + description: >- + Version identifier for software agents (automated systems or AI). + range: string + slot_uri: hc:asserterVersion + asserter_contact: + description: >- + Contact information for human or organizational asserters. + range: string + slot_uri: hc:asserterContact diff --git a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml index b8c6065b26..b4267407df 100644 --- a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml @@ -13,7 +13,11 @@ imports: # - ../slots/branch_service_area - ../slots/has_or_had_service_area - ./ServiceArea -- ../slots/branch_staff_count +# REMOVED - migrated to has_or_had_quantity (Rule 53) +# - ../slots/branch_staff_count +- ../slots/has_or_had_quantity +- ./Quantity +- ../enums/QuantityTypeEnum - ../slots/has_local_collection - ../slots/is_public_facing - ../slots/operating_hour @@ -75,7 +79,9 @@ classes: # REMOVED - migrated to has_or_had_service_area (Rule 53) # - branch_service_area - has_or_had_service_area - - branch_staff_count + # REMOVED - migrated to has_or_had_quantity (Rule 53) + # - branch_staff_count + - has_or_had_quantity - has_local_collection - is_public_facing - operating_hour @@ -163,11 +169,28 @@ classes: examples: - value: Tu-Th 09:00-17:00 description: Limited weekday hours - branch_staff_count: - range: integer + # REMOVED - migrated to has_or_had_quantity (Rule 53) + # branch_staff_count: + # range: integer + # examples: + # - value: 3 + # description: Small branch staff + has_or_had_quantity: + range: Quantity + inlined: true + description: >- + Quantified values associated with this branch office (e.g., staff count). + MIGRATED from branch_staff_count (Rule 53) - changed from integer to + Quantity class for richer measurement context (units, dates, estimates). examples: - - value: 3 - description: Small branch staff + - value: + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to this branch + quantity_date: '2025-01-01' + is_estimate: false + description: Branch staff count as structured Quantity has_local_collection: range: boolean examples: @@ -206,7 +229,11 @@ classes: - Genealogical consultations - Local history reference operating_hours: Tu-Th 09:00-17:00 - branch_staff_count: 3 + has_or_had_quantity: + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Zaanstreek-Waterland branch has_local_collection: true description: Regional archive branch - value: @@ -223,6 +250,10 @@ classes: - Exhibition viewing - Museum shop operating_hours: Daily 07:00-20:00 - branch_staff_count: 5 + has_or_had_quantity: + quantity_value: 5 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Schiphol branch has_local_collection: false description: Museum airport branch diff --git a/schemas/20251121/linkml/modules/classes/Budget.yaml b/schemas/20251121/linkml/modules/classes/Budget.yaml index 68e29d853b..b4d6c14339 100644 --- a/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -250,9 +250,12 @@ classes: has_approval_date: range: date required: false - is_or_was_is_or_was_approved_by: # MIGRATED: was was_approved_by (2026-01-15) - description: Agent (person/organization) that approved this budget - range: string + is_or_was_approved_by: + description: >- + Agent (person/organization) that approved this budget. + MIGRATED from approved_by (2026-01-15) per Rule 39. + Range changed from string to Approver class for structured approval tracking. + range: Approver required: false # MIGRATED from budget_status to has_or_had_status (Rule 53) # budget_status: @@ -336,7 +339,8 @@ classes: internal_funding: 25000000.0 endowment_draw: 5000000.0 approval_date: '2023-11-15' - is_or_was_approved_by: Board of Directors + is_or_was_approved_by: + approver_name: Board of Directors has_or_had_status: value: ACTIVE effective_date: '2024-01-01' @@ -360,7 +364,8 @@ classes: external_funding: 6000000.0 internal_funding: 2500000.0 approval_date: '2024-03-01' - is_or_was_approved_by: Province of Noord-Holland + is_or_was_approved_by: + approver_name: Province of Noord-Holland has_or_had_status: value: ACTIVE effective_date: '2024-04-01' diff --git a/schemas/20251121/linkml/modules/classes/EducationCenter.yaml b/schemas/20251121/linkml/modules/classes/EducationCenter.yaml index 91b6e6f94f..04ea3b7fbf 100644 --- a/schemas/20251121/linkml/modules/classes/EducationCenter.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationCenter.yaml @@ -8,7 +8,7 @@ imports: - ./ReconstructionActivity - ../enums/EducationProviderTypeEnum - ../slots/has_or_had_accessibility_feature -- ../slots/annual_participants +# REMOVED 2026-01-15: ../slots/annual_participants - migrated to has_or_had_annual_participant_count # REMOVED 2026-01-15: ../slots/booking_required - migrated to is_or_was_required - ../slots/is_or_was_required - ../slots/classroom_count @@ -79,7 +79,8 @@ classes: - schema:Course slots: - has_or_had_accessibility_feature - - annual_participants + # REMOVED 2026-01-15: annual_participants - migrated to has_or_had_annual_participant_count + - has_or_had_annual_participant_count # REMOVED 2026-01-15: booking_required - migrated to is_or_was_required - is_or_was_required - classroom_count @@ -255,7 +256,7 @@ classes: has_or_had_accessibility_feature: - Wheelchair accessible - Hearing loop - annual_participants: 75000 + has_or_had_annual_participant_count: 75000 staff_count: 12 is_or_was_required: true education_contact_email: educatie@rijksmuseum.nl diff --git a/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml b/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml index 370c46d5a5..e94a612aa1 100644 --- a/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml @@ -20,7 +20,8 @@ imports: - ../slots/extraction_confidence - ../slots/extraction_note - ../slots/observed_in -- ../slots/applies_to_call +# REMOVED 2026-01-15: ../slots/applies_to_call - migrated to applies_or_applied_to_call +- ../slots/applies_or_applied_to_call - ../slots/is_mandatory - ../slots/requirement_id - ../slots/requirement_text @@ -95,7 +96,8 @@ classes: - schema:eligibleQuantity - prov:wasDerivedFrom slots: - - applies_to_call + # REMOVED 2026-01-15: applies_to_call - migrated to applies_or_applied_to_call + - applies_or_applied_to_call - extraction_confidence - extraction_note - is_mandatory @@ -240,7 +242,7 @@ classes: requirement_value: '3' requirement_unit: partners is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 2 - Eligibility Conditions extraction_confidence: 0.98 @@ -254,7 +256,7 @@ classes: requirement_value: '30' requirement_unit: percent is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 3 - Financial Conditions extraction_confidence: 0.95 @@ -268,7 +270,7 @@ classes: requirement_value: immediate requirement_unit: null is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 4.2 - Open Science extraction_confidence: 0.99 @@ -282,7 +284,7 @@ classes: requirement_value: UK requirement_unit: country is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Eligibility extraction_confidence: 0.99 @@ -296,7 +298,7 @@ classes: requirement_value: non-profit requirement_unit: organization-type is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Who can apply extraction_confidence: 0.95 diff --git a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml index 0be604ced1..f9049bb705 100644 --- a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml +++ b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml @@ -10,7 +10,10 @@ imports: - ../slots/confidence_score - ../slots/superseded_by - ../slots/is_or_was_about_digital_presence -- ../slots/asserted_by +# REMOVED - migrated to is_or_was_asserted_by (Rule 53) +# - ../slots/asserted_by +- ../slots/is_or_was_asserted_by +- ./Asserter - ../slots/has_assertion_date - ../slots/has_or_had_identifier - ../slots/has_assertion_rationale @@ -91,7 +94,9 @@ classes: - prov:wasGeneratedBy slots: - is_or_was_about_digital_presence - - asserted_by + # REMOVED - migrated to is_or_was_asserted_by (Rule 53) + # - asserted_by + - is_or_was_asserted_by - has_assertion_date - has_or_had_identifier - has_assertion_rationale @@ -165,6 +170,27 @@ classes: required: false examples: - value: '2025-11-29T14:30:00Z' + is_or_was_asserted_by: + range: Asserter + inlined: true + required: false + description: >- + The agent responsible for making this assertion. + MIGRATED from asserted_by (Rule 53) - changed from string to Asserter + class for richer provenance tracking. + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer + has_or_had_label: primary-presence-analyzer + asserter_type: AUTOMATED_SYSTEM + asserter_version: "1.0" + description: Automated system asserter + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe + has_or_had_label: Jane Doe + asserter_type: HUMAN_ANALYST + asserter_contact: jane.doe@heritage-org.nl + description: Human analyst asserter was_asserted_by: range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/Quantity.yaml b/schemas/20251121/linkml/modules/classes/Quantity.yaml new file mode 100644 index 0000000000..cb42f84bda --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Quantity.yaml @@ -0,0 +1,223 @@ +id: https://nde.nl/ontology/hc/class/Quantity +name: Quantity +title: Quantity Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +- ../enums/QuantityTypeEnum +- ../slots/has_or_had_identifier +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ../slots/specificity_annotation +- ../slots/template_specificity +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +default_prefix: hc +classes: + Quantity: + class_uri: qudt:Quantity + description: >- + A quantified value with an optional unit of measurement and type. + + **QUDT ALIGNMENT**: + + Maps to `qudt:Quantity` - "A quantitative value expressed as a + number and a unit of measurement." + + **TYPES OF QUANTITIES**: + + | Type | Description | Example | + |------|-------------|---------| + | STAFF_COUNT | Number of employees | 42 employees | + | COLLECTION_SIZE | Number of items | 1.2 million objects | + | VISITOR_COUNT | Annual visitors | 2.5 million/year | + | BUDGET_AMOUNT | Financial value | €15 million | + | AREA | Physical space | 10,000 m² | + | DURATION | Time period | 6 months | + + **USE CASES**: + + 1. **Staff Metrics**: Branch staff count, department size, FTE equivalents + 2. **Collection Metrics**: Object counts, archive linear meters, digital items + 3. **Visitor Metrics**: Annual attendance, daily capacity, peak visitors + 4. **Financial Metrics**: Budget, revenue, acquisition costs + 5. **Physical Metrics**: Floor area, gallery space, storage capacity + + **WHY NOT JUST USE INTEGER?** + + Simple integer fields like `branch_staff_count: 3` lose important context: + - What's the unit? (FTE? headcount? contractors included?) + - When was this measured? (provenance) + - Is this exact or estimated? + - What type of quantity is this? + + The Quantity class captures this richness while remaining simple for basic use. + + **EXAMPLE**: + + ```yaml + Quantity: + quantity_id: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + quantity_description: Staff assigned to Zaanstreek-Waterland branch + quantity_date: 2025-01-01 + ``` + exact_mappings: + - qudt:Quantity + close_mappings: + - schema:QuantitativeValue + related_mappings: + - schema:numberOfEmployees + - schema:floorSize + - dcterms:extent + slots: + - has_or_had_identifier + - quantity_value + - quantity_type + - quantity_unit + - has_or_had_description + - quantity_date + - is_estimate + - specificity_annotation + - template_specificity + slot_usage: + has_or_had_identifier: + range: uriorcurie + required: false + identifier: true + description: >- + Optional identifier for this quantity measurement. + examples: + - value: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + description: Branch staff count measurement + quantity_value: + range: float + required: true + description: >- + The numeric value of the quantity. + examples: + - value: 3 + description: 3 staff members + - value: 1200000 + description: 1.2 million collection items + - value: 2500000 + description: 2.5 million annual visitors + quantity_type: + range: QuantityTypeEnum + required: false + description: >- + The type of quantity being measured. + examples: + - value: STAFF_COUNT + - value: COLLECTION_SIZE + - value: VISITOR_COUNT + quantity_unit: + range: string + required: false + description: >- + The unit of measurement (if applicable). + examples: + - value: FTE + description: Full-time equivalent employees + - value: headcount + description: Total number of people + - value: items + description: Collection item count + - value: linear meters + description: Archive extent + - value: EUR + description: Budget in euros + - value: m² + description: Floor area + has_or_had_description: + range: string + required: false + description: >- + Description of what this quantity represents. + examples: + - value: Staff assigned to Zaanstreek-Waterland branch + - value: Annual visitor count for 2024 + quantity_date: + range: date + required: false + description: >- + Date when this quantity was measured or is valid. + examples: + - value: '2025-01-01' + is_estimate: + range: boolean + required: false + ifabsent: 'false' + description: >- + Whether this quantity is an estimate rather than an exact count. + examples: + - value: false + description: Exact count + - value: true + description: Estimated value + comments: + - Quantity models quantified values with units and provenance + - Replaces simple integer fields with richer structured data + - Uses QUDT Quantity as primary ontology mapping + - Supports various quantity types (staff, collection, visitor, budget) + see_also: + - http://qudt.org/schema/qudt/Quantity + - https://schema.org/QuantitativeValue + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + quantity_value: 3 + quantity_type: STAFF_COUNT + quantity_unit: FTE + has_or_had_description: Staff assigned to Zaanstreek-Waterland branch + quantity_date: '2025-01-01' + is_estimate: false + description: Branch staff count + - value: + quantity_value: 1200000 + quantity_type: COLLECTION_SIZE + quantity_unit: items + has_or_had_description: Total collection size including artworks, documents, and photographs + is_estimate: true + description: Estimated collection size + - value: + quantity_value: 2500000 + quantity_type: VISITOR_COUNT + quantity_unit: visitors/year + has_or_had_description: Annual visitor count for 2024 + quantity_date: '2024-12-31' + is_estimate: false + description: Annual visitor count +slots: + quantity_value: + description: >- + The numeric value of the quantity. + range: float + slot_uri: qudt:numericValue + quantity_type: + description: >- + The type of quantity being measured. + range: QuantityTypeEnum + slot_uri: hc:quantityType + quantity_unit: + description: >- + The unit of measurement (if applicable). + range: string + slot_uri: qudt:unit + quantity_date: + description: >- + Date when this quantity was measured or is valid. + range: date + slot_uri: dcterms:date + is_estimate: + description: >- + Whether this quantity is an estimate rather than an exact count. + range: boolean + slot_uri: hc:isEstimate diff --git a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index c9d0cb6654..a74ba47144 100644 --- a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -237,11 +237,20 @@ classes: - value: '2020-01-01' policy_effective_to: range: date - policy_approved_by: - range: string + is_or_was_approved_by: + description: >- + Agent (person/organization) that approved this policy. + MIGRATED from policy_approved_by (2026-01-15) per Rule 39. + Range changed from string to Approver class for structured approval tracking. + range: Approver + required: false examples: - - value: Collections Committee - - value: Director of Collections + - value: + approver_name: Collections Committee + description: Committee approval + - value: + approver_name: Director of Collections + description: Individual approval policy_review_date: range: date examples: @@ -284,7 +293,8 @@ classes: - EN_15757_2010 - EN_16893_2018 policy_effective_from: '2020-01-01' - policy_approved_by: Collections Committee + is_or_was_approved_by: + approver_name: Collections Committee policy_review_date: '2025-12-31' description: Museum art storage climate policy - value: @@ -313,6 +323,7 @@ classes: - IMAGE_PERMANENCE_INSTITUTE - ISO_TR_19815_2018 policy_effective_from: '2015-06-01' - policy_approved_by: General Rijksarchivaris + is_or_was_approved_by: + approver_name: General Rijksarchivaris policy_review_date: '2025-06-01' description: Archive cold storage policy for photographic materials diff --git a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index 7191e38001..bd093576a8 100644 --- a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -195,12 +195,11 @@ classes: unit_name: Archive Box 145 - WWII Ministry Records unit_type: ARCHIVE_BOX unit_description: 'Acid-free archive box containing Ministry of Defense - - correspondence from 1940-1945. Handle with care. - - ' + correspondence from 1940-1945. Handle with care.' row_number: '12' - bay_number: '3' + has_or_had_identifier: + - value: '3' + _type: BayNumber shelf_number: 4 part_of_zone: https://nde.nl/ontology/hc/zone/na-depot-a-standard valid_from: '2020-03-15' @@ -211,10 +210,7 @@ classes: unit_name: Flat File Drawer 42 - Netherlands Maps unit_type: FLAT_FILE_DRAWER unit_description: 'Flat file drawer containing oversized maps of the - - Netherlands, 1850-1920. Climate-controlled environment. - - ' + Netherlands, 1850-1920. Climate-controlled environment.' drawer_number: 42 capacity_items: 50 current_item_count: 38 diff --git a/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml new file mode 100644 index 0000000000..22832e4d92 --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/AsserterTypeEnum.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/enum/AsserterTypeEnum +name: AsserterTypeEnum +title: Asserter Type Enum +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + foaf: http://xmlns.com/foaf/0.1/ +imports: +- linkml:types +default_prefix: hc +enums: + AsserterTypeEnum: + description: >- + Type of agent making an assertion. + enum_uri: hc:AsserterTypeEnum + permissible_values: + HUMAN_ANALYST: + description: Human expert or analyst making a judgment. + meaning: foaf:Person + AUTOMATED_SYSTEM: + description: Software system or script performing automated analysis. + meaning: prov:SoftwareAgent + AI_AGENT: + description: AI/ML model or agent making an assertion. + meaning: prov:SoftwareAgent + ORGANIZATION: + description: Organization or institution making a formal assertion. + meaning: foaf:Organization + UNKNOWN: + description: Asserter type is not specified or cannot be determined. diff --git a/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml new file mode 100644 index 0000000000..04ef0e09d9 --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/QuantityTypeEnum.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/enum/QuantityTypeEnum +name: QuantityTypeEnum +title: Quantity Type Enum +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +enums: + QuantityTypeEnum: + description: >- + Type of quantity being measured. + enum_uri: hc:QuantityTypeEnum + permissible_values: + STAFF_COUNT: + description: Number of staff members or employees. + meaning: schema:numberOfEmployees + COLLECTION_SIZE: + description: Number of items in a collection. + meaning: schema:size + VISITOR_COUNT: + description: Number of visitors (annual, daily, etc.). + meaning: schema:numberOfAttendees + BUDGET_AMOUNT: + description: Financial amount (budget, revenue, cost). + meaning: schema:amount + AREA: + description: Physical area or floor space. + meaning: schema:floorSize + DURATION: + description: Time duration or period. + meaning: schema:duration + LINEAR_EXTENT: + description: Linear measurement (e.g., archive meters). + meaning: qudt:Length + CAPACITY: + description: Maximum capacity (seats, storage, etc.). + meaning: schema:maximumAttendeeCapacity + OTHER: + description: Other type of quantity not listed. diff --git a/schemas/20251121/linkml/modules/slots/annual_participants.yaml b/schemas/20251121/linkml/modules/slots/annual_participants.yaml deleted file mode 100644 index fdec86531c..0000000000 --- a/schemas/20251121/linkml/modules/slots/annual_participants.yaml +++ /dev/null @@ -1,15 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/annual_participants -name: annual_participants_slot -title: Annual Participants Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - annual_participants: - description: "[AUTO-GENERATED STUB] Annual Participants" - range: string - slot_uri: hc:annualParticipants diff --git a/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml b/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml new file mode 100644 index 0000000000..7844e1e825 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/applies_or_applied_to_call +name: applies_or_applied_to_call_slot +title: Applies Or Applied To Call Slot +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + applies_or_applied_to_call: + description: >- + The funding call or opportunity that this requirement applies (or applied) to. + Uses RiC-O style temporal naming to indicate the relationship may be + current or historical. + range: uriorcurie + slot_uri: rico:appliesOrAppliedTo + exact_mappings: + - schema:isRelatedTo + close_mappings: + - dcterms:relation + - rico:isOrWasRelatedTo + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Applicable to all heritage custodian types for funding requirements. + custodian_types_primary: M + specificity_score: 0.6 + specificity_rationale: >- + Moderately specific slot for funding requirement tracking. diff --git a/schemas/20251121/linkml/modules/slots/applies_to_call.yaml b/schemas/20251121/linkml/modules/slots/applies_to_call.yaml deleted file mode 100644 index 53dd05d237..0000000000 --- a/schemas/20251121/linkml/modules/slots/applies_to_call.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/applies_to_call -name: applies_to_call_slot -title: Applies To Call Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - applies_to_call: - description: >- - Call or announcement that something applies to. - range: string - slot_uri: schema:isRelatedTo - close_mappings: - - schema:isRelatedTo - - dcterms:relation - annotations: - custodian_types: '["*"]' - custodian_types_rationale: >- - Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: >- - Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml new file mode 100644 index 0000000000..53013abc81 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml @@ -0,0 +1,21 @@ +# ARCHIVED 2026-01-15: Migrated to has_or_had_annual_participant_count +# Reason: RiC-O style temporal naming convention (Rule 39) +# Replacement: has_or_had_annual_participant_count +# Affected classes: EducationCenter +id: https://nde.nl/ontology/hc/slot/annual_participants +name: annual_participants_slot +title: Annual Participants Slot (ARCHIVED) +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + annual_participants: + description: "[ARCHIVED] Annual Participants - Use has_or_had_annual_participant_count instead" + range: string + slot_uri: hc:annualParticipants + deprecated: true + deprecated_element_has_exact_replacement: has_or_had_annual_participant_count diff --git a/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml new file mode 100644 index 0000000000..a395c4629a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml @@ -0,0 +1,27 @@ +# ARCHIVED 2026-01-15: Migrated to applies_or_applied_to_call +# Reason: RiC-O style temporal naming convention (Rule 39) +# Replacement: applies_or_applied_to_call +# Affected classes: FundingRequirement +id: https://nde.nl/ontology/hc/slot/applies_to_call +name: applies_to_call_slot +title: Applies To Call Slot (ARCHIVED) +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + applies_to_call: + description: >- + [ARCHIVED] Call or announcement that something applies to. + Use applies_or_applied_to_call instead. + range: string + slot_uri: schema:isRelatedTo + deprecated: true + deprecated_element_has_exact_replacement: applies_or_applied_to_call + close_mappings: + - schema:isRelatedTo + - dcterms:relation diff --git a/schemas/20251121/linkml/modules/slots/asserted_by.yaml b/schemas/20251121/linkml/modules/slots/archive/asserted_by_archived_20260114.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/asserted_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/asserted_by_archived_20260114.yaml diff --git a/schemas/20251121/linkml/modules/slots/branch_staff_count.yaml b/schemas/20251121/linkml/modules/slots/archive/branch_staff_count_archived_20260114.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/branch_staff_count.yaml rename to schemas/20251121/linkml/modules/slots/archive/branch_staff_count_archived_20260114.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml new file mode 100644 index 0000000000..eed99fc4c2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_approved_by_archived_20260115.yaml @@ -0,0 +1,32 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to is_or_was_approved_by + Approver class (Rule 39, Rule 53) +# REPLACEMENT: is_or_was_approved_by with range Approver +# MIGRATION: Migration 30 - approved_by family consolidation +# +# This slot was specific to StorageConditionPolicy. It has been replaced by +# the generic is_or_was_approved_by slot which uses the Approver class for +# structured approval tracking with temporal semantics. +# +# Original slot preserved below for reference. + +id: https://nde.nl/ontology/hc/slot/policy_approved_by +name: policy_approved_by_slot +title: Policy Approved By Slot (ARCHIVED) +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + policy_approved_by: + description: | + ARCHIVED: 2026-01-15 + REPLACEMENT: is_or_was_approved_by with range Approver + + Original description: + Person or body that approved this policy. + range: string + slot_uri: hc:policyApprovedBy + deprecated: "Use is_or_was_approved_by with Approver class instead" + deprecated_element_has_exact_replacement: is_or_was_approved_by diff --git a/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml new file mode 100644 index 0000000000..c10cd7cd81 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/was_approved_by_archived_20260115.yaml @@ -0,0 +1,52 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to is_or_was_approved_by + Approver class (Rule 39, Rule 53) +# REPLACEMENT: is_or_was_approved_by with range Approver +# MIGRATION: Migration 30 - approved_by family consolidation +# +# This slot was used in Budget class. It has been replaced by the generic +# is_or_was_approved_by slot which uses the Approver class for structured +# approval tracking with temporal semantics following RiC-O naming conventions. +# +# Original slot preserved below for reference. + +id: https://nde.nl/ontology/hc/slot/was_approved_by +name: was_approved_by_slot +title: Was Approved By Slot (ARCHIVED) +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + was_approved_by: + description: | + ARCHIVED: 2026-01-15 + REPLACEMENT: is_or_was_approved_by with range Approver + + Original description: + Governance body or authority that approved budget. + + **Examples**: + - "Board of Directors" + - "Executive Committee" + - "Ministry of Culture" + - "City Council" + range: string + slot_uri: prov:wasAttributedTo + exact_mappings: + - prov:wasAttributedTo + close_mappings: + - dcterms:creator + - prov:wasInfluencedBy + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. + deprecated: "Use is_or_was_approved_by with Approver class instead" + deprecated_element_has_exact_replacement: is_or_was_approved_by diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml new file mode 100644 index 0000000000..a54b951ff1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_quantity +name: has_or_had_quantity_slot +title: Has Or Had Quantity Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_quantity: + description: >- + A quantified value associated with an entity. Uses RiC-O temporal + naming pattern to indicate the quantity may be current or historical. + + QUDT: Quantity - "A quantitative value expressed as a number and + a unit of measurement." + + Can represent staff counts, collection sizes, visitor numbers, + budget amounts, area measurements, and other quantifiable properties. + range: Quantity + slot_uri: qudt:Quantity + exact_mappings: + - qudt:Quantity + close_mappings: + - schema:QuantitativeValue + related_mappings: + - schema:numberOfEmployees + - schema:floorSize + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Quantities can be associated with any heritage custodian type. + custodian_types_primary: M + specificity_score: 0.3 + specificity_rationale: >- + Generic quantity slot applicable across many contexts where + quantitative values need to be captured with units and provenance. diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml new file mode 100644 index 0000000000..4881931478 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_asserted_by +name: is_or_was_asserted_by_slot +title: Is Or Was Asserted By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +default_prefix: hc +slots: + is_or_was_asserted_by: + description: >- + The agent (person, organization, or system) responsible for making + an assertion. Uses RiC-O temporal naming pattern to indicate the + relationship may be current or historical. + + PROV-O: wasAttributedTo - "links an entity to an agent that it + may have been attributed to." + + Can be a human analyst, automated system, or AI agent. + range: Asserter + slot_uri: prov:wasAttributedTo + exact_mappings: + - prov:wasAttributedTo + close_mappings: + - dcterms:creator + related_mappings: + - prov:wasAssociatedWith + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Assertions can be made about any heritage custodian type. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: >- + Generic provenance slot applicable across many contexts where + attribution of assertions is needed. diff --git a/schemas/20251121/linkml/modules/slots/manifest.json b/schemas/20251121/linkml/modules/slots/manifest.json index 23c7b33e2d..92a97ea9f0 100644 --- a/schemas/20251121/linkml/modules/slots/manifest.json +++ b/schemas/20251121/linkml/modules/slots/manifest.json @@ -10,10 +10,9 @@ "is_or_was_real.yaml", "allocates_or_allocated.yaml", "allows_or_allowed.yaml", - "annual_participants.yaml", "api_available.yaml", "api_documentation.yaml", - "applies_to_call.yaml", + "applies_or_applied_to_call.yaml", "approved_by.yaml", "approximate.yaml", "archive_branches.yaml", diff --git a/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml b/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml deleted file mode 100644 index 5fca943172..0000000000 --- a/schemas/20251121/linkml/modules/slots/policy_approved_by.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/policy_approved_by -name: policy_approved_by_slot -title: Policy Approved By Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: -- linkml:types -default_prefix: hc -slots: - policy_approved_by: - description: 'Person or body that approved this policy. - - ' - range: string - slot_uri: hc:policyApprovedBy diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index c995bd96d8..0f6e59d87e 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -329,23 +329,13 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/annual_participants processed: - status: false - timestamp: null - session: null - notes: "Complex - requires Participant, Quantity, TimeInterval classes" + status: true + timestamp: '2026-01-15T00:00:00Z' + session: "slot-migration-session-20260115" + notes: "COMPLETE: Migrated to has_or_had_annual_participant_count. EducationCenter.yaml updated - removed annual_participants import and slot reference, updated examples. Slot archived to modules/slots/archive/annual_participants_archived_20260115.yaml." revision: - - label: has_or_had_participant + - label: has_or_had_annual_participant_count type: slot - - label: Participant - type: class - - label: has_or_had_quantity - type: slot - - label: Quantity - type: class - - label: has_or_had_time_interval - type: slot - - label: TimeInterval - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/api_available processed: @@ -383,19 +373,13 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/applies_to_call processed: - status: false - timestamp: null - session: null - notes: "Requires CallType/CallTypes class creation" + status: true + timestamp: '2026-01-15T00:00:00Z' + session: "slot-migration-session-20260115" + notes: "COMPLETE: Migrated to applies_or_applied_to_call. FundingRequirement.yaml updated - imports, slots list, and all 5 examples updated. Slot archived to modules/slots/archive/applies_to_call_archived_20260115.yaml." revision: - - label: applies_or_applied_to + - label: applies_or_applied_to_call type: slot - - label: CallType - type: class - - label: includes_or_included - type: slot - - label: CallTypes - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/appointment_required processed: @@ -422,14 +406,21 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/approved_by processed: status: true - timestamp: '2026-01-14T11:15:00Z' - session: "slot-migration-session-8" + timestamp: '2026-01-15T10:00:00Z' + session: "slot-migration-session-30" notes: | - MIGRATED: approved_by → is_or_was_approved_by + Approver - - is_or_was_approved_by slot already existed - - Approver class already existed - - Budget.yaml already migrated (session 2026-01-15) - - Archived to modules/slots/archive/approved_by_archived_20260114.yaml + MIGRATED: approved_by family → is_or_was_approved_by + Approver (Migration 30) + + This migration consolidated 3 related slots: + - approved_by (already archived 2026-01-14) + - was_approved_by → archived to archive/was_approved_by_archived_20260115.yaml + - policy_approved_by → archived to archive/policy_approved_by_archived_20260115.yaml + + Classes updated: + - Budget.yaml: Fixed malformed slot name, updated slot_usage to use Approver range + - StorageConditionPolicy.yaml: Updated slots and slot_usage, migrated examples + + All three slots now consolidated into is_or_was_approved_by with range Approver. revision: - label: is_or_was_approved_by type: slot @@ -450,10 +441,18 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/archived_at processed: - status: false - timestamp: null - session: null - notes: "Maps to existing HeritageCustodianPlace class" + status: true + timestamp: '2026-01-15T09:00:00Z' + session: "slot-migration-session-29" + notes: | + MIGRATED: archived_at → is_or_was_archived_at (Migration 29) + + Applied RiC-O temporal naming convention (Rule 39). + Updated classes: + - WebObservation.yaml + - AuxiliaryDigitalPlatform.yaml + + Archived to modules/slots/archive/archived_at_archived_20260115.yaml revision: - label: is_or_was_archived_at type: slot @@ -494,10 +493,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/asserted_by processed: - status: false - timestamp: null - session: null - notes: "Requires Asserter class creation" + status: true + timestamp: '2026-01-14T23:30:00Z' + session: "session-2026-01-14-slot-migrations" + notes: "FULLY MIGRATED: Created is_or_was_asserted_by slot, Asserter class, and AsserterTypeEnum. PrimaryDigitalPresenceAssertion.yaml updated with new imports, slots, and slot_usage. Old asserted_by slot archived to archive/asserted_by_archived_20260114.yaml." revision: - label: is_or_was_asserted_by type: slot @@ -1074,10 +1073,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/branch_staff_count processed: - status: false - timestamp: null - session: null - notes: "Maps to existing Quantity class" + status: true + timestamp: '2026-01-14T23:35:00Z' + session: "session-2026-01-14-slot-migrations" + notes: "FULLY MIGRATED: Created has_or_had_quantity slot, Quantity class, and QuantityTypeEnum. BranchOffice.yaml updated with new imports, slots, and slot_usage. Old branch_staff_count slot archived to archive/branch_staff_count_archived_20260114.yaml. Quantity class supports staff counts, collection sizes, visitor counts, budget amounts, etc." revision: - label: has_or_had_quantity type: slot @@ -1347,3 +1346,850 @@ fixes: type: slot - label: TimeSpan type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/xpath_matched_text + revision: + - label: has_or_had_text + type: slot + - label: TextSegment + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/xpath_match_score + revision: + - label: has_or_had_score + type: slot + - label: XPathScore + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/xpath + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: has_or_had_provenance_path + type: slot + - label: XPath + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/writing_system + revision: + - label: has_or_had_writing_system + type: slot + - label: WritingSystem + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/worldcat_id + revision: + - label: has_or_had_identifier + type: slot + - label: WorldCatIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/workshop_space + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/work_location + revision: + - label: has_or_had_location + type: slot + - label: Location + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/word_count + revision: + - label: has_or_had_quantity + type: slot + - label: WordCount + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/within_place + revision: + - label: is_or_was_located_within + type: slot + - label: Place + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/within_auxiliary_place + revision: + - label: is_or_was_located_within + type: slot + - label: Place + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_mapping_rationale + revision: + - label: has_or_had_rationale + type: slot + - label: Rationale + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_mapping + revision: + - label: is_or_was_related_to + type: slot + - label: WikiDataEntry + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_id + revision: + - label: has_or_had_identifier + type: slot + - label: WikiDataIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_equivalent + revision: + - label: is_or_was_equivalent_to + type: slot + - label: WikiDataEntry + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_entity_label + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_entity_id + revision: + - label: has_or_had_identifier + type: slot + - label: WikiDataIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_entity + revision: + - label: has_or_had_identifier + type: slot + - label: WikiDataIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_class + revision: + - label: is_or_was_instance_of + type: slot + - label: WikiDataEntry + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata_alignment + revision: + - label: is_or_was_related_to + type: slot + - label: WikiDataEntry + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/wikidata + revision: + - label: is_or_was_instance_of + type: slot + - label: WikiDataEntry + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/whatsapp_enrichment + revision: + - label: has_or_had_contact_details + type: slot + - label: WhatsAppProfile + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/whatsapp_business_likelihood + revision: + - label: has_or_had_likelihood_score + type: slot + - label: LikelihoodScore + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/website + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/web_observation + revision: + - label: has_or_had_provenance + type: slot + - label: WebObservation + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_revision_of + revision: + - label: is_or_was_revision_of + type: slot + - label: WorkRevision + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_generated_by + revision: + - label: is_or_was_generated_by + type: slot + - label: ReconstructionActivity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_derived_from + revision: + - label: is_or_was_derived_from + type: slot + - label: SourceWork + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_asserted_by + revision: + - label: is_or_was_asserted_by + type: slot + - label: Assertor + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_archived_at + revision: + - label: is_or_was_webarchived_at + type: slot + - label: URL + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/was_approved_by + revision: + - label: is_or_was_approved_by + type: slot + - label: Approver + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_security_level + revision: + - label: has_or_had_security_level + type: slot + - label: SecurityLevel + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_managed_by + revision: + - label: is_or_was_managed_by + type: slot + - label: Group + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_floor_area_sqm + revision: + - label: has_or_had_area + type: slot + - label: Area + type: class + - label: has_or_had_unit + type: slot + - label: MeasureUnit + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/warehouse_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/volunteer_program + revision: + - label: has_or_had_program + type: slot + - label: Program + type: class + - label: has_or_had_type + type: slot + - label: ProgramType + type: class + - label: includes_or_included + type: slot + - label: ProgramTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/visitor_service + revision: + - label: has_or_had_service + type: slot + - label: Service + type: class + - label: has_or_had_type + type: slot + - label: ServiceType + type: class + - label: includes_or_included + type: slot + - label: ServiceTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/visitor_facility + revision: + - label: has_or_had_facility + type: slot + - label: Facility + type: class + - label: has_or_had_type + type: slot + - label: FacilityType + type: class + - label: includes_or_included + type: slot + - label: FacilityTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/visitor_count + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_measurement_unit + type: slot + link_branch: 1 + - label: MeasureUnit + type: class + value: + - visitors + link_branch: 1 + - label: temporal_extent + type: slot + link_branch: 2 + - label: TimeSpan + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/visitor_conversion_rate + revision: + - label: has_or_had_conversion_rate + type: slot + - label: ConversionRate + type: class + - label: has_or_had_type + type: slot + link_branch: 1 + - label: ConversionRateType + type: class + link_branch: 1 + - label: includes_or_included + type: slot + link_branch: 1 + - label: ConversionRateTypes + type: class + link_branch: 1 + - label: temporal_extent + type: slot + link_branch: 2 + - label: TimeSpan + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/visiting_hour + revision: + - label: has_or_had_opening_hour + type: slot + - label: OpeningHour + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/view_count + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_measurement_unit + type: slot + link_branch: 1 + - label: MeasureUnit + type: class + value: + - views + link_branch: 1 + - label: temporal_extent + type: slot + link_branch: 2 + - label: TimeSpan + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/video_id + revision: + - label: has_or_had_identifier + type: slot + - label: VideoIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/video_comment + revision: + - label: has_or_had_comment + type: slot + - label: Comment + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/video_category_id + revision: + - label: has_or_had_identifier + type: slot + - label: VideoCategoryIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/viability_status + revision: + - label: has_or_had_status + type: slot + - label: ViabilityStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/version_number + revision: + - label: has_or_had_version + type: slot + - label: VersionNumber + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/verified_by + revision: + - label: is_or_was_verified_by + type: slot + - label: Verifier + type: class + - label: had_or_had_identifier + type: slot + - label: Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/verified + revision: + - label: has_or_had_verification_status + type: slot + - label: VerificationStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/verification_date + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/vendor_url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/vendor_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/variant_of_name + revision: + - label: is_or_was_alternative_form_of + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/validity_period + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/validation_status + revision: + - label: has_or_had_status + type: slot + - label: ValidationStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/valid_to_geo + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/valid_to + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/valid_from_geo + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: begin_of_the_begin + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/valid_from + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: begin_of_the_begin + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/uv_filtered_required + revision: + - label: is_or_was_required + type: slot + - label: RequirementStatus + type: class + - label: has_or_had_type + type: slot + - label: RequirementType + type: class + - label: includes_or_included + type: slot + - label: RequirementTypes + type: class + value: + - UV Filtered lighting + - original_slot_id: https://nde.nl/ontology/hc/slot/user_community + revision: + - label: serves_or_served + type: slot + - label: UserCommunity + type: class + - label: has_or_had_type + type: slot + - label: UserCommunityType + type: class + - label: includes_or_included + type: slot + - label: UserCommunityTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/used_by_custodian + revision: + - label: is_or_was_used_by + type: slot + - label: Custodian + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/used_by + revision: + - label: provides_or_provided_provenance_to + type: slot + - label: Entity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/used + revision: + - label: provides_or_provided_provenance_to + type: slot + - label: ReconstructionActivity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/updated_at + revision: + - label: was_last_updated_at + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/update_frequency + revision: + - label: has_or_had_frequency + type: slot + - label: UpdateFrequency + type: class + - label: has_or_had_quantity + type: slot + link_branch: 1 + - label: Quantity + type: class + link_branch: 1 + - label: has_or_had_time_interval + type: slot + link_branch: 2 + - label: TimeInterval + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_type + revision: + - label: has_or_had_type + type: slot + - label: OrganizationalUnitType + type: class + - label: includes_or_included + type: slot + - label: OrganizationalUnitTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_identifier + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unit_affiliation + revision: + - label: is_or_was_affiliated_with + type: slot + - label: OrganizationUnit + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unique_object_count + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: had_or_had_measurement_unit + type: slot + value: + - object + link_branch: 1 + - label: MeasureUnit + type: class + link_branch: 1 + - label: has_or_had_methodology + type: slot + link_branch: 2 + - label: Methodology + type: class + value: + - entity_resolution + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/unique_face_count + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: had_or_had_measurement_unit + type: slot + link_branch: 1 + - label: MeasureUnit + type: class + value: + - face + link_branch: 1 + - label: has_or_had_methodology + type: slot + link_branch: 2 + - label: Methodology + type: class + value: + - entity_resolution + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/uniform_title + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: TitleType + type: class + - label: includes_or_included + type: slot + - label: TitleTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unesco_list_status + revision: + - label: has_or_had_status + type: slot + - label: UNESCOListStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unesco_inscription_year + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: begin_of_the_begin + type: slot + - label: Timestamp + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/unesco_domain + revision: + - label: is_or_was_categorized_as + type: slot + - label: UNESCODomain + type: class + - label: has_or_had_type + type: slot + - label: UNESCODomainType + type: class + - label: includes_or_included + type: slot + - label: UNESCODomainTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_technical_feature + revision: + - label: has_or_had_feature + type: slot + - label: TechnicalFeature + type: class + - label: has_or_had_type + type: slot + - label: TechnicalFeatureType + type: class + - label: includes_or_included + type: slot + - label: TechnicalFeatureTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_scope + revision: + - label: has_or_had_scope + type: slot + - label: Scope + type: class + - label: has_or_had_type + type: slot + - label: ScopeType + type: class + - label: includes_or_included + type: slot + - label: ScopeTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_responsibility + revision: + - label: has_or_had_responsibility + type: slot + - label: Responsibility + type: class + - label: has_or_had_type + type: slot + - label: ResponsibilityType + type: class + - label: includes_or_included + type: slot + - label: ResponsibilityTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_response_formats + revision: + - label: has_or_had_format + type: slot + - label: ResponseFormat + type: class + - label: has_or_had_type + type: slot + - label: ResponseFormatType + type: class + - label: includes_or_included + type: slot + - label: ResponseFormatTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_metadata_standard + revision: + - label: has_or_had_standard + type: slot + - label: MetadataStandard + type: class + - label: has_or_had_type + type: slot + - label: MetadataStandardType + type: class + - label: includes_or_included + type: slot + - label: MetadataStandardTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_http_methods + revision: + - label: has_or_had_method + type: slot + - label: HTTPMethod + type: class + - label: has_or_had_type + type: slot + - label: HTTPMethodType + type: class + - label: includes_or_included + type: slot + - label: HTTPMethodTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_grant_range + revision: + - label: has_or_had_range + type: slot + - label: GrantRange + type: class + - label: minimal_of_minimal + type: slot + link_branch: 1 + - label: Quantity + type: class + link_branch: 1 + - label: maximal_of_maximal + type: slot + link_branch: 2 + - label: Quantity + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_domain + revision: + - label: has_or_had_domain + type: slot + - label: Domain + type: class + - label: has_or_had_type + type: slot + - label: DomainType + type: class + - label: includes_or_included + type: slot + - label: DomainTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_condition + revision: + - label: has_or_had_condition + type: slot + - label: Condition + type: class + - label: has_or_had_type + type: slot + - label: ConditionType + type: class + - label: includes_or_included + type: slot + - label: ConditionTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/typical_approval_time + revision: + - label: has_or_had_time_interval + type: slot + - label: TimeInterval + type: class + - label: has_or_had_type + type: slot + - label: ApprovalTimeType + type: class + - label: includes_or_included + type: slot + - label: ApprovalTimeTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_status + revision: + - label: has_or_had_status + type: slot + - label: TypeStatus + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_scope + revision: + - label: has_or_had_scope + type: slot + - label: Scope + type: class + - label: has_or_had_type + type: slot + - label: ScopeType + type: class + - label: includes_or_included + type: slot + - label: ScopeTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_label + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_language + type: slot + - label: Language + type: class + - label: has_or_had_identifier + type: slot + - label: ISO639-3Identifier + type: class + - \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/slots/was_approved_by.yaml b/schemas/20251121/linkml/modules/slots/was_approved_by.yaml deleted file mode 100644 index 6e3512ab25..0000000000 --- a/schemas/20251121/linkml/modules/slots/was_approved_by.yaml +++ /dev/null @@ -1,41 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/was_approved_by -name: was_approved_by_slot -title: Was Approved By Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - was_approved_by: - description: 'Governance body or authority that approved budget. - - - **Examples**: - - - "Board of Directors" - - - "Executive Committee" - - - "Ministry of Culture" - - - "City Council" - - ' - range: string - slot_uri: prov:wasAttributedTo - exact_mappings: - - prov:wasAttributedTo - close_mappings: - - dcterms:creator - - prov:wasInfluencedBy - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot.