Islandora Scholar is a suite of modules designed to help Islandora function as an Institutional Repository. It provides a framework for handling Citation and Thesis objects, and a variety of additional features for working with citations. It includes:
- Citation Content Model and Thesis Content Model (and associated default forms)
- Display formatted citations based on MODS data based on user-uploaded CSL files
- (optional) tab on Citation objects containing the self-archiving policies of the associated periodical, based on Sherpa/RoMEO
- (optional) links on Citation and Thesis objects to search for them in Google Scholar or your local discovery layer
- Importers and populators to create objects based on DOIs, PMIDs, Endnote XML, or RIS files (see associated submodules)
- Ability to embargo objects or datastreams permanently or with a time limit (see Scholar Embargo submodule)
- Google Scholar-ready microdata in meta tags (see Islandora Google Scholar submodule)
This module requires the following modules/libraries:
- Islandora
- Tuque
- Islandora Solr
- Bibutils (included in /modules)
- Citeproc (included in /modules)
- CSL (included in /modules)
The Citeproc module depends on the citeproc-php library, which should be installed in the sites/all/libraries
directory, such that the main CiteProc.php
file is located at sites/all/libraries/citeproc-php/CiteProc.php
. More information is available in Citeproc's README.md file.
The Bibutils module depends on Bibutils, a command-line tool which must be installed on the server. More information is available in Bibutils' README.md file.
Install as usual, see this for further information. This module requires new Fedora objects. If enabling through Drush, use the administrative user (e.g. drush en -u 1 islandora_scholar
).
Configure Islandora Scholar at Administration » Islandora » Solution pack configuation » Scholar (admin/islandora/solution_pack_config/scholar
).
Further documentation of the available options is available at our wiki.
Ouch! Using caution here can be useful. A small change can cause an issue that could easily go unnoticed for some time. The documentation for this can be extensive. Please use MODS User Guidelines Version 3 for the basics. Islandora Scholar XPath Configuration is at /admin/islandora/solution_pack_config/scholar/xpaths
Islandora-Collaboration-Group: Description and breakdown of XPaths and Keys, Additional information at Github/Islandora Scholar
Additional XPath Configurations:
- Google Scholar Search XPaths: admin/islandora/solution_pack_config/scholar
- Library Catalog Search XPaths Configuration Page: 'admin/islandora/solution_pack_config/scholar#edit-library-catalog-search
Clicking the "Save Configuration" will create drupal variable for each of these. Clicking "Reset all XPaths to Defaults" will delete the drupal global variables and fault back to the hard coded ones. Using the demo object will not modify the object, this is for identifying what MODS values are read with the specified XPath.
These XPaths are shared within most of the submodules. To see the MODS value after editing an entry, tab to the next field.
-
Title
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:titleInfo/mods:title
- XPath to use for title.
-
Subtitle
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]//mods:subTitle
- XPath for Coins submodule to construct the first entry in an array of subtitle entries.
-
Abstract
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:abstract
- XPath to use for the abstract.
-
Family Name
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:name[mods:role/mods:roleTerm = "author"]/mods:namePart[@type = "family"]
- XPath to use for the family in the bibutils submodule.
- XML of the mods:name to the processed format:
-
Given Name
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:name[mods:role/mods:roleTerm = "author"]//mods:namePart[@type = 'given']
- XPath to use for the given.
-
Authors
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:name/mods:role[mods:roleTerm = "author"]/../mods:namePart[@type="family"]
- XPath to use for authors in the bibliography submodule for display.
-
Created Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:dateCreated
- XPath to use for the created_date.
These XPaths are shared within most of the submodules. To see the MODS value after editing an entry, tab to the next field.
-
Degree Grantor
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:name[@type="corporate"][mods:role/mods:roleTerm = "Degree grantor"]/mods:namePart
- XPath to use for degree grantor.
-
Genre
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:genre
- XPath to use for genre.
-
Host Title
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="host"]//mods:title
- XPath to use for the host_title.
-
ISSN
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="issn"]
- XPath to use for the issn.
-
Issue
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:part/mods:detail[@type="issue"]/mods:number
- XPath to use for the issue title, name or number.
-
Online Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:recordInfo/mods:recordCreationDate
- XPath to use for the online_date.
These XPaths are shared within most of the submodules. To see the MODS value after editing an entry, tab to the next field.
-
Department
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="u2"]
- XPath to use for the department.
-
Related Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="host"]//mods:date
- XPath to use for the related_date.
-
Start Page
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]//mods:extent[@unit="page"]/mods:start
- XPath to use for the start_page.
-
Embargo Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:dateOther[@type="embargo"]
- XPath to use for the embargo_date.
-
End Page
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]//mods:extent[@unit="page"]/mods:end
- XPath to use for the end_page.
-
Origin Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:originInfo/mods:dateIssued
- XPath to use for the origin_date.
-
Part Date
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:part/mods:date
- XPath to use for the part_date.
-
Volume
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:part/mods:detail[@type="volume"]/mods:number
- XPath to use for volume number / title.
These XPaths are shared within most of the submodules. To see the MODS value after editing an entry, tab to the next field.
-
Subtitle used for Citeproc JSON
- Modify to refresh value (PID for demo object is required).
- Default Value: ../mods:subTitle
- XPath to use for subtitle. Default is a relative path from the title (declared above as Title with a default value: //mods:mods[1]/mods:titleInfo/mods:title). If there is a value it will display as
title: subtitle
-
Nonsort used for Citeproc JSON
- Modify to refresh value (PID for demo object is required).
- Default Value: ../mods:nonSort
- XPath to use for title's nonsort values. The defaults are relative path from the title (declared above). If there is a value it will display as
non_sort title
-
Call number
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:classification
- XPath to use for the call number.
-
Series Title
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="series"]/mods:titleInfo[not(@type)]/mods:title
- XPath to use for series title.
-
Container title
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="host"]/mods:titleInfo[not(@type)]/mods:title
- XPath to use for the container search.
-
DOI
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="doi"]
- XPath to use for DOI.
-
Edition
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:edition
- The XPath to use edition.
-
Event Title
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1][mods:genre[@authority="local"]="conferencePaper"]/mods:relatedItem/mods:titleInfo/mods:title
- XPath to use for event type.
-
Event Place
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1][mods:genre[@authority="marcgt"][text()="conference publication"]]/mods:originInfo/mods:place/mods:placeTerm
- XPath to use for event place property. Gets the event-place property for the Citation.
-
Event
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1][mods:genre[@authority="local"][text()="conferencePaper"]]/mods:originInfo/mods:place/mods:placeTerm
- XPath to use for event place. Gets the event-place property for the Citation. If the value of
Event Place
is empty Citeproc will default to this.
-
ISBN
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="isbn"]
- XPath to use for ISBN number.
-
Note
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:note
- XPath to use for notes.
-
Number
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="series"]/mods:titleInfo/mods:partNumber
- XPath to use for series part number.
-
Publisher
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:publisher
- XPath to use for Publisher.
-
Publisher place
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:place/mods:placeTerm
- XPath to use for publisher-place.
-
URL
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:location/mods:url
- XPath to use for URL.
-
Accession Number
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="accession"]
- XPath to use for the accession number.
-
PMCID
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="pmc"]
- XPath to use for the PubMed Central reference number (PMCID).
-
NIH Manuscript Submission Reference Number
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:identifier[@type="mid"]
- XPath to use for NIH Manuscript Submission Reference Number (NIHMSID).
-
Property
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1][mods:genre[@authority="marcgt"][text()="conference publication"]]/mods:relatedItem/mods:titleInfo/mods:title
- XPath to use for property.
-
Pages
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:part/mods:extent[@unit="pages"]
- XPath to use for pages.
-
Endnote authority genre types
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:genre[@authority="endnote"]
- XPath to use for types like "Journal Article, ".
-
MARC authority genre types
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:genre[@authority="marcgt"]
- XPath to use for type_marcgt.
-
→ MARC genre type (relative child): chapter titles in a book
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type='host']/mods:titleInfo/mods:title
- Relative child XPath to use for type_marcgt titles (Book uses this for title or defaults back to the book title).
-
MARC genre type related
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem/mods:genre[@authority="marcgt"]
- XPath to use for type_marcgt_related.
-
types local auth
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:genre[not(@authority="marcgt" or @authority="endnote")]
- XPath to use for types_local_auth.
-
Season
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:dateOther[@type="season"]
- XPath to use for season.
-
Date Issued
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:dateIssued | //mods:mods[1]/mods:relatedItem[@type="host"]/mods:part/mods:date
- XPath to use for date_issued.
-
Date Captured
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:originInfo/mods:dateCaptured
- XPath to use for the date_captured.
-
Names
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:name[normalize-space(mods:namePart)]
- XPath to use for the names.
-
Container Author
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="host"]/mods:name
- XPath to use for the container-author.
-
Series Editor
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]/mods:relatedItem[@type="series"]/mods:name
- XPath to use for the series editor.
-
Role Term
- Modify to refresh value (PID for demo object is required).
- Default Value: //mods:mods[1]//mods:role/mods:roleTerm
- XPath to use for the role_term.
As of Islandora 7.x-1.3, PDF datastreams of citationCModel objects are expected to have derivatives (PREVIEW, TN, optionally FULL_TEXT). Existing citations that are missing PDF-derived datastreams can be updated using the provided Drush script, which will generate the derivatives.
This can be done by running:
drush -u 1 islandora-scholar-update-citations
Further documentation for this module is available at our wiki.
Aside from the submodules bundled with Scholar, several other modules can be useful for creating an institutional repository:
- Entities Solution Pack - create and manage objects representing people (scholars) and organizations (departments)
- Islandora Badges - display citation counts for objects, pulling from a variety of citation-tracking APIs
- Islandora Usage Stats - keeps track of views/downloads of Islandora objects.
Having problems or solved a problem? Check out the Islandora google groups for a solution.
Current maintainers:
If you would like to contribute to this module, please check out CONTRIBUTING.md. In addition, we have helpful Documentation for Developers info, as well as our Developers section on the Islandora.ca site.