Archivematica 1.14.1 is a legacy release, and these documents are no longer being maintained.

Import metadata

Archivematica can recognize descriptive, rights, and/or event metadata that is included with your transfer. You can import metadata by including a directory called metadata in your transfer. The directory can contain any type of metadata that you wish to preserve alongside your digital objects. The Process Metadata Directory Microservice will perform a number of preservation actions on objects in this directory.

Archivematica supports conventions for importing descriptive, rights, and event metadata that will transpose the contents of the metadata files into the AIP METS file. If you are using AtoM or ArchivesSpace, metadata that is transposed to the METS can be passed on to these access systems for further use.

Metadata that is not able to be transposed to the METS - for example, preservation metadata created by tool like BitCurator prior to ingest into Archivematica - will be preserved alongside the materials in the transfer.

Descriptive, rights, and/or event metadata can be added to standard, unzipped, zipped, and disk image transfer types.

Metadata in the METS file is searchable in the Archival Storage tab.

On this page:

Importing descriptive metadata with metadata.csv

Archivematica natively supports Dublin Core’s DCMI Metadata Terms, which includes the basic 15 elements from the Dublin Core Metadata Element Set. Using the metadata.csv method, users can also include non-Dublin Core metadata. Archivematica is able to pass Dublin Core metadata to AtoM or ArchivesSpace, but not non-Dublin Core metadata.

Note

Note: Archivematica can only read CSV files that have been encoded in UTF-8. Metadata saved with a file encoding other than UTF-8 may not map correctly to the METS file, or may cause an error and not be added at all.

Descriptive metadata can be applied to individual objects within a transfer, to directories within the transfer, or both.

Adding descriptive metadata to individual objects

Metadata can be applied to individual objects within a transfer. For example, you could apply item-level descriptive metadata to an individual image or multimedia file. The following steps will take you through the basic workflow for creating a metadata.csv file that will apply metadata to individual objects.

  1. Create a transfer directory containing the digital objects you would like to preserve (for more information on creating a basic transfer for Archivematica, see Basic transfers.) As an example, the following directory tree displays a basic transfer called metadataTransfer. One digital object sits within the top-level directory, while another object is nested within a subdirectory.:

    metadataTransfer/
    ├── audio
    │   └── bird.mp3
    └── beihai.tif
    

    Note that this transfer does not currently contain any metadata.

  2. Create a CSV file called metadata.csv. The example below can be used as a template for Dublin Core metadata. The filename column must come first and the filename path must always start with objects/. Note that if you add column headings that are not in the dc.element or dcterms.element formats, Archivematica will not indicate that the metadata is Dublin Core.

    filename dc.title dc.creator dc.subject dc.subject dc.subject dc.description dc.publisher dc.contributor dc.date dc.type dc.format dc.identifier dc.source dc.language dc.relation dc.coverage dc.rights
    objects/beihai.tif Beihai, Guanxi, China, 1988 NASA/GSFC/METI/ERSDAC/ JAROS and U.S./Japan ASTER Science Team China Beihai   Beihai is a city in the south of Guangxi, People’s Republic of China. NASA Jet Propulsion Laboratory   February 29, 2016 image image.tif   NASA Jet Propulsion Laboratory       Public domain
    objects/audio/bird.mp3 14000 Caen, France - Bird in my garden Nicolas Germain field recording soundscapes radio aporee Bird singing in my garden, Caen, France, Zoom H6 Radio Aporee   2017-05-27 sound audio/mp3   Internet Archive       Public domain

    Note that empty columns (e.g. dc.contributor) were left in to demonstrate the range of possible basic Dublin Core values. You do not need to keep empty columns.

  3. Create a subdirectory called metadata and place the metadata.csv file inside it.:

    metadataTransfer/
    ├── audio
    │   └── bird.mp3
    ├── beihai.tif
    └── metadata
       └── metadata.csv
    
  4. Process the transfer as usual.

Any Dublin Core metadata formatted as in the example above will be transposed to the METS file. The METS file for the above example includes two descriptive metadata sections (<dmdSec>), one for each file in the transfer. These contain the Dublin Core metadata parsed from the metadata.csv; they include both dc.element and dcterms.element metadata. Note in the metadata wrapper (<mdWrap>) that they are given an MDTYPE of “DC”. If there had been non-Dublin Core metadata in the metadata.csv, there would be a separate <mdWrap> for the file with an MDTYPE of “OTHER”.

<dmdSec ID="dmdSec_1">
  <mdWrap MDTYPE="DC">
    <xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>Beihai, Guanxi, China, 1988</dc:title>
        <dc:creator>NASA/GSFC/METI/ERSDAC/JAROS and U.S./Japan ASTER Science Team</dc:creator>
        <dc:subject>satellite imagery</dc:subject>
        <dc:subject>China|Beihai</dc:subject>
        <dc:description>Beihai is a city in the south of Guangxi, People's Republic of China.</dc:description>
        <dc:publisher>NASA Jet Propulsion Laboratory</dc:publisher>
        <dc:contributor></dc:contributor>
        <dc:date>February 29,2016</dc:date>
        <dc:type>image</dc:type>
        <dc:format>image/tif</dc:format>
        <dc:identifier></dc:identifier>
        <dc:source>NASA Jet Propulsion Laboratory</dc:source>
        <dc:language></dc:language>
        <dc:relation></dc:relation>
        <dc:coverage></dc:coverage>
        <dc:rights>Public domain</dc:rights>
      </dublincore>
    </xmlData>
  </mdWrap>
</dmdSec>
<mets:dmdSec ID="dmdSec_2">
  <mets:mdWrap MDTYPE="DC">
    <mets:xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>14000 Caen, France - Bird in my garden</dc:title>
        <dc:creator>Nicolas Germain</dc:creator>
        <dc:subject>field recording</dc:subject>
        <dc:subject>phonography|soundscape|sound art|soundmap|radio|ephemeral|listening|radio aporee</dc:subject>
        <dc:description>Bird singing in my garden, Caen, France, Zoom H6</dc:description>
        <dc:publisher>Radio Aporee</dc:publisher>
        <dc:contributor></dc:contributor>
        <dc:date>2017-05-27</dc:date>
        <dc:type>sound</dc:type>
        <dc:format>audio/mp3</dc:format>
        <dc:identifier></dc:identifier>
        <dc:source>Internet Archive</dc:source>
        <dc:language></dc:language>
        <dc:relation></dc:relation>
        <dc:coverage></dc:coverage>
        <dc:rights>Public domain</dc:rights>
      </dcterms:dublincore>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

Adding descriptive metadata to a directory

Metadata can also be applied to a directory within the transfer. For example, you could apply directory-level descriptive metadata to folder containing the pages of a book, where the metadata describes the book itself rather than the individual pages. The following steps will take you through the basic workflow for creating a metadata.csv file that will apply metadata to a directory of objects.

