Skip to content
This repository has been archived by the owner on May 22, 2020. It is now read-only.

Latest commit

 

History

History
113 lines (73 loc) · 4.4 KB

README.md

File metadata and controls

113 lines (73 loc) · 4.4 KB

ResearchMetadataAnnouncement

Metadata extraction from the Pure Research Information System and transformation of the metadata into an announcement.

Status

Gem Version Maintainability

Installation

Add this line to your application's Gemfile:

gem 'research_metadata_announcement'

And then execute:

$ bundle

Or install it yourself as:

$ gem install research_metadata_announcement

Usage

Configuration

Create a hash for passing to a transformer.

config = {
  url:      'https://YOUR_HOST/ws/api/59',
  username: 'YOUR_USERNAME',
  password: 'YOUR_PASSWORD',
  api_key:  'YOUR_API_KEY'
}

Transformation

Create a metadata transformer for a Pure dataset.

transformer = ResearchMetadataAnnouncement::Transformer::Dataset.new config

Give it a Pure identifier and get an announcement.

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'

Optionally, use the :composition keyword argument to pass in an array of components (duplicates are ignored). The order of the components determines the order of the metadata in the announcement.

Possible components:

:new, :title, :keywords, :hashtags, :uri

Ideally, an announcement will be obtained using all the requested components, with the following exceptions:

  • If the composition includes :keywords or :hashtags and the resource does not have any descriptors, the metadata is simply omitted.

  • If the composition includes :uri, the resource must have a URI for an announcement to be returned.

  • If, after :title truncation/removal, the length still exceeds the optional :max_length keyword argument, an announcement will not be returned.

If the composition includes :new, a phrase based upon the resource type is generated e.g. New dataset. However, this gem does not determine whether the resource is deemed to be new.

Each example uses a different resource for illustrative purposes.

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
#=> "New journal article. Can poly-parameter linear-free energy relationships (pp-LFERs) improve modelling bioaccumulation in fish? #partitioncoefficients #pplfer. dx.doi.org/10.1016/j.chemosphere.2017.10.007."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', max_length: 140
#=> "New journal article. The Parting of Burroughs and Ker... #americancounterculture #arthurrimbaud. dx.doi.org/10.1179/1477570013Z.00000000045."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :hashtags] # research output has no descriptors
#=> "New conference paper. Deductive and inductive data collection for agent-based modelling."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :keywords, :uri]
#=> "New journal article. Torsion pairs in a triangulated category generated by a spherical object. Auslander–Reiten theory, Calabi–Yau triangulated category. dx.doi.org/10.1016/j.jalgebra.2015.09.011."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :uri]
#=> "New dataset. Operating Nanobeams in a Quantum Fluid. doi.org/10.17635/lancaster/researchdata/139."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:uri, :title]
#=> "doi.org/10.17635/lancaster/researchdata/29. Herpes simplex virus 1 (HSV-1) evolution."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:keywords, :uri]
#=> "smart cities, sustainability. doi.org/10.17635/lancaster/researchdata/35."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:hashtags, :uri]
#=> "#treatedhypertension #microvascularbloodflow. doi.org/10.17635/lancaster/researchdata/148."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:uri, :keywords]
#=> "doi.org/10.17635/lancaster/researchdata/134. metagenomics, deep sequencing."

transformer.transform id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:uri, :hashtags], max_descriptors: 4
#=> "doi.org/10.17635/lancaster/researchdata/111. #influenza #nasopharynx #virology #virus."