Skip to content

A Solution Pack for handling citations and theses. A foundational module for implementing Islandora as an institutional repository.

License

Notifications You must be signed in to change notification settings

Islandora/islandora_scholar

Repository files navigation

Islandora Scholar Build Status

Introduction

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

Requirements

This module requires the following modules/libraries:

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.

Installation

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).

Configuration

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.

Manually Setting XPaths

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

ISLANDORA SCHOLAR XPATH CONFIGURATION

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.

GENERAL XPATH CONFIGURATIONS

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.

GOOGLE SCHOLAR SUBMODULE XPATH CONFIGURATIONS

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.
  • Google Scholar Publication Date SOLR Field

    • The solr date field used to facet by publication date during Google Scholar indexing. This is an autocomplete field. Start typing the solr field name and then select from the list. Be sure to select a field ending with "_dt" or "_mdt", otherwise solr errors will result during google indexing.
    • Defaults value: mods_originInfo_dateIssued_mdt
  • Google Scholar Abstract SOLR Field

    • This is used when displaying object abstracts as required by Google Scholar.
    • Defaults value: mods_abstract_ms
  • Excluded Content Models

    • Enter a comma-separated list of content model PIDs to exclude from Google Scholar search indexing. For example: islandora:collectionCModel, islandora:newspaperCModel
    • Defaults to: islandora:collectionCModel
  • Additional Google Scholar Configuration Notes

COINS SUBMODULE XPATH CONFIGURATIONS

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.

CITEPROC SUBMODULE XPATH CONFIGURATIONS

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.

Upgrade notices

7.x-1.3

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

7.x-1.14

The TCPDF library was previously directly included inside the citation_exporter module; it has now been removed so that it can be managed properly via the Drupal Libraries module. If the citation_exporter submodule is installed when updating to Islandora 7.x-1.14, it is imperative that the TCPDF library is installed in the site libraries folder for citation exports to continue to properly function.

Check the README.md for the citation_exporter submodule for details on downloading and installing the TCPDF library.

Documentation

Further documentation for this module is available at our wiki.

Complementary Modules

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.

Troubleshooting/Issues

Having problems or solved a problem? Check out the Islandora google groups for a solution.

Maintainers/Sponsors

Current maintainers:

Development

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.

License

GPLv3