Stream: troubleshooting

Topic: Migration API details on Syntax and keywords


view this post on Zulip Daniel (Feb 26 2026 at 16:45):

Hello everyone,

Currently, we have installed dataverse. Now, we want to migrate data from our old repository, an old geonetwork instance. One metadata instance can be exported from geonetwork in xml and rdf format. However, the rdf file is not properply strucutured for a parsing programm.

In the section 'Dataset Migration API' I found an overview of how the migration can be done and a json-ld example. However, in order to write a programm that translates my xml data into this json-ld format I would need a more detailed description of each possible keyword and overall syntax of such a migrating json-ld file.
I am not much familiar with all these scientific schemes and metadata-standards. I looked up some guides for example the one by openarchives.org. But there is so much information I dont need and references to other guides that I am honestly confused whether I am actually on the right track here.
My goal would be to get a clear documentation on how I can translate a Metadata property (for example bounding box for geospatial data) into this migration json-ld format.
We also consider transfering each metadata value one by one using single api call but then there is again the struggle to find for each value the right api-call.

I hope my question became clear. I'd be grateful for any advice.
Thanks in advance
Daniel

view this post on Zulip Philip Durbin ๐Ÿš€ (Feb 26 2026 at 16:56):

@Daniel hi! Welcome! Thanks for installing Dataverse!

One quick thought for you... what if to start you only populate the fields in the dataset-migrate.jsonld file mentioned here: https://guides.dataverse.org/en/6.9/developers/dataset-migration-api.html#start-migrating-a-dataset-into-a-dataverse-collection

view this post on Zulip Philip Durbin ๐Ÿš€ (Feb 26 2026 at 16:56):

These fields:

{
"citation:depositor": "Admin, Dataverse",
"title": "Test Dataset",
"socialscience:collectionMode": [
  "demonstration"
],
"subject": "Computer and Information Science",
"geospatial:geographicCoverage": [
  {
    "geospatial:otherGeographicCoverage": "Cambridge"
  },
  {
    "geospatial:otherGeographicCoverage": "Massachusetts"
  }
],
"author": {
  "citation:authorName": "Admin, Dataverse",
  "citation:authorAffiliation": "GDCC"
},
"kindOfData": "demonstration data",
"citation:keyword": [
  {
    "citation:keywordValue": "first keyword"
  },
  {
    "citation:keywordValue": "second keyword"
  }
],
"dateOfDeposit": "2020-10-08",
"citation:distributor": {
  "citation:distributorName": "Demo Dataverse Repository",
  "citation:distributorAffiliation": "Dataverse Community",
  "citation:distributorAbbreviation": "GDCC",
  "citation:distributorURL": "https://dataverse.org/global-dataverse-community-consortium"
},
"citation:datasetContact": {
"citation:datasetContactName": "Admin, Dataverse",
"citation:datasetContactAffiliation": "GDCC",
"citation:datasetContactEmail": "admin@demo.dataverse.org"
},
"citation:dsDescription": {
  "citation:dsDescriptionValue": "A short description"
},
"@id": "doi:10.33564/FK27U7YBV",
"schema:version": "1.0",
"schema:license": "http://creativecommons.org/publicdomain/zero/1.0",
"schema:datePublished": "2021-07-21",
"dvcore:fileTermsOfAccess": {
"dvcore:fileRequestAccess": false
},
"@context": {
  "author": "http://purl.org/dc/terms/creator",
  "dateOfDeposit": "http://purl.org/dc/terms/dateSubmitted",
  "subject": "http://purl.org/dc/terms/subject",
  "title": "http://purl.org/dc/terms/title",
  "citation": "https://dataverse.org/schema/citation/",
  "dvcore": "https://dataverse.org/schema/core#",
  "schema": "http://schema.org/",
  "geospatial": "dataverse.siteUrl/schema/geospatial#",
  "socialscience": "dataverse.siteUrl/schema/socialscience#",
  "kindOfData": "http://rdf-vocabulary.ddialliance.org/discovery#kindOfData"
  }
}

view this post on Zulip Philip Durbin ๐Ÿš€ (Feb 26 2026 at 16:57):

My thought is that you could start with a smaller target, a smaller number of fields, before proceeding to more exotic fields, if that makes sense. :smile:

view this post on Zulip Daniel (Feb 27 2026 at 11:07):

Thank you for your warm welcome and your tip.
My question was also about where to look for the right syntax and keyword describtions.
But I figured out that I can create an example data record with all fields I need and export it to jsonld. Then I can at least figure out the keywords I need.

view this post on Zulip Philip Durbin ๐Ÿš€ (Feb 27 2026 at 11:51):

Right, makes sense. It sounds like we should write more documentation. Do you mind opening an issue about this over at https://github.com/IQSS/dataverse/issues ?

view this post on Zulip Philip Durbin ๐Ÿš€ (Feb 27 2026 at 12:03):

As far as I know, you can populate any metadata field on the Dataverse side.

I believe you want to look at the termURI column here, for example: https://github.com/IQSS/dataverse/blob/v6.9/scripts/api/data/metadatablocks/citation.tsv

termURI is what goes in @context. Like this, for example:

"author": "http://purl.org/dc/terms/creator",

But, please observe this:

"You also need to replace the dataverse.siteUrl in the json-ld @context with your current Dataverse site URL. This is necessary to define a local URI for metadata terms originating from community metadata blocks (in the case of the example file, from the Social Sciences and Humanities and Geospatial blocks)." -- https://guides.dataverse.org/en/6.9/developers/dataset-migration-api.html#start-migrating-a-dataset-into-a-dataverse-collection

It's confusing. We need better docs! :sweat_smile:

view this post on Zulip Daniel (Mar 04 2026 at 15:24):

Yeah, I can create an issue the following days. Can I also use issues to create recommendations for feature? That is, I noticed when uploading a custom metadatablock one also has to create a .properties file with in my opinion could also be handled by a script, because its content directly results from the corresponding .tsv file

view this post on Zulip Philip Durbin ๐Ÿš€ (Mar 04 2026 at 15:29):

Yes! A script would be great! When you create an issue, you can click the "feature request" template.


Last updated: Apr 03 2026 at 06:08 UTC