Note that the metadata.csv can contain directory-level metadata, individual object metadata, or a combination of both.

  1. Create a transfer directory containing the digital objects you would like to preserve, organized as required within subdirectories (for more information on creating a basic transfer for Archivematica, see Basic transfers.) As an example, the following directory tree displays a basic transfer called directoryTransfer. The transfer contains two subfolders, which each contain two images.:

    directoryTransfer/
    ├── CoastNews-1964-01-02
    │   ├── page-01.jpg
    │   └── page-02.jpg
    └── CoastNews-1964-01-09
        ├── page-01.jpg
        └── page-02.jpg
    

    Note that this transfer does not currently contain any metadata.

  2. Create a CSV file called metadata.csv. The example below can be used as a template for Dublin Core metadata. The filename column must come first and the filename path must always start with objects/. In the example below, the filename column contains the directory path, instead of a filename path.

    filename dc.title dc.publisher dc.subject dc.date dc.description dc.language dc.source
    objects/CoastNews-1964-01-02 Coast News, January 02, 1964 Fred Cruice Gibsons (B.C.)–Newspapers 1964/01/02 Scans of the January 2, 1964 issue of the Coast News. English British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
    objects/CoastNews-1964-01-09 Coast News, January 09, 1964 Fred Cruice Gibsons (B.C.)–Newspapers 1964/01/09 Scans of the January 9, 1964 issue of the Coast News. English British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
  3. Create a subdirectory called metadata and place the metadata.csv file inside it.:

    directoryTransfer/
    ├── CoastNews-1964-01-02
    │   ├── page-01.jpg
    │   └── page-02.jpg
    ├── CoastNews-1964-01-09
    │   ├── page-01.jpg
    │   └── page-02.jpg
    └── metadata
        └── metadata.csv
    
  4. Process the transfer as usual.

The METS file that results from the above example includes a <dmdSec> for each directory, rather than each individual file. These contain the Dublin Core metadata parsed from the metadata.csv.

<mets:dmdSec ID="dmdSec_1">
  <mets:mdWrap MDTYPE="DC">
    <mets:xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>Coast News, January 02, 1964 </dc:title>
        <dc:publisher>Fred Cruice </dc:publisher>
        <dc:subject>Gibsons (B.C.)–Newspapers </dc:subject>
        <dc:date>1964/01/02 </dc:date>
        <dc:description>
          Scans of the January 2, 1964 issue of the Coast News.
        </dc:description>
        <dc:language>English </dc:language>
        <dc:source>
          British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
        </dc:source>
      </dcterms:dublincore>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_2">
  <mets:mdWrap MDTYPE="DC">
    <mets:xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>Coast News, January 09, 1964 </dc:title>
        <dc:publisher>Fred Cruice </dc:publisher>
        <dc:subject>Gibsons (B.C.)–Newspapers </dc:subject>
        <dc:date>1964/01/09 </dc:date>
        <dc:description>
          Scans of the January 9, 1964 issue of the Coast News.
        </dc:description>
        <dc:language>English </dc:language>
        <dc:source>
          British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
        </dc:source>
      </dcterms:dublincore>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

Adding non-Dublin Core descriptive metadata

You may wish to capture metadata elements that are not supported by the Dublin Core Metadata Elements Set. As shown in the examples above, Dublin Core metadata is written to the <dmdSec> of the METS file with the metadata type indicated as MDTYPE="DC". Non-Dublin Core metadata will be written into a separate <dmdSec> as MDTYPE="OTHER".

Here is an example of a metadata.csv file containing a mix of Dublin Core and non-Dublin Core descriptive metadata.

filename dc.title alternative_title dc.publisher dates_of_publication dc.subject dc.date dc.description frequency dc.language dc.source digital_file_format
objects/CoastNews-1964-01-02 Coast News, January 02, 1964 Sunshine Coast News Fred Cruice 1945-1995 Gibsons (B.C.)–Newspapers 1964/01/02 Scans of the January 2, 1964 issue of the Coast News. Weekly English British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews jpg
objects/CoastNews-1964-01-09 Coast News, January 09, 1964 Sunshine Coast News Fred Cruice 1945-1995 Gibsons (B.C.)–Newspapers 1964/01/09 Scans of the January 9, 1964 issue of the Coast News. Weekly English British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews jpg

This results in a METS file containing two <dmdSec> sections for each directory - two with MDTYPE="DC" and two with MDTYPE="OTHER".

<mets:dmdSec ID="dmdSec_1">
  <mets:mdWrap MDTYPE="DC">
    <mets:xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>Coast News, January 02, 1964 </dc:title>
        <dc:publisher>Fred Cruice </dc:publisher>
        <dc:subject>Gibsons (B.C.)–Newspapers </dc:subject>
        <dc:date>1964/01/02 </dc:date>
        <dc:description>
          Scans of the January 2, 1964 issue of the Coast News.
        </dc:description>
        <dc:language>English </dc:language>
        <dc:source>
          British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
        </dc:source>
      </dcterms:dublincore>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_2">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="CUSTOM">
    <mets:xmlData>
      <alternative_title>Sunshine Coast News </alternative_title>
      <dates_of_publication>1945-1995 </dates_of_publication>
      <frequency>Weekly </frequency>
      <digital_file_format>image/jpg</digital_file_format>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_3">
  <mets:mdWrap MDTYPE="DC">
    <mets:xmlData>
      <dcterms:dublincore xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd">
        <dc:title>Coast News, January 09, 1964 </dc:title>
        <dc:publisher>Fred Cruice </dc:publisher>
        <dc:subject>Gibsons (B.C.)–Newspapers </dc:subject>
        <dc:date>1964/01/09 </dc:date>
        <dc:description>
          Scans of the January 9, 1964 issue of the Coast News.
        </dc:description>
        <dc:language>English </dc:language>
        <dc:source>
          British Columbia Historical Newspapers collection, https://open.library.ubc.ca/collections/bcnewspapers/xcoastnews
        </dc:source>
      </dcterms:dublincore>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_4">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="CUSTOM">
    <mets:xmlData>
      <alternative_title>Sunshine Coast News </alternative_title>
      <dates_of_publication>1945-1995 </dates_of_publication>
      <frequency>Weekly </frequency>
      <digital_file_format>image/jpg</digital_file_format>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

Adding metadata using JSON files

It is possible to use a JSON file rather than a CSV to import Dublin Core metadata. The JSON file is added to the metadata directory as above.

  1. Create a transfer directory containing the digital objects you would like to preserve (for more information on creating a basic transfer for Archivematica, see Basic transfers.) As an example, the following directory tree displays a basic transfer called jsonMetadataTransfer. One digital object sits within the top-level directory, while another object is nested within a subdirectory.:

    jsonMetadataTransfer/
    ├── audio
    │   └── bird.mp3
    └── beihai.tif
    

    Note that this transfer does not currently contain any metadata.

  2. Create a JSON file called metadata.json. The example below can be used as a template for Dublin Core metadata. The filename field must come first and the filename path must always start with objects/. Note that if you add fields that are not in the dc.element or dcterms.element formats, Archivematica will not indicate that the metadata is Dublin Core.

    [
      {
        "filename": "objects/audio/bird.mp3",
        "dc.title": "14000 Caen, France - Bird in my garden",
        "dc.creator": "Nicolas Germain",
        "dc.description": "Bird singing in my garden, Caen, France, Zoom H6",
        "dc.subject": [
           "field recording",
           "soundscapes",
           "radio aporee"
           ],
        "dc.publisher": "Radio Aporee",
        "dc.date": "2017-05-27",
        "dc.identifier": "aporee_36644_41997",
        "dc.source": "Internet Archive",
        "dc.coverage": "Caen, France",
        "dc.rights": "Public domain"
      },
      {
        "filename": "objects/beihai.tif",
        "dc.title": "Beihai, Guanxi, China, 1988",
        "dc.creator": "NASA/GSFC/METI/ERSDAC/JAROS and U.S./Japan ASTER Science Team",
        "dc.description": "Beihai is a city in the south of Guangxi, People's Republic of China.",
        "dc.subject": [
           "satellite imaging",
           "photography",
           "city"
           ],
        "dc.publisher": "NASA Jet Propulsion Laboratory",
        "dc.date": "February 29,2016",
        "dc.source": "NASA Jet Propulsion Laboratory",
        "dc.coverage": "Beihai, China",
        "dc.rights": "Public domain"
      }
    ]
    

    Repeating fields can be listed in an array, as with dc.subject in the example above.

  3. Create a subdirectory called metadata and place the metadata.json file inside it.:

    metadataTransfer/
    ├── audio
    │   └── bird.mp3
    ├── beihai.tif
    └── metadata
       └── metadata.json
    
  4. Process the transfer as usual.

