Skip to content

ralvarezluna/csdatalab-apigen

Repository files navigation

Tool for FAIR data production (DCAT metadata adoption + Web APIs generation)

This project is for development FAIRification process (i.e. make CS initiatives more FAIR compliant) which maps metadata of CS platforms' catalogues to DCAT and generates Web Application Programming Interfaces (APIs) for improving CS data discoverability and reusability in an integrated approach.

How to use

  1. Clone the code
  2. Install requirements usin pip (python version > 3.8)
  3. Set up the catalogue metadata input in the config.properties file. The properties file contains a description, catalogue URL, and the source of projects metadata.
  4. Run sampleExecution file in a terminal. Then, the projects are retrieved from the source specified in the file, could be a local file or a remote endpoint. By default the it select a random topic to gather a set of projects from the remote API specified. Once metadata is retrieved, the class \textit{MapScistarterCatalogue} (implementation of the \textit{MapCatalogue} interface) maps the metadata fields from Scistarter to DCAT.
  5. If you need to redefine the mapper, you must extend the class MapCatalogue.
  6. During the mapper execution if data raw is available by metadata reference, the APIfication (which is a Java suproccess) is launched, generating Web API packages for the corresponding data. The Web APIs packages are called following the pattern AG_projectID
  7. Then, once Web APIs are generated and published, the specification of data services is thus added to the DCAT metadata Catalogue.
  8. Finally, this Catalogue is serialized in Turtle and could be shared as RDF linked data.

Sample & tests

The folder tests contains a basic configuration to execute an example. The file sampleExecution.py generates a ramdon number of projects querying the SciStarter API by a random topic from the file topics.txt. The time of execution is printed in the terminal. Also a file with the catalogue is generated in the same folder. If some project fails during the mapping due to the completeness of required metadata, the identifier is also printed. The sampleExecution.py contains the logic to redefine inputs an for using the tool features.

A short demo video is available at Youtube

About

Fairfication CS data - DCAT and Web API generation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages