SHERPA/RoMEO Logo   . . . opening access to research  
Home  •  Search •  Journals •  Publishers •  FAQ •  Suggest •  About  

RoMEO Download Files

English | Español | Magyar | Nederlands | Português  

Available Download Files

1. Journals Titles & ISSNs

http://www.sherpa.ac.uk/downloads/journal-title-issns/your API Key/format option/
e.g. http://www.sherpa.ac.uk/downloads/journal-title-issns/83jLFoo23n3/tsv/
Tips: Use 'journal-title-issns' instead of 'journal-titles' if you wish to obtain the ISSNs for a given title in addition to the RoMEO Record ID. Load 'journal-title-issns' data into a database table or a large associative array where the titles are the keys. You may wish to normalise the titles while doing this, to facilitate searching.
Please note that while we endeavour to assign ISSNs to the correct print or electronic format, based on information on the publishers' websites, RoMEO cannot guarantee their accuracy. There are about 23.7k journal title/ISSN records (2014-10-08).

2. Journals ISSNs Only

http://www.sherpa.ac.uk/downloads/journal-issns/your API Key/format option/
e.g. http://www.sherpa.ac.uk/downloads/journal-issns/83jLFoo23n3/csv/
Tips: Load 'journal-issns' data into a database table or a large associative array where the ISSNs are the keys. Please note that there are about 37.2k ISSN records (2014-10-08).

3. Journals Titles Only

http://www.sherpa.ac.uk/downloads/journal-titles/your API Key/format option/
e.g. http://www.sherpa.ac.uk/downloads/journal-titles/83jLFoo23n3/tsv/
Tips: Load 'journal-titles' data into a database table or a large associative array where the titles are the keys. You may wish to normalise the titles while doing this, to facilitate searching. Please note that there are about 23.7k journal title records (2014-10-08).

4. Summary SHERPA/RoMEO Policies

http://www.sherpa.ac.uk/downloads/policies-summary.php/your API Key/format option/
e.g. http://www.sherpa.ac.uk/downloads/policies-summary/83jLFoo23n3/xml/
Tips: If you wish to use summary policy data, load 'policies-summary' data into a database table or a large associative array where the RoMEO Record IDs are the keys. Please note that there are about 1950 policy records (2014-10-08).

5. Full SHERPA/RoMEO Policies

If you wish to use full policy data, you need to use the RoMEO API.
Use the following arguments to download all the full policies.
http://www.sherpa.ac.uk/romeo/api29.php?all=yes&ak=your API Key
e.g. http://www.sherpa.ac.uk/romeo/api29.php?all=yes&ak=83jLFoo23n3
After your initial download, you could afterwards just download policies that have been added or updated since a specified date. This should be more efficient. The relevant syntax is:
http://www.sherpa.ac.uk/romeo/api29.php?pdate=date in yyyy-mm-dd format&ak=your API Key
e.g. http://www.sherpa.ac.uk/romeo/api29.php?pdate=2013-11-20&ak=83jLFoo23n3
Tips: It is probably most efficient to generate output display objects from the API data (e.g. HTML snippets) for each RoMEO ID and store these in a database table, or as files with filenames including the RoMEO Record ID, or in a large associative array where the RoMEO Record IDs are the keys. Please note that there are about 1950 policy records (2014-10-08).

6. Dates of the latest Additions and Updates to SHERPA/RoMEO

http://www.sherpa.ac.uk/downloads/download-dates.php/your API Key/format option/
e.g. http://www.sherpa.ac.uk/downloads/download-dates/83jLFoo23n3/html/
Tips: Use these dates control your program. If RoMEO has not been updated since your last successful download, there is no need to repeat the download.

API Access Keys

An Access Key is required in order to access the download files (which can also be used for the RoMEO API). If you do not already have a RoMEO API Access Key, you can register for one at:

http://www.sherpa.ac.uk/romeo/apiregistry

We recommend that you have one API Key per application, because this enables us to provide better support. API Keys should not be passed outside your organisation. Software suppliers must ensure that clients register for their own API Keys.

