eprints 3 technical overview eprints 3 briefing 8 th december 2006, london
TRANSCRIPT
EPrints 3 Technical Overview
EPrints 3 Briefing8th December 2006, London
Overview
Getting EPrints 3 up and running Installation Upgrading
Configuring deposit process workflow autocompletion
Plugging in functionality import, export, screen, input component
New XML Format Improved indexer Web service interface
Installation
Download from releases section of files.eprints.org
Platform requirements Unix (Red Hat Linux recommended)
Core software requirements apache 2, mod_perl, perl, mysql
Expertise requirements basic webmaster skills some Unix experience confident editing text and XML configuration
files
Installation: Run epadmin Tool
Walks you through creating an EPrints 3 repository
core configuration hostname, repository name
database configuration creates database creates EPrints 3 tables in database creates an initial user account
username, user type, password creates repository Web pages
Open repository homepage in browser & log in
Upgrading
EPrints 3 is a very significant upgrade You will need to migrate your EP2 configuration to
EP3 But don’t worry, there is a tool to help you migrate
1. install EP3 on same server as your EP2 repository2. run migration tool
creates copy of your database and configuration converts them to EP3
3. run EP2 and EP3 in parallel make sure all the changes you made to your EP2
repository are reapplied to your EP3 repository4. switch to EP3 as your production repository
Vanilla repositories will migrate with little or no intervention
More advanced repository configurations will need some manual inspection
Running an EPrints Repository
Keep operating system patched Keep EPrints and plugins up to date Regularly back up repository data
and configuration
Getting Help with Installation/Migration
Step by step instructions wiki.eprints.org
Technical mailing list www.eprints.org/software/
EPrints Services Build and host Assess and manage migration process www.eprints.org/services/
Configuring Deposit Process
Workflow flexibility Autocompletion options
Workflow Flexibility
EP3 workflows should feel familiar defined using XML divided into stages (pages)
More flexible group related fields together file upload can appear at any stage in
workflow fields or groups can be collapsed by
default text can be inserted into the workflow
e.g. additional instructions, notices
Workflow Flexibility: Flow Control
EP3 also supports conditional workflow
eg. workflow variations for different types of eprint different sorts of users different kinds of journals different publication stages
eg. if unpublished don’t need volume, number pages
Workflow Flexibility: Example
A department within your institution wants to use its own classification scheme in addition to your default scheme
Add new scheme to workflow with conditional
check which department the depositor comes from
if the department matches “maths” then include the additional classification scheme in the workflow
Workflow Flexibility: Example XML
<stage name="subjects">
<component type="Field::Subject"> <field ref="subjects" required="yes" /> </component>
<epc:if test="userid.as_item(){department} = ‘maths'"> <component type="Field::Subject"> <field ref=“maths_subjects" required="yes"/> </component> </epc:if>
</stage>
Autocompletion
EPrints 3 autocompletes author names journal title
also fills in publisher and ISSN ISSN
also fills in journal title and publisher conference title
also fills in location and date
Where are these being looked up? existing eprints in the repository the more populated your repository, the more
suggestions users will see
Autocompletion: Custom Lookups
Provide a text file (authority list) a list of names, titles, ... additional display information eg. ROMEO authority list
list of journal titles publisher policy also displayed community will share at files.eprints.org
Write a custom lookup script to query external resource/service eg. staff database eg. Library of Congress name authority service
Autocompletion: Workflow
Autocompletion can be combined with workflow conditionals
eg. if user is from School of Medicine, look up grant name (and id) in MRC database
eg. if user is from Computer Science department look up authors in ACM authority list
Autocompletion: How Lookup Works
Lookup script is passed the characters that the depositor has typed
Must return matching results as HTML list items
<li> J Smith (author of 6 items in this repository)
<ul> <li id="for:value:relative:_name_family">Smith</li> <li id="for:value:relative:_name_given">J</li> <li id="for:value:relative:_id">[email protected]</li>
</ul></li>
Plugging In Functionality
EPrints 3 functionality can be extended with plugins
import and export get data in and out of the repository
interface screens add new tools and reports to UI
input components add new ways for users to enter data
Key design goals Easy to build
minimal coding Easy to share
drop in and go distribute independently of EPrints
Plugins: Writing an Export Plugin
1. Register name
will appear on search results page what it can handle
lists of records or single records (or both) type of record (eprint, user, subject...)
who can use it
2. Define 2 core functions how EPrints record maps to export record
field mapping how to serialise export record into export
format
Plugins: Import Plugins
Reading input can be harder than writing output
detect and handle errors in input But there are many existing libraries
available for parsing a wide variety of file formats
Plugins: Writing an Import Plugin
1. Register name what it can handle who can use it
2. Define 2 core functions (export backwards) deserialise import record from import
format map import record to eprints record
Plugins: Screen Plugins
Drop new tools, actions and reports into the EPrints UI
Plugins: Writing Screen Plugins
1. Register where it appears in UI who can use it
2. Define functionality for example...
Plugins: Writing Screen Plugins (2)
New tool available to users eg. RAE utilities
User tools list
Plugins: Writing Screen Plugins (2)
Eprint actions list for depositors (there is also
an actions list for editors)
New action to be invoked on an eprint eg. scan documents for viruses
Plugins: Writing Screen Plugins (3)
Eprint tabs list (each tab is a single screen
plugin)
New report about an eprint eg. show download statistics
Plugins: Input Component Plugins
Drop custom input controls into the deposit workflow
eg. pick latitude and longitude coordinates from a map
eg. draw a molecule in an applet
Plugins: Writing Input Component Plugins
1. Define 2 core functions how to render input control(s) how to update the record based on
what the user entered
2. Optionally define how to check the user input is valid
EPrints 3 XML Format
New XML format for import and export Much more succinct than EP2 format Embedded documents
document metadata alongside eprint metadata files themselves can be included inline
base64 encoded export your whole repository as 1 single XML file
All record types can be imported/exported in this format
eprints, users, subjects, history, access log...
EPrints 3 Indexer
EP2 indexer used the Forth bridge model
index everything then start again EP3 introduces index queue
on-demand indexing much less resource intensive!
queues individual metadata fields or files to be indexed rather than entire records
whenever a record changes, the values that got changed are added to the queue
Deposits are indexed sooner
EPrints 3 Web Service
Deposit, retrieve, search and remove records remotely
Currently not part of EPrints 3 core development team working on security
model ensure actions only carried out by
authorised users
testing with various platforms available on request
Contributing to EPrints 3
files.eprints.org for the latest
plugins authority lists and autocomplete lookup scripts subject trees translations themes (skins) other tools, utilities