The METS file will be populated exactly as in the CSV examples above.

Importing and validating XML metadata with source-metadata.csv

Users can add metadata files in XML format to their transfer, and have that metadata related to objects in the transfer and parsed into the METS file in the AIP. If formatted correctly, Archivematica can also validate the metadata to ensure it conforms with a local or linked standard.

Setting up

This feature is disabled by default. It’s still considered experimental and its validation rules need to be configured according to the user needs before using it.

The Metadata XML validation variables section of the MCPClient installation documentation explains how to enable and configure this feature. You can also check the sample configuration files used in the Archivematica Automated User Acceptance Tests (AMAUATs).

Adding and validating metadata

  1. Create a transfer directory containing the digital objects you would like to preserve (for more information on creating a basic transfer for Archivematica, see Basic transfers.) As an example, the following directory tree displays a basic transfer called metadataTransfer. One digital object sits within the top-level directory, while another object is nested within a subdirectory.:

    metadataTransfer/
    ├── audio
    │   └── bird.mp3
    └── beihai.tif
    

    Note that this transfer does not currently contain any metadata.

  2. Create a CSV file called source-metadata.csv. It must contain three columns in the following order:

    • filename: a relative path of a digital object or a directory in the transfer. It must start with objects/.
    • metadata: a path of an XML file in the metadata directory with metadata about the digital object or directory specified in the filename column. Optionally, this XML file can be validated using an XML schema and its contents are included in the METS file of the AIP.
    • type: a unique identifier for the metadata content. This identifier is used during metadata reingests to update or delete existing metadata.

    This is the source-metadata.csv file we are going to use for the metadataTransfer directory from above.

    filename metadata type
    objects/beihai.tif beihai.xml local
    objects/audio/bird.mp3 bird-dc.xml dc-xml
  3. Create the two metadata XML files listed in the metadata column of the source-metadata.csv file: beihai.xml and bird-dc.xml.

    The beihai.xml metadata file contains unstructured text represented as a single top level <metadata> element with no XML namespace wrapping character data like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <metadata>
    <![CDATA[
    Beihai, Guanxi, China, 1988
    Beihai is a city in the south of Guangxi, People's Republic of China.
    ]]>
    </metadata>
    

    And the bird-dc.xml metadata file contains OAI-PMH Dublin Core metadata that could be validated against the OAI-PMH Version 2.0 specification and it looks like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
      <dc:title>14000 Caen, France - Bird in my garden </dc:title>
      <dc:creator>Nicolas Germain</dc:creator>
      <dc:subject>field recording </dc:subject>
      <dc:subject>soundscapes </dc:subject>
      <dc:subject>radio aporee </dc:subject>
      <dc:description>Bird singing in my garden, Caen, France, Zoom H6 </dc:description>
      <dc:publisher>Radio Aporee </dc:publisher>
      <dc:date>27/05/2017</dc:date>
      <dc:type>sound </dc:type>
      <dc:format>audio/mp3 </dc:format>
      <dc:source>Internet Archive </dc:source>
      <dc:rights>Public domain</dc:rights>
    </oai_dc:dc>
    
  4. Create a subdirectory called metadata and place the source-metadata.csv file and the two metadata XML files inside.:

    metadataTransfer/
    ├── audio
    │   └── bird.mp3
    ├── beihai.tif
    └── metadata
        ├── source-metadata.csv
        ├── beihai.xml
        └── bird-dc.xml
    
  5. Process the transfer as usual.

The METS file for the above example includes two descriptive metadata sections (<dmdSec>), one for each file in the transfer. Both sections are given attributes that specify their creation time and their status is set as original. And the contents of the metadata XML files in the metadata directory have been transposed here.

<mets:dmdSec ID="dmdSec_3" CREATED="2023-06-06T05:43:01" STATUS="original">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="local">
    <mets:xmlData>
      <metadata>
        Beihai, Guanxi, China, 1988
        Beihai is a city in the south of Guangxi, People's Republic of China.
      </metadata>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_4" CREATED="2023-06-06T05:43:01" STATUS="original">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dc-xml">
    <mets:xmlData>
      <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
        <dc:title>14000 Caen, France - Bird in my garden </dc:title>
        <dc:creator>Nicolas Germain</dc:creator>
        <dc:subject>field recording </dc:subject>
        <dc:subject>soundscapes </dc:subject>
        <dc:subject>radio aporee </dc:subject>
        <dc:description>Bird singing in my garden, Caen, France, Zoom H6 </dc:description>
        <dc:publisher>Radio Aporee </dc:publisher>
        <dc:date>27/05/2017</dc:date>
        <dc:type>sound </dc:type>
        <dc:format>audio/mp3 </dc:format>
        <dc:source>Internet Archive </dc:source>
        <dc:rights>Public domain</dc:rights>
      </oai_dc:dc>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

Note in the metadata wrapper (<mdWrap>) that they are given an MDTYPE of “OTHER” and an MDOTHERTYPE with the value of the type cell from the source-metadata.csv file. This is useful for updating or deleting the metadata files in the AIP during metadata reingests.

Updating metadata through metadata reingests

You can update the metadata contained in the METS file by reingesting your AIP and adding a new source-metadata.csv file and updated metadata XML files from one of your transfer source locations before approving the reingest.

  1. This is the new source-metadata.csv file we are going to use to update the metadata associated with the beihai.tif digital object in the previous transfer.

    filename metadata type
    objects/beihai.tif beihai-v2.xml local

    It’s important that in the type column we reuse the identifier (i.e. local) that was set as the OTHERMDTYPE attribute of the <dmdSec>.

  2. Create the new metadata XML file listed in the metadata column of the source-metadata.csv file: beihai-v2.xml.

    The beihai-v2.xml metadata file contains the same structure as before with a couple of additional sentences:

    <?xml version="1.0" encoding="UTF-8"?>
    <metadata>
    <![CDATA[
    Beihai, Guanxi, China, 1988
    Beihai is a city in the south of Guangxi, People's Republic of China.
    This image was created by NASA/GSFC/METI/ERSDAC/ JAROS and U.S./Japan ASTER Science Team.
    This image was published by the NASA Jet Propulsion Laboratory.
    ]]>
    </metadata>
    
  3. Start a metadata reingest for the previous AIP.

  4. Before approving the reingest upload the new CSV file and metadata XML file through the user interface.

  5. Approve and finish the metadata reingest.

The METS file now includes a new descriptive metadata section (<dmdSec>) for the beihai.tif digital object. It also contains an attribute that specifies its creation time and its status is set as update.

<mets:dmdSec ID="dmdSec_15" CREATED="2023-06-06T15:59:29" STATUS="update" GROUPID="bfd05690-6e58-4f6c-90c1-e1200b79cbc3">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="local">
    <mets:xmlData>
      <metadata>
        Beihai, Guanxi, China, 1988
        Beihai is a city in the south of Guangxi, People's Republic of China.
        This image was created by NASA/GSFC/METI/ERSDAC/ JAROS and U.S./Japan ASTER Science Team.
        This image was published by the NASA Jet Propulsion Laboratory.
      </metadata>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_3" CREATED="2023-06-06T05:43:01" STATUS="original-superseded" GROUPID="bfd05690-6e58-4f6c-90c1-e1200b79cbc3">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="local">
    <mets:xmlData>
      <metadata>
        Beihai, Guanxi, China, 1988
        Beihai is a city in the south of Guangxi, People's Republic of China.
      </metadata>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_4" CREATED="2023-06-06T05:43:01" STATUS="original">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dc-xml">
    <mets:xmlData>
      <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
        <dc:title>14000 Caen, France - Bird in my garden </dc:title>
        <dc:creator>Nicolas Germain</dc:creator>
        <dc:subject>field recording </dc:subject>
        <dc:subject>soundscapes </dc:subject>
        <dc:subject>radio aporee </dc:subject>
        <dc:description>Bird singing in my garden, Caen, France, Zoom H6 </dc:description>
        <dc:publisher>Radio Aporee </dc:publisher>
        <dc:date>27/05/2017</dc:date>
        <dc:type>sound </dc:type>
        <dc:format>audio/mp3 </dc:format>
        <dc:source>Internet Archive </dc:source>
        <dc:rights>Public domain</dc:rights>
      </oai_dc:dc>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

Note that the initial descriptive metadata section for the object is still there but its status has been updated to original-superseded. Also, the descriptive metadata section for the other digital object in the AIP has been left intact in the process.

Deleting metadata through metadata reingests

You can delete the metadata XML files contained in the AIP and … in the METS file by reingesting your AIP and adding a new source-metadata.csv file from one of your transfer source locations before approving the reingest.

  1. This is the new source-metadata.csv file we are going to use to delete the metadata associated with the audio/bird.mp3 digital object in the previous transfer. Here we assume this is the second metadata reingest of the AIP after the one in the previous section.

    filename metadata type
    objects/audio/bird.mp3   dc-xml

    It’s important that in the type column we reuse the identifier (i.e. dc-xml) that was set as the OTHERMDTYPE attribute of the <dmdSec>. Note that we signal the deletion request by leaving the metadata value empty.

  2. Start a metadata reingest for the previous AIP.

  3. Before approving the reingest upload the new CSV file through the user interface.

  4. Approve and finish the metadata reingest.

In the METS file the status attribute of the descriptive metadata section (<dmdSec>) of the audio/bird.mp3 digital object has been updated from original to deleted.

<mets:dmdSec ID="dmdSec_15" CREATED="2023-06-06T15:59:29" STATUS="update" GROUPID="bfd05690-6e58-4f6c-90c1-e1200b79cbc3">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="local">
    <mets:xmlData>
      <metadata>
        Beihai, Guanxi, China, 1988
        Beihai is a city in the south of Guangxi, People's Republic of China.
        This image was created by NASA/GSFC/METI/ERSDAC/ JAROS and U.S./Japan ASTER Science Team.
        This image was published by the NASA Jet Propulsion Laboratory.
      </metadata>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_3" CREATED="2023-06-06T05:43:01" STATUS="original-superseded" GROUPID="bfd05690-6e58-4f6c-90c1-e1200b79cbc3">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="local">
    <mets:xmlData>
      <metadata>
        Beihai, Guanxi, China, 1988
        Beihai is a city in the south of Guangxi, People's Republic of China.
      </metadata>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="dmdSec_4" CREATED="2023-06-06T05:43:01" STATUS="deleted">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dc-xml">
    <mets:xmlData>
      <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
        <dc:title>14000 Caen, France - Bird in my garden </dc:title>
        <dc:creator>Nicolas Germain</dc:creator>
        <dc:subject>field recording </dc:subject>
        <dc:subject>soundscapes </dc:subject>
        <dc:subject>radio aporee </dc:subject>
        <dc:description>Bird singing in my garden, Caen, France, Zoom H6 </dc:description>
        <dc:publisher>Radio Aporee </dc:publisher>
        <dc:date>27/05/2017</dc:date>
        <dc:type>sound </dc:type>
        <dc:format>audio/mp3 </dc:format>
        <dc:source>Internet Archive </dc:source>
        <dc:rights>Public domain</dc:rights>
      </oai_dc:dc>
    </mets:xmlData>
  </mets:mdWrap>
</mets:dmdSec>

After this the bird-dc.xml file has been deleted from the objects/metadata directory in the AIP. And note that the descriptive metadata sections for the other digital object in have been left intact in the process.

Importing rights metadata with rights.csv

Rights information can be associated with objects or directories in a transfer by creating a rights.csv file, similar to the metadata.csv file used for descriptive metadata. Archivematica implements PREMIS metadata in Archivematica, including PREMIS rights, as used here. Rights metadata added using the rights.csv will be transposed to the METS file.

Rights metadata can be applied to individual objects within a transfer, to directories within the transfer, or both.

  1. Create a transfer directory containing the digital objects you would like to preserve. As an example, the following directory tree displays a basic transfer called rightsTransfer. One digital object sits within the top-level directory, while another object is nested within a subdirectory.:

    rightsTransfer/
    ├── audio
    │   └── bird.mp3
    └── beihai.tif
    
  2. Create a file called rights.csv. The example below can be used as a template for PREMIS rights metadata. The filename column must come first and the filename path must always start with objects/.

    file basis status determination_date jurisdiction start_date end_date terms citation note grant_act grant_restriction grant_start_date grant_end_date grant_note doc_id_type doc_id_value doc_id_role
    objects/beihai.tif copyright copyrighted 2011-01-01 ca 2011-01-01 2013-12-31 Terms of copyright. Citation of copyright. Note about copyright. disseminate Disallow 2011-01-01 2013-12-31 Grant note Copyright documentation identifier type. Copyright documentation identifier value. Copyright documentation identifier role.
    objects/beihai.tif copyright copyrighted 2011-01-01 ca 2011-01-01 2013-12-31 Terms of copyright. Citation of copyright. Note about copyright. use Disallow 2011-01-01 2013-12-31 Grant note Copyright documentation identifier type. Copyright documentation identifier value. Copyright documentation identifier role.
    objects/audio/bird.mp3 license       2000-09-09 2010-09-08 Terms of license. Note about license. migrate allow Conditional   2000-09-00 Grant note License documentation identifier type. License documentation identifier value. License documentation identifier role.

    Note that to enter multiple rights acts for the same basis, you must create two separate rows, as with rows 1 and 2 in the example above.

  3. Create a subdirectory called metadata and place the rights.csv file inside it.:

    rightsTransfer/
    ├── audio
    │   └── bird.mp3
    ├── beihai.tif
    └── metadata
        └── rights.csv
    
  4. Process the transfer as usual.

