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/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - ./TemplateSpecificityType - ./TemplateSpecificityTypes - ../enums/METSIdentifierTypeEnum - ../slots/response_format - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/response_format - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) 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 - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)