Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fix typos

...

  • apply a virus scan to item bitstreams (this will be our example below)
  • profile a collection based on format types - good for identifying format migrations
  • ensure a given set of metadata fields are present in every item, or even that they have particular values
  • call a network service to enhance/replace/normalize an itemsitem's metadata or content
  • ensure all item bitstreams are readable and their checksums agree with the ingest values

...

Wiki Markup
For CS to run a task, the code for the task must of course be included with other deployed code (to {{\[DSDOC:dspace\]/lib}}, WAR, etc) but it must also be declared and given a name. This is done via a configuration property in {{\[DSDOC:dspace\]/config/modules/curate.cfg}} as follows:

...

Wiki Markup
For many tasks, this activation configuration is all that will be required to use it. But for others, the task needs specific configuration itself. A concrete example is described below, but note that these task-specific configuration property files also reside in {{\[DSDOC:dspace\]/config/modules}}

...

Code Block
-t taskname: name of task to peformperform
-T filename: name of file containing list of tasknames
-e epersonID: (email address) will be superuser if unspecified
-i identifier: Id of object to curate. May be (1) a handle (2) a workflow Id or (3) 'all' to operate on the whole repository
-q queue: name of queue to process - -i and -q are mutually exclusive
-v emit verbose output
-r - emit reporting to standard out

...

Wiki Markup
In the XMLUI, there is a 'Curate' tab (appearing within the 'Edit  Community/Collection/Item') that exposes a drop-down list of configured tasks, with a button to 'perform' the task, or queue it for later operation (see section below). Not all activated tasks need appear in the Curate tab - you filter them by means of a configuration property. This property also permits you to assign to the task a more user-friendly name than the PluginManager _taskname_. The property resides in {{\[DSDOC:dspace\]/config/modules/curate.cfg}}:

...

When a task is selected from the drop-down list and performed, the tab displays both a phrase interpreting the 'status code' of the task execution, and the 'result' message if any has been defined. When the task has been queued, an acknowlegement acknowledgement appears instead. You may configure the words used for status codes in curate.cfg (for clarity, language localization, etc):

...

Wiki Markup
CS provides the ability to attach any number of tasks to standard DSpace workflows. Using a configuration file {{\[DSDOC:dspace\]/config/workflow-curation.xml}}, you can declaratively (without coding) wire tasks to any step in a workflow. An example:

...

Wiki Markup
The notifications use the same procedures that other workflow notifications do - namely email. There is a new email template defined for curation task use: {{\[DSDOC:dspace\]/config/emails/flowtask_notify}}. This may be language-localized or otherwise modified like any other email template.

...

The task with the taskname 'formatprofiler' (in the admin UI it is labelled labeled "Profile Bitstream Formats") examines all the bitstreams in an item and produces a table ("profile") which is assigned to the result string. It is activated by default, and is configured to display in the administrative UI. The result string has the layout:

...

The profiler will operate on any DSpace object. If the object is an item, then only that item's bitstreams are profiled; if a collection, all the bitsteams bitstreams of all the items; if a community, all the items of all the collections of the community.

...

DSpace Configuration

Wiki Markup
In {{\[DSDOC:dspace\]/config/modules/curate.cfg}}, activate the task:

...

Code Block
ui.tasknames = \
profileformats = Profile Bitstream Formats, \
requiredmetadata = Check for Required Metadata, \
vscan = Scan for Viruses

Wiki Markup
In {{\[DSDOC:dspace\]/config/modules}}, edit configuration file clamav.cfg:

...