Any PREMIS rights metadata formatted as in the example above will be transposed to the METS file. The METS file for the above example includes three rights metadata sections (<mets:rightsMD>).

<mets:rightsMD ID="rightsMD_1">
  <mets:mdWrap MDTYPE="PREMIS:RIGHTS">
    <mets:xmlData>
      <premis:rightsStatement xmlns:premis="http://www.loc.gov/premis/v3" xsi:schemaLocation="http://www.loc.gov/premis/v3 http://www.loc.gov/standards/premis/v3/premis.xsd">
        <premis:rightsStatementIdentifier>
          <premis:rightsStatementIdentifierType>UUID</premis:rightsStatementIdentifierType>
          <premis:rightsStatementIdentifierValue>6004a8d8-9d65-4eba-b7c1-b3e38a6d3a5e</premis:rightsStatementIdentifierValue>
        </premis:rightsStatementIdentifier>
        <premis:rightsBasis>License</premis:rightsBasis>
        <premis:licenseInformation>
          <premis:licenseDocumentationIdentifier>
            <premis:licenseDocumentationIdentifierType>License documentation identifier type.</premis:licenseDocumentationIdentifierType>
            <premis:licenseDocumentationIdentifierValue>License documentation identifier value.</premis:licenseDocumentationIdentifierValue>
            <premis:licenseDocumentationRole>License documentation identifier role.</premis:licenseDocumentationRole>
          </premis:licenseDocumentationIdentifier>
          <premis:licenseTerms>Terms of license.</premis:licenseTerms>
          <premis:licenseNote>migrate</premis:licenseNote>
          <premis:licenseApplicableDates>
            <premis:startDate>2000-09-09</premis:startDate>
            <premis:endDate>2010-09-08</premis:endDate>
          </premis:licenseApplicableDates>
        </premis:licenseInformation>
        <premis:rightsGranted>
          <premis:act>allow</premis:act>
          <premis:restriction>Conditional</premis:restriction>
          <premis:termOfRestriction>
            <premis:startDate></premis:startDate>
            <premis:endDate>2000-09-00</premis:endDate>
          </premis:termOfRestriction>
          <premis:rightsGrantedNote>Grant note</premis:rightsGrantedNote>
        </premis:rightsGranted>
        <premis:linkingObjectIdentifier>
          <premis:linkingObjectIdentifierType>UUID</premis:linkingObjectIdentifierType>
          <premis:linkingObjectIdentifierValue>4fe104da-bb8d-4695-a90f-9b8e456bd1b5</premis:linkingObjectIdentifierValue>
        </premis:linkingObjectIdentifier>
      </premis:rightsStatement>
    </mets:xmlData>
  </mets:mdWrap>
  <mets:rightsMD ID="rightsMD_2">
    <mets:mdWrap MDTYPE="PREMIS:RIGHTS">
      <mets:xmlData>
        <premis:rightsStatement xmlns:premis="http://www.loc.gov/premis/v3" xsi:schemaLocation="http://www.loc.gov/premis/v3 http://www.loc.gov/standards/premis/v3/premis.xsd">
          <premis:rightsStatementIdentifier>
            <premis:rightsStatementIdentifierType>UUID</premis:rightsStatementIdentifierType>
            <premis:rightsStatementIdentifierValue>21c75354-7d35-43f3-9268-b4b2c15da565</premis:rightsStatementIdentifierValue>
          </premis:rightsStatementIdentifier>
          <premis:rightsBasis>Copyright</premis:rightsBasis>
          <premis:copyrightInformation>
            <premis:copyrightStatus>copyrighted</premis:copyrightStatus>
            <premis:copyrightJurisdiction>ca</premis:copyrightJurisdiction>
            <premis:copyrightStatusDeterminationDate>2011-01-01</premis:copyrightStatusDeterminationDate>
            <premis:copyrightNote>Note about copyright.</premis:copyrightNote>
            <premis:copyrightDocumentationIdentifier>
              <premis:copyrightDocumentationIdentifierType>Copyright documentation identifier type.</premis:copyrightDocumentationIdentifierType>
              <premis:copyrightDocumentationIdentifierValue>Copyright documentation identifier value.</premis:copyrightDocumentationIdentifierValue>
              <premis:copyrightDocumentationRole>Copyright documentation identifier role.</premis:copyrightDocumentationRole>
            </premis:copyrightDocumentationIdentifier>
            <premis:copyrightApplicableDates>
              <premis:startDate>2011-01-01</premis:startDate>
              <premis:endDate>2013-12-31</premis:endDate>
            </premis:copyrightApplicableDates>
          </premis:copyrightInformation>
          <premis:rightsGranted>
            <premis:act>disseminate</premis:act>
            <premis:restriction>Disallow</premis:restriction>
            <premis:termOfRestriction>
              <premis:startDate>2011-01-01</premis:startDate>
              <premis:endDate>2013-12-31</premis:endDate>
            </premis:termOfRestriction>
            <premis:rightsGrantedNote>Grant note</premis:rightsGrantedNote>
          </premis:rightsGranted>
          <premis:linkingObjectIdentifier>
            <premis:linkingObjectIdentifierType>UUID</premis:linkingObjectIdentifierType>
            <premis:linkingObjectIdentifierValue>f4e314f0-6b0c-4cca-a4e0-ecc5f894488e</premis:linkingObjectIdentifierValue>
          </premis:linkingObjectIdentifier>
        </premis:rightsStatement>
      </mets:xmlData>
    </mets:mdWrap>
  </mets:rightsMD>
  <mets:rightsMD ID="rightsMD_3">
    <mets:mdWrap MDTYPE="PREMIS:RIGHTS">
      <mets:xmlData>
        <premis:rightsStatement xmlns:premis="http://www.loc.gov/premis/v3" xsi:schemaLocation="http://www.loc.gov/premis/v3 http://www.loc.gov/standards/premis/v3/premis.xsd">
          <premis:rightsStatementIdentifier>
            <premis:rightsStatementIdentifierType>UUID</premis:rightsStatementIdentifierType>
            <premis:rightsStatementIdentifierValue>b365f1ab-f8d1-4fde-92f0-15197dc6fd8c</premis:rightsStatementIdentifierValue>
          </premis:rightsStatementIdentifier>
          <premis:rightsBasis>Copyright</premis:rightsBasis>
          <premis:copyrightInformation>
            <premis:copyrightStatus>copyrighted</premis:copyrightStatus>
            <premis:copyrightJurisdiction>ca</premis:copyrightJurisdiction>
            <premis:copyrightStatusDeterminationDate>2011-01-01</premis:copyrightStatusDeterminationDate>
            <premis:copyrightNote>Note about copyright.</premis:copyrightNote>
            <premis:copyrightDocumentationIdentifier>
              <premis:copyrightDocumentationIdentifierType>Copyright documentation identifier type.</premis:copyrightDocumentationIdentifierType>
              <premis:copyrightDocumentationIdentifierValue>Copyright documentation identifier value.</premis:copyrightDocumentationIdentifierValue>
              <premis:copyrightDocumentationRole>Copyright documentation identifier role.</premis:copyrightDocumentationRole>
            </premis:copyrightDocumentationIdentifier>
            <premis:copyrightApplicableDates>
              <premis:startDate>2011-01-01</premis:startDate>
              <premis:endDate>2013-12-31</premis:endDate>
            </premis:copyrightApplicableDates>
          </premis:copyrightInformation>
          <premis:rightsGranted>
            <premis:act>use</premis:act>
            <premis:restriction>Disallow</premis:restriction>
            <premis:termOfRestriction>
              <premis:startDate>2011-01-01</premis:startDate>
              <premis:endDate>2013-12-31</premis:endDate>
            </premis:termOfRestriction>
            <premis:rightsGrantedNote>Grant note</premis:rightsGrantedNote>
          </premis:rightsGranted>
          <premis:linkingObjectIdentifier>
            <premis:linkingObjectIdentifierType>UUID</premis:linkingObjectIdentifierType>
            <premis:linkingObjectIdentifierValue>f4e314f0-6b0c-4cca-a4e0-ecc5f894488e</premis:linkingObjectIdentifierValue>
          </premis:linkingObjectIdentifier>
        </premis:rightsStatement>
      </mets:xmlData>
    </mets:mdWrap>
  </mets:rightsMD>

