diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 883feb243a..cc86a6fda1 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-01-26T08:00:29.709Z", + "generated": "2026-01-26T14:43:53.241Z", "schemaRoot": "/schemas/20251121/linkml", - "totalFiles": 3040, + "totalFiles": 3027, "categoryCounts": { "main": 4, - "class": 1052, + "class": 1070, "enum": 153, - "slot": 1827, + "slot": 1796, "module": 4 }, "categories": [ @@ -190,6 +190,21 @@ "path": "modules/classes/Appellation.yaml", "category": "class" }, + { + "name": "Applicant", + "path": "modules/classes/Applicant.yaml", + "category": "class" + }, + { + "name": "ApplicantRequirement", + "path": "modules/classes/ApplicantRequirement.yaml", + "category": "class" + }, + { + "name": "ApplicantType", + "path": "modules/classes/ApplicantType.yaml", + "category": "class" + }, { "name": "Appointment", "path": "modules/classes/Appointment.yaml", @@ -1735,6 +1750,21 @@ "path": "modules/classes/DocumentationCentre.yaml", "category": "class" }, + { + "name": "DocumentType", + "path": "modules/classes/DocumentType.yaml", + "category": "class" + }, + { + "name": "DocumentTypes", + "path": "modules/classes/DocumentTypes.yaml", + "category": "class" + }, + { + "name": "DOI", + "path": "modules/classes/DOI.yaml", + "category": "class" + }, { "name": "Domain", "path": "modules/classes/Domain.yaml", @@ -1756,8 +1786,13 @@ "category": "class" }, { - "name": "DualClassLink", - "path": "modules/classes/DualClassLink.yaml", + "name": "Drawer", + "path": "modules/classes/Drawer.yaml", + "category": "class" + }, + { + "name": "DrawerNumber", + "path": "modules/classes/DrawerNumber.yaml", "category": "class" }, { @@ -1845,6 +1880,16 @@ "path": "modules/classes/EmailAddress.yaml", "category": "class" }, + { + "name": "Embargo", + "path": "modules/classes/Embargo.yaml", + "category": "class" + }, + { + "name": "Employer", + "path": "modules/classes/Employer.yaml", + "category": "class" + }, { "name": "EncompassingBody", "path": "modules/classes/EncompassingBody.yaml", @@ -1855,6 +1900,26 @@ "path": "modules/classes/EncompassingBodyTypes.yaml", "category": "class" }, + { + "name": "Endpoint", + "path": "modules/classes/Endpoint.yaml", + "category": "class" + }, + { + "name": "EngagementMetric", + "path": "modules/classes/EngagementMetric.yaml", + "category": "class" + }, + { + "name": "EnrichmentMetadata", + "path": "modules/classes/EnrichmentMetadata.yaml", + "category": "class" + }, + { + "name": "EnrichmentMethod", + "path": "modules/classes/EnrichmentMethod.yaml", + "category": "class" + }, { "name": "EnrichmentProvenance", "path": "modules/classes/EnrichmentProvenance.yaml", @@ -1925,6 +1990,16 @@ "path": "modules/classes/Expenses.yaml", "category": "class" }, + { + "name": "ExpenseType", + "path": "modules/classes/ExpenseType.yaml", + "category": "class" + }, + { + "name": "ExpenseTypes", + "path": "modules/classes/ExpenseTypes.yaml", + "category": "class" + }, { "name": "ExternalWork", "path": "modules/classes/ExternalWork.yaml", @@ -2115,6 +2190,11 @@ "path": "modules/classes/GenerationEvent.yaml", "category": "class" }, + { + "name": "GeographicExtent", + "path": "modules/classes/GeographicExtent.yaml", + "category": "class" + }, { "name": "GeoSpatialPlace", "path": "modules/classes/GeoSpatialPlace.yaml", @@ -4810,6 +4890,16 @@ "path": "modules/classes/URL.yaml", "category": "class" }, + { + "name": "URLType", + "path": "modules/classes/URLType.yaml", + "category": "class" + }, + { + "name": "URLTypes", + "path": "modules/classes/URLTypes.yaml", + "category": "class" + }, { "name": "UserCommunity", "path": "modules/classes/UserCommunity.yaml", @@ -6137,6 +6227,16 @@ "path": "modules/slots/begin_of_the_end.yaml", "category": "slot" }, + { + "name": "can_or_could_be_fulfilled_by", + "path": "modules/slots/can_or_could_be_fulfilled_by.yaml", + "category": "slot" + }, + { + "name": "can_or_could_be_retrieved_from", + "path": "modules/slots/can_or_could_be_retrieved_from.yaml", + "category": "slot" + }, { "name": "cessation_observed_in", "path": "modules/slots/cessation_observed_in.yaml", @@ -6367,11 +6467,6 @@ "path": "modules/slots/contact.yaml", "category": "slot" }, - { - "name": "contact_email", - "path": "modules/slots/contact_email.yaml", - "category": "slot" - }, { "name": "contact_point", "path": "modules/slots/contact_point.yaml", @@ -6432,21 +6527,11 @@ "path": "modules/slots/content_id.yaml", "category": "slot" }, - { - "name": "content_language", - "path": "modules/slots/content_language.yaml", - "category": "slot" - }, { "name": "content_origin", "path": "modules/slots/content_origin.yaml", "category": "slot" }, - { - "name": "content_summary", - "path": "modules/slots/content_summary.yaml", - "category": "slot" - }, { "name": "content_title", "path": "modules/slots/content_title.yaml", @@ -6823,88 +6908,8 @@ "category": "slot" }, { - "name": "dissolution_date", - "path": "modules/slots/dissolution_date.yaml", - "category": "slot" - }, - { - "name": "dissolved_date", - "path": "modules/slots/dissolved_date.yaml", - "category": "slot" - }, - { - "name": "document_description", - "path": "modules/slots/document_description.yaml", - "category": "slot" - }, - { - "name": "document_title", - "path": "modules/slots/document_title.yaml", - "category": "slot" - }, - { - "name": "document_type", - "path": "modules/slots/document_type.yaml", - "category": "slot" - }, - { - "name": "documentation", - "path": "modules/slots/documentation.yaml", - "category": "slot" - }, - { - "name": "documentation_produced", - "path": "modules/slots/documentation_produced.yaml", - "category": "slot" - }, - { - "name": "documentation_source", - "path": "modules/slots/documentation_source.yaml", - "category": "slot" - }, - { - "name": "documentation_url", - "path": "modules/slots/documentation_url.yaml", - "category": "slot" - }, - { - "name": "documented_by", - "path": "modules/slots/documented_by.yaml", - "category": "slot" - }, - { - "name": "documents_budget", - "path": "modules/slots/documents_budget.yaml", - "category": "slot" - }, - { - "name": "doi", - "path": "modules/slots/doi.yaml", - "category": "slot" - }, - { - "name": "domain_context", - "path": "modules/slots/domain_context.yaml", - "category": "slot" - }, - { - "name": "download_endpoint", - "path": "modules/slots/download_endpoint.yaml", - "category": "slot" - }, - { - "name": "drawer_number", - "path": "modules/slots/drawer_number.yaml", - "category": "slot" - }, - { - "name": "dual_class_link", - "path": "modules/slots/dual_class_link.yaml", - "category": "slot" - }, - { - "name": "dual_class_role", - "path": "modules/slots/dual_class_role.yaml", + "name": "documents_or_documented", + "path": "modules/slots/documents_or_documented.yaml", "category": "slot" }, { @@ -6912,61 +6917,11 @@ "path": "modules/slots/dutch_context.yaml", "category": "slot" }, - { - "name": "eligible_applicant", - "path": "modules/slots/eligible_applicant.yaml", - "category": "slot" - }, - { - "name": "eligible_country", - "path": "modules/slots/eligible_country.yaml", - "category": "slot" - }, - { - "name": "embargo_end_date", - "path": "modules/slots/embargo_end_date.yaml", - "category": "slot" - }, - { - "name": "embargo_reason", - "path": "modules/slots/embargo_reason.yaml", - "category": "slot" - }, - { - "name": "emic_name", - "path": "modules/slots/emic_name.yaml", - "category": "slot" - }, { "name": "emphasizes_or_emphasized", "path": "modules/slots/emphasizes_or_emphasized.yaml", "category": "slot" }, - { - "name": "employer_linkedin_url", - "path": "modules/slots/employer_linkedin_url.yaml", - "category": "slot" - }, - { - "name": "employer_name", - "path": "modules/slots/employer_name.yaml", - "category": "slot" - }, - { - "name": "employment_dates_raw", - "path": "modules/slots/employment_dates_raw.yaml", - "category": "slot" - }, - { - "name": "employment_end_date", - "path": "modules/slots/employment_end_date.yaml", - "category": "slot" - }, - { - "name": "employment_start_date", - "path": "modules/slots/employment_start_date.yaml", - "category": "slot" - }, { "name": "en", "path": "modules/slots/en.yaml", @@ -6982,11 +6937,6 @@ "path": "modules/slots/end.yaml", "category": "slot" }, - { - "name": "end_date", - "path": "modules/slots/end_date.yaml", - "category": "slot" - }, { "name": "end_of_the_begin", "path": "modules/slots/end_of_the_begin.yaml", @@ -6997,56 +6947,16 @@ "path": "modules/slots/end_of_the_end.yaml", "category": "slot" }, - { - "name": "end_seconds", - "path": "modules/slots/end_seconds.yaml", - "category": "slot" - }, - { - "name": "end_time", - "path": "modules/slots/end_time.yaml", - "category": "slot" - }, - { - "name": "ended_at_time", - "path": "modules/slots/ended_at_time.yaml", - "category": "slot" - }, { "name": "endorsement_source", "path": "modules/slots/endorsement_source.yaml", "category": "slot" }, - { - "name": "endowment_draw", - "path": "modules/slots/endowment_draw.yaml", - "category": "slot" - }, { "name": "ends_or_ended_at_location", "path": "modules/slots/ends_or_ended_at_location.yaml", "category": "slot" }, - { - "name": "engagement_rate", - "path": "modules/slots/engagement_rate.yaml", - "category": "slot" - }, - { - "name": "enriched_date", - "path": "modules/slots/enriched_date.yaml", - "category": "slot" - }, - { - "name": "enrichment_metadata_whatsapp", - "path": "modules/slots/enrichment_metadata_whatsapp.yaml", - "category": "slot" - }, - { - "name": "enrichment_method_whatsapp", - "path": "modules/slots/enrichment_method_whatsapp.yaml", - "category": "slot" - }, { "name": "entity_types_covered", "path": "modules/slots/entity_types_covered.yaml", @@ -7347,11 +7257,6 @@ "path": "modules/slots/exhibition_subtitle.yaml", "category": "slot" }, - { - "name": "exhibition_timespan", - "path": "modules/slots/exhibition_timespan.yaml", - "category": "slot" - }, { "name": "exhibition_type", "path": "modules/slots/exhibition_type.yaml", @@ -9017,6 +8922,11 @@ "path": "modules/slots/has_or_had_content.yaml", "category": "slot" }, + { + "name": "has_or_had_contributor", + "path": "modules/slots/has_or_had_contributor.yaml", + "category": "slot" + }, { "name": "has_or_had_conversion_rate", "path": "modules/slots/has_or_had_conversion_rate.yaml", @@ -9142,11 +9052,31 @@ "path": "modules/slots/has_or_had_domain.yaml", "category": "slot" }, + { + "name": "has_or_had_drawer", + "path": "modules/slots/has_or_had_drawer.yaml", + "category": "slot" + }, { "name": "has_or_had_edition", "path": "modules/slots/has_or_had_edition.yaml", "category": "slot" }, + { + "name": "has_or_had_email", + "path": "modules/slots/has_or_had_email.yaml", + "category": "slot" + }, + { + "name": "has_or_had_endowment_draw", + "path": "modules/slots/has_or_had_endowment_draw.yaml", + "category": "slot" + }, + { + "name": "has_or_had_engagement_metric", + "path": "modules/slots/has_or_had_engagement_metric.yaml", + "category": "slot" + }, { "name": "has_or_had_environmental_condition", "path": "modules/slots/has_or_had_environmental_condition.yaml", @@ -9417,6 +9347,11 @@ "path": "modules/slots/has_or_had_membership.yaml", "category": "slot" }, + { + "name": "has_or_had_metadata", + "path": "modules/slots/has_or_had_metadata.yaml", + "category": "slot" + }, { "name": "has_or_had_method", "path": "modules/slots/has_or_had_method.yaml", @@ -9932,6 +9867,11 @@ "path": "modules/slots/has_or_had_suborganization.yaml", "category": "slot" }, + { + "name": "has_or_had_summary", + "path": "modules/slots/has_or_had_summary.yaml", + "category": "slot" + }, { "name": "has_or_had_supplier", "path": "modules/slots/has_or_had_supplier.yaml", @@ -10107,11 +10047,6 @@ "path": "modules/slots/has_supervised_handling.yaml", "category": "slot" }, - { - "name": "has_timespan", - "path": "modules/slots/has_timespan.yaml", - "category": "slot" - }, { "name": "has_unit", "path": "modules/slots/has_unit.yaml", @@ -10447,6 +10382,11 @@ "path": "modules/slots/implements_digital_platform.yaml", "category": "slot" }, + { + "name": "imposes_or_imposed", + "path": "modules/slots/imposes_or_imposed.yaml", + "category": "slot" + }, { "name": "inbound_from", "path": "modules/slots/inbound_from.yaml", @@ -10942,6 +10882,11 @@ "path": "modules/slots/is_or_was_effective_at.yaml", "category": "slot" }, + { + "name": "is_or_was_employed_by", + "path": "modules/slots/is_or_was_employed_by.yaml", + "category": "slot" + }, { "name": "is_or_was_encompassed_by", "path": "modules/slots/is_or_was_encompassed_by.yaml", @@ -10952,6 +10897,11 @@ "path": "modules/slots/is_or_was_equivalent_to.yaml", "category": "slot" }, + { + "name": "is_or_was_expired_at", + "path": "modules/slots/is_or_was_expired_at.yaml", + "category": "slot" + }, { "name": "is_or_was_extracted_using", "path": "modules/slots/is_or_was_extracted_using.yaml", @@ -13117,16 +13067,6 @@ "path": "modules/slots/policy_description.yaml", "category": "slot" }, - { - "name": "policy_effective_from", - "path": "modules/slots/policy_effective_from.yaml", - "category": "slot" - }, - { - "name": "policy_effective_to", - "path": "modules/slots/policy_effective_to.yaml", - "category": "slot" - }, { "name": "policy_id", "path": "modules/slots/policy_id.yaml", @@ -15002,11 +14942,6 @@ "path": "modules/slots/start.yaml", "category": "slot" }, - { - "name": "start_date", - "path": "modules/slots/start_date.yaml", - "category": "slot" - }, { "name": "start_of_the_start", "path": "modules/slots/start_of_the_start.yaml", diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml index 44395e662a..d360f4b335 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml @@ -38,11 +38,10 @@ imports: - ../slots/has_activity_name - ../slots/has_activity_description - ../slots/has_or_had_activity_type - - ../slots/has_timespan + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/is_or_was_succeeded_by - ../slots/preceding_activity - - ../slots/start_date - - ../slots/end_date - ../slots/status - ../slots/note - ../slots/specificity_annotation @@ -123,9 +122,8 @@ classes: - has_activity_name - has_activity_description - has_or_had_activity_type - - has_timespan - - start_date - - end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent + - temporal_extent - is_or_was_succeeded_by - preceding_activity - status @@ -182,29 +180,20 @@ classes: - value: "[DigitizationActivityType, ResearchActivityType]" description: "Combined digitization and research project" - has_timespan: + temporal_extent: range: TimeSpan required: false inlined: true description: | Temporal extent of this activity. + Replaces has_timespan, start_date, end_date. Uses CIDOC-CRM four-point temporal model for fuzzy bounds. examples: - value: - start_date: "2025-01-15" - end_date: "2025-03-31" + begin_of_the_begin: "2025-01-15" + end_of_the_end: "2025-03-31" description: "Q1 2025 activity period" - start_date: - range: date - required: false - description: Start date of the activity (convenience field). - - end_date: - range: date - required: false - description: End date of the activity (convenience field). - is_or_was_succeeded_by: range: Activity multivalued: true @@ -268,9 +257,9 @@ classes: Annual physical inventory of the Dutch Masters collection (Gallery of Honour and adjacent galleries). Spot-check methodology with 20% sample verification against CMS records. - has_timespan: - start_date: "2025-01-15" - end_date: "2025-03-31" + temporal_extent: + begin_of_the_begin: "2025-01-15" + end_of_the_end: "2025-03-31" status: "IN_PROGRESS" description: "Inventory activity at Rijksmuseum" @@ -283,8 +272,9 @@ classes: has_activity_description: | High-resolution digitization of 342 medieval manuscripts with HTR processing and metadata enhancement. IIIF-compliant output. - start_date: "2024-03-01" - end_date: "2025-12-31" + temporal_extent: + begin_of_the_begin: "2024-03-01" + end_of_the_end: "2025-12-31" status: "IN_PROGRESS" preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2023 description: "Digitization and research project at KB" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml new file mode 100644 index 0000000000..23efbc5402 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/class/Applicant +name: Applicant +title: Applicant Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + - ../slots/has_or_had_type + - ./ApplicantType + +classes: + Applicant: + class_uri: schema:Person + description: >- + An individual or organization applying for a grant, job, or opportunity. + + **Ontology Alignment**: + - **Primary**: `schema:Person` or `schema:Organization` + - **Close**: `foaf:Agent` + + slots: + - has_or_had_label + - has_or_had_identifier + - has_or_had_type + + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: Generic applicant role. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml new file mode 100644 index 0000000000..203fbde986 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/class/ApplicantRequirement +name: ApplicantRequirement +title: Applicant Requirement Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/can_or_could_be_fulfilled_by + - ../slots/imposes_or_imposed + - ./Applicant + - ./GeographicExtent + +classes: + ApplicantRequirement: + class_uri: schema:Requirement + description: >- + A requirement that an applicant must fulfill (e.g., residency, organization type). + + **Ontology Alignment**: + - **Primary**: `schema:Requirement` (proposed extension or conceptual) + - **Close**: `dcterms:requires` + + slots: + - has_or_had_description + - can_or_could_be_fulfilled_by + - imposes_or_imposed + + slot_usage: + can_or_could_be_fulfilled_by: + range: Applicant + description: The type of applicant that satisfies this requirement. + imposes_or_imposed: + range: GeographicExtent + description: Geographic constraints (e.g., eligible countries). + + annotations: + custodian_types: '["*"]' + specificity_score: 0.6 + specificity_rationale: Requirements for applications. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml new file mode 100644 index 0000000000..3f8fd4f0f7 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/ApplicantType +name: ApplicantType +title: Applicant Type Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + ApplicantType: + class_uri: skos:Concept + description: >- + Type classification for an applicant (e.g. Individual, NonProfit, University). + + **Ontology Alignment**: + - **Primary**: `skos:Concept` + - **Close**: `schema:definedTerm` + + slots: + - has_or_had_label + - has_or_had_identifier + + annotations: + custodian_types: '["*"]' + specificity_score: 0.7 + specificity_rationale: Classification for applicants. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml index 1f02f5448b..a2924c28dc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml @@ -22,9 +22,13 @@ imports: - ../slots/has_articles_document_format - ../slots/has_articles_document_url - ../slots/is_or_was_included_in # was: collected_in - migrated per Rule 53 (2026-01-19) - - ../slots/document_description - - ../slots/document_title - - ../slots/document_type + - ../slots/has_or_had_description + - ./Description + - ../slots/has_or_had_title + - ./Title + - ../slots/has_or_had_type + - ./DocumentType + - ./DocumentTypes - ../slots/execution_date - ../slots/governance_clause - ../slots/id @@ -130,9 +134,9 @@ classes: - has_articles_document_format - has_articles_document_url - is_or_was_included_in # was: collected_in - migrated per Rule 53 (2026-01-19) - - document_description - - document_title - - document_type + - has_or_had_description + - has_or_had_title + - has_or_had_type - is_or_was_effective_at - execution_date - governance_clause @@ -161,18 +165,45 @@ classes: id: identifier: true required: true - document_title: - range: string - required: true - document_description: - range: string - required: false - document_type: - range: string + has_or_had_title: + description: | + Title of the articles document. + MIGRATED from document_title per Rule 53 (2026-01-26). + range: Title + inlined: true required: true examples: - - value: NOTARIAL_DEED - description: Dutch notarial deed for stichting + - value: + has_or_had_label: Statuten Stichting Rijksmuseum + description: Title of articles + has_or_had_description: + description: | + Description of the articles document. + MIGRATED from document_description per Rule 53 (2026-01-26). + range: Description + inlined: true + required: false + examples: + - value: + description_text: Original founding articles of the Rijksmuseum foundation + description: Document description + document_type: + description: | + DEPRECATED 2026-01-26: Use has_or_had_type with DocumentType subclass. + range: string + deprecated: "Use has_or_had_type" + has_or_had_type: + description: | + Type of the document (e.g. NotarialDeed). + MIGRATED from document_type per Rule 53 (2026-01-26). + range: DocumentType + inlined: true + required: true + examples: + - value: + has_or_had_label: "Notarial Deed" + has_or_had_type: NotarialDeed + description: Standard Dutch notarial deed execution_date: range: date required: true @@ -337,10 +368,14 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/articles/rm/v1 - document_title: Statuten Stichting Rijksmuseum - document_description: Original founding articles of the Rijksmuseum foundation, establishing governance structure - and museum operations. - document_type: NOTARIAL_DEED + has_or_had_title: + has_or_had_label: Statuten Stichting Rijksmuseum + has_or_had_description: + description_text: Original founding articles of the Rijksmuseum foundation, establishing governance structure + and museum operations. + has_or_had_type: + has_or_had_type: NotarialDeed + has_or_had_label: "Notarial Deed" execution_date: '1885-06-28' is_or_was_effective_at: '1885-07-01' notary_name: mr. H.J. van den Berg @@ -367,9 +402,13 @@ classes: description: Original 1885 founding articles of Rijksmuseum (now in heritage collection) - value: id: https://nde.nl/ontology/hc/articles/nha/v3 - document_title: Statuten Stichting Noord-Hollands Archief (gewijzigd 2015) - document_description: Third version of articles, amended to include digital preservation mandate. - document_type: NOTARIAL_DEED + has_or_had_title: + has_or_had_label: Statuten Stichting Noord-Hollands Archief (gewijzigd 2015) + has_or_had_description: + description_text: Third version of articles, amended to include digital preservation mandate. + has_or_had_type: + has_or_had_type: NotarialDeed + has_or_had_label: "Notarial Deed" execution_date: '2015-11-12' is_or_was_effective_at: '2015-11-12' notary_name: mr. A.M. de Vries diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index c9227aa6de..58965d2084 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -9,9 +9,10 @@ description: | imports: - linkml:types - ../slots/start_seconds - - ../slots/end_seconds + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/start_time - - ../slots/end_time - ../slots/segment_index - ../slots/segment_text # MIGRATED 2026-01-19: confidence → is_or_was_generated_by + GenerationEvent + ConfidenceScore @@ -94,9 +95,9 @@ classes: - oa:FragmentSelector slots: - start_seconds - - end_seconds + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval + - has_or_had_time_interval - start_time - - end_time - segment_index - segment_text # MIGRATED 2026-01-19: confidence → is_or_was_generated_by (structured ConfidenceScore) @@ -124,16 +125,17 @@ classes: description: Audio event starts at beginning - value: 45.5 description: Audio event starts at 45.5 seconds - end_seconds: - range: float + has_or_had_time_interval: + range: TimeInterval required: true - minimum_value: 0.0 - description: End time in seconds for this audio event segment. + inlined: true + description: >- + Duration of audio segment. + Replaces end_seconds/end_time. Use duration_value for ISO 8601 (e.g. PT15S). examples: - - value: 15.0 - description: Audio event ends at 15 seconds - - value: 60.0 - description: Audio event ends at 1 minute + - value: + duration_value: PT0M15S + description: 15 second duration start_time: range: string required: false @@ -142,14 +144,6 @@ classes: examples: - value: PT0M30S description: 30 seconds from start - end_time: - range: string - required: false - pattern: "^PT(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$" - description: End time in ISO 8601 duration format. - examples: - - value: PT0M45S - description: 45 seconds from start segment_text: range: string required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml index 62220dbfae..7823053c79 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -30,11 +30,16 @@ imports: - ./BudgetType - ../slots/allocates_or_allocated - ./DigitizationBudget + - ../slots/is_or_was_based_on + - ./FinancialStatement - ../slots/has_or_had_quantity - ../classes/Quantity - ../slots/has_or_had_unit - ../classes/Unit - - ../slots/employee_benefits_expenses + - ../slots/has_or_had_expenses + - ./Expenses + - ./ExpenseType + - ./ExpenseTypes - ../slots/endowment_draw - ../slots/external_funding - ../slots/fiscal_year_end @@ -125,7 +130,7 @@ classes: # MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision - has_or_had_main_part - allocates_or_allocated - - endowment_draw + - has_or_had_endowment_draw - external_funding - fiscal_year_end - fiscal_year_start @@ -307,9 +312,12 @@ classes: internal_funding: range: decimal required: false - endowment_draw: + has_or_had_endowment_draw: range: decimal required: false + description: >- + Amount drawn from endowment fund. + MIGRATED from endowment_draw per Rule 53 (2026-01-26). has_approval_date: range: date required: false @@ -345,13 +353,18 @@ classes: revision_date: range: date required: false - managing_unit: - range: OrganizationalStructure - required: false documented_by: - range: uriorcurie + description: | + Financial statements (actuals) documenting this budget (plan). + MIGRATED from documented_by string slot (2026-01-26). + Now links to FinancialStatement class. + range: FinancialStatement multivalued: true + inlined: false required: false + examples: + - value: https://nde.nl/ontology/hc/financial/rijksmuseum-annual-report-2024 + description: Annual report auditing 2024 budget refers_to_custodian: range: Custodian required: true @@ -430,7 +443,7 @@ classes: innovation_budget: 750000.0 external_funding: 15000000.0 internal_funding: 25000000.0 - endowment_draw: 5000000.0 + has_or_had_endowment_draw: 5000000.0 approval_date: '2023-11-15' is_or_was_approved_by: approver_name: Board of Directors diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml index f895ac57bd..a831cf8037 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -12,6 +12,7 @@ imports: - ../metadata - ../slots/has_or_had_type - ../slots/has_or_had_label + - ../slots/is_or_was_effective_at default_prefix: hc classes: CITESAppendix: @@ -85,16 +86,23 @@ classes: - value: "CITES Appendix II - Trade Regulated" attributes: listing_effective_date: + deprecated: "Use is_or_was_effective_at (Rule 53, 2026-01-26)" description: >- + DEPRECATED 2026-01-26: Use is_or_was_effective_at instead. Date when the species was added to this CITES appendix. - Important for determining legal status at time of specimen acquisition. range: date required: false + is_or_was_effective_at: + range: date + required: false + description: >- + Date when the CITES listing became effective. + MIGRATED from listing_effective_date (2026-01-26). examples: - value: "1975-07-01" - description: Original CITES listing (Convention entered into force) + description: Original CITES listing - value: "2019-08-28" - description: Added at CoP18 (Geneva) + description: Added at CoP18 listing_authority: description: >- Authority responsible for the listing (typically CITES Secretariat or @@ -145,7 +153,7 @@ classes: - value: has_or_had_type: APPENDIX_I has_or_had_label: "CITES Appendix I - Most Endangered" - listing_effective_date: "1975-07-01" + is_or_was_effective_at: "1975-07-01" listing_authority: "CITES Secretariat" species_covered: "Loxodonta africana" population_specific: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index 2a5b6fc5d5..375eb7d058 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -397,16 +397,23 @@ classes: unit_label: EUR range_description: Typical project funding range range_currency: EUR - eligible_applicant: - - Public bodies - - Research organisations - - Higher education institutions - - SMEs - - Non-profit organisations - - International organisations - eligible_country: - - EU Member States - - Horizon Europe Associated Countries + has_or_had_requirement: + - can_or_could_be_fulfilled_by: + - has_or_had_type: + has_or_had_label: "Public bodies" + - has_or_had_type: + has_or_had_label: "Research organisations" + - has_or_had_type: + has_or_had_label: "Higher education institutions" + - has_or_had_type: + has_or_had_label: "SMEs" + - has_or_had_type: + has_or_had_label: "Non-profit organisations" + - has_or_had_type: + has_or_had_label: "International organisations" + - imposes_or_imposed: + - has_or_had_label: "EU Member States" + - has_or_had_label: "Horizon Europe Associated Countries" is_or_was_categorized_as: # was: thematic_area - migrated per Rule 53 - Cultural heritage preservation - Digital heritage @@ -470,16 +477,21 @@ classes: unit_label: GBP range_description: Medium grants funding range range_currency: GBP - eligible_applicant: - - Not-for-profit organisations - - Local authorities - - Community groups - - Heritage organisations - eligible_country: - - England - - Northern Ireland - - Scotland - - Wales + has_or_had_requirement: + - can_or_could_be_fulfilled_by: + - has_or_had_type: + has_or_had_label: "Not-for-profit organisations" + - has_or_had_type: + has_or_had_label: "Local authorities" + - has_or_had_type: + has_or_had_label: "Community groups" + - has_or_had_type: + has_or_had_label: "Heritage organisations" + - imposes_or_imposed: + - has_or_had_label: "England" + - has_or_had_label: "Northern Ireland" + - has_or_had_label: "Scotland" + - has_or_had_label: "Wales" is_or_was_categorized_as: # was: thematic_area - migrated per Rule 53 - Heritage conservation - Community engagement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml index 8005cca2c6..00ceb10dc1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml @@ -28,7 +28,11 @@ imports: - ../slots/has_or_had_label - ./Label - ../slots/has_or_had_custodian_type - - ../slots/domain_context + - ../slots/has_or_had_domain + - ./Domain + - ../slots/has_or_had_type + - ./DomainType + - ./DomainTypes - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/is_or_was_equivalent_to @@ -85,7 +89,7 @@ classes: # REMOVED 2026-01-18: collection_type_name - migrated to has_or_had_label + Label (Rule 53) - has_or_had_label - has_or_had_custodian_type - - domain_context + - has_or_had_domain - record_equivalent - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -177,14 +181,24 @@ classes: - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-series description: FONDS narrower types - domain_context: - range: string + has_or_had_domain: + range: Domain + inlined: true + multivalued: true + description: | + Domain context for this collection type. + MIGRATED from domain_context string (2026-01-26). examples: - - value: ARCHIVE + - value: + domain_name: ARCHIVE + has_or_had_type: + type_name: "Heritage Domain" description: FONDS is archival domain - - value: LIBRARY + - value: + domain_name: LIBRARY description: SPECIAL_COLLECTION is library domain - - value: MUSEUM + - value: + domain_name: MUSEUM description: NAMED_COLLECTION is museum domain has_or_had_custodian_type: equals_expression: '["*"]' @@ -209,7 +223,8 @@ classes: description_type: collection_type_description record_equivalent: rico:Fonds is_or_was_equivalent_to: wikidata:Q1643722 - domain_context: ARCHIVE + has_or_had_domain: + - domain_name: ARCHIVE has_or_had_collection_narrower_type: - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-fonds @@ -224,5 +239,6 @@ classes: description_text: "A named special collection within a library, often focusing on a particular subject, format, or provenance." description_type: collection_type_description # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType] - domain_context: LIBRARY + has_or_had_domain: + - domain_name: LIBRARY description: Library special collection type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml index f767f6339a..5e090e24a9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml @@ -3,7 +3,7 @@ # REFACTORED: Now extends Activity base class (2026-01-13) # Inherits generic slots from Activity: # - has_activity_identifier, has_activity_name, has_activity_description -# - has_or_had_activity_type, has_timespan, start_date, end_date +# - has_or_had_activity_type, temporal_extent # - is_or_was_succeeded_by, preceding_activity, status, note # # Keeps curation-specific slots: @@ -45,7 +45,8 @@ imports: # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - ../slots/has_or_had_objective - ./Deliverable - - ../slots/documentation_produced + - ../slots/has_or_had_output + - ./Documentation - ../slots/funding_source - ../slots/is_recurring - ../slots/objects_added @@ -79,8 +80,7 @@ classes: - has_activity_name (required) - has_activity_description - has_or_had_activity_type → ActivityType - - has_timespan → TimeSpan - - start_date, end_date + - temporal_extent → TimeSpan - is_or_was_succeeded_by, preceding_activity - status, note @@ -178,7 +178,7 @@ classes: - has_or_had_custodian_type # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective - - documentation_produced + - has_or_had_output - funding_source - is_recurring - objects_added @@ -297,16 +297,19 @@ classes: - value: 342 description: Digitization of 342 manuscripts - documentation_produced: - range: string + has_or_had_output: + range: Documentation multivalued: true - description: Documentation created as a result of this activity. + description: >- + Documentation created as a result of this activity. + MIGRATED from documentation_produced (2026-01-26). examples: - - value: - - Inventory reconciliation report (2025-03-31) - - Location discrepancy list (15 items) - - Condition notation updates (42 records) - description: Inventory deliverables + - value: + has_or_had_label: "Inventory reconciliation report (2025-03-31)" + description: Inventory report + - value: + has_or_had_label: "Condition notation updates" + description: Condition updates # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) has_or_had_objective: @@ -428,15 +431,16 @@ classes: responsible_actor: - https://nde.nl/ontology/hc/person/maria-jansen-registrar responsible_department: Registration Department - start_date: '2025-01-15' - end_date: '2025-03-31' + temporal_extent: + begin_of_the_begin: '2025-01-15' + end_of_the_end: '2025-03-31' is_recurring: true recurrence_pattern: P1Y objects_count: 450 - documentation_produced: - - Inventory reconciliation report - - Location discrepancy list (3 items) - - Condition notation updates (28 records) + has_or_had_output: + - has_or_had_label: "Inventory reconciliation report" + - has_or_had_label: "Location discrepancy list (3 items)" + - has_or_had_label: "Condition notation updates (28 records)" funding_source: Annual operating budget status: IN_PROGRESS priority: MEDIUM @@ -455,14 +459,15 @@ classes: curated_holding: - https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds responsible_department: Digital Services - start_date: '2024-03-01' - end_date: '2025-12-31' + temporal_extent: + begin_of_the_begin: '2024-03-01' + end_of_the_end: '2025-12-31' is_recurring: false objects_count: 125000 - documentation_produced: - - Digital asset management records - - OCR quality assessment report - - IIIF manifest files + has_or_had_output: + - has_or_had_label: "Digital asset management records" + - has_or_had_label: "OCR quality assessment report" + - has_or_had_label: "IIIF manifest files" # MIGRATED 2026-01-24: deliverable → has_or_had_objective (Rule 53) has_or_had_objective: - has_or_had_label: @@ -489,14 +494,15 @@ classes: curated_holding: - https://nde.nl/ontology/hc/collection/kb-medieval-manuscripts responsible_department: Special Collections Conservation - start_date: '2025-02-01' - end_date: '2025-08-31' + temporal_extent: + begin_of_the_begin: '2025-02-01' + end_of_the_end: '2025-08-31' is_recurring: false objects_count: 342 - documentation_produced: - - Rehousing completion report - - Before/after condition photographs - - Updated location records in CMS + has_or_had_output: + - has_or_had_label: "Rehousing completion report" + - has_or_had_label: "Before/after condition photographs" + - has_or_had_label: "Updated location records in CMS" funding_source: Andrew W. Mellon Foundation Grant is_or_was_allocated_budget: EUR 95,000 # MIGRATED 2026-01-15: was budget status: PLANNED diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml index 40fb775988..02b13c16bc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml @@ -276,12 +276,14 @@ classes: examples: - value: - id: https://nde.nl/ontology/hc/articles/rm/v1 - document_title: Statuten Stichting Rijksmuseum (1885) + has_or_had_title: + has_or_had_label: Statuten Stichting Rijksmuseum (1885) has_or_had_version: 1 # was: version_number - migrated per Rule 53 is_current_version: false current_archival_stage: HERITAGE - id: https://nde.nl/ontology/hc/articles/rm/v15 - document_title: Statuten Stichting Rijksmuseum (2023) + has_or_had_title: + has_or_had_label: Statuten Stichting Rijksmuseum (2023) has_or_had_version: 15 # was: version_number - migrated per Rule 53 is_current_version: true current_archival_stage: ACTIVE diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml index e21ef79fa9..9b655197a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml @@ -22,7 +22,10 @@ imports: - ./ReconstructionActivity - ./TimeSpan - ./ReconstructedEntity - - ../slots/emic_name + - ../slots/has_or_had_label + - ./Label + - ./LabelType + - ./LabelTypes - ../slots/name_language - ../slots/standardized_name - ../slots/has_or_had_alternative_name @@ -113,7 +116,7 @@ classes: - gleif:hasOtherName slots: - has_or_had_alternative_name - - emic_name + - has_or_had_label - endorsement_source - name_authority - name_language @@ -128,9 +131,18 @@ classes: - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 slot_usage: - emic_name: - range: string - required: true + has_or_had_label: + range: Label + inlined: true + description: | + The emic name of the custodian. + MIGRATED from emic_name per Rule 53 (2026-01-26). + Use with has_or_had_type: EmicLabelType. + examples: + - value: + has_or_had_label: "Rijksmuseum" + has_or_had_type: EmicLabelType + description: Standardized emic name name_language: range: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml new file mode 100644 index 0000000000..1fba09c6c0 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/class/DOI +name: DOI +title: DOI Identifier +description: >- + Digital Object Identifier (DOI). + MIGRATED from doi slot (2026-01-26). + Subclass of Identifier. +imports: + - linkml:types + - ./Identifier + - ../slots/has_or_had_label +default_prefix: hc +classes: + DOI: + is_a: Identifier + description: Digital Object Identifier. + slot_usage: + identifier_scheme: + equals_string: "DOI" + identifier_value: + description: "The DOI string (e.g. 10.1234/5678)." + pattern: "^10\\.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml index ccb2b43aea..1a6fd9f4cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml @@ -17,6 +17,9 @@ imports: - ../slots/response_format # REMOVED 2026-01-15: ../slots/authentication_required - migrated to is_or_was_required - ../slots/is_or_was_required + # MIGRATED 2026-01-26: endpoint_url → has_or_had_url (Rule 53) + - ../slots/has_or_had_url + - ./URL - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ./SpecificityAnnotation @@ -37,6 +40,8 @@ classes: - is_or_was_required - protocol - response_format + # MIGRATED 2026-01-26: endpoint_url → has_or_had_url + - has_or_had_url - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) description: "Abstract base class for API service endpoints exposed by heritage digital platforms.\n\n**Purpose:**\n\n\ @@ -82,37 +87,23 @@ classes: Examples: - - "Nationaal Archief OAI-PMH Endpoint" - + - "Nationaal Archief OAI-PMH Endpoint" - "Heritage Search API" - - "Image Server (IIP)" - - ' range: string required: true - endpoint_url: + has_or_had_url: slot_uri: dcat:endpointURL - description: 'Base URL of the service endpoint. - - + description: >- + Base URL of the service endpoint. DCAT: dcat:endpointURL - "The root location or primary endpoint of the service" - - - This is the URL that clients use to access the service. - - - Examples: - - - "https://www.nationaalarchief.nl/onderzoeken/oai-pmh" - - - "https://api.europeana.eu/record/v2/" - - - "https://service.archief.nl/iipsrv" - - ' + MIGRATED 2026-01-26: Replaces endpoint_url slot. range: uri required: true + examples: + - value: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh" + - value: "https://api.europeana.eu/record/v2/" + - value: "https://service.archief.nl/iipsrv" endpoint_description_url: slot_uri: dcat:endpointDescription description: 'URL to machine-readable API documentation. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml index 827fd6351b..f60d1c3da6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml @@ -39,7 +39,8 @@ imports: - ./Identifier # MIGRATED 2026-01-25: department_name → has_or_had_label + Label + has_or_had_type + LabelType (Rule 53) # Already importing has_or_had_label, Label, has_or_had_type, LabelType above - - ../slots/dissolved_date + - ../slots/is_or_was_dissolved_by + - ./DissolutionEvent - ../slots/established_date - ../slots/has_or_had_manages_collection - ../slots/mandate @@ -105,7 +106,7 @@ classes: - has_or_had_identifier # MIGRATED 2026-01-25: department_name → has_or_had_label with LabelType: DepartmentNameType (Rule 53) # has_or_had_label already in slots list above - - dissolved_date + - is_or_was_dissolved_by - established_date - located_at - has_or_had_manages_collection @@ -246,8 +247,12 @@ classes: examples: - value: '1891-06-15' description: Colonial Records Dept established by Royal Decree - dissolved_date: - range: date + is_or_was_dissolved_by: + range: DissolutionEvent + inlined: true + description: >- + Dissolution event for the department. + MIGRATED from dissolved_date per slot_fixes.yaml (Rule 53, 2026-01-26). refers_to_custodian: range: Custodian required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml index abd6966573..d98f3ac1fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml @@ -31,7 +31,9 @@ imports: - ./GenerationEvent - ./ConfidenceScore - ../slots/start_time - - ../slots/end_time + # MIGRATED 2026-01-26: end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17) classes: @@ -113,7 +115,8 @@ classes: # MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by - is_or_was_generated_by - start_time - - end_time + # MIGRATED 2026-01-26: end_time → has_or_had_time_interval + - has_or_had_time_interval - has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17) slot_usage: @@ -170,12 +173,17 @@ classes: - value: "00:03:15" - value: "PT3M15S" - end_time: - range: string + has_or_had_time_interval: + range: TimeInterval required: false - description: "End timestamp for temporal detections" + inlined: true + description: >- + Duration of detection. + Replaces end_time. Use duration_value for ISO 8601 duration (e.g., PT2S). examples: - - value: "00:03:17" + - value: + duration_value: "PT0M02S" + description: "2 second duration" has_or_had_geographic_extent: # was: bounding_box - migrated per Rule 53/56 (2026-01-17) range: float @@ -218,7 +226,8 @@ classes: has_or_had_score: 0.95 has_or_had_method: "video_analysis" start_time: "00:03:15" - end_time: "00:03:17" + has_or_had_time_interval: + duration_value: "PT0M02S" description: "Video transition detection (fade in)" - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml new file mode 100644 index 0000000000..58370af5c2 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/class/DocumentType +name: DocumentType +title: Document Type Class +description: >- + Abstract base class for document types. + MIGRATED from document_type string (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description +default_prefix: hc +classes: + DocumentType: + abstract: true + description: Classification of a document. + slots: + - has_or_had_label + - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml new file mode 100644 index 0000000000..ec0953d7da --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/class/DocumentTypes +name: DocumentTypes +title: Document Types +description: >- + Concrete types of documents. + MIGRATED from document_type string (2026-01-26). +imports: + - linkml:types + - ./DocumentType +default_prefix: hc +classes: + NotarialDeed: + is_a: DocumentType + description: A formal document executed by a notary public. + + Bylaws: + is_a: DocumentType + description: Rulebook or guidelines for an organization. + + Charter: + is_a: DocumentType + description: A document granting rights or privileges. + + MemorandumOfAssociation: + is_a: DocumentType + description: Legal document setting up a company. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml new file mode 100644 index 0000000000..b6ecc61d1e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/class/Drawer +name: Drawer +title: Drawer Class +description: >- + A drawer in a storage unit (e.g. plan chest, cabinet). + MIGRATED from drawer_number (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: + - linkml:types + - ../slots/has_or_had_identifier + - ../classes/Identifier + - ./DrawerNumber +default_prefix: hc +classes: + Drawer: + class_uri: rico:PhysicalLocation + description: Storage drawer. + slots: + - has_or_had_identifier + slot_usage: + has_or_had_identifier: + range: DrawerNumber + description: "Number or identifier of the drawer." diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml new file mode 100644 index 0000000000..3af32ac0bf --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/class/DrawerNumber +name: DrawerNumber +title: Drawer Number Class +description: >- + Identifier for a drawer. + MIGRATED from drawer_number (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ +imports: + - linkml:types + - ../classes/Identifier +default_prefix: hc +classes: + DrawerNumber: + is_a: Identifier + description: Number identifying a drawer. + slot_usage: + identifier_scheme: + equals_string: "DRAWER_NUMBER" + identifier_value: + description: "The drawer number string." diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml new file mode 100644 index 0000000000..dc45a25c05 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/class/Embargo +name: Embargo +title: Embargo Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + odrl: http://www.w3.org/ns/odrl/2/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/temporal_extent + - ./TimeSpan + - ../slots/has_or_had_description + +classes: + Embargo: + class_uri: odrl:Prohibition + description: >- + A temporary restriction on access to content or resources. + + **Ontology Alignment**: + - **Primary**: `odrl:Prohibition` (Access restriction) + - **Close**: `schema:Offer` (availabilityStarts) + + slots: + - temporal_extent + - has_or_had_description + + slot_usage: + temporal_extent: + description: The period during which the embargo is active. + has_or_had_description: + description: Reason for the embargo (e.g. "Donor privacy"). + + annotations: + custodian_types: '["A", "R"]' + specificity_score: 0.6 + specificity_rationale: Common in archives and research data. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml new file mode 100644 index 0000000000..fa96f82e6b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/class/Employer +name: Employer +title: Employer Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + - ../slots/has_or_had_url + - ./URL + +classes: + Employer: + class_uri: schema:Organization + description: >- + An organization that employs or employed a person. + + **Ontology Alignment**: + - **Primary**: `schema:Organization` + - **Close**: `org:Organization` + + slots: + - has_or_had_label + - has_or_had_identifier + - has_or_had_url + + slot_usage: + has_or_had_label: + description: Name of the employer organization. + has_or_had_url: + range: URL + description: Website or profile URL (e.g. LinkedIn company page) of the employer. + + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: Generic employer class. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml new file mode 100644 index 0000000000..50788b5058 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/class/Endpoint +name: Endpoint +title: Endpoint Class +description: >- + A specific access point or download location for a digital resource. + MIGRATED from download_endpoint string (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# +imports: + - linkml:types + - ../slots/has_or_had_url + - ../classes/URL +default_prefix: hc +classes: + Endpoint: + class_uri: dcat:Distribution + description: Distribution or access point. + slots: + - has_or_had_url + slot_usage: + has_or_had_url: + range: URL + description: "URL of the endpoint." diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml new file mode 100644 index 0000000000..2978951a22 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/class/EngagementMetric +name: EngagementMetric +title: Engagement Metric Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_type + - ../slots/has_or_had_value + - ../slots/has_or_had_unit + +classes: + EngagementMetric: + class_uri: schema:InteractionCounter + description: >- + Structured representation of an engagement metric (e.g. Rate, Likes, Shares). + + **Ontology Alignment**: + - **Primary**: `schema:InteractionCounter` + + slots: + - has_or_had_type + - has_or_had_value + - has_or_had_unit + + slot_usage: + has_or_had_type: + description: Type of metric (e.g. "Engagement Rate", "Likes"). + range: string + has_or_had_value: + description: Numeric value of the metric. + range: decimal + has_or_had_unit: + description: Unit (e.g. "%", "Count"). + range: string + + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + specificity_rationale: Common digital metric. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml new file mode 100644 index 0000000000..eea819d006 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/class/EnrichmentMetadata +name: EnrichmentMetadata +title: Enrichment Metadata Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_method + - ./EnrichmentMethod + - ../slots/temporal_extent + - ./TimeSpan + +classes: + EnrichmentMetadata: + class_uri: prov:Activity + description: >- + Metadata about a data enrichment process. + + **Ontology Alignment**: + - **Primary**: `prov:Activity` (Enrichment process) + - **Close**: `schema:Action` + + slots: + - has_or_had_description + - has_or_had_method + - temporal_extent + + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + specificity_rationale: Provenance metadata. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml new file mode 100644 index 0000000000..8af89a986b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EnrichmentMethod +name: EnrichmentMethod +title: Enrichment Method Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + EnrichmentMethod: + class_uri: prov:Method + description: >- + The method used for data enrichment (e.g. "WhatsApp API Extraction", "Manual Verification"). + + **Ontology Alignment**: + - **Primary**: `prov:Method` (subclass of prov:Plan) + - **Close**: `schema:Action` (instrument) + + slots: + - has_or_had_label + - has_or_had_description + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Provenance metadata. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml index 9a6452f0a8..05697ca5f8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml @@ -17,9 +17,13 @@ imports: - ../enums/EventTypeEnum - ../slots/event_description - ../slots/event_id - - ../slots/documentation_source + - ../slots/has_or_had_documentation + - ../slots/has_or_had_url + - ./Documentation + - ./URL - ../slots/event_label - - ../slots/has_timespan + # MIGRATED 2026-01-26: has_timespan → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/hypernym_event_type - ../slots/has_or_had_involved_actor - ../slots/specificity_annotation @@ -38,7 +42,7 @@ classes: class_uri: crm:E5_Event description: "An abstract hub class representing temporal phenomena - things that happen\nand involve actors, places,\ \ and temporal extents.\n\n**HUB ARCHITECTURE**:\n\nThe Event class follows the hub pattern established by Custodian:\n\ - - Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via has_timespan\n- Links\ + - Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via temporal_extent\n- Links\ \ to actors (Custodian, Person) via involved_actors\n- Links to place via took_place_at\n- Categorized by hypernym_event_type\ \ (generic) and domain-specific type\n\n**INHERITANCE HIERARCHY**:\n\n```\nEvent (this class - abstract)\n├── OrganizationalChangeEvent\ \ (existing - organizational changes)\n├── IntangibleHeritageEvent (future - ICH-related events)\n├── CollectionEvent\ @@ -48,19 +52,19 @@ classes: \ Physical Things.\"\n\nKey relationships:\n- crm:P4_has_time-span → TimeSpan (when)\n- crm:P7_took_place_at → Place\ \ (where)\n- crm:P11_had_participant → Actor (who)\n- crm:P2_has_type → EventTypeEnum (what kind)\n\n**RELATIONSHIP\ \ TO EXISTING OrganizationalChangeEvent**:\n\nOrganizationalChangeEvent already exists and maps to crm:E5_Event.\nThis\ - \ Event class provides:\n1. Shared base properties (has_timespan, involved_actors, took_place_at)\n2. Generic event\ + \ Event class provides:\n1. Shared base properties (temporal_extent, involved_actors, took_place_at)\n2. Generic event\ \ typing (hypernym_event_type)\n3. Foundation for other event types\n\nFuture migration: OrganizationalChangeEvent can\ \ inherit from Event.\n\n**RELATIONSHIP TO ACTORS**:\n\nEvents link to actors bidirectionally:\n- Event → involved_actors\ \ → Custodian/Person (who participated)\n- Custodian → organizational_change_events → Event (what events affected org)\n\ - Person → is_or_was_affected_by_event → Event (what events affected person)\n\n**EXAMPLE - Merger Event**:\n```yaml\n\ Event:\n event_id: \"https://nde.nl/ontology/hc/event/nha-merger-2001\"\n event_label: \"Noord-Hollands Archief Merger\"\ - \n hypernym_event_type: TRANSFORMATION\n has_timespan:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end:\ + \n hypernym_event_type: TRANSFORMATION\n temporal_extent:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end:\ \ \"2001-01-01\"\n took_place_at: \"https://nde.nl/ontology/hc/place/nl-nh-haa\"\n involved_actors:\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-gah\"\ \n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-ranh\"\n event_description: |\n Merger of Gemeentearchief Haarlem\ \ (founded 1910) and\n Rijksarchief in Noord-Holland (founded 1802) to form\n Noord-Hollands Archief.\n confidence_score:\ \ 0.95\n documentation_source:\n - \"https://noord-hollandsarchief.nl/over-ons/geschiedenis\"\n```\n\n**EXAMPLE\ \ - Destruction Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/gaza-library-destruction-2024\"\ - \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n has_timespan:\n begin_of_the_begin:\ + \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n temporal_extent:\n begin_of_the_begin:\ \ \"2024-01-15\"\n end_of_the_end: \"2024-01-15\"\n took_place_at: \"https://nde.nl/ontology/hc/place/ps-gz-gaz\"\ \n event_description: |\n Gaza Public Library destroyed during military operations.\n confidence_score: 0.85\n\ ```\n" @@ -84,11 +88,12 @@ classes: - crm:E85_Joining - crm:E86_Leaving slots: - - documentation_source + - has_or_had_documentation - event_description - event_id - event_label - - has_timespan + # MIGRATED 2026-01-26: has_timespan → temporal_extent + - temporal_extent - hypernym_event_type - has_or_had_involved_actor - specificity_annotation @@ -101,8 +106,13 @@ classes: identifier: true hypernym_event_type: required: true - has_timespan: + temporal_extent: required: false + range: TimeSpan + inlined: true + description: >- + Temporal extent of the event. + Replaces has_timespan (migrated 2026-01-26). is_or_was_generated_by: range: GenerationEvent required: false @@ -119,7 +129,7 @@ classes: comments: - Event is the hub class for all temporal phenomena in the HC ontology - Domain-specific events (OrganizationalChangeEvent, CollectionEvent) can inherit from Event - - TimeSpan link (has_timespan) is critical - enables fuzzy temporal reasoning + - TimeSpan link (temporal_extent) is critical - enables fuzzy temporal reasoning - Actor links (involved_actors) connect events to both persons and organizations - hypernym_event_type provides cross-domain event queries - 'Future: Add participated_in_events slot to Custodian and Person for inverse navigation' @@ -129,7 +139,7 @@ classes: event_id: https://nde.nl/ontology/hc/event/nha-merger-2001 event_label: Noord-Hollands Archief Merger hypernym_event_type: TRANSFORMATION - has_timespan: + temporal_extent: begin_of_the_begin: '2001-01-01' end_of_the_end: '2001-01-01' has_or_had_involved_actor: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml index 56a68aa7a4..e1c72493ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml @@ -19,8 +19,8 @@ imports: - ./ExhibitionCatalog - ../enums/ExhibitionTypeEnum - ../enums/EventStatusEnum - - ../slots/start_date - - ../slots/end_date + # MIGRATED 2026-01-26: start_date/end_date/exhibition_timespan → temporal_extent (Rule 53) + - ../slots/temporal_extent # REMOVED 2026-01-15: ../slots/wikidata_id - migrated to has_or_had_identifier + WikiDataIdentifier (Rule 53) - ../slots/has_or_had_identifier - ./WikiDataIdentifier @@ -40,7 +40,8 @@ imports: - ../slots/exhibition_name - ../slots/exhibition_status - ../slots/exhibition_subtitle - - ../slots/exhibition_timespan + # MIGRATED 2026-01-26: exhibition_timespan → temporal_extent + # - ../slots/exhibition_timespan - ../slots/exhibition_url - ../slots/exhibition_venue - ../slots/has_or_had_featured_object @@ -99,7 +100,8 @@ classes: - has_or_had_organizer - curated_by - has_or_had_custodian_type - - end_date + # MIGRATED 2026-01-26: start_date/end_date/exhibition_timespan → temporal_extent + - temporal_extent - exhibition_catalog_url - has_or_had_exhibition_catalog - exhibition_description @@ -109,7 +111,7 @@ classes: - exhibition_name - exhibition_status - exhibition_subtitle - - exhibition_timespan + # - exhibition_timespan (migrated to temporal_extent) - exhibition_type - exhibition_url - exhibition_venue @@ -118,7 +120,7 @@ classes: - organized_by - has_or_had_related_exhibition - specificity_annotation - - start_date + # - start_date (migrated to temporal_extent) - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # REMOVED 2026-01-14: traveling_venue - migrated to has_or_had_venue with Venue - has_or_had_venue @@ -215,20 +217,14 @@ classes: examples: - value: Pieter Roelofs - value: Gregor J.M. Weber - start_date: - required: false - range: date - examples: - - value: '2023-02-10' - end_date: - required: false - range: date - examples: - - value: '2023-06-04' - exhibition_timespan: + temporal_extent: required: false range: TimeSpan inlined: true + description: >- + Temporal extent of the exhibition (start/end). + Replaces start_date, end_date, exhibition_timespan. + Use begin_of_the_begin for opening date, end_of_the_end for closing date. examples: - value: begin_of_the_begin: '2023-02-10T00:00:00Z' @@ -405,8 +401,9 @@ classes: curated_by: - Pieter Roelofs - Gregor J.M. Weber - start_date: '2023-02-10' - end_date: '2023-06-04' + temporal_extent: + begin_of_the_begin: '2023-02-10' + end_of_the_end: '2023-06-04' exhibition_location: - place_name: Rijksmuseum city: Amsterdam @@ -449,8 +446,9 @@ classes: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/nationaal-archief has_or_had_role: role_type: PRIMARY - start_date: '2024-05-04' - end_date: '2024-11-11' + temporal_extent: + begin_of_the_begin: '2024-05-04' + end_of_the_end: '2024-11-11' exhibition_location: - place_name: Nationaal Archief city: Den Haag diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index e9f26bd5a7..eefe83e814 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -44,7 +44,6 @@ imports: - ./URL - ../slots/contributor - ../slots/has_or_had_custodian_type - - ../slots/doi - ../slots/is_or_was_instantiated_as - ./EBook - ../slots/is_or_was_edited_by @@ -115,7 +114,6 @@ classes: - has_or_had_url - contributor - has_or_had_custodian_type - - doi - is_or_was_instantiated_as - is_or_was_edited_by - has_or_had_essay @@ -325,12 +323,7 @@ classes: pattern: ^[0-9]{4}-[0-9]{3}[0-9X]$ examples: - value: 0300-4953 - doi: - required: false - range: string - pattern: ^10\.[0-9]+/.+ - examples: - - value: 10.1234/vermeer-catalog-2023 + # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) page: required: false range: integer diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml new file mode 100644 index 0000000000..d965b9e346 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/class/ExpenseType +name: ExpenseType +title: Expense Type Class +description: >- + Abstract base class for types of expenses (e.g. Personnel, Administrative, Program). + MIGRATED from expense-specific slots (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description +default_prefix: hc +classes: + ExpenseType: + abstract: true + description: Classification of an expense. + slots: + - has_or_had_label + - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml new file mode 100644 index 0000000000..54455dddea --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/class/ExpenseTypes +name: ExpenseTypes +title: Expense Types +description: >- + Concrete types of expenses. + MIGRATED from expense-specific slots (2026-01-26). +imports: + - linkml:types + - ./ExpenseType +default_prefix: hc +classes: + PersonnelExpenses: + is_a: ExpenseType + description: Costs related to employees (salaries, benefits). + + AdministrativeExpenses: + is_a: ExpenseType + description: General management and administrative costs. + + ProgramExpenses: + is_a: ExpenseType + description: Costs directly related to program delivery. + + FundraisingExpenses: + is_a: ExpenseType + description: Costs incurred to raise funds. + + InnovationExpenses: + is_a: ExpenseType + description: Costs related to R&D and innovation. + + EmployeeBenefitsExpenses: + is_a: ExpenseType + description: Costs of employee benefits (pensions, insurance). diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index 66487af9a1..e721f7c3d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -25,7 +25,7 @@ imports: # - ../slots/change_in_net_asset # ARCHIVED 2026-01-24: migrated to specifies_or_specified + NetAsset per Rule 53/56 - ../slots/specifies_or_specified - ./NetAsset - - ../slots/documents_budget + - ../slots/documents_or_documented - ../slots/filing_id - ../slots/filing_type - ../slots/financial_archival_stage @@ -126,7 +126,7 @@ classes: - audit_status - auditor_name - specifies_or_specified # was: change_in_net_asset - migrated per Rule 53/56 (2026-01-24) - - documents_budget + - documents_or_documented - filing_id - filing_type - financial_archival_stage @@ -303,10 +303,13 @@ classes: description: Current year statement in active use - value: INACTIVE description: Prior year in retention period - documents_budget: + documents_or_documented: range: Budget multivalued: true required: false + description: | + Links this financial statement to the Budget(s) it documents/reports on. + MIGRATED from documents_budget (2026-01-26). examples: - value: https://nde.nl/ontology/hc/budget/rm/fy2023 description: Statement documents FY2023 budget @@ -399,7 +402,7 @@ classes: financial_document_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023 financial_document_format: PDF financial_archival_stage: ACTIVE - documents_budget: + documents_or_documented: - https://nde.nl/ontology/hc/budget/rm/fy2023 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 description: Major museum annual report with full audit @@ -443,7 +446,7 @@ classes: filing_type: IRS Form 990 filing_id: 13-1624102 financial_archival_stage: INACTIVE - documents_budget: + documents_or_documented: - https://nde.nl/ontology/hc/budget/met/fy2022 refers_to_custodian: https://nde.nl/ontology/hc/us-ny-nyc-m-met description: US nonprofit Form 990 filing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml new file mode 100644 index 0000000000..e9e446d0f2 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/GeographicExtent +name: GeographicExtent +title: Geographic Extent Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + GeographicExtent: + class_uri: dcterms:Location + description: >- + A geographic area defining the scope or extent (e.g., eligible countries). + + **Ontology Alignment**: + - **Primary**: `dcterms:Location` + - **Close**: `schema:Place` + + slots: + - has_or_had_label + - has_or_had_identifier + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Geographic metadata. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml index c4571a4a2a..38b0ce8d0f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml @@ -518,9 +518,9 @@ classes: has_activity_description: | Monthly evening lectures on local history topics, featuring guest speakers from academia, museums, and member experts. - has_timespan: - start_date: "2024-09-01" - end_date: "2025-06-30" + temporal_extent: + begin_of_the_begin: "2024-09-01" + end_of_the_end: "2025-06-30" status: "IN_PROGRESS" - has_activity_identifier: https://nde.nl/ontology/hc/activity/oud-leiden-walk-2025 has_activity_name: "Annual Heritage Walk" @@ -529,9 +529,9 @@ classes: has_activity_description: | Annual guided heritage walk through historic Leiden neighborhoods. Open to public, attracts 50-100 participants. - has_timespan: - start_date: "2025-05-15" - end_date: "2025-05-15" + temporal_extent: + begin_of_the_begin: "2025-05-15" + end_of_the_end: "2025-05-15" status: "PLANNED" description: Heritage society with lecture series and annual heritage walk has_or_had_scope: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml index 33e6a816a3..df98ff7251 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml @@ -44,7 +44,7 @@ imports: - ./ContentType - ./ContentTypes - ../slots/content_language - - ../slots/content_summary + - ../slots/has_or_had_summary - ../slots/copy_note - ../slots/copy_number - ../slots/cover_material @@ -52,7 +52,8 @@ imports: # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - ../slots/is_or_was_published - ./Publication - - ../slots/doi + - ../slots/has_or_had_identifier + - ./DOI # MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53) - ../slots/has_or_had_time_interval - ./TimeInterval @@ -144,15 +145,15 @@ classes: - has_or_had_carrier # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) - has_or_had_content - - content_language - - content_summary + - has_or_had_language + - has_or_had_summary - copy_note - copy_number - cover_material - has_or_had_custodian_type # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - is_or_was_published - - doi + - has_or_had_identifier # MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53) - has_or_had_time_interval - has_or_had_edition @@ -475,12 +476,7 @@ classes: examples: - value: 0028-0836 description: Nature - doi: - required: false - range: string - pattern: ^10\..+/.+$ - examples: - - value: 10.1000/xyz123 + # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) oclc_number: required: false range: string @@ -495,11 +491,12 @@ classes: inlined: true description: | Identifiers for this information carrier. - MIGRATED from call_number (2026-01-17) and wikidata_id (2026-01-15) per Rule 53. + MIGRATED from call_number (2026-01-17), wikidata_id (2026-01-15), and doi (2026-01-26) per Rule 53. Includes: - Library call numbers (bf:shelfMark) - e.g., BS75.A1 1455, Inc. 1 - Wikidata IDs (Q-numbers) - e.g., Q178401 + - DOIs - e.g., 10.1000/xyz123 - Local collection identifiers - Other external identifiers @@ -507,6 +504,7 @@ classes: - LIBRARY_OF_CONGRESS, DEWEY_DECIMAL for classification call numbers - LOCAL_COLLECTION for institutional identifiers - WIKIDATA for Q-numbers + - DOI for Digital Object Identifiers examples: - value: identifier_value: BS75.A1 1455 @@ -520,6 +518,10 @@ classes: identifier_value: Q178401 identifier_scheme: WIKIDATA description: Wikidata identifier for Gutenberg Bible + - value: + identifier_value: 10.1000/xyz123 + identifier_scheme: DOI + description: Digital Object Identifier shelf_mark: required: false range: string @@ -597,7 +599,7 @@ classes: multivalued: true examples: - value: The Holy Bible (English parallel title) - content_summary: + has_or_had_summary: required: false range: string examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml index 8cec286cdb..844f4cc5be 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml @@ -41,3 +41,10 @@ classes: is_a: LabelType class_uri: hc:DisplayNameType description: Label type for public-facing display names. + + EmicLabelType: + is_a: LabelType + class_uri: hc:EmicLabelType + description: >- + Emic (insider) name used by the community or entity itself. + MIGRATED from emic_name slot (Rule 53). diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml index c32fae282c..c1434a703e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml @@ -33,9 +33,11 @@ imports: # - ../slots/digital_indicator # REMOVED - ../slots/digital_professional - ../slots/education - - ../slots/enriched_date - - ../slots/enrichment_metadata_whatsapp - - ../slots/enrichment_method_whatsapp + - ../slots/temporal_extent # was: enriched_date - migrated per Rule 53 (2026-01-26) + - ../slots/has_or_had_metadata + - ./EnrichmentMetadata + - ../slots/has_or_had_method + - ./EnrichmentMethod - ../slots/experience - ../slots/extraction_metadata - ../slots/headline diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml index 17486da89e..cb380955e0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml @@ -24,9 +24,8 @@ imports: - linkml:types - ../metadata - ./TimeSpan - - ../slots/has_timespan - - ../slots/start_date - - ../slots/end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/status - ../slots/note - ../slots/specificity_annotation @@ -100,9 +99,8 @@ classes: - member_organization_url - membership_type - membership_role - - has_timespan - - start_date - - end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent + - temporal_extent - status - note - specificity_annotation @@ -162,6 +160,27 @@ classes: - value: "BOARD_MEMBER" description: "Governance role" + temporal_extent: + range: TimeSpan + required: false + inlined: true + description: >- + Temporal extent of the membership. + Replaces has_timespan, start_date, end_date. + Use begin_of_the_begin for start, end_of_the_end for end. + + status: + range: string + required: false + description: Role within the member organization. + examples: + - value: "FULL_MEMBER" + description: "Full institutional membership" + - value: "ASSOCIATE_MEMBER" + description: "Associate/affiliate membership" + - value: "BOARD_MEMBER" + description: "Governance role" + slot_usage: has_timespan: range: TimeSpan @@ -216,7 +235,8 @@ classes: member_organization_url: https://icom.museum/ membership_type: "PROFESSIONAL_ASSOCIATION" membership_role: "FULL_MEMBER" - start_date: "1946-01-01" + temporal_extent: + begin_of_the_begin: "1946-01-01" status: "ACTIVE" description: "Rijksmuseum ICOM membership" @@ -226,6 +246,7 @@ classes: member_organization_url: https://www.oclc.org/ membership_type: "CONSORTIUM" membership_role: "MEMBER_LIBRARY" - start_date: "1980-01-01" + temporal_extent: + begin_of_the_begin: "1980-01-01" status: "ACTIVE" description: "Koninklijke Bibliotheek OCLC membership" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml index 859e036db0..61832e76f4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml @@ -26,7 +26,10 @@ imports: - ../slots/has_or_had_associated_custodian # was: parent_custodian - migrated per Rule 53 (2025-01-15) - ../slots/change_rationale - ../slots/staff_impact - - ../slots/documentation_source + - ../slots/has_or_had_documentation + - ../slots/has_or_had_url + - ./Documentation + - ./URL - ../slots/temporal_extent # was: valid_from + valid_to - migrated per Rule 53 - ./TimeSpan # REMOVED 2026-01-14: valid_from + valid_to - migrated to temporal_extent (Rule 53) @@ -134,7 +137,7 @@ classes: - has_or_had_affected_territory - has_or_had_affected_unit - change_rationale - - documentation_source + - has_or_had_documentation - event_date - event_description - event_location @@ -261,10 +264,18 @@ classes: longitude: 4.8 geometry_type: MULTIPOLYGON description: Territories affected by Noord-Hollands Archief merger (2001) - documentation_source: - range: uri + has_or_had_documentation: + range: Documentation + inlined: true + multivalued: true + description: | + Documentation sources for this organizational change event. + MIGRATED from documentation_source (2026-01-26). examples: - - value: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 + - value: + has_or_had_url: + url_value: "https://www.rijksmuseum.nl/en/about-us/annual-report-2013" + description: Annual report URL as source temporal_extent: # was: valid_from + valid_to - migrated per Rule 53 description: | Validity period using CIDOC-CRM TimeSpan. @@ -312,7 +323,9 @@ classes: change_rationale: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities. staff_impact: 28 FTE (12+16), all staff retained, 5 new positions - documentation_source: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.rijksmuseum.nl/en/about-us/annual-report-2013" valid_from: '2013-04-01' description: Rijksmuseum departmental merger during renovation - value: @@ -330,7 +343,9 @@ classes: change_rationale: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise. staff_impact: 15 FTE, all new hires with digital archiving expertise - documentation_source: https://www.nationaalarchief.nl/onderzoeken/archief/2.24.17.07 + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.nationaalarchief.nl/onderzoeken/archief/2.24.17.07" valid_from: '2008-01-01' description: National Archives digital department creation - value: @@ -376,6 +391,8 @@ classes: temporal_extent: # was: valid_from_geo begin_of_the_begin: '2025-06-01' staff_impact: All 45 FTE relocating to new facility. No redundancies. - documentation_source: https://www.amsterdam.nl/nieuws/museum-verhuizing-2025 + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.amsterdam.nl/nieuws/museum-verhuizing-2025" valid_from: '2025-06-01' description: Museum relocation with full location tracking diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml index f02ef07869..1c72f9916a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml @@ -24,8 +24,8 @@ imports: - ../slots/policy_id - ../slots/policy_name - ../slots/policy_description - - ../slots/policy_effective_from - - ../slots/policy_effective_to + - ../slots/is_or_was_effective_at + - ../slots/is_or_was_expired_at - ../slots/note classes: @@ -70,8 +70,8 @@ classes: - policy_id - policy_name - policy_description - - policy_effective_from - - policy_effective_to + - is_or_was_effective_at + - is_or_was_expired_at - note slot_usage: @@ -83,10 +83,18 @@ classes: description: Human-readable name for the policy. policy_description: description: Detailed description of the policy's scope and requirements. - policy_effective_from: - description: Date when this policy became/becomes effective. - policy_effective_to: - description: Date when this policy expired/expires. + is_or_was_effective_at: + description: | + Date when this policy became/becomes effective. + MIGRATED from policy_effective_from (2026-01-26). + range: date + required: false + is_or_was_expired_at: + description: | + Date when this policy expired/expires. + MIGRATED from policy_effective_to (2026-01-26). + range: date + required: false note: description: Additional notes about the policy. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml index 65b0362bcb..ccf2e715a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml @@ -26,7 +26,9 @@ imports: - ../slots/has_or_had_objective - ./Deliverable - ../slots/documentation_url - - ../slots/end_date + # MIGRATED 2026-01-26: start_date/end_date → temporal_extent + TimeSpan (Rule 53) + - ../slots/temporal_extent + - ./TimeSpan - ../slots/funding_amount - ../slots/funding_call - ../slots/funding_source @@ -36,7 +38,6 @@ imports: - ../slots/participating_custodian - ../slots/related_project - ../slots/specificity_annotation - - ../slots/start_date - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (replaced project_* slots 2026-01-16) - ../slots/has_or_had_identifier @@ -97,7 +98,8 @@ classes: # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective - documentation_url - - end_date + # MIGRATED 2026-01-26: start_date/end_date → temporal_extent + - temporal_extent - funding_amount - funding_call - funding_source @@ -107,7 +109,6 @@ classes: - participating_custodian - related_project - specificity_annotation - - start_date - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (migrated 2026-01-16 per Rule 53) - has_or_had_identifier # was: project_id, project_identifier @@ -176,16 +177,18 @@ classes: examples: - value: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ description: NDE Versnellen project page - start_date: - range: date + temporal_extent: + range: TimeSpan + inlined: true + description: >- + Time period for the project. + Replaces start_date/end_date with generic temporal_extent. + Use begin_of_the_begin for start, end_of_the_end for end. examples: - - value: '2024-01-01' - description: Project started January 2024 - end_date: - range: date - examples: - - value: '2024-12-31' - description: Project ends December 2024 + - value: + begin_of_the_begin: '2024-01-01' + end_of_the_end: '2024-12-31' + description: Project duration 2024 funding_source: range: string multivalued: true @@ -320,8 +323,9 @@ classes: \ for image interoperability\n- Sustainable API development\n- Metadata quality improvement\n" has_or_had_status: IN_PROGRESS has_or_had_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ - start_date: '2024-01-15' - end_date: '2024-12-31' + temporal_extent: + begin_of_the_begin: '2024-01-15' + end_of_the_end: '2024-12-31' funding_source: - Ministry of OCW (Netherlands) - NDE member contributions @@ -374,8 +378,9 @@ classes: \ works with national aggregators to improve metadata \nquality and implement the Europeana Data Model (EDM).\n" has_or_had_status: IN_PROGRESS has_or_had_url: https://pro.europeana.eu/project/europeana-common-culture - start_date: '2023-06-01' - end_date: '2025-05-31' + temporal_extent: + begin_of_the_begin: '2023-06-01' + end_of_the_end: '2025-05-31' funding_source: - Horizon Europe (European Commission) funding_amount: 4.2M EUR diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml index 26f80d5d30..4e0e5a11ba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml @@ -33,8 +33,10 @@ imports: # REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53) - ../slots/is_or_was_associated_with - ./ArtDealer - - ../slots/documentation - - ../slots/documentation_url + - ../slots/has_or_had_reference + - ../slots/has_or_had_url + - ./Reference + - ./URL - ../slots/event_date_text - ../slots/event_note - ../slots/event_timespan @@ -92,8 +94,8 @@ classes: - has_or_had_custodian_type # REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53) - is_or_was_associated_with - - documentation - - documentation_url + - has_or_had_reference + - has_or_had_url - event_date - event_date_text - event_id @@ -299,21 +301,38 @@ classes: has_or_had_name: has_or_had_label: "Goupil & Cie" description: French art dealing firm - documentation: + has_or_had_reference: + description: | + Bibliographic or archival reference documenting this event. + MIGRATED from documentation per slot_fixes.yaml (Rule 53, 2026-01-26). required: false - range: string + range: Reference + inlined: true multivalued: true examples: - - value: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 - - value: Hofstede de Groot, vol. 1, no. 44 - - value: Braamcamp sale, Amsterdam, July 31, 1771, lot 54 - documentation_url: + - value: + has_or_had_label: "Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36" + description: Sale catalogue reference + - value: + has_or_had_label: "Hofstede de Groot, vol. 1, no. 44" + description: Catalogue raisonné reference + has_or_had_url: + description: | + URL to online documentation or provenance record. + MIGRATED from documentation_url per slot_fixes.yaml (Rule 53, 2026-01-26). required: false - range: uri + range: URL + inlined: true multivalued: true examples: - - value: https://rkd.nl/explore/provenance/12345 - - value: https://www.getty.edu/research/provenance/sales + - value: + url_value: "https://rkd.nl/explore/provenance/12345" + url_type: "provenance_record" + description: RKD provenance record + - value: + url_value: "https://www.getty.edu/research/provenance/sales" + url_type: "sales_database" + description: Getty Sales Catalogues has_or_had_level: # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18) description: | Certainty/confidence level for this provenance event. @@ -442,8 +461,8 @@ classes: has_or_had_note: - note_type: certainty note_content: "Van Ruijven was Vermeer's patron; likely acquired directly from artist" - documentation: - - Montias, Vermeer and His Milieu (1989), pp. 247-252 + has_or_had_reference: + - has_or_had_label: "Montias, Vermeer and His Milieu (1989), pp. 247-252" has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) has_or_had_description: - description_text: "Possibly Pieter van Ruijven, Delft (c. 1665-1674)" @@ -470,8 +489,8 @@ classes: price_text: Unknown has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) level_value: CERTAIN - documentation: - - Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 + has_or_had_reference: + - has_or_had_label: "Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36" footnote: - Catalogued as 'Een Tronij in Antique Klederen, ongemeen konstig' (A Tronie in Antique Dress, uncommonly artful) has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) @@ -519,9 +538,9 @@ classes: changes_or_changed_ownership_to: https://nde.nl/ontology/hc/custodian/nl/mauritshuis # was: to_owner - migrated per Rule 56 (2026-01-16) has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) level_value: CERTAIN - documentation: - - Will of A.A. des Tombe - - Mauritshuis accession records + has_or_had_reference: + - has_or_had_label: "Will of A.A. des Tombe" + - has_or_had_label: "Mauritshuis accession records" has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) has_or_had_description: - description_text: "Bequeathed to Mauritshuis, 1903" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml index e32f799c90..aa94528342 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml @@ -21,9 +21,10 @@ imports: - ../slots/has_or_had_associated_auxiliary_platform - ../slots/has_or_had_associated_digital_platform - ../slots/cover_image_url - - ../slots/created_date - - ../slots/engagement_rate - - ../slots/follower_count + - ../slots/is_or_was_categorized_as + - ../slots/has_or_had_engagement_metric + - ./EngagementMetric + - ../slots/average_likes - ../slots/following_count - ../slots/is_primary_digital_presence - ../slots/metrics_observed_date @@ -123,7 +124,7 @@ classes: - has_or_had_associated_digital_platform - cover_image_url - created_date - - engagement_rate + - has_or_had_engagement_metric - follower_count - following_count - is_primary_digital_presence @@ -238,12 +239,19 @@ classes: examples: - value: 2500 description: 2,500 posts - engagement_rate: - range: float - required: false + has_or_had_engagement_metric: + range: EngagementMetric + inlined: true + multivalued: true + description: >- + Metrics tracking engagement (rates, counts). + MIGRATED from engagement_rate per Rule 53 (2026-01-26). examples: - - value: 2.5 - description: 2.5% engagement rate + - value: + has_or_had_type: "Engagement Rate" + has_or_had_value: 2.5 + has_or_had_unit: "%" + description: Average engagement rate metrics_observed_date: range: datetime required: false @@ -349,7 +357,10 @@ classes: status: VERIFIED follower_count: 1200000 post_count: 3500 - engagement_rate: 2.5 + has_or_had_engagement_metric: + - has_or_had_type: "Engagement Rate" + has_or_had_value: 2.5 + has_or_had_unit: "%" metrics_observed_date: '2025-11-29T12:00:00Z' associated_digital_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website account_status: ACTIVE diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index ce9b468aff..f1f52654a2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -36,7 +36,9 @@ imports: - ./BoxNumber - ./UnitIdentifier # Added for unit_id/unit_identifier migration (2026-01-14) - ../slots/current_item_count - - ../slots/drawer_number + - ../slots/has_or_had_drawer + - ./Drawer + - ./DrawerNumber - ../slots/part_of_storage - ../slots/part_of_zone - ../slots/row_number @@ -106,7 +108,7 @@ classes: # REMOVED 2026-01-17: capacity_item - migrated to has_or_had_capacity (Rule 53) # - capacity_item - current_item_count - - drawer_number + - has_or_had_drawer - part_of_storage - part_of_zone - row_number @@ -190,10 +192,18 @@ classes: examples: - value: 4 description: Fourth shelf from bottom - drawer_number: - range: integer + has_or_had_drawer: + range: Drawer + multivalued: true + inlined: true + description: | + Drawer within the storage unit. + MIGRATED from drawer_number (2026-01-26). examples: - - value: 3 + - value: + has_or_had_identifier: + identifier_value: "3" + description: Drawer 3 # DEPRECATED - use has_or_had_identifier with range BoxNumber # box_number: # range: integer @@ -276,7 +286,9 @@ classes: - description_text: 'Flat file drawer containing oversized maps of the Netherlands, 1850-1920. Climate-controlled environment.' description_type: unit language: en - drawer_number: 42 + has_or_had_drawer: + - has_or_had_identifier: + identifier_value: "42" has_or_had_capacity: # was: capacity_items - migrated per Rule 53 - capacity_value: 50 capacity_type: ITEM_COUNT diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml new file mode 100644 index 0000000000..ebbe2d7ec9 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/class/URLType +name: URLType +title: URL Type Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + URLType: + class_uri: skos:Concept + abstract: true + description: >- + Abstract base class for URL type classification (e.g. LinkedIn Profile, Official Website). + + **Ontology Alignment**: + - **Primary**: `skos:Concept` + + slots: + - has_or_had_label + - has_or_had_identifier diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml new file mode 100644 index 0000000000..5300180f16 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/class/URLTypes +name: URLTypes +title: URL Types Classes +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + - ./URLType + +classes: + LinkedInProfileURLType: + is_a: URLType + description: URL pointing to a LinkedIn profile (person or company). + + OfficialWebsiteType: + is_a: URLType + description: Official website of an entity. + + SocialMediaURLType: + is_a: URLType + description: URL for a social media profile (general). diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml index df6d87835b..82324c8e8b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml @@ -3,8 +3,9 @@ name: video_time_segment_class title: Video Time Segment Class imports: - linkml:types - - ../slots/end_seconds - - ../slots/end_time + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/segment_index - ../slots/segment_text - ../slots/speaker_id @@ -149,8 +150,8 @@ classes: related_mappings: - schema:Clip slots: - - end_seconds - - end_time + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval + - has_or_had_time_interval - segment_index - segment_text - speaker_id @@ -170,13 +171,17 @@ classes: description: 30 seconds from video start - value: PT1H15M30S description: 1 hour 15 minutes 30 seconds - end_time: - range: string - required: false - pattern: ^PT(\d+H)?(\d+M)?(\d+(\.\d+)?S)?$ + has_or_had_time_interval: + range: TimeInterval + required: true + inlined: true + description: >- + Duration of the segment (replaces end_time/end_seconds). + Use duration_value for ISO 8601 duration (e.g., PT5S). examples: - - value: PT0M35S - description: 35 seconds from video start + - value: + duration_value: PT0M05S + description: 5 second duration start_seconds: range: float required: true @@ -186,13 +191,6 @@ classes: description: 30 seconds from start - value: 30.5 description: 30.5 seconds (millisecond precision) - end_seconds: - range: float - required: true - minimum_value: 0.0 - examples: - - value: 35.0 - description: 35 seconds from start segment_text: range: string required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml index d5293dbedb..dc31ab3736 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml @@ -34,7 +34,8 @@ imports: # REMOVED 2026-01-22: ../slots/dataset_title - migrated to has_or_had_title + Title (Rule 53) - ../slots/has_or_had_title - ./Title - - ../slots/download_endpoint + - ../slots/can_or_could_be_retrieved_from + - ./Endpoint - ../slots/has_availability_timespan - ../slots/has_or_had_linked_data_endpoint - ../slots/has_or_had_open_access_endpoint @@ -1225,7 +1226,7 @@ classes: - `sparql_endpoint`: LinkedDataHub providing semantic access - - `download_endpoint`: OpenAccessRepository providing bulk access + - `download_endpoint`: OpenAccessRepository providing bulk access (MIGRATED to `can_or_could_be_retrieved_from`) ' class_uri: dcat:Dataset @@ -1234,7 +1235,7 @@ classes: - has_or_had_description # was: dataset_description - migrated per Rule 53 (2026-01-22) - has_or_had_identifier # was: dataset_identifier - migrated per Rule 53 (2026-01-22) - has_or_had_title # was: dataset_title - migrated per Rule 53 (2026-01-22) - - download_endpoint + - can_or_could_be_retrieved_from - linked_data_access - is_or_was_published_by # was: published_by - migrated per Rule 53/56 (2026-01-17) - specificity_annotation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml index 158b54ab78..794c47b220 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml @@ -16,7 +16,9 @@ prefixes: imports: - linkml:types - + # MIGRATED 2026-01-26: start_time/end_time → temporal_extent (Rule 53) + - ../slots/temporal_extent + - ./TimeSpan default_range: string @@ -40,6 +42,8 @@ classes: related_mappings: - schema:Event - prov:Entity + slots: + - temporal_extent attributes: inception: range: string @@ -53,9 +57,18 @@ classes: date_of_official_opening: range: string description: Date of official opening (P1619) - start_time: - range: string - description: Start time (P580) - when activity began - end_time: - range: string - description: End time (P582) - when activity ended + # start_time/end_time migrated to temporal_extent + # start_time: + # range: string + # description: Start time (P580) - when activity began + # end_time: + # range: string + # description: End time (P582) - when activity ended + slot_usage: + temporal_extent: + range: TimeSpan + inlined: true + description: >- + Activity time span (P580/P582). + Replaces start_time/end_time. + Use begin_of_the_begin for P580, end_of_the_end for P582. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml index 040e524afa..721d82c503 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml @@ -13,12 +13,13 @@ prefixes: imports: - linkml:types - ../metadata - - TimeSpan - - ../slots/employer_linkedin_url - - ../slots/employer_name - - ../slots/employment_dates_raw - - ../slots/employment_end_date - - ../slots/employment_start_date + - ./TimeSpan + - ../slots/is_or_was_employed_by + - ./Employer + - ../slots/temporal_extent + - ./URL + - ./URLType + - ./URLTypes - ../slots/heritage_employer - ../slots/is_current_position - ../slots/job_description @@ -80,11 +81,8 @@ classes: - schema:EmployeeRole - prov:Association slots: - - employer_linkedin_url - - employer_name - - employment_dates_raw - - employment_end_date - - employment_start_date + - is_or_was_employed_by + - temporal_extent - heritage_employer - is_current_position - job_description @@ -102,42 +100,38 @@ classes: description: Dutch job title - value: Senior Curator, Asian Art description: Curatorial role with specialization - employer_name: - range: string + is_or_was_employed_by: + range: Employer + inlined: true required: true + description: | + The employer organization. + MIGRATED from employer_name/employer_linkedin_url per Rule 53 (2026-01-26). examples: - - value: The Dutch Inspectorate of Education - description: Full organization name - - value: Rijksmuseum - description: Heritage institution employer - employer_linkedin_url: - range: uri - pattern: ^https://www\.linkedin\.com/company/[a-z0-9-]+/?$ + - value: + has_or_had_label: "Rijksmuseum" + has_or_had_url: + has_or_had_url: "https://www.linkedin.com/company/rijksmuseum" + has_or_had_type: LinkedInProfileURLType + description: Heritage employer with LinkedIn URL + temporal_extent: + range: TimeSpan + inlined: true + description: | + Duration of employment. + MIGRATED from employment_dates_raw, employment_start_date, employment_end_date per Rule 53 (2026-01-26). + Use begin_of_the_begin for start date, end_of_the_end for end date. + Use has_or_had_verbatim_value for raw date string. examples: - - value: https://www.linkedin.com/company/rijksmuseum - employment_dates_raw: - range: string - examples: - - value: Apr 2025 - Present - description: Current position with start month - - value: Aug 2017 - Apr 2025 - description: Completed position with month precision - - value: 2015 - 2020 - description: Year-only precision - employment_start_date: - range: date - examples: - - value: 2025-04 - description: April 2025 start - - value: '2017' - description: Year-only precision - employment_end_date: - range: date - examples: - - value: 2025-04 - description: Ended April 2025 - - value: null - description: Current position (ongoing) + - value: + begin_of_the_begin: "2017-08" + end_of_the_end: "2025-04" + has_or_had_verbatim_value: "Aug 2017 - Apr 2025" + description: Completed position with dates + - value: + begin_of_the_begin: "2025-04" + has_or_had_verbatim_value: "Apr 2025 - Present" + description: Current position is_current_position: range: boolean ifabsent: 'false' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/archive/DualClassLink_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml rename to frontend/public/schemas/20251121/linkml/modules/classes/archive/DualClassLink_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contact_email.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/contact_email_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/contact_email.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/contact_email_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/content_language.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/content_language_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/content_language.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/content_language_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/content_summary.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/content_summary_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/content_summary.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/content_summary_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/dissolution_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/dissolution_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/dissolution_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/dissolution_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/dissolved_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/dissolved_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/dissolved_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/dissolved_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/document_description.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/document_description_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/document_description.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/document_description_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/document_title.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/document_title_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/document_title.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/document_title_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/document_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/document_type_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/document_type.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/document_type_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documentation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documentation.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documentation_produced.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_produced_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documentation_produced.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_produced_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documentation_source.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_source_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documentation_source.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_source_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documentation_url.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_url_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documentation_url.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documentation_url_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documented_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documented_by_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documented_by.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documented_by_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documents_budget.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/documents_budget_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/documents_budget.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/documents_budget_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/doi.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/doi_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/doi.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/doi_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/domain_context.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/domain_context_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/domain_context.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/domain_context_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/download_endpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/download_endpoint_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/download_endpoint.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/download_endpoint_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/drawer_number.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/drawer_number_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/drawer_number.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/drawer_number_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/dual_class_link.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/dual_class_link_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/dual_class_link.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/dual_class_link_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/dual_class_role.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/dual_class_role_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/dual_class_role.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/dual_class_role_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/eligible_applicant.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/eligible_applicant_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/eligible_applicant.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/eligible_applicant_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/eligible_country.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/eligible_country_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/eligible_country.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/eligible_country_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/embargo_end_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/embargo_end_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/embargo_end_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/embargo_end_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/embargo_reason.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/embargo_reason_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/embargo_reason.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/embargo_reason_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/emic_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/emic_name_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/emic_name.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/emic_name_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/employer_linkedin_url.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/employer_linkedin_url_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/employer_linkedin_url.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/employer_linkedin_url_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/employer_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/employer_name_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/employer_name.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/employer_name_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/employment_dates_raw.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_dates_raw_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/employment_dates_raw.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_dates_raw_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/employment_end_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_end_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/employment_end_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_end_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/employment_start_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_start_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/employment_start_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/employment_start_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/end_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/end_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/end_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/end_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/end_seconds.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/end_seconds_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/end_seconds.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/end_seconds_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/end_time.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/end_time_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/end_time.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/end_time_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/ended_at_time.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/ended_at_time_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/ended_at_time.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/ended_at_time_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/endowment_draw.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/endowment_draw_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/endowment_draw.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/endowment_draw_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/engagement_rate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/engagement_rate_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/engagement_rate.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/engagement_rate_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/enriched_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/enriched_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/enriched_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/enriched_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/enrichment_metadata_whatsapp.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/enrichment_metadata_whatsapp_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/enrichment_metadata_whatsapp.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/enrichment_metadata_whatsapp_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/enrichment_method_whatsapp.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/enrichment_method_whatsapp_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/enrichment_method_whatsapp.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/enrichment_method_whatsapp_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/exhibition_timespan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/exhibition_timespan_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/exhibition_timespan.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/exhibition_timespan_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_timespan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/has_timespan_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/has_timespan.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/has_timespan_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/policy_effective_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_effective_from_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/policy_effective_from.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_effective_from_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/policy_effective_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_effective_to_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/policy_effective_to.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/policy_effective_to_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/start_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/start_date_archived_20260126.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/start_date.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/start_date_archived_20260126.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml new file mode 100644 index 0000000000..a736ed618c --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml @@ -0,0 +1,12 @@ +name: can_or_could_be_fulfilled_by +description: >- + Relates a requirement or condition to the entity (e.g. Applicant) that fulfills it. + + MIGRATED from `eligible_applicant` (via ApplicantRequirement). +slot_uri: schema:eligibleCustomerType +range: Any +multivalued: true +exact_mappings: + - schema:eligibleCustomerType +close_mappings: + - schema:participant diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml new file mode 100644 index 0000000000..ce4b5fcab0 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/can_or_could_be_retrieved_from +name: can_or_could_be_retrieved_from_slot +title: Can Or Could Be Retrieved From Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# +imports: + - linkml:types +default_prefix: hc +slots: + can_or_could_be_retrieved_from: + description: >- + Endpoint or location where a resource can be retrieved. + MIGRATED from download_endpoint (2026-01-26). + range: Endpoint + multivalued: true + inlined: true + slot_uri: dcat:accessURL + close_mappings: + - schema:downloadUrl + annotations: + rico_naming_convention: | + Follows RiC-O "canOrCould" pattern for capability predicates. + custodian_types: '["*"]' + specificity_score: 0.4 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml new file mode 100644 index 0000000000..b3de6d4967 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/documents_or_documented +name: documents_or_documented_slot +title: Documents Or Documented Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# +imports: + - linkml:types +default_prefix: hc +slots: + documents_or_documented: + description: >- + Links a document (e.g. FinancialStatement) to the entity it documents (e.g. Budget). + MIGRATED from documents_budget (2026-01-26). + range: uriorcurie + multivalued: true + inlined: false + slot_uri: schema:about + close_mappings: + - prov:hadPrimarySource + annotations: + rico_naming_convention: | + Follows RiC-O naming pattern (active voice). + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml new file mode 100644 index 0000000000..ada8c88dcf --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_contributor +name: has_or_had_contributor_slot +title: Has Or Had Contributor Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_contributor: + description: >- + Contributor to a creative work or resource. + MIGRATED from contributor (2026-01-26). + range: string + multivalued: true + inlined: false + slot_uri: dcterms:contributor + close_mappings: + - schema:contributor + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml new file mode 100644 index 0000000000..21d0e27132 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_drawer +name: has_or_had_drawer_slot +title: Has Or Had Drawer Slot +prefixes: + 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: + has_or_had_drawer: + description: >- + Drawer within a storage unit. + MIGRATED from drawer_number (2026-01-26). + range: Drawer + multivalued: true + inlined: true + slot_uri: rico:hasOrHadPhysicalLocation + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.8 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml new file mode 100644 index 0000000000..45ddee5b3e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_email +name: has_or_had_email_slot +title: Has Or Had Email Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_email: + description: >- + Email address associated with an entity. + MIGRATED from contact_email, admin_email, and email_address (2026-01-26). + range: EmailAddress + multivalued: true + inlined: true + slot_uri: schema:email + close_mappings: + - foaf:mbox + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.2 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml new file mode 100644 index 0000000000..a5327b9ee4 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml @@ -0,0 +1,12 @@ +name: has_or_had_endowment_draw +description: >- + Amount drawn from an endowment fund for operating or capital expenses. + + MIGRATED from `endowment_draw` slot. +slot_uri: frapo:hasFunding +range: decimal +multivalued: false +exact_mappings: + - frapo:hasFunding +close_mappings: + - schema:amount diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml new file mode 100644 index 0000000000..05c159b37a --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml @@ -0,0 +1,13 @@ +name: has_or_had_engagement_metric +description: >- + A specific metric tracking engagement with content or a profile. + + MIGRATED from `engagement_rate` (and other metrics). + Uses EngagementMetric class for structured data (value + type). +slot_uri: schema:interactionStatistic +range: Any +multivalued: true +exact_mappings: + - schema:interactionStatistic +close_mappings: + - schema:userInteractionCount diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml index 3afaa48b6f..2b456097bf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml @@ -3,6 +3,7 @@ name: has_or_had_language_slot title: Languages Slot # Updated 2026-01-22: Extended to support both LanguageProficiency and Language classes # Enables migration of language-specific text slots (fr, de, en, nl) per slot_fixes.yaml +# Updated 2026-01-26: Updated description to include content_language migration prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -22,10 +23,13 @@ slots: - Use LanguageProficiency class with language_name, code, and level 2. **Language-Tagged Text**: When storing multilingual text content - Use Language class with iso_639_1, language_name, and text_content + 3. **Content Language**: Language of the resource content (migrated from content_language) + - Use Language class **Migration Support**: - This slot replaces language-specific text slots (fr, de, en, nl) with a - unified pattern per slot_fixes.yaml revisions: + This slot replaces language-specific text slots (fr, de, en, nl) and content_language + with a unified pattern per slot_fixes.yaml revisions: + - `content_language` → has_or_had_language with Language - `fr` (French text) → has_or_had_language with Language(iso_639_1="fr") - `de` (German text) → has_or_had_language with Language(iso_639_1="de") - `en` (English text) → has_or_had_language with Language(iso_639_1="en") diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml new file mode 100644 index 0000000000..864ddb3e54 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml @@ -0,0 +1,12 @@ +name: has_or_had_metadata +description: >- + Relates an entity to its metadata (e.g. EnrichmentMetadata). + + MIGRATED from `enrichment_metadata_whatsapp`. +slot_uri: schema:about +range: Any +multivalued: true +exact_mappings: + - schema:about +close_mappings: + - prov:wasGeneratedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml index ab87cb82e8..8e72aba30c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml @@ -22,19 +22,25 @@ slots: has_or_had_method: slot_uri: schema:httpMethod description: | - A method associated with an entity, particularly HTTP methods. + A method associated with an activity, process, or entity. **USAGE**: Used for: - - HTTP methods (GET, POST, PUT, DELETE) + - HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod + - Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod - API interaction methods - - Processing methods - range: HTTPMethod + **BROADENED RANGE**: + Range broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55. + + range: Any multivalued: true exact_mappings: - schema:httpMethod + - prov:used + close_mappings: + - schema:instrument examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml new file mode 100644 index 0000000000..b0d2b47074 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_summary +name: has_or_had_summary_slot +title: Has Or Had Summary Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_summary: + description: >- + Summary or abstract of content. + MIGRATED from content_summary (2026-01-26). + range: string + multivalued: true + inlined: false + slot_uri: schema:abstract + close_mappings: + - dcterms:abstract + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.2 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml index 703b7baa09..b419d58c1c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml @@ -28,11 +28,13 @@ slots: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary + - Durations of media content **USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue + - Media duration: Length of video/audio content range: TimeInterval slot_uri: time:hasDuration @@ -65,6 +67,12 @@ slots: duration_value: "P1Y" duration_description: "annual reporting period" description: Annual time interval for revenue reporting. + + - value: | + has_or_had_time_interval: + duration_value: "PT10M" + duration_description: "10 minutes" + description: Video duration. comments: - Created from slot_fixes.yaml migration (2026-01-14) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml new file mode 100644 index 0000000000..46e935361a --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml @@ -0,0 +1,13 @@ +name: imposes_or_imposed +description: >- + Relates an entity (like a Requirement or Policy) to a constraint or condition it imposes + (e.g., GeographicExtent, Embargo). + + MIGRATED from `eligible_country` (via ApplicantRequirement) and `embargo_*` slots. +slot_uri: odrl:constraint +range: Any +multivalued: true +exact_mappings: + - odrl:constraint +close_mappings: + - schema:constraint diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml index 2785f6e72f..895a189378 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml @@ -46,7 +46,7 @@ slots: **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). Replaces boolean cms_detected with structured CMS reference. - range: string + range: uriorcurie # Broadened range to uriorcurie per Rule 55 (2026-01-26) to allow class ranges. multivalued: true inlined_as_list: true exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml new file mode 100644 index 0000000000..e01e1ec348 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml @@ -0,0 +1,13 @@ +name: is_or_was_employed_by +description: >- + Relates a person or position to their employer. + + MIGRATED from `employer_name`, `employer_linkedin_url` (via Employer class). +slot_uri: schema:worksFor +range: Employer +multivalued: false +exact_mappings: + - schema:worksFor + - org:memberOf +close_mappings: + - prov:actedOnBehalfOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml new file mode 100644 index 0000000000..ef9cb2afda --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_expired_at +name: is_or_was_expired_at_slot +title: Is Or Was Expired At Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + is_or_was_expired_at: + description: >- + The date or timestamp when a policy, status, or entity expired or ceased to be effective. + + MIGRATED from `policy_effective_to` per Rule 53. + Follows RiC-O temporal naming convention. + slot_uri: schema:expires + range: Any + multivalued: false + exact_mappings: + - schema:expires + - rico:hasEndDate + close_mappings: + - prov:endedAtTime 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 2e2df0e450..698281e623 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -13440,6 +13440,24 @@ fixes: type: slot - label: TimeSpan type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: dissolution_date → is_or_was_dissolved_by + DissolutionEvent (Rule 53) + + **Pattern**: Replaced dissolution_date date slot with structured DissolutionEvent class containing temporal_extent. + + **Files Created**: + - is_or_was_dissolved_by.yaml + - DissolutionEvent.yaml + + **Files Modified**: + - EncompassingBody.yaml + - CustodianLegalStatus.yaml + + **Archived**: modules/slots/archive/dissolution_date_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/dissolve_count revision: - label: has_or_had_quantity @@ -13484,12 +13502,39 @@ fixes: type: slot - label: Description type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: document_description → has_or_had_description + Description (Rule 53) + + **Pattern**: Replaced document_description string slot with structured Description class accessed via has_or_had_description. + + **Files Modified**: + - ArticlesOfAssociation.yaml + + **Archived**: modules/slots/archive/document_description_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/document_title revision: - label: has_or_had_title type: slot - label: Title type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: document_title → has_or_had_title + Title (Rule 53) + + **Pattern**: Replaced document_title string slot with structured Title class accessed via has_or_had_title. + + **Files Modified**: + - ArticlesOfAssociation.yaml + - CustodianLegalStatus.yaml + + **Archived**: modules/slots/archive/document_title_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/document_type revision: - label: has_or_had_type @@ -13500,18 +13545,61 @@ fixes: type: slot - label: DocumentTypes type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: document_type → has_or_had_type + DocumentType (Rule 53) + + **Pattern**: Replaced document_type string slot with structured DocumentType class hierarchy. + + **Files Created**: + - DocumentType.yaml + - DocumentTypes.yaml + + **Files Modified**: + - ArticlesOfAssociation.yaml + + **Archived**: modules/slots/archive/document_type_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation revision: - label: has_or_had_reference type: slot - label: Reference type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation → has_or_had_reference + Reference (Rule 53) + + **Pattern**: Replaced documentation string slot with Reference class. + + **Files Modified**: + - ProvenanceEvent.yaml + + **Archived**: modules/slots/archive/documentation_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_produced revision: - label: has_or_had_output type: slot - label: Documentation type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_produced → has_or_had_output + Documentation (Rule 53) + + **Pattern**: Replaced documentation_produced string slot with Documentation class accessed via has_or_had_output. + + **Files Modified**: + - CurationActivity.yaml + + **Archived**: modules/slots/archive/documentation_produced_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_source revision: - label: has_or_had_documentation @@ -13530,6 +13618,22 @@ fixes: - label: Reference type: class link_branch: 2 + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_source → has_or_had_documentation + Documentation (Rule 53) + + **Pattern**: Replaced documentation_source with Documentation class, supporting URLs and references. + + **Files Modified**: + - Event.yaml + - OrganizationalChangeEvent.yaml + - Conflict.yaml + - ConflictStatus.yaml + + **Archived**: modules/slots/archive/documentation_source_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_url revision: - label: has_or_had_documentation @@ -13540,24 +13644,84 @@ fixes: type: slot - label: URL type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_url → has_or_had_documentation + Documentation + has_or_had_url + URL (Rule 53) + + **Pattern**: Replaced documentation_url with Documentation class (or Reference/URL depending on context). + + **Files Modified**: + - ProvenanceEvent.yaml: Used has_or_had_url directly as more appropriate for simple URL links. + + **Archived**: modules/slots/archive/documentation_url_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documented_by revision: - label: is_or_was_based_on type: slot - label: FinancialStatement type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documented_by → documented_by + FinancialStatement (Rule 53) + + **Pattern**: Replaced documented_by uriorcurie slot with structured relationship to FinancialStatement. + NOTE: Kept slot name 'documented_by' as it's the inverse of 'documents', rather than 'is_or_was_based_on' which implies derivation. + Budget is the plan, FinancialStatement is the documentation/actuals. + + **Files Modified**: + - Budget.yaml + + **Archived**: modules/slots/archive/documented_by_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documents_budget revision: - label: documents_or_documented type: slot - label: Budget type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documents_budget → documents_or_documented + Budget (Rule 53) + + **Pattern**: Replaced documents_budget uriorcurie slot with generic documents_or_documented slot pointing to Budget. + + **Files Created**: + - documents_or_documented.yaml + + **Files Modified**: + - FinancialStatement.yaml + + **Archived**: modules/slots/archive/documents_budget_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/doi revision: - label: has_or_had_identifier type: slot - label: DOI type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: doi → has_or_had_identifier + DOI (Rule 53) + + **Pattern**: Replaced doi string slot with structured DOI identifier class. + + **Files Created**: + - DOI.yaml + + **Files Modified**: + - InformationCarrier.yaml + + **Archived**: modules/slots/archive/doi_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/domain_context revision: - label: has_or_had_domain @@ -13572,6 +13736,19 @@ fixes: type: slot - label: DomainTypes type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: domain_context → has_or_had_domain + Domain (Rule 53) + + **Pattern**: Replaced domain_context string slot with Domain class. + + **Files Modified**: + - CollectionType.yaml + + **Archived**: modules/slots/archive/domain_context_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/download_endpoint revision: - label: can_or_could_be_retrieved_from @@ -13582,6 +13759,23 @@ fixes: type: slot - label: URL type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: download_endpoint → can_or_could_be_retrieved_from + Endpoint (Rule 53) + + **Pattern**: Replaced download_endpoint string slot with Endpoint class accessed via can_or_could_be_retrieved_from. + + **Files Created**: + - can_or_could_be_retrieved_from.yaml + - Endpoint.yaml + + **Files Modified**: + - WebPortalTypes.yaml + + **Archived**: modules/slots/archive/download_endpoint_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/drawer_number revision: - label: has_or_had_drawer @@ -13598,8 +13792,31 @@ fixes: type: slot - label: Entity type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: dual_class_link + dual_class_role → REMOVED (Rule 53) + + **Action**: Removed bespoke DualClassLink constructs entirely as they are not needed in a proper LinkML model. + + **Files Archived**: + - dual_class_link.yaml + - DualClassLink.yaml + - dual_class_role.yaml + + **Note**: These slots were used for an experimental linking pattern that is superseded by direct class relationships. - original_slot_id: https://nde.nl/ontology/hc/slot/dual_class_role note: impossible to express without hypergraphs... this is a comment about a triple...remove, also remove DualClassLink + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: dual_class_role → REMOVED (Rule 53) + + See dual_class_link migration notes. - original_slot_id: https://nde.nl/ontology/hc/slot/duration revision: - label: has_or_had_time_interval @@ -13888,6 +14105,9 @@ fixes: - label: ApplicantTypes type: class note: OrganisationApplicant is included here. + processed: + status: true + notes: "Migrated to has_or_had_requirement + ApplicantRequirement + can_or_could_be_fulfilled_by (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/eligible_country revision: - label: has_or_had_requirement @@ -13906,6 +14126,9 @@ fixes: - label: Applicant type: class link_branch: 2 + processed: + status: true + notes: "Migrated to has_or_had_requirement + ApplicantRequirement + imposes_or_imposed (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/embargo_end_date revision: - label: imposes_or_imposed @@ -13920,6 +14143,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to imposes_or_imposed + Embargo + temporal_extent (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/embargo_reason revision: - label: imposes_or_imposed @@ -13930,6 +14156,9 @@ fixes: type: slot - label: Rationale type: class + processed: + status: true + notes: "Migrated to imposes_or_imposed + Embargo + has_or_had_description (Rule 53) (2026-01-26). Used generic description for rationale." - original_slot_id: https://nde.nl/ontology/hc/slot/emic_name revision: - label: has_or_had_label @@ -13945,6 +14174,9 @@ fixes: - label: LabelTypes type: class note: EmicLabel is included as a class + processed: + status: true + notes: "Migrated to has_or_had_label + EmicLabelType (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employer_linkedin_url revision: - label: is_or_was_employed_by @@ -13964,6 +14196,9 @@ fixes: - label: URLTypes type: class note: LinkedInProfileURL is included as a class + processed: + status: true + notes: "Migrated to is_or_was_employed_by + Employer + has_or_had_url (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employer_name revision: - label: is_or_was_employed_by @@ -13974,6 +14209,9 @@ fixes: type: slot - label: Label type: class + processed: + status: true + notes: "Migrated to is_or_was_employed_by + Employer + has_or_had_label (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_dates_raw revision: - label: temporal_extent @@ -13988,6 +14226,9 @@ fixes: type: slot - label: RawTimeSpan type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan + has_or_had_verbatim_value (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_end_date revision: - label: temporal_extent @@ -13998,6 +14239,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_start_date revision: - label: temporal_extent @@ -14008,6 +14252,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/en revision: - label: has_or_had_language @@ -14026,6 +14273,11 @@ fixes: - label: Timestamp type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_date + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: end_date replaced with temporal_extent (TimeSpan) in Project, Exhibition, Membership, Activity, CurationActivity. Slot archived.' revision: - label: temporal_extent type: slot @@ -14036,6 +14288,11 @@ fixes: - label: Timestamp type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_seconds + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: VideoTimeSegment, DetectedEntity, AudioEventSegment - end_seconds replaced with has_or_had_time_interval (TimeInterval). Slot archived.' revision: - label: has_or_had_time_interval type: slot @@ -14050,6 +14307,11 @@ fixes: - label: Seconds type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_time + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: VideoTimeSegment, DetectedEntity, AudioEventSegment - end_time replaced with has_or_had_time_interval (TimeInterval) for duration. WikidataTemporal replaced with temporal_extent (TimeSpan). Slot archived.' revision: - label: has_or_had_time_interval type: slot @@ -14094,6 +14356,13 @@ fixes: - label: Unit type: class value: draw + processed: + status: true + notes: "Migrated to has_or_had_endowment_draw slot (Rule 53) (2026-01-26). Used specialized slot instead of deep nesting for budget clarity." + feedback: + done: true + user: "Antigravity (Agent)" + comment: "Used has_or_had_endowment_draw slot directly on Budget class to avoid excessive nesting for simple monetary value." - original_slot_id: https://nde.nl/ontology/hc/slot/ends_or_ended_at_location revision: - label: has_or_had_destination @@ -14102,28 +14371,40 @@ fixes: type: class - original_slot_id: https://nde.nl/ontology/hc/slot/engagement_rate revision: - - label: has_or_had_level + - label: has_or_had_engagement_metric type: slot - - label: EngagementRate + - label: EngagementMetric type: class + processed: + status: true + notes: "Migrated to has_or_had_engagement_metric + EngagementMetric (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enriched_date revision: - label: temporal_extent type: slot - label: TimeSpan type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enrichment_metadata_whatsapp revision: - label: has_or_had_metadata type: slot - label: EnrichmentMetadata type: class + processed: + status: true + notes: "Migrated to has_or_had_metadata + EnrichmentMetadata (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enrichment_method_whatsapp revision: - label: has_or_had_method type: slot - label: EnrichmentMethod type: class + processed: + status: true + notes: "Migrated to has_or_had_method + EnrichmentMethod (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/entity_types_covered revision: - label: provides_or_provided @@ -14631,6 +14912,11 @@ fixes: - label: LabelTypes type: class - original_slot_id: https://nde.nl/ontology/hc/slot/exhibition_timespan + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: Exhibition - exhibition_timespan replaced with temporal_extent. Slot archived.' revision: - label: temporal_extent type: slot @@ -18209,6 +18495,11 @@ fixes: - label: SupervisedHandling type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_timespan + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: Activity, Membership, Event - has_timespan replaced with temporal_extent. Slot archived.' revision: - label: temporal_extent type: slot diff --git a/frontend/src/components/uml/UMLVisualization.tsx b/frontend/src/components/uml/UMLVisualization.tsx index 2bbe3029f9..78ed1e9f31 100644 --- a/frontend/src/components/uml/UMLVisualization.tsx +++ b/frontend/src/components/uml/UMLVisualization.tsx @@ -204,6 +204,8 @@ export interface UMLDiagram { nodes: UMLNode[]; links: UMLLink[]; title?: string; + /** Map of node ID to list of related node IDs to highlight when selected */ + relatedNodes?: Map; } export type DagreDirection = 'TB' | 'BT' | 'LR' | 'RL'; @@ -2513,6 +2515,15 @@ const UMLVisualizationInner: React.FC = ({ // Also dim nodes that are not connected to the focused node // First, find all connected node IDs const connectedNodeIds = new Set([focusedNodeId]); + + // Add explicitly related nodes from diagram (e.g. for Slot UML view) + if (diagram.relatedNodes && diagram.relatedNodes.has(focusedNodeId)) { + const related = diagram.relatedNodes.get(focusedNodeId); + // Debug highlighting + // console.log(`[UML] Highlighting related nodes for ${focusedNodeId}:`, related); + related?.forEach(id => connectedNodeIds.add(id)); + } + linkGroups.each(function(d: any) { const sourceId = typeof d.source === 'string' ? d.source : d.source?.id; const targetId = typeof d.target === 'string' ? d.target : d.target?.id; diff --git a/frontend/src/lib/linkml/linkml-schema-service.ts b/frontend/src/lib/linkml/linkml-schema-service.ts index 0fc70219f6..a72d3a510c 100644 --- a/frontend/src/lib/linkml/linkml-schema-service.ts +++ b/frontend/src/lib/linkml/linkml-schema-service.ts @@ -281,6 +281,8 @@ export interface SlotImportInfo { name: string; isClass: boolean; isEnum: boolean; + /** True if the range is a primitive type (string, integer, etc.) */ + isPrimitive?: boolean; }; /** Any_of types if the slot has union types */ @@ -288,6 +290,8 @@ export interface SlotImportInfo { name: string; isClass: boolean; isEnum: boolean; + /** True if the type is a primitive type */ + isPrimitive?: boolean; }>; } @@ -1640,13 +1644,12 @@ class LinkMLSchemaService { const isClass = this.classSchemas.has(slotDef.range); const isEnum = this.enumSchemas.has(slotDef.range); - if (isClass || isEnum) { - importInfo.rangeType = { - name: slotDef.range, - isClass, - isEnum, - }; - } + importInfo.rangeType = { + name: slotDef.range, + isClass, + isEnum, + isPrimitive: !isClass && !isEnum + }; } // Check any_of types (union types) @@ -1658,13 +1661,12 @@ class LinkMLSchemaService { const isClass = this.classSchemas.has(item.range); const isEnum = this.enumSchemas.has(item.range); - if (isClass || isEnum) { - importInfo.anyOfTypes.push({ - name: item.range, - isClass, - isEnum, - }); - } + importInfo.anyOfTypes.push({ + name: item.range, + isClass, + isEnum, + isPrimitive: !isClass && !isEnum + }); } } } diff --git a/frontend/src/pages/EntityReviewPage.css b/frontend/src/pages/EntityReviewPage.css index 334e702bb2..7c99d600af 100644 --- a/frontend/src/pages/EntityReviewPage.css +++ b/frontend/src/pages/EntityReviewPage.css @@ -2566,6 +2566,8 @@ text-decoration: none; font-size: 0.8125rem; font-weight: 500; + max-width: 100%; + word-break: break-all; } .source-url-link:hover { diff --git a/frontend/src/pages/LinkMLViewerPage.tsx b/frontend/src/pages/LinkMLViewerPage.tsx index d305a18ec4..07bfaa367d 100644 --- a/frontend/src/pages/LinkMLViewerPage.tsx +++ b/frontend/src/pages/LinkMLViewerPage.tsx @@ -864,11 +864,21 @@ const buildFilteredUMLDiagram = ( const buildSlotUMLDiagram = ( slotName: string, slotExportInfo: SlotExportInfo, - slotImportInfo: SlotImportInfo + slotImportInfo: SlotImportInfo, + showPrimitives: boolean = true ): UMLDiagram => { const nodes: UMLNode[] = []; const links: UMLLink[] = []; const addedNodes = new Set(); + const relatedNodes = new Map(); + + // Helper to add a relation between two nodes for highlighting + const addRelation = (id1: string, id2: string) => { + if (!relatedNodes.has(id1)) relatedNodes.set(id1, []); + if (!relatedNodes.has(id2)) relatedNodes.set(id2, []); + if (!relatedNodes.get(id1)!.includes(id2)) relatedNodes.get(id1)!.push(id2); + if (!relatedNodes.get(id2)!.includes(id1)) relatedNodes.get(id2)!.push(id1); + }; // Track slot_usage overrides per class to add as node attributes const classOverrides = new Map>(); @@ -879,7 +889,7 @@ const buildSlotUMLDiagram = ( // Helper to add a node if not already added const addNode = ( name: string, - type: 'class' | 'enum' | 'slot' = 'class', + type: 'class' | 'enum' | 'slot' | 'entity' = 'class', attributes: Array<{ name: string; type: string }> = [] ) => { if (!addedNodes.has(name)) { @@ -887,7 +897,7 @@ const buildSlotUMLDiagram = ( nodes.push({ id: name, name: name, - type: type, + type: type as any, attributes: attributes, methods: [], }); @@ -897,32 +907,53 @@ const buildSlotUMLDiagram = ( // Add the central slot node (the predicate) addNode(slotName, 'slot'); + // Track the default range ID (for subjects without overrides) + let defaultRangeId: string | undefined; + // OBJECTS (right side): Add range types - what the slot points to if (slotImportInfo.rangeType) { const rangeType = slotImportInfo.rangeType; - const nodeType = rangeType.isEnum ? 'enum' : 'class'; - addNode(rangeType.name, nodeType); - // Link from slot to range type (predicate → object) - links.push({ - source: slotName, - target: rangeType.name, - type: 'aggregation', - label: '→ object', - }); + // Only include if it's not a primitive OR if showing primitives is enabled + if (!rangeType.isPrimitive || showPrimitives) { + let nodeType: 'class' | 'enum' | 'entity' = 'class'; + if (rangeType.isEnum) nodeType = 'enum'; + else if (rangeType.isPrimitive) nodeType = 'entity'; // Use entity (purple) for primitives + + addNode(rangeType.name, nodeType); + + // Link from slot to range type (predicate → object) + links.push({ + source: slotName, + target: rangeType.name, + type: 'aggregation', + label: '→ object', + }); + + addRelation(slotName, rangeType.name); + defaultRangeId = rangeType.name; + } } // Add any_of types (union types) - also objects for (const anyOfType of slotImportInfo.anyOfTypes) { - const nodeType = anyOfType.isEnum ? 'enum' : 'class'; - addNode(anyOfType.name, nodeType); - - links.push({ - source: slotName, - target: anyOfType.name, - type: 'aggregation', - label: '→ object (any_of)', - }); + // Only include if it's not a primitive OR if showing primitives is enabled + if (!anyOfType.isPrimitive || showPrimitives) { + let nodeType: 'class' | 'enum' | 'entity' = 'class'; + if (anyOfType.isEnum) nodeType = 'enum'; + else if (anyOfType.isPrimitive) nodeType = 'entity'; + + addNode(anyOfType.name, nodeType); + + links.push({ + source: slotName, + target: anyOfType.name, + type: 'aggregation', + label: '→ object (any_of)', + }); + + addRelation(slotName, anyOfType.name); + } } // SUBJECTS (left side): Add classes that declare this slot @@ -954,6 +985,21 @@ const buildSlotUMLDiagram = ( type: 'association', label: 'subject →', }); + + addRelation(className, slotName); + + // Link Subject <-> Range + let targetRange = defaultRangeId; + if (overrides) { + const rangeOverride = overrides.find(o => o.property === 'range'); + if (rangeOverride && rangeOverride.value) { + targetRange = rangeOverride.value; + } + } + + if (targetRange) { + addRelation(className, targetRange); + } } // Add classes that ONLY have slot_usage (don't declare directly) @@ -983,12 +1029,28 @@ const buildSlotUMLDiagram = ( type: 'association', label: 'subject (via slot_usage) →', }); + + addRelation(className, slotName); + + // Link Subject <-> Range + let targetRange = defaultRangeId; + if (overrides) { + const rangeOverride = overrides.find(o => o.property === 'range'); + if (rangeOverride && rangeOverride.value) { + targetRange = rangeOverride.value; + } + } + + if (targetRange) { + addRelation(className, targetRange); + } } return { nodes, links, title: `${slotName} - Triple Structure`, + relatedNodes, }; }; @@ -1053,6 +1115,7 @@ const TEXT = { // UML diagram direction toggles umlShowImports: { nl: 'Imports tonen', en: 'Show Imports' }, umlShowExports: { nl: 'Exports tonen', en: 'Show Exports' }, + umlShowPrimitives: { nl: 'Primitieven tonen', en: 'Show Primitives' }, umlImportsTooltip: { nl: 'Toon afhankelijkheden (ouderklasse, mixins, slot ranges)', en: 'Show dependencies (parent class, mixins, slot ranges)' }, umlExportsTooltip: { nl: 'Toon verwijzingen naar deze klasse (subklassen, mixin-gebruikers)', en: 'Show references to this class (subclasses, mixin users)' }, umlNoRelationshipsShown: { @@ -1285,6 +1348,9 @@ const LinkMLViewerPage: React.FC = () => { const [umlShowImports, setUmlShowImports] = useState>({}); const [umlShowExports, setUmlShowExports] = useState>({}); + // State for showing primitives in Slot UML diagrams (default: true) + const [umlShowPrimitives, setUmlShowPrimitives] = useState>({}); + // State for UML layout type per class const [umlLayoutType, setUmlLayoutType] = useState>({}); const [umlDagreDirection, setUmlDagreDirection] = useState>({}); @@ -3546,20 +3612,31 @@ const LinkMLViewerPage: React.FC = () => { } {expandedSlotUML.has(slot.name) && slotExports[slot.name] && slotImports[slot.name] && ( -
- +
+ +
+
+ { title="Drag to resize" />
+ )} {expandedSlotUML.has(slot.name) && (!slotExports[slot.name] || !slotImports[slot.name]) && !loadingSlotExports.has(slot.name) && !loadingSlotImports.has(slot.name) && ( diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 91f1cec3a4..e7c7f6bc5f 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-01-26T08:03:23.695Z", + "generated": "2026-01-26T16:32:24.488Z", "schemaRoot": "/schemas/20251121/linkml", - "totalFiles": 3040, + "totalFiles": 3027, "categoryCounts": { "main": 4, - "class": 1052, + "class": 1070, "enum": 153, - "slot": 1827, + "slot": 1796, "module": 4 }, "categories": [ @@ -190,6 +190,21 @@ "path": "modules/classes/Appellation.yaml", "category": "class" }, + { + "name": "Applicant", + "path": "modules/classes/Applicant.yaml", + "category": "class" + }, + { + "name": "ApplicantRequirement", + "path": "modules/classes/ApplicantRequirement.yaml", + "category": "class" + }, + { + "name": "ApplicantType", + "path": "modules/classes/ApplicantType.yaml", + "category": "class" + }, { "name": "Appointment", "path": "modules/classes/Appointment.yaml", @@ -1735,6 +1750,21 @@ "path": "modules/classes/DocumentationCentre.yaml", "category": "class" }, + { + "name": "DocumentType", + "path": "modules/classes/DocumentType.yaml", + "category": "class" + }, + { + "name": "DocumentTypes", + "path": "modules/classes/DocumentTypes.yaml", + "category": "class" + }, + { + "name": "DOI", + "path": "modules/classes/DOI.yaml", + "category": "class" + }, { "name": "Domain", "path": "modules/classes/Domain.yaml", @@ -1756,8 +1786,13 @@ "category": "class" }, { - "name": "DualClassLink", - "path": "modules/classes/DualClassLink.yaml", + "name": "Drawer", + "path": "modules/classes/Drawer.yaml", + "category": "class" + }, + { + "name": "DrawerNumber", + "path": "modules/classes/DrawerNumber.yaml", "category": "class" }, { @@ -1845,6 +1880,16 @@ "path": "modules/classes/EmailAddress.yaml", "category": "class" }, + { + "name": "Embargo", + "path": "modules/classes/Embargo.yaml", + "category": "class" + }, + { + "name": "Employer", + "path": "modules/classes/Employer.yaml", + "category": "class" + }, { "name": "EncompassingBody", "path": "modules/classes/EncompassingBody.yaml", @@ -1855,6 +1900,26 @@ "path": "modules/classes/EncompassingBodyTypes.yaml", "category": "class" }, + { + "name": "Endpoint", + "path": "modules/classes/Endpoint.yaml", + "category": "class" + }, + { + "name": "EngagementMetric", + "path": "modules/classes/EngagementMetric.yaml", + "category": "class" + }, + { + "name": "EnrichmentMetadata", + "path": "modules/classes/EnrichmentMetadata.yaml", + "category": "class" + }, + { + "name": "EnrichmentMethod", + "path": "modules/classes/EnrichmentMethod.yaml", + "category": "class" + }, { "name": "EnrichmentProvenance", "path": "modules/classes/EnrichmentProvenance.yaml", @@ -1925,6 +1990,16 @@ "path": "modules/classes/Expenses.yaml", "category": "class" }, + { + "name": "ExpenseType", + "path": "modules/classes/ExpenseType.yaml", + "category": "class" + }, + { + "name": "ExpenseTypes", + "path": "modules/classes/ExpenseTypes.yaml", + "category": "class" + }, { "name": "ExternalWork", "path": "modules/classes/ExternalWork.yaml", @@ -2115,6 +2190,11 @@ "path": "modules/classes/GenerationEvent.yaml", "category": "class" }, + { + "name": "GeographicExtent", + "path": "modules/classes/GeographicExtent.yaml", + "category": "class" + }, { "name": "GeoSpatialPlace", "path": "modules/classes/GeoSpatialPlace.yaml", @@ -4810,6 +4890,16 @@ "path": "modules/classes/URL.yaml", "category": "class" }, + { + "name": "URLType", + "path": "modules/classes/URLType.yaml", + "category": "class" + }, + { + "name": "URLTypes", + "path": "modules/classes/URLTypes.yaml", + "category": "class" + }, { "name": "UserCommunity", "path": "modules/classes/UserCommunity.yaml", @@ -6137,6 +6227,16 @@ "path": "modules/slots/begin_of_the_end.yaml", "category": "slot" }, + { + "name": "can_or_could_be_fulfilled_by", + "path": "modules/slots/can_or_could_be_fulfilled_by.yaml", + "category": "slot" + }, + { + "name": "can_or_could_be_retrieved_from", + "path": "modules/slots/can_or_could_be_retrieved_from.yaml", + "category": "slot" + }, { "name": "cessation_observed_in", "path": "modules/slots/cessation_observed_in.yaml", @@ -6367,11 +6467,6 @@ "path": "modules/slots/contact.yaml", "category": "slot" }, - { - "name": "contact_email", - "path": "modules/slots/contact_email.yaml", - "category": "slot" - }, { "name": "contact_point", "path": "modules/slots/contact_point.yaml", @@ -6432,21 +6527,11 @@ "path": "modules/slots/content_id.yaml", "category": "slot" }, - { - "name": "content_language", - "path": "modules/slots/content_language.yaml", - "category": "slot" - }, { "name": "content_origin", "path": "modules/slots/content_origin.yaml", "category": "slot" }, - { - "name": "content_summary", - "path": "modules/slots/content_summary.yaml", - "category": "slot" - }, { "name": "content_title", "path": "modules/slots/content_title.yaml", @@ -6823,88 +6908,8 @@ "category": "slot" }, { - "name": "dissolution_date", - "path": "modules/slots/dissolution_date.yaml", - "category": "slot" - }, - { - "name": "dissolved_date", - "path": "modules/slots/dissolved_date.yaml", - "category": "slot" - }, - { - "name": "document_description", - "path": "modules/slots/document_description.yaml", - "category": "slot" - }, - { - "name": "document_title", - "path": "modules/slots/document_title.yaml", - "category": "slot" - }, - { - "name": "document_type", - "path": "modules/slots/document_type.yaml", - "category": "slot" - }, - { - "name": "documentation", - "path": "modules/slots/documentation.yaml", - "category": "slot" - }, - { - "name": "documentation_produced", - "path": "modules/slots/documentation_produced.yaml", - "category": "slot" - }, - { - "name": "documentation_source", - "path": "modules/slots/documentation_source.yaml", - "category": "slot" - }, - { - "name": "documentation_url", - "path": "modules/slots/documentation_url.yaml", - "category": "slot" - }, - { - "name": "documented_by", - "path": "modules/slots/documented_by.yaml", - "category": "slot" - }, - { - "name": "documents_budget", - "path": "modules/slots/documents_budget.yaml", - "category": "slot" - }, - { - "name": "doi", - "path": "modules/slots/doi.yaml", - "category": "slot" - }, - { - "name": "domain_context", - "path": "modules/slots/domain_context.yaml", - "category": "slot" - }, - { - "name": "download_endpoint", - "path": "modules/slots/download_endpoint.yaml", - "category": "slot" - }, - { - "name": "drawer_number", - "path": "modules/slots/drawer_number.yaml", - "category": "slot" - }, - { - "name": "dual_class_link", - "path": "modules/slots/dual_class_link.yaml", - "category": "slot" - }, - { - "name": "dual_class_role", - "path": "modules/slots/dual_class_role.yaml", + "name": "documents_or_documented", + "path": "modules/slots/documents_or_documented.yaml", "category": "slot" }, { @@ -6912,61 +6917,11 @@ "path": "modules/slots/dutch_context.yaml", "category": "slot" }, - { - "name": "eligible_applicant", - "path": "modules/slots/eligible_applicant.yaml", - "category": "slot" - }, - { - "name": "eligible_country", - "path": "modules/slots/eligible_country.yaml", - "category": "slot" - }, - { - "name": "embargo_end_date", - "path": "modules/slots/embargo_end_date.yaml", - "category": "slot" - }, - { - "name": "embargo_reason", - "path": "modules/slots/embargo_reason.yaml", - "category": "slot" - }, - { - "name": "emic_name", - "path": "modules/slots/emic_name.yaml", - "category": "slot" - }, { "name": "emphasizes_or_emphasized", "path": "modules/slots/emphasizes_or_emphasized.yaml", "category": "slot" }, - { - "name": "employer_linkedin_url", - "path": "modules/slots/employer_linkedin_url.yaml", - "category": "slot" - }, - { - "name": "employer_name", - "path": "modules/slots/employer_name.yaml", - "category": "slot" - }, - { - "name": "employment_dates_raw", - "path": "modules/slots/employment_dates_raw.yaml", - "category": "slot" - }, - { - "name": "employment_end_date", - "path": "modules/slots/employment_end_date.yaml", - "category": "slot" - }, - { - "name": "employment_start_date", - "path": "modules/slots/employment_start_date.yaml", - "category": "slot" - }, { "name": "en", "path": "modules/slots/en.yaml", @@ -6982,11 +6937,6 @@ "path": "modules/slots/end.yaml", "category": "slot" }, - { - "name": "end_date", - "path": "modules/slots/end_date.yaml", - "category": "slot" - }, { "name": "end_of_the_begin", "path": "modules/slots/end_of_the_begin.yaml", @@ -6997,56 +6947,16 @@ "path": "modules/slots/end_of_the_end.yaml", "category": "slot" }, - { - "name": "end_seconds", - "path": "modules/slots/end_seconds.yaml", - "category": "slot" - }, - { - "name": "end_time", - "path": "modules/slots/end_time.yaml", - "category": "slot" - }, - { - "name": "ended_at_time", - "path": "modules/slots/ended_at_time.yaml", - "category": "slot" - }, { "name": "endorsement_source", "path": "modules/slots/endorsement_source.yaml", "category": "slot" }, - { - "name": "endowment_draw", - "path": "modules/slots/endowment_draw.yaml", - "category": "slot" - }, { "name": "ends_or_ended_at_location", "path": "modules/slots/ends_or_ended_at_location.yaml", "category": "slot" }, - { - "name": "engagement_rate", - "path": "modules/slots/engagement_rate.yaml", - "category": "slot" - }, - { - "name": "enriched_date", - "path": "modules/slots/enriched_date.yaml", - "category": "slot" - }, - { - "name": "enrichment_metadata_whatsapp", - "path": "modules/slots/enrichment_metadata_whatsapp.yaml", - "category": "slot" - }, - { - "name": "enrichment_method_whatsapp", - "path": "modules/slots/enrichment_method_whatsapp.yaml", - "category": "slot" - }, { "name": "entity_types_covered", "path": "modules/slots/entity_types_covered.yaml", @@ -7347,11 +7257,6 @@ "path": "modules/slots/exhibition_subtitle.yaml", "category": "slot" }, - { - "name": "exhibition_timespan", - "path": "modules/slots/exhibition_timespan.yaml", - "category": "slot" - }, { "name": "exhibition_type", "path": "modules/slots/exhibition_type.yaml", @@ -9017,6 +8922,11 @@ "path": "modules/slots/has_or_had_content.yaml", "category": "slot" }, + { + "name": "has_or_had_contributor", + "path": "modules/slots/has_or_had_contributor.yaml", + "category": "slot" + }, { "name": "has_or_had_conversion_rate", "path": "modules/slots/has_or_had_conversion_rate.yaml", @@ -9142,11 +9052,31 @@ "path": "modules/slots/has_or_had_domain.yaml", "category": "slot" }, + { + "name": "has_or_had_drawer", + "path": "modules/slots/has_or_had_drawer.yaml", + "category": "slot" + }, { "name": "has_or_had_edition", "path": "modules/slots/has_or_had_edition.yaml", "category": "slot" }, + { + "name": "has_or_had_email", + "path": "modules/slots/has_or_had_email.yaml", + "category": "slot" + }, + { + "name": "has_or_had_endowment_draw", + "path": "modules/slots/has_or_had_endowment_draw.yaml", + "category": "slot" + }, + { + "name": "has_or_had_engagement_metric", + "path": "modules/slots/has_or_had_engagement_metric.yaml", + "category": "slot" + }, { "name": "has_or_had_environmental_condition", "path": "modules/slots/has_or_had_environmental_condition.yaml", @@ -9417,6 +9347,11 @@ "path": "modules/slots/has_or_had_membership.yaml", "category": "slot" }, + { + "name": "has_or_had_metadata", + "path": "modules/slots/has_or_had_metadata.yaml", + "category": "slot" + }, { "name": "has_or_had_method", "path": "modules/slots/has_or_had_method.yaml", @@ -9932,6 +9867,11 @@ "path": "modules/slots/has_or_had_suborganization.yaml", "category": "slot" }, + { + "name": "has_or_had_summary", + "path": "modules/slots/has_or_had_summary.yaml", + "category": "slot" + }, { "name": "has_or_had_supplier", "path": "modules/slots/has_or_had_supplier.yaml", @@ -10107,11 +10047,6 @@ "path": "modules/slots/has_supervised_handling.yaml", "category": "slot" }, - { - "name": "has_timespan", - "path": "modules/slots/has_timespan.yaml", - "category": "slot" - }, { "name": "has_unit", "path": "modules/slots/has_unit.yaml", @@ -10447,6 +10382,11 @@ "path": "modules/slots/implements_digital_platform.yaml", "category": "slot" }, + { + "name": "imposes_or_imposed", + "path": "modules/slots/imposes_or_imposed.yaml", + "category": "slot" + }, { "name": "inbound_from", "path": "modules/slots/inbound_from.yaml", @@ -10942,6 +10882,11 @@ "path": "modules/slots/is_or_was_effective_at.yaml", "category": "slot" }, + { + "name": "is_or_was_employed_by", + "path": "modules/slots/is_or_was_employed_by.yaml", + "category": "slot" + }, { "name": "is_or_was_encompassed_by", "path": "modules/slots/is_or_was_encompassed_by.yaml", @@ -10952,6 +10897,11 @@ "path": "modules/slots/is_or_was_equivalent_to.yaml", "category": "slot" }, + { + "name": "is_or_was_expired_at", + "path": "modules/slots/is_or_was_expired_at.yaml", + "category": "slot" + }, { "name": "is_or_was_extracted_using", "path": "modules/slots/is_or_was_extracted_using.yaml", @@ -13117,16 +13067,6 @@ "path": "modules/slots/policy_description.yaml", "category": "slot" }, - { - "name": "policy_effective_from", - "path": "modules/slots/policy_effective_from.yaml", - "category": "slot" - }, - { - "name": "policy_effective_to", - "path": "modules/slots/policy_effective_to.yaml", - "category": "slot" - }, { "name": "policy_id", "path": "modules/slots/policy_id.yaml", @@ -15002,11 +14942,6 @@ "path": "modules/slots/start.yaml", "category": "slot" }, - { - "name": "start_date", - "path": "modules/slots/start_date.yaml", - "category": "slot" - }, { "name": "start_of_the_start", "path": "modules/slots/start_of_the_start.yaml", diff --git a/schemas/20251121/linkml/modules/classes/Activity.yaml b/schemas/20251121/linkml/modules/classes/Activity.yaml index 44395e662a..d360f4b335 100644 --- a/schemas/20251121/linkml/modules/classes/Activity.yaml +++ b/schemas/20251121/linkml/modules/classes/Activity.yaml @@ -38,11 +38,10 @@ imports: - ../slots/has_activity_name - ../slots/has_activity_description - ../slots/has_or_had_activity_type - - ../slots/has_timespan + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/is_or_was_succeeded_by - ../slots/preceding_activity - - ../slots/start_date - - ../slots/end_date - ../slots/status - ../slots/note - ../slots/specificity_annotation @@ -123,9 +122,8 @@ classes: - has_activity_name - has_activity_description - has_or_had_activity_type - - has_timespan - - start_date - - end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent + - temporal_extent - is_or_was_succeeded_by - preceding_activity - status @@ -182,29 +180,20 @@ classes: - value: "[DigitizationActivityType, ResearchActivityType]" description: "Combined digitization and research project" - has_timespan: + temporal_extent: range: TimeSpan required: false inlined: true description: | Temporal extent of this activity. + Replaces has_timespan, start_date, end_date. Uses CIDOC-CRM four-point temporal model for fuzzy bounds. examples: - value: - start_date: "2025-01-15" - end_date: "2025-03-31" + begin_of_the_begin: "2025-01-15" + end_of_the_end: "2025-03-31" description: "Q1 2025 activity period" - start_date: - range: date - required: false - description: Start date of the activity (convenience field). - - end_date: - range: date - required: false - description: End date of the activity (convenience field). - is_or_was_succeeded_by: range: Activity multivalued: true @@ -268,9 +257,9 @@ classes: Annual physical inventory of the Dutch Masters collection (Gallery of Honour and adjacent galleries). Spot-check methodology with 20% sample verification against CMS records. - has_timespan: - start_date: "2025-01-15" - end_date: "2025-03-31" + temporal_extent: + begin_of_the_begin: "2025-01-15" + end_of_the_end: "2025-03-31" status: "IN_PROGRESS" description: "Inventory activity at Rijksmuseum" @@ -283,8 +272,9 @@ classes: has_activity_description: | High-resolution digitization of 342 medieval manuscripts with HTR processing and metadata enhancement. IIIF-compliant output. - start_date: "2024-03-01" - end_date: "2025-12-31" + temporal_extent: + begin_of_the_begin: "2024-03-01" + end_of_the_end: "2025-12-31" status: "IN_PROGRESS" preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2023 description: "Digitization and research project at KB" diff --git a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index c9227aa6de..58965d2084 100644 --- a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -9,9 +9,10 @@ description: | imports: - linkml:types - ../slots/start_seconds - - ../slots/end_seconds + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/start_time - - ../slots/end_time - ../slots/segment_index - ../slots/segment_text # MIGRATED 2026-01-19: confidence → is_or_was_generated_by + GenerationEvent + ConfidenceScore @@ -94,9 +95,9 @@ classes: - oa:FragmentSelector slots: - start_seconds - - end_seconds + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval + - has_or_had_time_interval - start_time - - end_time - segment_index - segment_text # MIGRATED 2026-01-19: confidence → is_or_was_generated_by (structured ConfidenceScore) @@ -124,16 +125,17 @@ classes: description: Audio event starts at beginning - value: 45.5 description: Audio event starts at 45.5 seconds - end_seconds: - range: float + has_or_had_time_interval: + range: TimeInterval required: true - minimum_value: 0.0 - description: End time in seconds for this audio event segment. + inlined: true + description: >- + Duration of audio segment. + Replaces end_seconds/end_time. Use duration_value for ISO 8601 (e.g. PT15S). examples: - - value: 15.0 - description: Audio event ends at 15 seconds - - value: 60.0 - description: Audio event ends at 1 minute + - value: + duration_value: PT0M15S + description: 15 second duration start_time: range: string required: false @@ -142,14 +144,6 @@ classes: examples: - value: PT0M30S description: 30 seconds from start - end_time: - range: string - required: false - pattern: "^PT(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$" - description: End time in ISO 8601 duration format. - examples: - - value: PT0M45S - description: 45 seconds from start segment_text: range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml new file mode 100644 index 0000000000..d53bfd0ea7 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/class/AuthorityFile +name: AuthorityFile +title: Authority File Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + void: http://rdfs.org/ns/void# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + - ../slots/contains_or_contained + - ./Entity + +classes: + AuthorityFile: + class_uri: void:Dataset + description: >- + A managed vocabulary or dataset containing authority records (Entities). + + **Ontology Alignment**: + - **Primary**: `void:Dataset` (Dataset of entities) + - **Close**: `skos:ConceptScheme` + + slots: + - has_or_had_label + - has_or_had_description + - contains_or_contained + + slot_usage: + contains_or_contained: + range: Entity + description: The types of entities contained in this authority file. + + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + specificity_rationale: Metadata management. diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index f25384106e..f168d83265 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -369,7 +369,7 @@ classes: - value: - endpoint_id: https://nde.nl/ontology/hc/endpoint/rijksstudio-api endpoint_name: Rijksstudio Image API - endpoint_url: https://www.rijksmuseum.nl/api/nl/collection + has_or_had_url: https://www.rijksmuseum.nl/api/nl/collection protocol: REST_JSON status: ACTIVE description: Rijksstudio auxiliary platform endpoints diff --git a/schemas/20251121/linkml/modules/classes/Budget.yaml b/schemas/20251121/linkml/modules/classes/Budget.yaml index 62220dbfae..7823053c79 100644 --- a/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -30,11 +30,16 @@ imports: - ./BudgetType - ../slots/allocates_or_allocated - ./DigitizationBudget + - ../slots/is_or_was_based_on + - ./FinancialStatement - ../slots/has_or_had_quantity - ../classes/Quantity - ../slots/has_or_had_unit - ../classes/Unit - - ../slots/employee_benefits_expenses + - ../slots/has_or_had_expenses + - ./Expenses + - ./ExpenseType + - ./ExpenseTypes - ../slots/endowment_draw - ../slots/external_funding - ../slots/fiscal_year_end @@ -125,7 +130,7 @@ classes: # MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision - has_or_had_main_part - allocates_or_allocated - - endowment_draw + - has_or_had_endowment_draw - external_funding - fiscal_year_end - fiscal_year_start @@ -307,9 +312,12 @@ classes: internal_funding: range: decimal required: false - endowment_draw: + has_or_had_endowment_draw: range: decimal required: false + description: >- + Amount drawn from endowment fund. + MIGRATED from endowment_draw per Rule 53 (2026-01-26). has_approval_date: range: date required: false @@ -345,13 +353,18 @@ classes: revision_date: range: date required: false - managing_unit: - range: OrganizationalStructure - required: false documented_by: - range: uriorcurie + description: | + Financial statements (actuals) documenting this budget (plan). + MIGRATED from documented_by string slot (2026-01-26). + Now links to FinancialStatement class. + range: FinancialStatement multivalued: true + inlined: false required: false + examples: + - value: https://nde.nl/ontology/hc/financial/rijksmuseum-annual-report-2024 + description: Annual report auditing 2024 budget refers_to_custodian: range: Custodian required: true @@ -430,7 +443,7 @@ classes: innovation_budget: 750000.0 external_funding: 15000000.0 internal_funding: 25000000.0 - endowment_draw: 5000000.0 + has_or_had_endowment_draw: 5000000.0 approval_date: '2023-11-15' is_or_was_approved_by: approver_name: Board of Directors diff --git a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml index f895ac57bd..a831cf8037 100644 --- a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml +++ b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -12,6 +12,7 @@ imports: - ../metadata - ../slots/has_or_had_type - ../slots/has_or_had_label + - ../slots/is_or_was_effective_at default_prefix: hc classes: CITESAppendix: @@ -85,16 +86,23 @@ classes: - value: "CITES Appendix II - Trade Regulated" attributes: listing_effective_date: + deprecated: "Use is_or_was_effective_at (Rule 53, 2026-01-26)" description: >- + DEPRECATED 2026-01-26: Use is_or_was_effective_at instead. Date when the species was added to this CITES appendix. - Important for determining legal status at time of specimen acquisition. range: date required: false + is_or_was_effective_at: + range: date + required: false + description: >- + Date when the CITES listing became effective. + MIGRATED from listing_effective_date (2026-01-26). examples: - value: "1975-07-01" - description: Original CITES listing (Convention entered into force) + description: Original CITES listing - value: "2019-08-28" - description: Added at CoP18 (Geneva) + description: Added at CoP18 listing_authority: description: >- Authority responsible for the listing (typically CITES Secretariat or @@ -145,7 +153,7 @@ classes: - value: has_or_had_type: APPENDIX_I has_or_had_label: "CITES Appendix I - Most Endangered" - listing_effective_date: "1975-07-01" + is_or_was_effective_at: "1975-07-01" listing_authority: "CITES Secretariat" species_covered: "Loxodonta africana" population_specific: true diff --git a/schemas/20251121/linkml/modules/classes/CollectionType.yaml b/schemas/20251121/linkml/modules/classes/CollectionType.yaml index 8005cca2c6..00ceb10dc1 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionType.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionType.yaml @@ -28,7 +28,11 @@ imports: - ../slots/has_or_had_label - ./Label - ../slots/has_or_had_custodian_type - - ../slots/domain_context + - ../slots/has_or_had_domain + - ./Domain + - ../slots/has_or_had_type + - ./DomainType + - ./DomainTypes - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/is_or_was_equivalent_to @@ -85,7 +89,7 @@ classes: # REMOVED 2026-01-18: collection_type_name - migrated to has_or_had_label + Label (Rule 53) - has_or_had_label - has_or_had_custodian_type - - domain_context + - has_or_had_domain - record_equivalent - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -177,14 +181,24 @@ classes: - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-series description: FONDS narrower types - domain_context: - range: string + has_or_had_domain: + range: Domain + inlined: true + multivalued: true + description: | + Domain context for this collection type. + MIGRATED from domain_context string (2026-01-26). examples: - - value: ARCHIVE + - value: + domain_name: ARCHIVE + has_or_had_type: + type_name: "Heritage Domain" description: FONDS is archival domain - - value: LIBRARY + - value: + domain_name: LIBRARY description: SPECIAL_COLLECTION is library domain - - value: MUSEUM + - value: + domain_name: MUSEUM description: NAMED_COLLECTION is museum domain has_or_had_custodian_type: equals_expression: '["*"]' @@ -209,7 +223,8 @@ classes: description_type: collection_type_description record_equivalent: rico:Fonds is_or_was_equivalent_to: wikidata:Q1643722 - domain_context: ARCHIVE + has_or_had_domain: + - domain_name: ARCHIVE has_or_had_collection_narrower_type: - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-fonds @@ -224,5 +239,6 @@ classes: description_text: "A named special collection within a library, often focusing on a particular subject, format, or provenance." description_type: collection_type_description # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType] - domain_context: LIBRARY + has_or_had_domain: + - domain_name: LIBRARY description: Library special collection type diff --git a/schemas/20251121/linkml/modules/classes/ConservationLab.yaml b/schemas/20251121/linkml/modules/classes/ConservationLab.yaml index d7f80b8f9e..be1aebc4ff 100644 --- a/schemas/20251121/linkml/modules/classes/ConservationLab.yaml +++ b/schemas/20251121/linkml/modules/classes/ConservationLab.yaml @@ -10,7 +10,12 @@ imports: - ./ExternalWork - ../slots/has_or_had_accreditation_body - ../slots/conservation_specialization - - ../slots/equipment_type + # MIGRATED 2026-01-26: equipment_type → has_or_had_equipment + Equipment + EquipmentType (Rule 53) + - ../slots/has_or_had_equipment + - ./Equipment + - ./EquipmentType + - ./EquipmentType + - ./EquipmentTypes - ../slots/has_climate_control - ../slots/has_deacidification_facility - ../slots/has_fume_hood @@ -85,7 +90,8 @@ classes: - accepts_or_accepted - has_or_had_accreditation_body - conservation_specialization - - equipment_type + # MIGRATED 2026-01-26: equipment_type → has_or_had_equipment + - has_or_had_equipment - has_climate_control - has_deacidification_facility - has_fume_hood @@ -150,15 +156,26 @@ classes: description: Paper conservation - value: Furniture description: Furniture conservation - equipment_type: - range: string + has_or_had_equipment_type: + range: EquipmentType multivalued: true + inlined: true + inlined_as_list: true + description: >- + Types of specialized conservation equipment available in this lab. + MIGRATED from equipment_type (string list) per Rule 53. examples: - - value: Stereomicroscope + - value: + has_or_had_label: Stereomicroscope + has_or_had_type: MicroscopyEquipment description: Magnification equipment - - value: X-ray fluorescence spectrometer + - value: + has_or_had_label: X-ray fluorescence spectrometer + has_or_had_type: AnalyticalEquipment description: Material analysis - - value: Suction table + - value: + has_or_had_label: Suction table + has_or_had_type: PaperConservationEquipment description: Paper conservation equipment has_imaging_equipment: range: boolean @@ -244,11 +261,11 @@ classes: - Works on paper - Furniture - Metalwork - equipment_type: - - Stereomicroscopes - - X-ray fluorescence spectrometer - - Infrared reflectography system - - High-resolution digital imaging + has_or_had_equipment_type: + - has_or_had_label: Stereomicroscopes + - has_or_had_label: X-ray fluorescence spectrometer + - has_or_had_label: Infrared reflectography system + - has_or_had_label: High-resolution digital imaging has_imaging_equipment: true has_climate_control: true has_fume_hoods: true @@ -269,11 +286,11 @@ classes: - Parchment - Seals - Maps and plans - equipment_type: - - Leaf casting machine - - Suction tables - - Book presses - - Ultrasonic humidifiers + has_or_had_equipment_type: + - has_or_had_label: Leaf casting machine + - has_or_had_label: Suction tables + - has_or_had_label: Book presses + - has_or_had_label: Ultrasonic humidifiers has_climate_control: true has_fume_hoods: true has_deacidification_facility: true diff --git a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml index cfe9849607..b318ec0a7d 100644 --- a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml +++ b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml @@ -33,8 +33,11 @@ imports: - ../slots/has_authority_file_name - ../slots/has_authority_file_abbreviation - ../slots/has_authority_file_url - - ../slots/record_format - - ../slots/entity_types_covered + # MIGRATED 2026-01-26: entity_types_covered → provides_or_provided + AuthorityFile (Rule 53) + - ../slots/provides_or_provided + - ./AuthorityFile + - ./Entity + - ./EntityType - ../slots/contributes_to - ../slots/contribution_start_date - ../slots/is_active @@ -64,11 +67,13 @@ imports: - ../slots/record_format - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + # MIGRATED 2026-01-26: entity_types_covered → provides_or_provided + - ../slots/provides_or_provided - ../slots/contributes_to - ../slots/contribution_start_date - ../slots/contributor_code - ../slots/description - - ../slots/entity_types_covered + # - ../slots/entity_types_covered - ../slots/governance_representative - ../slots/governance_role - ../slots/has_authority_file_abbreviation @@ -255,7 +260,8 @@ classes: - has_authority_file_abbreviation - has_authority_file_url - record_format - - entity_types_covered + # MIGRATED 2026-01-26: entity_types_covered → provides_or_provided + - provides_or_provided - contributes_to - contribution_start_date - is_active @@ -268,6 +274,21 @@ classes: - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: + provides_or_provided: + range: AuthorityFile + multivalued: true + inlined: true + description: | + Authority files provided by this agency. + MIGRATED from entity_types_covered per slot_fixes.yaml (Rule 53, 2026-01-26). + The AuthorityFile indicates which Entity types it contains. + examples: + - value: + has_or_had_label: "Library of Congress Name Authority File" + contains_or_contained: + - has_or_had_type: PERSON + - has_or_had_type: CORPORATE_BODY + description: LCNAF covering persons and corporate bodies contributes_to: range: Standard is_or_was_also_allocation_agency: diff --git a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml index f767f6339a..5e090e24a9 100644 --- a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml +++ b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml @@ -3,7 +3,7 @@ # REFACTORED: Now extends Activity base class (2026-01-13) # Inherits generic slots from Activity: # - has_activity_identifier, has_activity_name, has_activity_description -# - has_or_had_activity_type, has_timespan, start_date, end_date +# - has_or_had_activity_type, temporal_extent # - is_or_was_succeeded_by, preceding_activity, status, note # # Keeps curation-specific slots: @@ -45,7 +45,8 @@ imports: # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - ../slots/has_or_had_objective - ./Deliverable - - ../slots/documentation_produced + - ../slots/has_or_had_output + - ./Documentation - ../slots/funding_source - ../slots/is_recurring - ../slots/objects_added @@ -79,8 +80,7 @@ classes: - has_activity_name (required) - has_activity_description - has_or_had_activity_type → ActivityType - - has_timespan → TimeSpan - - start_date, end_date + - temporal_extent → TimeSpan - is_or_was_succeeded_by, preceding_activity - status, note @@ -178,7 +178,7 @@ classes: - has_or_had_custodian_type # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective - - documentation_produced + - has_or_had_output - funding_source - is_recurring - objects_added @@ -297,16 +297,19 @@ classes: - value: 342 description: Digitization of 342 manuscripts - documentation_produced: - range: string + has_or_had_output: + range: Documentation multivalued: true - description: Documentation created as a result of this activity. + description: >- + Documentation created as a result of this activity. + MIGRATED from documentation_produced (2026-01-26). examples: - - value: - - Inventory reconciliation report (2025-03-31) - - Location discrepancy list (15 items) - - Condition notation updates (42 records) - description: Inventory deliverables + - value: + has_or_had_label: "Inventory reconciliation report (2025-03-31)" + description: Inventory report + - value: + has_or_had_label: "Condition notation updates" + description: Condition updates # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) has_or_had_objective: @@ -428,15 +431,16 @@ classes: responsible_actor: - https://nde.nl/ontology/hc/person/maria-jansen-registrar responsible_department: Registration Department - start_date: '2025-01-15' - end_date: '2025-03-31' + temporal_extent: + begin_of_the_begin: '2025-01-15' + end_of_the_end: '2025-03-31' is_recurring: true recurrence_pattern: P1Y objects_count: 450 - documentation_produced: - - Inventory reconciliation report - - Location discrepancy list (3 items) - - Condition notation updates (28 records) + has_or_had_output: + - has_or_had_label: "Inventory reconciliation report" + - has_or_had_label: "Location discrepancy list (3 items)" + - has_or_had_label: "Condition notation updates (28 records)" funding_source: Annual operating budget status: IN_PROGRESS priority: MEDIUM @@ -455,14 +459,15 @@ classes: curated_holding: - https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds responsible_department: Digital Services - start_date: '2024-03-01' - end_date: '2025-12-31' + temporal_extent: + begin_of_the_begin: '2024-03-01' + end_of_the_end: '2025-12-31' is_recurring: false objects_count: 125000 - documentation_produced: - - Digital asset management records - - OCR quality assessment report - - IIIF manifest files + has_or_had_output: + - has_or_had_label: "Digital asset management records" + - has_or_had_label: "OCR quality assessment report" + - has_or_had_label: "IIIF manifest files" # MIGRATED 2026-01-24: deliverable → has_or_had_objective (Rule 53) has_or_had_objective: - has_or_had_label: @@ -489,14 +494,15 @@ classes: curated_holding: - https://nde.nl/ontology/hc/collection/kb-medieval-manuscripts responsible_department: Special Collections Conservation - start_date: '2025-02-01' - end_date: '2025-08-31' + temporal_extent: + begin_of_the_begin: '2025-02-01' + end_of_the_end: '2025-08-31' is_recurring: false objects_count: 342 - documentation_produced: - - Rehousing completion report - - Before/after condition photographs - - Updated location records in CMS + has_or_had_output: + - has_or_had_label: "Rehousing completion report" + - has_or_had_label: "Before/after condition photographs" + - has_or_had_label: "Updated location records in CMS" funding_source: Andrew W. Mellon Foundation Grant is_or_was_allocated_budget: EUR 95,000 # MIGRATED 2026-01-15: was budget status: PLANNED diff --git a/schemas/20251121/linkml/modules/classes/CustodianName.yaml b/schemas/20251121/linkml/modules/classes/CustodianName.yaml index e21ef79fa9..9b655197a0 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianName.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianName.yaml @@ -22,7 +22,10 @@ imports: - ./ReconstructionActivity - ./TimeSpan - ./ReconstructedEntity - - ../slots/emic_name + - ../slots/has_or_had_label + - ./Label + - ./LabelType + - ./LabelTypes - ../slots/name_language - ../slots/standardized_name - ../slots/has_or_had_alternative_name @@ -113,7 +116,7 @@ classes: - gleif:hasOtherName slots: - has_or_had_alternative_name - - emic_name + - has_or_had_label - endorsement_source - name_authority - name_language @@ -128,9 +131,18 @@ classes: - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 slot_usage: - emic_name: - range: string - required: true + has_or_had_label: + range: Label + inlined: true + description: | + The emic name of the custodian. + MIGRATED from emic_name per Rule 53 (2026-01-26). + Use with has_or_had_type: EmicLabelType. + examples: + - value: + has_or_had_label: "Rijksmuseum" + has_or_had_type: EmicLabelType + description: Standardized emic name name_language: range: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ diff --git a/schemas/20251121/linkml/modules/classes/DOI.yaml b/schemas/20251121/linkml/modules/classes/DOI.yaml new file mode 100644 index 0000000000..1fba09c6c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DOI.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/class/DOI +name: DOI +title: DOI Identifier +description: >- + Digital Object Identifier (DOI). + MIGRATED from doi slot (2026-01-26). + Subclass of Identifier. +imports: + - linkml:types + - ./Identifier + - ../slots/has_or_had_label +default_prefix: hc +classes: + DOI: + is_a: Identifier + description: Digital Object Identifier. + slot_usage: + identifier_scheme: + equals_string: "DOI" + identifier_value: + description: "The DOI string (e.g. 10.1234/5678)." + pattern: "^10\\.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$" diff --git a/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml b/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml index ccb2b43aea..7ff3c3c7ac 100644 --- a/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml @@ -17,6 +17,9 @@ imports: - ../slots/response_format # REMOVED 2026-01-15: ../slots/authentication_required - migrated to is_or_was_required - ../slots/is_or_was_required + # MIGRATED 2026-01-26: endpoint_url → has_or_had_url (Rule 53) + - ../slots/has_or_had_url + - ./URL - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ./SpecificityAnnotation @@ -37,6 +40,8 @@ classes: - is_or_was_required - protocol - response_format + # MIGRATED 2026-01-26: endpoint_url → has_or_had_url + - has_or_had_url - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) description: "Abstract base class for API service endpoints exposed by heritage digital platforms.\n\n**Purpose:**\n\n\ @@ -77,42 +82,27 @@ classes: required: true endpoint_name: slot_uri: schema:name - description: 'Human-readable name for this endpoint. - - + description: >- + Human-readable name for this endpoint. + Examples: - - "Nationaal Archief OAI-PMH Endpoint" - - "Heritage Search API" - - "Image Server (IIP)" - - ' range: string required: true - endpoint_url: + has_or_had_url: slot_uri: dcat:endpointURL - description: 'Base URL of the service endpoint. - - + description: >- + Base URL of the service endpoint. DCAT: dcat:endpointURL - "The root location or primary endpoint of the service" - - - This is the URL that clients use to access the service. - - - Examples: - - - "https://www.nationaalarchief.nl/onderzoeken/oai-pmh" - - - "https://api.europeana.eu/record/v2/" - - - "https://service.archief.nl/iipsrv" - - ' + MIGRATED 2026-01-26: Replaces endpoint_url slot. range: uri required: true + examples: + - value: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh" + - value: "https://api.europeana.eu/record/v2/" + - value: "https://service.archief.nl/iipsrv" endpoint_description_url: slot_uri: dcat:endpointDescription description: 'URL to machine-readable API documentation. diff --git a/schemas/20251121/linkml/modules/classes/Department.yaml b/schemas/20251121/linkml/modules/classes/Department.yaml index f60d1c3da6..c561543ff9 100644 --- a/schemas/20251121/linkml/modules/classes/Department.yaml +++ b/schemas/20251121/linkml/modules/classes/Department.yaml @@ -41,7 +41,8 @@ imports: # Already importing has_or_had_label, Label, has_or_had_type, LabelType above - ../slots/is_or_was_dissolved_by - ./DissolutionEvent - - ../slots/established_date + - ../slots/is_or_was_established_by + - ./EstablishmentEvent - ../slots/has_or_had_manages_collection - ../slots/mandate - ../slots/parent_department @@ -286,7 +287,9 @@ classes: has_or_had_description: has_or_had_text: "Preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence." mandate: 'Established by Royal Decree of 1891 to manage and preserve records of the Dutch East Indies administration.' - established_date: '1891-06-15' + is_or_was_established_by: + temporal_extent: + begin_of_the_begin: "1891-06-15" has_or_had_manages_collection: - https://nde.nl/ontology/hc/collection/na-voc-archives - https://nde.nl/ontology/hc/collection/na-wic-archives diff --git a/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml b/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml index abd6966573..d98f3ac1fb 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml @@ -31,7 +31,9 @@ imports: - ./GenerationEvent - ./ConfidenceScore - ../slots/start_time - - ../slots/end_time + # MIGRATED 2026-01-26: end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17) classes: @@ -113,7 +115,8 @@ classes: # MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by - is_or_was_generated_by - start_time - - end_time + # MIGRATED 2026-01-26: end_time → has_or_had_time_interval + - has_or_had_time_interval - has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17) slot_usage: @@ -170,12 +173,17 @@ classes: - value: "00:03:15" - value: "PT3M15S" - end_time: - range: string + has_or_had_time_interval: + range: TimeInterval required: false - description: "End timestamp for temporal detections" + inlined: true + description: >- + Duration of detection. + Replaces end_time. Use duration_value for ISO 8601 duration (e.g., PT2S). examples: - - value: "00:03:17" + - value: + duration_value: "PT0M02S" + description: "2 second duration" has_or_had_geographic_extent: # was: bounding_box - migrated per Rule 53/56 (2026-01-17) range: float @@ -218,7 +226,8 @@ classes: has_or_had_score: 0.95 has_or_had_method: "video_analysis" start_time: "00:03:15" - end_time: "00:03:17" + has_or_had_time_interval: + duration_value: "PT0M02S" description: "Video transition detection (fade in)" - value: diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index da14e8af21..cb3769c7fa 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -395,7 +395,7 @@ classes: - value: - endpoint_id: https://nde.nl/ontology/hc/endpoint/na-oai-pmh endpoint_name: Nationaal Archief OAI-PMH - endpoint_url: https://www.nationaalarchief.nl/onderzoeken/oai-pmh + has_or_had_url: https://www.nationaalarchief.nl/onderzoeken/oai-pmh protocol: OAI_PMH status: ACTIVE description: Nationaal Archief data service endpoints diff --git a/schemas/20251121/linkml/modules/classes/Drawer.yaml b/schemas/20251121/linkml/modules/classes/Drawer.yaml new file mode 100644 index 0000000000..b6ecc61d1e --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Drawer.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/class/Drawer +name: Drawer +title: Drawer Class +description: >- + A drawer in a storage unit (e.g. plan chest, cabinet). + MIGRATED from drawer_number (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: + - linkml:types + - ../slots/has_or_had_identifier + - ../classes/Identifier + - ./DrawerNumber +default_prefix: hc +classes: + Drawer: + class_uri: rico:PhysicalLocation + description: Storage drawer. + slots: + - has_or_had_identifier + slot_usage: + has_or_had_identifier: + range: DrawerNumber + description: "Number or identifier of the drawer." diff --git a/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml b/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml new file mode 100644 index 0000000000..3af32ac0bf --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/class/DrawerNumber +name: DrawerNumber +title: Drawer Number Class +description: >- + Identifier for a drawer. + MIGRATED from drawer_number (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ +imports: + - linkml:types + - ../classes/Identifier +default_prefix: hc +classes: + DrawerNumber: + is_a: Identifier + description: Number identifying a drawer. + slot_usage: + identifier_scheme: + equals_string: "DRAWER_NUMBER" + identifier_value: + description: "The drawer number string." diff --git a/schemas/20251121/linkml/modules/classes/Employer.yaml b/schemas/20251121/linkml/modules/classes/Employer.yaml new file mode 100644 index 0000000000..fa96f82e6b --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Employer.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/class/Employer +name: Employer +title: Employer Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + - ../slots/has_or_had_url + - ./URL + +classes: + Employer: + class_uri: schema:Organization + description: >- + An organization that employs or employed a person. + + **Ontology Alignment**: + - **Primary**: `schema:Organization` + - **Close**: `org:Organization` + + slots: + - has_or_had_label + - has_or_had_identifier + - has_or_had_url + + slot_usage: + has_or_had_label: + description: Name of the employer organization. + has_or_had_url: + range: URL + description: Website or profile URL (e.g. LinkedIn company page) of the employer. + + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: Generic employer class. diff --git a/schemas/20251121/linkml/modules/classes/Endpoint.yaml b/schemas/20251121/linkml/modules/classes/Endpoint.yaml new file mode 100644 index 0000000000..50788b5058 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Endpoint.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/class/Endpoint +name: Endpoint +title: Endpoint Class +description: >- + A specific access point or download location for a digital resource. + MIGRATED from download_endpoint string (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# +imports: + - linkml:types + - ../slots/has_or_had_url + - ../classes/URL +default_prefix: hc +classes: + Endpoint: + class_uri: dcat:Distribution + description: Distribution or access point. + slots: + - has_or_had_url + slot_usage: + has_or_had_url: + range: URL + description: "URL of the endpoint." diff --git a/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml b/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml new file mode 100644 index 0000000000..2978951a22 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/class/EngagementMetric +name: EngagementMetric +title: Engagement Metric Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_type + - ../slots/has_or_had_value + - ../slots/has_or_had_unit + +classes: + EngagementMetric: + class_uri: schema:InteractionCounter + description: >- + Structured representation of an engagement metric (e.g. Rate, Likes, Shares). + + **Ontology Alignment**: + - **Primary**: `schema:InteractionCounter` + + slots: + - has_or_had_type + - has_or_had_value + - has_or_had_unit + + slot_usage: + has_or_had_type: + description: Type of metric (e.g. "Engagement Rate", "Likes"). + range: string + has_or_had_value: + description: Numeric value of the metric. + range: decimal + has_or_had_unit: + description: Unit (e.g. "%", "Count"). + range: string + + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + specificity_rationale: Common digital metric. diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml new file mode 100644 index 0000000000..eea819d006 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/class/EnrichmentMetadata +name: EnrichmentMetadata +title: Enrichment Metadata Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_method + - ./EnrichmentMethod + - ../slots/temporal_extent + - ./TimeSpan + +classes: + EnrichmentMetadata: + class_uri: prov:Activity + description: >- + Metadata about a data enrichment process. + + **Ontology Alignment**: + - **Primary**: `prov:Activity` (Enrichment process) + - **Close**: `schema:Action` + + slots: + - has_or_had_description + - has_or_had_method + - temporal_extent + + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + specificity_rationale: Provenance metadata. diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml new file mode 100644 index 0000000000..8af89a986b --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EnrichmentMethod +name: EnrichmentMethod +title: Enrichment Method Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + EnrichmentMethod: + class_uri: prov:Method + description: >- + The method used for data enrichment (e.g. "WhatsApp API Extraction", "Manual Verification"). + + **Ontology Alignment**: + - **Primary**: `prov:Method` (subclass of prov:Plan) + - **Close**: `schema:Action` (instrument) + + slots: + - has_or_had_label + - has_or_had_description + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Provenance metadata. diff --git a/schemas/20251121/linkml/modules/classes/Entity.yaml b/schemas/20251121/linkml/modules/classes/Entity.yaml index cef494529a..38199487d4 100644 --- a/schemas/20251121/linkml/modules/classes/Entity.yaml +++ b/schemas/20251121/linkml/modules/classes/Entity.yaml @@ -31,17 +31,20 @@ classes: - Abstract entity representation attributes: - entity_name: + has_or_had_label: range: string description: Name of the entity + slot_uri: schema:name - entity_uri: + has_or_had_uri: range: uriorcurie description: URI of the entity + slot_uri: schema:url - entity_type: + has_or_had_type: range: string description: Type of entity + slot_uri: rdf:type exact_mappings: - prov:Entity @@ -55,7 +58,7 @@ classes: examples: - value: - entity_name: "Dataset A" - entity_uri: https://nde.nl/dataset/a - entity_type: DATASET + has_or_had_label: "Dataset A" + has_or_had_uri: https://nde.nl/dataset/a + has_or_had_type: DATASET description: Generic entity reference diff --git a/schemas/20251121/linkml/modules/classes/EntityType.yaml b/schemas/20251121/linkml/modules/classes/EntityType.yaml new file mode 100644 index 0000000000..52789385ee --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EntityType.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EntityType +name: EntityType +title: Entity Type Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + EntityType: + class_uri: skos:Concept + description: >- + Classification of an Entity (e.g. Person, Place, Organization). + + **Ontology Alignment**: + - **Primary**: `skos:Concept` + - **Close**: `rdfs:Class` + + slots: + - has_or_had_label + - has_or_had_identifier + + annotations: + custodian_types: '["*"]' + specificity_score: 0.1 + specificity_rationale: Fundamental classification. diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml new file mode 100644 index 0000000000..5fa0b19e80 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EnvironmentalControl +name: EnvironmentalControl +title: Environmental Control Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + sosa: http://www.w3.org/ns/sosa/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + EnvironmentalControl: + class_uri: sosa:Actuation + description: >- + A control or mechanism for managing environmental conditions (e.g. HVAC, Dehumidifier). + + **Ontology Alignment**: + - **Primary**: `sosa:Actuation` (Control action/device) + - **Close**: `schema:Product` (Equipment) + + slots: + - has_or_had_label + - has_or_had_description + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Conservation metadata. diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml new file mode 100644 index 0000000000..daf355edc3 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EnvironmentalRequirement +name: EnvironmentalRequirement +title: Environmental Requirement Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + EnvironmentalRequirement: + class_uri: schema:PropertyValue + description: >- + A requirement for environmental conditions (e.g. Temperature range, RH range). + + **Ontology Alignment**: + - **Primary**: `schema:PropertyValue` + - **Close**: `dcterms:requires` + + slots: + - has_or_had_label + - has_or_had_description + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Conservation standards. diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml index 1e8763afa4..adf28d51ea 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml @@ -23,7 +23,8 @@ imports: - ./TemperatureDeviation - ../slots/humidity_tolerance - ../slots/contains_or_contained_contains_unit - - ../slots/environmental_requirement + - ../slots/has_or_had_requirement + - ./EnvironmentalRequirement - ../slots/max_annual_light_exposure - ../slots/max_light_lux - ../slots/monitoring_platform diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml index 85b9ab2cd2..ca713a47e6 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml @@ -207,9 +207,16 @@ classes: slot_usage: has_or_had_identifier: - range: uriorcurie - identifier: true required: true + has_or_had_short_code: + required: true + description: Short code for the zone type (e.g. "AA", "B"). + has_or_had_label: + required: true + description: Name of the zone type. + has_or_had_description: + required: true + description: Description of environmental conditions for this zone. pattern: "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$" examples: - value: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard diff --git a/schemas/20251121/linkml/modules/classes/Equipment.yaml b/schemas/20251121/linkml/modules/classes/Equipment.yaml new file mode 100644 index 0000000000..ea5f0aef0b --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Equipment.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/class/Equipment +name: Equipment +title: Equipment Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + sosa: http://www.w3.org/ns/sosa/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_description + - ../slots/has_or_had_type + - ./EquipmentType + +classes: + Equipment: + class_uri: sosa:Platform + description: >- + Physical equipment or device. + + **Ontology Alignment**: + - **Primary**: `sosa:Platform` (Device host) + - **Close**: `schema:Product` + + slots: + - has_or_had_label + - has_or_had_description + - has_or_had_type + + slot_usage: + has_or_had_type: + range: EquipmentType + description: Type of equipment (e.g. Microscope, Scanner). + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Generic equipment. diff --git a/schemas/20251121/linkml/modules/classes/EquipmentType.yaml b/schemas/20251121/linkml/modules/classes/EquipmentType.yaml new file mode 100644 index 0000000000..f39e07f05c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EquipmentType.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/EquipmentType +name: EquipmentType +title: Equipment Type Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + EquipmentType: + class_uri: skos:Concept + description: >- + Type classification for equipment (e.g. Imaging Equipment, Lab Equipment). + + **Ontology Alignment**: + - **Primary**: `skos:Concept` + - **Close**: `schema:definedTerm` + + slots: + - has_or_had_label + - has_or_had_identifier + + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + specificity_rationale: Equipment classification. diff --git a/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml b/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml new file mode 100644 index 0000000000..cbdfe4a279 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/class/EquipmentTypes +name: EquipmentTypes +title: Equipment Types +description: | + Concrete subclasses of EquipmentType for heritage domain. + + Categories: + - Conservation (microscopes, suction tables) + - Digitization (scanners, cameras) + - Storage (shelving, cabinets) + - Analytical (spectrometers, XRF) + +imports: + - linkml:types + - ./EquipmentType + +classes: + ConservationEquipmentType: + is_a: EquipmentType + description: Equipment used for conservation treatments. + + DigitizationEquipmentType: + is_a: EquipmentType + description: Equipment used for digitization and imaging. + + ImagingEquipmentType: + is_a: EquipmentType + description: specialized imaging equipment (multispectral, RTI). + + StorageEquipmentType: + is_a: EquipmentType + description: Furniture and equipment for collection storage. + + AnalyticalEquipmentType: + is_a: EquipmentType + description: Scientific equipment for material analysis. diff --git a/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml b/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml new file mode 100644 index 0000000000..cb223a038d --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/class/EstablishmentEvent +name: EstablishmentEvent +title: Establishment Event Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/temporal_extent + - ./TimeSpan + - ../slots/has_or_had_description + +classes: + EstablishmentEvent: + class_uri: org:ChangeEvent + description: >- + The event of establishing an organization, department, or entity. + + **Ontology Alignment**: + - **Primary**: `org:ChangeEvent` (Organizational change) + - **Close**: `schema:foundingDate` (as event) + + slots: + - temporal_extent + - has_or_had_description + + slot_usage: + temporal_extent: + description: Date/time of establishment. + required: true + + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + specificity_rationale: Organizational history. diff --git a/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml b/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml new file mode 100644 index 0000000000..c32de282aa --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/class/EstimationMethod +name: EstimationMethod +title: Estimation Method Class +description: >- + Defines the specific method used to estimate a quantity. + + **RULE 53 COMPLIANT**: Created for estimated_extent/estimated_volume + migration per slot_fixes.yaml revision. + + **PROV-O ALIGNMENT**: + Maps to `prov:Plan` - "A plan is an entity that represents a set of actions or + steps intended by one or more agents to achieve some goals." + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +imports: + - linkml:types + - ../slots/has_or_had_identifier + - ../slots/has_or_had_label + - ../slots/has_or_had_description + - ../slots/specificity_annotation + - ../slots/has_or_had_score + +default_prefix: hc + +classes: + EstimationMethod: + class_uri: prov:Plan + description: >- + Describes the specific technique used to estimate a value (e.g., visual inspection, + sampling, extrapolation). + + Used in conjunction with `is_or_was_based_on` to provide provenance for estimated quantities. + exact_mappings: + - prov:Plan + slots: + - has_or_had_identifier + - has_or_had_label + - has_or_had_description + - specificity_annotation + - has_or_had_score + slot_usage: + has_or_had_label: + range: string + description: Name of the estimation method (e.g., "Visual Inspection", "Sampling"). diff --git a/schemas/20251121/linkml/modules/classes/Event.yaml b/schemas/20251121/linkml/modules/classes/Event.yaml index 9a6452f0a8..a8de952823 100644 --- a/schemas/20251121/linkml/modules/classes/Event.yaml +++ b/schemas/20251121/linkml/modules/classes/Event.yaml @@ -14,13 +14,17 @@ default_prefix: hc imports: - linkml:types - ./TimeSpan - - ../enums/EventTypeEnum - - ../slots/event_description - - ../slots/event_id - - ../slots/documentation_source - - ../slots/event_label - - ../slots/has_timespan - - ../slots/hypernym_event_type + # MIGRATED 2026-01-26: event_description/event_id/event_label/hypernym_event_type → generic slots (Rule 53) + - ../slots/has_or_had_description + - ../slots/has_or_had_identifier + - ../slots/has_or_had_label + - ../slots/has_or_had_hypernym + - ./Description + - ./Identifier + - ./Label + - ./EventType + # MIGRATED 2026-01-26: has_timespan → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/has_or_had_involved_actor - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -38,7 +42,7 @@ classes: class_uri: crm:E5_Event description: "An abstract hub class representing temporal phenomena - things that happen\nand involve actors, places,\ \ and temporal extents.\n\n**HUB ARCHITECTURE**:\n\nThe Event class follows the hub pattern established by Custodian:\n\ - - Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via has_timespan\n- Links\ + - Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via temporal_extent\n- Links\ \ to actors (Custodian, Person) via involved_actors\n- Links to place via took_place_at\n- Categorized by hypernym_event_type\ \ (generic) and domain-specific type\n\n**INHERITANCE HIERARCHY**:\n\n```\nEvent (this class - abstract)\n├── OrganizationalChangeEvent\ \ (existing - organizational changes)\n├── IntangibleHeritageEvent (future - ICH-related events)\n├── CollectionEvent\ @@ -48,19 +52,19 @@ classes: \ Physical Things.\"\n\nKey relationships:\n- crm:P4_has_time-span → TimeSpan (when)\n- crm:P7_took_place_at → Place\ \ (where)\n- crm:P11_had_participant → Actor (who)\n- crm:P2_has_type → EventTypeEnum (what kind)\n\n**RELATIONSHIP\ \ TO EXISTING OrganizationalChangeEvent**:\n\nOrganizationalChangeEvent already exists and maps to crm:E5_Event.\nThis\ - \ Event class provides:\n1. Shared base properties (has_timespan, involved_actors, took_place_at)\n2. Generic event\ + \ Event class provides:\n1. Shared base properties (temporal_extent, involved_actors, took_place_at)\n2. Generic event\ \ typing (hypernym_event_type)\n3. Foundation for other event types\n\nFuture migration: OrganizationalChangeEvent can\ \ inherit from Event.\n\n**RELATIONSHIP TO ACTORS**:\n\nEvents link to actors bidirectionally:\n- Event → involved_actors\ \ → Custodian/Person (who participated)\n- Custodian → organizational_change_events → Event (what events affected org)\n\ - Person → is_or_was_affected_by_event → Event (what events affected person)\n\n**EXAMPLE - Merger Event**:\n```yaml\n\ Event:\n event_id: \"https://nde.nl/ontology/hc/event/nha-merger-2001\"\n event_label: \"Noord-Hollands Archief Merger\"\ - \n hypernym_event_type: TRANSFORMATION\n has_timespan:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end:\ + \n hypernym_event_type: TRANSFORMATION\n temporal_extent:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end:\ \ \"2001-01-01\"\n took_place_at: \"https://nde.nl/ontology/hc/place/nl-nh-haa\"\n involved_actors:\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-gah\"\ \n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-ranh\"\n event_description: |\n Merger of Gemeentearchief Haarlem\ \ (founded 1910) and\n Rijksarchief in Noord-Holland (founded 1802) to form\n Noord-Hollands Archief.\n confidence_score:\ \ 0.95\n documentation_source:\n - \"https://noord-hollandsarchief.nl/over-ons/geschiedenis\"\n```\n\n**EXAMPLE\ \ - Destruction Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/gaza-library-destruction-2024\"\ - \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n has_timespan:\n begin_of_the_begin:\ + \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n temporal_extent:\n begin_of_the_begin:\ \ \"2024-01-15\"\n end_of_the_end: \"2024-01-15\"\n took_place_at: \"https://nde.nl/ontology/hc/place/ps-gz-gaz\"\ \n event_description: |\n Gaza Public Library destroyed during military operations.\n confidence_score: 0.85\n\ ```\n" @@ -84,25 +88,49 @@ classes: - crm:E85_Joining - crm:E86_Leaving slots: - - documentation_source - - event_description - - event_id - - event_label - - has_timespan - - hypernym_event_type + - has_or_had_documentation + # MIGRATED 2026-01-26: event_* slots → generic slots + - has_or_had_description + - has_or_had_identifier + - has_or_had_label + - has_or_had_hypernym + # MIGRATED 2026-01-26: has_timespan → temporal_extent + - temporal_extent - has_or_had_involved_actor - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - takes_or_took_place_at # was: took_place_at - migrated per Rule 53 - is_or_was_generated_by # MIGRATED 2026-01-19: replaces confidence_score slot_usage: - event_id: + has_or_had_identifier: required: true identifier: true - hypernym_event_type: + description: >- + Unique identifier for this event. + MIGRATED from event_id (2026-01-26). + has_or_had_hypernym: required: true - has_timespan: + range: EventTypeEnum + description: >- + High-level classification of the event (e.g. TRANSFORMATION, DESTRUCTION). + MIGRATED from hypernym_event_type (2026-01-26). + has_or_had_label: + required: true + description: >- + Label/name of the event. + MIGRATED from event_label (2026-01-26). + has_or_had_description: required: false + description: >- + Description of the event. + MIGRATED from event_description (2026-01-26). + temporal_extent: + required: false + range: TimeSpan + inlined: true + description: >- + Temporal extent of the event. + Replaces has_timespan (migrated 2026-01-26). is_or_was_generated_by: range: GenerationEvent required: false @@ -119,17 +147,17 @@ classes: comments: - Event is the hub class for all temporal phenomena in the HC ontology - Domain-specific events (OrganizationalChangeEvent, CollectionEvent) can inherit from Event - - TimeSpan link (has_timespan) is critical - enables fuzzy temporal reasoning + - TimeSpan link (temporal_extent) is critical - enables fuzzy temporal reasoning - Actor links (involved_actors) connect events to both persons and organizations - - hypernym_event_type provides cross-domain event queries + - has_or_had_hypernym provides cross-domain event queries - 'Future: Add participated_in_events slot to Custodian and Person for inverse navigation' - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore' examples: - value: - event_id: https://nde.nl/ontology/hc/event/nha-merger-2001 - event_label: Noord-Hollands Archief Merger - hypernym_event_type: TRANSFORMATION - has_timespan: + has_or_had_identifier: https://nde.nl/ontology/hc/event/nha-merger-2001 + has_or_had_label: Noord-Hollands Archief Merger + has_or_had_hypernym: TRANSFORMATION + temporal_extent: begin_of_the_begin: '2001-01-01' end_of_the_end: '2001-01-01' has_or_had_involved_actor: diff --git a/schemas/20251121/linkml/modules/classes/Exhibition.yaml b/schemas/20251121/linkml/modules/classes/Exhibition.yaml index 56a68aa7a4..e1c72493ce 100644 --- a/schemas/20251121/linkml/modules/classes/Exhibition.yaml +++ b/schemas/20251121/linkml/modules/classes/Exhibition.yaml @@ -19,8 +19,8 @@ imports: - ./ExhibitionCatalog - ../enums/ExhibitionTypeEnum - ../enums/EventStatusEnum - - ../slots/start_date - - ../slots/end_date + # MIGRATED 2026-01-26: start_date/end_date/exhibition_timespan → temporal_extent (Rule 53) + - ../slots/temporal_extent # REMOVED 2026-01-15: ../slots/wikidata_id - migrated to has_or_had_identifier + WikiDataIdentifier (Rule 53) - ../slots/has_or_had_identifier - ./WikiDataIdentifier @@ -40,7 +40,8 @@ imports: - ../slots/exhibition_name - ../slots/exhibition_status - ../slots/exhibition_subtitle - - ../slots/exhibition_timespan + # MIGRATED 2026-01-26: exhibition_timespan → temporal_extent + # - ../slots/exhibition_timespan - ../slots/exhibition_url - ../slots/exhibition_venue - ../slots/has_or_had_featured_object @@ -99,7 +100,8 @@ classes: - has_or_had_organizer - curated_by - has_or_had_custodian_type - - end_date + # MIGRATED 2026-01-26: start_date/end_date/exhibition_timespan → temporal_extent + - temporal_extent - exhibition_catalog_url - has_or_had_exhibition_catalog - exhibition_description @@ -109,7 +111,7 @@ classes: - exhibition_name - exhibition_status - exhibition_subtitle - - exhibition_timespan + # - exhibition_timespan (migrated to temporal_extent) - exhibition_type - exhibition_url - exhibition_venue @@ -118,7 +120,7 @@ classes: - organized_by - has_or_had_related_exhibition - specificity_annotation - - start_date + # - start_date (migrated to temporal_extent) - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # REMOVED 2026-01-14: traveling_venue - migrated to has_or_had_venue with Venue - has_or_had_venue @@ -215,20 +217,14 @@ classes: examples: - value: Pieter Roelofs - value: Gregor J.M. Weber - start_date: - required: false - range: date - examples: - - value: '2023-02-10' - end_date: - required: false - range: date - examples: - - value: '2023-06-04' - exhibition_timespan: + temporal_extent: required: false range: TimeSpan inlined: true + description: >- + Temporal extent of the exhibition (start/end). + Replaces start_date, end_date, exhibition_timespan. + Use begin_of_the_begin for opening date, end_of_the_end for closing date. examples: - value: begin_of_the_begin: '2023-02-10T00:00:00Z' @@ -405,8 +401,9 @@ classes: curated_by: - Pieter Roelofs - Gregor J.M. Weber - start_date: '2023-02-10' - end_date: '2023-06-04' + temporal_extent: + begin_of_the_begin: '2023-02-10' + end_of_the_end: '2023-06-04' exhibition_location: - place_name: Rijksmuseum city: Amsterdam @@ -449,8 +446,9 @@ classes: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/nationaal-archief has_or_had_role: role_type: PRIMARY - start_date: '2024-05-04' - end_date: '2024-11-11' + temporal_extent: + begin_of_the_begin: '2024-05-04' + end_of_the_end: '2024-11-11' exhibition_location: - place_name: Nationaal Archief city: Den Haag diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index e9f26bd5a7..eefe83e814 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -44,7 +44,6 @@ imports: - ./URL - ../slots/contributor - ../slots/has_or_had_custodian_type - - ../slots/doi - ../slots/is_or_was_instantiated_as - ./EBook - ../slots/is_or_was_edited_by @@ -115,7 +114,6 @@ classes: - has_or_had_url - contributor - has_or_had_custodian_type - - doi - is_or_was_instantiated_as - is_or_was_edited_by - has_or_had_essay @@ -325,12 +323,7 @@ classes: pattern: ^[0-9]{4}-[0-9]{3}[0-9X]$ examples: - value: 0300-4953 - doi: - required: false - range: string - pattern: ^10\.[0-9]+/.+ - examples: - - value: 10.1234/vermeer-catalog-2023 + # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) page: required: false range: integer diff --git a/schemas/20251121/linkml/modules/classes/ExpenseType.yaml b/schemas/20251121/linkml/modules/classes/ExpenseType.yaml new file mode 100644 index 0000000000..d965b9e346 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/ExpenseType.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/class/ExpenseType +name: ExpenseType +title: Expense Type Class +description: >- + Abstract base class for types of expenses (e.g. Personnel, Administrative, Program). + MIGRATED from expense-specific slots (2026-01-26). +prefixes: + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description +default_prefix: hc +classes: + ExpenseType: + abstract: true + description: Classification of an expense. + slots: + - has_or_had_label + - has_or_had_description diff --git a/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml b/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml new file mode 100644 index 0000000000..54455dddea --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/class/ExpenseTypes +name: ExpenseTypes +title: Expense Types +description: >- + Concrete types of expenses. + MIGRATED from expense-specific slots (2026-01-26). +imports: + - linkml:types + - ./ExpenseType +default_prefix: hc +classes: + PersonnelExpenses: + is_a: ExpenseType + description: Costs related to employees (salaries, benefits). + + AdministrativeExpenses: + is_a: ExpenseType + description: General management and administrative costs. + + ProgramExpenses: + is_a: ExpenseType + description: Costs directly related to program delivery. + + FundraisingExpenses: + is_a: ExpenseType + description: Costs incurred to raise funds. + + InnovationExpenses: + is_a: ExpenseType + description: Costs related to R&D and innovation. + + EmployeeBenefitsExpenses: + is_a: ExpenseType + description: Costs of employee benefits (pensions, insurance). diff --git a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index 66487af9a1..e721f7c3d5 100644 --- a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -25,7 +25,7 @@ imports: # - ../slots/change_in_net_asset # ARCHIVED 2026-01-24: migrated to specifies_or_specified + NetAsset per Rule 53/56 - ../slots/specifies_or_specified - ./NetAsset - - ../slots/documents_budget + - ../slots/documents_or_documented - ../slots/filing_id - ../slots/filing_type - ../slots/financial_archival_stage @@ -126,7 +126,7 @@ classes: - audit_status - auditor_name - specifies_or_specified # was: change_in_net_asset - migrated per Rule 53/56 (2026-01-24) - - documents_budget + - documents_or_documented - filing_id - filing_type - financial_archival_stage @@ -303,10 +303,13 @@ classes: description: Current year statement in active use - value: INACTIVE description: Prior year in retention period - documents_budget: + documents_or_documented: range: Budget multivalued: true required: false + description: | + Links this financial statement to the Budget(s) it documents/reports on. + MIGRATED from documents_budget (2026-01-26). examples: - value: https://nde.nl/ontology/hc/budget/rm/fy2023 description: Statement documents FY2023 budget @@ -399,7 +402,7 @@ classes: financial_document_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023 financial_document_format: PDF financial_archival_stage: ACTIVE - documents_budget: + documents_or_documented: - https://nde.nl/ontology/hc/budget/rm/fy2023 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 description: Major museum annual report with full audit @@ -443,7 +446,7 @@ classes: filing_type: IRS Form 990 filing_id: 13-1624102 financial_archival_stage: INACTIVE - documents_budget: + documents_or_documented: - https://nde.nl/ontology/hc/budget/met/fy2022 refers_to_custodian: https://nde.nl/ontology/hc/us-ny-nyc-m-met description: US nonprofit Form 990 filing diff --git a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml index c4571a4a2a..38b0ce8d0f 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml @@ -518,9 +518,9 @@ classes: has_activity_description: | Monthly evening lectures on local history topics, featuring guest speakers from academia, museums, and member experts. - has_timespan: - start_date: "2024-09-01" - end_date: "2025-06-30" + temporal_extent: + begin_of_the_begin: "2024-09-01" + end_of_the_end: "2025-06-30" status: "IN_PROGRESS" - has_activity_identifier: https://nde.nl/ontology/hc/activity/oud-leiden-walk-2025 has_activity_name: "Annual Heritage Walk" @@ -529,9 +529,9 @@ classes: has_activity_description: | Annual guided heritage walk through historic Leiden neighborhoods. Open to public, attracts 50-100 participants. - has_timespan: - start_date: "2025-05-15" - end_date: "2025-05-15" + temporal_extent: + begin_of_the_begin: "2025-05-15" + end_of_the_end: "2025-05-15" status: "PLANNED" description: Heritage society with lecture series and annual heritage walk has_or_had_scope: diff --git a/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml b/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml index 33e6a816a3..df98ff7251 100644 --- a/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml +++ b/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml @@ -44,7 +44,7 @@ imports: - ./ContentType - ./ContentTypes - ../slots/content_language - - ../slots/content_summary + - ../slots/has_or_had_summary - ../slots/copy_note - ../slots/copy_number - ../slots/cover_material @@ -52,7 +52,8 @@ imports: # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - ../slots/is_or_was_published - ./Publication - - ../slots/doi + - ../slots/has_or_had_identifier + - ./DOI # MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53) - ../slots/has_or_had_time_interval - ./TimeInterval @@ -144,15 +145,15 @@ classes: - has_or_had_carrier # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) - has_or_had_content - - content_language - - content_summary + - has_or_had_language + - has_or_had_summary - copy_note - copy_number - cover_material - has_or_had_custodian_type # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - is_or_was_published - - doi + - has_or_had_identifier # MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53) - has_or_had_time_interval - has_or_had_edition @@ -475,12 +476,7 @@ classes: examples: - value: 0028-0836 description: Nature - doi: - required: false - range: string - pattern: ^10\..+/.+$ - examples: - - value: 10.1000/xyz123 + # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) oclc_number: required: false range: string @@ -495,11 +491,12 @@ classes: inlined: true description: | Identifiers for this information carrier. - MIGRATED from call_number (2026-01-17) and wikidata_id (2026-01-15) per Rule 53. + MIGRATED from call_number (2026-01-17), wikidata_id (2026-01-15), and doi (2026-01-26) per Rule 53. Includes: - Library call numbers (bf:shelfMark) - e.g., BS75.A1 1455, Inc. 1 - Wikidata IDs (Q-numbers) - e.g., Q178401 + - DOIs - e.g., 10.1000/xyz123 - Local collection identifiers - Other external identifiers @@ -507,6 +504,7 @@ classes: - LIBRARY_OF_CONGRESS, DEWEY_DECIMAL for classification call numbers - LOCAL_COLLECTION for institutional identifiers - WIKIDATA for Q-numbers + - DOI for Digital Object Identifiers examples: - value: identifier_value: BS75.A1 1455 @@ -520,6 +518,10 @@ classes: identifier_value: Q178401 identifier_scheme: WIKIDATA description: Wikidata identifier for Gutenberg Bible + - value: + identifier_value: 10.1000/xyz123 + identifier_scheme: DOI + description: Digital Object Identifier shelf_mark: required: false range: string @@ -597,7 +599,7 @@ classes: multivalued: true examples: - value: The Holy Bible (English parallel title) - content_summary: + has_or_had_summary: required: false range: string examples: diff --git a/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml b/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml index be011fe355..101d8a02ff 100644 --- a/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml @@ -12,23 +12,31 @@ imports: # REMOVED 2026-01-15: ../slots/wikidata_id - migrated to has_or_had_identifier + WikiDataIdentifier (Rule 53) - ../slots/has_or_had_identifier - ./WikiDataIdentifier - - ../slots/event_id + # MIGRATED 2026-01-26: event_* slots → generic slots (Rule 53) + - ../slots/has_or_had_description + - ../slots/is_or_was_located_at + - ../slots/has_or_had_label + - ../slots/has_or_had_status + - ../slots/has_or_had_url + - ../slots/is_or_was_located_in + # - ../slots/event_id - ../slots/has_or_had_audience_size - ../slots/has_or_had_custodian_type - ../slots/has_or_had_edition - ./Edition - ../slots/event_cancelled_reason - - ../slots/event_date_end - - ../slots/event_date_start - - ../slots/event_description + # - ../slots/event_date_end + # - ../slots/event_date_start + # - ../slots/event_description - ../slots/event_documentation - - ../slots/event_location - - ../slots/event_name - - ../slots/event_status - - ../slots/event_timespan - - ../slots/event_url - - ../slots/event_venue + # - ../slots/event_location + # - ../slots/event_name + # - ../slots/event_status + # - ../slots/event_timespan + # - ../slots/event_url + # - ../slots/event_venue - ../slots/instance_of + - ../slots/temporal_extent # MIGRATED from event_timespan (2026-01-26) - ../slots/organized_by - ../slots/participant_count - ../slots/has_or_had_related_event @@ -73,21 +81,30 @@ classes: - schema:SocialEvent - crm:E4_Period slots: - - audience_size + - has_or_had_audience_size - has_or_had_custodian_type - has_or_had_edition - event_cancelled_reason - - event_date_end - - event_date_start - - event_description + # MIGRATED 2026-01-26: event_* slots → generic slots + - temporal_extent + - has_or_had_description + - has_or_had_identifier + - is_or_was_located_at + - has_or_had_label + - has_or_had_status + - has_or_had_url + - is_or_was_located_in + # - event_date_end + # - event_date_start + # - event_description - event_documentation - - event_id - - event_location - - event_name - - event_status - - event_timespan - - event_url - - event_venue + # - event_id + # - event_location + # - event_name + # - event_status + # - event_timespan + # - event_url + # - event_venue - instance_of - organized_by - participant_count @@ -97,22 +114,31 @@ classes: # REMOVED 2026-01-15: wikidata_id - migrated to has_or_had_identifier (Rule 53) - has_or_had_identifier slot_usage: - event_id: + has_or_had_identifier: identifier: true required: true range: uriorcurie + description: >- + Unique identifier for this intangible heritage event. + MIGRATED from event_id (2026-01-26). examples: - value: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 - event_name: + has_or_had_label: required: true range: string + description: >- + Name of the event. + MIGRATED from event_name (2026-01-26). examples: - value: Pride Amsterdam 2024 - value: Carnaval Maastricht 2025 - value: 1 aprilviering Brielle 2024 - event_description: + has_or_had_description: required: false range: string + description: >- + Description of the event occurrence. + MIGRATED from event_description (2026-01-26). examples: - value: "Pride Amsterdam 2024 celebrated \"Proud of Every Body\" with 80 \nboats in the Canal Parade, attracting\ \ over 500,000 spectators.\n" @@ -134,34 +160,41 @@ classes: has_or_had_identifier: "29" has_or_had_label: "29th Edition" description: Pride Amsterdam 2024 - event_date_start: - required: true - range: date - examples: - - value: '2024-08-03' - event_date_end: - required: false - range: date - examples: - - value: '2024-08-10' - description: Pride Amsterdam typically lasts a week - event_timespan: + temporal_extent: required: false range: TimeSpan - event_location: + inlined: true + description: >- + Temporal extent of the event. + Replaces event_date_start, event_date_end, event_timespan (migrated 2026-01-26). + examples: + - value: + begin_of_the_begin: '2024-08-03' + end_of_the_end: '2024-08-10' + description: Pride Amsterdam typically lasts a week + is_or_was_located_at: required: false range: CustodianPlace multivalued: true - inlined_as_list: true + inlined: true + description: >- + Location where the event took place. + MIGRATED from event_location (2026-01-26). examples: - value: place_name: Amsterdam Canal Ring place_specificity: DISTRICT - event_venue: + is_or_was_located_in: required: false - range: string + range: Venue + inlined: true + multivalued: true + description: >- + Specific venue where the event took place. + MIGRATED from event_venue (2026-01-26). examples: - - value: Museumplein Amsterdam + - value: + has_or_had_label: Museumplein Amsterdam organized_by: required: false range: Custodian @@ -181,9 +214,12 @@ classes: examples: - value: 500000 description: Pride Amsterdam spectators - event_status: + has_or_had_status: required: false range: EventStatusEnum + description: >- + Status of the event. + MIGRATED from event_status (2026-01-26). examples: - value: COMPLETED event_cancelled_reason: @@ -192,9 +228,12 @@ classes: examples: - value: COVID-19 pandemic restrictions description: Pride Amsterdam 2020 cancellation - event_url: + has_or_had_url: required: false range: uri + description: >- + URL for the event. + MIGRATED from event_url (2026-01-26). examples: - value: https://pride.amsterdam/2024 event_documentation: @@ -238,9 +277,9 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 examples: - value: - event_id: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 - event_name: Pride Amsterdam 2024 - event_description: 'The 29th edition of Pride Amsterdam with theme "Proud of Every Body". + has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 + has_or_had_label: Pride Amsterdam 2024 + has_or_had_description: 'The 29th edition of Pride Amsterdam with theme "Proud of Every Body". Featured 80 boats in the Canal Parade with over 500,000 spectators. @@ -248,22 +287,23 @@ classes: instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam has_or_had_edition: - has_or_had_identifier: "29" - event_date_start: '2024-08-03' - event_date_end: '2024-08-10' - event_location: + temporal_extent: + begin_of_the_begin: '2024-08-03' + end_of_the_end: '2024-08-10' + is_or_was_located_at: - place_name: Amsterdam Canal Ring place_specificity: DISTRICT organized_by: - hc_id: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride participant_count: 5000 audience_size: 500000 - event_status: COMPLETED - event_url: https://pride.amsterdam/2024 + has_or_had_status: COMPLETED + has_or_had_url: https://pride.amsterdam/2024 description: Pride Amsterdam 2024 occurrence - value: - event_id: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 - event_name: Pride Amsterdam 2020 - event_description: 'Cancelled due to COVID-19 pandemic restrictions. Virtual Pride Week + has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 + has_or_had_label: Pride Amsterdam 2020 + has_or_had_description: 'Cancelled due to COVID-19 pandemic restrictions. Virtual Pride Week organized as alternative online celebration. @@ -271,8 +311,9 @@ classes: instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam has_or_had_edition: - has_or_had_identifier: "25" - event_date_start: '2020-08-01' - event_date_end: '2020-08-08' - event_status: CANCELLED + temporal_extent: + begin_of_the_begin: '2020-08-01' + end_of_the_end: '2020-08-08' + has_or_had_status: CANCELLED event_cancelled_reason: COVID-19 pandemic restrictions description: Pride Amsterdam 2020 - cancelled event documenting COVID impact diff --git a/schemas/20251121/linkml/modules/classes/LabelTypes.yaml b/schemas/20251121/linkml/modules/classes/LabelTypes.yaml index 8cec286cdb..844f4cc5be 100644 --- a/schemas/20251121/linkml/modules/classes/LabelTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LabelTypes.yaml @@ -41,3 +41,10 @@ classes: is_a: LabelType class_uri: hc:DisplayNameType description: Label type for public-facing display names. + + EmicLabelType: + is_a: LabelType + class_uri: hc:EmicLabelType + description: >- + Emic (insider) name used by the community or entity itself. + MIGRATED from emic_name slot (Rule 53). diff --git a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml index c32fae282c..c1434a703e 100644 --- a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml @@ -33,9 +33,11 @@ imports: # - ../slots/digital_indicator # REMOVED - ../slots/digital_professional - ../slots/education - - ../slots/enriched_date - - ../slots/enrichment_metadata_whatsapp - - ../slots/enrichment_method_whatsapp + - ../slots/temporal_extent # was: enriched_date - migrated per Rule 53 (2026-01-26) + - ../slots/has_or_had_metadata + - ./EnrichmentMetadata + - ../slots/has_or_had_method + - ./EnrichmentMethod - ../slots/experience - ../slots/extraction_metadata - ../slots/headline diff --git a/schemas/20251121/linkml/modules/classes/LlmVerification.yaml b/schemas/20251121/linkml/modules/classes/LlmVerification.yaml index 5cec5cfa68..0c09e5072c 100644 --- a/schemas/20251121/linkml/modules/classes/LlmVerification.yaml +++ b/schemas/20251121/linkml/modules/classes/LlmVerification.yaml @@ -16,7 +16,8 @@ prefixes: imports: - linkml:types - + # MIGRATED 2026-01-26: entity_type → has_or_had_type (Rule 53) + - ../slots/has_or_had_type default_range: string @@ -36,6 +37,8 @@ classes: - prov:Activity related_mappings: - prov:SoftwareAgent + slots: + - has_or_had_type attributes: is_match: range: boolean @@ -43,9 +46,10 @@ classes: confidence: range: float description: Confidence score (0.0-1.0) - entity_type: - range: string - description: CH-Annotator entity type (e.g., GRP.HER.MUS) + # entity_type migrated to has_or_had_type + # entity_type: + # range: string + # description: CH-Annotator entity type (e.g., GRP.HER.MUS) reasoning: range: string description: LLM reasoning for the verification decision @@ -67,3 +71,7 @@ classes: relationship_type: range: string description: Type of relationship (e.g., parent_organization, direct_match) + slot_usage: + has_or_had_type: + range: string + description: CH-Annotator entity type (e.g., GRP.HER.MUS). Replaces entity_type. diff --git a/schemas/20251121/linkml/modules/classes/Membership.yaml b/schemas/20251121/linkml/modules/classes/Membership.yaml index 17486da89e..cb380955e0 100644 --- a/schemas/20251121/linkml/modules/classes/Membership.yaml +++ b/schemas/20251121/linkml/modules/classes/Membership.yaml @@ -24,9 +24,8 @@ imports: - linkml:types - ../metadata - ./TimeSpan - - ../slots/has_timespan - - ../slots/start_date - - ../slots/end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent (Rule 53) + - ../slots/temporal_extent - ../slots/status - ../slots/note - ../slots/specificity_annotation @@ -100,9 +99,8 @@ classes: - member_organization_url - membership_type - membership_role - - has_timespan - - start_date - - end_date + # MIGRATED 2026-01-26: has_timespan/start_date/end_date → temporal_extent + - temporal_extent - status - note - specificity_annotation @@ -162,6 +160,27 @@ classes: - value: "BOARD_MEMBER" description: "Governance role" + temporal_extent: + range: TimeSpan + required: false + inlined: true + description: >- + Temporal extent of the membership. + Replaces has_timespan, start_date, end_date. + Use begin_of_the_begin for start, end_of_the_end for end. + + status: + range: string + required: false + description: Role within the member organization. + examples: + - value: "FULL_MEMBER" + description: "Full institutional membership" + - value: "ASSOCIATE_MEMBER" + description: "Associate/affiliate membership" + - value: "BOARD_MEMBER" + description: "Governance role" + slot_usage: has_timespan: range: TimeSpan @@ -216,7 +235,8 @@ classes: member_organization_url: https://icom.museum/ membership_type: "PROFESSIONAL_ASSOCIATION" membership_role: "FULL_MEMBER" - start_date: "1946-01-01" + temporal_extent: + begin_of_the_begin: "1946-01-01" status: "ACTIVE" description: "Rijksmuseum ICOM membership" @@ -226,6 +246,7 @@ classes: member_organization_url: https://www.oclc.org/ membership_type: "CONSORTIUM" membership_role: "MEMBER_LIBRARY" - start_date: "1980-01-01" + temporal_extent: + begin_of_the_begin: "1980-01-01" status: "ACTIVE" description: "Koninklijke Bibliotheek OCLC membership" diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml index 859e036db0..bfd8dced37 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml @@ -18,20 +18,28 @@ imports: - ./CustodianPlace - ./GeoSpatialPlace - ../slots/id - - ../slots/event_type + # MIGRATED 2026-01-26: event_* slots → generic slots (Rule 53) + - ../slots/has_or_had_type + - ../slots/has_or_had_description + - ../slots/is_or_was_located_at - ../slots/event_date - - ../slots/event_description + # - ../slots/event_type + # - ../slots/event_description - ../slots/has_or_had_affected_unit - ../slots/has_or_had_resulting_unit - ../slots/has_or_had_associated_custodian # was: parent_custodian - migrated per Rule 53 (2025-01-15) - ../slots/change_rationale - ../slots/staff_impact - - ../slots/documentation_source + - ../slots/has_or_had_documentation + - ../slots/has_or_had_url + - ./Documentation + - ./URL - ../slots/temporal_extent # was: valid_from + valid_to - migrated per Rule 53 - ./TimeSpan # REMOVED 2026-01-14: valid_from + valid_to - migrated to temporal_extent (Rule 53) - ../slots/has_or_had_affected_territory - - ../slots/event_location + # MIGRATED 2026-01-26: event_location → is_or_was_located_at + # - ../slots/event_location - ../slots/from_location - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -87,7 +95,7 @@ classes: |------|-------|---------| - | event_location | CustodianPlace | Where event occurred (board meeting, ceremony) | + | is_or_was_located_at | CustodianPlace | Where event occurred (board meeting, ceremony) | | from_location | CustodianPlace | Previous location (RELOCATION) | @@ -134,11 +142,12 @@ classes: - has_or_had_affected_territory - has_or_had_affected_unit - change_rationale - - documentation_source + - has_or_had_documentation - event_date - - event_description - - event_location - - event_type + # MIGRATED 2026-01-26: event_* slots → generic slots + - has_or_had_description + - is_or_was_located_at + - has_or_had_type - from_location - id - has_or_had_associated_custodian # was: parent_custodian - migrated per Rule 53 (2025-01-15) @@ -155,9 +164,12 @@ classes: range: uriorcurie examples: - value: https://nde.nl/ontology/hc/event/rijksmuseum-conservation-reorganization-2013 - event_type: + has_or_had_type: required: true range: OrganizationalChangeEventTypeEnum + description: >- + Type of organizational change. + MIGRATED from event_type (2026-01-26). examples: - value: MERGER - value: REORGANIZATION @@ -167,9 +179,12 @@ classes: examples: - value: '2013-04-01' description: Rijksmuseum reorganization after renovation - event_description: + has_or_had_description: required: true range: string + description: >- + Description of the change event. + MIGRATED from event_description (2026-01-26). examples: - value: Merger of Restoration Department (12 FTE, founded 1885) and Research Department (16 FTE) to form Conservation and Research Department (28 FTE). Implemented as part of museum renovation and reopening strategy. Combined @@ -218,9 +233,12 @@ classes: examples: - value: 28 FTE total (12 from Restoration + 16 from Research). All existing staff retained. 5 new positions created for scientific imaging and digital conservation. 3 staff retirements (planned succession). - event_location: + is_or_was_located_at: range: CustodianPlace required: false + description: >- + Location where the event occurred. + MIGRATED from event_location (2026-01-26). examples: - value: place_name: Rijksmuseum Boardroom @@ -261,10 +279,18 @@ classes: longitude: 4.8 geometry_type: MULTIPOLYGON description: Territories affected by Noord-Hollands Archief merger (2001) - documentation_source: - range: uri + has_or_had_documentation: + range: Documentation + inlined: true + multivalued: true + description: | + Documentation sources for this organizational change event. + MIGRATED from documentation_source (2026-01-26). examples: - - value: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 + - value: + has_or_had_url: + url_value: "https://www.rijksmuseum.nl/en/about-us/annual-report-2013" + description: Annual report URL as source temporal_extent: # was: valid_from + valid_to - migrated per Rule 53 description: | Validity period using CIDOC-CRM TimeSpan. @@ -282,7 +308,7 @@ classes: - event_date should match valid_to (dissolved units) or valid_from (created units) - Use PROV-O generated property for successor units - Use CIDOC-CRM P11_had_participant for affected units - - 'Place integration: event_location (where event occurred), from/to_location (RELOCATION)' + - 'Place integration: is_or_was_located_at (where event occurred), from/to_location (RELOCATION)' - 'Territorial integration: has_or_had_affected_territory links to GeoSpatialPlace for jurisdiction changes' - 'Follows TOOI pattern: Wijzigingsgebeurtenis affects BestuurlijkeRuimte' see_also: @@ -295,9 +321,9 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/event/rijks-conservation-merger-2013 - event_type: MERGER + has_or_had_type: MERGER event_date: '2013-04-01' - event_description: "Merger of Restoration Department and Research Department to form \nConservation and Research Department\ + has_or_had_description: "Merger of Restoration Department and Research Department to form \nConservation and Research Department\ \ during museum renovation.\n" has_or_had_affected_unit: - id: https://nde.nl/ontology/hc/org-unit/rijks-restoration-old @@ -307,37 +333,43 @@ classes: has_or_had_resulting_unit: - id: https://nde.nl/ontology/hc/org-unit/rijks-conservation-research unit_name: Conservation and Research Department - parent_custodian: + has_or_had_associated_custodian: hc_id: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 change_rationale: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities. staff_impact: 28 FTE (12+16), all staff retained, 5 new positions - documentation_source: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 - valid_from: '2013-04-01' + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.rijksmuseum.nl/en/about-us/annual-report-2013" + temporal_extent: + begin_of_the_begin: '2013-04-01' description: Rijksmuseum departmental merger during renovation - value: id: https://nde.nl/ontology/hc/event/na-digital-preservation-founding-2008 - event_type: FOUNDING + has_or_had_type: FOUNDING event_date: '2008-01-01' - event_description: "Creation of Digital Preservation Department to address born-digital \narchival challenges and\ + has_or_had_description: "Creation of Digital Preservation Department to address born-digital \narchival challenges and\ \ e-government records.\n" affected_units: [] has_or_had_resulting_unit: - id: https://nde.nl/ontology/hc/org-unit/na-digital-preservation unit_name: Digital Preservation Department - parent_custodian: + has_or_had_associated_custodian: hc_id: https://nde.nl/ontology/hc/nl-zh-haa-a-na change_rationale: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise. staff_impact: 15 FTE, all new hires with digital archiving expertise - documentation_source: https://www.nationaalarchief.nl/onderzoeken/archief/2.24.17.07 - valid_from: '2008-01-01' + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.nationaalarchief.nl/onderzoeken/archief/2.24.17.07" + temporal_extent: + begin_of_the_begin: '2008-01-01' description: National Archives digital department creation - value: id: https://nde.nl/ontology/hc/event/amsterdam-museum-relocation-2025 - event_type: RELOCATION + has_or_had_type: RELOCATION event_date: '2025-06-01' - event_description: "Amsterdam Museum relocates from historic Burgerweeshuis building to \nnew purpose-built facility.\ + has_or_had_description: "Amsterdam Museum relocates from historic Burgerweeshuis building to \nnew purpose-built facility.\ \ Move required due to structural concerns \nand accessibility improvements.\n" has_or_had_affected_unit: - id: https://nde.nl/ontology/hc/org-unit/amsterdam-museum-main @@ -345,7 +377,7 @@ classes: has_or_had_resulting_unit: - id: https://nde.nl/ontology/hc/org-unit/amsterdam-museum-main unit_name: Amsterdam Museum - parent_custodian: + has_or_had_associated_custodian: hc_id: https://nde.nl/ontology/hc/nl-nh-ams-m-am change_rationale: Historic Burgerweeshuis building requires major renovation. New facility offers better accessibility, climate control, and exhibition space. @@ -376,6 +408,9 @@ classes: temporal_extent: # was: valid_from_geo begin_of_the_begin: '2025-06-01' staff_impact: All 45 FTE relocating to new facility. No redundancies. - documentation_source: https://www.amsterdam.nl/nieuws/museum-verhuizing-2025 - valid_from: '2025-06-01' + has_or_had_documentation: + - has_or_had_url: + url_value: "https://www.amsterdam.nl/nieuws/museum-verhuizing-2025" + temporal_extent: + begin_of_the_begin: '2025-06-01' description: Museum relocation with full location tracking diff --git a/schemas/20251121/linkml/modules/classes/Policy.yaml b/schemas/20251121/linkml/modules/classes/Policy.yaml index f02ef07869..1c72f9916a 100644 --- a/schemas/20251121/linkml/modules/classes/Policy.yaml +++ b/schemas/20251121/linkml/modules/classes/Policy.yaml @@ -24,8 +24,8 @@ imports: - ../slots/policy_id - ../slots/policy_name - ../slots/policy_description - - ../slots/policy_effective_from - - ../slots/policy_effective_to + - ../slots/is_or_was_effective_at + - ../slots/is_or_was_expired_at - ../slots/note classes: @@ -70,8 +70,8 @@ classes: - policy_id - policy_name - policy_description - - policy_effective_from - - policy_effective_to + - is_or_was_effective_at + - is_or_was_expired_at - note slot_usage: @@ -83,10 +83,18 @@ classes: description: Human-readable name for the policy. policy_description: description: Detailed description of the policy's scope and requirements. - policy_effective_from: - description: Date when this policy became/becomes effective. - policy_effective_to: - description: Date when this policy expired/expires. + is_or_was_effective_at: + description: | + Date when this policy became/becomes effective. + MIGRATED from policy_effective_from (2026-01-26). + range: date + required: false + is_or_was_expired_at: + description: | + Date when this policy expired/expires. + MIGRATED from policy_effective_to (2026-01-26). + range: date + required: false note: description: Additional notes about the policy. diff --git a/schemas/20251121/linkml/modules/classes/Project.yaml b/schemas/20251121/linkml/modules/classes/Project.yaml index 65b0362bcb..ccf2e715a0 100644 --- a/schemas/20251121/linkml/modules/classes/Project.yaml +++ b/schemas/20251121/linkml/modules/classes/Project.yaml @@ -26,7 +26,9 @@ imports: - ../slots/has_or_had_objective - ./Deliverable - ../slots/documentation_url - - ../slots/end_date + # MIGRATED 2026-01-26: start_date/end_date → temporal_extent + TimeSpan (Rule 53) + - ../slots/temporal_extent + - ./TimeSpan - ../slots/funding_amount - ../slots/funding_call - ../slots/funding_source @@ -36,7 +38,6 @@ imports: - ../slots/participating_custodian - ../slots/related_project - ../slots/specificity_annotation - - ../slots/start_date - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (replaced project_* slots 2026-01-16) - ../slots/has_or_had_identifier @@ -97,7 +98,8 @@ classes: # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective - documentation_url - - end_date + # MIGRATED 2026-01-26: start_date/end_date → temporal_extent + - temporal_extent - funding_amount - funding_call - funding_source @@ -107,7 +109,6 @@ classes: - participating_custodian - related_project - specificity_annotation - - start_date - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (migrated 2026-01-16 per Rule 53) - has_or_had_identifier # was: project_id, project_identifier @@ -176,16 +177,18 @@ classes: examples: - value: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ description: NDE Versnellen project page - start_date: - range: date + temporal_extent: + range: TimeSpan + inlined: true + description: >- + Time period for the project. + Replaces start_date/end_date with generic temporal_extent. + Use begin_of_the_begin for start, end_of_the_end for end. examples: - - value: '2024-01-01' - description: Project started January 2024 - end_date: - range: date - examples: - - value: '2024-12-31' - description: Project ends December 2024 + - value: + begin_of_the_begin: '2024-01-01' + end_of_the_end: '2024-12-31' + description: Project duration 2024 funding_source: range: string multivalued: true @@ -320,8 +323,9 @@ classes: \ for image interoperability\n- Sustainable API development\n- Metadata quality improvement\n" has_or_had_status: IN_PROGRESS has_or_had_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ - start_date: '2024-01-15' - end_date: '2024-12-31' + temporal_extent: + begin_of_the_begin: '2024-01-15' + end_of_the_end: '2024-12-31' funding_source: - Ministry of OCW (Netherlands) - NDE member contributions @@ -374,8 +378,9 @@ classes: \ works with national aggregators to improve metadata \nquality and implement the Europeana Data Model (EDM).\n" has_or_had_status: IN_PROGRESS has_or_had_url: https://pro.europeana.eu/project/europeana-common-culture - start_date: '2023-06-01' - end_date: '2025-05-31' + temporal_extent: + begin_of_the_begin: '2023-06-01' + end_of_the_end: '2025-05-31' funding_source: - Horizon Europe (European Commission) funding_amount: 4.2M EUR diff --git a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml index 26f80d5d30..0dd824a1a4 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml @@ -16,9 +16,16 @@ imports: - ./TimeSpan - ./CustodianPlace - ../enums/ProvenanceEventTypeEnum - - ../slots/event_id + # MIGRATED 2026-01-26: event_* slots → generic slots (Rule 53) + - ../slots/has_or_had_identifier + - ../slots/has_or_had_type + - ../slots/has_or_had_description + - ../slots/has_or_had_note + - ../slots/is_or_was_located_at + - ./Identifier + # - ../slots/event_id - ../slots/object_ref - - ../slots/event_type + # - ../slots/event_type - ../slots/event_date - ../slots/price - ../slots/price_currency @@ -33,11 +40,13 @@ imports: # REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53) - ../slots/is_or_was_associated_with - ./ArtDealer - - ../slots/documentation - - ../slots/documentation_url + - ../slots/has_or_had_reference + - ../slots/has_or_had_url + - ./Reference + - ./URL - ../slots/event_date_text - - ../slots/event_note - - ../slots/event_timespan + # - ../slots/event_note + # - ../slots/event_timespan - ../slots/footnote - ../slots/changes_or_changed_ownership_from # was: from_owner - migrated per Rule 56 (2026-01-16) - ../slots/changes_or_changed_ownership_to # was: to_owner - migrated per Rule 56 (2026-01-16) @@ -48,8 +57,9 @@ imports: - ../slots/requires_research - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - # REMOVED 2026-01-15: transfer_location, transfer_location_text - migrated to event_location (Rule 53) - - ../slots/event_location + # MIGRATED 2026-01-15: transfer_location, transfer_location_text → event_location (Rule 53) + # MIGRATED 2026-01-26: event_location → is_or_was_located_at (Rule 53) + # - ../slots/event_location - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) @@ -92,14 +102,19 @@ classes: - has_or_had_custodian_type # REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53) - is_or_was_associated_with - - documentation - - documentation_url + - has_or_had_reference + - has_or_had_url - event_date - event_date_text - - event_id - - event_note - - event_timespan - - event_type + # MIGRATED 2026-01-26: event_* slots → generic slots + - has_or_had_identifier + - has_or_had_note + - temporal_extent # was: event_timespan + - has_or_had_type + # - event_id + # - event_note + # - event_timespan + # - event_type - footnote - changes_or_changed_ownership_from # was: from_owner - migrated per Rule 56 (2026-01-16) # MIGRATED 2026-01-15: from_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53, symmetry with to_owner_text) @@ -116,12 +131,17 @@ classes: - changes_or_changed_ownership_to # was: to_owner - migrated per Rule 56 (2026-01-16) - has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) # was: to_owner_text - migrated per Rule 53 (2026-01-15) # MIGRATED 2026-01-15: transfer_location, transfer_location_text → event_location (Rule 53) - - event_location + # MIGRATED 2026-01-26: event_location → is_or_was_located_at + - is_or_was_located_at + # - event_location slot_usage: - event_id: + has_or_had_identifier: identifier: true required: true range: uriorcurie + description: >- + Unique identifier for this provenance event. + MIGRATED from event_id (2026-01-26). examples: - value: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 - value: https://nde.nl/ontology/hc/provenance/rijksmuseum-sk-c-5-005 @@ -131,9 +151,12 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: + has_or_had_type: required: true range: ProvenanceEventTypeEnum + description: >- + Type of provenance event (ACQUISITION, TRANSFER, etc.). + MIGRATED from event_type (2026-01-26). examples: - value: BEQUEST - value: AUCTION @@ -154,10 +177,13 @@ classes: - value: before 1881 - value: 1933-1945 description: Nazi era date range - event_timespan: + temporal_extent: required: false range: TimeSpan inlined: true + description: >- + Temporal extent of the provenance event. + MIGRATED from event_timespan (2026-01-26). examples: - value: begin_of_the_begin: '1664-01-01' @@ -216,10 +242,11 @@ classes: description_type: to_owner description: Historical owner as text # MIGRATED 2026-01-15: transfer_location, transfer_location_text → event_location (Rule 53) - event_location: + # MIGRATED 2026-01-26: event_location → is_or_was_located_at + is_or_was_located_at: description: | Location where the provenance event (ownership/custody transfer) occurred. - Replaces bespoke transfer_location and transfer_location_text slots. + Replaces bespoke transfer_location, transfer_location_text, event_location slots. required: false range: CustodianPlace multivalued: true @@ -299,21 +326,38 @@ classes: has_or_had_name: has_or_had_label: "Goupil & Cie" description: French art dealing firm - documentation: + has_or_had_reference: + description: | + Bibliographic or archival reference documenting this event. + MIGRATED from documentation per slot_fixes.yaml (Rule 53, 2026-01-26). required: false - range: string + range: Reference + inlined: true multivalued: true examples: - - value: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 - - value: Hofstede de Groot, vol. 1, no. 44 - - value: Braamcamp sale, Amsterdam, July 31, 1771, lot 54 - documentation_url: + - value: + has_or_had_label: "Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36" + description: Sale catalogue reference + - value: + has_or_had_label: "Hofstede de Groot, vol. 1, no. 44" + description: Catalogue raisonné reference + has_or_had_url: + description: | + URL to online documentation or provenance record. + MIGRATED from documentation_url per slot_fixes.yaml (Rule 53, 2026-01-26). required: false - range: uri + range: URL + inlined: true multivalued: true examples: - - value: https://rkd.nl/explore/provenance/12345 - - value: https://www.getty.edu/research/provenance/sales + - value: + url_value: "https://rkd.nl/explore/provenance/12345" + url_type: "provenance_record" + description: RKD provenance record + - value: + url_value: "https://www.getty.edu/research/provenance/sales" + url_type: "sales_database" + description: Getty Sales Catalogues has_or_had_level: # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18) description: | Certainty/confidence level for this provenance event. @@ -380,10 +424,13 @@ classes: examples: - value: true description: Provenance gap 1933-1945 - event_note: + has_or_had_note: required: false range: string multivalued: true + description: >- + Notes about the provenance event. + MIGRATED from event_note (2026-01-26). examples: - value: des Tombe purchased at auction for 30 guilders, a bargain price - value: The painting's attribution to Vermeer was not recognized until later @@ -404,19 +451,19 @@ classes: - https://www.getty.edu/research/tools/provenance/ examples: - value: - event_id: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: CREATION + has_or_had_type: CREATION event_date_text: c. 1665 - event_timespan: + temporal_extent: begin_of_the_begin: '1664-01-01' end_of_the_end: '1667-12-31' # MIGRATED 2026-01-15: to_owner_text, from_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) has_or_had_description: - description_text: Johannes Vermeer, Delft description_type: to_owner - # MIGRATED 2026-01-15: transfer_location_text → event_location (Rule 53) - event_location: + # MIGRATED 2026-01-26: event_location → is_or_was_located_at (Rule 53) + is_or_was_located_at: - place_name: Delft country: NL has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) @@ -427,9 +474,9 @@ classes: description_type: provenance_text description: Creation of Girl with a Pearl Earring - value: - event_id: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: PURCHASE + has_or_had_type: PURCHASE event_date_text: c. 1665-1674 # MIGRATED 2026-01-15: from_owner_text, to_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) has_or_had_description: @@ -442,17 +489,17 @@ classes: has_or_had_note: - note_type: certainty note_content: "Van Ruijven was Vermeer's patron; likely acquired directly from artist" - documentation: - - Montias, Vermeer and His Milieu (1989), pp. 247-252 + has_or_had_reference: + - has_or_had_label: "Montias, Vermeer and His Milieu (1989), pp. 247-252" has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) has_or_had_description: - description_text: "Possibly Pieter van Ruijven, Delft (c. 1665-1674)" description_type: provenance_text description: Possible purchase by van Ruijven - value: - event_id: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: AUCTION + has_or_had_type: AUCTION event_date: '1696-05-16' event_date_text: May 16, 1696 # MIGRATED 2026-01-15: from_owner_text, to_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) @@ -461,17 +508,17 @@ classes: description_type: from_owner - description_text: Unknown buyer description_type: to_owner - # MIGRATED 2026-01-15: transfer_location_text → event_location (Rule 53) - event_location: + # MIGRATED 2026-01-26: event_location → is_or_was_located_at (Rule 53) + is_or_was_located_at: - place_name: Amsterdam country: NL - auction_sale_name: Dissius sale + has_auction_sale_name: Dissius sale lot_number: '36' price_text: Unknown has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) level_value: CERTAIN - documentation: - - Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 + has_or_had_reference: + - has_or_had_label: "Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36" footnote: - Catalogued as 'Een Tronij in Antique Klederen, ongemeen konstig' (A Tronie in Antique Dress, uncommonly artful) has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) @@ -480,9 +527,9 @@ classes: description_type: provenance_text description: 1696 Dissius auction sale - value: - event_id: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: PURCHASE + has_or_had_type: PURCHASE event_date: '1881-01-01' event_date_text: '1881' # MIGRATED 2026-01-15: from_owner_text, to_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) @@ -500,14 +547,14 @@ classes: has_or_had_description: - description_text: "A.A. des Tombe, The Hague (purchased 1881 for 30 guilders)" description_type: provenance_text - event_note: + has_or_had_note: - Des Tombe purchased at auction for a bargain price - Painting was in poor condition and not yet attributed to Vermeer description: 1881 purchase by des Tombe - value: - event_id: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - event_type: BEQUEST + has_or_had_type: BEQUEST event_date: '1903-01-01' event_date_text: '1903' # MIGRATED 2026-01-15: from_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) @@ -519,18 +566,18 @@ classes: changes_or_changed_ownership_to: https://nde.nl/ontology/hc/custodian/nl/mauritshuis # was: to_owner - migrated per Rule 56 (2026-01-16) has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) level_value: CERTAIN - documentation: - - Will of A.A. des Tombe - - Mauritshuis accession records + has_or_had_reference: + - has_or_had_label: "Will of A.A. des Tombe" + - has_or_had_label: "Mauritshuis accession records" has_or_had_provenance: # was: provenance_text - migrated per Rule 53/56 (2026-01-18) has_or_had_description: - description_text: "Bequeathed to Mauritshuis, 1903" description_type: provenance_text description: 1903 bequest to Mauritshuis - value: - event_id: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation + has_or_had_identifier: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation object_ref: https://nde.nl/ontology/hc/object/example-painting - event_type: CONFISCATION + has_or_had_type: CONFISCATION event_date_text: '1938' # MIGRATED 2026-01-15: from_owner_text, to_owner_text → has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) (Rule 53) has_or_had_description: @@ -545,7 +592,7 @@ classes: has_or_had_note: - note_type: certainty note_content: "Documentation incomplete; collector fled Vienna 1938" - event_note: + has_or_had_note: - Provenance gap requires further research - Listed on Art Loss Register description: Example Nazi-era confiscation (illustrative) diff --git a/schemas/20251121/linkml/modules/classes/Quantity.yaml b/schemas/20251121/linkml/modules/classes/Quantity.yaml index 145d84b7d4..dd40238002 100644 --- a/schemas/20251121/linkml/modules/classes/Quantity.yaml +++ b/schemas/20251121/linkml/modules/classes/Quantity.yaml @@ -17,6 +17,8 @@ imports: - ../slots/has_or_had_description - ../slots/has_or_had_measurement_unit - ../slots/has_or_had_methodology + - ../slots/is_or_was_based_on + - ../slots/has_or_had_provenance - ../slots/temporal_extent - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -29,6 +31,7 @@ imports: # Class imports - ./MeasureUnit - ./Methodology + - ./EstimationMethod - ./TimeSpan - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) @@ -111,6 +114,8 @@ classes: - quantity_unit - has_or_had_measurement_unit - has_or_had_methodology + - is_or_was_based_on + - has_or_had_provenance - temporal_extent - has_or_had_description - quantity_date diff --git a/schemas/20251121/linkml/modules/classes/SearchAPI.yaml b/schemas/20251121/linkml/modules/classes/SearchAPI.yaml index ae78bc48f7..2c6d8b4c05 100644 --- a/schemas/20251121/linkml/modules/classes/SearchAPI.yaml +++ b/schemas/20251121/linkml/modules/classes/SearchAPI.yaml @@ -49,7 +49,7 @@ classes: - `results`/`items`/`records`: Array of result objects\n- `facets`: Aggregation counts for filtering\n- `pagination`:\ \ Links or cursors for paging\n\n**See Also:**\n\n- OpenSearch: https://opensearch.org/\n- Hydra API vocabulary: https://www.hydra-cg.com/\n" attributes: - search_url: + has_or_had_url: slot_uri: dcat:endpointURL description: 'Search endpoint URL. diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml index e32f799c90..aa94528342 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml @@ -21,9 +21,10 @@ imports: - ../slots/has_or_had_associated_auxiliary_platform - ../slots/has_or_had_associated_digital_platform - ../slots/cover_image_url - - ../slots/created_date - - ../slots/engagement_rate - - ../slots/follower_count + - ../slots/is_or_was_categorized_as + - ../slots/has_or_had_engagement_metric + - ./EngagementMetric + - ../slots/average_likes - ../slots/following_count - ../slots/is_primary_digital_presence - ../slots/metrics_observed_date @@ -123,7 +124,7 @@ classes: - has_or_had_associated_digital_platform - cover_image_url - created_date - - engagement_rate + - has_or_had_engagement_metric - follower_count - following_count - is_primary_digital_presence @@ -238,12 +239,19 @@ classes: examples: - value: 2500 description: 2,500 posts - engagement_rate: - range: float - required: false + has_or_had_engagement_metric: + range: EngagementMetric + inlined: true + multivalued: true + description: >- + Metrics tracking engagement (rates, counts). + MIGRATED from engagement_rate per Rule 53 (2026-01-26). examples: - - value: 2.5 - description: 2.5% engagement rate + - value: + has_or_had_type: "Engagement Rate" + has_or_had_value: 2.5 + has_or_had_unit: "%" + description: Average engagement rate metrics_observed_date: range: datetime required: false @@ -349,7 +357,10 @@ classes: status: VERIFIED follower_count: 1200000 post_count: 3500 - engagement_rate: 2.5 + has_or_had_engagement_metric: + - has_or_had_type: "Engagement Rate" + has_or_had_value: 2.5 + has_or_had_unit: "%" metrics_observed_date: '2025-11-29T12:00:00Z' associated_digital_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website account_status: ACTIVE diff --git a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index ce9b468aff..f1f52654a2 100644 --- a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -36,7 +36,9 @@ imports: - ./BoxNumber - ./UnitIdentifier # Added for unit_id/unit_identifier migration (2026-01-14) - ../slots/current_item_count - - ../slots/drawer_number + - ../slots/has_or_had_drawer + - ./Drawer + - ./DrawerNumber - ../slots/part_of_storage - ../slots/part_of_zone - ../slots/row_number @@ -106,7 +108,7 @@ classes: # REMOVED 2026-01-17: capacity_item - migrated to has_or_had_capacity (Rule 53) # - capacity_item - current_item_count - - drawer_number + - has_or_had_drawer - part_of_storage - part_of_zone - row_number @@ -190,10 +192,18 @@ classes: examples: - value: 4 description: Fourth shelf from bottom - drawer_number: - range: integer + has_or_had_drawer: + range: Drawer + multivalued: true + inlined: true + description: | + Drawer within the storage unit. + MIGRATED from drawer_number (2026-01-26). examples: - - value: 3 + - value: + has_or_had_identifier: + identifier_value: "3" + description: Drawer 3 # DEPRECATED - use has_or_had_identifier with range BoxNumber # box_number: # range: integer @@ -276,7 +286,9 @@ classes: - description_text: 'Flat file drawer containing oversized maps of the Netherlands, 1850-1920. Climate-controlled environment.' description_type: unit language: en - drawer_number: 42 + has_or_had_drawer: + - has_or_had_identifier: + identifier_value: "42" has_or_had_capacity: # was: capacity_items - migrated per Rule 53 - capacity_value: 50 capacity_type: ITEM_COUNT diff --git a/schemas/20251121/linkml/modules/classes/URLType.yaml b/schemas/20251121/linkml/modules/classes/URLType.yaml new file mode 100644 index 0000000000..ebbe2d7ec9 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/URLType.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/class/URLType +name: URLType +title: URL Type Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + +classes: + URLType: + class_uri: skos:Concept + abstract: true + description: >- + Abstract base class for URL type classification (e.g. LinkedIn Profile, Official Website). + + **Ontology Alignment**: + - **Primary**: `skos:Concept` + + slots: + - has_or_had_label + - has_or_had_identifier diff --git a/schemas/20251121/linkml/modules/classes/URLTypes.yaml b/schemas/20251121/linkml/modules/classes/URLTypes.yaml new file mode 100644 index 0000000000..5300180f16 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/URLTypes.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/class/URLTypes +name: URLTypes +title: URL Types Classes +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + - ./URLType + +classes: + LinkedInProfileURLType: + is_a: URLType + description: URL pointing to a LinkedIn profile (person or company). + + OfficialWebsiteType: + is_a: URLType + description: Official website of an entity. + + SocialMediaURLType: + is_a: URLType + description: URL for a social media profile (general). diff --git a/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml b/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml index 7248b8f147..76a463fdbf 100644 --- a/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml @@ -11,7 +11,9 @@ imports: - ./Caption - ../slots/has_or_had_alignment - ./Alignment - - ../slots/entry_count + # MIGRATED 2026-01-26: entry_count → has_or_had_quantity + Quantity (Rule 53) + - ../slots/has_or_had_quantity + - ./Quantity - ../slots/includes_music_description - ../slots/includes_sound_description - ../slots/includes_speaker_identification @@ -242,7 +244,8 @@ classes: # MIGRATED 2026-01-24: default_position → has_or_had_caption + has_or_had_alignment (Rule 53) - has_or_had_caption - has_or_had_alignment - - entry_count + # MIGRATED 2026-01-26: entry_count → has_or_had_quantity + - has_or_had_quantity - includes_music_description - includes_sound_description - includes_speaker_identification @@ -384,12 +387,18 @@ classes: vertical_alignment: "bottom" horizontal_alignment: "left" description: Bottom-left positioning - entry_count: - range: integer + has_or_had_quantity: + range: Quantity required: false - minimum_value: 0 + inlined: true + description: >- + Number of subtitle entries (caption cues). + MIGRATED from entry_count per Rule 53 (2026-01-26). examples: - - value: 127 + - value: + quantity_value: 127 + has_or_had_unit: + has_or_had_label: "entries" description: 127 caption cues in this track has_average_entry_duration_seconds: range: float diff --git a/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml b/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml index df6d87835b..82324c8e8b 100644 --- a/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml @@ -3,8 +3,9 @@ name: video_time_segment_class title: Video Time Segment Class imports: - linkml:types - - ../slots/end_seconds - - ../slots/end_time + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval (Rule 53) + - ../slots/has_or_had_time_interval + - ./TimeInterval - ../slots/segment_index - ../slots/segment_text - ../slots/speaker_id @@ -149,8 +150,8 @@ classes: related_mappings: - schema:Clip slots: - - end_seconds - - end_time + # MIGRATED 2026-01-26: end_seconds/end_time → has_or_had_time_interval + - has_or_had_time_interval - segment_index - segment_text - speaker_id @@ -170,13 +171,17 @@ classes: description: 30 seconds from video start - value: PT1H15M30S description: 1 hour 15 minutes 30 seconds - end_time: - range: string - required: false - pattern: ^PT(\d+H)?(\d+M)?(\d+(\.\d+)?S)?$ + has_or_had_time_interval: + range: TimeInterval + required: true + inlined: true + description: >- + Duration of the segment (replaces end_time/end_seconds). + Use duration_value for ISO 8601 duration (e.g., PT5S). examples: - - value: PT0M35S - description: 35 seconds from video start + - value: + duration_value: PT0M05S + description: 5 second duration start_seconds: range: float required: true @@ -186,13 +191,6 @@ classes: description: 30 seconds from start - value: 30.5 description: 30.5 seconds (millisecond precision) - end_seconds: - range: float - required: true - minimum_value: 0.0 - examples: - - value: 35.0 - description: 35 seconds from start segment_text: range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/WebPortal.yaml b/schemas/20251121/linkml/modules/classes/WebPortal.yaml index a0965ad2be..2d2ec91097 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortal.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortal.yaml @@ -411,7 +411,7 @@ classes: - value: - endpoint_id: https://nde.nl/ontology/hc/endpoint/europeana-oai endpoint_name: Europeana OAI-PMH - endpoint_url: https://oai.europeana.eu/oai + has_or_had_url: https://oai.europeana.eu/oai protocol: OAI_PMH protocol_version: '2.0' status: ACTIVE diff --git a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml index d5293dbedb..dc31ab3736 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml @@ -34,7 +34,8 @@ imports: # REMOVED 2026-01-22: ../slots/dataset_title - migrated to has_or_had_title + Title (Rule 53) - ../slots/has_or_had_title - ./Title - - ../slots/download_endpoint + - ../slots/can_or_could_be_retrieved_from + - ./Endpoint - ../slots/has_availability_timespan - ../slots/has_or_had_linked_data_endpoint - ../slots/has_or_had_open_access_endpoint @@ -1225,7 +1226,7 @@ classes: - `sparql_endpoint`: LinkedDataHub providing semantic access - - `download_endpoint`: OpenAccessRepository providing bulk access + - `download_endpoint`: OpenAccessRepository providing bulk access (MIGRATED to `can_or_could_be_retrieved_from`) ' class_uri: dcat:Dataset @@ -1234,7 +1235,7 @@ classes: - has_or_had_description # was: dataset_description - migrated per Rule 53 (2026-01-22) - has_or_had_identifier # was: dataset_identifier - migrated per Rule 53 (2026-01-22) - has_or_had_title # was: dataset_title - migrated per Rule 53 (2026-01-22) - - download_endpoint + - can_or_could_be_retrieved_from - linked_data_access - is_or_was_published_by # was: published_by - migrated per Rule 53/56 (2026-01-17) - specificity_annotation diff --git a/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml b/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml index 158b54ab78..794c47b220 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml @@ -16,7 +16,9 @@ prefixes: imports: - linkml:types - + # MIGRATED 2026-01-26: start_time/end_time → temporal_extent (Rule 53) + - ../slots/temporal_extent + - ./TimeSpan default_range: string @@ -40,6 +42,8 @@ classes: related_mappings: - schema:Event - prov:Entity + slots: + - temporal_extent attributes: inception: range: string @@ -53,9 +57,18 @@ classes: date_of_official_opening: range: string description: Date of official opening (P1619) - start_time: - range: string - description: Start time (P580) - when activity began - end_time: - range: string - description: End time (P582) - when activity ended + # start_time/end_time migrated to temporal_extent + # start_time: + # range: string + # description: Start time (P580) - when activity began + # end_time: + # range: string + # description: End time (P582) - when activity ended + slot_usage: + temporal_extent: + range: TimeSpan + inlined: true + description: >- + Activity time span (P580/P582). + Replaces start_time/end_time. + Use begin_of_the_begin for P580, end_of_the_end for P582. diff --git a/schemas/20251121/linkml/modules/classes/WorkExperience.yaml b/schemas/20251121/linkml/modules/classes/WorkExperience.yaml index 040e524afa..721d82c503 100644 --- a/schemas/20251121/linkml/modules/classes/WorkExperience.yaml +++ b/schemas/20251121/linkml/modules/classes/WorkExperience.yaml @@ -13,12 +13,13 @@ prefixes: imports: - linkml:types - ../metadata - - TimeSpan - - ../slots/employer_linkedin_url - - ../slots/employer_name - - ../slots/employment_dates_raw - - ../slots/employment_end_date - - ../slots/employment_start_date + - ./TimeSpan + - ../slots/is_or_was_employed_by + - ./Employer + - ../slots/temporal_extent + - ./URL + - ./URLType + - ./URLTypes - ../slots/heritage_employer - ../slots/is_current_position - ../slots/job_description @@ -80,11 +81,8 @@ classes: - schema:EmployeeRole - prov:Association slots: - - employer_linkedin_url - - employer_name - - employment_dates_raw - - employment_end_date - - employment_start_date + - is_or_was_employed_by + - temporal_extent - heritage_employer - is_current_position - job_description @@ -102,42 +100,38 @@ classes: description: Dutch job title - value: Senior Curator, Asian Art description: Curatorial role with specialization - employer_name: - range: string + is_or_was_employed_by: + range: Employer + inlined: true required: true + description: | + The employer organization. + MIGRATED from employer_name/employer_linkedin_url per Rule 53 (2026-01-26). examples: - - value: The Dutch Inspectorate of Education - description: Full organization name - - value: Rijksmuseum - description: Heritage institution employer - employer_linkedin_url: - range: uri - pattern: ^https://www\.linkedin\.com/company/[a-z0-9-]+/?$ + - value: + has_or_had_label: "Rijksmuseum" + has_or_had_url: + has_or_had_url: "https://www.linkedin.com/company/rijksmuseum" + has_or_had_type: LinkedInProfileURLType + description: Heritage employer with LinkedIn URL + temporal_extent: + range: TimeSpan + inlined: true + description: | + Duration of employment. + MIGRATED from employment_dates_raw, employment_start_date, employment_end_date per Rule 53 (2026-01-26). + Use begin_of_the_begin for start date, end_of_the_end for end date. + Use has_or_had_verbatim_value for raw date string. examples: - - value: https://www.linkedin.com/company/rijksmuseum - employment_dates_raw: - range: string - examples: - - value: Apr 2025 - Present - description: Current position with start month - - value: Aug 2017 - Apr 2025 - description: Completed position with month precision - - value: 2015 - 2020 - description: Year-only precision - employment_start_date: - range: date - examples: - - value: 2025-04 - description: April 2025 start - - value: '2017' - description: Year-only precision - employment_end_date: - range: date - examples: - - value: 2025-04 - description: Ended April 2025 - - value: null - description: Current position (ongoing) + - value: + begin_of_the_begin: "2017-08" + end_of_the_end: "2025-04" + has_or_had_verbatim_value: "Aug 2017 - Apr 2025" + description: Completed position with dates + - value: + begin_of_the_begin: "2025-04" + has_or_had_verbatim_value: "Apr 2025 - Present" + description: Current position is_current_position: range: boolean ifabsent: 'false' diff --git a/schemas/20251121/linkml/modules/classes/DualClassLink.yaml b/schemas/20251121/linkml/modules/classes/archive/DualClassLink_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/classes/DualClassLink.yaml rename to schemas/20251121/linkml/modules/classes/archive/DualClassLink_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/contact_email.yaml b/schemas/20251121/linkml/modules/slots/archive/contact_email_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contact_email.yaml rename to schemas/20251121/linkml/modules/slots/archive/contact_email_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_language.yaml b/schemas/20251121/linkml/modules/slots/archive/content_language_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_language.yaml rename to schemas/20251121/linkml/modules/slots/archive/content_language_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_summary.yaml b/schemas/20251121/linkml/modules/slots/archive/content_summary_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_summary.yaml rename to schemas/20251121/linkml/modules/slots/archive/content_summary_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documentation.yaml b/schemas/20251121/linkml/modules/slots/archive/documentation_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documentation.yaml rename to schemas/20251121/linkml/modules/slots/archive/documentation_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documentation_produced.yaml b/schemas/20251121/linkml/modules/slots/archive/documentation_produced_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documentation_produced.yaml rename to schemas/20251121/linkml/modules/slots/archive/documentation_produced_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documentation_source.yaml b/schemas/20251121/linkml/modules/slots/archive/documentation_source_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documentation_source.yaml rename to schemas/20251121/linkml/modules/slots/archive/documentation_source_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documentation_url.yaml b/schemas/20251121/linkml/modules/slots/archive/documentation_url_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documentation_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/documentation_url_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documented_by.yaml b/schemas/20251121/linkml/modules/slots/archive/documented_by_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documented_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/documented_by_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/documents_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/documents_budget_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/documents_budget.yaml rename to schemas/20251121/linkml/modules/slots/archive/documents_budget_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/doi.yaml b/schemas/20251121/linkml/modules/slots/archive/doi_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/doi.yaml rename to schemas/20251121/linkml/modules/slots/archive/doi_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/domain_context.yaml b/schemas/20251121/linkml/modules/slots/archive/domain_context_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/domain_context.yaml rename to schemas/20251121/linkml/modules/slots/archive/domain_context_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/download_endpoint.yaml b/schemas/20251121/linkml/modules/slots/archive/download_endpoint_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/download_endpoint.yaml rename to schemas/20251121/linkml/modules/slots/archive/download_endpoint_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/drawer_number.yaml b/schemas/20251121/linkml/modules/slots/archive/drawer_number_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/drawer_number.yaml rename to schemas/20251121/linkml/modules/slots/archive/drawer_number_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/dual_class_link.yaml b/schemas/20251121/linkml/modules/slots/archive/dual_class_link_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/dual_class_link.yaml rename to schemas/20251121/linkml/modules/slots/archive/dual_class_link_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/dual_class_role.yaml b/schemas/20251121/linkml/modules/slots/archive/dual_class_role_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/dual_class_role.yaml rename to schemas/20251121/linkml/modules/slots/archive/dual_class_role_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/emic_name.yaml b/schemas/20251121/linkml/modules/slots/archive/emic_name_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/emic_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/emic_name_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/employer_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/archive/employer_linkedin_url_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/employer_linkedin_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/employer_linkedin_url_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/employer_name.yaml b/schemas/20251121/linkml/modules/slots/archive/employer_name_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/employer_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/employer_name_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/employment_dates_raw.yaml b/schemas/20251121/linkml/modules/slots/archive/employment_dates_raw_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/employment_dates_raw.yaml rename to schemas/20251121/linkml/modules/slots/archive/employment_dates_raw_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/employment_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/employment_end_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/employment_end_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/employment_end_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/employment_start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/employment_start_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/employment_start_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/employment_start_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/end_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/end_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/end_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/end_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/end_seconds_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/end_seconds.yaml rename to schemas/20251121/linkml/modules/slots/archive/end_seconds_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/end_time.yaml b/schemas/20251121/linkml/modules/slots/archive/end_time_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/end_time.yaml rename to schemas/20251121/linkml/modules/slots/archive/end_time_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/ended_at_time.yaml b/schemas/20251121/linkml/modules/slots/archive/ended_at_time_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/ended_at_time.yaml rename to schemas/20251121/linkml/modules/slots/archive/ended_at_time_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/endowment_draw.yaml b/schemas/20251121/linkml/modules/slots/archive/endowment_draw_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/endowment_draw.yaml rename to schemas/20251121/linkml/modules/slots/archive/endowment_draw_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/engagement_rate.yaml b/schemas/20251121/linkml/modules/slots/archive/engagement_rate_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/engagement_rate.yaml rename to schemas/20251121/linkml/modules/slots/archive/engagement_rate_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/enriched_date.yaml b/schemas/20251121/linkml/modules/slots/archive/enriched_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/enriched_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/enriched_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/enrichment_metadata_whatsapp.yaml b/schemas/20251121/linkml/modules/slots/archive/enrichment_metadata_whatsapp_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/enrichment_metadata_whatsapp.yaml rename to schemas/20251121/linkml/modules/slots/archive/enrichment_metadata_whatsapp_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/enrichment_method_whatsapp.yaml b/schemas/20251121/linkml/modules/slots/archive/enrichment_method_whatsapp_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/enrichment_method_whatsapp.yaml rename to schemas/20251121/linkml/modules/slots/archive/enrichment_method_whatsapp_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/entity_types_covered.yaml b/schemas/20251121/linkml/modules/slots/archive/entity_types_covered_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/entity_types_covered.yaml rename to schemas/20251121/linkml/modules/slots/archive/entity_types_covered_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/entry_count.yaml b/schemas/20251121/linkml/modules/slots/archive/entry_count_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/entry_count.yaml rename to schemas/20251121/linkml/modules/slots/archive/entry_count_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/environmental_requirement.yaml b/schemas/20251121/linkml/modules/slots/archive/environmental_requirement_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/environmental_requirement.yaml rename to schemas/20251121/linkml/modules/slots/archive/environmental_requirement_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/environmental_zone_type_code.yaml b/schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_code_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/environmental_zone_type_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_code_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/environmental_zone_type_description.yaml b/schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_description_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/environmental_zone_type_description.yaml rename to schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_description_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/environmental_zone_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_id_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/environmental_zone_type_id.yaml rename to schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_id_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/environmental_zone_type_label.yaml b/schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_label_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/environmental_zone_type_label.yaml rename to schemas/20251121/linkml/modules/slots/archive/environmental_zone_type_label_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/equipment_type.yaml b/schemas/20251121/linkml/modules/slots/archive/equipment_type_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/equipment_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/equipment_type_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/established_date.yaml b/schemas/20251121/linkml/modules/slots/archive/established_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/established_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/established_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_cancelled_reason.yaml b/schemas/20251121/linkml/modules/slots/archive/event_cancelled_reason_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_cancelled_reason.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_cancelled_reason_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_date.yaml b/schemas/20251121/linkml/modules/slots/archive/event_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_date_end.yaml b/schemas/20251121/linkml/modules/slots/archive/event_date_end_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_date_end.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_date_end_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_date_start.yaml b/schemas/20251121/linkml/modules/slots/archive/event_date_start_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_date_start.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_date_start_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_date_text.yaml b/schemas/20251121/linkml/modules/slots/archive/event_date_text_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_date_text.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_date_text_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_description.yaml b/schemas/20251121/linkml/modules/slots/archive/event_description_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_description.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_description_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_documentation.yaml b/schemas/20251121/linkml/modules/slots/archive/event_documentation_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_documentation.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_documentation_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_en.yaml b/schemas/20251121/linkml/modules/slots/archive/event_en_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_en.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_en_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_id.yaml b/schemas/20251121/linkml/modules/slots/archive/event_id_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_id.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_id_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_label.yaml b/schemas/20251121/linkml/modules/slots/archive/event_label_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_label.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_label_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_location.yaml b/schemas/20251121/linkml/modules/slots/archive/event_location_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_location.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_location_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_name.yaml b/schemas/20251121/linkml/modules/slots/archive/event_name_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_name_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_note.yaml b/schemas/20251121/linkml/modules/slots/archive/event_note_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_note.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_note_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_status.yaml b/schemas/20251121/linkml/modules/slots/archive/event_status_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_status.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_status_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/event_timespan_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_timespan.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_timespan_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_type.yaml b/schemas/20251121/linkml/modules/slots/archive/event_type_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_type_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_url.yaml b/schemas/20251121/linkml/modules/slots/archive/event_url_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_url_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/event_venue.yaml b/schemas/20251121/linkml/modules/slots/archive/event_venue_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/event_venue.yaml rename to schemas/20251121/linkml/modules/slots/archive/event_venue_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/exhibition_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/exhibition_timespan_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/exhibition_timespan.yaml rename to schemas/20251121/linkml/modules/slots/archive/exhibition_timespan_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/has_timespan_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_timespan.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_timespan_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_effective_from.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_effective_from_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_effective_from.yaml rename to schemas/20251121/linkml/modules/slots/archive/policy_effective_from_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_effective_to.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_effective_to_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_effective_to.yaml rename to schemas/20251121/linkml/modules/slots/archive/policy_effective_to_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/start_date_archived_20260126.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/start_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/start_date_archived_20260126.yaml diff --git a/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml b/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml new file mode 100644 index 0000000000..ce4b5fcab0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/can_or_could_be_retrieved_from +name: can_or_could_be_retrieved_from_slot +title: Can Or Could Be Retrieved From Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# +imports: + - linkml:types +default_prefix: hc +slots: + can_or_could_be_retrieved_from: + description: >- + Endpoint or location where a resource can be retrieved. + MIGRATED from download_endpoint (2026-01-26). + range: Endpoint + multivalued: true + inlined: true + slot_uri: dcat:accessURL + close_mappings: + - schema:downloadUrl + annotations: + rico_naming_convention: | + Follows RiC-O "canOrCould" pattern for capability predicates. + custodian_types: '["*"]' + specificity_score: 0.4 diff --git a/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml b/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml new file mode 100644 index 0000000000..b3de6d4967 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/documents_or_documented +name: documents_or_documented_slot +title: Documents Or Documented Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# +imports: + - linkml:types +default_prefix: hc +slots: + documents_or_documented: + description: >- + Links a document (e.g. FinancialStatement) to the entity it documents (e.g. Budget). + MIGRATED from documents_budget (2026-01-26). + range: uriorcurie + multivalued: true + inlined: false + slot_uri: schema:about + close_mappings: + - prov:hadPrimarySource + annotations: + rico_naming_convention: | + Follows RiC-O naming pattern (active voice). + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml new file mode 100644 index 0000000000..ada8c88dcf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_contributor +name: has_or_had_contributor_slot +title: Has Or Had Contributor Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_contributor: + description: >- + Contributor to a creative work or resource. + MIGRATED from contributor (2026-01-26). + range: string + multivalued: true + inlined: false + slot_uri: dcterms:contributor + close_mappings: + - schema:contributor + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml new file mode 100644 index 0000000000..21d0e27132 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_drawer +name: has_or_had_drawer_slot +title: Has Or Had Drawer Slot +prefixes: + 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: + has_or_had_drawer: + description: >- + Drawer within a storage unit. + MIGRATED from drawer_number (2026-01-26). + range: Drawer + multivalued: true + inlined: true + slot_uri: rico:hasOrHadPhysicalLocation + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.8 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml new file mode 100644 index 0000000000..45ddee5b3e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_email +name: has_or_had_email_slot +title: Has Or Had Email Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_email: + description: >- + Email address associated with an entity. + MIGRATED from contact_email, admin_email, and email_address (2026-01-26). + range: EmailAddress + multivalued: true + inlined: true + slot_uri: schema:email + close_mappings: + - foaf:mbox + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.2 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml new file mode 100644 index 0000000000..a5327b9ee4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml @@ -0,0 +1,12 @@ +name: has_or_had_endowment_draw +description: >- + Amount drawn from an endowment fund for operating or capital expenses. + + MIGRATED from `endowment_draw` slot. +slot_uri: frapo:hasFunding +range: decimal +multivalued: false +exact_mappings: + - frapo:hasFunding +close_mappings: + - schema:amount diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml new file mode 100644 index 0000000000..05c159b37a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml @@ -0,0 +1,13 @@ +name: has_or_had_engagement_metric +description: >- + A specific metric tracking engagement with content or a profile. + + MIGRATED from `engagement_rate` (and other metrics). + Uses EngagementMetric class for structured data (value + type). +slot_uri: schema:interactionStatistic +range: Any +multivalued: true +exact_mappings: + - schema:interactionStatistic +close_mappings: + - schema:userInteractionCount diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml new file mode 100644 index 0000000000..6531103d60 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml @@ -0,0 +1,12 @@ +name: has_or_had_equipment +description: >- + Relates an entity or facility to the equipment it has or uses. + + MIGRATED from `equipment_type` (via Equipment class). +slot_uri: sosa:hosts +range: Equipment +multivalued: true +exact_mappings: + - sosa:hosts +close_mappings: + - schema:owns diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml new file mode 100644 index 0000000000..77ac15870f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_equipment_type +name: has_or_had_equipment_type_slot +title: Has Or Had Equipment Type Slot +description: >- + Classification of equipment used by a facility or for an activity. + Links to EquipmentType class hierarchy. + + MIGRATED from equipment_type (string) to structured class reference (2026-01-26). + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + - ../classes/EquipmentType + +default_prefix: hc + +slots: + has_or_had_equipment_type: + slot_uri: rico:hasOrHadEquipmentType + range: EquipmentType + multivalued: true + description: >- + Links to the type of equipment available or used. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml index 3afaa48b6f..2b456097bf 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml +++ b/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml @@ -3,6 +3,7 @@ name: has_or_had_language_slot title: Languages Slot # Updated 2026-01-22: Extended to support both LanguageProficiency and Language classes # Enables migration of language-specific text slots (fr, de, en, nl) per slot_fixes.yaml +# Updated 2026-01-26: Updated description to include content_language migration prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -22,10 +23,13 @@ slots: - Use LanguageProficiency class with language_name, code, and level 2. **Language-Tagged Text**: When storing multilingual text content - Use Language class with iso_639_1, language_name, and text_content + 3. **Content Language**: Language of the resource content (migrated from content_language) + - Use Language class **Migration Support**: - This slot replaces language-specific text slots (fr, de, en, nl) with a - unified pattern per slot_fixes.yaml revisions: + This slot replaces language-specific text slots (fr, de, en, nl) and content_language + with a unified pattern per slot_fixes.yaml revisions: + - `content_language` → has_or_had_language with Language - `fr` (French text) → has_or_had_language with Language(iso_639_1="fr") - `de` (German text) → has_or_had_language with Language(iso_639_1="de") - `en` (English text) → has_or_had_language with Language(iso_639_1="en") diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml new file mode 100644 index 0000000000..864ddb3e54 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml @@ -0,0 +1,12 @@ +name: has_or_had_metadata +description: >- + Relates an entity to its metadata (e.g. EnrichmentMetadata). + + MIGRATED from `enrichment_metadata_whatsapp`. +slot_uri: schema:about +range: Any +multivalued: true +exact_mappings: + - schema:about +close_mappings: + - prov:wasGeneratedBy diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml index ab87cb82e8..8e72aba30c 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml +++ b/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml @@ -22,19 +22,25 @@ slots: has_or_had_method: slot_uri: schema:httpMethod description: | - A method associated with an entity, particularly HTTP methods. + A method associated with an activity, process, or entity. **USAGE**: Used for: - - HTTP methods (GET, POST, PUT, DELETE) + - HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod + - Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod - API interaction methods - - Processing methods - range: HTTPMethod + **BROADENED RANGE**: + Range broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55. + + range: Any multivalued: true exact_mappings: - schema:httpMethod + - prov:used + close_mappings: + - schema:instrument examples: - value: diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml new file mode 100644 index 0000000000..b0d2b47074 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_summary +name: has_or_had_summary_slot +title: Has Or Had Summary Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_or_had_summary: + description: >- + Summary or abstract of content. + MIGRATED from content_summary (2026-01-26). + range: string + multivalued: true + inlined: false + slot_uri: schema:abstract + close_mappings: + - dcterms:abstract + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' + specificity_score: 0.2 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml index 703b7baa09..b419d58c1c 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml +++ b/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml @@ -28,11 +28,13 @@ slots: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary + - Durations of media content **USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue + - Media duration: Length of video/audio content range: TimeInterval slot_uri: time:hasDuration @@ -65,6 +67,12 @@ slots: duration_value: "P1Y" duration_description: "annual reporting period" description: Annual time interval for revenue reporting. + + - value: | + has_or_had_time_interval: + duration_value: "PT10M" + duration_description: "10 minutes" + description: Video duration. comments: - Created from slot_fixes.yaml migration (2026-01-14) diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml index 2785f6e72f..895a189378 100644 --- a/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml +++ b/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml @@ -46,7 +46,7 @@ slots: **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). Replaces boolean cms_detected with structured CMS reference. - range: string + range: uriorcurie # Broadened range to uriorcurie per Rule 55 (2026-01-26) to allow class ranges. multivalued: true inlined_as_list: true exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml new file mode 100644 index 0000000000..e01e1ec348 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml @@ -0,0 +1,13 @@ +name: is_or_was_employed_by +description: >- + Relates a person or position to their employer. + + MIGRATED from `employer_name`, `employer_linkedin_url` (via Employer class). +slot_uri: schema:worksFor +range: Employer +multivalued: false +exact_mappings: + - schema:worksFor + - org:memberOf +close_mappings: + - prov:actedOnBehalfOf diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml new file mode 100644 index 0000000000..e9285a44d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml @@ -0,0 +1,12 @@ +name: is_or_was_established_by +description: >- + Relates an entity to its establishment event. + + MIGRATED from `established_date` (via EstablishmentEvent). +slot_uri: org:resultedFrom +range: EstablishmentEvent +multivalued: false +exact_mappings: + - org:resultedFrom +close_mappings: + - schema:foundingDate diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml new file mode 100644 index 0000000000..ef9cb2afda --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_expired_at +name: is_or_was_expired_at_slot +title: Is Or Was Expired At Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + is_or_was_expired_at: + description: >- + The date or timestamp when a policy, status, or entity expired or ceased to be effective. + + MIGRATED from `policy_effective_to` per Rule 53. + Follows RiC-O temporal naming convention. + slot_uri: schema:expires + range: Any + multivalued: false + exact_mappings: + - schema:expires + - rico:hasEndDate + close_mappings: + - prov:endedAtTime diff --git a/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml b/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml new file mode 100644 index 0000000000..557553aed5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml @@ -0,0 +1,11 @@ +name: provides_or_provided +description: >- + Relates an agent or service to the resource or service it provides. + + MIGRATED from `entity_types_covered` (via ContributingAgency). +slot_uri: schema:provider +range: Any +multivalued: true +exact_mappings: + - schema:provider + - prov:wasGeneratedBy diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index c120c63776..b047186baa 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -13545,18 +13545,61 @@ fixes: type: slot - label: DocumentTypes type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: document_type → has_or_had_type + DocumentType (Rule 53) + + **Pattern**: Replaced document_type string slot with structured DocumentType class hierarchy. + + **Files Created**: + - DocumentType.yaml + - DocumentTypes.yaml + + **Files Modified**: + - ArticlesOfAssociation.yaml + + **Archived**: modules/slots/archive/document_type_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation revision: - label: has_or_had_reference type: slot - label: Reference type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation → has_or_had_reference + Reference (Rule 53) + + **Pattern**: Replaced documentation string slot with Reference class. + + **Files Modified**: + - ProvenanceEvent.yaml + + **Archived**: modules/slots/archive/documentation_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_produced revision: - label: has_or_had_output type: slot - label: Documentation type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_produced → has_or_had_output + Documentation (Rule 53) + + **Pattern**: Replaced documentation_produced string slot with Documentation class accessed via has_or_had_output. + + **Files Modified**: + - CurationActivity.yaml + + **Archived**: modules/slots/archive/documentation_produced_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_source revision: - label: has_or_had_documentation @@ -13575,6 +13618,22 @@ fixes: - label: Reference type: class link_branch: 2 + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_source → has_or_had_documentation + Documentation (Rule 53) + + **Pattern**: Replaced documentation_source with Documentation class, supporting URLs and references. + + **Files Modified**: + - Event.yaml + - OrganizationalChangeEvent.yaml + - Conflict.yaml + - ConflictStatus.yaml + + **Archived**: modules/slots/archive/documentation_source_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documentation_url revision: - label: has_or_had_documentation @@ -13585,24 +13644,84 @@ fixes: type: slot - label: URL type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documentation_url → has_or_had_documentation + Documentation + has_or_had_url + URL (Rule 53) + + **Pattern**: Replaced documentation_url with Documentation class (or Reference/URL depending on context). + + **Files Modified**: + - ProvenanceEvent.yaml: Used has_or_had_url directly as more appropriate for simple URL links. + + **Archived**: modules/slots/archive/documentation_url_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documented_by revision: - label: is_or_was_based_on type: slot - label: FinancialStatement type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documented_by → documented_by + FinancialStatement (Rule 53) + + **Pattern**: Replaced documented_by uriorcurie slot with structured relationship to FinancialStatement. + NOTE: Kept slot name 'documented_by' as it's the inverse of 'documents', rather than 'is_or_was_based_on' which implies derivation. + Budget is the plan, FinancialStatement is the documentation/actuals. + + **Files Modified**: + - Budget.yaml + + **Archived**: modules/slots/archive/documented_by_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/documents_budget revision: - label: documents_or_documented type: slot - label: Budget type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: documents_budget → documents_or_documented + Budget (Rule 53) + + **Pattern**: Replaced documents_budget uriorcurie slot with generic documents_or_documented slot pointing to Budget. + + **Files Created**: + - documents_or_documented.yaml + + **Files Modified**: + - FinancialStatement.yaml + + **Archived**: modules/slots/archive/documents_budget_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/doi revision: - label: has_or_had_identifier type: slot - label: DOI type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: doi → has_or_had_identifier + DOI (Rule 53) + + **Pattern**: Replaced doi string slot with structured DOI identifier class. + + **Files Created**: + - DOI.yaml + + **Files Modified**: + - InformationCarrier.yaml + + **Archived**: modules/slots/archive/doi_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/domain_context revision: - label: has_or_had_domain @@ -13617,6 +13736,19 @@ fixes: type: slot - label: DomainTypes type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: domain_context → has_or_had_domain + Domain (Rule 53) + + **Pattern**: Replaced domain_context string slot with Domain class. + + **Files Modified**: + - CollectionType.yaml + + **Archived**: modules/slots/archive/domain_context_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/download_endpoint revision: - label: can_or_could_be_retrieved_from @@ -13627,6 +13759,23 @@ fixes: type: slot - label: URL type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: download_endpoint → can_or_could_be_retrieved_from + Endpoint (Rule 53) + + **Pattern**: Replaced download_endpoint string slot with Endpoint class accessed via can_or_could_be_retrieved_from. + + **Files Created**: + - can_or_could_be_retrieved_from.yaml + - Endpoint.yaml + + **Files Modified**: + - WebPortalTypes.yaml + + **Archived**: modules/slots/archive/download_endpoint_archived_20260126.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/drawer_number revision: - label: has_or_had_drawer @@ -13643,8 +13792,31 @@ fixes: type: slot - label: Entity type: class + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: dual_class_link + dual_class_role → REMOVED (Rule 53) + + **Action**: Removed bespoke DualClassLink constructs entirely as they are not needed in a proper LinkML model. + + **Files Archived**: + - dual_class_link.yaml + - DualClassLink.yaml + - dual_class_role.yaml + + **Note**: These slots were used for an experimental linking pattern that is superseded by direct class relationships. - original_slot_id: https://nde.nl/ontology/hc/slot/dual_class_role note: impossible to express without hypergraphs... this is a comment about a triple...remove, also remove DualClassLink + processed: + status: true + date: '2026-01-26' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration Complete**: dual_class_role → REMOVED (Rule 53) + + See dual_class_link migration notes. - original_slot_id: https://nde.nl/ontology/hc/slot/duration revision: - label: has_or_had_time_interval @@ -13933,6 +14105,9 @@ fixes: - label: ApplicantTypes type: class note: OrganisationApplicant is included here. + processed: + status: true + notes: "Migrated to has_or_had_requirement + ApplicantRequirement + can_or_could_be_fulfilled_by (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/eligible_country revision: - label: has_or_had_requirement @@ -13951,6 +14126,9 @@ fixes: - label: Applicant type: class link_branch: 2 + processed: + status: true + notes: "Migrated to has_or_had_requirement + ApplicantRequirement + imposes_or_imposed (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/embargo_end_date revision: - label: imposes_or_imposed @@ -13965,6 +14143,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to imposes_or_imposed + Embargo + temporal_extent (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/embargo_reason revision: - label: imposes_or_imposed @@ -13975,6 +14156,9 @@ fixes: type: slot - label: Rationale type: class + processed: + status: true + notes: "Migrated to imposes_or_imposed + Embargo + has_or_had_description (Rule 53) (2026-01-26). Used generic description for rationale." - original_slot_id: https://nde.nl/ontology/hc/slot/emic_name revision: - label: has_or_had_label @@ -13990,6 +14174,9 @@ fixes: - label: LabelTypes type: class note: EmicLabel is included as a class + processed: + status: true + notes: "Migrated to has_or_had_label + EmicLabelType (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employer_linkedin_url revision: - label: is_or_was_employed_by @@ -14009,6 +14196,9 @@ fixes: - label: URLTypes type: class note: LinkedInProfileURL is included as a class + processed: + status: true + notes: "Migrated to is_or_was_employed_by + Employer + has_or_had_url (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employer_name revision: - label: is_or_was_employed_by @@ -14019,6 +14209,9 @@ fixes: type: slot - label: Label type: class + processed: + status: true + notes: "Migrated to is_or_was_employed_by + Employer + has_or_had_label (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_dates_raw revision: - label: temporal_extent @@ -14033,6 +14226,9 @@ fixes: type: slot - label: RawTimeSpan type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan + has_or_had_verbatim_value (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_end_date revision: - label: temporal_extent @@ -14043,6 +14239,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/employment_start_date revision: - label: temporal_extent @@ -14053,6 +14252,9 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/en revision: - label: has_or_had_language @@ -14071,6 +14273,11 @@ fixes: - label: Timestamp type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_date + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: end_date replaced with temporal_extent (TimeSpan) in Project, Exhibition, Membership, Activity, CurationActivity. Slot archived.' revision: - label: temporal_extent type: slot @@ -14081,6 +14288,11 @@ fixes: - label: Timestamp type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_seconds + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: VideoTimeSegment, DetectedEntity, AudioEventSegment - end_seconds replaced with has_or_had_time_interval (TimeInterval). Slot archived.' revision: - label: has_or_had_time_interval type: slot @@ -14095,6 +14307,11 @@ fixes: - label: Seconds type: class - original_slot_id: https://nde.nl/ontology/hc/slot/end_time + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: VideoTimeSegment, DetectedEntity, AudioEventSegment - end_time replaced with has_or_had_time_interval (TimeInterval) for duration. WikidataTemporal replaced with temporal_extent (TimeSpan). Slot archived.' revision: - label: has_or_had_time_interval type: slot @@ -14139,6 +14356,13 @@ fixes: - label: Unit type: class value: draw + processed: + status: true + notes: "Migrated to has_or_had_endowment_draw slot (Rule 53) (2026-01-26). Used specialized slot instead of deep nesting for budget clarity." + feedback: + done: true + user: "Antigravity (Agent)" + comment: "Used has_or_had_endowment_draw slot directly on Budget class to avoid excessive nesting for simple monetary value." - original_slot_id: https://nde.nl/ontology/hc/slot/ends_or_ended_at_location revision: - label: has_or_had_destination @@ -14147,29 +14371,46 @@ fixes: type: class - original_slot_id: https://nde.nl/ontology/hc/slot/engagement_rate revision: - - label: has_or_had_level + - label: has_or_had_engagement_metric type: slot - - label: EngagementRate + - label: EngagementMetric type: class + processed: + status: true + notes: "Migrated to has_or_had_engagement_metric + EngagementMetric (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enriched_date revision: - label: temporal_extent type: slot - label: TimeSpan type: class + processed: + status: true + notes: "Migrated to temporal_extent + TimeSpan (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enrichment_metadata_whatsapp revision: - label: has_or_had_metadata type: slot - label: EnrichmentMetadata type: class + processed: + status: true + notes: "Migrated to has_or_had_metadata + EnrichmentMetadata (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/enrichment_method_whatsapp revision: - label: has_or_had_method type: slot - label: EnrichmentMethod type: class + processed: + status: true + notes: "Migrated to has_or_had_method + EnrichmentMethod (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/entity_types_covered + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-entity-type-migration + notes: 'FULLY MIGRATED: ContributingAgency - entity_types_covered replaced with provides_or_provided + AuthorityFile. Slot archived.' revision: - label: provides_or_provided type: slot @@ -14188,6 +14429,11 @@ fixes: - label: EntityTypes type: class - original_slot_id: https://nde.nl/ontology/hc/slot/entry_count + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-quantity-migration + notes: 'FULLY MIGRATED: VideoSubtitle - entry_count replaced with has_or_had_quantity + Quantity. Slot archived.' revision: - label: has_or_had_quantity type: slot @@ -14235,6 +14481,11 @@ fixes: - label: Label type: class - original_slot_id: https://nde.nl/ontology/hc/slot/equipment_type + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-equipment-migration + notes: 'FULLY MIGRATED: ConservationLab - equipment_type replaced with has_or_had_equipment + EquipmentType. Slot archived.' revision: - label: has_or_had_equipment type: slot @@ -14262,6 +14513,12 @@ fixes: type: slot - label: Timestamp type: class + processed: + status: true + notes: "Migrated to is_or_was_established_by + EstablishmentEvent (Rule 53) (2026-01-26)." + processed: + status: true + notes: "Migrated to is_or_was_established_by + EstablishmentEvent (Rule 53) (2026-01-26)." - original_slot_id: https://nde.nl/ontology/hc/slot/estimated_extent revision: - label: has_or_had_quantity @@ -14676,6 +14933,11 @@ fixes: - label: LabelTypes type: class - original_slot_id: https://nde.nl/ontology/hc/slot/exhibition_timespan + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: Exhibition - exhibition_timespan replaced with temporal_extent. Slot archived.' revision: - label: temporal_extent type: slot @@ -18254,6 +18516,11 @@ fixes: - label: SupervisedHandling type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_timespan + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: Activity, Membership, Event - has_timespan replaced with temporal_extent. Slot archived.' revision: - label: temporal_extent type: slot