Github

Step by Step Setup (IR)

This will cover these topic

  • Needed modules
  • User groups
  • Special Permissions Considerations
  • Create a Custom “Thesis” content type
  • Moderation Workflow Setup
  • Submission process
  • Review/Publication process
  • Google Scholar Indexing
  • Sharing Metadata
  • Embargos
  • Tombstoning

The simplest way to implement a highly customizable submit, review, accept, publish workflow is to leverage Drupal’s Content Moderation. Most of the needed steps have already been accomplished by existing modules and workflows. Once the content has been reviewed it can be passed as a node and several additional actions can be fired at this or any other stage of the submissions/publish process.

Needed Modules

★ Drupal’s Core Module Content Moderation

User groups

Create some user roles (admin > people > roles). For this example the following roles would be useful to add.

  • Student
  • Thesis Manager
  • Dissertation Manager

We will set their permissions later but for now create a user for each of these and add the corresponding roles.

users and roles

Special Permissions Considerations

Repository content should not be immediately accessible to the public. The Drupal 8 module permissions_by_term and the sub-module permissions_by_entity allows us to create a ‘ETD-submission’ term that, when applied to nodes and media will restrict access to them (and files as an extension of media) to permission group members.

However, access to files will only be checked if they are in a managed file system such as the Drupal private filesystem or one provided by a Flysystem adapter (like the Fedora Adapter provided by Islandora 8). When Islandora 8 creates derivative media it places them in the public file system by default. This is generally a good idea because it is more performant than other filesystems but then derivatives of restricted items become publicly accessible, which is not what we want. A repository manager can change the derivative actions to save them into either the private of Fedora file systems, but this comes at a performance cost when accessing files that are publicly accessible.

Enter file_access_fix. This handy module will check an entity (node, media, etc.) on update to see if it has any referenced files. If so, it will check if the entity is available by Anonymous users and will move the file to the appropriate filesystem, either public or private, based on it’s availability. So, if I create a derivative that is saved in the private filesystem by default, this module will check to see if the media is publicly accessible, if so, it will move it to the more performant public filesystem for me! If I ever decide that the media actually should be restricted, the module will move the file from the public filesystem back to the private one. See more on Permissions By Entity & File Access Fix

Create Custom types

Create Custom “Thesis, Dissertation, and Supplemental “ media types and “Thesis, Dissertation” content types. Create the media types first.

Create Media Types

The Media Types list should now include Supplimental, Thesis and Dissertation (Admin > Structure > Media Types)

Since objects in Islandora 8 are stored in Drupal as Nodes, we use the standard Drupal Content Types system to create and edit our ‘ingest forms’ Content Types in Drupal 8. Islandora 8 forms are Drupal forms, and if you are already familiar with Drupal Field UI, you’re already well equipped to create and modify your own ingest forms in Islandora 8.

Highly recommended that you follow the Islandora documentation instructions.

content types manage fields screenshot

Creating a custom Media type

Media types added

Create Content Types

  • Go to admin > structure > content types and click Add content type
  • Give it a name “Thesis Content”
    • In the default options, uncheck Published and Promoted to the front page then click save and manage fields.

By default it comes with a Body field. We need to add 2 File types (1 for the PDF and 1 for any supplemental files) to attach to the submission. The PDF is required but the supplemental files aren’t.

  • Click Add Field
  • Select from the “Add a new field” dropdown Media
    • Add a label “thesis_pdf” and click save
    • Check Flysystem: fedora & Limited to 1
    • Check Required field is checked and Media type Thesis
  • Click Add Field again
  • Select from the “Add a new field” dropdown File
    • Add a label “thesis_supplimental” and click save
    • Settings Flysystem: fedora & Unlimited
    • Setting on the next page is Required field is unchecked
    • Allowed file extensions doesn’t allow for wildcards so you’ll need to put in every expected extension.
    • Maximum upload size 10GB (this is per-file)

Manage fields after adding content

Click on Manage Form Display and drag Published, Sticky at the top of the lists, and Promote to front page to the disabled section and hit save.

Moderation Workflow Setup

There are 3 categories to set up; states, transitions, assign to specific content types.

  • States: The different states the submission could possible be in
    • Submitted, reviewed and waiting for update, embargoed, published, tombstoned, etc.
  • Transitions: Applying actions when transitioning from one state to another.
    • From (submitted, waiting for update, under review) to published
    • From (published, embargoed) to tombstoned

Create all of the states and transitions. There is very little instructions needed to achieve this. Add This workflow applies to: to media Type Thesis

workflow applies to

Submission process

..

Review/Publication process

https://img.youtube.com/vi/8R2qiFMU8v8/hqdefault.jpg

Google Scholar Indexing

Google Scholar has many requirements and a few alternatives to those requirements. Mainly the content hosted on your website must consist primarily of scholarly articles - journal papers, conference papers, technical reports, or their drafts, dissertations, pre-prints, post-prints, or abstracts. Content such as news or magazine articles, book reviews, and editorials is not appropriate for Google Scholar. Content must make either the full text of the articles or their complete author-written abstracts freely available above the fold. There are several other restrictions that can be found at Google Scholar Inclusion Guidelines

Metatag Google Scholar

