The problem

In archival information systems like Archivematica the archival information packages typically based on Bagit (RFC 8493). This is fine if the digital objects to be preserved are no longer modified. In practice, this is rarely the case. Objects need to be added (e.g. because pages of monographs were skipped during scanning, or because additional files were found in the estate). In that case, an archival information system must support so called ‘AIP Updates’.

How to solve that with BagIt?

Here the solution. The fetch mechanism is utilized (see fetch.txt in the RFC), and the payload is moved one level higher, as shown in example.

AIP1
 |
 +-- data/
 |     |
 |     +-- datei1  <...........
 |     |                      :
 |     `-- datei2  <.............
 +-- v1/                      : :               AIPv1/
 |     |                      : :                 |
 |     +-- bag-info.txt       : :                 +-- bag-info.txt
 |     |                      : :                 |
 |     +-- bagit.txt          : :                 +-- bagit.txt
 |     |                      : :   =====>        | 
 |     +-- fetch.txt .........: :                 +-- data/
 |     |                        :                 |     |
 |     +-- manifest-md5.txt     :                 |     `-- datei1
 |     |                        :                 |
 |     `-- tagmanifest-md5.txt  :                 +-- manifest-md5.txt                 AIPv2/
 +-- v2/                        :                 |                                      |
 |     |                        :                 `-- tagmanifest-md5.txt                +-- bag-info.txt
 |     +-- bag-info.txt         :                                                        |
 |     |                        :                                                        +-- bagit.txt
 |     +-- bagit.txt            :                                                        |
 |     |                        :  =============================================>        +-- data/
 |     +-- fetch.txt ...........:                                                        |     |
 |     |                                                                                 |     `-- datei2
 |     +-- manifest-md5.txt                                                              | 
 |     |                                                                                 +-- manifest-md5.txt
 |     `-- tagmanifest-md5.txt                                                           |
 :                                                                                       `-- tagmanifest-md5.txt