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.
308 lines
9.6 KiB
YAML
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")
|