Currently the Metatag Google Scholar along with the metatag modules adds the following Highwire Press tags:

  • citation_title
  • citation_author
  • citation_publication_date
  • citation_journal_title
  • citation_issn
  • citation_isbn
  • citation_volume
  • citation_issue
  • citation_firstpage
  • citation_lastpage
  • citation_dissertation_institution
  • citation_technical_report_institution
  • citation_technical_report_number
  • citation_pdf_url

Example

<meta name="citation_title" content="The testis isoform of the phosphorylase kinase catalytic subunit (PhK-T) plays a critical role in regulation of glycogen mobilization in developing lung">
<meta name="citation_author" content="Liu, Li">
<meta name="citation_author" content="Rannels, Stephen R.">
<meta name="citation_author" content="Falconieri, Mary">
<meta name="citation_author" content="Phillips, Karen S.">
<meta name="citation_author" content="Wolpert, Ellen B.">
<meta name="citation_author" content="Weaver, Timothy E.">
<meta name="citation_publication_date" content="1996/05/17">
<meta name="citation_journal_title" content="Journal of Biological Chemistry">
<meta name="citation_volume" content="271">
<meta name="citation_issue" content="20">
<meta name="citation_firstpage" content="11761">
<meta name="citation_lastpage" content="11766">
<meta name="citation_pdf_url" content="http://www.example.com/content/271/20/11761.full.pdf">

The title tag, e.g., citation_title or DC.title, must contain the title of the paper. Don’t use it for the title of the journal or a book in which the paper was published, or for the name of your repository. This tag is required for inclusion in Google Scholar.

The author tag, e.g., citation_author or DC.creator, must contain the authors (and only the actual authors) of the paper. Don’t use it for the author of the website or for contributors other than authors, e.g., thesis advisors. Author names can be listed either as “Smith, John” or as “John Smith”. Put each author name in a separate tag and omit all affiliations, degrees, certifications, etc., from this field. At least one author tag is required for inclusion in Google Scholar.

The publication date tag, e.g., citation_publication_date or DC.issued, must contain the date of publication, i.e., the date that would normally be cited in references to this paper from other papers. Don’t use it for the date of entry into the repository - that should go into citation_online_date instead. Provide full dates in the “2010/5/12” format if available; or a year alone otherwise. This tag is required for inclusion in Google Scholar.

For journal and conference papers, provide the remaining bibliographic citation data in the following tags: citation_journal_title or citation_conference_title, citation_issn, citation_isbn, citation_volume, citation_issue, citation_firstpage, and citation_lastpage. Dublin Core equivalents are DC.relation.ispartof for journal and conference titles and the non-standard tags DC.citation.volume, DC.citation.issue, DC.citation.spage (start page), and DC.citation.epage (end page) for the remaining fields. Regardless of the scheme chosen, these fields must contain sufficient information to identify a reference to this paper from another document, which is normally all of: (a) journal or conference name, (b) volume and issue numbers, if applicable, and (c) the number of the first page of the paper in the volume (or issue) in question.

For theses, dissertations, and technical reports, provide the remaining bibliographic citation data in the following tags: citation_dissertation_institution, citation_technical_report_institution or DC.publisher for the name of the institution and citation_technical_report_number for the number of the technical report. As with journal and conference papers, you need to provide sufficient information to recognize a formal citation to this document from another article.

For all document types, the guiding principle is to present your article as it would normally be cited in the “References” section of another paper. E.g., citations to technical reports normally include their assigned numbers, so the number of the report should be present in some appropriate field. Likewise, the name of the journal should be written as “Transactions on Magic Realism” or “Trans. Mag. Real.”, not as “Magic Realism, Transactions on” or “T12”. Omission or unusual presentation of key bibliographic fields can lead to mis-identification of your articles.

All tag values are HTML attributes, so you must escape special characters appropriately. E.g.,<meta name="citation_title" content="&quot;Andar com meus sapatos&quot; - uma an&#225;lise cr&#237;tica">. There’s no need to escape characters that are written directly in your webpage’s character encoding, such as Latin diacritics on a page in ISO-8859-1. However, you must still escape the quotes and the angle brackets.

The "<meta>" tags normally apply only to the exact page on which they’re provided. If this page shows only the abstract of the paper and you have the full text in a separate file, e.g., in the PDF format, please specify the locations of all full text versions using citation_pdf_url or DC.identifier tags. The content of the tag is the absolute URL of the PDF file; for security reasons, it must refer to a file in the same subdirectory as the HTML abstract.

Sharing Metadata

Please see OAI-PMH

Embargos

A short demo of the major functionality of the Drupal 8 Embargoes module for the Islandora community, using the Islandora 8 Vagrant virtual machine and Repository Item type nodes.

Embargoes demo for Islandora 8

Tombstoning

tombstone logo
Tombstones is a module that informs users who attempt to view deleted content that the resource has been removed instead of showing a generic 404 page. This was written by Bryan Brown from Florida State University.

This follows the datacite’s best practices for tombstoning including it does 400 response with the appropriate content.

tombstone demo

Other

Google Scholar’s inclusion requirements, documents larger than 5MB, such as books and long dissertations, should be uploaded to Google Book Search.

Although not common I can’t seem to locate a ready made solution for uploading content from Drupal 8 into Google Book Search’s API. It’s unknown how long this would take and it’s unlikely to be nessisary based on the sizes of the current dissertations currently being hosted in Bepress.