PubMan Sword

This page briefly describes the SWORD Server implementation in the PubMan solution. General Information about SWORD can be found here.

Implementation
For start the SWORD functionality is directly implemented in PubMan. In future we should have a separate SWORD service for all eSciDoc solutions.

PubMan implements 3 classes for the SWORD service:
 * 1) PubManSwordServer - Processing of requests
 * 2) PubManServiceDocumentServlet - Accepting requests for the Service Document (dependent on user credentials)
 * 3) PubManDepositServlet - Accepting requests for the deposits (dependent on user credentials)

Interface
The PubMan SWORD interface is deployed within the PubMan ear, therefore one can access the above described servlets by the PubMan baseURL + the servlet path.

(Example with PubMan base url http://pubman.mpdl.mpg.de/pubman)

Service Document
http://pubman.mpdl.mpg.de/pubman/faces/sword-app/servicedocument

Request: GET with user credentials

Response:

Code 200

A servicedocument describing:
 * All open collections a user may deposit to.
 * Collection identifier (mandatory for deposit)
 * Accepted formats (mandatory for deposit)
 * The workflow of a collection

Deposit Service
http://pubman.mpdl.mpg.de/pubman/faces/sword-app/deposit?collection=collectionIdentifier

Request: Parameters to send: Example: parameter-name: Authorization parameter-value: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
 * Authorization: User credentials in the form of HTTP basic access authorization (Mandatory)
 * user credentials are to be sent base-64 encoded in the format "Basic username:password"


 * X-Packaging: Metadata format as described in the servicedocument (Mandatory)

Example: parameter-name: X-Packaging parameter-value: http://purl.org/net/sword-types/tei/peer


 * x-Verbose: true/false, sets the verbose output (Optional)
 * x-No-Op: true/false, Test deposit with no actual item deposit (Optional)

Response:

Code 201: Created
 * - Item action: Save, Submit, Release

Code 202: Accepted
 * - Item action: Save - Item action: Save, Submit

Code 203:
 * - No user credentials were provided
 * - User was not recognized

Code 403:
 * - No collection was provided - No rights to deposit to the provided collection

Code 415:
 * - Media Type not supported in PubMan - No metadata file was provided - Metadata could not be transformed into publication format

Code 400:
 * - Authentication Failure
 * - Validation Failure

Code 500:
 * - Internal Server Error

Code 413:
 * - Mediation not allowed

Plus an Atom Entry Document which contains information about the deposit:


 * The zip file may contain several files but must contain exactly one metadata file. All files not containing metadata are transformed to PubFiles and are added to the Publication item.
 * The metadatafile must have a specific file-ending: ".bib" for BibTex, ".xml" for publication (eSciDoc XML), ".enl" for EndNote and ".tei" for PEER TEI Publications
 * The item is deposited to the collection: collectionIdentifier
 * The validation of the item depends on the collection
 * The action of deposit depends on the collection

Important Information

 * File visibility will be set to public
 * File content category will be set to Publisher Version for all pdf files. Other files will get content category Supplementary Material.

Test the sword interface

 * 1) For testing the sword interface from the desktop you can use for example the poster firefox addon
 * 2) Find out for which collections you have access rights by visiting http://test-pubman.mpdl.mpg.de:8080/pubman/faces/sword-app/servicedocument
 * 3) Enter the following information in the poster
 * 3.1. URL: http://test-pubman.mpdl.mpg.de:8080/pubman/faces/sword-app/deposit?collection=YOURCOLLECTIONID
 * 3.2. Under 'Content to Send' upload the file you want to ingest (metadata file plus optional fulltext), in zip format.
 * Attention: accurate file extention for the metadata file may be necessary (e.g. .bib for BibTeX-files)
 * 3.3. Under 'Headers' enter:
 * 3.3.1. Name: Authorization Value: Basic username:pwd (Base64 encoded, e.g.: ZGVtbzpkZW1v for demo:demo ; complete entry would be: Basic ZGVtbzpkZW1v)
 * 3.3.2. Name: x-packaging Value: metadata format (check the servicedocument which are allowed, e.g. BibTex or EndNote)
 * 3.3.3. optional Name: x-verbose Value: true/false
 * 3.3.4. optional Name: x-No-Op Value: true/false
 * 1) Press the POST button