Giter Club home page Giter Club logo

kitdm-bagit-tool's Introduction

KIT Data Manager BagIt Tool

The KIT Data Manager BagIt Tool allows to export and import BagIt bags following the recommendations provided by the Research Data Repository Interoperability Working Group (RDRIWG) as part of the Research Data Alliance.

It allows to export digital objects stored in KIT Data Manager-based repository platforms into bags compliant to the BagIt specification. Furthermore, DataCite metadata is added to each bag as proposed by the RDRIWG.

The import functionality of the KIT Data Manager BagIt Tool supports the import of all bags created following the RDRIWG recommendations. If the bag was not exported from a KIT Data Manager instance, the contained DataCite metadata is used to collect minimal base metadata for the imported digital object.

How to build

In order to build and use the KIT Data Manager BagIt Tool you'll need:

  • Java SE Development Kit 8 or higher
  • Apache Maven 3.3+
  • KIT Data Manager 1.5+

After obtaining the sources change to the folder where the sources are located and call:

user@localhost:/home/user/kitdm-bagit-tool$ mvn assembly:assembly
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building KITDM-BagIt-Tool <VERSION>
[INFO] ------------------------------------------------------------------------
[...]
user@localhost:/home/user/kitdm-bagit-tool$

As soon as the build has finished, you'll find the command line tool at ./KITDM-BagIt-Tool-<VERSION>. Change to this folder and make the script 'bin/BagItTool' executable by calling:

user@localhost:/home/user/kitdm-bagit-tool$chmod +x bin/BagItTool
user@localhost:/home/user/kitdm-bagit-tool$

How to use

In order to make the BagIt Tool as slim as possible, it does not contain any KIT Data Manager libraries. The required dependencies are taken directly from the local KIT Data Manager installation. Therefore, the KIT Data Manager installation directory has to be assigned to the variable KIT_DATA_MANAGER_LOCATION located at the beginning of bin/BagItTool.

Afterwards, the BagIt Tool can be invoked as follows:

user@localhost:/home/user/kitdm-bagit-tool$ cd KITDM-BagIt-Tool-<VERSION>
user@localhost:/home/user/kitdm-bagit-tool/KITDM-BagIt-Tool-<VERSION>$ ./bin/BagItTool

Usage: RepoInteropTool [options] [command] [command options]
  Commands:
    export      Performs the export of a digital object from a local repository.
      Usage: export [options]
[...]
user@localhost:/home/user/kitdm-bagit-tool/KITDM-BagIt-Tool-<VERSION>$

The output of this call will provide you with usage information. Please read them carefully before starting your first export/import.

Sample Invocations

./bin/BagItTool export -i 46a2bb19-8964-4d2e-83f8-b0fd514e311d -o theBag/

Export the digital object with identifier 46a2bb19-8964-4d2e-83f8-b0fd514e311d to a bag located at ./theBag

./bin/BagItTool import -i 159 -s theBag/ -u admin -g USERS

Import the digital object contained in ./theBag into the local repository. The resulting digital object is inserted into the investigation with identifier 159 and the ownership is set to user 'admin' and group 'USERS'.

Known Issues/Current Limitations

  • The export only contains base metadata. It does NOT include authorization information, audit events or externally stored metadata, e.g. from MetaStore.
  • Import may fail if using different KIT DM instances with different user information as source and destination platform
  • Bags can only be serialized as ZIP files
  • No DataCrate support, yet

More Information

License

The KIT Data Manager BagIt Tool is licensed under the Apache License, Version 2.0.

kitdm-bagit-tool's People

Contributors

dependabot[bot] avatar thomasjejkal avatar

Watchers

 avatar  avatar  avatar  avatar

kitdm-bagit-tool's Issues

Implement proper user mapping

In the current version it might happen that the import of a bag fails in some cases, e.g. if the digital object in the bag contains participant information and is imported into another repository instance with different users/user ids.

A solution would be trying to obtain users by their user identifier. If a user was found, replace the participant in the digital object before persisting it. Otherwise, remove the participant or control the behaviour via command line switch.

Implement proper user mapping

In the current version it might happen that the import of a bag fails in some cases, e.g. if the digital object in the bag contains participant information and is imported into another repository instance with different users/user ids.

A solution would be trying to obtain users by their user identifier. If a user was found, replace the participant in the digital object before persisting it. Otherwise, remove the participant or control the behaviour via command line switch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.