archivematica / Issues

Issues repository for the Archivematica project
GNU Affero General Public License v3.0
16 stars 1 forks source link

Problem: Logical structmap not being created when SIP is arranged in Appraisal tab #1615

Closed sromkey closed 1 year ago

sromkey commented 1 year ago

Expected behaviour

When a transfer is sent to backlog and a SIP is arranged from there, there should be a second structMap in the METS file, labeled as "logical". If AtoM levels of description are applied in arrangement, those should be present in the structMap as well.

Current behaviour

The physical structMap is not being produced. As a result, if a DIP is uploaded to AtoM it is not reflecting the arrangement.

Your environment (version of Archivematica, operating system, other relevant details)

Ubuntu installation of 1.14 release


For Artefactual use:

Before you close this issue, you must check off the following:

sromkey commented 1 year ago

Here is what the 2 structMaps should look like when an item has been arranged (in this example, County/town/799px-Euroleague-LE_Roma_vs_Toulouse_IC-27.bmp) and AtoM levels of description applied (Series/Sub-series/File)

  <mets:structMap TYPE="physical" ID="structMap_1" LABEL="Archivematica default">
    <mets:div TYPE="Directory" LABEL="County-e5b288dc-b06b-4da0-9b02-d1ff8a58ec6e" DMDID="dmdSec_1">
      <mets:div TYPE="Directory" LABEL="objects">
        <mets:div TYPE="Directory" LABEL="metadata">
          <mets:div TYPE="Directory" LABEL="transfers">
            <mets:div TYPE="Directory" LABEL="transfer-b77e24a4-2110-4825-bfa0-7643333b92fd">
              <mets:div LABEL="directory_tree.txt" TYPE="Item">
                <mets:fptr FILEID="file-7b711ff2-8a9e-4742-9152-91e52b55ca36"/>
              </mets:div>
            </mets:div>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="submissionDocumentation">
          <mets:div TYPE="Directory" LABEL="transfer-spr-b77e24a4-2110-4825-bfa0-7643333b92fd">
            <mets:div LABEL="METS.xml" TYPE="Item">
              <mets:fptr FILEID="file-e4f72908-1620-45a9-8db5-d08fd00935ef"/>
            </mets:div>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="town">
          <mets:div LABEL="799px-Euroleague-LE_Roma_vs_Toulouse_IC-27.bmp" TYPE="Item">
            <mets:fptr FILEID="file-de709291-c391-462f-bff5-495938c6c065"/>
          </mets:div>
        </mets:div>
      </mets:div>
    </mets:div>
  </mets:structMap>
  <mets:structMap TYPE="logical" ID="structMap_dddacba8-74e0-417a-84ac-e1b52e24be9b" LABEL="Hierarchical">
    <mets:div LABEL="County-e5b288dc-b06b-4da0-9b02-d1ff8a58ec6e" DMDID="dmdSec_1">
      <mets:div TYPE="Series" LABEL="objects">
        <mets:div TYPE="Sub-series" LABEL="town">
          <mets:div LABEL="799px-Euroleague-LE_Roma_vs_Toulouse_IC-27.bmp" TYPE="File">
            <mets:fptr FILEID="file-de709291-c391-462f-bff5-495938c6c065"/>
          </mets:div>
        </mets:div>
      </mets:div>
    </mets:div>
  </mets:structMap>
replaceafill commented 1 year ago

This regression was introduced during https://github.com/artefactual/archivematica/pull/1787 where the create_mets_v2 client script was changed to rely more on the mets-reader-writer library in the generation of the AIP METS.

The mets-reader-writer is not able to parse the logical structMap element and recreates it from the files and directories contained in the physical structMap losing the metadata information from AtoM.

This is how the structMaps from Sarah's example look like after being parsed and serialized again by the mets-reader-writer:

  <mets:structMap TYPE="physical" ID="structMap_1" LABEL="Archivematica default">
    <mets:div TYPE="Directory" LABEL="County-e5b288dc-b06b-4da0-9b02-d1ff8a58ec6e" DMDID="dmdSec_1">
      <mets:div TYPE="Directory" LABEL="objects">
        <mets:div TYPE="Directory" LABEL="metadata">
          <mets:div TYPE="Directory" LABEL="transfers">
            <mets:div TYPE="Directory" LABEL="transfer-b77e24a4-2110-4825-bfa0-7643333b92fd">
              <mets:div TYPE="Item" LABEL="directory_tree.txt">
                <mets:fptr FILEID="file-7b711ff2-8a9e-4742-9152-91e52b55ca36"/>
              </mets:div>
            </mets:div>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="submissionDocumentation">
          <mets:div TYPE="Directory" LABEL="transfer-spr-b77e24a4-2110-4825-bfa0-7643333b92fd">
            <mets:div TYPE="Item" LABEL="METS.xml">
              <mets:fptr FILEID="file-e4f72908-1620-45a9-8db5-d08fd00935ef"/>
            </mets:div>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="town">
          <mets:div TYPE="Item" LABEL="799px-Euroleague-LE_Roma_vs_Toulouse_IC-27.bmp">
            <mets:fptr FILEID="file-de709291-c391-462f-bff5-495938c6c065"/>
          </mets:div>
        </mets:div>
      </mets:div>
    </mets:div>
  </mets:structMap>
  <mets:structMap TYPE="logical" ID="structMap_2" LABEL="Normative Directory Structure">
    <mets:div TYPE="Directory" LABEL="County-e5b288dc-b06b-4da0-9b02-d1ff8a58ec6e">
      <mets:div TYPE="Directory" LABEL="objects">
        <mets:div TYPE="Directory" LABEL="metadata">
          <mets:div TYPE="Directory" LABEL="transfers">
            <mets:div TYPE="Directory" LABEL="transfer-b77e24a4-2110-4825-bfa0-7643333b92fd">
              <mets:div TYPE="Item" LABEL="directory_tree.txt"/>
            </mets:div>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="submissionDocumentation">
          <mets:div TYPE="Directory" LABEL="transfer-spr-b77e24a4-2110-4825-bfa0-7643333b92fd">
            <mets:div TYPE="Item" LABEL="METS.xml"/>
          </mets:div>
        </mets:div>
        <mets:div TYPE="Directory" LABEL="town">
          <mets:div TYPE="Item" LABEL="799px-Euroleague-LE_Roma_vs_Toulouse_IC-27.bmp"/>
        </mets:div>
      </mets:div>
    </mets:div>
  </mets:structMap>
sromkey commented 1 year ago

I tested this by placing material in backlog, arranging and assigning levels of description and uploading to AtoM- all working as expected now.