diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index dd7d7d1e2c..ea81fb8b31 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-17T22:02:17.735Z", + "generated": "2026-01-17T23:39:02.492Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index ea81fb8b31..95d2878e5c 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-17T23:39:02.492Z", + "generated": "2026-01-17T23:59:51.805Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml index a036d0c787..10f197c944 100644 --- a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml @@ -117,6 +117,13 @@ classes: - short_name - component_type + attributes: + types: + range: string + multivalued: true + inlined_as_list: true + description: Address component types (alias for component_type for backward compatibility with Google Maps API format) + slot_usage: long_name: range: string diff --git a/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml b/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml index 2e0a39f02c..ef0134b3a2 100644 --- a/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml +++ b/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml @@ -56,3 +56,15 @@ classes: context_convention: range: string description: Convention ID used for extraction + source_archived_at: + range: datetime + description: When the source was archived (per Rule 35 dual timestamps) + statement_created_at: + range: datetime + description: When the claim/statement was created (per Rule 35 dual timestamps) + source_type: + range: string + description: Type of source (e.g., library_registry_api, web_archive) + migration_note: + range: string + description: Note about data migration (e.g., 'Migrated from agent:claude-conversation on 2025-12-30') diff --git a/schemas/20251121/linkml/modules/classes/Condition.yaml b/schemas/20251121/linkml/modules/classes/Condition.yaml index f108586fbc..c8760324b3 100644 --- a/schemas/20251121/linkml/modules/classes/Condition.yaml +++ b/schemas/20251121/linkml/modules/classes/Condition.yaml @@ -12,6 +12,15 @@ imports: classes: Condition: class_uri: schema:OfferItemCondition + description: | + The physical or preservation condition of a heritage object or collection. + + Condition assessments document the state of preservation, conservation + needs, and handling requirements for heritage materials. Used to track + object condition over time and plan conservation interventions. + + Maps to schema:OfferItemCondition for interoperability with general + item condition vocabularies. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/ConditionType.yaml b/schemas/20251121/linkml/modules/classes/ConditionType.yaml index f4da8d8c0a..0955c390bb 100644 --- a/schemas/20251121/linkml/modules/classes/ConditionType.yaml +++ b/schemas/20251121/linkml/modules/classes/ConditionType.yaml @@ -14,6 +14,13 @@ classes: ConditionType: class_uri: skos:Concept abstract: true + description: | + Abstract base class for condition assessment type classification. + + Defines the taxonomy of preservation condition states such as excellent, + good, fair, poor, or critical. May also include specialized condition + categories for different material types (paper, textiles, metals, etc.) + or assessment methodologies. slots: - has_or_had_identifier # was: type_id - migrated per Rule 56 (2026-01-16) - has_or_had_label # was: type_label diff --git a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml index 5204e363a2..e0308e2fa0 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml @@ -23,11 +23,13 @@ imports: - ./CustodianLegalNameClaim - ./CustodianNameConsensus - ./DigitalPlatform + - ./DigitalPlatformV2 - ./GenealogiewerkbalkEnrichment - ./GhcidBlock - ./GoogleMapsEnrichment - ./GoogleMapsPlaywrightEnrichment - ./Identifier + - ./LogoEnrichment - ./MuseumRegisterEnrichment - ./NanIsilEnrichment - ./NormalizedLocation @@ -165,3 +167,44 @@ classes: ch_annotator: range: ChAnnotatorBlock description: CH-Annotator convention metadata and claims + identifiers: + range: Identifier + multivalued: true + inlined_as_list: true + description: All identifiers (ISIL, GHCID variants, etc.) - plural form for backward compatibility + digital_platform_v2: + range: DigitalPlatformV2 + description: Enhanced digital platform data with organization profile and contacts + logo_enrichment: + range: LogoEnrichment + description: Logo and favicon enrichment data from web scraping + crawl4ai_enrichment: + range: Any + description: Crawl4AI web scraping enrichment data with retrieval metadata + inlined: true + unesco_mow_enrichment: + range: Any + description: UNESCO Memory of the World inscription data for custodian holdings + inlined: true + web-enrichments: + range: Any + description: Web enrichment claims extracted via hybrid LLM/pattern extraction + inlined: true + alternative_names: + range: Any + multivalued: true + inlined_as_list: true + description: Alternative names for the institution from various sources + legal_status: + range: Any + description: Legal status and registration information for the institution + inlined: true + person_observations: + range: Any + multivalued: true + inlined_as_list: true + description: Observations about people associated with the institution + staff: + range: Any + description: Staff members extracted from LinkedIn or other sources + inlined: true diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml new file mode 100644 index 0000000000..35b6ee4199 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml @@ -0,0 +1,80 @@ +# DigitalPlatformV2 - Enhanced digital platform data with organization profile +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2 +name: DigitalPlatformV2 +title: DigitalPlatformV2 + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + - ./DigitalPlatformV2TransformationMetadata + - ./DigitalPlatformV2OrganizationStatus + - ./DigitalPlatformV2DataQualityNotes + - ./DigitalPlatformV2OrganizationProfile + - ./DigitalPlatformV2PrimaryPlatform + - ./DigitalPlatformV2KeyContact + - ./DigitalPlatformV2ServiceDetails + - ./DigitalPlatformV2Provenance + - ./Identifier +default_range: string + +classes: + DigitalPlatformV2: + description: >- + Enhanced digital platform data structure (v2) containing comprehensive + organization profile, contacts, service details, and multi-source provenance. + This is an enriched version of DigitalPlatform with structured organization + metadata gathered from web research. + + Ontology mapping rationale: + - class_uri is org:Organization because this represents an organization's + digital presence and operational details + - close_mappings includes schema:Organization for web semantics + - related_mappings includes prov:Entity for provenance tracking + class_uri: org:Organization + close_mappings: + - schema:Organization + related_mappings: + - prov:Entity + - schema:WebSite + attributes: + transformation_metadata: + range: DigitalPlatformV2TransformationMetadata + description: Metadata about how this v2 record was created/transformed + organization_status: + range: DigitalPlatformV2OrganizationStatus + description: Current status and legal form of the organization + data_quality_notes: + range: DigitalPlatformV2DataQualityNotes + description: Notes about data quality and verification status + organization_profile: + range: DigitalPlatformV2OrganizationProfile + description: Detailed profile of the organization + primary_platform: + range: DigitalPlatformV2PrimaryPlatform + description: Primary digital platform/website for the organization + key_contacts: + range: DigitalPlatformV2KeyContact + multivalued: true + inlined_as_list: true + description: Key staff contacts for the organization + service_details: + range: DigitalPlatformV2ServiceDetails + description: Service offerings, opening hours, regional support + external_identifiers: + range: Identifier + multivalued: true + inlined_as_list: true + description: External identifiers (Wikidata, Sigla, ICO, etc.) + provenance: + range: DigitalPlatformV2Provenance + description: Research provenance with data sources diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml new file mode 100644 index 0000000000..fa25688704 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml @@ -0,0 +1,35 @@ +# DigitalPlatformV2DataQualityNotes - Data quality and verification notes +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2DataQualityNotes +name: DigitalPlatformV2DataQualityNotes +title: DigitalPlatformV2DataQualityNotes + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dqv: http://www.w3.org/ns/dqv# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2DataQualityNotes: + description: Notes about data quality, verification status, and source checks + class_uri: dqv:QualityAnnotation + attributes: + wikidata_status: + range: string + description: Status of Wikidata match (current, outdated, missing, etc.) + wikidata_id: + range: string + description: Matched Wikidata entity ID + google_maps_status: + range: string + description: Status of Google Maps verification (VERIFIED, NOT_CHECKED, MISMATCH, etc.) + notes: + range: string + description: Free-text quality notes and observations diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml new file mode 100644 index 0000000000..fe60343582 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml @@ -0,0 +1,32 @@ +# DigitalPlatformV2DataSource - Individual data source with quality tier +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2DataSource +name: DigitalPlatformV2DataSource +title: DigitalPlatformV2DataSource + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2DataSource: + description: Individual data source used for enrichment with quality tier + class_uri: prov:Entity + attributes: + source_type: + range: string + description: Type of source (wikidata, regional_library_portal, google_maps, etc.) + source_url: + range: uri + description: URL of the source + data_quality: + range: string + description: Data quality tier (TIER_1_AUTHORITATIVE, TIER_2_VERIFIED, TIER_3_CROWD_SOURCED, TIER_4_INFERRED) diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml new file mode 100644 index 0000000000..187d048da5 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml @@ -0,0 +1,38 @@ +# DigitalPlatformV2KeyContact - Key staff contact +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2KeyContact +name: DigitalPlatformV2KeyContact +title: DigitalPlatformV2KeyContact + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2KeyContact: + description: Key staff contact for the organization + class_uri: schema:Person + attributes: + name: + range: string + description: Name of the contact person + role: + range: string + description: Role or position (Librarian, Director, Curator, etc.) + source: + range: string + description: Source where this contact information was found + email: + range: string + description: Email address if available + phone: + range: string + description: Phone number if available diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml new file mode 100644 index 0000000000..b3312b8a36 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml @@ -0,0 +1,38 @@ +# DigitalPlatformV2OrganizationProfile - Detailed organization profile +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2OrganizationProfile +name: DigitalPlatformV2OrganizationProfile +title: DigitalPlatformV2OrganizationProfile + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2OrganizationProfile: + description: Detailed profile of the organization including type, scope, and description + class_uri: schema:Organization + attributes: + organization_type: + range: string + description: Type classification (Municipal library, Museum, Archive, etc.) + scope: + range: string + description: Geographic or thematic scope (local, regional, national, international) + description: + range: string + description: Detailed description of the organization and its activities + founding_date: + range: string + description: Date or year of founding + history: + range: string + description: Brief organizational history diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml new file mode 100644 index 0000000000..03ad4d79f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml @@ -0,0 +1,38 @@ +# DigitalPlatformV2OrganizationStatus - Organization status and legal form +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2OrganizationStatus +name: DigitalPlatformV2OrganizationStatus +title: DigitalPlatformV2OrganizationStatus + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2OrganizationStatus: + description: Current operational status and legal form of an organization + class_uri: org:Organization + attributes: + status: + range: string + description: Operational status (ACTIVE, CLOSED, MERGED, etc.) + legal_form: + range: string + description: Legal form of the organization (Municipal library, Foundation, etc.) + full_name: + range: string + description: Full official name of the organization + closure_date: + range: string + description: Date of closure if applicable + closure_reason: + range: string + description: Reason for closure if applicable diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml new file mode 100644 index 0000000000..2f85ab8e8f --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml @@ -0,0 +1,35 @@ +# DigitalPlatformV2PrimaryPlatform - Primary digital platform details +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2PrimaryPlatform +name: DigitalPlatformV2PrimaryPlatform +title: DigitalPlatformV2PrimaryPlatform + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2PrimaryPlatform: + description: Primary digital platform or website for the organization + class_uri: schema:WebSite + attributes: + platform_id: + range: string + description: Internal identifier for the platform + platform_url: + range: uri + description: URL of the platform + platform_type: + range: string + description: Type of platform (regional_library_portal, institutional_website, etc.) + platform_status: + range: string + description: Status of the platform (ACTIVE, INACTIVE, ARCHIVED, etc.) diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml new file mode 100644 index 0000000000..8a78dab060 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml @@ -0,0 +1,35 @@ +# DigitalPlatformV2Provenance - Research provenance with data sources +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2Provenance +name: DigitalPlatformV2Provenance +title: DigitalPlatformV2Provenance + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + - ./DigitalPlatformV2DataSource +default_range: string + +classes: + DigitalPlatformV2Provenance: + description: Research provenance including date, agent, and data sources + class_uri: prov:Activity + attributes: + research_date: + range: datetime + description: When research was conducted + research_agent: + range: string + description: Agent that performed the research (claude-opus-4, human, script, etc.) + data_sources: + range: DigitalPlatformV2DataSource + multivalued: true + inlined_as_list: true + description: Data sources used for enrichment diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml new file mode 100644 index 0000000000..10ed9d3d9c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml @@ -0,0 +1,37 @@ +# DigitalPlatformV2ServiceDetails - Service details and opening hours +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2ServiceDetails +name: DigitalPlatformV2ServiceDetails +title: DigitalPlatformV2ServiceDetails + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2ServiceDetails: + description: Service offerings, opening hours, and regional support information + class_uri: schema:OpeningHoursSpecification + attributes: + opening_hours: + range: string + description: Opening hours (free text format) + services: + range: string + multivalued: true + inlined_as_list: true + description: List of services offered + regional_support: + range: string + description: Regional support or partner organizations + accessibility: + range: string + description: Accessibility information diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml new file mode 100644 index 0000000000..d26dc826c4 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml @@ -0,0 +1,35 @@ +# DigitalPlatformV2 nested classes - Supporting classes for DigitalPlatformV2 +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/DigitalPlatformV2TransformationMetadata +name: DigitalPlatformV2TransformationMetadata +title: DigitalPlatformV2TransformationMetadata + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + DigitalPlatformV2TransformationMetadata: + description: Metadata about how a DigitalPlatformV2 record was created or transformed + class_uri: prov:Activity + attributes: + transformed_from: + range: string + description: Source of transformation (existing_enrichment, web_research, etc.) + transformation_date: + range: datetime + description: When the transformation occurred + transformation_version: + range: string + description: Version of the transformation process + source_status_code: + range: integer + description: HTTP status code from source fetch (200, 404, etc.) diff --git a/schemas/20251121/linkml/modules/classes/Domain.yaml b/schemas/20251121/linkml/modules/classes/Domain.yaml index 16742b2cc4..4749e8004c 100644 --- a/schemas/20251121/linkml/modules/classes/Domain.yaml +++ b/schemas/20251121/linkml/modules/classes/Domain.yaml @@ -12,6 +12,14 @@ imports: classes: Domain: class_uri: skos:Concept + description: | + A subject domain or knowledge area covered by a heritage custodian's collections. + + Domains represent broad thematic areas such as Art History, Archaeology, + Natural History, Local History, or specialized fields like Numismatics + or Maritime History. Used to categorize collection focus and expertise. + + Maps to skos:Concept - a unit of thought in a knowledge organization system. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/DomainType.yaml b/schemas/20251121/linkml/modules/classes/DomainType.yaml index b3c59ccdb6..9e94252f04 100644 --- a/schemas/20251121/linkml/modules/classes/DomainType.yaml +++ b/schemas/20251121/linkml/modules/classes/DomainType.yaml @@ -14,6 +14,13 @@ classes: DomainType: class_uri: skos:Concept abstract: true + description: | + Abstract base class for subject domain type classification. + + Defines the taxonomy of knowledge domains and subject areas covered + by heritage custodians. Includes broad categories like art, history, + science, and natural history, as well as specialized domains like + numismatics, maritime history, or industrial heritage. slots: - has_or_had_identifier # was: type_id - migrated per Rule 56 (2026-01-16) - has_or_had_label # was: type_label diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml new file mode 100644 index 0000000000..9ae04b974b --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml @@ -0,0 +1,57 @@ +# EnrichmentProvenance - Provenance tracking for individual enrichment sources +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/EnrichmentProvenance +name: EnrichmentProvenance +title: EnrichmentProvenance + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + - ./EnrichmentProvenanceEntry +default_range: string + +classes: + EnrichmentProvenance: + description: >- + Nested provenance tracking for individual enrichment sources within + a custodian record. Contains entries keyed by enrichment type (e.g., + wikidata_enrichment, google_maps_enrichment) with content hashes, + verification timestamps, and derivation sources. + + Ontology mapping rationale: + - class_uri is prov:Bundle because this bundles multiple provenance + statements about different enrichment activities + - close_mappings includes prov:Collection as this is a collection of + provenance entries + class_uri: prov:Bundle + close_mappings: + - prov:Collection + related_mappings: + - prov:Entity + attributes: + wikidata_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for Wikidata enrichment data + google_maps_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for Google Maps enrichment data + web_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for web scraping enrichment data + logo_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for logo/favicon enrichment data + museum_register_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for Dutch Museum Register enrichment data + youtube_enrichment: + range: EnrichmentProvenanceEntry + description: Provenance for YouTube enrichment data diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml new file mode 100644 index 0000000000..ec95363136 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml @@ -0,0 +1,52 @@ +# EnrichmentProvenanceEntry - Single enrichment provenance entry with hash and verification +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/EnrichmentProvenanceEntry +name: EnrichmentProvenanceEntry +title: EnrichmentProvenanceEntry + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + EnrichmentProvenanceEntry: + description: >- + A single enrichment provenance entry containing content hash for + integrity verification, verification timestamp, and derivation source. + Implements W3C PROV-O and W3C SRI (Subresource Integrity) patterns. + + Ontology mapping rationale: + - class_uri is prov:Entity because this represents an entity with + provenance metadata (derivation, generation time) + - close_mappings includes prov:Derivation as this tracks where + the enrichment was derived from + class_uri: prov:Entity + close_mappings: + - prov:Derivation + related_mappings: + - prov:Activity + attributes: + content_hash: + range: string + description: >- + SHA-256 content hash for integrity verification following W3C SRI + (Subresource Integrity) format (e.g., sha256-C6WLNCLHslf75jqQ...) + verified_at: + range: datetime + description: When this enrichment was last verified + wasDerivedFrom: + range: uri + slot_uri: prov:wasDerivedFrom + description: Source URI from which the enrichment was derived + wasGeneratedBy: + range: string + description: Activity or process that generated this enrichment diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index b1279cd74e..8c787d19b6 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -279,9 +279,19 @@ classes: description: Academic press publisher is_or_was_published_at: # was: publication_date - migrated per Rule 53/56 (2026-01-17) required: false - range: date + range: PublicationEvent + inlined: true + description: >- + Publication event with temporal extent for catalog publication date. + MIGRATED from publication_date per Rule 53/56 (2026-01-17). examples: - - value: '2023-02-01' + - value: + temporal_extent: + begin_of_the_begin: '2023-02-01T00:00:00Z' + end_of_the_begin: '2023-02-01T00:00:00Z' + begin_of_the_end: '2023-02-01T00:00:00Z' + end_of_the_end: '2023-02-01T00:00:00Z' + description: Published February 1, 2023 publication_place: required: false range: string @@ -485,7 +495,12 @@ classes: - has_or_had_label: Hannibal Publishing has_or_had_type: commercial has_or_had_location: Veurne - is_or_was_published_at: '2023-02-01' # was: publication_date + is_or_was_published_at: # was: publication_date - migrated per Rule 53/56 (2026-01-17) + temporal_extent: + begin_of_the_begin: '2023-02-01T00:00:00Z' + end_of_the_begin: '2023-02-01T00:00:00Z' + begin_of_the_end: '2023-02-01T00:00:00Z' + end_of_the_end: '2023-02-01T00:00:00Z' publication_place: Amsterdam isbn_13: '9789491714962' pages: 320 @@ -521,7 +536,12 @@ classes: - has_or_had_label: The Museum of Modern Art has_or_had_type: institutional has_or_had_location: New York - is_or_was_published_at: '2014-10-01' # was: publication_date + is_or_was_published_at: # was: publication_date - migrated per Rule 53/56 (2026-01-17) + temporal_extent: + begin_of_the_begin: '2014-10-01T00:00:00Z' + end_of_the_begin: '2014-10-01T00:00:00Z' + begin_of_the_end: '2014-10-01T00:00:00Z' + end_of_the_end: '2014-10-01T00:00:00Z' isbn_13: '9780870709159' pages: 298 illustrations: 230 illustrations @@ -538,7 +558,12 @@ classes: - has_or_had_label: The British Museum Press has_or_had_type: institutional has_or_had_location: London - is_or_was_published_at: '2020-10-22' # was: publication_date + is_or_was_published_at: # was: publication_date - migrated per Rule 53/56 (2026-01-17) + temporal_extent: + begin_of_the_begin: '2020-10-22T00:00:00Z' + end_of_the_begin: '2020-10-22T00:00:00Z' + begin_of_the_end: '2020-10-22T00:00:00Z' + end_of_the_end: '2020-10-22T00:00:00Z' has_or_had_url: # was: catalog_url - migrated per Rule 53/56 (2026-01-17) - has_or_had_url: "https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate" has_or_had_type: exhibition_page diff --git a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index c1a7500657..bd1a815fc5 100644 --- a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -14,7 +14,10 @@ imports: - ./CustodianCollection - ../enums/FinancialStatementTypeEnum - ./ReconstructedEntity - - ../slots/publication_date + # - ../slots/publication_date # ARCHIVED 2026-01-18 - migrated per Rule 53/56 + - ../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 @@ -130,7 +133,7 @@ classes: - has_or_had_expenses - id - managing_unit - - publication_date + - is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-18) - refers_to_custodian - reporting_period_end - reporting_period_start @@ -167,9 +170,21 @@ classes: reporting_period_end: range: date required: true - publication_date: - range: date + is_or_was_published_at: # was: publication_date - migrated per Rule 53/56 (2026-01-18) required: false + range: PublicationEvent + inlined: true + description: >- + Publication event with temporal extent for statement publication date. + MIGRATED from publication_date per Rule 53/56 (2026-01-18). + examples: + - value: + temporal_extent: + begin_of_the_begin: '2024-04-15T00:00:00Z' + end_of_the_begin: '2024-04-15T00:00:00Z' + begin_of_the_end: '2024-04-15T00:00:00Z' + end_of_the_end: '2024-04-15T00:00:00Z' + description: Published April 15, 2024 statement_currency: range: string required: true @@ -328,7 +343,12 @@ classes: statement_type: ANNUAL_REPORT reporting_period_start: '2023-01-01' reporting_period_end: '2023-12-31' - publication_date: '2024-04-15' + is_or_was_published_at: # was: publication_date + temporal_extent: + begin_of_the_begin: '2024-04-15T00:00:00Z' + end_of_the_begin: '2024-04-15T00:00:00Z' + begin_of_the_end: '2024-04-15T00:00:00Z' + end_of_the_end: '2024-04-15T00:00:00Z' statement_currency: EUR has_or_had_revenue: - has_or_had_label: "Total Revenue FY2023" @@ -379,7 +399,12 @@ classes: statement_type: FORM_990 reporting_period_start: '2022-07-01' reporting_period_end: '2023-06-30' - publication_date: '2024-02-15' + is_or_was_published_at: # was: publication_date + temporal_extent: + begin_of_the_begin: '2024-02-15T00:00:00Z' + end_of_the_begin: '2024-02-15T00:00:00Z' + begin_of_the_end: '2024-02-15T00:00:00Z' + end_of_the_end: '2024-02-15T00:00:00Z' statement_currency: USD has_or_had_revenue: - has_or_had_label: "Form 990 Total Revenue FY2022" diff --git a/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml b/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml index 860748211b..65e67b09a8 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml @@ -11,6 +11,10 @@ imports: - ../slots/has_or_had_type classes: HTTPMethod: + description: >- + Represents an HTTP request method supported by a heritage institution's API or web + service. Common methods include GET (retrieve), POST (create), PUT (update), DELETE + (remove), and PATCH (partial update). class_uri: schema:Thing slots: - has_or_had_type diff --git a/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml b/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml index 8c43ef1118..40d1661c65 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml @@ -12,6 +12,9 @@ imports: - ../slots/has_or_had_description # was: type_description - migrated per Rule 53/56 (2026-01-16) classes: HTTPMethodType: + description: >- + Abstract base class for HTTP method type taxonomy. Classifies HTTP request methods + (GET, POST, PUT, DELETE, PATCH, etc.) used by heritage institution APIs and web services. class_uri: skos:Concept abstract: true slots: diff --git a/schemas/20251121/linkml/modules/classes/Identifier.yaml b/schemas/20251121/linkml/modules/classes/Identifier.yaml index 07155215cb..5927c0353f 100644 --- a/schemas/20251121/linkml/modules/classes/Identifier.yaml +++ b/schemas/20251121/linkml/modules/classes/Identifier.yaml @@ -88,6 +88,14 @@ classes: description: ISIL code for Amsterdam Museum - value: Q190804 description: Wikidata ID for Rijksmuseum + attributes: + identifier_url: + range: uri + description: | + URL form of the identifier (e.g., full Wikidata URL, website URL). + examples: + - value: https://www.wikidata.org/wiki/Q190804 + description: Full Wikidata URL for Rijksmuseum examples: - value: identifier_scheme: ISIL diff --git a/schemas/20251121/linkml/modules/classes/LocationResolution.yaml b/schemas/20251121/linkml/modules/classes/LocationResolution.yaml index ef4b5a18c4..44a0cb3e7a 100644 --- a/schemas/20251121/linkml/modules/classes/LocationResolution.yaml +++ b/schemas/20251121/linkml/modules/classes/LocationResolution.yaml @@ -69,10 +69,11 @@ classes: range: string description: First-level admin code region_code: + range: Any any_of: - - range: string - - range: integer - - range: boolean + - range: string + - range: integer + - range: boolean description: ISO 3166-2 region code (string, number, or False for unknown) region_name: range: string diff --git a/schemas/20251121/linkml/modules/classes/LogoClaim.yaml b/schemas/20251121/linkml/modules/classes/LogoClaim.yaml new file mode 100644 index 0000000000..b07893d843 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/LogoClaim.yaml @@ -0,0 +1,68 @@ +# LogoClaim - Individual logo or favicon claim from web scraping +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/LogoClaim +name: LogoClaim +title: LogoClaim + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + LogoClaim: + description: >- + Individual logo or favicon claim extracted from a webpage, including + the image URL, CSS selector for provenance, and extraction metadata. + + Ontology mapping rationale: + - class_uri is prov:Entity because this represents a claim/assertion + with provenance tracking + - close_mappings includes schema:ImageObject as this describes an image + class_uri: prov:Entity + close_mappings: + - schema:ImageObject + related_mappings: + - prov:Derivation + attributes: + claim_type: + range: string + description: >- + Type of logo claim (favicon_url, logo_url, og_image, apple_touch_icon, etc.) + claim_value: + range: uri + description: URL of the logo/favicon image + source_url: + range: uri + description: URL of the page where this logo was found + css_selector: + range: string + description: CSS selector path to the element containing the logo + retrieved_on: + range: datetime + description: When this claim was extracted + extraction_method: + range: string + description: >- + Specific extraction method (crawl4ai_link_rel, crawl4ai_og_image, + playwright_screenshot, etc.) + favicon_type: + range: string + description: MIME type or format of favicon (ico, png, svg, etc.) + favicon_sizes: + range: string + description: Sizes attribute from favicon link element (e.g., "32x32", "any") + logo_alt_text: + range: string + description: Alt text from logo image element + logo_dimensions: + range: string + description: Dimensions of logo image (e.g., "200x100") diff --git a/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml b/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml new file mode 100644 index 0000000000..3259922cdb --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml @@ -0,0 +1,57 @@ +# LogoEnrichment - Logo and favicon enrichment data from web scraping +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/LogoEnrichment +name: LogoEnrichment +title: LogoEnrichment + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + - ./LogoClaim + - ./LogoEnrichmentSummary +default_range: string + +classes: + LogoEnrichment: + description: >- + Logo and favicon enrichment data extracted from institutional websites + via web scraping (crawl4ai). Captures logos, favicons, OpenGraph images, + and other visual brand assets with full provenance tracking. + + Ontology mapping rationale: + - class_uri is prov:Entity because this represents enrichment data + with provenance (timestamps, methods, sources) + - close_mappings includes schema:ImageObject as the extracted data + relates to image/logo assets + class_uri: prov:Entity + close_mappings: + - schema:ImageObject + related_mappings: + - prov:Derivation + - schema:Brand + attributes: + enrichment_timestamp: + range: datetime + description: When logo enrichment was performed + source_url: + range: uri + description: URL of the webpage that was scraped for logos + extraction_method: + range: string + description: Method used to extract logos (crawl4ai, playwright, etc.) + claims: + range: LogoClaim + multivalued: true + inlined_as_list: true + description: Individual logo/favicon claims extracted from the page + summary: + range: LogoEnrichmentSummary + description: Summary statistics of logo extraction results diff --git a/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml b/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml new file mode 100644 index 0000000000..10340683e6 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml @@ -0,0 +1,52 @@ +# LogoEnrichmentSummary - Summary statistics of logo enrichment results +# Created for CustodianSourceFile validation compatibility +# Creation date: 2026-01-18 + +id: https://nde.nl/ontology/hc/classes/LogoEnrichmentSummary +name: LogoEnrichmentSummary +title: LogoEnrichmentSummary + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types +default_range: string + +classes: + LogoEnrichmentSummary: + description: >- + Summary statistics of logo enrichment results, indicating what types + of visual brand assets were found during web scraping. + + Ontology mapping rationale: + - class_uri is schema:QuantitativeValue as this represents count/summary + statistics about the enrichment results + class_uri: schema:QuantitativeValue + related_mappings: + - schema:PropertyValue + attributes: + total_claims: + range: integer + description: Total number of logo/favicon claims extracted + has_primary_logo: + range: boolean + description: Whether a primary logo was found + has_favicon: + range: boolean + description: Whether at least one favicon was found + has_og_image: + range: boolean + description: Whether an OpenGraph image was found + has_apple_touch_icon: + range: boolean + description: Whether an Apple touch icon was found + favicon_count: + range: integer + description: Number of favicon variants found + logo_count: + range: integer + description: Number of logo variants found diff --git a/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml b/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml index 9976d1e01c..775e7ecc70 100644 --- a/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml +++ b/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml @@ -12,6 +12,14 @@ imports: classes: MetadataStandard: class_uri: dct:Standard + description: | + A formal metadata standard used by heritage custodians for describing collections. + + Examples include Dublin Core, MARC21, EAD (Encoded Archival Description), + LIDO, CIDOC-CRM, Schema.org, and domain-specific standards like SPECTRUM + for museum collections or ISAD(G) for archival description. + + Maps to dcterms:Standard - a reference point for comparing or evaluating. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml b/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml index 4f52f1c9b3..43da8ac10e 100644 --- a/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml +++ b/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml @@ -12,6 +12,10 @@ imports: - ../slots/has_or_had_description # was: type_description - migrated per Rule 53/56 (2026-01-16) classes: MetadataStandardType: + description: >- + Abstract base class for metadata standard type taxonomy. Classifies categories of + metadata standards used by heritage institutions, such as bibliographic (MARC21), + archival (EAD, RiC-O), museum (LIDO, CIDOC-CRM), or web (Schema.org, Dublin Core). class_uri: skos:Concept abstract: true slots: diff --git a/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml b/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml index 716b0128a5..a55b5b3eb3 100644 --- a/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml @@ -51,10 +51,14 @@ classes: region: range: string region_code: - exactly_one_of: - - range: string - - range: integer + range: Any + any_of: + - range: string + - range: integer description: ISO 3166-2 subdivision code (string or number) + country: + range: string + description: ISO 3166-1 alpha-2 country code country_reference: exactly_one_of: - range: string diff --git a/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml b/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml index 1988bd1fe1..7d570d6ccd 100644 --- a/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml +++ b/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml @@ -77,13 +77,11 @@ classes: inlined_as_list: true description: Reference URLs type: + range: Any any_of: - - range: InstitutionTypeCodeEnum - - range: string - - range: InstitutionTypeCodeEnum - multivalued: true - - range: string - multivalued: true + - range: string + - range: string + multivalued: true inlined_as_list: true description: Institution type codes (A, M, L, etc.) or CH-Annotator type strings (single or array) @@ -301,3 +299,8 @@ classes: multivalued: true inlined_as_list: true description: Successor entities (Wikidata Q-numbers as label) + identifiers: + range: OriginalEntryIdentifier + multivalued: true + inlined_as_list: true + description: Identifiers from original source (array format, distinct from singular 'identifier' which supports both array and dict) diff --git a/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml b/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml index fc9ca21c31..e47b64eb99 100644 --- a/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml @@ -43,6 +43,9 @@ classes: range: string region: range: string + country: + range: string + description: Country code or name (alias for has_iso_3166_1_alpha_2_code for backward compatibility) has_iso_3166_1_alpha_2_code: range: string description: ISO 3166-1 alpha-2 country code (2-letter, e.g., NL, US, JP) diff --git a/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml b/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml index 6308e8b100..19d8c0d648 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml @@ -20,6 +20,7 @@ imports: - ../enums/DataTierEnum - ./DataTierSummary + - ./EnrichmentProvenance - ./ProvenanceSources - ../slots/confidence_score default_range: string @@ -118,3 +119,19 @@ classes: verified_via_web_archive: range: boolean description: Whether claim was verified via web archive + notes: + range: string + multivalued: true + inlined_as_list: true + description: Provenance notes (plural form for backward compatibility with existing data) + enrichment_provenance: + range: EnrichmentProvenance + description: Nested provenance for individual enrichment sources + provenance_schema_version: + range: string + description: Version of the provenance schema format (e.g., "2.0") + standards_compliance: + range: string + multivalued: true + inlined_as_list: true + description: Standards this provenance record complies with (e.g., W3C PROV-O, W3C SRI) diff --git a/schemas/20251121/linkml/modules/classes/Responsibility.yaml b/schemas/20251121/linkml/modules/classes/Responsibility.yaml index 9398e7c1d2..4bb09d005a 100644 --- a/schemas/20251121/linkml/modules/classes/Responsibility.yaml +++ b/schemas/20251121/linkml/modules/classes/Responsibility.yaml @@ -12,6 +12,15 @@ imports: classes: Responsibility: class_uri: org:Role + description: | + A responsibility or duty assigned to a person or position within a heritage organization. + + Responsibilities define the scope of work, authority, and accountability + for specific functions such as collection management, conservation, + public programming, or administration. Linked to positions and people + through organizational role assignments. + + Maps to org:Role from the W3C Organization Ontology. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml b/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml index 83ebfddcbb..8a65cfd3cb 100644 --- a/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml +++ b/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml @@ -12,6 +12,10 @@ imports: - ../slots/has_or_had_description # was: type_description - migrated per Rule 53/56 (2026-01-16) classes: ResponsibilityType: + description: >- + Abstract base class for responsibility type taxonomy. Defines the classification + of duties and roles that can be assigned within a heritage organization, such as + curatorial, administrative, conservation, or public engagement responsibilities. class_uri: skos:Concept abstract: true slots: diff --git a/schemas/20251121/linkml/modules/classes/SourceRecord.yaml b/schemas/20251121/linkml/modules/classes/SourceRecord.yaml index 5389df205e..462915af74 100644 --- a/schemas/20251121/linkml/modules/classes/SourceRecord.yaml +++ b/schemas/20251121/linkml/modules/classes/SourceRecord.yaml @@ -55,6 +55,9 @@ classes: has_or_had_api_endpoint: range: uri description: API endpoint used + api_endpoint: + range: uri + description: API endpoint used (alias for has_or_had_api_endpoint for backward compatibility) place_id: range: string description: Google Maps place ID diff --git a/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml b/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml index 5806e31f30..dd6c91c68c 100644 --- a/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml +++ b/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml @@ -12,6 +12,10 @@ imports: - ../slots/has_or_had_description # was: type_description - migrated per Rule 53/56 (2026-01-16) classes: TechnicalFeatureType: + description: >- + Abstract base class for technical feature type taxonomy. Classifies the technical + capabilities and features of digital platforms, APIs, and systems used by heritage + institutions, such as search functionality, authentication methods, or export formats. class_uri: skos:Concept abstract: true slots: diff --git a/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml b/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml index 69ab108ba1..c29a37fa36 100644 --- a/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml +++ b/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml @@ -12,6 +12,13 @@ imports: classes: UNESCODomain: class_uri: skos:Concept + description: | + A UNESCO intangible cultural heritage domain classification. + + Represents the thematic categorization of intangible heritage elements + according to the 2003 UNESCO Convention for the Safeguarding of the + Intangible Cultural Heritage. Domains include oral traditions, performing + arts, social practices, traditional knowledge, and craftsmanship. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml b/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml index e73118b5e2..22d5df8216 100644 --- a/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml +++ b/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml @@ -14,6 +14,15 @@ classes: UNESCODomainType: class_uri: skos:Concept abstract: true + description: | + Abstract base class for UNESCO intangible cultural heritage domain types. + + UNESCO recognizes five broad domains of intangible cultural heritage: + oral traditions, performing arts, social practices, knowledge about nature, + and traditional craftsmanship. This abstract type provides the taxonomy + structure for classifying heritage according to the 2003 Convention. + + See: https://ich.unesco.org/en/convention slots: - has_or_had_identifier # was: type_id - migrated per Rule 56 (2026-01-16) - has_or_had_label # was: type_label diff --git a/schemas/20251121/linkml/modules/classes/Venue.yaml b/schemas/20251121/linkml/modules/classes/Venue.yaml index 5af00fd0ce..540f3b7189 100644 --- a/schemas/20251121/linkml/modules/classes/Venue.yaml +++ b/schemas/20251121/linkml/modules/classes/Venue.yaml @@ -12,6 +12,15 @@ imports: classes: Venue: class_uri: schema:Place + description: | + A physical location where heritage-related events, exhibitions, or activities take place. + + Venues include museums, galleries, exhibition halls, conference centers, + historic sites, and other spaces used for cultural programming. Distinct + from the heritage custodian organization itself - a venue is the place, + while the custodian is the organization managing collections. + + Maps to schema:Place - a physical location with address and coordinates. slots: - has_or_had_type slot_usage: diff --git a/schemas/20251121/linkml/modules/classes/VenueType.yaml b/schemas/20251121/linkml/modules/classes/VenueType.yaml index 3ecd618df8..ee2b051f62 100644 --- a/schemas/20251121/linkml/modules/classes/VenueType.yaml +++ b/schemas/20251121/linkml/modules/classes/VenueType.yaml @@ -14,6 +14,13 @@ classes: VenueType: class_uri: skos:Concept abstract: true + description: | + Abstract base class for venue type classification. + + Defines the taxonomy of venue categories such as museum, gallery, + exhibition hall, conference center, historic site, outdoor space, + or virtual venue. Used to categorize physical and virtual locations + where heritage events and exhibitions take place. slots: - has_or_had_identifier # was: type_id - migrated per Rule 56 (2026-01-16) - has_or_had_label # was: type_label diff --git a/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml b/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml index 7e095fd4de..79e8be1099 100644 --- a/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml @@ -21,7 +21,6 @@ imports: - ./DuplicateEntry - ./OrganizationalChange - ./RawSource - - ./WebArchive - ./WebArchiveFailure - ./WebClaim - ./WebCollection @@ -49,9 +48,10 @@ classes: - prov:Derivation attributes: web_archives: - range: WebArchive + range: Any multivalued: true inlined_as_list: true + description: Web archive entries with URL and directory information full_site_archive_timestamp: range: datetime web_archive_timestamp: diff --git a/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml b/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml index efecc04c37..b26b34f5e3 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml @@ -40,8 +40,12 @@ classes: - schema:Action - prov:Entity attributes: + api_endpoint: + range: uri + description: Wikidata API endpoint URL has_or_had_api_endpoint: range: uri + description: Wikidata API endpoint URL (alternative RiC-O style name) fetch_timestamp: range: datetime user_agent: diff --git a/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml b/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml index c647f41b68..8a6b329e25 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml @@ -120,9 +120,10 @@ classes: wikidata_location: range: WikidataLocation wikidata_country: + range: Any any_of: - - range: string - - range: WikidataEntity + - range: string + - range: WikidataEntity description: Country from Wikidata (can be Q-id string or structured entity) wikidata_located_in: range: WikidataEntity @@ -234,3 +235,10 @@ classes: range: WikidataResolvedEntities description: Resolved Wikidata property and entity metadata cache inlined: true + _provenance: + range: Any + description: >- + Provenance metadata for the Wikidata enrichment section, including content hash, + PROV-O triples (wasGeneratedBy, wasDerivedFrom), and verification status. + Uses flexible Any type to accommodate varying provenance structures. + inlined: true diff --git a/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml b/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml index da1a5167c6..8955b714d5 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml @@ -50,9 +50,12 @@ classes: label: range: string description: English label + description: + range: string + description: English description (primary field name used in data) entity_description: range: string - description: English description + description: English description (alternative field name) label_en: range: string description: English label (alternative key) diff --git a/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml b/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml index 82d3aac81d..49da62eac2 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml @@ -44,6 +44,12 @@ classes: - geo:SpatialThing - prov:Location attributes: + country: + range: Any + any_of: + - range: string + - range: WikidataEntity + description: Country information (can be ISO 3166-1 alpha-2 string or WikidataEntity object) country_reference: any_of: - range: string diff --git a/schemas/20251121/linkml/modules/slots/publication_date.yaml b/schemas/20251121/linkml/modules/slots/archive/publication_date_archived_20260118.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/publication_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/publication_date_archived_20260118.yaml diff --git a/schemas/20251121/linkml/modules/slots/collecting_scope.yaml b/schemas/20251121/linkml/modules/slots/collecting_scope.yaml index 6d92b7e7d2..6bae8596af 100644 --- a/schemas/20251121/linkml/modules/slots/collecting_scope.yaml +++ b/schemas/20251121/linkml/modules/slots/collecting_scope.yaml @@ -10,6 +10,10 @@ imports: default_prefix: hc slots: collecting_scope: + description: >- + The thematic, geographic, temporal, or material scope of an institution's collecting + activities. Defines what types of objects, records, or materials the institution + actively acquires or has historically collected. range: string multivalued: true slot_uri: schema:additionalProperty diff --git a/schemas/20251121/linkml/modules/slots/collection_access.yaml b/schemas/20251121/linkml/modules/slots/collection_access.yaml index 020466dbd2..7226c3c0f5 100644 --- a/schemas/20251121/linkml/modules/slots/collection_access.yaml +++ b/schemas/20251121/linkml/modules/slots/collection_access.yaml @@ -10,5 +10,9 @@ imports: default_prefix: hc slots: collection_access: + description: >- + Describes the access conditions for a collection, including whether it is publicly + accessible, requires appointment, has restricted access, or is available only to + researchers or authorized users. range: string slot_uri: schema:publicAccess diff --git a/schemas/20251121/linkml/modules/slots/custody_history.yaml b/schemas/20251121/linkml/modules/slots/custody_history.yaml index a0ef827e10..35277bf837 100644 --- a/schemas/20251121/linkml/modules/slots/custody_history.yaml +++ b/schemas/20251121/linkml/modules/slots/custody_history.yaml @@ -9,6 +9,10 @@ imports: default_prefix: hc slots: custody_history: + description: >- + The history of custody, ownership, or stewardship of a collection, object, or record + set. Documents transfers of custody, changes in ownership, and the chain of responsible + parties over time, following archival provenance principles. range: string multivalued: true slot_uri: hc:custodyHistory diff --git a/schemas/20251121/linkml/modules/slots/education_level.yaml b/schemas/20251121/linkml/modules/slots/education_level.yaml index 3bc25bb1c9..c3c85748b4 100644 --- a/schemas/20251121/linkml/modules/slots/education_level.yaml +++ b/schemas/20251121/linkml/modules/slots/education_level.yaml @@ -10,6 +10,10 @@ imports: default_prefix: hc slots: education_level: + description: >- + The educational level or target audience for educational programs, resources, or + activities offered by a heritage institution (e.g., primary, secondary, higher education, + lifelong learning, professional development). range: string multivalued: true slot_uri: schema:educationalLevel diff --git a/schemas/20251121/linkml/modules/slots/membership_size.yaml b/schemas/20251121/linkml/modules/slots/membership_size.yaml index fb90a5e135..67c6183157 100644 --- a/schemas/20251121/linkml/modules/slots/membership_size.yaml +++ b/schemas/20251121/linkml/modules/slots/membership_size.yaml @@ -10,5 +10,8 @@ imports: default_prefix: hc slots: membership_size: + description: >- + The number of members in a heritage society, association, or membership-based organization. + May be expressed as an exact count, range, or category (e.g., "small", "50-100", "500+"). range: string slot_uri: schema:numberOfEmployees diff --git a/schemas/20251121/linkml/modules/slots/publication_activity.yaml b/schemas/20251121/linkml/modules/slots/publication_activity.yaml index d5f7dbe425..8600bc06ee 100644 --- a/schemas/20251121/linkml/modules/slots/publication_activity.yaml +++ b/schemas/20251121/linkml/modules/slots/publication_activity.yaml @@ -10,6 +10,9 @@ imports: default_prefix: hc slots: publication_activity: + description: >- + Publishing activities undertaken by a heritage institution, such as journals, + newsletters, catalogs, monographs, digital publications, or online content production. range: string multivalued: true slot_uri: schema:publishingPrinciples diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 82859c451b..47f2956812 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -6940,20 +6940,24 @@ fixes: type: class processed: status: true - timestamp: '2026-01-17T20:15:00Z' - session: session-2026-01-17-slot-migration + timestamp: '2026-01-18T00:00:00Z' + session: session-2026-01-18-slot-migration notes: | - WELL_STRUCTURED_NO_MIGRATION_NEEDED: publication_date has proper - ontology alignment: - - slot_uri: dcterms:issued - - exact_mappings: schema:datePublished, dcterms:issued - - Range: date (appropriate for publication dates) + FULLY_MIGRATED per Rule 53/56 (2026-01-18): - The revision suggests PublicationEvent + TimeSpan which would be - OVER-ENGINEERING for a simple publication date. + Migration completed: + - Created is_or_was_published_at slot (reuses existing from published_at migration) + - Created PublicationEvent class (reuses existing) + - Uses TimeSpan for temporal_extent (CIDOC-CRM pattern) - Used in: FindingAid.yaml, FinancialStatement.yaml - Retaining as date slot with dcterms:issued alignment. + Files updated: + - FindingAid.yaml: slots list + slot_usage + examples + - FinancialStatement.yaml: slots list + slot_usage + examples + - ExhibitionCatalog.yaml: slots list + slot_usage + examples + + Old slot archived: modules/slots/archive/publication_date_archived_20260118.yaml + + Pattern: For precise dates, all 4 TimeSpan boundaries set to same instant. - original_slot_id: https://nde.nl/ontology/hc/slot/publication_activity revision: - label: is_or_was_published_at @@ -9079,5 +9083,218 @@ fixes: type: slot - label: CollectionScope type: class - -# https://nde.nl/ontology/hc/slot/collection_size \ No newline at end of file +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_size + revision: + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: item +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_type + revision: + - label: has_or_had_content + type: slot + - label: CollectionContent + type: class + - label: has_or_had_type + type: slot + - label: CollectionContentType + type: class + - label: includes_or_included + type: slot + - label: CollectionContentTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_type_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_type_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_type_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_type_ref + revision: + - label: is_or_was_categorized_as + type: slot + - label: CollectionType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collection_web_address + revision: + - label: has_or_had_content + type: slot + - label: Collection + type: class + - label: had_or_had_web_page + type: slot + - label: WebPage + type: class + - label: has_or_had_url + type: slot + - label: URL +- original_slot_id: https://nde.nl/ontology/hc/slot/collections_under_responsibility + revision: + - label: is_or_was_responsible_for + type: slot + - label: Collection + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/collector + revision: + - label: is_or_was_acquired_by + type: slot + - label: Agent + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/colonial + revision: + - label: includes_or_included + type: Slot + - label: GeoSpatialPlace + type: Class + - label: is_or_was_categorized_as + type: Slot + - label: ColonialStatus + type: Class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_author + revision: + - label: has_or_had_author + type: slot + - label: Author + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_author_channel_id + revision: + - label: has_or_had_author + type: slot + - label: Author + type: class + - label: has_or_had_identifier + type: slot + - label: DigitalPlatformUserIdentifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_count + revision: + - label: has_or_had_comment + type: slot + - label: Comment + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_like_count + revision: + - label: is_or_was_appreciated + type: slot + - label: AppreciationEvent + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: like +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_published_at + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_reply_count + revision: + - label: has_or_had_reply + type: slot + - label: CommentReply + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: reply +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_text + revision: + - label: has_or_had_content + type: slot + - label: Content + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comment_updated_at + revision: + - label: was_last_updated_at + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/comments_fetched + revision: + - label: was_fetched_at + type: slot + - label: Timestamp + type: class + - label: is_or_was_part_of_total + type: slot + - label: SourceCommentCount + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/commercial_activity + revision: + - label: has_or_had_service + type: slot + - label: Service + type: class + - label: has_or_had_type + type: slot + - label: ServiceType + type: class + - label: includes_or_included + type: slot + - label: ServiceTypes + type: class + note: this includes CommercialService which in itself can bt tied to has_or_had_type etc. +- original_slot_id: https://nde.nl/ontology/hc/slot/commercial_custodian_subtype + revision: + - label: includes_or_included + type: slot + - label: CommercialCustodianTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/commercial_operation + revision: + - label: has_or_had_objective + type: slot + - label: Profit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/commission_rate + revision: + - label: has_or_had_service + type: slot + - label: ArtSaleService + type: class + - label: takes_or_took_comission + type: slot + - label: CommissionRate + type: class + - label: has_or_had_percentage + type: slot + - label: Percentage + type: class