310 likes | 332 Views
EPrints 3 Technical Overview. EPrints 3 Briefing 8 th 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
E N D
EPrints 3 Technical Overview EPrints 3 Briefing 8th 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 • 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
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">js@gmail.com</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 • 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
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 • 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
Plugins: Screen Plugins • Drop new tools, actions and reports into the EPrints UI
Plugins: Writing Screen Plugins • Register • where it appears in UI • who can use it • 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) • 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)
Plugins: Writing Screen Plugins (3) • New report about an eprint • eg. show download statistics Eprint tabs list (each tab is a single screen plugin)
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 • 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
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