<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.ext-9.eprints-hosting.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timbrody</id>
	<title>EPrints Documentation - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ext-9.eprints-hosting.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timbrody"/>
	<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/Special:Contributions/Timbrody"/>
	<updated>2026-05-09T03:47:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Debian_Known_Issues&amp;diff=5172</id>
		<title>Debian Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Debian_Known_Issues&amp;diff=5172"/>
		<updated>2007-08-23T13:49:15Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you come across any unknown Eprints-specific issues please send a bug report to the eptech mailing list.&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
===Wrong XML::LibXML Version===&lt;br /&gt;
&lt;br /&gt;
This affects mainly Ubuntu and older Debian distributions where the libxml package is too old. The package installer doesn&#039;t check the XML::LibXML version. Either install XML::LibXML 1.63 from cpan or disable it by setting enable_libxml to 0 in /usr/share/eprints3/perl_lib/EPrints/SystemSettings.pm.&lt;br /&gt;
&lt;br /&gt;
Installing 1.63 from cpan (as root):&lt;br /&gt;
&lt;br /&gt;
 cpan XML::LibXML&lt;br /&gt;
&lt;br /&gt;
Alternatively you could follow the instructions at [[Installing_GDOME_on_Debian]] to install the GDOME XML library.&lt;br /&gt;
&lt;br /&gt;
Without either XML::LibXML or XML::GDOME Eprints uses a bundled XML::DOM implementation that has much lower performance and poorer Unicode support.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Debian_Known_Issues&amp;diff=5171</id>
		<title>Debian Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Debian_Known_Issues&amp;diff=5171"/>
		<updated>2007-08-23T13:35:38Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the works ...&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Getting_Started_with_EPrints_3&amp;diff=5169</id>
		<title>Getting Started with EPrints 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Getting_Started_with_EPrints_3&amp;diff=5169"/>
		<updated>2007-08-23T13:07:22Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Creating an Archive==&lt;br /&gt;
