Title: EPrints 3 Technical Overview
1EPrints 3 Technical Overview
- EPrints 3 Briefing
- 8th December 2006, London
2Overview
- 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
3Installation
- 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
4Installation 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
5Upgrading
- EPrints 3 is a very significant upgrade
- You will need to migrate your EP2 configuration
to EP3 - But dont worry, there is a tool to help you
migrate - install EP3 on same server as your EP2 repository
- run migration tool
- creates copy of your database and configuration
- converts them to EP3
- run EP2 and EP3 in parallel
- make sure all the changes you made to your EP2
repository are reapplied to your EP3 repository - 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
6Running an EPrints Repository
- Keep operating system patched
- Keep EPrints and plugins up to date
- Regularly back up repository data and
configuration
7Getting 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/
8Configuring Deposit Process
- Workflow flexibility
- Autocompletion options
9Workflow 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
10Workflow 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 dont need volume, number pages
11Workflow 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
12Workflow Flexibility Example XML
ltstage name"subjects"gt ltcomponent
type"FieldSubject"gt ltfield ref"subjects"
required"yes" /gt lt/componentgt ltepcif
test"userid.as_item()department maths'"gt
ltcomponent type"FieldSubject"gt ltfield
refmaths_subjects" required"yes"/gt
lt/componentgt lt/epcifgt lt/stagegt
13Autocompletion
- 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
14Autocompletion 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
15Autocompletion 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
16Autocompletion How Lookup Works
- Lookup script is passed the characters that the
depositor has typed - Must return matching results as HTML list items
ltligt J Smith (author of 6 items in this
repository) ltulgt ltli id"forvaluerelative
_name_family"gtSmithlt/ligt ltli
id"forvaluerelative_name_given"gtJlt/ligt
ltli id"forvaluerelative_id"gtjs_at_gmail.comlt/ligt
lt/ulgt lt/ligt
17Plugging 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
18Plugins Writing an Export Plugin
- 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
- Define 2 core functions
- how EPrints record maps to export record
- field mapping
- how to serialise export record into export format
19Plugins 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
20Plugins Writing an Import Plugin
- Register
- name
- what it can handle
- who can use it
- Define 2 core functions (export backwards)
- deserialise import record from import format
- map import record to eprints record
21Plugins Screen Plugins
- Drop new tools, actions and reports into the
EPrints UI
22Plugins Writing Screen Plugins
- Register
- where it appears in UI
- who can use it
- Define functionality
- for example...
23Plugins Writing Screen Plugins (2)
- New tool available to users
- eg. RAE utilities
User tools list
24Plugins Writing Screen Plugins (2)
- New action to be invoked on an eprint
- eg. scan documents for viruses
Eprint actions list for depositors (there is also
an actions list for editors)
25Plugins Writing Screen Plugins (3)
- New report about an eprint
- eg. show download statistics
Eprint tabs list (each tab is a single screen
plugin)
26Plugins 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
27Plugins Writing Input Component Plugins
- Define 2 core functions
- how to render input control(s)
- how to update the record based on what the user
entered - Optionally define
- how to check the user input is valid
28EPrints 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...
29EPrints 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
30EPrints 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
31Contributing to EPrints 3
- files.eprints.org
- for the latest
- plugins
- authority lists and autocomplete lookup scripts
- subject trees
- translations
- themes (skins)
- other tools, utilities