Skip to main content

ETL (Extract, Transform and Load) for bibliographic data using an advance data workflow

Project description

Python package

Kahi

KAHI is a powerful ETL (Extract, Transform, Load) application designed to construct an academic database by merging databases and files from various sources. It simplifies the database construction process by offering a framework to define a workflow of sequential tasks using a plugin system that KAHI understands.

Plugins

Take a look on plugins examples in the repository https://github.com/colav/Kahi_plugins

List of available plugins:

  • kahi_doaj_sources
  • kahi_minciencias_opendata_affiliations
  • kahi_minciencias_opendata_person
  • kahi_openalex_affiliations
  • kahi_openalex_person
  • kahi_openalex_sources
  • kahi_openalex_subjects
  • kahi_openalex_works
  • kahi_ranking_udea_works
  • kahi_ror_affiliations
  • kahi_scholar_works
  • kahi_scienti_affiliations
  • kahi_scienti_person
  • kahi_scienti_sources
  • kahi_scholar_works
  • kahi_scimago_sources
  • kahi_scopus_works
  • kahi_staff_udea_affiliations
  • kahi_staff_udea_person
  • kahi_wos_works

Installation

To install KAHI, follow these simple steps:

  1. Make sure you have Python installed on your system.
  2. Open a terminal or command prompt.
  3. Run the following command:
pip install kahi

Additionally, if you require specific plugins, you can install them using the following command:

pip install plugin-name

Replace plugin-name with the name of the desired plugin.

If the user wants to install all available plugins run:

pip install kahi[all]

Usage

To use KAHI, you need to define a YAML file that contains the workflow and global configuration variables. Here is an example of a YAML file:

config:
  database_url: localhost:27017
  database_name: kahi
  log_database: kahi_log
  log_collection: log
workflow:
  scimago_sources:
    file_path: scimago/scimagojr 2020.csv
  doaj_sources:
    database_url: localhost:27017
    database_name: doaj
    collection_name: stage

In the config section, you can specify the MongoDB URL, database name, log database, and log collection for KAHI to use.

The workflow section contains the sequential tasks of the workflow. Each task is defined with a unique name and specific configuration options based on the data source. In the example above, three tasks are defined: ror_affiliations, staff_affiliations, and scienti_affiliations. Every task should be related to a plugin

Finally, to run the workflow, use the following command:

kahi_run --workflow worflow.yaml

Replace workflow.yaml with the path to your YAML file.

Suggested workflows can be found on our worflow repository.

Logging

KAHI keeps a detailed log of each plugin's execution in a mongodb collection, including the name, execution time, elapsed time, execution status, and error messages. This information is valuable for both users and developers, and it enables the ability to resume the workflow from the last successful task.

Plugins can take advantage of a researved parameter task. When the reserved paramer task is used, the log entry becomes unique with the name of the plugin and the task as a suffix.

Contributing

If you are interested in contributing to KAHI or creating your own plugins, please refer to the kahi-plugins repository. It contains the necessary resources and documentation to implement new plugins easily. Feel free to submit pull requests or report any issues you encounter.

License

BSD-3-Clause License

Links

http://colav.udea.edu.co/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kahi-0.0.9a0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

Kahi-0.0.9a0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file kahi-0.0.9a0.tar.gz.

File metadata

  • Download URL: kahi-0.0.9a0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for kahi-0.0.9a0.tar.gz
Algorithm Hash digest
SHA256 7010d5b2c93f5bdd912f492499039e7a62b23dcd68b6e9248fa1bedbc0734983
MD5 33b1cfb844c2bdcfa2a45294e5deca7c
BLAKE2b-256 a1fb637f496f660eaf46303973de130564603e10b9374145f8978d6178332e96

See more details on using hashes here.

File details

Details for the file Kahi-0.0.9a0-py3-none-any.whl.

File metadata

  • Download URL: Kahi-0.0.9a0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for Kahi-0.0.9a0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4f437b8a7d74658fdf3116784b224458f9e3f6b21e3cd6498edb62e96e346a1
MD5 a0c73a7a18f82d4d18f31b2e524b24b0
BLAKE2b-256 f1c59ed95b404adac15b1e77f4adac77fe8a3422bc1773c73097f73a1a31094e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page