&lt;br /&gt;
EPrints 3 can run run multiple archives under one install. Multiple archives will require giving additional DNS aliases to the machine running EPrints, EPrints can then create all the parts of the apache configuration file needed to run the virtual hosts.&lt;br /&gt;
&lt;br /&gt;
===Running epadmin===&lt;br /&gt;
Make sure MySQL is actually running.&lt;br /&gt;
&lt;br /&gt;
Change to your eprints user (probably &amp;quot;eprints&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Change directory to the eprints directory (&amp;lt;tt&amp;gt;/opt/eprints3&amp;lt;/tt&amp;gt; by default) and run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
bin/epadmin create&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will get the following prompts (note that when you see something in [square brackets], it&#039;s the default value and can be selected by simply hitting enter)&lt;br /&gt;
&lt;br /&gt;
* Archive ID - the system name for your archive.  It&#039;s probably a good idea to think of something short and memorable.  Once entered, an &amp;lt;tt&amp;gt;archive/&amp;lt;archive_id&amp;gt;&amp;lt;/tt&amp;gt; directory will be created, and the standard configuration files will be copied in.&lt;br /&gt;
* Configure vital settings - Hit enter to say &#039;yes&#039;. This will lead to more prompting about core settings:&lt;br /&gt;
** Hostname - What someone will type into a web browser to get to your archive.  Make sure that your systems team have a DNS alias pointing to your server for this.&lt;br /&gt;
** Webserver Port - Which port to you want to serve the archive on?  The default is 80, so unless you can think of a good reason not to, just hit enter to accept the default.&lt;br /&gt;
** Alias - You can enter any number of aliases that will take users to this archive.  Enter a &#039;#&#039; when you don&#039;t want to enter any more.  You could have your archive served on &amp;lt;tt&amp;gt;eprints.myorganisation.org&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;eprints.myorg.org&amp;lt;/tt&amp;gt;.  As with the Hostname, your systems team need to be informed about these aliases too.&lt;br /&gt;
** Administrator Email - Enter the email address of the repository administrator.  This will allow your repository users to send email to the right person.&lt;br /&gt;
** Archive Name - The full name of your archive.  By default, this will be used on many of the pages, and in the title bar of the browser.&lt;br /&gt;
** Write these core settings - If you don&#039;t say &#039;yes&#039;, then you entered all that data for nothing.&lt;br /&gt;
* Configure database - EPrints makes extensive use of a MySQL database.  Enter &#039;yes&#039; to configure this.&lt;br /&gt;
** Database Name - The internal name of your database.  It makes sense to use the Archive ID for this, but you don&#039;t have to.  You don&#039;t need to create this database, epadmin will do it for you.&lt;br /&gt;
** MySQL Host - The address of the server that the database is running on.  If the database is on the same machine as the EPrints installation, enter &#039;localhost&#039;.&lt;br /&gt;
** MySQL Port - You probably don&#039;t need to enter a value.  If you have problems connecting to the database, talk to your systems team.&lt;br /&gt;
** MySQL Socket - As with MySQL Port, it&#039;s unlikely that you need to enter anything.&lt;br /&gt;
** Database User - The username with which to log into the MySQL Database.  You don&#039;t need to create this user, epadmin will do it for you.  If you enter a MySQL username that already exists, it will be overwritten by epstats.&lt;br /&gt;
** Database Password - The password for the Database User.&lt;br /&gt;
** Write these database settings - You should write them, or you&#039;ll lose them.&lt;br /&gt;
** Create database &amp;lt;Database Name&amp;gt; - Say yes, and epadmin can create the database and populate it with all the right tables.  If you&#039;ve already created a database and a user for this archive, say no.&lt;br /&gt;
** MySQL Root Password - To create the database and the user, epadmin needs the MySQL Root Password.  This is not saved anywhere.  It is used to log into mysql, create the database and create the user with the right access rights.  The password is then forgotten.&lt;br /&gt;
** Create database tables - say yes to have epadmin create all the database tables.&lt;br /&gt;
* Create an initial user - It&#039;s a good idea to create a user account for yourself at this point.&lt;br /&gt;
** Enter a username - The username you will use to log into EPrints in your browser.&lt;br /&gt;
** Select a user type (user|editor|admin) - There are three levels of user in EPrints.  You probably want to be an administrator, so enter &#039;admin&#039;.&lt;br /&gt;
** Enter Password - A password for this user.  Remember to choose a password that will be hard for someone else to guess.&lt;br /&gt;
** Email - Enter your email address so that administrators can get in contact with you.&lt;br /&gt;
** Do you want to build the static web pages - There are a number of pages in EPrints which change very rarely.  These are the static pages.  The Home page and the About page are examples of static pages.  Stylesheets are also static.  These pages need to be built, so say &#039;yes&#039;.&lt;br /&gt;
** Do you want to import the LOC subjects - If you will be using the Library Of Congress subject hierarchy, say &#039;yes&#039;.  Otherwise you will need to create your own subject hierarchy.&lt;br /&gt;
* Do you want to update the apache config files? (you still need to add the &#039;Include&#039; line) - Your archive has a number of files which it uses to configure the web server.  These should be updated, so say &#039;yes&#039;.&lt;br /&gt;
* Before exiting, epadmin will display information about configuring the webserver.&lt;br /&gt;
&lt;br /&gt;
Open a browser, and enter the hostname in the address bar.  You should see your new archive, ready to be [[Branding with confidence|branded]].&lt;br /&gt;
&lt;br /&gt;
If you want to add some more users, use the command &amp;lt;tt&amp;gt;epadmin add_user &amp;lt;repository id&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Modifying the Default===&lt;br /&gt;
&lt;br /&gt;
The default document types and metadata in have been optimised for a repository of research output.  It is up to you if this is sufficient.  Adding new document types and modifying the metadata are discussed elsewhere.&lt;br /&gt;
&lt;br /&gt;
==Running a Live Archive==&lt;br /&gt;
===Creating a crontab===&lt;br /&gt;
When you create an archive it will start out as a development system while you learn how to set it up (and your manager keeps changing his mind) but at some point (hopefully) you will declare your archive open for business.&lt;br /&gt;
&lt;br /&gt;
At this point you should schedule certain scripts to run periodically. The best way to do this is to use &amp;quot;cron&amp;quot; which is an integral part of most UNIX systems.&lt;br /&gt;
&lt;br /&gt;
To set up cron, run (as the eprints user):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 % crontab -e&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Exactly what to add to the cron table is described in the following sections - &amp;quot;Browse Views&amp;quot; and &amp;quot;Subscriptions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There should be one set of crontab entries per archive.&lt;br /&gt;
&lt;br /&gt;
===Backups===&lt;br /&gt;
You should also have made sure that the system is being properly backed up. This is gone into in more detail [[Backups|elsewhere in the documentation]].&lt;br /&gt;
&lt;br /&gt;
===OAI===&lt;br /&gt;
We would also encourage you to configure the OAI support for your archive and register it.&lt;br /&gt;
&lt;br /&gt;
====Configuring====&lt;br /&gt;
&lt;br /&gt;
The setting for OAI are held in the &amp;lt;tt&amp;gt;oai.pl&amp;lt;/tt&amp;gt; file, in the &amp;lt;tt&amp;gt;eprints3/archives/&amp;lt;archive id&amp;gt;/cfg/cfg.d/&amp;lt;/tt&amp;gt; directory.  This is a perl file, but don&#039;t let that daunt you. Some of the settings are set to sensible defaults.  This guide cover the essentials.  Feel free to use your favourite text editor instead of pico.&lt;br /&gt;
&lt;br /&gt;
At the command prompt, backup then open the file:&lt;br /&gt;
 &amp;gt;cd /opt/eprints3/archive/&amp;lt;archive id&amp;gt;/cfg/cfg.d&lt;br /&gt;
 &amp;gt;cp oai.pl oai.backup&lt;br /&gt;
 &amp;gt;pico oai.pl&lt;br /&gt;
&lt;br /&gt;
The following need to be changed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;The archive ID&amp;lt;/strong&amp;gt;.  This needs to be unique, so check that it doesn&#039;t already exist at http://www.openarchives.org/.&lt;br /&gt;
&lt;br /&gt;
Find the following line in oai.pl:&lt;br /&gt;
 $oai-&amp;gt;{v2}-&amp;gt;{archive_id} = &amp;quot;generic.eprints.org&amp;quot;;&lt;br /&gt;
And change generic.eprints.org to something which identifies your repository.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Content Description&amp;lt;/strong&amp;gt;.  What does your repository contain?  Write a description, then find the lines:&lt;br /&gt;
 $oai-&amp;gt;{content}-&amp;gt;{&amp;quot;text&amp;quot;} = latin1( &amp;lt;&amp;lt;END );&lt;br /&gt;
 OAI Site description has not been configured.&lt;br /&gt;
 END&lt;br /&gt;
Do not modify the first or last line in any way.  Simply put your new text in the place of the middle line.  This text can be as many lines as you wish, but it &amp;lt;em&amp;gt;must not&amp;lt;/em&amp;gt; contain the word &amp;quot;END&amp;quot; at the start of a line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Policies&amp;lt;/strong&amp;gt;&lt;br /&gt;
Next you need to define a number of policies which will define how your repository may be used.  It may be helpful for you to visit http://www.opendoar.org/tools/en/policies.php which has a step-by-step process to create these policies.  It will even output EPrints 3 configuration code. which you can then copy and paste into the oai.pl file.  These policies are:&lt;br /&gt;
&lt;br /&gt;
* Metadata Policy&lt;br /&gt;
* Data Policy&lt;br /&gt;
* Submission Policy&lt;br /&gt;
&lt;br /&gt;
These are updated in exactly the same way as the &amp;lt;strong&amp;gt;Content Description&amp;lt;/strong&amp;gt; section.  Just look for the following lines:&lt;br /&gt;
&lt;br /&gt;
*$oai-&amp;gt;{metadata_policy}-&amp;gt;{&amp;quot;text&amp;quot;} = latin1( &amp;lt;&amp;lt;END );&lt;br /&gt;
*$oai-&amp;gt;{data_policy}-&amp;gt;{&amp;quot;text&amp;quot;} = latin1( &amp;lt;&amp;lt;END );&lt;br /&gt;
*$oai-&amp;gt;{submission_policy}-&amp;gt;{&amp;quot;text&amp;quot;} = latin1( &amp;lt;&amp;lt;END );&lt;br /&gt;
&lt;br /&gt;
====Registering====&lt;br /&gt;
&lt;br /&gt;
Once you register your archive (at http://www.openarchives.org) various search systems will be able to collect the metadata (titles, authors, abstract etc.) and allow more people to find records in your archive.&lt;br /&gt;
&lt;br /&gt;
See http://www.openarchives.org/ for more information on the OAI protocol. For more information setting up the OAI interface archive see the section in this documentation about Configuring an Archive.&lt;br /&gt;
&lt;br /&gt;
==Browse Views==&lt;br /&gt;
Once every so often you should run the &amp;lt;tt&amp;gt;[[generate_views]]&amp;lt;/tt&amp;gt; script on each archive in your system to regenerate the browse views section of the site.&lt;br /&gt;
&lt;br /&gt;
This is a set of static pages. By default one per subject, and one per year (only years with papers in that year not EVERY year ever!). Some users prefer to browse the system than search it. This also gives search engines a way to reach, and index, the abstract pages.&lt;br /&gt;
&lt;br /&gt;
See the &amp;lt;tt&amp;gt;[[views.pl]]&amp;lt;/tt&amp;gt; config notes on how to edit the views it generates.&lt;br /&gt;
&lt;br /&gt;
===But I don&#039;t want this feature...===&lt;br /&gt;
If you don&#039;t want to use this feature: don&#039;t, it&#039;s your archive. Remove the link from the template and front page. Don&#039;t run the generate_views script.&lt;br /&gt;
&lt;br /&gt;
===Setting it up===&lt;br /&gt;
This is best done by using the UNIX &amp;quot;cron&amp;quot; command (as user &amp;quot;eprints&amp;quot;). Cron will email &amp;quot;eprints&amp;quot; on that machine with the output, so best use the --quiet option so it only bothers you with errors.&lt;br /&gt;
&lt;br /&gt;
How often you want to run this depends on the size of your archive, and how fast the contents changes. This feature is roughly order &amp;quot;n&amp;quot;. Which means if you double the number of items in your archive then you double the time it takes to run (ish).&lt;br /&gt;
&lt;br /&gt;
Once an hour would seem a good starting point. If your archive gets real big, say more than 10000 records, then maybe once a day is more realistic - the one thing that you don&#039;t want to happen is for a new generate_views to start before the old one finishes as they will mess up each others output.&lt;br /&gt;
&lt;br /&gt;
Run generate_views on the command line to find out how long it takes.&lt;br /&gt;
&lt;br /&gt;
and add the line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 23 * * * * /opt/eprints3/bin/generate_views &amp;lt;archiveid&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
This runs at 23 minutes past each hour. If you have more than one archive, don&#039;t make them all start rebuilding stuff at the same time, stagger it. Otherwise once an hour everything will slow down as it fights to run several intensive scripts at once.&lt;br /&gt;
&lt;br /&gt;
See the crontab man page for more information on using cron.&lt;br /&gt;
 &amp;gt;man 5 crontab&lt;br /&gt;
&lt;br /&gt;
==Alerts==&lt;br /&gt;
Alerts provide a way in which users of your system can receive regular updates, via email, when new items are added which match a search they specified.&lt;br /&gt;
&lt;br /&gt;
To automate sending out these alerts you must add some entries in the crontab (as for views). You need one set of these per archive.&lt;br /&gt;
&lt;br /&gt;
For example (with dookuprints being the name of the archive):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    # 00:15 every morning&lt;br /&gt;
    15 0 * * * /opt/eprints2/bin/send_alerts dookuprints daily&lt;br /&gt;
    # 00:30 every sunday morning&lt;br /&gt;
    30 0 * * 0 /opt/eprints2/bin/send_alerts dookuprints weekly&lt;br /&gt;
    # 00:45 every first of the month&lt;br /&gt;
    45 0 1 * * /opt/eprints2/bin/send_alerts dookuprints monthly&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Note the spacing out so that all 3 don&#039;t start at once and hammer the database. You may wish to change the times, but we recommend early morning as the best time to send them (midnight-6am).&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Manual&amp;diff=4470</id>
		<title>Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Manual&amp;diff=4470"/>
		<updated>2007-06-25T10:07:54Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Reverted what looks like a broken change.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See the [[Main Page]] for other areas of this wiki.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
* [[Introduction]]&lt;br /&gt;
* How to Get Help/Support&lt;br /&gt;
* [[History]] &lt;br /&gt;
&lt;br /&gt;
= Installing EPrints &amp;amp; Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [[Required software]]&lt;br /&gt;
* [[Installation|Installing EPrints]]&lt;br /&gt;
** [[Recommended Platforms]]&lt;br /&gt;
** [[Installing Eprints 3 on Fedora Core 6]]&lt;br /&gt;
** [[Installing EPrints 3 on RedHat Enterprise 4]]&lt;br /&gt;
** [[Installing EPrints 3 on OS X]]&lt;br /&gt;
** [[Installing EPrints 3 on Ubuntu 6.10]]&lt;br /&gt;
** &#039;&#039;[[:Category:Installation|other platforms]]&#039;&#039;&lt;br /&gt;
* [[Upgrading EPrints 3 versions]]&lt;br /&gt;
* [[Migration|Migrating from EPrints 2.3]]&lt;br /&gt;
* [[Getting Started with EPrints 3|Getting Started]]&lt;br /&gt;
* [[Backups]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
* Advanced Installation&lt;br /&gt;
** [[Https3]]&lt;br /&gt;
* [[:Category:Installation|Installing]] EPrints on various platforms.&lt;br /&gt;
&lt;br /&gt;
= How-to Guides =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[http://en.wikipedia.org/wiki/Howto What is a how-to?]&lt;br /&gt;
&lt;br /&gt;
* Orientation &amp;lt;span style=&amp;quot;color: #f94; font-size: 130%&amp;quot;&amp;gt;(Start here)&amp;lt;/span&amp;gt;&lt;br /&gt;
** [[Configuration orientation|New to EPrints 3?]]  - &#039;&#039;before diving into the how-tos, take some time to read through this brief orientation guide and familiarise yourself with the EPrints configuration landscape...&#039;&#039;&lt;br /&gt;
** [[EPrints_3_Configuration_orientation_for_EPrints_2_administrators|Migrated from EPrints 2?]] - &#039;&#039;this orientation guide is intended to help you re-orient yourselves in your new EPrints 3 set up...&#039;&#039; &lt;br /&gt;
* [[Branding with confidence]] - &#039;&#039;one of the most common EPrints customisations is to add your own institution&#039;s branding and &amp;quot;look and feel&amp;quot; to the interface...&#039;&#039;&lt;br /&gt;
** [[Branding, the next level]] - &#039;&#039;how to completely change the interface to your own design&#039;&#039;&lt;br /&gt;
* [[Adding new views]]&lt;br /&gt;
* Workflow&lt;br /&gt;
* Deposit Types&lt;br /&gt;
** [[Removing types]]&lt;br /&gt;
* Metadata&lt;br /&gt;
* Subjects (fold in with Organisation Hierarchy under &amp;quot;controled vocabularies&amp;quot;)&lt;br /&gt;
* [[EPrints_3_Organisation_Hierarchy|Organisation Hierarchy]] - &#039;&#039;how to put your own organisation&#039;s Hierarchy into EPrints 3&#039;&#039;&lt;br /&gt;
* Searches&lt;br /&gt;
* [[Autocompletion and Authority Files (Romeo Autocomplete)]] - &#039;&#039;add autocomplete functionality to the Publication Title input field based on an authority file downloaded from EPrints Romeo...&#039;&#039;&lt;br /&gt;
* [[Create Export Plugins]] - &#039;&#039;create a Perl Module that will export your data...&#039;&#039;&lt;br /&gt;
* [[Login-Only Repository]] - &#039;&#039;require a username and password to access all pages (including search, browse, and the front page)...&#039;&#039;&lt;br /&gt;
* [[Change Deposit Status in Bulk]] - &#039;&#039;move a large number of deposits from inbox to archive&lt;br /&gt;
* [[Customisation|more]]&lt;br /&gt;
&lt;br /&gt;
= Misc =&lt;br /&gt;
&lt;br /&gt;
* [[Preservation Support]] in GNU EPrints 3&lt;br /&gt;
* I18n&lt;br /&gt;
* [[How to contribute]]&lt;br /&gt;
** [[Extension Packages]]&lt;br /&gt;
&lt;br /&gt;
= Technical Reference =&lt;br /&gt;
&lt;br /&gt;
* [[EPrints Directory Structure]] - will be linked somewhere better, later.&lt;br /&gt;
&lt;br /&gt;
* [[Metadata]] - configuring metadata fields.&lt;br /&gt;
* [[Archives/ARCHIVEID/cfg/|Repository Configuration]]&lt;br /&gt;
* [[XML Configuration]] Files&lt;br /&gt;
** [[EPScript]] - documentation for the EP3 Scripting language (for use in citations and workflow files).&lt;br /&gt;
** [[EPrints Control Format]] - the structure used to embed EPScript in an XML configuration file.&lt;br /&gt;
** [[Citation Format]]&lt;br /&gt;
** [[Workflow Format]] - the structure of the EP3 workflow files&lt;br /&gt;
** [[Phrase Format]]&lt;br /&gt;
** [[Template Format]]&lt;br /&gt;
** [[XPAGE Format]]&lt;br /&gt;
* [[XML Export Format]]&lt;br /&gt;
* EPrints data structure &lt;br /&gt;
** of the software&lt;br /&gt;
** of the database (relating the dataobjects to each other using eprints fields)&lt;br /&gt;
* [[Data Object]]s and data sets&lt;br /&gt;
** The [[EPrint Object]]&lt;br /&gt;
** The [[User Object]]&lt;br /&gt;
** The [[Document Object]]&lt;br /&gt;
** The [[Subject Object]]&lt;br /&gt;
** The [[Saved Search Object]]&lt;br /&gt;
** The [[History Object]]&lt;br /&gt;
** The [[Access Object]]&lt;br /&gt;
** The [[Request Object]]&lt;br /&gt;
* Plugins&lt;br /&gt;
** Import&lt;br /&gt;
** [[Export Plugins]]&lt;br /&gt;
** Components&lt;br /&gt;
** Screen&lt;br /&gt;
** Convert&lt;br /&gt;
* [[Autocompletion]]&lt;br /&gt;
** [[Understanding IDs in Workflow Forms]]&lt;br /&gt;
* [[API]]&lt;br /&gt;
* [[Dynamic Template System]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4325</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4325"/>
		<updated>2007-05-25T13:58:47Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Exposing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. A simple heuristic is applied to separate out the requests into three potential types: non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|-&lt;br /&gt;
|/12614/&lt;br /&gt;
|/01/&lt;br /&gt;
|Semantic_Web_Revisted.pdf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Requests without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) into XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+eprint/access OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!access&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. OAI date filters consist of optional &#039;&#039;from&#039;&#039; and &#039;&#039;until&#039;&#039; arguments that restrict the resulting data to only those accesses that occurred between the two dates.&lt;br /&gt;
&lt;br /&gt;
Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted into XML using the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier) and the result output as an OAI response.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4324</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4324"/>
		<updated>2007-05-25T13:54:25Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Exposing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. A simple heuristic is applied to separate out the requests into three potential types: non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|-&lt;br /&gt;
|/12614/&lt;br /&gt;
|/01/&lt;br /&gt;
|Semantic_Web_Revisted.pdf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Requests without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4323</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4323"/>
		<updated>2007-05-25T13:54:14Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Capturing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. A simple heuristic is applied to separate out the requests into three potential types: non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|-&lt;br /&gt;
|/12614/&lt;br /&gt;
|/01/&lt;br /&gt;
|Semantic_Web_Revisted.pdf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Requests without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4322</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4322"/>
		<updated>2007-05-25T13:53:19Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Capturing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. A simple heuristic is applied to separate out the requests into three potential types: non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
!align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|-&lt;br /&gt;
|/12614/&lt;br /&gt;
|/01/&lt;br /&gt;
|Semantic_Web_Revisted.pdf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Requests without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4321</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4321"/>
		<updated>2007-05-25T13:52:16Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Capturing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. A simple heuristic is applied to separate out the requests into three potential types: non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!/12614/&lt;br /&gt;
!/01/&lt;br /&gt;
!Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Requests without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4320</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4320"/>
		<updated>2007-05-25T13:19:18Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: /* Storing Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. Requests are then split up into three sets, non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!/12614/&lt;br /&gt;
!/01/&lt;br /&gt;
!Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Request without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage Data==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints &#039;&#039;access&#039;&#039; dataset, see [[Access_Object]] for a description of the dataset&#039;s fields. This is partially-processed mirror of the normal Apache log file, but storing the data in a table enables much simpler exposure and re-use of the data.&lt;br /&gt;
&lt;br /&gt;
The Eprints dataset API provides a unique identifier for every request, which is an incremented integer starting at 1. As a dataset requests can be searched or iterated over using the Eprints API.&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4319</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4319"/>
		<updated>2007-05-25T13:13:10Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PerlLogHandler EPrints::Apache::LogHandler&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. Requests are then split up into three sets, non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!/12614/&lt;br /&gt;
!/01/&lt;br /&gt;
!Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Request without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints database in the &#039;&#039;access_log&#039;&#039; table, see [Access_Log] for a description of the fields. This is almost a mirror of the normal Apache log file, but by storing the data in a table enables much simpler exposure and re-use of the datab.&lt;br /&gt;
&lt;br /&gt;
Log data can potentially get very large, which may require a different technical approach in future (or periodic triaging of the access log data).&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data: a repository will want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An OAI ListRecords request may contain date and set filters, although sets aren&#039;t yet supported for access logs. Using the Eprints search API a result set of records is generated that matches the OAI arguments e.g. all access log records made after a certain time. Each record is converted to XML, depending on the export plugin requested (via a mapping of the metadataPrefix OAI argument to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC). The following is our example request, exposed as an XML ContextObject in an OAI response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;ctx:context-object timestamp=&amp;quot;2007-05-25T13:07:19Z&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;oai:eprints.ecs.soton.ac.uk:12614&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referent&amp;gt;&lt;br /&gt;
&amp;lt;ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;http://www.w3.org/2001/sw/&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:referring-entity&amp;gt;&lt;br /&gt;
&amp;lt;ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:identifier&amp;gt;urn:ip:127.0.0.1&amp;lt;/ctx:identifier&amp;gt;&lt;br /&gt;
&amp;lt;ctx:private-data&amp;gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;lt;/ctx:private-data&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:requester&amp;gt;&lt;br /&gt;
&amp;lt;ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;ctx:format&amp;gt;info:ofi/fmt:xml:xsd:sch_svc&amp;lt;/ctx:format&amp;gt;&lt;br /&gt;
&amp;lt;sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;sv:fulltext&amp;gt;yes&amp;lt;/sv:fulltext&amp;gt;&lt;br /&gt;
&amp;lt;/sv:svc-list&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:metadata-by-val&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:service-type&amp;gt;&lt;br /&gt;
&amp;lt;/ctx:context-object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
TODO: epstats&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4318</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4318"/>
		<updated>2007-05-25T12:57:10Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics=&lt;br /&gt;
&lt;br /&gt;
=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PerlLogHandler EPrints::Apache::LogHandler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Fields in a HTTP request.&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. Requests are then split up into three sets, non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Parts of a page request URL.&lt;br /&gt;
|-&lt;br /&gt;
!/12614/&lt;br /&gt;
!/01/&lt;br /&gt;
!Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |eprint identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |document identifier&lt;br /&gt;
|align=&amp;quot;center&amp;quot; |file requested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Request without an eprint identifier part are ignored. Requests with no document identifier part are defined as abstract requests. Requests with both eprint and document identifier parts are defined as full-text requests.&lt;br /&gt;
&lt;br /&gt;
A simple filter is implemented in the capture code to handle requests to multi-file documents (e.g. HTML pages with inlined images). Any full-text requests where the referring web page (see above) is also a request to the same full-text are ignored. Assuming the referring web page is correctly supplied by the web client this will count requests to any part of a document, but ignore multiple requests resulting from complex media.&lt;br /&gt;
&lt;br /&gt;
==Storing Usage==&lt;br /&gt;
&lt;br /&gt;
Requests are stored in the Eprints database in the &#039;&#039;access_log&#039;&#039; table, see [Access_Log] for a description of the fields. This is almost a mirror of the normal Apache log file, but by storing the data in a table enables much simpler exposure and re-use of the datab.&lt;br /&gt;
&lt;br /&gt;
Log data can potentially get very large, which may require a different technical approach in future (or periodic triaging of the access log data).&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints 3 includes a disabled script that can expose access logs through an [http://www.openarchives.org/ OAI-PMH] interface. This interface is located at &amp;lt;tt&amp;gt;/cgi/oai_accesslogs&amp;lt;/tt&amp;gt;. The interface contains an &amp;lt;code&amp;gt;EPrints::abort&amp;lt;/code&amp;gt; at the top that prevents all access - this is because usage logs are potentially sensitive data, and a repository will probably want to implement some kind of access restriction before providing access to their logs.&lt;br /&gt;
&lt;br /&gt;
The OAI interface uses Eprints export plugins to convert access log objects (as read from the Eprints database) to XML suitable to be embedded in the OAI output. From an Eprints architecture perspective the mechanism to expose access log records is nearly identical to the exposure of eprint records (they are both &#039;&#039;datasets&#039;&#039; in Eprints).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+accesslog/eprint OAI comparison&lt;br /&gt;
!&lt;br /&gt;
!eprint&lt;br /&gt;
!accesslog&lt;br /&gt;
|-&lt;br /&gt;
|identifier&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|oai:&amp;lt;archive name&amp;gt;:&amp;lt;item id&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|export plugins&lt;br /&gt;
|(predefined list in cfg.d/oai.pl)&lt;br /&gt;
|can_accept =&amp;gt; &amp;quot;list/access&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|from/until&lt;br /&gt;
|last_mod field&lt;br /&gt;
|datestamp field&lt;br /&gt;
|-&lt;br /&gt;
|OAI sets&lt;br /&gt;
|arbitrary fields defined in cfg.d/oai.pl&lt;br /&gt;
|not-supported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A result set of records is generated from the OAI request. Each record is converted to XML, depending on the export plugin requested (via a mapping of metadataPrefix to plugin identifier), and output as an XML document.&lt;br /&gt;
&lt;br /&gt;
Currently Eprints supports exporting access log records in OpenURL ContextObject format. To be OAI-compliant an interface should also support Dublin Core (but access logs don&#039;t make a lot of sense in DC).&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
=Analytical Considerations for Usage=&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Object&amp;diff=4317</id>
		<title>Access Object</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Object&amp;diff=4317"/>
		<updated>2007-05-25T12:40:12Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{dataobj}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=== Built in Fields ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Field Name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;accessid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[int field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;datestamp&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[time field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Date/time the request occurred (not when the request was eventually served!).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;requester_id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The identity of the requesting user, currently their IP address but this may change in future.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;requester_user_agent&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The user agent string given by the user&#039;s web browser (useful for robots detection).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;requester_country&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The country the user made the request from (if available).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;requester_institution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;The institution the user made the request from (if available).&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;referring_entity_id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The location from which the user has come (either a web page or eprint id).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;service_type_id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The type of object requested, currently one of &amp;quot;?fulltext=yes&amp;quot; or &amp;quot;?abstract=yes&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;referent_id&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The id of the eprint requested.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;referent_docid&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[text field]]&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;The id of the document requested (if it was a full-text request).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4316</id>
		<title>Download Metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Download_Metrics&amp;diff=4316"/>
		<updated>2007-05-25T12:24:25Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Download Metrics=&lt;br /&gt;
&lt;br /&gt;
=Download Metrics in EPrints=&lt;br /&gt;
&lt;br /&gt;
==Capturing Usage==&lt;br /&gt;
&lt;br /&gt;
Eprints uses the Apache web server and mod_perl (an accelerator for Perl CGI scripts). mod_perl provides hooks to the logging and control features of the Apache server. One of these hooks is to the access logging function. A &#039;&#039;log handler&#039;&#039; is registered with Apache by using the &#039;&#039;[http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler PerlLogHandler]&#039;&#039; pragma e.g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PerlLogHandler EPrints::Apache::LogHandler&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This handler is called after a response has been generated by the web server (i.e. in response to requests coming in from web clients).&lt;br /&gt;
&lt;br /&gt;
In the initial implementation we are only interested in requests to eprint objects. This ignores requests to static content (e.g. the home page), searches and user-specific content (e.g. depositing processes). This is because our current requirements are to capture usage to determine download metrics for objects contained in a repository, rather than analysing how a repository is used.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this section we will use the following example request (as you would otherwise see in an Apache access log file):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;127.0.0.1 - - [25/May/2007:13:07:24 +0100] &amp;quot;GET /12614/01/Semantic_Web_Revisted.pdf HTTP/1.1&amp;quot; 200 130951 &amp;quot;http://www.w3.org/2001/sw/&amp;quot; &amp;quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The pertinent parts of this entry are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!field&lt;br /&gt;
!example&lt;br /&gt;
|-&lt;br /&gt;
|requesting host&lt;br /&gt;
|127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
|date/time of request (by server time)&lt;br /&gt;
|25/May/2007:13:07:24 +0100&lt;br /&gt;
|-&lt;br /&gt;
|page requested&lt;br /&gt;
|/12614/01/Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|HTTP response code (200 is &#039;ok&#039;)&lt;br /&gt;
|200&lt;br /&gt;
|-&lt;br /&gt;
|referring web page&lt;br /&gt;
|http://www.w3.org/2001/sw/&lt;br /&gt;
|-&lt;br /&gt;
|user&#039;s web browser (or web crawler id)&lt;br /&gt;
|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In the Eprints log handler any non-200 &#039;&#039;HTTP response code&#039;&#039; requests are ignored i.e. any errors or redirects. Requests are then split up into three sets, non-eprint requests, eprint abstract requests and full-text requests. This is based on the &#039;&#039;page requested&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!/12614/&lt;br /&gt;
!/01/&lt;br /&gt;
!Semantic_Web_Revisted.pdf&lt;br /&gt;
|-&lt;br /&gt;
|eprint identifier&lt;br /&gt;
|document identifier&lt;br /&gt;
|file requested&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Storing Usage==&lt;br /&gt;
&lt;br /&gt;
==Exposing Usage==&lt;br /&gt;
&lt;br /&gt;
==Analysing Usage==&lt;br /&gt;
&lt;br /&gt;
=Analytical Considerations for Usage=&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=3829</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=3829"/>
		<updated>2007-02-04T19:21:04Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download [http://wiki.eprints.org/w/Files/EPrints_3.0 EPrints 3.0.0], released 18 January 2007.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_EPrints_from_RPM&amp;diff=3828</id>
		<title>Installing EPrints from RPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_EPrints_from_RPM&amp;diff=3828"/>
		<updated>2007-02-04T19:18:29Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Installing EPrints from RPM moved to Installing EPrints via Apt or RPM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Installing EPrints via Apt or RPM]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2615</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2615"/>
		<updated>2006-12-18T14:50:17Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preservation Support in GNU EPrints 3 =&lt;br /&gt;
&lt;br /&gt;
GNU EPrints version 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
The features described here have been jointly developed with the [http://preserv.eprints.org/ Preserv project], with coding on the METS and Creative Commons (CC) licensing components by Preserv. The features are designed to allow an EPrints repository to support preservation through a specialist service provider. The key actions covered include:&lt;br /&gt;
&lt;br /&gt;
* Recording changes to a repository object by updating its &#039;preservation metadata&#039; (History Module)&lt;br /&gt;
* Enabling the service provider to download all the files and metadata comprising an object (METS and DIDL export plugins)&lt;br /&gt;
* Notifying the service provider of any rights it has to copy and act on the content of an object (CC licencing)&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export: METS and DIDL plugins ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to disseminate digital objects stored in an EPrints repository, depending on whether the request for an object comes from a human user or a machine (e.g. a search engine robot), and on what service is requested. The request may be for a full-text document, or for the data to be presented in some other format.&lt;br /&gt;
&lt;br /&gt;
To increase the number of &#039;export&#039; formats available in EPrints v3 it is possible to write  &#039;&#039;plugins&#039;&#039; - modular bits of code that are dynamically loaded into the system. Plugins are a new mechanism for customising and extending EPrints by writing code that interacts with the core software but is not part of it. In this way plugins can be written and implemented independently, and made available for others to use. These modules are written in Perl and can perform a number of roles: importing and exporting from and to arbitrary formats, converting documents from one format to another (for full-text indexing) and user interface widgets. Plugins sit in their own directory and are registered by GNU EPrints when the system is run.&lt;br /&gt;
&lt;br /&gt;
EPrints export plugins convert &#039;&#039;repository objects&#039;&#039; (things that contain metadata and files) into streamed data, in most cases XML. Objects can be exported through the EPrints Web interface (in search results, abstract pages or from the user&#039;s workspace), the [http://www.openarchives.org/ OAI-PMH] interface,  or from the command-line `export` script. &lt;br /&gt;
&lt;br /&gt;
There are already a number of object types in EPrints that are supported by export plugins, as shown in Figure 1. The OpenURL !ContextObject export plugin can also be used to export  &#039;&#039;!AccessLog objects&#039;&#039;, which enables access logs to be harvested from GNU EPrints. &#039;&#039;Document objects&#039;&#039; are exported as part of an EPrint object. (There are several other EPrint objects available in EPrints - &#039;&#039;Users, saved searches and History&#039;&#039; - but these aren&#039;t yet exportable, until export plugins have been written to support them.)&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_exports.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 1. Export formats suported by EPrints plugins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the request to export an object from a repository is from a preservation service provider, it will need to obtain all the files associated with the object. Objects that have more than one file are often referred to as &#039;complex objects&#039;.&lt;br /&gt;
&lt;br /&gt;
To support more efficient transfer of complex objects, two formats that may be used to disseminate objects for digital preservation are Metadata Encoding Transmission Standard [http://www.loc.gov/standards/mets/ METS] and  MPEG-21 Digital Item Declaration Language [http://www.chiariglione.org/mpeg/standards/mpeg-21/mpeg-21.htm DIDL]. Examples of the XML exports for these two formats are shown in Figures 2 and 3.&lt;br /&gt;
&lt;br /&gt;
The METS export plugin is derived from work done by the [http://www.inf.aber.ac.uk/bridge/ Repository Bridge] project, who implemented a METS export for EPrints 2. This has been updated for the new plugin architecture and data model in EPrints 3.&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_mets.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 2. METS export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DIDL support has been built by Chris Gutteridge (the lead developer on EPrints) as the result of collaboration with researchers from the [http://www.dlib.org/dlib/november03/bekaert/11bekaert.html Los Alamos National Laboratory] who have utilised MPEG-21 DIDL to build digital library systems. While DIDL is less well known in the digital preservation field, it serves a similar purpose and may well end up being more widely used (given the strength of backing of media companies in MPEG standards).&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_didl.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 3. MPEG-21/DIDL export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
EPrints v3 introduces a new &#039;history&#039; function that documents all changes made to records, from the point of deposit (when the record was first created) onwards. Currently this feature is used to provide an audit trail for editorial purposes, but as digital preservation services are developed they will need to modify the content of repositories, e.g. to migrate file formats, and such actions must be recorded to inform later preservation decisions. To keep track of what has happened to a record the repository will need to store both the object itself and all actions that have been performed on it over time.&lt;br /&gt;
&lt;br /&gt;
Figure 4 visualises changes that have been made to an object. In this instance a new &#039;Document&#039; has been added to the record, with the consequent addition of new files.&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_history.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 4. History module shows the addition of a new document in the record for an object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Preservation Rights Declaration ==&lt;br /&gt;
&lt;br /&gt;
An issue raised by the British Library, a partner acting as a prospective preservation service provider in the Preserv project, is that it needs appropriate permissions to handle materials for preservation purposes. With this in mind a &#039;license&#039; option has been added to the EPrints deposit process allowing the depositing user to provide an explicit license for access to their deposited materials (Figures 5 and 6). Based on [http://creativecommons.org/ Creative Commons], these licenses have been included in the EPrints v3 beta version. If an explicit license is required for preservation purposes (e.g. the right of a third party to store and act on the material, e.g. perform migration, etc.) this can easily be included.&lt;br /&gt;
&lt;br /&gt;
[[Image:preserv_file_upload.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 5. Part of EPrints deposit form showing License field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:preserv_file_upload_license.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 6. Drop-down options from License field&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2614</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2614"/>
		<updated>2006-12-18T14:49:49Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preservation Support in GNU EPrints 3 =&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/wiki/Preservation_Support View this page with images inline]&lt;br /&gt;
&lt;br /&gt;
GNU EPrints version 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
The features described here have been jointly developed with the [http://preserv.eprints.org/ Preserv project], with coding on the METS and Creative Commons (CC) licensing components by Preserv. The features are designed to allow an EPrints repository to support preservation through a specialist service provider. The key actions covered include:&lt;br /&gt;
&lt;br /&gt;
* Recording changes to a repository object by updating its &#039;preservation metadata&#039; (History Module)&lt;br /&gt;
* Enabling the service provider to download all the files and metadata comprising an object (METS and DIDL export plugins)&lt;br /&gt;
* Notifying the service provider of any rights it has to copy and act on the content of an object (CC licencing)&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export: METS and DIDL plugins ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to disseminate digital objects stored in an EPrints repository, depending on whether the request for an object comes from a human user or a machine (e.g. a search engine robot), and on what service is requested. The request may be for a full-text document, or for the data to be presented in some other format.&lt;br /&gt;
&lt;br /&gt;
To increase the number of &#039;export&#039; formats available in EPrints v3 it is possible to write  &#039;&#039;plugins&#039;&#039; - modular bits of code that are dynamically loaded into the system. Plugins are a new mechanism for customising and extending EPrints by writing code that interacts with the core software but is not part of it. In this way plugins can be written and implemented independently, and made available for others to use. These modules are written in Perl and can perform a number of roles: importing and exporting from and to arbitrary formats, converting documents from one format to another (for full-text indexing) and user interface widgets. Plugins sit in their own directory and are registered by GNU EPrints when the system is run.&lt;br /&gt;
&lt;br /&gt;
EPrints export plugins convert &#039;&#039;repository objects&#039;&#039; (things that contain metadata and files) into streamed data, in most cases XML. Objects can be exported through the EPrints Web interface (in search results, abstract pages or from the user&#039;s workspace), the [http://www.openarchives.org/ OAI-PMH] interface,  or from the command-line `export` script. &lt;br /&gt;
&lt;br /&gt;
There are already a number of object types in EPrints that are supported by export plugins, as shown in Figure 1. The OpenURL !ContextObject export plugin can also be used to export  &#039;&#039;!AccessLog objects&#039;&#039;, which enables access logs to be harvested from GNU EPrints. &#039;&#039;Document objects&#039;&#039; are exported as part of an EPrint object. (There are several other EPrint objects available in EPrints - &#039;&#039;Users, saved searches and History&#039;&#039; - but these aren&#039;t yet exportable, until export plugins have been written to support them.)&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_exports.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 1. Export formats suported by EPrints plugins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the request to export an object from a repository is from a preservation service provider, it will need to obtain all the files associated with the object. Objects that have more than one file are often referred to as &#039;complex objects&#039;.&lt;br /&gt;
&lt;br /&gt;
To support more efficient transfer of complex objects, two formats that may be used to disseminate objects for digital preservation are Metadata Encoding Transmission Standard [http://www.loc.gov/standards/mets/ METS] and  MPEG-21 Digital Item Declaration Language [http://www.chiariglione.org/mpeg/standards/mpeg-21/mpeg-21.htm DIDL]. Examples of the XML exports for these two formats are shown in Figures 2 and 3.&lt;br /&gt;
&lt;br /&gt;
The METS export plugin is derived from work done by the [http://www.inf.aber.ac.uk/bridge/ Repository Bridge] project, who implemented a METS export for EPrints 2. This has been updated for the new plugin architecture and data model in EPrints 3.&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_mets.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 2. METS export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DIDL support has been built by Chris Gutteridge (the lead developer on EPrints) as the result of collaboration with researchers from the [http://www.dlib.org/dlib/november03/bekaert/11bekaert.html Los Alamos National Laboratory] who have utilised MPEG-21 DIDL to build digital library systems. While DIDL is less well known in the digital preservation field, it serves a similar purpose and may well end up being more widely used (given the strength of backing of media companies in MPEG standards).&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_didl.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 3. MPEG-21/DIDL export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
EPrints v3 introduces a new &#039;history&#039; function that documents all changes made to records, from the point of deposit (when the record was first created) onwards. Currently this feature is used to provide an audit trail for editorial purposes, but as digital preservation services are developed they will need to modify the content of repositories, e.g. to migrate file formats, and such actions must be recorded to inform later preservation decisions. To keep track of what has happened to a record the repository will need to store both the object itself and all actions that have been performed on it over time.&lt;br /&gt;
&lt;br /&gt;
Figure 4 visualises changes that have been made to an object. In this instance a new &#039;Document&#039; has been added to the record, with the consequent addition of new files.&lt;br /&gt;
&lt;br /&gt;
[[Image:eprints_history.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 4. History module shows the addition of a new document in the record for an object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Preservation Rights Declaration ==&lt;br /&gt;
&lt;br /&gt;
An issue raised by the British Library, a partner acting as a prospective preservation service provider in the Preserv project, is that it needs appropriate permissions to handle materials for preservation purposes. With this in mind a &#039;license&#039; option has been added to the EPrints deposit process allowing the depositing user to provide an explicit license for access to their deposited materials (Figures 5 and 6). Based on [http://creativecommons.org/ Creative Commons], these licenses have been included in the EPrints v3 beta version. If an explicit license is required for preservation purposes (e.g. the right of a third party to store and act on the material, e.g. perform migration, etc.) this can easily be included.&lt;br /&gt;
&lt;br /&gt;
[[Image:preserv_file_upload.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 5. Part of EPrints deposit form showing License field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:preserv_file_upload_license.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Figure 6. Drop-down options from License field&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Preserv_file_upload_license.png&amp;diff=2613</id>
		<title>File:Preserv file upload license.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Preserv_file_upload_license.png&amp;diff=2613"/>
		<updated>2006-12-18T14:47:49Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Preserv_file_upload.png&amp;diff=2612</id>
		<title>File:Preserv file upload.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Preserv_file_upload.png&amp;diff=2612"/>
		<updated>2006-12-18T14:47:40Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_mets.png&amp;diff=2611</id>
		<title>File:Eprints mets.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_mets.png&amp;diff=2611"/>
		<updated>2006-12-18T14:47:32Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_history.png&amp;diff=2610</id>
		<title>File:Eprints history.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_history.png&amp;diff=2610"/>
		<updated>2006-12-18T14:47:23Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_exports.png&amp;diff=2609</id>
		<title>File:Eprints exports.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_exports.png&amp;diff=2609"/>
		<updated>2006-12-18T14:47:00Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_didl.png&amp;diff=2608</id>
		<title>File:Eprints didl.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=File:Eprints_didl.png&amp;diff=2608"/>
		<updated>2006-12-18T14:46:43Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2606</id>
		<title>Access Log Dataset</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2606"/>
		<updated>2006-12-18T13:18:47Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EPrints 3 introduces some new features for capturing and analysing usage of the repository.&lt;br /&gt;
&lt;br /&gt;
Everytime an abstract or full-text is accessed a record is written to the access dataset recording data about the access.&lt;br /&gt;
&lt;br /&gt;
The access dataset can be used like any other data set in the EPrints system e.g. through the EPrints API or imported/exported.&lt;br /&gt;
&lt;br /&gt;
== access data set fields ==&lt;br /&gt;
&lt;br /&gt;
OpenURL terminology is used where an equivalent term in OpenURL is defined.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!field&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|accessid&lt;br /&gt;
|A unique identifier for the access (sequential numbering).&lt;br /&gt;
|-&lt;br /&gt;
|datestamp&lt;br /&gt;
|The time the access occurred in UTC.&lt;br /&gt;
|-&lt;br /&gt;
|requester_id&lt;br /&gt;
|An identifier for the user that made the request.&lt;br /&gt;
|-&lt;br /&gt;
|requester_user_agent&lt;br /&gt;
|The user agent string as given by the user&#039;s browser.&lt;br /&gt;
|-&lt;br /&gt;
|requester_country&lt;br /&gt;
|The ISO country code for the user&#039;s location.&lt;br /&gt;
|-&lt;br /&gt;
|requester_institution&lt;br /&gt;
|The user&#039;s institution or organisation.&lt;br /&gt;
|-&lt;br /&gt;
|referring_entity_id&lt;br /&gt;
|The identifier of the object that the user followed a link from.&lt;br /&gt;
|-&lt;br /&gt;
|service_type_id&lt;br /&gt;
|The type of service requested, either fulltext=yes or abstract=yes.&lt;br /&gt;
|-&lt;br /&gt;
|referent_id&lt;br /&gt;
|The identifier of the eprint requested.&lt;br /&gt;
|-&lt;br /&gt;
|referent_docid&lt;br /&gt;
|The document number requested (for fulltext requests).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== requester_id ===&lt;br /&gt;
&lt;br /&gt;
The requester id contains an identifier for the user that made the request. In the release version this consists of &amp;lt;tt&amp;gt;uri:ip:&amp;lt;/tt&amp;gt; followed by the IP address of the user&#039;s connection. Particular network topographies may result in the IP address being an intermediary e.g. a caching proxy server.&lt;br /&gt;
&lt;br /&gt;
In future the requester_id field may contain a unique cookie or similar mechanism for identifying users.&lt;br /&gt;
&lt;br /&gt;
=== Requester country and institution ===&lt;br /&gt;
&lt;br /&gt;
If available the Maxmind GeoIP databases can be used to capture the country code and organisation of the user, based on their IP address.&lt;br /&gt;
&lt;br /&gt;
=== referent_id ===&lt;br /&gt;
&lt;br /&gt;
The referent - the object being requested - is stored using the full OAI identifier. This may be replaced with just the eprint number.&lt;br /&gt;
&lt;br /&gt;
== Filtering at the LogHandler Stage ==&lt;br /&gt;
&lt;br /&gt;
Requests to the EPrints web server are captured using a mod_perl handler (EPrints::Apache::LogHandler). This handler gets called on every request to the web server. The handler filters out all non-HTTP 200 requests (e.g. ignores redirects and partial-content). Only requests to abstract and full-text URLs are recognised i.e. requests to /xx/ and /xx/yy/... where xx is the eprint id and yy the document id.&lt;br /&gt;
&lt;br /&gt;
As a special case any requests to a full-text where the referring entity is also a request to the full-text are ignored. The net result of this is to ignore all &#039;&#039;inline&#039;&#039; content e.g. images and javascript in HTML documents.&lt;br /&gt;
&lt;br /&gt;
== Harvesting accesses from an EPrints 3 repository ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Currently Disabled!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A new OAI interface has been added to EPrints 3 that reads records from the access data set. This supports all the normal OAI verbs but only supports exposing metadata in &#039;&#039;OpenURL ContextObject&#039;&#039; format.&lt;br /&gt;
&lt;br /&gt;
Because accesses are explicitly time based a harvester can easily harvest accesses for a specific time period by using the OAI &#039;&#039;from&#039;&#039; and &#039;&#039;until&#039;&#039; arguments.&lt;br /&gt;
&lt;br /&gt;
== Disk Usage Considerations ==&lt;br /&gt;
&lt;br /&gt;
The disk usage requirements for storing accesses in the EPrints database are yet to be fully tested.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2605</id>
		<title>Access Log Dataset</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2605"/>
		<updated>2006-12-18T13:17:42Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EPrints 3 introduces some new features for capturing and analysing usage of the repository.&lt;br /&gt;
&lt;br /&gt;
Everytime an abstract or full-text is accessed a record is written to the access dataset recording data about the access.&lt;br /&gt;
&lt;br /&gt;
== access data set fields ==&lt;br /&gt;
&lt;br /&gt;
OpenURL terminology is used where an equivalent term in OpenURL is defined.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!field&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|accessid&lt;br /&gt;
|A unique identifier for the access (sequential numbering).&lt;br /&gt;
|-&lt;br /&gt;
|datestamp&lt;br /&gt;
|The time the access occurred in UTC.&lt;br /&gt;
|-&lt;br /&gt;
|requester_id&lt;br /&gt;
|An identifier for the user that made the request.&lt;br /&gt;
|-&lt;br /&gt;
|requester_user_agent&lt;br /&gt;
|The user agent string as given by the user&#039;s browser.&lt;br /&gt;
|-&lt;br /&gt;
|requester_country&lt;br /&gt;
|The ISO country code for the user&#039;s location.&lt;br /&gt;
|-&lt;br /&gt;
|requester_institution&lt;br /&gt;
|The user&#039;s institution or organisation.&lt;br /&gt;
|-&lt;br /&gt;
|referring_entity_id&lt;br /&gt;
|The identifier of the object that the user followed a link from.&lt;br /&gt;
|-&lt;br /&gt;
|service_type_id&lt;br /&gt;
|The type of service requested, either fulltext=yes or abstract=yes.&lt;br /&gt;
|-&lt;br /&gt;
|referent_id&lt;br /&gt;
|The identifier of the eprint requested.&lt;br /&gt;
|-&lt;br /&gt;
|referent_docid&lt;br /&gt;
|The document number requested (for fulltext requests).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== requester_id ===&lt;br /&gt;
&lt;br /&gt;
The requester id contains an identifier for the user that made the request. In the release version this consists of &amp;lt;tt&amp;gt;uri:ip:&amp;lt;/tt&amp;gt; followed by the IP address of the user&#039;s connection. Particular network topographies may result in the IP address being an intermediary e.g. a caching proxy server.&lt;br /&gt;
&lt;br /&gt;
In future the requester_id field may contain a unique cookie or similar mechanism for identifying users.&lt;br /&gt;
&lt;br /&gt;
=== Requester country and institution ===&lt;br /&gt;
&lt;br /&gt;
If available the Maxmind GeoIP databases can be used to capture the country code and organisation of the user, based on their IP address.&lt;br /&gt;
&lt;br /&gt;
=== referent_id ===&lt;br /&gt;
&lt;br /&gt;
The referent - the object being requested - is stored using the full OAI identifier. This may be replaced with just the eprint number.&lt;br /&gt;
&lt;br /&gt;
== Filtering at the LogHandler Stage ==&lt;br /&gt;
&lt;br /&gt;
Requests to the EPrints web server are captured using a mod_perl handler (EPrints::Apache::LogHandler). This handler gets called on every request to the web server. The handler filters out all non-HTTP 200 requests (e.g. ignores redirects and partial-content). Only requests to abstract and full-text URLs are recognised i.e. requests to /xx/ and /xx/yy/... where xx is the eprint id and yy the document id.&lt;br /&gt;
&lt;br /&gt;
As a special case any requests to a full-text where the referring entity is also a request to the full-text are ignored. The net result of this is to ignore all &#039;&#039;inline&#039;&#039; content e.g. images and javascript in HTML documents.&lt;br /&gt;
&lt;br /&gt;
== Harvesting accesses from an EPrints 3 repository ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Currently Disabled!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A new OAI interface has been added to EPrints 3 that reads records from the access data set. This supports all the normal OAI verbs but only supports exposing metadata in &#039;&#039;OpenURL ContextObject&#039;&#039; format.&lt;br /&gt;
&lt;br /&gt;
Because accesses are explicitly time based a harvester can easily harvest accesses for a specific time period by using the OAI &#039;&#039;from&#039;&#039; and &#039;&#039;until&#039;&#039; arguments.&lt;br /&gt;
&lt;br /&gt;
== Disk Usage Considerations ==&lt;br /&gt;
&lt;br /&gt;
The disk usage requirements for storing accesses in the EPrints database are yet to be fully tested.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2604</id>
		<title>Access Log Dataset</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Access_Log_Dataset&amp;diff=2604"/>
		<updated>2006-12-18T13:00:31Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EPrints 3 introduces some new features for capturing and analysing usage of the repository.&lt;br /&gt;
&lt;br /&gt;
Everytime an abstract or full-text is accessed a record is written to the access dataset recording data about the access.&lt;br /&gt;
&lt;br /&gt;
== access data set fields ==&lt;br /&gt;
&lt;br /&gt;
OpenURL terminology is used where appropriate to name the fields captured for requests.&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
!field&lt;br /&gt;
!description&lt;br /&gt;
|-&lt;br /&gt;
|accessid&lt;br /&gt;
|A unique identifier for the access (sequential numbering).&lt;br /&gt;
|-&lt;br /&gt;
|datestamp&lt;br /&gt;
|The time the access occurred in UTC.&lt;br /&gt;
|-&lt;br /&gt;
|requester_id&lt;br /&gt;
|An identifier for the user that made the request.&lt;br /&gt;
|-&lt;br /&gt;
|requester_user_agent&lt;br /&gt;
|The user agent string as given by the user&#039;s browser.&lt;br /&gt;
|-&lt;br /&gt;
|requester_country&lt;br /&gt;
|The ISO country code for the user&#039;s location.&lt;br /&gt;
|-&lt;br /&gt;
|requester_institution&lt;br /&gt;
|The user&#039;s institution or organisation.&lt;br /&gt;
|-&lt;br /&gt;
|referring_entity_id&lt;br /&gt;
|The identifier of the object that the user followed a link from.&lt;br /&gt;
|-&lt;br /&gt;
|service_type_id&lt;br /&gt;
|The type of service requested, either fulltext=yes or abstract=yes.&lt;br /&gt;
|-&lt;br /&gt;
|referent_id&lt;br /&gt;
|The identifier of the eprint requested.&lt;br /&gt;
|-&lt;br /&gt;
|referent_docid&lt;br /&gt;
|The document number requested (for fulltext requests).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Manual&amp;diff=2579</id>
		<title>Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Manual&amp;diff=2579"/>
		<updated>2006-12-13T18:47:58Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:Installation|Installing]] EPrints on various platforms.&lt;br /&gt;
&lt;br /&gt;
{{manual}}&lt;br /&gt;
&lt;br /&gt;
The pages linked on the right represent the core pages of the EPrints manual. Other pages on this wiki may be useful as well, but new users should start here.&lt;br /&gt;
&lt;br /&gt;
See the [[Main Page]] for other areas of this wiki.&lt;br /&gt;
&lt;br /&gt;
[[EPrints Directory Structure]] - will be linked somewhere better, later.&lt;br /&gt;
&lt;br /&gt;
[[Workflows]] - the structure of the EP3 workflow files&lt;br /&gt;
&lt;br /&gt;
[[EPScript]] - documentation for the EP3 Scripting language (for use in citations and workflow files).&lt;br /&gt;
&lt;br /&gt;
[[Preservation Support]] in GNU EPrints 3&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Main_Page&amp;diff=2578</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Main_Page&amp;diff=2578"/>
		<updated>2006-12-13T18:47:08Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Welcome to the EPrints Wiki&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The content of this site is technical only. For more information on the EPrints project, visit http://eprints.org/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;We are currently in the process of moving information from the [http://wiki2.eprints.org Old Wiki].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
&lt;br /&gt;
* [[EPrints Manual|EPrints 3]] The manual for the next release of EPrints is being developed here.&lt;br /&gt;
* [http://www.eprints.org/documentation/tech/php/intro.php EPrints 2 and older Versions] The manual for older versions of EPrints are available on the main site.&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[Web Services]] - sneak peek at the upcoming Web Service API&lt;br /&gt;
&lt;br /&gt;
==Scripts, patches and translations==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EPrints on EPrints&#039;&#039;&#039; - the [http://files.eprints.org/ EPrints Files] repository is the place to share scripts, patches and translations. This is also the place where releases of EPrints itself will be archived.&lt;br /&gt;
* [[Files/]] Wiki pages about scripts and patches. There isn&#039;t a page for every script or patch.&lt;br /&gt;
* [[Translating EPrints]] into your language.&lt;br /&gt;
* [[How to contribute]]&lt;br /&gt;
&lt;br /&gt;
==Tips, tricks and howtos==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Installation|Installing]] EPrints on various platforms or in non-standard ways&lt;br /&gt;
* Howto..&lt;br /&gt;
** [[Integrating EPrints with LDAP|integrate with LDAP]] - authenticate users with LDAP/Active Directory server&lt;br /&gt;
** [[CAS|integrate with CAS]] - integrate EPrints with an enterprise single sign-on service&lt;br /&gt;
** Secure EPrints with [[HTTPS]]&lt;br /&gt;
** Add a [[RequestEprint|Request eprint from author]] button (to non-OA records)&lt;br /&gt;
** [[Customizing_RSS_Output|customize RSS output]] - show an institution&#039;s or person&#039;s last n publications&lt;br /&gt;
** [[Howtos|more..]]&lt;br /&gt;
&lt;br /&gt;
==Contributing==&lt;br /&gt;
&lt;br /&gt;
* [[Wiki Guidelines]]&lt;br /&gt;
* [[Wiki Todo List]]&lt;br /&gt;
* [[EPrints:Migration to files.eprints.org]]&lt;br /&gt;
&lt;br /&gt;
==Getting Support==&lt;br /&gt;
&lt;br /&gt;
* [http://www.eprints.org/services/ EPrints Services] - premium support and training from EPrints experts&lt;br /&gt;
* [http://www.eprints.org/software/ Mailing Lists]&lt;br /&gt;
&lt;br /&gt;
==EPrints Projects==&lt;br /&gt;
&lt;br /&gt;
* [[IRRA]] - Supporting the UK research assessment processes through institutional repositories&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Category:Installation&amp;diff=2577</id>
		<title>Category:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Category:Installation&amp;diff=2577"/>
		<updated>2006-12-13T18:41:47Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The default installation of EPrints is on a stand-alone linux system, but this is not the only way EPrints can (and has) been installed.&lt;br /&gt;
&lt;br /&gt;
Here are some other ways:&lt;br /&gt;
&lt;br /&gt;
* [[non-root_proxy|Proxied to a non-root]] user account: Where the server and all associated code is installed without root/admin access to anything&lt;br /&gt;
* [[How to set up EPrints on virtual directories other than root|Hosted on virtual directories other than root]] - sharing with other Web applications on the same server&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2574</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2574"/>
		<updated>2006-12-13T18:24:01Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download [http://wiki.eprints.org/w/Files/EPrints_3.0_Beta_3 Beta 3] of Eprints 3 (release date: early 2007).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2540</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2540"/>
		<updated>2006-11-29T16:18:11Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preservation Support in GNU EPrints 3 =&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/wiki/Preservation_Support View this page with images inline]&lt;br /&gt;
&lt;br /&gt;
GNU EPrints version 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
The features described here have been jointly developed with the [http://preserv.eprints.org/ Preserv project], with coding on the METS and Creative Commons (CC) licensing components by Preserv. The features are designed to allow an EPrints repository to support preservation through a specialist service provider. The key actions covered include:&lt;br /&gt;
&lt;br /&gt;
* Recording changes to a repository object by updating its &#039;preservation metadata&#039; (History Module)&lt;br /&gt;
* Enabling the service provider to download all the files and metadata comprising an object (METS and DIDL export plugins)&lt;br /&gt;
* Notifying the service provider of any rights it has to copy and act on the content of an object (CC licencing)&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export: METS and DIDL plugins ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to disseminate digital objects stored in an EPrints repository, depending on whether the request for an object comes from a human user or a machine (e.g. a search engine robot), and on what service is requested. The request may be for a full-text document, or for the data to be presented in some other format.&lt;br /&gt;
&lt;br /&gt;
To increase the number of &#039;export&#039; formats available in EPrints v3 it is possible to write  &#039;&#039;plugins&#039;&#039; - modular bits of code that are dynamically loaded into the system. Plugins are a new mechanism for customising and extending EPrints by writing code that interacts with the core software but is not part of it. In this way plugins can be written and implemented independently, and made available for others to use. These modules are written in Perl and can perform a number of roles: importing and exporting from and to arbitrary formats, converting documents from one format to another (for full-text indexing) and user interface widgets. Plugins sit in their own directory and are registered by GNU EPrints when the system is run.&lt;br /&gt;
&lt;br /&gt;
EPrints export plugins convert &#039;&#039;repository objects&#039;&#039; (things that contain metadata and files) into streamed data, in most cases XML. Objects can be exported through the EPrints Web interface (in search results, abstract pages or from the user&#039;s workspace), the [http://www.openarchives.org/ OAI-PMH] interface,  or from the command-line `export` script. &lt;br /&gt;
&lt;br /&gt;
There are already a number of object types in EPrints that are supported by export plugins, as shown in Figure 1. The OpenURL !ContextObject export plugin can also be used to export  &#039;&#039;!AccessLog objects&#039;&#039;, which enables access logs to be harvested from GNU EPrints. &#039;&#039;Document objects&#039;&#039; are exported as part of an EPrint object. (There are several other EPrint objects available in EPrints - &#039;&#039;Users, saved searches and History&#039;&#039; - but these aren&#039;t yet exportable, until export plugins have been written to support them.)&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_exports.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 1. Export formats suported by EPrints plugins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the request to export an object from a repository is from a preservation service provider, it will need to obtain all the files associated with the object. Objects that have more than one file are often referred to as &#039;complex objects&#039;.&lt;br /&gt;
&lt;br /&gt;
To support more efficient transfer of complex objects, two formats that may be used to disseminate objects for digital preservation are Metadata Encoding Transmission Standard [http://www.loc.gov/standards/mets/ METS] and  MPEG-21 Digital Item Declaration Language [http://www.chiariglione.org/mpeg/standards/mpeg-21/mpeg-21.htm DIDL]. Examples of the XML exports for these two formats are shown in Figures 2 and 3.&lt;br /&gt;
&lt;br /&gt;
The METS export plugin is derived from work done by the [http://www.inf.aber.ac.uk/bridge/ Repository Bridge] project, who implemented a METS export for EPrints 2. This has been updated for the new plugin architecture and data model in EPrints 3.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_mets.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 2. METS export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DIDL support has been built by Chris Gutteridge (the lead developer on EPrints) as the result of collaboration with researchers from the [http://www.dlib.org/dlib/november03/bekaert/11bekaert.html Los Alamos National Laboratory] who have utilised MPEG-21 DIDL to build digital library systems. While DIDL is less well known in the digital preservation field, it serves a similar purpose and may well end up being more widely used (given the strength of backing of media companies in MPEG standards).&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_didl.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 3. MPEG-21/DIDL export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
EPrints v3 introduces a new &#039;history&#039; function that documents all changes made to records, from the point of deposit (when the record was first created) onwards. Currently this feature is used to provide an audit trail for editorial purposes, but as digital preservation services are developed they will need to modify the content of repositories, e.g. to migrate file formats, and such actions must be recorded to inform later preservation decisions. To keep track of what has happened to a record the repository will need to store both the object itself and all actions that have been performed on it over time.&lt;br /&gt;
&lt;br /&gt;
Figure 4 visualises changes that have been made to an object. In this instance a new &#039;Document&#039; has been added to the record, with the consequent addition of new files.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_history.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 4. History module shows the addition of a new document in the record for an object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Preservation Rights Declaration ==&lt;br /&gt;
&lt;br /&gt;
An issue raised by the British Library, a partner acting as a prospective preservation service provider in the Preserv project, is that it needs appropriate permissions to handle materials for preservation purposes. With this in mind a &#039;license&#039; option has been added to the EPrints deposit process allowing the depositing user to provide an explicit license for access to their deposited materials (Figures 5 and 6). Based on [http://creativecommons.org/ Creative Commons], these licenses have been included in the EPrints v3 beta version. If an explicit license is required for preservation purposes (e.g. the right of a third party to store and act on the material, e.g. perform migration, etc.) this can easily be included.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/preserv_file_upload.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 5. Part of EPrints deposit form showing License field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/preserv_file_upload_license.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 6. Drop-down options from License field&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2539</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2539"/>
		<updated>2006-11-29T16:16:35Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Preservation Support in GNU EPrints 3 =&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/wiki/Preservation_Support View this page with images inline]&lt;br /&gt;
&lt;br /&gt;
GNU EPrints version 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
The features described here have been jointly developed with the [http://preserv.eprints.org/ Preserv project], with coding on the METS and Creative Commons (CC) licensing components by Preserv. The features are designed to allow an EPrints repository to support preservation through a specialist service provider. The key actions covered include:&lt;br /&gt;
&lt;br /&gt;
 * Recording changes to a repository object by updating its &#039;preservation metadata&#039; (History Module)&lt;br /&gt;
 * Enabling the service provider to download all the files and metadata comprising an object (METS and DIDL export plugins)&lt;br /&gt;
 * Notifying the service provider of any rights it has to copy and act on the content of an object (CC licencing)&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export: METS and DIDL plugins ==&lt;br /&gt;
&lt;br /&gt;
There are many ways to disseminate digital objects stored in an EPrints repository, depending on whether the request for an object comes from a human user or a machine (e.g. a search engine robot), and on what service is requested. The request may be for a full-text document, or for the data to be presented in some other format.&lt;br /&gt;
&lt;br /&gt;
To increase the number of &#039;export&#039; formats available in EPrints v3 it is possible to write  &#039;&#039;plugins&#039;&#039; - modular bits of code that are dynamically loaded into the system. Plugins are a new mechanism for customising and extending EPrints by writing code that interacts with the core software but is not part of it. In this way plugins can be written and implemented independently, and made available for others to use. These modules are written in Perl and can perform a number of roles: importing and exporting from and to arbitrary formats, converting documents from one format to another (for full-text indexing) and user interface widgets. Plugins sit in their own directory and are registered by GNU EPrints when the system is run.&lt;br /&gt;
&lt;br /&gt;
EPrints export plugins convert &#039;&#039;repository objects&#039;&#039; (things that contain metadata and files) into streamed data, in most cases XML. Objects can be exported through the EPrints Web interface (in search results, abstract pages or from the user&#039;s workspace), the [http://www.openarchives.org/ OAI-PMH] interface,  or from the command-line `export` script. &lt;br /&gt;
&lt;br /&gt;
There are already a number of object types in EPrints that are supported by export plugins, as shown in Figure 1. The OpenURL !ContextObject export plugin can also be used to export  &#039;&#039;!AccessLog objects&#039;&#039;, which enables access logs to be harvested from GNU EPrints. &#039;&#039;Document objects&#039;&#039; are exported as part of an EPrint object. (There are several other EPrint objects available in EPrints - &#039;&#039;Users, saved searches and History&#039;&#039; - but these aren&#039;t yet exportable, until export plugins have been written to support them.)&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_exports.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 1. Export formats suported by EPrints plugins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the request to export an object from a repository is from a preservation service provider, it will need to obtain all the files associated with the object. Objects that have more than one file are often referred to as &#039;complex objects&#039;.&lt;br /&gt;
&lt;br /&gt;
To support more efficient transfer of complex objects, two formats that may be used to disseminate objects for digital preservation are Metadata Encoding Transmission Standard [http://www.loc.gov/standards/mets/ METS] and  MPEG-21 Digital Item Declaration Language [http://www.chiariglione.org/mpeg/standards/mpeg-21/mpeg-21.htm DIDL]. Examples of the XML exports for these two formats are shown in Figures 2 and 3.&lt;br /&gt;
&lt;br /&gt;
The METS export plugin is derived from work done by the [http://www.inf.aber.ac.uk/bridge/ Repository Bridge] project, who implemented a METS export for EPrints 2. This has been updated for the new plugin architecture and data model in EPrints 3.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_mets.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 2. METS export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
DIDL support has been built by Chris Gutteridge (the lead developer on EPrints) as the result of collaboration with researchers from the [http://www.dlib.org/dlib/november03/bekaert/11bekaert.html Los Alamos National Laboratory] who have utilised MPEG-21 DIDL to build digital library systems. While DIDL is less well known in the digital preservation field, it serves a similar purpose and may well end up being more widely used (given the strength of backing of media companies in MPEG standards).&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_didl.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 3. MPEG-21/DIDL export format example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
EPrints v3 introduces a new &#039;history&#039; function that documents all changes made to records, from the point of deposit (when the record was first created) onwards. Currently this feature is used to provide an audit trail for editorial purposes, but as digital preservation services are developed they will need to modify the content of repositories, e.g. to migrate file formats, and such actions must be recorded to inform later preservation decisions. To keep track of what has happened to a record the repository will need to store both the object itself and all actions that have been performed on it over time.&lt;br /&gt;
&lt;br /&gt;
Figure 4 visualises changes that have been made to an object. In this instance a new &#039;Document&#039; has been added to the record, with the consequent addition of new files.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/eprints_history.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 4. History module shows the addition of a new document in the record for an object&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Preservation Rights Declaration ==&lt;br /&gt;
&lt;br /&gt;
An issue raised by the British Library, a partner acting as a prospective preservation service provider in the Preserv project, is that it needs appropriate permissions to handle materials for preservation purposes. With this in mind a &#039;license&#039; option has been added to the EPrints deposit process allowing the depositing user to provide an explicit license for access to their deposited materials (Figures 5 and 6). Based on [http://creativecommons.org/ Creative Commons], these licenses have been included in the EPrints v3 beta version. If an explicit license is required for preservation purposes (e.g. the right of a third party to store and act on the material, e.g. perform migration, etc.) this can easily be included.&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/preserv_file_upload.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 5. Part of EPrints deposit form showing License field&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://trac.eprints.org/projects/iar/attachment/wiki/Preservation_Support/preserv_file_upload_license.png]&lt;br /&gt;
&#039;&#039;&#039;Figure 6. Drop-down options from License field&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2522</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2522"/>
		<updated>2006-11-16T17:30:21Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNU EPrints 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export ==&lt;br /&gt;
&lt;br /&gt;
== SOAP API ==&lt;br /&gt;
&lt;br /&gt;
== Creative Commons Licensing ==&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2520</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2520"/>
		<updated>2006-11-16T17:10:56Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Download [http://wiki.eprints.org/w/Files/EPrints_3.0_Beta_2 Beta 2] of Eprints 3 (release date: early 2007).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2519</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2519"/>
		<updated>2006-11-16T17:04:58Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----&lt;br /&gt;
&lt;br /&gt;
Download [http://wiki.eprints.org/w/Files/EPrints_3.0_Beta_2 Beta 2] of Eprints 3 (release date: early 2007).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2515</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2515"/>
		<updated>2006-11-16T16:59:45Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installation}}&lt;br /&gt;
&lt;br /&gt;
Place-holder.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2514</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2514"/>
		<updated>2006-11-16T16:59:30Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installation}}&lt;br /&gt;
&lt;br /&gt;
Place-holder.&lt;br /&gt;
&lt;br /&gt;
[[Category:Eprints 3]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Install&amp;diff=2513</id>
		<title>Template:Install</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Install&amp;diff=2513"/>
		<updated>2006-11-16T16:58:30Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Template:Install moved to Template:Installation: Name consistency&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Template:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2512</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2512"/>
		<updated>2006-11-16T16:58:30Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Template:Install moved to Template:Installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2511</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2511"/>
		<updated>2006-11-16T16:58:16Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2510</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2510"/>
		<updated>2006-11-16T16:58:10Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2507</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2507"/>
		<updated>2006-11-16T16:53:46Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place-holder.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Eprints 3]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Install:Eprints_3_on_Microsoft_Windows&amp;diff=2506</id>
		<title>Install:Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Install:Eprints_3_on_Microsoft_Windows&amp;diff=2506"/>
		<updated>2006-11-16T16:53:17Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Install:Eprints 3 on Microsoft Windows moved to Installing Eprints 3 on Microsoft Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Installing Eprints 3 on Microsoft Windows]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2505</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2505"/>
		<updated>2006-11-16T16:53:17Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: Install:Eprints 3 on Microsoft Windows moved to Installing Eprints 3 on Microsoft Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Install}}&lt;br /&gt;
&lt;br /&gt;
Place-holder.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Eprints 3]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2504</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2504"/>
		<updated>2006-11-16T16:52:18Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Install}}&lt;br /&gt;
&lt;br /&gt;
Place-holder.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Eprints 3]]&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2503</id>
		<title>Template:Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Template:Installation&amp;diff=2503"/>
		<updated>2006-11-16T16:48:38Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----&lt;br /&gt;
&lt;br /&gt;
Install Eprints 3 on [[Installing Eprints 3 on Fedora Core 5|Fedora Core 5]] | [[Installing EPrints 3 on RedHat Enterprise 4|RedHat Enterprise 4]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2502</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2502"/>
		<updated>2006-11-16T16:47:29Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Install}}&lt;br /&gt;
&lt;br /&gt;
Place-holder.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2501</id>
		<title>Installing Eprints 3 on Microsoft Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Installing_Eprints_3_on_Microsoft_Windows&amp;diff=2501"/>
		<updated>2006-11-16T16:44:15Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Place-holder.&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2497</id>
		<title>Preservation Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Preservation_Support&amp;diff=2497"/>
		<updated>2006-11-16T16:29:42Z</updated>

		<summary type="html">&lt;p&gt;Timbrody: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNU EPrints 3 introduces a number of features that will help support the preservation of digital objects stored in repositories. We refer here to preservation as providing for the long-term access to digital objects.&lt;br /&gt;
&lt;br /&gt;
== History Module ==&lt;br /&gt;
&lt;br /&gt;
== Complex-Object Export ==&lt;br /&gt;
&lt;br /&gt;
== SOAP API ==&lt;/div&gt;</summary>
		<author><name>Timbrody</name></author>
	</entry>
</feed>