glam/frontend/public/schemas/20251121/linkml/modules/classes/Container.yaml
kempersc 1fb924c412 feat: add ontology mappings to LinkML schema and enhance entity resolution
Schema enhancements (443 files):
- Add class_uri with proper ontology references (schema:, prov:, skos:, rico:)
- Add close_mappings, related_mappings per Rule 50 convention
- Replace stub hc: slot_uri with standard predicates (dcterms:identifier, skos:prefLabel)
- Improve descriptions with ontology mapping rationale
- Add prefixes blocks to all schema modules

Entity Resolution improvements:
- Add entity_resolution module with email semantics parsing
- Enhance build_entity_resolution.py with email-based matching signals
- Extend Entity Review API with filtering by signal types and count
- Add candidates caching and indexing for performance
- Add ReviewLoginPage component

New rules and documentation:
- Add Rule 51: No Hallucinated Ontology References
- Add .opencode/rules/no-hallucinated-ontology-references.md
- Add .opencode/rules/slot-ontology-mapping-reference.md
- Add adms.ttl and dqv.ttl ontology files

Frontend ontology support:
- Add RiC-O_1-1.rdf and schemaorg.owl to public/ontology
2026-01-13 13:51:02 +01:00

244 lines
8 KiB
YAML

id: https://nde.nl/ontology/hc/class/Container
name: Container
title: Heritage Custodian Data Container
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
imports:
- linkml:types
- ./Jurisdiction
- ./TradeRegister
- ./RegistrationInfo
- ./Custodian
- ./CustodianObservation
- ./CustodianName
- ./CustodianLegalStatus
- ./CustodianPlace
- ./CustodianCollection
- ./OrganizationalStructure
- ./ReconstructionActivity
- ./StandardsOrganization
- ./Standard
- ./AllocationAgency
- ./Identifier
- ./Country
- ./Subregion
- ./SocialMediaProfile
- ./InternetOfThings
- ./DigitalPlatform
- ./Collection
- ./FindingAid
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
Container:
tree_root: true
description: >-
Root container class for Heritage Custodian data instances.
Provides tree_root for LinkML instance validation.
This container supports all primary entity types for batch validation:
- Core custodian entities (Custodian, observations, names, legal statuses)
- Place and collection aspects (CustodianPlace, CustodianCollection)
- Organizational structures (OrganizationalStructure)
- Reconstruction activities (ReconstructionActivity)
- Registration entities (Jurisdiction, TradeRegister, RegistrationAuthority, RegistrationNumber)
- Standards ecosystem (StandardsOrganization, Standard, AllocationAgency, IdentifierFormat)
Ontology mapping rationale:
- class_uri is prov:Collection because this is a container aggregating
multiple heritage custodian entities for validation purposes
- This is a TECHNICAL class for LinkML validation (tree_root: true)
and should be EXCLUDED from UML visualizations per Rule 4
- related_mappings includes schema:Dataset as this aggregates data records
class_uri: prov:Collection
related_mappings:
- schema:Dataset
attributes:
has_or_had_custodian:
range: Custodian
multivalued: true
inlined_as_list: true
description: Collection of custodian hub entities
has_or_had_custodian_observation:
range: CustodianObservation
multivalued: true
inlined_as_list: true
description: Collection of custodian observations
has_or_had_custodian_name:
range: CustodianName
multivalued: true
inlined_as_list: true
description: Collection of custodian standardized names
custodian_legal_statuses:
range: CustodianLegalStatus
multivalued: true
inlined_as_list: true
description: Collection of custodian legal entities
custodian_places:
range: CustodianPlace
multivalued: true
inlined_as_list: true
description: Collection of custodian place designations
custodian_collections:
range: CustodianCollection
multivalued: true
inlined_as_list: true
description: Collection of heritage collections
has_or_had_organizational_structure:
range: OrganizationalStructure
multivalued: true
inlined_as_list: true
description: Collection of organizational units
reconstruction_activities:
range: ReconstructionActivity
multivalued: true
inlined_as_list: true
description: Collection of reconstruction activities
jurisdictions:
range: Jurisdiction
multivalued: true
inlined_as_list: true
description: Collection of legal/administrative jurisdictions
trade_registers:
range: TradeRegister
multivalued: true
inlined_as_list: true
description: Collection of trade/business registers
registration_authorities:
range: RegistrationAuthority
multivalued: true
inlined_as_list: true
description: Collection of registration authorities
has_or_had_registration_number:
range: RegistrationNumber
multivalued: true
inlined_as_list: true
description: Collection of registration numbers
standards_organizations:
range: StandardsOrganization
multivalued: true
inlined_as_list: true
description: 'Collection of standards organizations (ISO, W3C, OCLC, etc.).
Organizations that define and maintain identifier standards.
'
standards:
range: Standard
multivalued: true
inlined_as_list: true
description: 'Collection of identifier standards (ISIL, ISNI, VIAF, etc.).
Standards define identifier formats, registration authorities, and lookup URLs.
'
allocation_agencies:
range: AllocationAgency
multivalued: true
inlined_as_list: true
description: 'Collection of allocation agencies (KB, OCLC, Nationaal Archief, etc.).
Agencies that allocate identifiers locally within geographic/domain scope.
'
identifier_formats:
range: IdentifierFormat
multivalued: true
inlined_as_list: true
description: 'Collection of identifier format variants.
Format variants for standards (ISNI with/without spaces, etc.).
'
countries:
range: Country
multivalued: true
inlined_as_list: true
description: 'Collection of countries (ISO 3166-1).
Used for geographic scope of standards and allocation agencies.
'
subregions:
range: Subregion
multivalued: true
inlined_as_list: true
description: 'Collection of subregions (ISO 3166-2).
Used for subnational geographic scope.
'
custodian_identifiers:
range: CustodianIdentifier
multivalued: true
inlined_as_list: true
description: 'Collection of custodian identifiers (ISIL, ISNI, Wikidata, VIAF, etc.).
External identifiers with full provenance tracking.
'
has_or_had_social_media_profile:
range: SocialMediaProfile
multivalued: true
inlined_as_list: true
description: 'Collection of social media profiles (Instagram, Facebook, X, etc.).
Third-party digital presence on external platforms.
'
has_or_had_iot_device:
range: InternetOfThings
multivalued: true
inlined_as_list: true
description: 'Collection of IoT devices (beacons, sensors, kiosks).
Physical-digital bridge devices in heritage venues.
'
digital_platforms:
range: DigitalPlatform
multivalued: true
inlined_as_list: true
description: 'Collection of digital platforms (websites, portals, repositories).
Primary owned digital presence.
'
collections:
range: Collection
multivalued: true
inlined_as_list: true
description: 'Collection of specific, inventoried heritage holdings.
Represents SPECIFIC, CATALOGUED holdings within a heritage custodian.
Distinct from CustodianCollection (abstract/nominal reference).
'
has_or_had_finding_aid:
range: FindingAid
multivalued: true
inlined_as_list: true
description: 'Collection of finding aids (inventories, catalogs, guides, indexes, databases).
Replaces simple finding_aid_url strings with rich metadata objects.
'
comments:
- Container class serves as tree_root for LinkML validation
- Enables validation of YAML/JSON instance files
- Uses 'attributes' instead of 'slots' to avoid slot import dependencies
- Not used in RDF serialization (flattened)
- 'v2: Added standards ecosystem classes (StandardsOrganization, Standard, AllocationAgency)'
- 'v3: Added digital presence classes (SocialMediaProfile, InternetOfThings, DigitalPlatform)'
- 'v4: Added Collection and FindingAid classes'
slots:
- specificity_annotation
- template_specificity