Importing event metadata with premis.xml

In some cases, digital preservation events may occur on digital objects prior to their transfer into Archivematica. You can log information about these events using the PREMIS standard in a XML file.

  1. Create a transfer directory containing the digital objects you would like to preserve. As an example, the following directory tree displays a basic transfer called eventsTransfer. One digital object sits within the objects subdirectory, while a premis.xml file sits in the metadata subdirectory.:

    eventsTransfer/
    ├── objects
    │   └── bird.mp3
    └── metadata
        └── premis.xml
    
  2. To create the premis.xml file containing the event information you can use the example below as a template.

    <?xml version="1.0" encoding="UTF-8"?>
    <premis:premis xmlns:premis="http://www.loc.gov/premis/v3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/premis/v3 https://www.loc.gov/standards/premis/premis.xsd" version="3.0">
      <premis:object xsi:type="premis:file">
        <premis:objectIdentifier>
          <premis:objectIdentifierType>hdl</premis:objectIdentifierType>
          <premis:objectIdentifierValue>hdl:3847677</premis:objectIdentifierValue>
        </premis:objectIdentifier>
        <premis:objectCharacteristics>
          <premis:format>
            <premis:formatDesignation>
              <premis:formatName>MPEG 1/2 Audio Layer 3</premis:formatName>
              <premis:formatVersion></premis:formatVersion>
            </premis:formatDesignation>
          </premis:format>
        </premis:objectCharacteristics>
        <premis:originalName>
          objects/bird.mp3
        </premis:originalName>
        <premis:linkingEventIdentifier>
          <premis:linkingEventIdentifierType>NRI Repository Event ID</premis:linkingEventIdentifierType>
          <premis:linkingEventIdentifierValue>NRI-016</premis:linkingEventIdentifierValue>
        </premis:linkingEventIdentifier>
        <premis:linkingEventIdentifier>
          <premis:linkingEventIdentifierType>NRI Repository Event ID</premis:linkingEventIdentifierType>
          <premis:linkingEventIdentifierValue>NRI-017</premis:linkingEventIdentifierValue>
        </premis:linkingEventIdentifier>
      </premis:object>
      <premis:event>
        <premis:eventIdentifier>
          <premis:eventIdentifierType>NRI Repository Event ID</premis:eventIdentifierType>
          <premis:eventIdentifierValue>NRI-016</premis:eventIdentifierValue>
        </premis:eventIdentifier>
        <premis:eventType>ingestion</premis:eventType>
        <premis:eventDateTime>2019-07-04T22:46:07.773391+00:00</premis:eventDateTime>
        <premis:eventDetailInformation>
          <premis:eventDetail>Acquired via records transfer 002/041</premis:eventDetail>
        </premis:eventDetailInformation>
        <premis:eventOutcomeInformation>
          <premis:eventOutcome/>
          <premis:eventOutcomeDetail>
            <premis:eventOutcomeDetailNote/>
          </premis:eventOutcomeDetail>
        </premis:eventOutcomeInformation>
        <premis:linkingAgentIdentifier>
          <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType>
          <premis:linkingAgentIdentifierValue>NRI</premis:linkingAgentIdentifierValue>
        </premis:linkingAgentIdentifier>
      </premis:event>
      <premis:event>
        <premis:eventIdentifier>
          <premis:eventIdentifierType>NRI Repository Event ID</premis:eventIdentifierType>
          <premis:eventIdentifierValue>NRI-017</premis:eventIdentifierValue>
        </premis:eventIdentifier>
        <premis:eventType>virus check</premis:eventType>
        <premis:eventDateTime>2019-07-04T22:46:07.773391+00:00</premis:eventDateTime>
        <premis:eventDetailInformation>
          <premis:eventDetail>program="ClamAV (clamd)"; version="ClamAV 0.100.3"; virusDefinitions="25500/Thu Jul  4 08:04:41 2019"</premis:eventDetail>
        </premis:eventDetailInformation>
        <premis:eventOutcomeInformation>
          <premis:eventOutcome>Pass</premis:eventOutcome>
          <premis:eventOutcomeDetail>
            <premis:eventOutcomeDetailNote/>
          </premis:eventOutcomeDetail>
        </premis:eventOutcomeInformation>
        <premis:linkingAgentIdentifier>
          <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType>
          <premis:linkingAgentIdentifierValue>NRI</premis:linkingAgentIdentifierValue>
        </premis:linkingAgentIdentifier>
      </premis:event>
      <premis:agent>
        <premis:agentIdentifier>
          <premis:agentIdentifierType>repository code</premis:agentIdentifierType>
          <premis:agentIdentifierValue>NRI</premis:agentIdentifierValue>
        </premis:agentIdentifier>
        <premis:agentName>Not a Real Institution</premis:agentName>
        <premis:agentType>organization</premis:agentType>
      </premis:agent>
    </premis:premis>
    
  3. Each premis.xml file should contain one or more premis:object, premis:event and premis:agent entity. Each entity should have its own local identifier value for linking within the file. These will be converted to Archivematica UUIDs upon import. One Object can be linked to many Events. Each Event should be linked to one Agent.

  4. Note that the premis:originalName value is what links the premis:object to the objects\bird.mp3 file. Objects are linked to Events via the premis:linkingEventIdentifierValue property.

  5. Note that the premis:eventDateTime value should be in ISO 8601 format (e.g. 2019-07-04T22:46:07.773391+00:00)

  6. Process the transfer as usual. Check the Characterize and extract metadata microservice on the Transfer tab and look at the status of the Load PREMIS events from metadata/premis.xml job to determine whether the import was successful.

Adding metadata to bags