File Format Options

?format=xml [default] - XML data, one element per record, with computable data in attributes

?format=csv - Comma separated values, one record per line

?format=tsv - Tab separated values, one record per line

?format=html - Displayable HTML table

Data Model

journal-title-issns
field Data type Null? Description
journaltitle varchar(64) not null Journal title - mixed case
issn varchar(9) not null Journal ISSN (print)
essn varchar(9) not null Journal ISSN (electronic)
romeoid integer not null SHERPA/RoMEO publisher/policy record ID
dateupdated timestamp not null Date last updated in RoMEO

 

journal-issns
field Data type Null? Description
issn varchar(9) not null Journal ISSN - may be print or electronic ISSN
romeoid integer not null SHERPA/RoMEO publisher/policy record ID
dateupdated timestamp not null Date last updated in RoMEO

 

journal-titles
field Data type Null? Description
journaltitle varchar(64) not null Journal title - mixed case
romeoid integer not null SHERPA/RoMEO publisher/policy record ID
dateupdated timestamp not null Date last updated in RoMEO

 

policies-summary
field Data type Null? Description
romeoid integer not null SHERPA/RoMEO publisher/policy record ID
publisher varchar() not null Publisher's name
policy varchar() not null Title or descriptive heading for the policy, or '[Default policy]'
country char(2) not null 2-letter ISO Country Code - upper case
romeocolour enum() not null 'green', 'blue', 'yellow', or 'white'
publishedpermission enum() not null 'can', 'cannot', 'restricted', 'unclear', or 'unknown'. 'gray' (non-RoMEO data) does not appear in this list
publishedrestrictions boolean not null 'TRUE' if restrictions preventing immediate archiving of the Publisher's version/PDF on top of any embargo
publishedmaxembargo integer Maximum embargo for the Publisher's version/PDF - Months
acceptedpermission enum() not null 'can', 'cannot', 'restricted', 'unclear', or 'unknown'. 'gray' (non-RoMEO data) does not appear in this list
acceptedrestrictions boolean not null 'TRUE' if restrictions preventing immediate archiving of the Accepted version on top of any embargo
acceptedmaxembargo integer Maximum embargo for the Accepted version (Post-print) - Months
submittedpermission enum() not null 'can', 'cannot', 'restricted', 'unclear', or 'unknown'. 'gray' (non-RoMEO data) does not appear in this list
submittedrestrictions boolean not null 'TRUE' if restrictions preventing immediate archiving of the Submitted version on top of any embargo
submittedmaxembargo integer Maximum embargo for the Submitted version (Pre-print) - Months
oapublishing enum() Type of open access publishing - 'All journals OA' or 'Paid OA options'
status enum() no null Status of the RoMEO record - 'public' or 'provisional'
updated timestamp not null Date last updated in RoMEO

 

download-dates
field Data type Null? Description
publisherspolicies latestaddition timestamp not null Date the latest publisher/policy was added to RoMEO
publisherspolicies latestupdate timestamp not null Date of the latest update to the RoMEO publisher/policy database
journals latestaddition timestamp not null Date the latest journal was added to RoMEO
journals latestupdate timestamp not null Date of the latest update to the RoMEO journal database

 

Entity Relationship Diagram

Entity relationship diagram of SHERPA/RoMEO downloads

All entities are linked using the indicated fields

Pseudocode for Suggested Algorithm

Caching the RoMEO download files will make your applications more efficient by reducing the need to submit RoMEO API requests. When a journal is not present in the downloads, you may still need to use the API to get policy data from the non-RoMEO databases DOAJ, Zetoc, and Entrez.

The following pseudocode suggests how you could use cached downloads and the API to look up RoMEO policy data for your applications.

Main Algorithm

