glam/frontend/public/schemas/20251121/linkml/modules/classes/METSAPI.yaml
kempersc f2b10fca19
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m48s
fix: correct hallucinated PREMIS terms and Schema.org namespace mismatch
PREMIS ontology fixes (8 schema files):
- Replace invalid premis:hasRepresentation with dcterms:hasFormat
- Replace invalid premis:hasAccessRestriction with odrl:hasPolicy
- Replace invalid premis:hasPreservationPolicy with dcterms:conformsTo
- Replace invalid premis:hasAccessPolicy with dcterms:accessRights
- Replace invalid premis:hasStoragePolicy with dcterms:conformsTo
- Replace invalid premis:ProcessingStatus with skos:Concept
- Add proper close_mappings to valid PREMIS classes (premis:Representation, etc.)
- Document hallucinated terms in Rule 51 (AGENTS.md) for future prevention

Schema.org namespace fixes (3 frontend files):
- Update OntologyTermPopup.tsx: add normalizeSchemaOrgUri() function
- Update ontology-loader.ts: change schema prefix to https://schema.org/
- Update linkml-schema-service.ts: change schema prefix to https://schema.org/
- The schemaorg.owl file uses https:// but code was using http://

These changes ensure ontology term lookups work correctly for Schema.org
terms and that LinkML schema files only reference valid ontology predicates.
2026-01-13 14:16:33 +01:00

281 lines
8.2 KiB
YAML