Metadata can also be added to transfers packaged in accordance with the Library of Congress BagIt specification (zipped or unzipped). Special care needs to be taken in order to ensure that Archivematica can recognize the metadata files and process them properly.

  1. Create your metadata files. In this example, we will create a metadata.csv to add descriptive metadata to the individual objects in the bag.

    filename dc.title dc.creator dc.subject dc.subject dc.subject dc.description dc.publisher dc.date dc.type dc.format dc.source dc.rights
    data/beihai.tif Beihai, Guanxi, China, 1988 NASA/GSFC/METI/ERSDAC/ JAROS and U.S./Japan ASTER Science Team China Beihai   Beihai is a city in the south of Guangxi, People’s Republic of China. NASA Jet Propulsion Laboratory February 29, 2016 image image.tif NASA Jet Propulsion Laboratory Public domain
    data/audio/bird.mp3 14000 Caen, France - Bird in my garden Nicolas Germain field recording soundscapes radio aporee Bird singing in my garden, Caen, France, Zoom H6 Radio Aporee 2017-05-27 sound audio/mp3 Internet Archive Public domain

    Note that the filename path anticipates the structure of the bag that we will create below by including the payload directory (data) in the path. If your transfer includes subdirectories, those should be reflected in the path as well.

  2. Assemble your transfer materials. In this example, there are two objects, one of which is contained in a subdirectory, as well as the metadata directory containing a metadata.csv file.:

    to-be-transferred/
    ├── audio
    │   └── bird.mp3
    ├── beihai.tif
    └── metadata
        └── metadata.csv
    
  3. Create a bag containing the material that you would like to preserve as well as the metadata. The digital objects and the metadata directory have been added to the payload directory (data).:

    bagTest/
    ├── bag-info.txt
    ├── bagit.txt
    ├── data
    │   ├── audio
    │   │   └── bird.mp3
    │   ├── beihai.tif
    │   └── metadata
    │       └── metadata.csv
    ├── manifest-md5.txt
    └── tagmanifest-md5.txt
    

    Note that when the metadata.csv was created in step 1, above, this structure had to be anticipated. Material that you add to a bag will always be inside the payload directory, so the filename path must always begin with data.

    The bagging program has also created the required bag files.

  4. Process the transfer using the Unzipped Bag or Zipped Bag transfer type.

The METS file in the resulting AIP will include the metadata in the <dmdSec> as in the non-bagged examples above.

The above method can be used for metadata.csv files that apply metadata to a directory, for rights.csv files, and for other types of metadata that you wish to preserve.

Note

Submission documentation can also be added to a bag using the above method. The submissionDocumentation directory should be nested inside the metadata directory. See Submission documentation for more information.

Importing other types of metadata

You can include other types of metadata files in the metadata directory other than the metadata.csv and rights.csv files. For example, you may want to preserve the output of a specialized analysis tool alongside the file. You can place these files in the metadata directory.:

rightsTransfer/
├── video.mp4
└── metadata
    ├── qctools.xml.gz
    └── rights.csv

Archivematica will run various preservation tasks on this file, just as it would on the metadata.csv or rights.csv. In the METS, the file will be listed in the file section (<fileSec>) alongside any other metadata files, under the file group (fileGrp) usage heading metadata.

<mets:fileSec>
  <mets:fileGrp USE="metadata">
    <mets:file GROUPID="Group-0befdb64-c512-4dd2-98c7-16a5a312daeb" ID="file-0befdb64-c512-4dd2-98c7-16a5a312daeb" ADMID="amdSec_3">
      <mets:FLocat xlink:href="objects/metadata/transfers/other-md-5f6bbf43-64b1-4bed-9296-dcf458f6db0d/qctools.xml.qz" LOCTYPE="OTHER" OTHERLOCTYPE="SYSTEM"/>
    </mets:file>
    <mets:file GROUPID="Group-6852937b-cd7e-4871-ac6e-564e4e14309e" ID="file-6852937b-cd7e-4871-ac6e-564e4e14309e" ADMID="amdSec_4">
      <mets:FLocat xlink:href="objects/metadata/transfers/other-md-5f6bbf43-64b1-4bed-9296-dcf458f6db0d/rights.csv" LOCTYPE="OTHER" OTHERLOCTYPE="SYSTEM"/>
    </mets:file>
  </mets:fileGrp>
</mets:fileSec>

Importing structural metadata with mets_structmap.xml

The files transferred to Archivematica may have a coherent hierarchical or logical structure (e.g. sections of a book or parts of an audio file) that has already been described in a METS structural map. Users can import these by including a file called mets_structmap.xml in their transfer’s metadata directory. The files referenced in this structural map should be included in the transfer’s objects directory.

Archivematica will merge this structural map into the archival information package’s METS file by assigning it a unique structural map ID. It will also update the file pointers (mets:fptr) to use the UUIDs created by Archivematica for the files in its archival information packages.

Note that Archivematica requires that CONTENTIDS attributes in mets:fptr elements must be used with the objects/ prefix to correctly map files to IDs.

Example mets_structmap.xml

Using a minimal structural map example for an audio file:

<mets:mets xmlns:mets="http://www.loc.gov/METS/">
  <mets:structMap TYPE="logical">
    <mets:div TYPE="track" LABEL="Complete documentary">
      <mets:div LABEL="Introduction" ORDER="1">
        <mets:fptr FILEID="ferdinand_short_2017_01_27.mp3" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3">
          <mets:area FILEID="ferdinand_short_2017_01_27.mp3" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3" BEGIN="00:00:00" END="00:00:17" BETYPE="TIME"/>
        </mets:fptr>
      </mets:div>
      <mets:div LABEL="Outro" ORDER="2">
        <mets:fptr FILEID="ferdinand_short_2017_01_27.mp3" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3">
          <mets:area FILEID="ferdinand_short_2017_01_27.mp3" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3" BEGIN="00:00:18" END="00:01:13" BETYPE="TIME"/>
        </mets:fptr>
      </mets:div>
    </mets:div>
  </mets:structMap>
</mets:mets>

The resulting output in the Archivematica AIP METS file will be:

<mets:structMap TYPE="logical" ID="structMap_2">
  <mets:div TYPE="track" LABEL="Complete documentary">
    <mets:div LABEL="Introduction" ORDER="1">
      <mets:fptr FILEID="file-a47cee9a-7508-4189-aa21-76ab3d02e2a2" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3">
        <mets:area FILEID="file-a47cee9a-7508-4189-aa21-76ab3d02e2a2" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3" BEGIN="00:00:00" END="00:00:17" BETYPE="TIME"/>
      </mets:fptr>
    </mets:div>
    <mets:div LABEL="Outro" ORDER="2">
      <mets:fptr FILEID="file-a47cee9a-7508-4189-aa21-76ab3d02e2a2" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3">
        <mets:area FILEID="file-a47cee9a-7508-4189-aa21-76ab3d02e2a2" CONTENTIDS="objects/ferdinand_short_2017_01_27.mp3" BEGIN="00:00:18" END="00:01:13" BETYPE="TIME"/>
      </mets:fptr>
    </mets:div>
  </mets:div>
</mets:structMap>

Here is another example of a custom METS structural map for a simple book. The transfer’s objects/ directory contains all of the digital files used to compile the book (e.g. cover.jpg, inside_cover.jpg, page_01.jpg, etc.) The transfer’s metadata/ directory contains the following mets_structmap.xml file to define the structure of the book. Upon import, Archivematica will add a unique ID to the structMap element and update all the FILEID attributes to match the UUID value for these files in the Archivematica AIP.

