View on GitHub


Data Stewardship Exercise 2

This project was created for the course Data Stewardship on the TU Wien in SS2019.


This project serves as extension to Dataverse and therefore is dependent on a running instance of dataverse. When running this project it provides two functionalities/extensions to dataverse:


As mentioned in the Introduction the project serves as extension to Dataverse and therefore is dependent on a running instance of dataverse. Also some configuration (e.g. creation of workflow and registratino of application as external tool) to dataverse has to be done manually over the api of dataverse (The configuration steps are explained in the next section).
Further the following software has to be installed to compile and run the project:

Running Dataverse

Because one of the prerequisite is a running dataverse instance this section contains some steps to execute dataverse.
This section can be skipped if an running dataverse instance is already available.

Running the project

Hint: It would also be possible to simply run the code in an IDE.


To configure dataverse and our application to communicate with each other we have to modify some configurations on both sides.


To configure dataverse to establish the connection with our application we use the api.
The api is reachable over REST and therefore the curl command or a REST client can be used.


To simplify the process of creating the initial dataset for the researcher a template can be added to dataverse so the data is prefilled.


To configure the workflow extension the following commands have to be called:

Hint: If the project is running on another port the url parameter has to be modified.

After that the workflow should be registered and triggered before a Dataset is published.

External tool

To configure the export functionality the application must simply be registered as external tool.

Hint: The externalTool registration is specific to a content-type, therefore the command has to be executed multible times to enable different content-types.

After that a button Explore appears in the list of files in a dataset for each file type which has been registered.

To configure this application there can be found an file under /src/main/resources. The following configurations are important:

Parameter Description Default
dataverse.address Defines address of dataverse instance http://localhost:8080
dataverse.api.key Defines API-Key 5f965eaf-…
workflow.madmp.filename Defines filename of maDMP in dataset dmp.json
server.port Change server port 8081 Change log-level info

MaDMP - Workflow

In this section the general process of the workflow feature is described.

Process Diagram



  1. The researcher navigates to a dataverse and creates a placeholder dataset.
  2. In the next step the researcher uploads the machine actionable DMP to the placeholder dataset.
  3. Then the researcher press the Publish button
    This triggers the PrePublishDataset event and therefore a http request is send to our application.
  4. The application validates the uploaded maDMP and creates a new dataverse and datasets for the project.
    Hint: The placeholder dataset and the maDMP is deleted.
  5. Now the researcher can navigate to the single datasets and upload the files of the experiment.

MaDMP - Export

In this section the general process of the export feature is described.

Process Diagram



  1. Through the registration as external tool a button Explore appears in the file list of the created datasets. The researcher simply presses this button on the dataset which should be exported.
  2. After dataverse triggers the application over a http request. The application than generates a JSON-File and trigger the download in the browser.
  3. The downloaded file contains a dataset block which simply can be added to a maDMP.

DMP Files