Curation tasks and helper scripts for the CGSpace institutional repository.
Go to file
Alan Orth f3ab89f7a1
CountryCodeTagger.java: Port to DSpace 6
We need to use the new DSpace 6 service API. Also, the way we read
task properties changes because of the configuration changes.

See: https://wiki.lyrasis.org/display/DSDOC6x/Curation+System
See: https://wiki.lyrasis.org/display/DSDOC6x/Configuration+Reference
2020-08-05 12:28:37 +03:00
.idea Add .idea 2020-08-04 15:34:31 +03:00
src/main CountryCodeTagger.java: Port to DSpace 6 2020-08-05 12:28:37 +03:00
.gitignore .gitignore: Add target and others 2020-08-04 15:32:34 +03:00
.travis.yml Add TravisCI support 2020-08-03 14:29:17 +03:00
COPYING Initial commit 2020-07-31 21:40:15 +03:00
pom.xml pom.xml: Bump dependencies for DSpace 6 2020-08-04 15:37:39 +03:00
README.md README.md: Use badge from ILRI repository 2020-08-03 14:47:10 +03:00

DSpace Curation Tasks Build Status

Metadata curation tasks used on the CGSpace institutional repository:

  • CountryCodeTagger: add ISO 3166-1 Alpha2 country codes to items based on their existing country metadata

Tested on DSpace 5.8. Read more about the DSpace curation system.

Build and Install

Integrate into DSpace Build

To use these curation tasks in a DSpace project add the following dependency to dspace/modules/additions/pom.xml:

<dependency>
  <groupId>io.github.ilri.cgspace</groupId>
  <artifactId>dspace-curation-tasks</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

The jar will be copied to all DSpace applications.

Manual Build and Install

To build the standalone jar:

$ mvn package

Copy the resulting jar to the DSpace lib directory:

$ cp target/dspace-curation-tasks-1.0-SNAPSHOT.jar ~/dspace/lib/dspace-curation-tasks-1.0-SNAPSHOT.jar

Configuration

Add the curation task to DSpace's config/modules/curate.cfg:

plugin.named.org.dspace.curate.CurationTask = \
...
    io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger \
    io.github.ilri.cgspace.ctasks.CountryCodeTagger = countrycodetagger.force

And then add a configuration file for the task in config/modules/countrycodetagger.cfg:

# name of the field containing ISO 3166-1 country names
iso3166.field = cg.coverage.country

# name of the field containing ISO 3166-1 Alpha2 country codes
iso3166-alpha2.field = cg.coverage.iso3166-alpha2

# only add country codes if an item doesn't have any (default false)
#forceupdate = false

Note: DSpace's curation system supports "profiles" where you can use the same task with different options, for example above I have a normal country code tagger and a "force" variant. To use the "force" variant you create a new configuration file with the overridden options in config/modules/countrycodetagger.force.cfg. The "force" profile clears all existing country codes and updates everything.

Invocation

Once the jar is installed and you have added appropriate configuration in ~/dspace/config/modules:

$ ~/dspace/bin/dspace curate -t countrycodetagger -i 10568/3 -r - -l 500 -s object

Note: it is very important to set the cache limit (-l) and the database transaction scope to something sensible (object) if you're curating a community or collection with more than a few hundred items.

Notes

This project was initially created according to the Maven Getting Started Guide:

$ mvn -B archetype:generate -DgroupId=io.github.ilri.cgspace -DartifactId=dspace-curation-tasks -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4

TODO

  • Make sure this doesn't work on items in the workflow
  • Port to DSpace 6
    • Remember to bump Gson version!
  • Check for existence of metadata field before trying to add metadata
  • Add tests

License

This work is licensed under the GPLv3.

This repository contains data from the Debian iso-codes project project, which is licensed under the GNU Lesser General Public License v2.1.