Code Monkey home page Code Monkey logo

oai-provider-service's Introduction

OAI-PMH Service

Build Status DeepScan grade Known Vulnerabilities

Credit upstream author hatfieldlibrary/oai-provider-service.

OAI-PMH Service is a Nodejs Express application that supports multiple, configurable OAI-PMH version 2.0 data providers.

OAI-PMH Service borrows from the Modular OAI-PMH Server, University of Helsinki, The National Library of Finland.

Dependenices

  • Node 8.9.4+
  • Typescript 2.7.2+
  • npm 5.6.0+

Capabilities

Supports Identify, ListMetadataFormats, GetRecord, ListIdentifiers and ListRecords. The optional from and until arguments are supported for selective harvesting with YYYY-MM-DDThh:mm:ssZ granularity. ListSets is not supported.

Install It

npm install

Configure It

The service uses dotenv to import variables into the environment and from the top level .env file (in the production dir), a variable HOST_CONFIGURATION is defined which points to a JSON file, defining port and host for the service itself. If multiple providers are desired, then the definition of HOST_CONFIGURATION should be moved to the provider level. At this time, we do not require multiple providers.

Run It

Run in development mode:

npm run dev

Routes:

The Express server will start on default port 3000.

PUT Records:

Add new records to your mongodb instance by HTTP PUT using the following route:

  • http://localhost:3000/scicat/Publication

Run in production mode:

At the simplest level:

npm run compile
npm start

The gulp tasks compile Typescript and copy files to dist.

The project can be deployed to a production server and started with node index from within dist. Runtime configurations can be adjusted using .env and (recommended) external configuration files created for your environment. We typically run as server daemon using forever, or some tool to assure that the server runs continuously.

oai-provider-service's People

Contributors

dependabot[bot] avatar garethcmurphy avatar henrikjohansson712 avatar lukegorman avatar minottic avatar mspalti avatar nitrosx avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

bootsa

oai-provider-service's Issues

Align OAI branches

-identify either develop or master as the leading branch and remove the other

-Rename OpenAIRE mapper to differentiate from ETHZ DC mapper (master branch)
-Move OpenAIRE to source code proper (not in CI/ESS)
-merge branch Feature/endpoints to leading branch

Include PaNET terms in OAI-PMH DataCite records

Through PaNET, we now have a common approach for identifying experimental techniques. Therefore, it is now possible to identify through which technique data (in some dataset) was obtained.

The document Working with PaNET terms in SciCat describes how to include PaNET terms within SciCat datasets. It is a "how to", helping research institutes that have deployed SciCat to adopt PaNET.

The document Embedding PaNET in DataCite metadata describes how to embed PaNET terms within a DataCite record describing a dataset. The DataCite metadata record is an XML infoset that is (for example) available through OAI-PMH, where it is consumed by various metadata harvesting services (such as B2FIND and OpenAire).

Currently, the SciCat OAI-PMH interface supports the client requesting a DataCite record about a dataset, but does not adhere to ETN-1; that is, it does not provide information about which experimental technique was used to create a dataset. This is because the PaNET terms (within SciCat database) are missing from the DataCite record.

It is desirable that SciCat OAI-PMH interface is updated so that it can provide information about which experimental technique(s) were used to generate the dataset. The documents ETN-1 and ETN-2 (see above) should provide sufficient information on how the information should be encoded. Please feel free to comment in those documents if anything is unclear.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.