artefactual-labs / mets-reader-writer

Library to parse and create METS files, especially for Archivematica.
https://mets-reader-writer.readthedocs.io
GNU Affero General Public License v3.0
20 stars 13 forks source link

Write pointer files: PREMIS-rw and METS validation #27

Closed jrwdunham closed 6 years ago

jrwdunham commented 6 years ago

Makes it easier to use mets-reader-writer to create Archivematica METS pointer files for compressed/encrypted Archival Information Packages (AIPs) by doing the following.

  1. Adds a PREMIS reader/writer plugin (and supporting dependency injection infrastructure).
  2. Adds METS validation, both via XMLSchema (.xsd) and Schematron.

See this draft Architectural Decision Record for unifying METS interactions in Archivematica.

The PREMIS-RW functionality introduced here has significant overlap with the work in PR #20, which introduces a different approach to PREMIS-related functionality. These two pull requests should be reconciled. This one has the benefit of providing a plugin/dependency injection system. It should be easy to modify the PREMIS functionality of PR #20 (or that of uchicagoldr-premiswork) to work with this dependency injection system. See issue #28.

These changes were motivated by the desire to make it easier to read and write METS files, specifically Archivematica METS pointer files, in the context of the larger AIP replication project where interactions with METS files are increasingly being spread across several Archivematica-related tools/repos. Saliently, the Storage Service will now be responsible for creating pointer files. As a result, there is a greater need for establishing standard practices for interacting with METS files in Archivematica-related work. It is hoped that the changes introduced here can help to achieve that goal. See DRAFT Architectural Decision Record (ADR) 1: Unification of METS Creation in Archivematica .