diff --git a/backend/rag/main.py b/backend/rag/main.py index eedc7ac78c..2c16f3d5bd 100644 --- a/backend/rag/main.py +++ b/backend/rag/main.py @@ -2752,9 +2752,17 @@ async def person_search(request: PersonSearchRequest) -> PersonSearchResponse: ) try: + # Augment query for better recall on domain names if it looks like a domain search + # "nos" -> "nos email domain nos" to guide vector search towards email addresses + search_query = request.query + if len(search_query.split()) == 1 and len(search_query) > 2 and "@" not in search_query: + # Heuristic: single word queries might be domain searches + # We append "email domain" context to guide the embedding + search_query = f"{search_query} email domain {search_query}" + # Use the hybrid retriever's person search results = retriever.search_persons( - query=request.query, + query=search_query, k=request.k, filter_custodian=request.filter_custodian, only_heritage_relevant=request.only_heritage_relevant, diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 51ed6663e4..0452289fe8 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-26T23:49:30.478Z", + "generated": "2026-01-26T23:50:10.883Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 0452289fe8..e1938ec888 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-26T23:50:10.883Z", + "generated": "2026-01-27T08:03:23.376Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml b/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml index 5768970ae2..5f0fb603e1 100644 --- a/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml @@ -13,6 +13,12 @@ prefixes: imports: - linkml:types - ../slots/has_or_had_origin + - ../slots/temporal_extent + - ./TimeSpan + - ../slots/has_or_had_method + - ./AcquisitionMethod + - ../slots/has_or_had_provenance + - ./Provenance - ./Entity default_prefix: hc classes: @@ -20,6 +26,9 @@ classes: class_uri: rico:Instantiation slots: - has_or_had_origin + - temporal_extent + - has_or_had_method + - has_or_had_provenance slot_usage: has_or_had_origin: range: Entity diff --git a/schemas/20251121/linkml/modules/classes/Administration.yaml b/schemas/20251121/linkml/modules/classes/Administration.yaml new file mode 100644 index 0000000000..9f4d3bdc7e --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Administration.yaml @@ -0,0 +1,8 @@ +classes: + Administration: + class_uri: org:OrganizationalUnit + description: "An administrative unit or body." + slots: + - has_or_had_label + - has_or_had_description + - has_or_had_identifier diff --git a/schemas/20251121/linkml/modules/classes/AirChanges.yaml b/schemas/20251121/linkml/modules/classes/AirChanges.yaml new file mode 100644 index 0000000000..56254c21c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AirChanges.yaml @@ -0,0 +1,46 @@ +# AirChanges class +# Represents the rate of air changes in a space +# +# Generation date: 2026-01-27 +# Rule compliance: 0b, 38, 39, 53 +# +# Created for has_air_changes_per_hour migration + +id: https://nde.nl/ontology/hc/class/AirChanges +name: AirChanges +title: Air Changes Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit + - ./Quantity + - ./Unit + +classes: + AirChanges: + class_uri: schema:QuantitativeValue + description: | + Represents the rate of air changes in a space. + + **Ontological Alignment**: + - `schema:QuantitativeValue`: Allows specifying value and unit. + slots: + - has_or_had_quantity + - has_or_had_unit + slot_usage: + has_or_had_quantity: + range: float + description: The number of air changes. + required: true + has_or_had_unit: + range: Unit + description: Unit of measurement (e.g., "per hour"). + required: true diff --git a/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml b/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml new file mode 100644 index 0000000000..0f10d6772c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml @@ -0,0 +1,39 @@ +# AllocationEvent class +# Represents an event where an identifier was allocated +# +# Generation date: 2026-01-27 +# Rule compliance: 0b, 38, 39, 53 +# +# Created for has_allocation_date migration + +id: https://nde.nl/ontology/hc/class/AllocationEvent +name: AllocationEvent +title: Allocation Event 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 + - ../slots/temporal_extent + - ./TimeSpan + +classes: + AllocationEvent: + class_uri: prov:Activity + description: | + An event representing the allocation of an identifier. + + **Ontological Alignment**: + - `prov:Activity`: An activity that occurred over a period of time and acted upon or with entities. + slots: + - temporal_extent + slot_usage: + temporal_extent: + description: Time period when the allocation occurred. + required: true diff --git a/schemas/20251121/linkml/modules/classes/Annotation.yaml b/schemas/20251121/linkml/modules/classes/Annotation.yaml new file mode 100644 index 0000000000..1b4c34f7ea --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Annotation.yaml @@ -0,0 +1,61 @@ +# Annotation class +# Represents an annotation (comment, note, tag) on an entity +# +# Generation date: 2026-01-27 +# Rule compliance: 0b, 38, 39, 53 +# +# Created for has_annotation_* migration + +id: https://nde.nl/ontology/hc/class/Annotation +name: Annotation +title: Annotation Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + oa: http://www.w3.org/ns/oa# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_description + - ../slots/is_or_was_created_by + - ../classes/Agent + - ../slots/has_or_had_rationale + - ../classes/Rationale + - ../slots/contains_or_contained + - ../classes/Segment + - ../slots/has_or_had_type + - ../classes/AnnotationType + +classes: + Annotation: + class_uri: oa:Annotation + description: | + An annotation (comment, note, tag, highlight) on a resource. + + **Ontological Alignment**: + - `oa:Annotation`: Web Annotation Data Model. + slots: + - has_or_had_description + - is_or_was_created_by + - has_or_had_rationale + - contains_or_contained + - has_or_had_type + slot_usage: + has_or_had_description: + description: The content of the annotation (body). + is_or_was_created_by: + description: The agent who created the annotation. + range: Agent + has_or_had_rationale: + description: The motivation for the annotation (e.g. commenting, tagging). + range: Rationale + contains_or_contained: + description: The target segment being annotated. + range: Segment + has_or_had_type: + description: The type of annotation. + range: AnnotationType diff --git a/schemas/20251121/linkml/modules/classes/Collection.yaml b/schemas/20251121/linkml/modules/classes/Collection.yaml index cad6f65fa1..d3346b5583 100644 --- a/schemas/20251121/linkml/modules/classes/Collection.yaml +++ b/schemas/20251121/linkml/modules/classes/Collection.yaml @@ -25,9 +25,12 @@ imports: - ./ExhibitedObject - ./CurationActivity - ../slots/has_or_had_access_policy_reference - - ../slots/has_acquisition_date - - ../slots/has_acquisition_method - - ../slots/has_acquisition_source + # - has_acquisition_date (migrated to is_or_was_acquired_through + AcquisitionEvent) + # - has_acquisition_method (migrated to AcquisitionEvent.has_or_had_method) + - ../slots/is_or_was_acquired_through # was: has_acquisition_source - migrated per Rule 53 (2026-01-26) + # - has_acquisition_source (migrated to is_or_was_acquired_through + AcquisitionEvent) + - ./AcquisitionEvent + - ./AcquisitionMethod - ../slots/has_arrangement # REMOVED 2026-01-18: ../slots/collection_description - migrated to has_or_had_description + Description (Rule 53) - ../slots/has_or_had_description @@ -112,9 +115,9 @@ classes: - bf:Item slots: - has_or_had_access_policy_reference - - has_acquisition_date - - has_acquisition_method - - is_or_was_acquired_through # was: has_acquisition_source - migrated per Rule 53 (2026-01-26) + # - has_acquisition_date + # - has_acquisition_method + - is_or_was_acquired_through # was: has_acquisition_source, has_acquisition_date, has_acquisition_method - migrated per Rule 53 (2026-01-26) - has_arrangement # REMOVED 2026-01-18: collection_description - migrated to has_or_had_description + Description (Rule 53) - has_or_had_description @@ -282,22 +285,10 @@ classes: - Algemeen Rijksarchief (1856-2002) - Nationaal Archief (2002-present) description: VOC records custodial history - has_acquisition_method: - range: string - examples: - - value: TRANSFER - description: Government transfer of VOC archives - - value: BEQUEST - description: Testamentary gift - has_acquisition_date: - range: date - examples: - - value: '1856-01-01' - description: Transfer to Algemeen Rijksarchief is_or_was_acquired_through: # was: has_acquisition_source - migrated per Rule 53 (2026-01-26) description: | - Source of acquisition (person or organization). - MIGRATED from has_acquisition_source per Rule 53. + Acquisition event for this collection. + MIGRATED from has_acquisition_source, has_acquisition_method, has_acquisition_date per Rule 53. Uses AcquisitionEvent class. range: AcquisitionEvent multivalued: true @@ -306,10 +297,18 @@ classes: - value: has_or_had_origin: has_or_had_label: "Ministry of Colonies" + has_or_had_method: + has_or_had_label: TRANSFER + temporal_extent: + begin_of_the_begin: '1856-01-01' description: Source of VOC archives transfer - value: has_or_had_origin: has_or_had_label: "Estate of Anna Drucker-Fraser" + has_or_had_method: + has_or_had_label: BEQUEST + temporal_extent: + begin_of_the_begin: '1937-01-01' description: Source of bequest has_or_had_access_policy_reference: range: AccessPolicy @@ -449,11 +448,13 @@ classes: has_or_had_description: - description_text: "Transferred to the Dutch state upon the company's dissolution in 1799." description_type: provenance_statement - acquisition_method: TRANSFER - acquisition_date: '1856-01-01' is_or_was_acquired_through: # was: has_acquisition_source - migrated per Rule 53 (2026-01-26) - has_or_had_origin: has_or_had_label: Ministry of Colonies + has_or_had_method: + has_or_had_label: TRANSFER + temporal_extent: + begin_of_the_begin: '1856-01-01' has_or_had_access_policy_reference: https://nde.nl/ontology/hc/access-policy/open-access arrangement: Organized by provenance, then chronologically has_or_had_finding_aid: diff --git a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml index 5e090e24a9..b89ad3b2b7 100644 --- a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml +++ b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml @@ -2,7 +2,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_identifier, has_or_had_label, has_or_had_description # - has_or_had_activity_type, temporal_extent # - is_or_was_succeeded_by, preceding_activity, status, note # @@ -76,9 +76,9 @@ classes: **INHERITANCE**: Extends `Activity` base class. Inherits: - - has_activity_identifier (required, identifier) - - has_activity_name (required) - - has_activity_description + # - has_activity_identifier (required, identifier) + # - has_activity_name (required) + # - has_activity_description - has_or_had_activity_type → ActivityType - temporal_extent → TimeSpan - is_or_was_succeeded_by, preceding_activity @@ -418,10 +418,10 @@ classes: examples: - value: - has_activity_identifier: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - has_activity_name: 2025 Annual Collection Inventory - Dutch Masters + has_or_had_identifier: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 + has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters has_or_had_activity_type: INVENTORY - has_activity_description: | + has_or_had_description: | Annual physical inventory of the Dutch Masters collection (Gallery of Honour and adjacent galleries). Spot-check methodology with 20% sample verification against CMS records. Includes @@ -448,10 +448,10 @@ classes: description: Annual inventory activity at Rijksmuseum - value: - has_activity_identifier: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 - has_activity_name: VOC Archives Digitization Project - Phase 2 + has_or_had_identifier: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 + has_or_had_label: VOC Archives Digitization Project - Phase 2 has_or_had_activity_type: DIGITIZATION - has_activity_description: | + has_or_had_description: | Second phase of systematic digitization of VOC (Dutch East India Company) archives. Focus on Hoge Regering Batavia series (1.04.02). High-resolution scanning with OCR/HTR processing for searchability. @@ -484,10 +484,10 @@ classes: description: Multi-year digitization project at Nationaal Archief - value: - has_activity_identifier: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 - has_activity_name: Medieval Manuscripts Rehousing Initiative + has_or_had_identifier: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 + has_or_had_label: Medieval Manuscripts Rehousing Initiative has_or_had_activity_type: REHOUSING - has_activity_description: | + has_or_had_description: | Transfer of 342 medieval manuscripts from legacy storage to custom-fitted archival boxes with acid-free tissue interleaving. Includes updated location records and condition photography. diff --git a/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml b/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml index d84d64e8df..46654b1221 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml @@ -22,13 +22,13 @@ imports: - ./ConservationRecord - ./ProvenanceEvent - ../enums/ExhibitedObjectTypeEnum - - ../slots/has_or_had_identifier - - ./WikiDataIdentifier - - ../slots/creator - - ../slots/has_accession_number - - ../slots/has_acquisition_method - - ../slots/has_acquisition_date - - ../slots/has_or_had_provenance # was: provenance_text - migrated per Rule 53/56 (2026-01-18) + - ../slots/has_or_had_identifier # was: has_accession_number - migrated per Rule 53 (2026-01-26) + # - has_acquisition_date (migrated to is_or_was_acquired_through + AcquisitionEvent) + # - has_acquisition_method (migrated to AcquisitionEvent.has_or_had_method) + - ../slots/is_or_was_acquired_through + - ./AcquisitionEvent + - ./AcquisitionMethod + # REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26 - ./Provenance - ./Description # REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26 @@ -131,8 +131,8 @@ classes: # specificity_annotation, template_specificity # These are listed here to apply class-specific slot_usage - has_or_had_identifier # was: has_accession_number - migrated per Rule 53 (2026-01-26) - - has_acquisition_date - - has_acquisition_method + - is_or_was_acquired_through # was: has_acquisition_date - migrated per Rule 53 (2026-01-26) + # - has_acquisition_method (migrated to AcquisitionEvent.has_or_had_method) # REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26 - has_or_had_condition_note - conservation_history @@ -429,17 +429,21 @@ classes: - Pieter van Ruijven (c. 1665-1674) - Maria de Knuijt (1674) - A.A. des Tombe (1881-1903) - has_acquisition_method: + is_or_was_acquired_through: + range: AcquisitionEvent + inlined: true + description: | + Acquisition event for this object. + MIGRATED from has_acquisition_date and has_acquisition_method per Rule 53 (2026-01-26). + Uses AcquisitionEvent with temporal_extent, has_or_had_method, and has_or_had_origin. required: false - range: string examples: - - value: BEQUEST + - value: + has_or_had_method: + has_or_had_label: BEQUEST + temporal_extent: + begin_of_the_begin: '1903-01-01' description: des Tombe bequest to Mauritshuis - has_acquisition_date: - required: false - range: date - examples: - - value: '1903-01-01' # exhibited_in: # required: false # range: uriorcurie @@ -627,8 +631,11 @@ classes: country: NL permanent_location: Gallery 15 accession_number: '670' - acquisition_method: BEQUEST - acquisition_date: '1903-01-01' + is_or_was_acquired_through: + has_or_had_method: + has_or_had_label: BEQUEST + temporal_extent: + begin_of_the_begin: '1903-01-01' 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); his widow, Maria de Knuijt, Delft (1674); Dissius sale, Amsterdam, May 16, 1696; A.A. des Tombe, The Hague (purchased 1881); Bequeathed to Mauritshuis (1903)." diff --git a/schemas/20251121/linkml/modules/classes/Identifier.yaml b/schemas/20251121/linkml/modules/classes/Identifier.yaml index 4ebc383459..10876b1114 100644 --- a/schemas/20251121/linkml/modules/classes/Identifier.yaml +++ b/schemas/20251121/linkml/modules/classes/Identifier.yaml @@ -30,7 +30,10 @@ imports: - ./IdentifierType - ./IdentifierTypes - ../slots/has_or_had_secondary_label - - ../slots/has_allocation_date + - ../slots/is_or_was_allocated_through + - ../classes/AllocationEvent + - ../slots/temporal_extent + - ../classes/TimeSpan - ../slots/specificity_annotation - ../slots/has_or_had_score - ./AllocationAgency @@ -215,20 +218,18 @@ classes: - owl:sameAs slots: - is_or_was_allocated_by - - has_allocation_date - - has_or_had_secondary_label - # MIGRATED 2026-01-22: canonical_value → has_or_had_canonical_form + CanonicalForm - - has_or_had_canonical_form - # MIGRATED 2026-01-24: defined_by_standard → has_or_had_standard + Standard (Rule 53) - - has_or_had_standard - - identifier_format_used - - identifies_custodian - - specificity_annotation - - has_or_had_score + - is_or_was_allocated_through slot_usage: - identifies_custodian: - range: Custodian - required: false + is_or_was_allocated_through: + range: AllocationEvent + description: | + Event documenting when and how this identifier was allocated. + Replaces has_allocation_date per Rule 53. + examples: + - value: + temporal_extent: + begin_of_the_begin: "2023-01-01" + description: Allocation date # MIGRATED 2026-01-24: defined_by_standard → has_or_had_standard + Standard (Rule 53) has_or_had_standard: range: Standard diff --git a/schemas/20251121/linkml/modules/classes/Method.yaml b/schemas/20251121/linkml/modules/classes/Method.yaml new file mode 100644 index 0000000000..2ecca91ca5 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Method.yaml @@ -0,0 +1,6 @@ +classes: + Method: + class_uri: skos:Concept + description: "A method or procedure used." + slots: + - has_or_had_description diff --git a/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml b/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml index a360d3ba74..c5a050277a 100644 --- a/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml @@ -20,172 +20,11 @@ imports: - ./Quantity - ./Unit - ../slots/has_or_had_access_restriction - - ../enums/PersonalCollectionTypeEnum - - ../slots/has_acquisition_history - - ../slots/has_or_had_custodian_type - - ../slots/legacy_planning - - ../slots/personal_collection_subtype - - ../slots/preservation_approach - - ../slots/specificity_annotation - - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - ./SpecificityAnnotation - - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - - ./TemplateSpecificityType - - ./TemplateSpecificityTypes -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - dcterms: http://purl.org/dc/terms/ - foaf: http://xmlns.com/foaf/0.1/ - wd: http://www.wikidata.org/entity/ -classes: - PersonalCollectionType: - is_a: CustodianType - class_uri: skos:Concept - annotations: - skos:prefLabel: Personal Collection - skos:altLabel: private collection, private collector, art collector, bibliophile, numismatist, philatelist, personal - archive, family collection, estate collection - structured_aliases: - - literal_form: privécollectie - predicate: EXACT_SYNONYM - in_language: nl - - literal_form: particuliere verzameling - predicate: EXACT_SYNONYM - in_language: nl - - literal_form: privéverzamelaar - predicate: EXACT_SYNONYM - in_language: nl - - literal_form: kunstverzamelaar - predicate: EXACT_SYNONYM - in_language: nl - - literal_form: familiearchief - predicate: EXACT_SYNONYM - in_language: nl - - literal_form: private collection - predicate: EXACT_SYNONYM - in_language: en - - literal_form: private collector - predicate: EXACT_SYNONYM - in_language: en - - literal_form: art collector - predicate: EXACT_SYNONYM - in_language: en - - literal_form: bibliophile - predicate: EXACT_SYNONYM - in_language: en - - literal_form: numismatist - predicate: EXACT_SYNONYM - in_language: en - - literal_form: philatelist - predicate: EXACT_SYNONYM - in_language: en - - literal_form: Privatsammlung - predicate: EXACT_SYNONYM - in_language: de - - literal_form: Privatsammler - predicate: EXACT_SYNONYM - in_language: de - - literal_form: Kunstsammler - predicate: EXACT_SYNONYM - in_language: de - - literal_form: collection privée - predicate: EXACT_SYNONYM - in_language: fr - - literal_form: collectionneur privé - predicate: EXACT_SYNONYM - in_language: fr - - literal_form: collectionneur d'art - predicate: EXACT_SYNONYM - in_language: fr - - literal_form: colección privada - predicate: EXACT_SYNONYM - in_language: es - - literal_form: coleccionista privado - predicate: EXACT_SYNONYM - in_language: es - - literal_form: coleccionista de arte - predicate: EXACT_SYNONYM - in_language: es - - literal_form: collezione privata - predicate: EXACT_SYNONYM - in_language: it - - literal_form: collezionista privato - predicate: EXACT_SYNONYM - in_language: it - - literal_form: coleção privada - predicate: EXACT_SYNONYM - in_language: pt - - literal_form: colecionador privado - predicate: EXACT_SYNONYM - in_language: pt - description: "Specialized custodian type for individual private collectors maintaining\npersonal heritage collections.\n\ - \n**Ontology Alignment**:\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n\ - \ - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E21_Person\ - \ - CIDOC-CRM individual person\n - crm:E78_Curated_Holding - Personal collection as curated holding\n - foaf:Person\ - \ - Friend of a Friend person representation\n\n3. **Web Layer** (Schema.org):\n - schema:Person - Individual collector\n\ - \ - schema:Collection - Personal collection entity\n - schema:OwnershipInfo - Ownership and provenance\n\n**Wikidata\ - \ Coverage** (40+ personal collection entities):\n\nNotable Private Collectors:\n- Q5633421 (private collection) - Individual\ - \ heritage holdings\n- Q1114515 (art collector) - Art-focused private collections\n- Q15621286 (bibliophile) - Book\ - \ collector\n- Q2374149 (numismatist) - Coin and medal collector\n- Q2555521 (philatelist) - Stamp collector\n\nCollection\ - \ Types:\n- Q838948 (fine art collection) - Painting, sculpture, decorative arts\n- Q732137 (rare book collection) -\ - \ Bibliographic rarities\n- Q7547661 (natural history collection) - Specimens, fossils, minerals\n- Q1968122 (ephemera\ - \ collection) - Historical ephemera\n- Q215380 (ethnographic collection) - Cultural artifacts\n\nCollector Profiles:\n\ - - Q1028181 (museum founder) - Collectors who establish museums\n- Q3400985 (patron of the arts) - Collectors supporting\ - \ artists\n- Q17351810 (antiquarian) - Historical artifact collectors\n- Q1350189 (connoisseur) - Specialized expertise\ - \ collectors\n\nCollection Destinations:\n- Q2668072 (bequeathed collection) - Donated to institutions\n- Q838948 (dispersed\ - \ collection) - Sold at auction\n- Q5633421 (house museum) - Home converted to museum\n- Q1469207 (study collection)\ - \ - Research-focused holdings\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- PersonalCollection: INDIVIDUAL\ - \ ownership, PRIVATE residence\n- Museum: INSTITUTIONAL ownership, PUBLIC facility\n- Example: Isabella Stewart Gardner\ - \ (private collector) → Isabella Stewart Gardner Museum (after donation)\n\nvs. Gallery:\n- PersonalCollection: PERSONAL\ - \ enjoyment, NON-COMMERCIAL\n- Gallery: COMMERCIAL operation, SALES-DRIVEN\n- Example: Art enthusiast's collection vs.\ - \ Commercial gallery inventory\n\nvs. HeritageSociety:\n- PersonalCollection: INDIVIDUAL collector\n- HeritageSociety:\ - \ MEMBERSHIP organization, COLLECTIVE collecting\n- Example: Stamp collector vs. Philatelic society\n\nvs. Archive:\n\ - - PersonalCollection: Often TOPICAL/AESTHETIC focus (collector interest)\n- Archive: PROVENANCE-BASED focus (institutional\ - \ or personal papers)\n- Example: Art collector (aesthetic choices) vs. Family archive (provenance unit)\n\nvs. Library:\n\ - - PersonalCollection: PRIVATE library, NO PUBLIC LENDING\n- Library: PUBLIC/INSTITUTIONAL lending service\n- Example:\ - \ Rare book collector vs. Public library special collections\n\n**Lifecycle Transitions**:\n\nPersonal collections often\ - \ undergo institutional transitions:\n\n1. **Private Collection** (CustodianType: PersonalCollectionType)\n ↓\n2.\ - \ **Collector Dies** (OrganizationalChangeEvent: CLOSURE)\n ↓\n3. **Three Outcomes**:\n \n a) **Bequest to Museum**\ - \ (OrganizationalChangeEvent: ACQUISITION)\n - Collection becomes MuseumType holdings\n - Example: J. Paul\ - \ Getty collection → J. Paul Getty Museum\n \n b) **Auction Dispersal** (OrganizationalChangeEvent: DISSOLUTION)\n\ - \ - Collection scattered to multiple buyers\n - Example: Yves Saint Laurent–Pierre Bergé collection sale (2009)\n\ - \ \n c) **House Museum** (CustodianType changes: PersonalCollection → Museum)\n - Home preserved as museum\ - \ with collection in situ\n - Example: Isabella Stewart Gardner's Fenway Court → Museum (1903)\n\n**RDF Serialization\ - \ Example**:\n\n```turtle\n@prefix hc: .\n@prefix skos: \ - \ .\n@prefix schema: .\n@prefix crm: .\n@prefix foaf: \ - \ .\n\nhc:PersonalCollectionType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Personal Collection Type\"\ - @en,\n \"Privé Collectie Type\"@nl,\n \"Privatsammlung Typ\"@de,\n \"\ - Type de Collection Privée\"@fr ;\n skos:definition \"Individual private collectors and personal heritage collections\"\ - @en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:ArtCollector,\n hc:Bibliophile,\n \ - \ hc:Numismatist ;\n schema:url .\n\n# Example:\ - \ Willem Six Collection (17th-century Dutch paintings, Amsterdam)\n\n\ - \ a schema:Person, foaf:Person, crm:E21_Person, hc:PersonalCollector ;\n hc:custodian_type hc:PersonalCollectionType\ - \ ;\n hc:has_or_had_category [ hc:category_name \"Dutch Golden Age paintings\" ; hc:category_type \"SUBJECT\" ] ;\n hc:has_or_had_quantity\ - \ \"50+ paintings\", \"Historical furniture\", \"Family archives\" ;\n hc:acquisition_history \"Inherited family collection\ - \ since 1654\", \"Selective purchases 1980-2020\" ;\n hc:access_restrictions \"Private residence, No public access\"\ - , \"Occasional museum loans\" ;\n hc:preservation_approach \"Professional conservation\", \"Climate-controlled room\"\ - , \"Regular condition assessments\" ;\n hc:legacy_planning \"Family succession\", \"Selected works on permanent loan\ - \ to Rijksmuseum\" ;\n schema:name \"Willem Six\" ;\n schema:familyName \"Six\" ;\n schema:owns \ - \ ;\n schema:address \"Amsterdam, Netherlands\" ;\n dcterms:description \"Private collection of Dutch Golden Age paintings,\ - \ maintained by the Six family for over 350 years\" .\n```\n" - exact_mappings: - - skos:Concept - close_mappings: - - crm:E21_Person - - foaf:Person - - schema:Person - related_mappings: - - crm:E78_Curated_Holding - - schema:Collection - - schema:OwnershipInfo - slots: - - has_or_had_access_restriction - - has_acquisition_history - # REMOVED 2026-01-19: collection_focus - migrated to has_or_had_category + Category (Rule 53) + - ../slots/is_or_was_acquired_through # was: has_acquisition_history - migrated per Rule 53 (2026-01-26) + - ./AcquisitionEvent + - ./Provenance + # REMOVED 2026-01-19: collection_focus - migrated to has_or_had_category + Category (Rule 53) + - has_or_had_category # REMOVED 2026-01-19: collection_size - migrated to has_or_had_quantity + Quantity (Rule 53) - has_or_had_quantity @@ -241,15 +80,31 @@ classes: has_or_had_unit: unit_value: "volume" description: Private library size - has_acquisition_history: - range: string + is_or_was_acquired_through: + description: | + Acquisition history of the collection. + MIGRATED from has_acquisition_history per Rule 53 (2026-01-26). + Uses AcquisitionEvent with Provenance (has_or_had_description). + range: AcquisitionEvent + multivalued: true + inlined: true required: true examples: - - value: Inherited family collection, Selective purchases + - value: + has_or_had_provenance: + has_or_had_description: + - description_text: "Inherited family collection since 1654" + - description_text: "Selective purchases 1980-2020" description: Multi-generational art collection - - value: Assembled 1950-2000, European auctions + - value: + has_or_had_provenance: + has_or_had_description: + - description_text: "Assembled 1950-2000 through European auctions" description: Acquired art collection - - value: Field-collected, Botanical expeditions + - value: + has_or_had_provenance: + has_or_had_description: + - description_text: "Field-collected during botanical expeditions" description: Natural history collection has_or_had_access_restriction: range: string diff --git a/schemas/20251121/linkml/modules/classes/Segment.yaml b/schemas/20251121/linkml/modules/classes/Segment.yaml new file mode 100644 index 0000000000..5def67196a --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Segment.yaml @@ -0,0 +1,35 @@ +# Segment class +# Represents a segment of a resource (e.g. video segment, text region) +# +# Generation date: 2026-01-27 +# Rule compliance: 0b, 38, 39, 53 +# +# Created for has_annotation_segment migration + +id: https://nde.nl/ontology/hc/class/Segment +name: Segment +title: Segment Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + oa: http://www.w3.org/ns/oa# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + Segment: + class_uri: oa:SpecificResource + description: | + A segment or region of a resource. + + **Ontological Alignment**: + - `oa:SpecificResource`: A specific part of a resource. + slots: + - has_or_had_label + - has_or_had_description diff --git a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index 00d0d72f67..6345259026 100644 --- a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -24,7 +24,13 @@ imports: - ../slots/allows_or_allowed - ./TemperatureDeviation - ../slots/humidity_tolerance - - ../slots/has_air_changes_per_hour + - ../slots/specifies_or_specified + - ../classes/Ventilation + - ../classes/AirChanges + - ../slots/has_or_had_quantity + - ../classes/Quantity + - ../slots/has_or_had_unit + - ../classes/Unit - ../slots/requires_or_required # was: fire_suppression_type - migrated per Rule 53 (2026-01-26) - ./FireSuppressionSystem - ./FireSuppressionType @@ -96,7 +102,7 @@ classes: - crm:E29_Design_or_Procedure slots: - has_or_had_access_restriction - - has_air_changes_per_hour + - specifies_or_specified - requires_or_required # was: fire_suppression_type - migrated per Rule 53 (2026-01-26) - flood_protection_required - humidity_max @@ -126,7 +132,19 @@ classes: # MIGRATED 2026-01-16: is_or_was_required → has_or_had_requirement_status - has_or_had_requirement_status slot_usage: - policy_id: + specifies_or_specified: + range: Ventilation + inlined: true + description: | + Specifies ventilation requirements, such as air changes per hour. + Replaces has_air_changes_per_hour per Rule 53. + examples: + - value: + requires_or_required: + has_or_had_quantity: 1.5 + has_or_had_unit: + has_or_had_label: "air changes per hour" + description: 1.5 air changes per hour minimum range: uriorcurie required: true identifier: true @@ -233,11 +251,6 @@ classes: is_required: true requirement_type: "uv_filtered_lighting" description: UV filtering required - has_air_changes_per_hour: - range: float - examples: - - value: 1.5 - description: 1.5 air changes per hour minimum particulate_max: range: float examples: diff --git a/schemas/20251121/linkml/modules/classes/Ventilation.yaml b/schemas/20251121/linkml/modules/classes/Ventilation.yaml new file mode 100644 index 0000000000..517a5b2d7c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Ventilation.yaml @@ -0,0 +1,38 @@ +# Ventilation class +# Represents ventilation systems and requirements +# +# Generation date: 2026-01-27 +# Rule compliance: 0b, 38, 39, 53 +# +# Created for has_air_changes_per_hour migration + +id: https://nde.nl/ontology/hc/class/Ventilation +name: Ventilation +title: Ventilation Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/requires_or_required + - ./AirChanges + +classes: + Ventilation: + class_uri: schema:Thing + description: | + Ventilation system or requirements. + + **Ontological Alignment**: + - `schema:Thing`: Generic entity. + slots: + - requires_or_required + slot_usage: + requires_or_required: + range: AirChanges + description: Required air changes per hour. diff --git a/schemas/20251121/linkml/modules/slots/has_acquisition_history.yaml b/schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_acquisition_history.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_administration.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_administration.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_administration.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_administration_description.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_administration_description.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_administration_name.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_administration_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_air_changes_per_hour.yaml b/schemas/20251121/linkml/modules/slots/archive/has_air_changes_per_hour_archived_20260127.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_air_changes_per_hour.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_air_changes_per_hour_archived_20260127.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_allocation_date.yaml b/schemas/20251121/linkml/modules/slots/archive/has_allocation_date_archived_20260127.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_allocation_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_allocation_date_archived_20260127.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_alpha_2_code.yaml b/schemas/20251121/linkml/modules/slots/archive/has_alpha_2_code_archived_20260127.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_alpha_2_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_alpha_2_code_archived_20260127.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_alpha_3_code.yaml b/schemas/20251121/linkml/modules/slots/archive/has_alpha_3_code_archived_20260127.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_alpha_3_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_alpha_3_code_archived_20260127.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml new file mode 100644 index 0000000000..8a44fc5748 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml @@ -0,0 +1,5 @@ +name: has_or_had_administration +description: The administration that manages or managed the entity. +slot_uri: org:hasUnit +range: Administration +multivalued: true diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml new file mode 100644 index 0000000000..b6724d51fa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml @@ -0,0 +1,39 @@ +# has_or_had_quantity slot +# Generic slot for quantity values +# +# Generation date: 2026-01-27 +# Rule compliance: 38, 39, 42 +# +# Part of has_air_changes_per_hour migration (Rule 53) + +id: https://nde.nl/ontology/hc/slot/has_or_had_quantity +name: has_or_had_quantity_slot +title: Has Or Had Quantity Slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_or_had_quantity: + slot_uri: schema:value + description: | + The numeric value of a quantity. + + **Temporal Semantics** (RiC-O Pattern): + "hasOrHad" indicates the quantity is relative to a specific time or context. + + **Ontological Alignment**: + - `schema:value`: The value of the quantitative value or property value node. + + **Range**: + - Can be a number (float, integer) or a string representation. + range: uriorcurie + multivalued: false + required: false diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml new file mode 100644 index 0000000000..69bf349696 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml @@ -0,0 +1,39 @@ +# is_or_was_allocated_through slot +# Generic slot for allocation events +# +# Generation date: 2026-01-27 +# Rule compliance: 38, 39, 42 +# +# Part of has_allocation_date migration (Rule 53) + +id: https://nde.nl/ontology/hc/slot/is_or_was_allocated_through +name: is_or_was_allocated_through_slot +title: Is Or Was Allocated Through Slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + +slots: + is_or_was_allocated_through: + slot_uri: prov:wasGeneratedBy + description: | + The event (activity) through which an identifier was allocated. + + **Temporal Semantics** (RiC-O Pattern): + "isOrWas" indicates the allocation event in the past. + + **Ontological Alignment**: + - `prov:wasGeneratedBy`: Completion of production of a new entity by an activity. + + **Range**: + - `AllocationEvent` class. + range: uriorcurie + multivalued: false + required: false diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index fcc7ec2c02..bfd240c372 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -30,43 +30,13 @@ fixes: processed: status: true date: '2026-01-26' - notes: Migrated to is_or_was_accessioned_through + AccessionEvent (with temporal_extent) in CustodianArchive.yaml. Slot archived. -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accession_number + notes: Migrated to is_or_was_acquired_through + AcquisitionEvent. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_date revision: - - label: has_or_had_interface + - label: is_or_was_acquired_through type: slot - - label: AccessInterface - type: class - - label: has_or_had_url - type: slot - - label: URL - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accession_date - revision: - - label: is_or_was_accessioned_through - type: slot - - label: AccessionEvent - type: class - - label: temporal_extent - type: slot - - label: TimeSpan - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accession_number - revision: - - label: is_or_was_accessioned_through - type: slot - - label: AccessionEvent - type: class - - label: has_or_had_identifier - type: slot - - label: Identifier - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accumulation_end_date - revision: - - label: has_or_had_accumulation - type: slot - - label: Accumulation + - label: AcquisitionEvent type: class - label: temporal_extent type: slot @@ -76,93 +46,12 @@ fixes: type: slot - label: Timestamp type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accumulation_start_date - revision: - - label: has_or_had_accumulation - type: slot - - label: Accumulation - type: class - - label: temporal_extent - type: slot - - label: TimeSpan - type: class - - label: start_of_the_start - type: slot - - label: Timestamp - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_accuracy_in_meters - revision: - - label: has_or_had_coordinates - type: slot - - label: Coordinates - type: class - - label: has_or_had_level - type: slot - - label: AccuracyLevel - type: class - - label: has_or_had_quantity - type: slot - - label: Quantity - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_date - revision: - - label: is_or_was_acquired_through - type: slot - - label: AcquisitionEvent - type: class - - label: temporal_extent - type: slot - - label: TimeSpan - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_history - revision: - - label: is_or_was_acquired_through - type: slot - - label: AcquisitionEvent - type: class - - label: has_or_had_provenance - type: slot - - label: Provenance - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_method - revision: - - label: is_or_was_acquired_through - type: slot - - label: AcquisitionEvent - type: class - - label: has_or_had_method - type: slot - - label: AcquisitionMethod - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_source - revision: - - label: is_or_was_acquired_through - type: slot - - label: AcquisitionEvent - type: class - - label: has_or_had_origin - type: slot - - label: Entity - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_activity_description - revision: - - label: has_or_had_description - type: slot - - label: Description - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_activity_identifier - revision: - - label: has_or_had_identifier - type: slot - - label: Identifier - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_activity_name - revision: - - label: has_or_had_label - type: slot - - label: Label - type: class + processed: + status: true + date: '2026-01-26' + notes: Migrated to temporal_extent + TimeSpan (end_of_the_end) in Loan.yaml. Slot archived. - original_slot_id: https://nde.nl/ontology/hc/slot/has_actual_return_date + revision: - label: temporal_extent type: slot @@ -196,19 +85,12 @@ fixes: type: slot - label: Label type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_administration - revision: - - label: has_or_had_administration - type: slot - - label: Administration - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_administration_description - revision: - - label: has_or_had_description - type: slot - - label: Description - type: class + processed: + status: true + date: '2026-01-26' + notes: Migrated to has_or_had_label + Label in CustodianAdministration.yaml. Slot archived. - original_slot_id: https://nde.nl/ontology/hc/slot/has_administration_name + revision: - label: has_or_had_label type: slot @@ -234,9 +116,14 @@ fixes: revision: - label: has_or_had_age type: slot - - label: Age + - label: Age type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_agenda_description + processed: + status: true + date: '2026-01-26' + notes: Migrated to has_or_had_age + Age in PersonObservation.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_age +nda_description revision: - label: has_or_had_description type: slot @@ -292,6 +179,10 @@ fixes: - label: AgentTypes type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_agreement_signed_date + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_based_on + Agreement class + is_or_was_signed_on slot (Rule 53). Loan.yaml updated. Slot archived. revision: - label: is_or_was_based_on type: slot @@ -306,6 +197,10 @@ fixes: - label: Timestamp type: class - orignal_slot_id: https://nde.nl/ontology/hc/slot/has_air_changes_per_hour + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to specifies_or_specified + Ventilation class + AirChanges class (Rule 53). StorageConditionPolicy.yaml updated. Slot archived. revision: - label: specifies_or_specified type: slot @@ -324,7 +219,11 @@ fixes: - label: Unit type: class value: air changes per hour -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_allocation_date +- original_slot_id: https://nde.nl/ontology/hc/slot/has_allocation_date + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_allocated_through + AllocationEvent (Rule 53). CustodianIdentifier.yaml updated. Slot archived. revision: - label: is_or_was_allocated_through type: slot @@ -334,19 +233,35 @@ fixes: type: slot - label: TimeSpan type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_2_code + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_identifier + Alpha2Code class (Rule 53). Country.yaml updated. Slot archived. revision: - label: has_or_had_identifier type: slot - label: Alpha2Code type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_3_code + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_identifier + Alpha3Code class (Rule 53). Country.yaml updated. Slot archived. revision: - label: has_or_had_identifier type: slot - label: Alpha3Code type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_3_code +- original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_3_code_dup + processed: + status: true + date: '2026-01-27' + notes: Duplicate entry processed. revision: - label: has_or_had_identifier type: slot diff --git a/schemas/20251121/linkml/update_manifest.py b/schemas/20251121/linkml/update_manifest.py index 6ec008bb38..10c09475df 100644 --- a/schemas/20251121/linkml/update_manifest.py +++ b/schemas/20251121/linkml/update_manifest.py @@ -43,34 +43,39 @@ def update_manifest(add_files, remove_files): if __name__ == "__main__": # Define files to add add_files = [ - {"name": "Confidence", "path": "modules/classes/Confidence.yaml", "category": "class"}, - {"name": "GovernanceAuthority", "path": "modules/classes/GovernanceAuthority.yaml", "category": "class"}, - {"name": "GovernanceRole", "path": "modules/classes/GovernanceRole.yaml", "category": "class"}, - {"name": "GovernanceStructure", "path": "modules/classes/GovernanceStructure.yaml", "category": "class"}, - {"name": "GoverningBody", "path": "modules/classes/GoverningBody.yaml", "category": "class"}, - {"name": "HALCAdm1Code", "path": "modules/classes/HALCAdm1Code.yaml", "category": "class"}, - {"name": "HALCAdm2Name", "path": "modules/classes/HALCAdm2Name.yaml", "category": "class"}, - {"name": "defines_or_defined", "path": "modules/slots/defines_or_defined.yaml", "category": "slot"}, - {"name": "grants_or_granted", "path": "modules/slots/grants_or_granted.yaml", "category": "slot"}, - {"name": "has_or_had_confidence", "path": "modules/slots/has_or_had_confidence.yaml", "category": "slot"}, - {"name": "is_or_was_governed_by", "path": "modules/slots/is_or_was_governed_by.yaml", "category": "slot"}, - {"name": "is_or_was_represented_by", "path": "modules/slots/is_or_was_represented_by.yaml", "category": "slot"}, - {"name": "provides_or_provided_to", "path": "modules/slots/provides_or_provided_to.yaml", "category": "slot"}, + {"name": "AccessApplication", "path": "modules/classes/AccessApplication.yaml", "category": "class"}, + {"name": "AccessInterface", "path": "modules/classes/AccessInterface.yaml", "category": "class"}, + {"name": "AccessionEvent", "path": "modules/classes/AccessionEvent.yaml", "category": "class"}, + {"name": "Accumulation", "path": "modules/classes/Accumulation.yaml", "category": "class"}, + {"name": "Coordinates", "path": "modules/classes/Coordinates.yaml", "category": "class"}, + {"name": "AcquisitionEvent", "path": "modules/classes/AcquisitionEvent.yaml", "category": "class"}, + {"name": "AcquisitionMethod", "path": "modules/classes/AcquisitionMethod.yaml", "category": "class"}, + {"name": "grants_or_granted_access_through", "path": "modules/slots/grants_or_granted_access_through.yaml", "category": "slot"}, + {"name": "has_or_had_interface", "path": "modules/slots/has_or_had_interface.yaml", "category": "slot"}, + {"name": "is_or_was_accessioned_through", "path": "modules/slots/is_or_was_accessioned_through.yaml", "category": "slot"}, + {"name": "has_or_had_accumulation", "path": "modules/slots/has_or_had_accumulation.yaml", "category": "slot"}, + {"name": "has_or_had_coordinates", "path": "modules/slots/has_or_had_coordinates.yaml", "category": "slot"}, + {"name": "is_or_was_acquired_through", "path": "modules/slots/is_or_was_acquired_through.yaml", "category": "slot"}, + {"name": "was_acquired_through", "path": "modules/slots/was_acquired_through.yaml", "category": "slot"}, + {"name": "has_or_had_method", "path": "modules/slots/has_or_had_method.yaml", "category": "slot"}, ] # Define files to remove (archived slots) remove_files = [ - "geographic_scope", - "governance_authority", - "governance_clause", - "governance_representative", - "governance_role", - "governance_structure", - "governing_body", - "habitat", - "halc_adm1_code", - "halc_adm2_name", - "handwriting_confidence" + "has_access_application_url", + "has_access_interface_url", + "has_accession_date", + "has_accession_number", + "has_accumulation_end_date", + "has_accumulation_start_date", + "has_accuracy_in_meters", + "has_acquisition_date", + "has_acquisition_history", + "has_acquisition_method", + "has_acquisition_source", + "has_activity_description", + "has_activity_identifier", + "has_activity_name" ] update_manifest(add_files, remove_files)