📖

DataverseのデータをArchivematicaで処理する

2025/01/21に公開

概要

DataverseのデータをArchivematicaで処理する流れを確認しましたので、備忘録です。

背景

ArchivematicaではDataverseのデータを入力する機能を提供しています。

https://www.archivematica.org/en/docs/archivematica-1.17/user-manual/transfer/dataverse/

本機能について、以下の講演会で教えていただいたので、実際に試してみました。

https://www.kulib.kyoto-u.ac.jp/bulletin/1402322

Dataverse

以下の記事でも使用したDemo Dataverseを使用します。

https://zenn.dev/nakamura196/articles/5868ec4975eb42

以下のデータをアップロードしました。

https://demo.dataverse.org/dataset.xhtml?persistentId=doi:10.70122/FK2/IHQZL3

ここから画像データそのものと、JSONデータをダウンロードします。Metadataタブに移動し、Export MetadataからJSONを選択します。

以下はJSONファイルの一部ですが、metadataBlocksにメタデータ、filesに画像ファイルの情報が記載されています。

{
  "metadataBlocks": {
    "citation": {
      "displayName": "Citation Metadata",
      "name": "citation",
      "fields": [
        {
          "typeName": "title",
          "multiple": false,
          "typeClass": "primitive",
          "value": "nakamura196"
        },
        {
          "typeName": "author",
          "multiple": true,
          "typeClass": "compound",
          "value": [
            {
              "authorName": {
                "typeName": "authorName",
                "multiple": false,
                "typeClass": "primitive",
                "value": "Nakamura, Satoru"
              },
              "authorAffiliation": {
                "typeName": "authorAffiliation",
                "multiple": false,
                "typeClass": "primitive",
                "value": "https://ror.org/057zh3y96",
                "expandedvalue": {
                  "scheme": "http://www.grid.ac/ontology/",
                  "termName": "The University of Tokyo",
                  "@type": "https://schema.org/Organization"
                }
              }
            }
          ]
        },
        {
          "typeName": "datasetContact",
          "multiple": true,
          "typeClass": "compound",
          "value": [
            {
              "datasetContactName": {
                "typeName": "datasetContactName",
                "multiple": false,
                "typeClass": "primitive",
                "value": "Nakamura, Satoru"
              },
              "datasetContactEmail": {
                "typeName": "datasetContactEmail",
                "multiple": false,
                "typeClass": "primitive",
                "value": "na.kamura.1263@gmail.com"
              }
            }
          ]
        },
        {
          "typeName": "dsDescription",
          "multiple": true,
          "typeClass": "compound",
          "value": [
            {
              "dsDescriptionValue": {
                "typeName": "dsDescriptionValue",
                "multiple": false,
                "typeClass": "primitive",
                "value": "My First Dataset"
              }
            }
          ]
        },
        {
          "typeName": "subject",
          "multiple": true,
          "typeClass": "controlledVocabulary",
          "value": [
            "Arts and Humanities"
          ]
        },
        {
          "typeName": "depositor",
          "multiple": false,
          "typeClass": "primitive",
          "value": "Nakamura, Satoru"
        },
        {
          "typeName": "dateOfDeposit",
          "multiple": false,
          "typeClass": "primitive",
          "value": "2025-01-19"
        }
      ]
    }
  },
  "files": [
    {
      "label": "nakamura196.jpg",
      "restricted": false,
      "version": 1,
      "datasetVersionId": 281093,
      "dataFile": {
        "id": 2514724,
        "persistentId": "doi:10.70122/FK2/IHQZL3/B7JVQS",
        "pidURL": "https://doi.org/10.70122/FK2/IHQZL3/B7JVQS",
        "filename": "nakamura196.jpg",
        "contentType": "image/jpeg",
        "friendlyType": "JPEG Image",
        "filesize": 53656,
        "storageIdentifier": "s3://demo-dataverse-org:1948154820d-63733533ea7c",
        "rootDataFileId": -1,
        "md5": "72f08a8b07bacbe3b5cf021910fd26dc",
        "checksum": {
          "type": "MD5",
          "value": "72f08a8b07bacbe3b5cf021910fd26dc"
        },
        "tabularData": false,
        "creationDate": "2025-01-19",
        "publicationDate": "2025-01-19",
        "fileAccessRequest": true
      }
    }
  ]
}

データの準備

Dataverseのサンプルデータは以下に格納されています。

https://github.com/artefactual/archivematica-sampledata/tree/master/SampleTransfers/Dataverse

metadataフォルダに、DataverseからダウンロードしたJSONファイルをdataset.jsonという名前で格納してみます。具体的には、以下です。