<mets:structMap TYPE="logical">
  <mets:div TYPE="book" LABEL="How to create a hierarchical book">
    <mets:div TYPE="page" LABEL="Cover">
      <mets:fptr FILEID="cover.jpg" CONTENTIDS="objects/cover.jpg"/>
    </mets:div>
    <!-- cover -->
    <mets:div TYPE="page" LABEL="Inside cover">
      <mets:fptr FILEID="inside_cover.jpg" CONTENTIDS="objects/inside_cover.jpg"/>
    </mets:div>
    <!-- inside cover -->
    <mets:div TYPE="chapter" LABEL="Chapter 1">
      <mets:div TYPE="page" LABEL="Page 1">
        <mets:fptr FILEID="page_01.jpg" CONTENTIDS="objects/page_01.jpg"/>
      </mets:div>
      <mets:div TYPE="subchapter" LABEL="Subchapter 1.1">
        <mets:div TYPE="page" LABEL="Page 2">
          <mets:fptr FILEID="page_02.jpg" CONTENTIDS="objects/page_02.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 3">
          <mets:fptr FILEID="page_03.jpg" CONTENTIDS="objects/page_03.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 4">
          <mets:fptr FILEID="page_04.jpg" CONTENTIDS="objects/page_04.jpg"/>
        </mets:div>
      </mets:div>
      <!-- Subchapter 1.1 -->
      <mets:div TYPE="subchapter" LABEL="Subchapter 1.2">
        <mets:div TYPE="page" LABEL="Page 5">
          <mets:fptr FILEID="page_05.jpg" CONTENTIDS="objects/page_05.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 6">
          <mets:fptr FILEID="page_06.jpg" CONTENTIDS="objects/page_06.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 7">
          <mets:fptr FILEID="page_07.jpg" CONTENTIDS="objects/page_07.jpg"/>
        </mets:div>
      </mets:div>
      <!-- Subchapter 1.2 -->
    </mets:div>
    <!-- Chapter 1 -->
    <!-- Chapters 2 and 3, each with their own subchapters as in Chapter 1, omitted from this example. -->
    <mets:div TYPE="afterword" LABEL="Afterword">
      <mets:div TYPE="page" LABEL="Page 20">
        <mets:fptr FILEID="page_20.jpg" CONTENTIDS="objects/page_20.jpg"/>
      </mets:div>
    </mets:div>
    <!-- afterword -->
    <mets:div TYPE="index" LABEL="Index">
      <mets:div TYPE="page" LABEL="Index, page 1">
        <mets:fptr FILEID="index_01.jpg" CONTENTIDS="objects/index_01.jpg"/>
      </mets:div>
      <mets:div TYPE="page" LABEL="Index, page 2">
        <mets:fptr FILEID="index_02.jpg" CONTENTIDS="objects/index_02.jpg"/>
      </mets:div>
    </mets:div>
    <!-- index -->
    <mets:div TYPE="page" LABEL="Back cover">
      <mets:fptr FILEID="back_cover.jpg" CONTENTIDS="objects/back_cover.jpg"/>
    </mets:div>
    <!-- back cover -->
  </mets:div>
  <!-- book -->
</mets:structMap>
</mets:mets>
</mets:structMap>

The resulting output in the Archivematica AIP METS file will be:

<mets:structMap TYPE="logical" ID="structMap_2">
  <mets:div TYPE="book" LABEL="How to create a hierarchical book">
    <mets:div TYPE="page" LABEL="Cover">
      <mets:fptr FILEID="file-89dea0eb-663f-4c86-b2e0-4f41a7654fcd" CONTENTIDS="objects/cover.jpg"/>
    </mets:div>
    <mets:div TYPE="page" LABEL="Inside cover">
      <mets:fptr FILEID="file-fd3f32cc-eef2-4d8e-aa1c-a9ad06ac03b4" CONTENTIDS="objects/inside_cover.jpg"/>
    </mets:div>
    <mets:div TYPE="chapter" LABEL="Chapter 1">
      <mets:div TYPE="page" LABEL="Page 1">
        <mets:fptr FILEID="file-709ff24e-7594-4bae-b5fe-9be1103805fb" CONTENTIDS="objects/page_01.jpg"/>
      </mets:div>
      <mets:div TYPE="subchapter" LABEL="Subchapter 1.1">
        <mets:div TYPE="page" LABEL="Page 2">
          <mets:fptr FILEID="file-12b79f5e-853e-4767-a1f8-221540e2df63" CONTENTIDS="objects/page_02.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 3">
          <mets:fptr FILEID="file-a2c1ec4b-e165-4c67-94f1-6d63aa78df1a" CONTENTIDS="objects/page_03.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 4">
          <mets:fptr FILEID="file-cc4474e7-0640-4824-8c30-fd9309b752ca" CONTENTIDS="objects/page_04.jpg"/>
        </mets:div>
      </mets:div>
      <!-- Subchapter 1.1 -->
      <mets:div TYPE="subchapter" LABEL="Subchapter 1.2">
        <mets:div TYPE="page" LABEL="Page 5">
          <mets:fptr FILEID="file-5d19ca92-5f93-46c6-a1bd-65b3c6af8025" CONTENTIDS="objects/page_05.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 6">
          <mets:fptr FILEID="file-7f760fdd-173c-4158-a673-b8231ae30d1c" CONTENTIDS="objects/page_06.jpg"/>
        </mets:div>
        <mets:div TYPE="page" LABEL="Page 7">
          <mets:fptr FILEID="file-3db99d4e-323a-4d75-be45-74772597d560" CONTENTIDS="objects/page_07.jpg"/>
        </mets:div>
      </mets:div>
      <!-- Subchapter 1.2 -->
    </mets:div>
    <!-- Chapter 1 -->
    <!-- Chapters 2 and 3, each with their own subchapters as in Chapter 1, omitted from this example. -->
    <mets:div TYPE="afterword" LABEL="Afterword">
      <mets:div TYPE="page" LABEL="Page 20">
        <mets:fptr FILEID="file-465bb720-a801-401e-880f-49a1416cb444" CONTENTIDS="objects/page_20.jpg"/>
      </mets:div>
    </mets:div>
    <!-- afterword -->
    <mets:div TYPE="index" LABEL="Index">
      <mets:div TYPE="page" LABEL="Index, page 1">
        <mets:fptr FILEID="file-6a3be87f-a0e1-4d6f-bd39-aef8fe289542" CONTENTIDS="objects/index_01.jpg"/>
      </mets:div>
      <mets:div TYPE="page" LABEL="Index, page 2">
        <mets:fptr FILEID="file-9af8ab15-ff76-4094-8114-0e94d9245093" CONTENTIDS="objects/index_02.jpg"/>
      </mets:div>
    </mets:div>
    <!-- index -->
    <mets:div TYPE="page" LABEL="Back cover">
      <mets:fptr FILEID="file-335db20c-752f-4a94-a679-4fde4d2777f5" CONTENTIDS="objects/back_cover.jpg"/>
    </mets:div>
    <!-- back cover -->
  </mets:div>
  <!-- book -->
</mets:structMap>

Back to the top

Archivematica 1.14.1

License

Archivematica documentation by Artefactual Systems Inc. is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Creative Commons License