glam/schemas/20251121/linkml/modules/classes/METSAPI.yaml
kempersc b34992b1d3 Migrate all 293 class files to ontology-aligned slots
Extends migration to all class types (museums, libraries, galleries, etc.)

New slots added to class_metadata_slots.yaml:
- RiC-O: rico_record_set_type, rico_organizational_principle,
  rico_has_or_had_holder, rico_note
- Multilingual: label_de, label_es, label_fr, label_nl, label_it, label_pt
- Scope: scope_includes, scope_excludes, custodian_only,
  organizational_level, geographic_restriction
- Notes: privacy_note, preservation_note, legal_note

Migration script now handles 30+ annotation types.
All migrated schemas pass linkml-validate.

Total: 387 class files now use proper slots instead of annotations.
2026-01-06 12:24:54 +01:00

308 lines
9.6 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_formats
- ../slots/class_metadata_slots
classes:
METSAPI:
is_a: DataServiceEndpoint
class_uri: hc:METSAPI
description: |
METS (Metadata Encoding and Transmission Standard) document retrieval API.
**Purpose:**
Models endpoints that provide access to METS documents describing
the structure and metadata of digital objects in heritage collections.
METS is a Library of Congress standard widely used in digital preservation
and repository systems.
**METS Structure:**
A METS document contains:
- **metsHdr**: Header with creation/modification metadata
- **dmdSec**: Descriptive metadata (Dublin Core, MODS, EAD, etc.)
- **amdSec**: Administrative metadata (technical, rights, provenance)
- **fileSec**: File inventory with technical properties
- **structMap**: Logical/physical structure of the object
- **structLink**: Links between structural divisions
- **behaviorSec**: Executable behaviors
**Example - Nationaal Archief METS API:**
```yaml
mets_api:
endpoint_name: "Nationaal Archief METS API"
base_url: "https://service.archief.nl/gaf/api/mets/v1/"
url_pattern: "{base_url}{uuid}"
mets_profile: NATIONAAL_ARCHIEF
version: "v1"
descriptive_metadata_schemas:
- Dublin Core
- EAD
rights_metadata_available: true
structural_metadata_available: true
file_inventory_included: true
example_url: "https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012"
```
**Use Cases:**
1. **Digital preservation**: Validate object integrity
2. **Viewer integration**: Build multi-page viewers from structural metadata
3. **Migration**: Transfer objects between repository systems
4. **Audit**: Track provenance and rights
**See Also:**
- METS Standard: https://www.loc.gov/standards/mets/
- METS Primer: https://www.loc.gov/standards/mets/METSPrimer.pdf
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:hasObjectCharacteristics
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:
protocol:
description: METS APIs typically use REST protocol (DataServiceProtocolEnum.REST).
response_formats:
description: |
METS documents are always XML.
ifabsent: string(application/xml)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
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
enums:
METSIdentifierTypeEnum:
description: |
Types of identifiers used to request METS documents.
permissible_values:
UUID:
description: |
Universally Unique Identifier.
Format: 8-4-4-4-12 hexadecimal
Example: "12345678-1234-1234-1234-123456789012"
HANDLE:
description: |
Handle System persistent identifier.
Format: prefix/suffix
Example: "10.5072/example.001"
DOI:
description: |
Digital Object Identifier.
Format: 10.prefix/suffix
Example: "10.1234/example.001"
ARK:
description: |
Archival Resource Key.
Format: ark:/NAAN/assigned-name
Example: "ark:/12345/fk4sample"
URN:
description: |
Uniform Resource Name.
Format: urn:namespace:identifier
Example: "urn:nbn:nl:ui:13-sample-001"
LOCAL_ID:
description: |
Local/internal identifier specific to the repository.
Format varies by institution.
INVENTORY_NUMBER:
description: |
Archival inventory/call number.
Format varies (e.g., "2.04.87/123")