// Clear the RoMEO ID to initialise
$romeoid = null;
// If a Journal ISSN is present, look up its RoMEO ID in your cache
if (!is_null($issn)) {
  $romeoid = lookupCache($issn);
};
// If the RoMEO ID has not already been found and a Journal Title is present, look up its RoMEO ID in your cache
if (is_null($romeoid) and !is_null($journaltitle)) {
  $romeoid = lookupCache($journaltitle);
};
// Handle the outcome of the lookups
if (is_null($romeoid)) {
  // The journal was not found. Use the RoMEO API to check DOAJ, Zetoc and Entrez
  if (!is_null($issn)) {
    $romeoapidata = checkRoMEOapi($issn);
  } else {
    $romeoapidata = checkRoMEOapi($journaltitle);
  };
  print $romeoapidata;
} else {
  // Journal found in the cache. Display summary or full data as required
  print showSummaryPolicyData($romeoid) or showFullPolicyData($romeoid);
};

Suggested Functions

/* ------ Find the RoMEO ID of a Journal ISSN or title in the Cache
Parameters:
  $query = The Journal ISSN or title to be processed
Returns:
  Relevant $romeoid if successful. Otherwise null
*/
function lookupCache($query) {
  $romeoid = null;
  // Check if format of $query matches an ISSN - e.g. using a regular expression
  if (isISSN($query])) {
    // $query is an ISSN. Look it up in 'journal-issns'
    if (record 'journal-issns'[$query] exists) {
      $romeoid = record 'journal-issns'[$query];
    };
  } else {
    // $query is not an ISSN. Look it up in 'journal-titles' or 'journal-title-issns'
    if (record 'journal-titles'[$query] exists) {
      $romeoid = record 'journal-titles'[$query];
    };
  };
  return($romeoid);
};

/* ------ Check a journal title or ISSN in the RoMEO API
Parameters:
  $query = The relevant Journal Title or ISSN
Returns:
  Displayable data if successful. Otherwise a 'Missing policy' message
*/
function checkRoMEOapi($query) {
  $displayabledata = "Missing policy message";
  // Check if format of $query matches an ISSN - e.g. using a regular expression
  if (isISSN($query])) {
    // $query is an ISSN. Run a RoMEO API ISSN query
    $rawapidata = file("http://www.sherpa.ac.uk/romeo/api29/issn/[$query]/[$apikey]");
  } else {
    // $query is not an ISSN. Run a RoMEO API exact journal title query
    $rawapidata = file("http://www.sherpa.ac.uk/romeo/api29.php?jtitle=[$query]&ak=[$apikey]");
  };
  // Handle the outcome of the API query - Extract the 'outcome' and any 'publisher id' from $rawapidata
  $outcome = String extracted from the <outcome> field;
  $id = String extracted from the <publisher id=""> argument - set to null if not present;
  if ($outcome == "singleJournal") {
    // Unique journal found - Check if $id is a RoMEO publisher/policy ID
    if (is_numeric($id)) {
      // This is a RoMEO record ID. Get displayable summary or full data from cache as required
      $displayabledata = showSummaryPolicyData($id) or showFullPolicyData($id);
    } else {
      // This is not a RoMEO record ID. Handle the non-RoMEO data.
      $displayabledata = Data extracted and formatted from $rawapidata;
    };
  } else {
    // Unique journal not found
    $displayabledata = "Missing policy message";
  };
  return($displayabledata);
};

/* ------ Display relevant data from the policies-summary table
Parameters:
  $romeoid = The ID of the relevant RoMEO publisher/policy record
Returns:
  The required data if successful. Otherwise null
*/
function showSummaryPolicyData($romeoid) {
  $displayabledata = null;
  if (exists($romeoid)) {
    $displayabledata = Data extracted and formatted from the RoMEO 'policies-summary' table;
  };
  return($displayabledata);
};

/* ------ Display relevant data from the policies-full table
Parameters:
  $romeoid = The ID of the relevant RoMEO publisher/policy record
Returns:
  The required data if successful. Otherwise null
*/
function showFullPolicyData($romeoid) {
  $displayabledata = null;
  if (exists($romeoid)) {
    $displayabledata = Data extracted and formatted from the RoMEO 'policies-full' table;
  };
  return($displayabledata);
};

Last updated: 08-Oct-2014

© 2006-2017, University of Nottingham Contact us