ここでは、以下の記事を参考に、GakuNin RDMから接続したmdx.jpのオブジェクトストレージにデータを用意し、同オブジェクトストレージに接続したArchivematicaから処理を行います。

https://zenn.dev/nakamura196/articles/bffa205c07489b

Archivematicaでの処理

Transfer typeに「Dataverse」を設定し、先ほど作成したフォルダを選択し、処理を開始します。

結果、以下のようにmetsファイルが作成されました。データの登録方法の問題か、バグかはわかりませんが、dmdSec_1が2つ作成されてしまいましたが、dataset.jsonの内容がDDIの形式で記述されました。

<mets:mets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mets="http://www.loc.gov/METS/" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/version1121/mets.xsd">
  <mets:metsHdr CREATEDATE="2025-01-21T07:28:13" />
  <mets:dmdSec ID="dmdSec_1" CREATED="2025-01-21T07:27:57" STATUS="original">
    <mets:mdWrap MDTYPE="DDI">
      <mets:xmlData>
        <ddi:codebook xmlns:ddi="http://www.icpsr.umich.edu/DDI" version="2.5" xsi:schemaLocation="http://www.ddi:codebook:2_5 http://www.ddialliance.org/Specification/DDI-Codebook/2.5/XMLSchema/codebook.xsd">
          <ddi:stdyDscr>
            <ddi:citation>
              <ddi:titlStmt>
                <ddi:titl>nakamura196</ddi:titl>
                <ddi:IDNo agency="doi">https://doi.org/10.70122/FK2/IHQZL3</ddi:IDNo>
              </ddi:titlStmt>
              <ddi:rspStmt>
                <ddi:AuthEnty affiliation="https://ror.org/057zh3y96">Nakamura, Satoru</ddi:AuthEnty>
              </ddi:rspStmt>
              <ddi:distStmt>
                <ddi:distrbtr>Demo Dataverse</ddi:distrbtr>
              </ddi:distStmt>
              <ddi:verStmt>
                <ddi:version date="2025-01-20T01:30:23Z" type="RELEASED">1.0</ddi:version>
              </ddi:verStmt>
            </ddi:citation>
            <ddi:dataAccs>
              <ddi:useStmt>
                <ddi:restrctn />
              </ddi:useStmt>
            </ddi:dataAccs>
          </ddi:stdyDscr>
        </ddi:codebook>
      </mets:xmlData>
    </mets:mdWrap>
  </mets:dmdSec>
  <mets:dmdSec ID="dmdSec_1" CREATED="2025-01-21T07:27:57" STATUS="original">
    <mets:mdWrap MDTYPE="DDI">
      <mets:xmlData>
        <ddi:codebook xmlns:ddi="http://www.icpsr.umich.edu/DDI" version="2.5" xsi:schemaLocation="http://www.ddi:codebook:2_5 http://www.ddialliance.org/Specification/DDI-Codebook/2.5/XMLSchema/codebook.xsd">
          <ddi:stdyDscr>
            <ddi:citation>
              <ddi:titlStmt>
                <ddi:titl>nakamura196</ddi:titl>
                <ddi:IDNo agency="doi">https://doi.org/10.70122/FK2/IHQZL3</ddi:IDNo>
              </ddi:titlStmt>
              <ddi:rspStmt>
                <ddi:AuthEnty affiliation="https://ror.org/057zh3y96">Nakamura, Satoru</ddi:AuthEnty>
              </ddi:rspStmt>
              <ddi:distStmt>
                <ddi:distrbtr>Demo Dataverse</ddi:distrbtr>
              </ddi:distStmt>
              <ddi:verStmt>
                <ddi:version date="2025-01-20T01:30:23Z" type="RELEASED">1.0</ddi:version>
              </ddi:verStmt>
            </ddi:citation>
            <ddi:dataAccs>
              <ddi:useStmt>
                <ddi:restrctn />
              </ddi:useStmt>
            </ddi:dataAccs>
          </ddi:stdyDscr>
        </ddi:codebook>
      </mets:xmlData>
    </mets:mdWrap>
  </mets:dmdSec>
  <mets:dmdSec ID="dmdSec_2" CREATED="2025-01-21T07:27:57" STATUS="original">
    <mets:mdRef LABEL="dataset.json" xlink:href="metadata/dataset.json" MDTYPE="OTHER" LOCTYPE="OTHER" OTHERLOCTYPE="SYSTEM" />
  </mets:dmdSec>
  <mets:amdSec ID="amdSec_1">
    <mets:techMD ID="techMD_1">...</mets:techMD>
...
  </mets:amdSec>
...
</mets:mets>

まとめ

研究データの長期保存を考える上で、大変参考になる機能だと思いました。DataverseとArchivematicaの接続にあたり、参考になりましたら幸いです。

Discussion