id: https://nde.nl/ontology/hc/class/METSAPI
name: mets_api
title: METSAPI Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcat: http://www.w3.org/ns/dcat#
dcterms: http://purl.org/dc/terms/
schema: http://schema.org/
premis: http://www.loc.gov/premis/rdf/v3/
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ../metadata
- ./DataServiceEndpoint
- ../slots/protocol
- ../slots/response_format
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/METSIdentifierTypeEnum
classes:
METSAPI:
is_a: DataServiceEndpoint
class_uri: hc:METSAPI
description: "METS (Metadata Encoding and Transmission Standard) document retrieval API.\n\n**Purpose:**\n\nModels endpoints\
\ that provide access to METS documents describing\nthe structure and metadata of digital objects in heritage collections.\n\
\nMETS is a Library of Congress standard widely used in digital preservation\nand repository systems.\n\n**METS Structure:**\n\
\nA METS document contains:\n- **metsHdr**: Header with creation/modification metadata\n- **dmdSec**: Descriptive metadata\
\ (Dublin Core, MODS, EAD, etc.)\n- **amdSec**: Administrative metadata (technical, rights, provenance)\n- **fileSec**:\
\ File inventory with technical properties\n- **structMap**: Logical/physical structure of the object\n- **structLink**:\
\ Links between structural divisions\n- **behaviorSec**: Executable behaviors\n\n**Example - Nationaal Archief METS\
\ API:**\n\n```yaml\nmets_api:\n endpoint_name: \"Nationaal Archief METS API\"\n base_url: \"https://service.archief.nl/gaf/api/mets/v1/\"\
\n url_pattern: \"{base_url}{uuid}\"\n mets_profile: NATIONAAL_ARCHIEF\n version: \"v1\"\n descriptive_metadata_schemas:\n\
\ - Dublin Core\n - EAD\n rights_metadata_available: true\n structural_metadata_available: true\n file_inventory_included:\
\ true\n example_url: \"https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012\"\n```\n\n\
**Use Cases:**\n\n1. **Digital preservation**: Validate object integrity\n2. **Viewer integration**: Build multi-page\
\ viewers from structural metadata\n3. **Migration**: Transfer objects between repository systems\n4. **Audit**: Track\
\ provenance and rights\n\n**See Also:**\n\n- METS Standard: https://www.loc.gov/standards/mets/\n- METS Primer: https://www.loc.gov/standards/mets/METSPrimer.pdf\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: 'Base URL for METS document retrieval.
Individual documents are accessed by appending an identifier.
Example: "https://service.archief.nl/gaf/api/mets/v1/"
'
range: uri
required: true
url_pattern:
slot_uri: hydra:template
description: 'URL pattern for constructing METS document requests.
Use {placeholders} for dynamic parts.
Examples:
- "{base_url}{uuid}" → https://service.archief.nl/gaf/api/mets/v1/12345678-...
- "{base_url}?id={identifier}" → https://example.org/mets?id=doc123
'
range: string
identifier_type:
slot_uri: dcterms:identifier
description: 'Type of identifier used to request METS documents.
Values: UUID, HANDLE, DOI, ARK, LOCAL_ID
Example: UUID
'
range: METSIdentifierTypeEnum
mets_profile:
slot_uri: dcterms:conformsTo
description: 'METS profile implemented by this API.
METS profiles constrain the standard for specific use cases.
Examples:
- NATIONAAL_ARCHIEF: Dutch National Archive profile
- BHL: Biodiversity Heritage Library profile
- FEDORA: Fedora repository profile
- NDNP: National Digital Newspaper Program
'
range: string
mets_schema_version:
slot_uri: schema:schemaVersion
description: 'METS schema version used.
Current version: 1.12.1
Example: "1.12.1"
'
range: string
descriptive_metadata_schemas:
slot_uri: dcterms:format
description: 'Descriptive metadata schemas embedded in dmdSec.
Common schemas:
- Dublin Core (oai_dc)
- MODS
- EAD (for archival description)
- MARCXML
- VRA Core (visual resources)
Example: ["Dublin Core", "EAD"]
'
range: string
multivalued: true
administrative_metadata_sections:
slot_uri: schema:additionalProperty
description: 'Administrative metadata sections included.
METS defines:
- techMD: Technical metadata (file formats, dimensions)
- rightsMD: Rights/permissions
- sourceMD: Source/provenance
- digiprovMD: Digital provenance (PREMIS events)
Example: ["techMD", "rightsMD", "digiprovMD"]
'
range: string
multivalued: true
rights_metadata_available:
slot_uri: dcterms:rights
description: 'Whether rights metadata (rightsMD) is included.
Important for access control and reuse decisions.
'
range: boolean
technical_metadata_standard:
slot_uri: premis:characteristic
description: 'Standard used for technical metadata.
Common standards:
- PREMIS: PREservation Metadata
- MIX: NISO Metadata for Images in XML
- textMD: Technical metadata for text
- AudioMD/VideoMD: AV technical metadata
Example: "PREMIS"
'
range: string
structural_metadata_available:
slot_uri: schema:hasPart
description: 'Whether structural metadata (structMap) is included.
Structural maps define how components relate to form the object
(pages in a book, frames in a film, etc.).
'
range: boolean
structure_map_types:
slot_uri: schema:additionalProperty
description: 'Types of structural maps included.
Common types:
- LOGICAL: Intellectual structure (chapters, sections)
- PHYSICAL: Physical organization (pages, leaves)
- MIXED: Combination of logical and physical
Example: ["LOGICAL", "PHYSICAL"]
'
range: string
multivalued: true
file_inventory_included:
slot_uri: dcat:distribution
description: 'Whether file inventory (fileSec) is included.
File section lists all files with locations, sizes, checksums.
'
range: boolean
file_location_resolvable:
slot_uri: schema:contentUrl
description: 'Whether file URLs in fileSec are directly resolvable.
If true, file URLs can be used to download content.
If false, files may require authentication or be internal references.
'
range: boolean
checksum_algorithms:
slot_uri: schema:algorithm
description: 'Checksum algorithms used in file inventory.
For integrity verification.
Example: ["MD5", "SHA-256", "SHA-512"]
'
range: string
multivalued: true
supports_validation:
slot_uri: schema:validIn
description: 'Whether the API validates METS against schema/profile.
Well-formed METS should validate against XSD schema.
'
range: boolean
example_url:
slot_uri: schema:workExample
description: 'Example URL for retrieving a METS document.
Example: "https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012"
'
range: uri
slot_usage:
response_format:
ifabsent: string(application/xml)
comments:
- METS is essential for digital preservation and repository interoperability
- Structural maps enable building multi-page viewers
- Consider caching METS documents for frequently accessed objects
see_also:
- https://www.loc.gov/standards/mets/
- https://www.loc.gov/standards/mets/mets-schemadocs.html
slots:
- specificity_annotation
- template_specificity