Fedora Export PROV
Goobi plugin for exporting Goobi processes to a Fedora repository for the Victoria Public Record Office

Introduction

This documentation describes the installation, configuration and use of the Fedora Export Plugin in Goobi workflow.
Details
Text
Identifier
prov_export_fedora
Licence
GPL 2.0 or newer
Compatibility
Goobi workflow 3.0 and newer
Documentation date
18.12.2019

Configuration

The configuration is done via the configuration file intranda_export_fedora.xml and can be adapted during operation.
1
<config_plugin>
2
<config>
3
<!-- which workflow to use for (can be more then one, otherwise use *) -->
4
<workflow>*</workflow>
5
6
<!-- general Fedora configuration data -->
7
<fedoraUrl>http://localhost:8080/fedora/rest</fedoraUrl>
8
<useVersioning>false</useVersioning>
9
<!-- Basic HTTP authentication user name (optional) -->
10
<userName>foo</userName>
11
<!-- Basic HTTP authentication password (optional) -->
12
<password>bar</password>
13
14
<!-- which content to ingest -->
15
<ingestMaster>true</ingestMaster>
16
<ingestMedia>false</ingestMedia>
17
<ingestJp2>false</ingestJp2>
18
<ingestPdf>false</ingestPdf>
19
20
<!-- command for specific property including the parameter for Barcode and for the unit-or-item-type -->
21
<externalLinkContent>
22
PREFIX crm: &lt;http://www.cidoc-crm.org/cidoc-crm/&gt;
23
INSERT { &lt;&gt; crm:P70_documents &lt;http://example.com/code=[UNIT_ITEM_CODE]&amp;entityId=[BARCODE]#&gt; }
24
WHERE { }
25
</externalLinkContent>
26
27
<!-- command for specific property including the parameter for PID -->
28
<externalLinkContentPID>
29
PREFIX crm:&lt;http://www.cidoc-crm.org/cidoc-crm/&gt;
30
INSERT { &lt;&gt; crm:P70_documents &lt;http://example.com/resolver?pid=/[PID]#&gt; }
31
WHERE { }
32
</externalLinkContentPID>
33
34
<!-- command for specific property including the parameter for full_partial -->
35
<fullPartialContent>
36
PREFIX crm: &lt;http://www.cidoc-crm.org/cidoc-crm/&gt;
37
INSERT { &lt;&gt; crm:P3_has_note "[FULL_PARTIAL]" }
38
WHERE { }
39
</fullPartialContent>
40
41
<!-- Property containing the public release date (optional)-->
42
<availableMetadataQuery>
43
PREFIX dcterms: &lt;http://purl.org/dc/terms/&gt;
44
INSERT {
45
&lt;&gt; dcterms:available "[DATE_AVAILABLE]" .
46
}
47
WHERE { }
48
</availableMetadataQuery>
49
50
<!-- Properties query for the /images container -->
51
<imagesContainerMetadataQuery>
52
PREFIX ldp: &lt;http://www.w3.org/ns/ldp#&gt;
53
PREFIX pcdm: &lt;http://pcdm.org/models#&gt;
54
INSERT {
55
&lt;&gt; a ldp:DirectContainer\,pcdm:Object ;
56
ldp:membershipResource &lt;[URL]&gt; ;
57
ldp:hasMemberRelation pcdm:hasMember .
58
}
59
WHERE { }
60
</imagesContainerMetadataQuery>
61
62
<!-- Properties query for the /files container -->
63
<filesContainerMetadataQuery>
64
PREFIX ldp: &lt;http://www.w3.org/ns/ldp#&gt;
65
PREFIX pcdm: &lt;http://pcdm.org/models#&gt;
66
INSERT {
67
&lt;&gt; a ldp:DirectContainer\,pcdm:Object ;
68
ldp:membershipResource &lt;[URL]&gt; ;
69
ldp:hasMemberRelation pcdm:hasFile .
70
}
71
WHERE { }
72
</filesContainerMetadataQuery>
73
74
<!-- Properties query for the /fcr:metadata part of a file -->
75
<imageFileMetadataQuery>
76
PREFIX exif: &lt;https://www.w3.org/2003/12/exif/ns#&gt;
77
INSERT {
78
&lt;&gt; exif:imageLength [HEIGHT] ;
79
exif:imageWidth [WIDTH] .
80
}
81
WHERE { }
82
</imageFileMetadataQuery>
83
84
</config>
85
86
<config>
87
<!-- which workflow to use for (can be more then one, otherwise use *) -->
88
<workflow>My_special_workflow</workflow>
89
...
90
</config>
91
</config_plugin>
Copied!
Parameter
Erläuterung
fedoraUrl
REST Endpoint of the Fedora application
useVersioning
If true, the versioning of Fedora is used. In this case, each time the export step is executed, a new version of the process is created in the repository. The default value is true.
userName, password
Optional Basic HTTP Authentication. Both values must be set for authentication to take place.
ingestMaster
If true is set, the master images of the operation are exported. The default value is true.
ingestMedia
If true is set, the derivatives of the transaction are exported. The default value is true.
ingestJp2
If true, the JPEG2000 images of the operation are exported to the /media subcontainer. The default value is true.
ingestPdf
If true, the PDFs of the operation are exported to the /media subcontainer. The default value is true.
ingestMetsFile
If true is set, a METS/MODS file is created and exported to the container. Default value is true.
exportMetsFile
If true is set, a METS/MODS file is created and written to the usual export folder (e.g. /hotfolder). Default value is true.
externalLinkContent
External URL using a 10-character barcode and the unit item code.
externalLinkContentPID
External URL using a 36-character PID.
fullPartialContent
availableMetadataQuery
Optional SPARQL query to add the publication date to the root container attribute of the plant. The process property available must be set for this.
imagesContainerMetadataQuery
Optional SPARQL query to add additional attributes and links to the /images container.
filesContainerMetadataQuery
Optional SPARQL query to add additional attributes and links to the /files container.
imageFileMetadataQuery
Optional SPARQL query to write additional attributes for all image files in the repository (under e.g. ../00000001.tif/fcr:metadata).
The block config is repeatable and can define different metadata in different projects. The workflow sub-element is used to check whether the current block is to be used for the current step. The system checks whether there is an entry that contains both the workflow name and the current step. If this is not the case, the block is used with <workflow>*</workflow>.

Usage

An export step must be configured:
  • Export DMS
  • Automatic task
  • Plugin for step: FedoraExport
When the step is executed, the Goobi process is exported (in the same way as it is exported to the file system) to the configured Fedora Repository, taking into account the configuration (see above).
The following process properties are used to create container URLs or additional container attributes (and are mandatory):
  • barcode (containing either a 10-character barcode or a 36-character PID)
  • unit_Item_code (only mandatory when using a 10-digit barcode)
  • full_partial
The process data can then be retrieved from the repository using the following URL pattern:
1
http(s)://<Fedora REST endpoint>/records/<barcode.substring(0,4)>/<barcode.sunstring(4,8)>/<barcode.substring(8,10)>/
Copied!

Examples of URLs after successful ingest to Fedora

Example using a barcode (barcode=“barcode123”):

Main container for the pictures

Container for the master images

Containers for JP2 derivatives

Example using a PID (barcode=“DB0027DB-F83B-11E9-AE98-A392051B17E6”):

Main container for the pictures

Container for the master images

Containers for JP2 derivatives