From b2840d5db4f864cc84006d974a43b524f2690335 Mon Sep 17 00:00:00 2001 From: kempersc Date: Tue, 27 Jan 2026 10:29:15 +0100 Subject: [PATCH] Refactor manifest update script to dynamically scan and add YAML files for classes, slots, and enums; archive obsolete slots; add new slot definitions for various attributes including auction details, assessment categories, and authentication requirements; introduce new classes for aspect ratios, audits, and authority data; enhance slot descriptions and mappings for clarity and consistency. --- backend/rag/Dockerfile | 2 + .../schemas/20251121/linkml/manifest.json | 2 +- .../slots/has_aspect_ratio.yaml | 0 .../slots/has_assertion_date.yaml | 0 .../slots/has_assertion_rationale.yaml | 0 .../slots/has_assertion_value.yaml | 0 .../slots/has_assessment_category.yaml | 0 .../slots/has_assessment_date.yaml | 0 .../slots/has_associated_taxon.yaml | 0 .../slots/has_auction_house.yaml | 0 .../slots/has_auction_sale_name.yaml | 0 .../slots/has_audio_event_segment.yaml | 0 .../slots/has_audit_date.yaml | 0 .../slots/has_audit_opinion.yaml | 0 .../slots/has_auditor_name.yaml | 0 .../has_authentication_required_flag.yaml | 0 .../has_authority_file_abbreviation.yaml | 0 schemas/20251121/linkml/manifest.json | 2 +- .../linkml/modules/classes/AspectRatio.yaml | 35 ++++ .../modules/classes/AssessmentCategory.yaml | 29 +++ .../linkml/modules/classes/AuctionHouse.yaml | 30 +++ .../modules/classes/AuctionSaleCatalog.yaml | 30 +++ .../linkml/modules/classes/Audit.yaml | 29 +++ .../linkml/modules/classes/AuditOpinion.yaml | 26 +++ .../linkml/modules/classes/Auditor.yaml | 24 +++ .../modules/classes/Authentication.yaml | 23 +++ .../linkml/modules/classes/AuthorityData.yaml | 26 +++ .../modules/classes/BiologicalObject.yaml | 25 ++- .../modules/classes/ContributingAgency.yaml | 25 ++- .../modules/classes/DiocesanArchive.yaml | 40 ++-- .../modules/classes/FinancialStatement.yaml | 10 +- .../modules/classes/HistoricBuilding.yaml | 26 ++- .../modules/classes/LinkedInProfile.yaml | 22 ++- .../PrimaryDigitalPresenceAssertion.yaml | 54 ++++-- .../modules/classes/ProvenanceEvent.yaml | 50 +++-- .../modules/classes/StorageCondition.yaml | 17 +- .../linkml/modules/classes/Value.yaml | 38 ++++ .../modules/classes/VideoAudioAnnotation.yaml | 76 ++------ .../linkml/modules/classes/VideoPost.yaml | 22 ++- .../slots/contributes_or_contributed.yaml | 6 + .../modules/slots/draws_or_drew_opinion.yaml | 6 + .../modules/slots/has_or_had_value.yaml | 7 + .../modules/slots/is_or_was_asserted_on.yaml | 6 + .../modules/slots/is_or_was_assessed_on.yaml | 6 + .../modules/slots/is_or_was_conducted_by.yaml | 6 + .../modules/slots/publishes_or_published.yaml | 7 + .../linkml/modules/slots/slot_fixes.yaml | 183 +----------------- schemas/20251121/linkml/update_manifest.py | 55 ++++-- 48 files changed, 610 insertions(+), 335 deletions(-) rename schemas/20251121/linkml/{modules => archive}/slots/has_aspect_ratio.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_assertion_date.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_assertion_rationale.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_assertion_value.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_assessment_category.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_assessment_date.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_associated_taxon.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_auction_house.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_auction_sale_name.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_audio_event_segment.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_audit_date.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_audit_opinion.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_auditor_name.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_authentication_required_flag.yaml (100%) rename schemas/20251121/linkml/{modules => archive}/slots/has_authority_file_abbreviation.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/classes/AspectRatio.yaml create mode 100644 schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml create mode 100644 schemas/20251121/linkml/modules/classes/AuctionHouse.yaml create mode 100644 schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Audit.yaml create mode 100644 schemas/20251121/linkml/modules/classes/AuditOpinion.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Auditor.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Authentication.yaml create mode 100644 schemas/20251121/linkml/modules/classes/AuthorityData.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/publishes_or_published.yaml diff --git a/backend/rag/Dockerfile b/backend/rag/Dockerfile index 8607e611bf..177c2fab75 100644 --- a/backend/rag/Dockerfile +++ b/backend/rag/Dockerfile @@ -42,6 +42,8 @@ RUN useradd -m -u 1000 -s /bin/bash glam # Install Python dependencies first (better layer caching) COPY requirements.txt . +# Install CPU-only PyTorch first to avoid massive CUDA download and runtime issues +RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu RUN pip install --no-cache-dir -r requirements.txt # Copy application code diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 76a6332c6a..4f4ecd25f2 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-27T08:04:51.838Z", + "generated": "2026-01-27T09:07:17.016Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/slots/has_aspect_ratio.yaml b/schemas/20251121/linkml/archive/slots/has_aspect_ratio.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_aspect_ratio.yaml rename to schemas/20251121/linkml/archive/slots/has_aspect_ratio.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_assertion_date.yaml b/schemas/20251121/linkml/archive/slots/has_assertion_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_assertion_date.yaml rename to schemas/20251121/linkml/archive/slots/has_assertion_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_assertion_rationale.yaml b/schemas/20251121/linkml/archive/slots/has_assertion_rationale.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_assertion_rationale.yaml rename to schemas/20251121/linkml/archive/slots/has_assertion_rationale.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_assertion_value.yaml b/schemas/20251121/linkml/archive/slots/has_assertion_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_assertion_value.yaml rename to schemas/20251121/linkml/archive/slots/has_assertion_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_assessment_category.yaml b/schemas/20251121/linkml/archive/slots/has_assessment_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_assessment_category.yaml rename to schemas/20251121/linkml/archive/slots/has_assessment_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_assessment_date.yaml b/schemas/20251121/linkml/archive/slots/has_assessment_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_assessment_date.yaml rename to schemas/20251121/linkml/archive/slots/has_assessment_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_associated_taxon.yaml b/schemas/20251121/linkml/archive/slots/has_associated_taxon.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_associated_taxon.yaml rename to schemas/20251121/linkml/archive/slots/has_associated_taxon.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_auction_house.yaml b/schemas/20251121/linkml/archive/slots/has_auction_house.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_auction_house.yaml rename to schemas/20251121/linkml/archive/slots/has_auction_house.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_auction_sale_name.yaml b/schemas/20251121/linkml/archive/slots/has_auction_sale_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_auction_sale_name.yaml rename to schemas/20251121/linkml/archive/slots/has_auction_sale_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_audio_event_segment.yaml b/schemas/20251121/linkml/archive/slots/has_audio_event_segment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_audio_event_segment.yaml rename to schemas/20251121/linkml/archive/slots/has_audio_event_segment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_audit_date.yaml b/schemas/20251121/linkml/archive/slots/has_audit_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_audit_date.yaml rename to schemas/20251121/linkml/archive/slots/has_audit_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_audit_opinion.yaml b/schemas/20251121/linkml/archive/slots/has_audit_opinion.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_audit_opinion.yaml rename to schemas/20251121/linkml/archive/slots/has_audit_opinion.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_auditor_name.yaml b/schemas/20251121/linkml/archive/slots/has_auditor_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_auditor_name.yaml rename to schemas/20251121/linkml/archive/slots/has_auditor_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_authentication_required_flag.yaml b/schemas/20251121/linkml/archive/slots/has_authentication_required_flag.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_authentication_required_flag.yaml rename to schemas/20251121/linkml/archive/slots/has_authentication_required_flag.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_authority_file_abbreviation.yaml b/schemas/20251121/linkml/archive/slots/has_authority_file_abbreviation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_authority_file_abbreviation.yaml rename to schemas/20251121/linkml/archive/slots/has_authority_file_abbreviation.yaml diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 4f4ecd25f2..8bf1510d78 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-27T09:07:17.016Z", + "generated": "2026-01-27T09:29:17.532Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/AspectRatio.yaml b/schemas/20251121/linkml/modules/classes/AspectRatio.yaml new file mode 100644 index 0000000000..809838483c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AspectRatio.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/class/AspectRatio +name: AspectRatio +title: AspectRatio +description: >- + The aspect ratio of a visual media object (video, image). + + Used to store structured aspect ratio information (e.g., "16:9", "4:3"). + +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_degree + - ../slots/has_or_had_value + +classes: + AspectRatio: + class_uri: schema:PropertyValue + description: Aspect ratio specification. + + slots: + - has_or_had_degree + + slot_usage: + has_or_had_degree: + range: string + description: The aspect ratio string (e.g., "16:9"). + examples: + - value: "16:9" + - value: "4:3" diff --git a/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml new file mode 100644 index 0000000000..b1a27a6ee0 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/class/AssessmentCategory +name: AssessmentCategory +title: AssessmentCategory +description: >- + A category or classification used in an assessment (e.g., condition assessment). + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_category + +classes: + AssessmentCategory: + class_uri: skos:Concept + description: Assessment category concept. + + slots: + - has_or_had_category + + slot_usage: + has_or_had_category: + range: string + description: The category label or code. diff --git a/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml new file mode 100644 index 0000000000..ac28b84ec0 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/class/AuctionHouse +name: AuctionHouse +title: AuctionHouse +description: >- + An organization that conducts auctions. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/is_or_was_conducted_by + - ../slots/has_or_had_name + +classes: + AuctionHouse: + class_uri: schema:AuctionHouse + description: An auction house. + + slots: + - has_or_had_name + + slot_usage: + has_or_had_name: + range: string + description: Name of the auction house. diff --git a/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml new file mode 100644 index 0000000000..fe017cdc7a --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/class/AuctionSaleCatalog +name: AuctionSaleCatalog +title: AuctionSaleCatalog +description: >- + A catalog published for an auction sale. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/publishes_or_published + - ../slots/has_or_had_name + +classes: + AuctionSaleCatalog: + class_uri: schema:PublicationIssue + description: Auction sale catalog. + + slots: + - has_or_had_name + + slot_usage: + has_or_had_name: + range: string + description: Name or title of the auction sale/catalog. diff --git a/schemas/20251121/linkml/modules/classes/Audit.yaml b/schemas/20251121/linkml/modules/classes/Audit.yaml new file mode 100644 index 0000000000..861456ce75 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Audit.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/class/Audit +name: Audit +title: Audit +description: >- + An official inspection of an organization's accounts or processes, typically by an independent body. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/temporal_extent + - ../slots/draws_or_drew_opinion + - ../slots/is_or_was_conducted_by + +classes: + Audit: + class_uri: prov:Activity + description: Audit event. + + slots: + - temporal_extent + - draws_or_drew_opinion + - is_or_was_conducted_by diff --git a/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml b/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml new file mode 100644 index 0000000000..369a7f96c5 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/class/AuditOpinion +name: AuditOpinion +title: AuditOpinion +description: >- + The opinion or conclusion drawn from an audit (e.g., Unqualified, Qualified, Adverse). + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/description + +classes: + AuditOpinion: + class_uri: skos:Concept + description: Audit opinion. + + slots: + - has_or_had_label + - description diff --git a/schemas/20251121/linkml/modules/classes/Auditor.yaml b/schemas/20251121/linkml/modules/classes/Auditor.yaml new file mode 100644 index 0000000000..2af818fe6d --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Auditor.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/class/Auditor +name: Auditor +title: Auditor +description: >- + A person or organization authorized to review and verify the accuracy of financial records. + +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_name + +classes: + Auditor: + class_uri: schema:Organization + description: Auditor entity. + + slots: + - has_or_had_name diff --git a/schemas/20251121/linkml/modules/classes/Authentication.yaml b/schemas/20251121/linkml/modules/classes/Authentication.yaml new file mode 100644 index 0000000000..fd0cc5b326 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Authentication.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/class/Authentication +name: Authentication +title: Authentication +description: >- + Authentication requirements or status. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/requires_or_required + +classes: + Authentication: + class_uri: hc:Authentication + description: Authentication details. + + slots: + - requires_or_required diff --git a/schemas/20251121/linkml/modules/classes/AuthorityData.yaml b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml new file mode 100644 index 0000000000..dc3fa52bb8 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/class/AuthorityData +name: AuthorityData +title: AuthorityData +description: >- + Data from an authority file or controlled vocabulary. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_type + +classes: + AuthorityData: + class_uri: skos:Concept + description: Authority file data. + + slots: + - has_or_had_label + - has_or_had_type diff --git a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index e0b5c7383a..fb822715e0 100644 --- a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -22,6 +22,8 @@ imports: # associated_taxa REMOVED - migrated to is_or_was_associated_with (Rule 53) - ../slots/is_or_was_associated_with - ./Taxon + # has_associated_taxon REMOVED - migrated to has_or_had_hypernym + Taxon (Rule 53) + - ../slots/has_or_had_hypernym # bold_id REMOVED - migrated to has_or_had_identifier with BOLDIdentifier class (Rule 53) - ../slots/has_or_had_identifier - ./BOLDIdentifier @@ -88,7 +90,8 @@ imports: - ./TemplateSpecificityType - ./TemplateSpecificityTypes - - ../slots/has_associated_taxon + # has_associated_taxon REMOVED - migrated to has_or_had_hypernym (Rule 53) + - ../slots/has_or_had_hypernym default_prefix: hc classes: BiologicalObject: @@ -143,6 +146,8 @@ classes: - describes_or_described # collection_location REMOVED - migrated to has_or_had_place + CollectionEvent (Rule 53, 2026-01-19) - has_or_had_place + # has_associated_taxon REMOVED - migrated to has_or_had_hypernym (Rule 53) + - has_or_had_hypernym # REMOVED 2026-01-22: collector - migrated to is_or_was_acquired_by + Agent (Rule 53) - is_or_was_acquired_by # REMOVED 2026-01-22: common_name, common_name_language - migrated to has_or_had_name + Name (Rule 53) @@ -557,14 +562,24 @@ classes: - value: has_or_had_label: Coral reef has_or_had_description: Depth 15m - has_associated_taxon: + has_or_had_hypernym: # was: has_associated_taxon - migrated per Rule 53 + description: | + Associated taxon (e.g. host, parasite) relationship. + MIGRATED from has_associated_taxon per slot_fixes.yaml (Rule 53). + Uses Taxon class. required: false - range: string + range: Taxon multivalued: true + inlined: true + inlined_as_list: true examples: - - value: host:Quercus robur + - value: + has_or_had_label: "Quercus robur" + description: "host:Quercus robur" description: Insect collected from oak tree - - value: parasite of:Cervus elaphus + - value: + has_or_had_label: "Cervus elaphus" + description: "parasite of:Cervus elaphus" iucn_status: required: false range: string diff --git a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml index 14113ac6d8..5115c8a0df 100644 --- a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml +++ b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml @@ -31,7 +31,9 @@ imports: - ../slots/name_local - ../slots/has_or_had_abbreviation - ../slots/has_authority_file_name - - ../slots/has_authority_file_abbreviation + # has_authority_file_abbreviation REMOVED - migrated to contributes_or_contributed + AuthorityData (Rule 53) + - ../slots/contributes_or_contributed + - ./AuthorityData - ../slots/has_authority_file_url # MIGRATED 2026-01-26: entity_types_covered → provides_or_provided + AuthorityFile (Rule 53) - ../slots/provides_or_provided @@ -57,7 +59,8 @@ imports: - ../slots/entity_types_covered - ../slots/governance_representative - ../slots/governance_role - - ../slots/has_authority_file_abbreviation + # has_authority_file_abbreviation REMOVED - migrated to contributes_or_contributed (Rule 53) + - ../slots/contributes_or_contributed - ../slots/has_authority_file_name - ../slots/has_authority_file_url - ../slots/has_or_had_abbreviation @@ -78,7 +81,8 @@ imports: # - ../slots/entity_types_covered - ../slots/is_or_was_represented_by # was: governance_representative - migrated per Rule 53 (2026-01-26) - ../slots/has_or_had_role # was: governance_role - migrated per Rule 53 (2026-01-26) - - ../slots/has_authority_file_abbreviation + # has_authority_file_abbreviation REMOVED - migrated to contributes_or_contributed (Rule 53) + - ../slots/contributes_or_contributed - ../slots/has_authority_file_name - ../slots/has_authority_file_url - ../slots/has_or_had_abbreviation @@ -259,7 +263,8 @@ classes: - name_local - has_or_had_abbreviation - has_authority_file_name - - has_authority_file_abbreviation + # has_authority_file_abbreviation REMOVED - migrated to contributes_or_contributed (Rule 53) + - contributes_or_contributed - has_authority_file_url - record_format # MIGRATED 2026-01-26: entity_types_covered → provides_or_provided @@ -310,3 +315,15 @@ classes: description: | Official website of the contributing agency. MIGRATED from website slot per slot_fixes.yaml (Rule 53, 2025-01-15). + contributes_or_contributed: + description: | + Contributes authority data/abbreviation to the consortium. + MIGRATED from has_authority_file_abbreviation per Rule 53. + Uses AuthorityData class. + range: AuthorityData + inlined: true + examples: + - value: + has_or_had_label: "LCNAF" + has_or_had_type: "abbreviation" + description: Contributes the LCNAF abbreviation diff --git a/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml b/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml index b6aeb87d85..2233603971 100644 --- a/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml @@ -17,7 +17,7 @@ imports: - ./CollectionType - ../slots/has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) - ./Scope # for has_or_had_scope range (2026-01-15) - - ../slots/has_archdiocese_name + - ./Archdiocese # for has_archdiocese_name migration (Rule 53) # MIGRATED 2026-01-22: canonical_access_rule → requires_or_required + Permission per slot_fixes.yaml - ../slots/requires_or_required - ./Permission @@ -45,11 +45,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_archdiocese_name - requires_or_required # was: canonical_access_rule - migrated 2026-01-22 - has_or_had_custodian_type - originates_or_originated_from - - is_or_was_part_of # was: founding_date_diocese - migrated per Rule 53 (2026-01-22) + - is_or_was_part_of # was: founding_date_diocese (2026-01-22) + has_archdiocese_name (Rule 53) - hold_or_held_record_set_type - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) @@ -72,10 +71,6 @@ classes: slot_usage: has_or_had_identifier: # was: wikidata_entity - migrated per Rule 53 (2026-01-15) # equals_string removed: Q11906839 (incompatible with uriorcurie range) - has_archdiocese_name: - range: string - examples: - - value: Archdiocese of Utrecht originates_or_originated_from: range: Diocese description: | @@ -87,12 +82,15 @@ classes: is_or_was_located_in: has_or_had_label: Province of Utrecht # MIGRATED 2026-01-22: founding_date_diocese → is_or_was_part_of + Diocese (Rule 53) + # MIGRATED 2026-01-27: has_archdiocese_name → is_or_was_part_of + Archdiocese (Rule 53) is_or_was_part_of: description: | - The diocese this archive is part of. - Diocese includes founding event with temporal extent. - Migrated from founding_date_diocese per slot_fixes.yaml revision. - range: Diocese + The diocese or archdiocese this archive is part of. + Migrated from founding_date_diocese (2026-01-22) and has_archdiocese_name (2026-01-27). + range: Organization + any_of: + - range: Diocese + - range: Archdiocese inlined: true examples: - value: @@ -103,6 +101,9 @@ classes: end_of_the_begin: "0695-12-31" founding_description: "Established circa 695 by St. Willibrord" description: Diocese of Utrecht established ~695 + - value: + has_or_had_label: "Archdiocese of Utrecht" + description: Part of Archdiocese requires_or_required: range: Permission inlined: true @@ -149,18 +150,17 @@ classes: - archivo diocesano@es - archives diocésaines@fr has_or_had_description: Archive of a bishopric (diocese) # was: type_description - migrated per Rule 53/56 (2026-01-16) - has_archdiocese_name: Archdiocese of Utrecht + is_or_was_part_of: + - has_or_had_label: "Diocese of 's-Hertogenbosch" + is_or_was_founded_through: + temporal_extent: + begin_of_the_begin: "1559-05-12" + end_of_the_begin: "1559-05-12" + founding_description: "Established 12 May 1559" + - has_or_had_label: "Archdiocese of Utrecht" originates_or_originated_from: has_or_had_label: Diocese of 's-Hertogenbosch is_or_was_located_in: has_or_had_label: Province of Utrecht - # MIGRATED 2026-01-22: founding_date_diocese → is_or_was_part_of + Diocese (Rule 53) - is_or_was_part_of: - has_or_had_label: "Diocese of 's-Hertogenbosch" - is_or_was_founded_through: - temporal_extent: - begin_of_the_begin: "1559-05-12" - end_of_the_begin: "1559-05-12" - founding_description: "Established 12 May 1559" canonical_access_rules: true description: Diocesan archive example - Diocese of 's-Hertogenbosch diff --git a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index 8c4ccaf064..9da2d38fd8 100644 --- a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -18,10 +18,12 @@ imports: - ../slots/is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-18) - ./PublicationEvent # for is_or_was_published_at range - ./TimeSpan # for PublicationEvent.temporal_extent (already imported below but needed for PublicationEvent) - - ../slots/has_audit_date - - ../slots/has_audit_opinion - - ../slots/has_or_had_audit_status - - ../slots/has_auditor_name + # has_audit_* slots REMOVED - migrated to is_or_was_based_on + Audit (Rule 53) + - ../slots/is_or_was_based_on + - ./Audit + - ./Auditor + - ./AuditOpinion + - ../slots/draws_or_drew_opinion # - ../slots/change_in_net_asset # ARCHIVED 2026-01-24: migrated to specifies_or_specified + NetAsset per Rule 53/56 - ../slots/specifies_or_specified - ./NetAsset diff --git a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml index fbf2511a71..b292e14118 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml @@ -9,7 +9,8 @@ imports: - ./Area - ../enums/FeatureTypeEnum - ../slots/has_or_had_architect - - ../slots/has_architectural_style + - ../slots/has_or_had_style + - ../classes/ArchitecturalStyle # REMOVED 2026-01-15: ../slots/building_floor_area_sqm - migrated to has_or_had_area + Area (Rule 53) - ../slots/has_or_had_area # REMOVED 2026-01-18: ../slots/complex_name - migrated to has_or_had_label + Label (Rule 53) @@ -90,7 +91,7 @@ classes: - hc:FeaturePlace slots: - has_or_had_architect - - has_architectural_style + - has_or_had_style - has_or_had_area - has_or_had_label # was: complex_name - migrated per Rule 53 (2026-01-18) - has_or_had_condition # was: condition_status - migrated per Rule 53 (2026-01-18) @@ -167,14 +168,22 @@ classes: description: Known exact year - value: APPROXIMATE description: Circa date - has_architectural_style: - range: string + has_or_had_style: + description: | + Architectural style of the building. + MIGRATED from has_architectural_style per Rule 53. + Uses ArchitecturalStyle class. + range: ArchitecturalStyle + inlined: true examples: - - value: Dutch Golden Age + - value: + has_or_had_label: "Dutch Golden Age" description: 17th century Dutch - - value: Neo-Gothic + - value: + has_or_had_label: "Neo-Gothic" description: Gothic revival - - value: Amsterdam School + - value: + has_or_had_label: "Amsterdam School" description: Early 20th century Dutch has_or_had_architect: range: string @@ -339,7 +348,8 @@ classes: has_or_had_type: HISTORIC_HOUSE_MUSEUM # was: feature_type_classification - migrated per Rule 53 construction_date: '1650' construction_date_precision: APPROXIMATE - has_architectural_style: Dutch Golden Age + has_or_had_style: + has_or_had_label: Dutch Golden Age heritage_status: Rijksmonument monument_number: '16284' is_open_to_public: false diff --git a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml index 98bae6cbbf..2efd741a13 100644 --- a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml @@ -20,7 +20,9 @@ imports: - ../slots/has_or_had_about_text - ../slots/has_or_had_provenance - ./ProvenanceBlock - - ../slots/has_assessment_date + # has_assessment_date REMOVED - migrated to is_or_was_assessed_on + TimeSpan (Rule 53) + - ../slots/is_or_was_assessed_on + - ./TimeSpan - ../slots/connections_text - ../slots/has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23) - ./DataSource @@ -70,7 +72,8 @@ imports: - ./TemplateSpecificityType - ./TemplateSpecificityTypes - - ../slots/has_assessment_date + # has_assessment_date REMOVED - migrated to is_or_was_assessed_on (Rule 53) + - ../slots/is_or_was_assessed_on default_range: string classes: LinkedInProfile: @@ -352,7 +355,8 @@ classes: ' slots: - - assessment_date + # MIGRATED 2026-01-27: has_assessment_date → is_or_was_assessed_on (Rule 53) + - is_or_was_assessed_on - likelihood_confidence - likelihood_factor - likelihood_level @@ -376,8 +380,16 @@ classes: likelihood_factor: range: string multivalued: true - has_assessment_date: - range: datetime + is_or_was_assessed_on: + description: | + Date when the likelihood score was assessed. + MIGRATED from has_assessment_date per Rule 53. + range: TimeSpan + inlined: true + examples: + - value: + start_of_the_start: "2024-01-01T12:00:00Z" + description: Assessment timestamp WhatsAppEnrichmentMetadata: class_uri: hc:WhatsAppEnrichmentMetadata description: 'Metadata about the WhatsApp enrichment process. diff --git a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml index c4d663926d..ed1d368814 100644 --- a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml +++ b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml @@ -111,10 +111,13 @@ classes: # REMOVED - migrated to is_or_was_asserted_by (Rule 53) # - asserted_by - is_or_was_asserted_by - - has_assertion_date + # has_assertion_date REMOVED - migrated to is_or_was_asserted_on + TimeSpan (Rule 53) + - is_or_was_asserted_on - has_or_had_identifier - - has_assertion_rationale - - has_assertion_value + # has_assertion_rationale REMOVED - migrated to has_or_had_rationale + Rationale (Rule 53) + - has_or_had_rationale + # has_assertion_value REMOVED - migrated to has_or_had_value + Value (Rule 53) + - has_or_had_value - has_or_had_based_on_observation # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) - is_or_was_generated_by @@ -159,20 +162,36 @@ classes: has_or_had_label: "Website" has_or_had_identifier: "https://nde.nl/ontology/hc/type/website" description: Characterizing main website - has_assertion_value: - range: boolean + has_or_had_value: + description: | + The boolean value of the assertion (true/false). + MIGRATED from has_assertion_value per Rule 53. + Uses Value class with value_content="true"/"false" and value_type="boolean". + range: Value required: true + inlined: true examples: - - value: true + - value: + value_content: "true" + value_type: "boolean" description: Facebook IS the primary digital presence - - value: false + - value: + value_content: "false" + value_type: "boolean" description: Instagram is secondary to main website - has_assertion_rationale: - range: string + has_or_had_rationale: + description: | + Rationale for this assertion. + MIGRATED from has_assertion_rationale per Rule 53. + Uses Rationale class. + range: Rationale required: false + inlined: true examples: - - value: No formal website exists for this heritage society. Facebook page is the only discoverable online presence - with 450 followers and regular updates about local history events. + - value: + has_or_had_rationale: "No formal website exists for this heritage society. Facebook page is the only discoverable online presence." + decision_type: "INFERENCE" + description: Rationale based on absence of website temporal_extent: range: TimeSpan required: false @@ -191,11 +210,18 @@ classes: - value: - observation_id: '.../observation/hvn-website-check-2025-11' - observation_id: '.../observation/hvn-facebook-scrape-2025-11' - has_assertion_date: - range: datetime + is_or_was_asserted_on: + description: | + Date/time when the assertion was made. + MIGRATED from has_assertion_date per Rule 53. + Uses TimeSpan (start_of_the_start). + range: TimeSpan required: false + inlined: true examples: - - value: '2025-11-29T14:30:00Z' + - value: + start_of_the_start: '2025-11-29T14:30:00Z' + description: Assertion made on specific date is_or_was_asserted_by: range: Asserter inlined: true diff --git a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml index a04cbb2098..71964d79e8 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml @@ -32,8 +32,12 @@ imports: - ../slots/has_or_had_provenance # was: provenance_text - migrated per Rule 53/56 (2026-01-18) - ./Provenance - ./Description - - ../slots/has_auction_house - - ../slots/has_auction_sale_name + # has_auction_house REMOVED - migrated to is_or_was_conducted_by + AuctionHouse (Rule 53) + - ../slots/is_or_was_conducted_by + - ./AuctionHouse + # has_auction_sale_name REMOVED - migrated to publishes_or_published + AuctionSaleCatalog (Rule 53) + - ../slots/publishes_or_published + - ./AuctionSaleCatalog - ../slots/has_or_had_level # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18) - ./CertaintyLevel - ../slots/has_or_had_custodian_type @@ -97,10 +101,10 @@ classes: - crm:E7_Activity - schema:Action slots: - - has_auction_house - - has_auction_sale_name - - has_or_had_level # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18) - - has_or_had_custodian_type + # has_auction_house REMOVED - migrated to is_or_was_conducted_by + AuctionHouse (Rule 53) + - is_or_was_conducted_by + # has_auction_sale_name REMOVED - migrated to publishes_or_published + AuctionSaleCatalog (Rule 53) + - publishes_or_published # REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53) - is_or_was_associated_with - has_or_had_reference @@ -277,20 +281,22 @@ classes: - value: 30 guilders - value: Purchased for 2 stuivers 10 guilders - value: Forced sale for nominal sum - has_auction_house: - required: false - range: string - examples: - - value: Christie's - - value: Sotheby's - - value: Dorotheum - has_auction_sale_name: - required: false - range: string - examples: - - value: Dissius sale - - value: Important Old Master Paintings - - value: The Collection of [Name] + # MIGRATED 2026-01-27: has_auction_house → is_or_was_conducted_by (Rule 53) + # has_auction_house: + # required: false + # range: string + # examples: + # - value: Christie's + # - value: Sotheby's + # - value: Dorotheum + # MIGRATED 2026-01-27: has_auction_sale_name → publishes_or_published (Rule 53) + # has_auction_sale_name: + # required: false + # range: string + # examples: + # - value: Dissius sale + # - value: Important Old Master Paintings + # - value: The Collection of [Name] lot_number: required: false range: string @@ -498,7 +504,9 @@ classes: is_or_was_located_at: - place_name: Amsterdam country: NL - has_auction_sale_name: Dissius sale + # MIGRATED 2026-01-27: has_auction_sale_name → publishes_or_published (Rule 53) + publishes_or_published: + - has_or_had_name: "Dissius sale" lot_number: '36' price_text: Unknown has_or_had_level: # was: certainty_level - migrated per Rule 53/56 (2026-01-18) diff --git a/schemas/20251121/linkml/modules/classes/StorageCondition.yaml b/schemas/20251121/linkml/modules/classes/StorageCondition.yaml index 0ebc44eb69..3340399c47 100644 --- a/schemas/20251121/linkml/modules/classes/StorageCondition.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageCondition.yaml @@ -26,7 +26,9 @@ imports: - ../slots/observation_date - ../slots/indicates_or_indicated # was: follow_up_date - migrated per Rule 53 (2026-01-26) - ./ConservationReview # for indicates_or_indicated range - - ../slots/has_assessment_category + # has_assessment_category REMOVED - migrated to has_or_had_category + AssessmentCategory (Rule 53) + - ../slots/has_or_had_category + - ./AssessmentCategory - ../slots/has_or_had_category_assessment # - ../slots/category_measurement # ARCHIVED 2026-01-24: migrated to has_or_had_measurement + Measurement per Rule 53/56 - ../slots/has_or_had_measurement @@ -128,6 +130,8 @@ classes: - specificity_annotation - supersede_condition - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + # has_assessment_category REMOVED - migrated to has_or_had_category (Rule 53) + - has_or_had_category slot_usage: has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) description: | @@ -207,6 +211,17 @@ classes: has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main depot area + has_or_had_category: + description: | + Category of assessment (e.g., PEST_CONTROL, TEMPERATURE). + MIGRATED from has_assessment_category per Rule 53. + range: AssessmentCategory + multivalued: true + inlined: true + examples: + - value: + has_or_had_category: PEST_CONTROL + description: Pest control assessment observation_note: range: string examples: diff --git a/schemas/20251121/linkml/modules/classes/Value.yaml b/schemas/20251121/linkml/modules/classes/Value.yaml new file mode 100644 index 0000000000..5a94b56cf8 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Value.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/class/Value +name: Value +title: Value +description: >- + A generic wrapper for values in assertions, claims, or measurements. + + Allows storing typed values, units, and raw strings. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_value + +classes: + Value: + class_uri: schema:StructuredValue + description: Structured value wrapper. + + slots: + - has_or_had_value + + attributes: + value_content: + range: string + description: The string representation of the value. + value_type: + range: string + description: The data type of the value (e.g., integer, float, boolean). + measurement_unit: + range: string + description: The unit of measurement (if applicable). diff --git a/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml b/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml index 3430b0bffa..48a7905dd8 100644 --- a/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml @@ -71,7 +71,9 @@ imports: - ./TemplateSpecificityType - ./TemplateSpecificityTypes - - ../slots/has_audio_event_segment + # has_audio_event_segment REMOVED - migrated to contains_or_contained + AudioEventSegment (Rule 53) + - ../slots/contains_or_contained + - ./AudioEventSegment - ../enums/AudioEventTypeEnum - ../enums/SoundEventTypeEnum - ../enums/MusicTypeEnum @@ -135,6 +137,9 @@ classes: # MIGRATED from audio_event_segments to has_or_had_segment (Rule 53) # - audio_event_segments - has_or_had_segment + # has_audio_event_segment REMOVED - migrated to contains_or_contained + AudioEventSegment (Rule 53) + # - has_audio_event_segment + - contains_or_contained - audio_quality_score # MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53) - is_or_was_diarized @@ -175,66 +180,21 @@ classes: description: Speech detection segment - value: '[{has_or_had_type: MUSIC, start_seconds: 30.0, end_seconds: 60.0, segment_text: "Background classical music", confidence: 0.88}]' description: Music detection segment - # NOTE: has_audio_event_segment is deprecated - use has_or_had_segment above - has_audio_event_segment: - range: VideoTimeSegment - multivalued: true - required: false - inlined_as_list: true - examples: - - value: '[{start_seconds: 0.0, end_seconds: 15.0, segment_text: ''Speech detected - Speaker 1''}]' - description: Speech detection segment - has_or_had_type: - range: AudioEventTypeEnum - required: true + contains_or_contained: description: | - Primary type of audio event analysis. - MIGRATED from primary_audio_event_type (2026-01-26). - examples: - - value: SPEECH - description: Primary focus on speech analysis - speech_detected: - range: boolean - required: false - examples: - - value: true - description: Speech is present in video - has_or_had_speech_segment: - range: SpeechSegment - multivalued: true - required: false - inlined_as_list: true - examples: - - value: '[{start_seconds: 0.0, end_seconds: 15.0, speaker_id: ''spk_001'', language: ''nl''}]' - description: Dutch speech from speaker 1 - speech_language: - range: string - required: false - examples: - - value: nl - description: Dutch is primary language - - value: en - description: English is primary language - speech_language_confidence: - range: float - required: false - minimum_value: 0.0 - maximum_value: 1.0 - examples: - - value: 0.95 - description: High confidence language detection - languages_detected: - range: string - multivalued: true - required: false - examples: - - value: '[nl, en, de]' - description: Dutch, English, and German detected - # MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53) - is_or_was_diarized: - range: DiarizationStatus + Primary audio event segment. + MIGRATED from has_audio_event_segment per Rule 53. + Uses AudioEventSegment class. + range: AudioEventSegment required: false inlined: true + examples: + - value: + has_or_had_type: "SPEECH" + temporal_extent: + start_time: "0.0" + end_time: "10.5" + description: Main speech segment description: | Status of speaker diarization process. MIGRATED from diarization_enabled (Rule 53). diff --git a/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 6b65b4a46b..f5fd9f90f9 100644 --- a/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoPost.yaml @@ -6,7 +6,9 @@ imports: - ./SocialMediaPost - ./SocialMediaPostTypes - ../slots/language - - ../slots/has_aspect_ratio + # has_aspect_ratio REMOVED - migrated to has_or_had_degree + AspectRatio (Rule 53) + - ../slots/has_or_had_degree + - ./AspectRatio # REMOVED 2026-01-15: ../slots/available_caption_languages - migrated to has_available_caption_language # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback - ../slots/has_or_had_caption @@ -234,7 +236,8 @@ classes: - wikidata:Q34508 - wikidata:Q604644 slots: - - has_aspect_ratio + # has_aspect_ratio REMOVED - migrated to has_or_had_degree (Rule 53) + - has_or_had_degree - has_available_caption_language # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback - has_or_had_caption @@ -308,13 +311,20 @@ classes: - value: resolution_class: sd description: Standard definition (simple enum for backward compatibility) - has_aspect_ratio: - range: string + has_or_had_degree: + description: | + Aspect ratio of the video. + MIGRATED from has_aspect_ratio per Rule 53. + Uses AspectRatio class for structured value. + range: AspectRatio + inlined: true required: false examples: - - value: '16:9' + - value: + has_or_had_degree: '16:9' description: Standard widescreen - - value: '9:16' + - value: + has_or_had_degree: '9:16' description: Vertical format for Shorts/Reels # MIGRATED 2026-01-22: frame_rate → has_or_had_quantity + Quantity + has_or_had_unit + Unit (Rule 53) # frame_rate: diff --git a/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml b/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml new file mode 100644 index 0000000000..7ec1880000 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml @@ -0,0 +1,6 @@ +id: https://nde.nl/ontology/hc/slot/contributes_or_contributed +name: contributes_or_contributed +title: contributes_or_contributed +description: Contributes data or resources. +slot_uri: prov:hadMember +range: AuthorityData diff --git a/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml b/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml new file mode 100644 index 0000000000..5713b499ff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml @@ -0,0 +1,6 @@ +id: https://nde.nl/ontology/hc/slot/draws_or_drew_opinion +name: draws_or_drew_opinion +title: draws_or_drew_opinion +description: The opinion or conclusion drawn from an activity (e.g. audit). +slot_uri: prov:generated +range: AuditOpinion diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_value.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_value.yaml new file mode 100644 index 0000000000..ae85f2f313 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_value.yaml @@ -0,0 +1,7 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_value +name: has_or_had_value +title: has_or_had_value +description: The value associated with an assertion, claim, or measurement. +slot_uri: rdf:value +range: Value +multivalued: true diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml new file mode 100644 index 0000000000..c03bc0e0c3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml @@ -0,0 +1,6 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_asserted_on +name: is_or_was_asserted_on +title: is_or_was_asserted_on +description: The date or timestamp when the assertion was made. +slot_uri: prov:atTime +range: TimeSpan diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml new file mode 100644 index 0000000000..40373f9bc7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml @@ -0,0 +1,6 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_assessed_on +name: is_or_was_assessed_on +title: is_or_was_assessed_on +description: The date or timestamp when the assessment took place. +slot_uri: prov:atTime +range: TimeSpan diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml new file mode 100644 index 0000000000..8fef4ffa4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml @@ -0,0 +1,6 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_conducted_by +name: is_or_was_conducted_by +title: is_or_was_conducted_by +description: The agent or organization that conducted the event (e.g., auction, assessment). +slot_uri: prov:wasAssociatedWith +range: Agent diff --git a/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml b/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml new file mode 100644 index 0000000000..9c11f2fbcd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml @@ -0,0 +1,7 @@ +id: https://nde.nl/ontology/hc/slot/publishes_or_published +name: publishes_or_published +title: publishes_or_published +description: The work or document published by an entity. +slot_uri: schema:published +range: CreativeWork +multivalued: true diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 408264165f..7603596d56 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -65,6 +65,10 @@ fixes: - label: Timestamp type: class - original_slot_id: https://nde.nl/ontology/hc/slot/has_archdiocese_name + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_part_of + Archdiocese class (Rule 53). DiocesanArchive.yaml updated. Slot archived. revision: - label: is_or_was_part_of type: slot @@ -74,183 +78,10 @@ fixes: type: slot - label: Label type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/administrative_context - revision: - - label: is_or_was_used_in - type: slot - - label: GovernanceStructure - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/based_on_claim - revision: - - label: is_or_was_based_on - type: slot - - label: Claim - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_architectural_style - revision: - - label: has_or_had_style - type: slot - - label: ArchitecturalStyle - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_archival_reference - revision: - - label: has_or_had_identifier - type: slot - - label: ArchivalReference - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_archive_description - revision: - - label: has_or_had_description - type: slot - - label: Description - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_archive_memento_uri - revision: - - label: is_or_was_archived_as - type: slot - - label: Memento - type: class - - label: has_or_had_url - type: slot - - label: URL - type: class processed: status: true date: '2026-01-27' - notes: Migrated to has_or_had_url + URL in ArticlesOfAssociation.yaml. Slot archived. -- original_slot_id: https://nde.nl/ontology/hc/slot/has_articles_document_url - - revision: - - label: has_or_had_url - type: slot - - label: URL - type: class - processed: - status: true - date: '2026-01-27' - notes: Migrated to has_or_had_url + URL in ArticlesOfAssociation.yaml. Slot archived. -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_articles_of_association - revision: - - label: has_or_had_document - type: slot - - label: ArticlesOfAssociation - type: class - processed: - status: true - date: '2026-01-27' - notes: Migrated to has_or_had_document + ArticlesOfAssociation in relevant classes. Slot archived. -- original_slot_id: https://nde.nl/ontology/hc/slot/has_aspect_ratio - revision: - - label: has_or_had_degree - type: slot - - label: AspectRatio - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_date - revision: - - label: is_or_was_asserted_on - type: slot - - label: TimeSpan - type: class - - label: start_of_the_start - type: slot - - label: Timestamp - type: class -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_rationale - revision: - - label: has_or_had_rationale - type: slot - - label: Rationale - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_value - revision: - - label: has_or_had_value - type: slot - - label: Value - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_category - revision: - - label: has_or_had_category - type: slot - - label: AssessmentCategory - type: class -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_date - revision: - - label: is_or_was_assessed_on - type: slot - - label: TimeSpan - type: class - - label: start_of_the_start - type: slot - - label: Timestamp - type: class -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_associated_taxon - revision: - - label: has_or_had_hypernym - type: slot - - label: Taxon - type: class -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_house - revision: - - label: is_or_was_conducted_by - type: slot - - label: AuctionHouse - type: class -- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_sale_name - revision: - - label: is_or_was_conducted_by - type: slot - - label: AuctionHouse - type: class - - label: publishes_or_published - type: slot - - label: AuctionSaleCatalog - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_audio_event_segment - revision: - - label: contains_or_contained - type: slot - - label: AudioEventSegment - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_audit_date - revision: - - label: is_or_was_based_on - type: slot - - label: Audit - 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_audit_opinion - revision: - - label: is_or_was_based_on - type: slot - - label: Audit - type: class - - label: draws_or_drew_opinion - type: slot - - label: AuditOpinion - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_auditor_name - revision: - - label: is_or_was_based_on - type: slot - - label: Audit - type: class - - label: is_or_was_conducted_by - type: slot - - label: Auditor - type: class -- original_slot_id: https://nde.nl/ontology/hc/slot/has_authentication_required_flag - revision: - - label: requires_or_required - type: slot - - label: Authentication - type: class + notes: Migrated to contributes_or_contributed + AuthorityData in ContributingAgency.yaml. Slot archived. - orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_abbreviation revision: - label: contributes_or_contributed @@ -270,6 +101,10 @@ fixes: - label: LabelTypes type: class note: AbbreviationLabel class is defined in the LinkML file + processed: + status: true + date: '2026-01-27' + notes: Migrated to contributes_or_contributed + AuthorityData in ContributingAgency.yaml. Slot archived. - orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_name revision: - label: contributes_or_contributed diff --git a/schemas/20251121/linkml/update_manifest.py b/schemas/20251121/linkml/update_manifest.py index a5456858ef..6c05725853 100644 --- a/schemas/20251121/linkml/update_manifest.py +++ b/schemas/20251121/linkml/update_manifest.py @@ -41,19 +41,48 @@ def update_manifest(add_files, remove_files): print("Manifest updated.") if __name__ == "__main__": - # Define files to add - add_files = [ - {"name": "RecordCycleStatus", "path": "modules/classes/RecordCycleStatus.yaml", "category": "class"}, - {"name": "DocumentFormat", "path": "modules/classes/DocumentFormat.yaml", "category": "class"}, - {"name": "has_or_had_document", "path": "modules/slots/has_or_had_document.yaml", "category": "slot"}, - ] + # Scan for all files in modules/classes and modules/slots + add_files = [] + + # Classes + for filename in os.listdir("modules/classes"): + if filename.endswith(".yaml"): + name = filename.replace(".yaml", "") + add_files.append({ + "name": name, + "path": f"modules/classes/{filename}", + "category": "class" + }) + + # Slots + for filename in os.listdir("modules/slots"): + if filename.endswith(".yaml"): + name = filename.replace(".yaml", "") + # Check if it's a generic slot (usually starts with has_ or is_) + # But we add all of them to 'slot' category + add_files.append({ + "name": name, + "path": f"modules/slots/{filename}", + "category": "slot" + }) - # Define files to remove (archived slots) - remove_files = [ - "has_articles_archival_stage", - "has_articles_document_format", - "has_articles_document_url", - "has_articles_of_association" - ] + # Enums + if os.path.exists("modules/enums"): + for filename in os.listdir("modules/enums"): + if filename.endswith(".yaml"): + name = filename.replace(".yaml", "") + add_files.append({ + "name": name, + "path": f"modules/enums/{filename}", + "category": "enum" + }) + # Identify removed files (those in archive) + remove_files = [] + if os.path.exists("archive/slots"): + for filename in os.listdir("archive/slots"): + if filename.endswith(".yaml"): + name = filename.replace(".yaml", "") + remove_files.append(name) + update_manifest(add_files, remove_files)