Coder Social home page Coder Social logo

speciesfilegroup / bion2n Goto Github PK

View Code? Open in Web Editor NEW

This project forked from n8n-io/n8n

6.0 3.0 2.0 38.75 MB

Biology Node2Node (BioN2N) is an open source project to develop biodiversity informatics nodes for the n8n.io workflow automation platform

Home Page: https://n8n.io

License: Other

Shell 0.02% JavaScript 0.87% TypeScript 90.35% HTML 0.29% Batchfile 0.01% Vue 6.55% Dockerfile 0.02% SCSS 1.90%

bion2n's Introduction

Biology Node2Node (BioN2N): Connecting biodiversity informatics APIs to the powerful n8n workflow automation platform

BioN2N is a new project to develop biodiversity informatics nodes for the powerful workflow automation platform, n8n.io, which enables building complex data workflows fast with little to no programming experience.

Contents

Abstract

A vast amount of biodiversity data is available from many different biodiversity informatics APIs. However, in order for scientists with little to no programming experience to use data from these APIs for their research, it could potentially require a significant time investment to learn a programming language, develop, and rigorously test the software. The emergence of no-code and low-code software architecture [1, 2] could potentially empower non-programmers with the ability to utilize biodiversity informatics APIs, helping to make these APIs more accessible to a broader number of people. Instead of writing scripts, no-code/low-code applications offer flexible graphical user interfaces that can make it easier to explore and learn APIs, and quickly construct complex data processing workflows. One such open source low-code application is n8n.io, which is a powerful workflow automation platform. Within n8n, nodes are the basic unit of work and can take input, perform processing, and return output. To build an automation workflow, any nodes needed are added to the workspace and their inputs and outputs are connected together. For example, if you wanted to be notified about new species added to a genus in Catalogue of Life (CoL), you could query the CatalogueOfLife node for all species in genus Maghrebotrogus, use the GoogleSheet node to check if each species is in your known list of species spreadsheet, use the Gmail node to send an email notification about any new species, save any new species to your list of known species with the GoogleSheet node, and run the automated workflow on a schedule (see Demo 1). Over 220 popular internet APIs have been wrapped into nodes within n8n, which could additionally allow integrating scientific knowledge with many other services on the internet. A major advantage offered by the n8n automation platform is that reusable workflows can be shared as templates, which could enable building a collaborative community of biodiversity informatics API users.

BioN2N is a new open source project to develop and maintain n8n nodes to wrap biodiversity informatics APIs that will be contributed back upstream to the n8n project. So far nodes have been developed for Barcode of Life, Bionomia, Catalogue of Life, ChecklistBank Datasets, Global Biodiversity Information Facility, Global Names, Integrated Taxonomic Information System, Open Tree of Life, TaxonWorks, Wikidata, ZooBank, and additional nodes are under development (please open an issue ticket if you want a biology API wrapped).

Demo workflows

The bulk of this work focused on developing a generalized workflow automation tool by creating biodiversity informatics nodes for n8n. The biodiversity informatics community will very likely come up with much better use cases, but here are some simple examples of potential workflow automations to demonstrate how n8n works:

Demo 1: Notifying about new species in a genus

This automated workflow checks if new species have been added to the genus, Maghrebotrogus, using the CatalogueOfLife node. If a species is not in the GoogleSheet list of known species, an email notification is sent using the Gmail node, and the new species are added to the list of known species GoogleSheet. sm_demo_notify_new_species_with_email

Demo 2: How to use the Wikidata external identifier registry to access biodiversity informatics APIs

This demo shows how to use the Wikidata Query Service to access biodiversity informatics external identifiers, which in turn can be used to access data about species from the biodiversity informatics nodes. sm_demo_wikidata_external_identifiers

Demo 3: Recording scientific names mentioned on social media

This automatic workflow searches for mentions of "species" within a sample of Twitter tweets posted in the last 24 hours, uses the GlobalNames node wrapping the GNFinder service to find any scientific names mentioned in the tweet text, and saves the output to a GoogleSheet spreadsheet. sm_demo_sci_names_social_media

Demo 4: Tracking GBIF occurrences by country over time

Occurrences by country are recorded hourly from the GBIF API using the GBIF node, and the output is saved to a GoogleSheets spreadsheet. sm_demo_tracking_metrics_over_time

Demo 5: Promoting a species of the day on social media

This automated workflow draws a random species from Catalogue of Life and sends Species of the Day tweet. sm_demo_species_of_the_day_with_nodes

Installation

If not installed already, please install the dependency npm on your platform downloadable here.

  1. Clone this repo:
git clone https://github.com/SpeciesFileGroup/bion2n.git
  1. Change directories into bion2n:
cd bion2n
  1. Install npm dependencies
npm install
  1. Run the build process
npm run build
  1. Run n8n with BioN2N nodes
npm run start

Launch your web browser and navigate to http://localhost:5678

  1. If you are a developer, instead of running start, run in development mode:
npm run dev

Launch your web browser and navigate to http://localhost:8080

Acknowledgements

I am very grateful to the n8n.io founder Jan Oberhauser, and n8n.io team and community for developing the low-code application and the developers of the biodiversity informatics APIs that this work depends upon. Many thanks to our Species File Group founder David Eades, and all of my colleagues for their ideas, inspiration, and support: Beth Frank, Deborah Paul, Dmitry Dmitriev, Dmitry Mozzherin, Heidi Hopkins, Hernán Pereira, Jim Tucker, José Luis Pereira, Leslie Deem, Matt Yoder, R. Edward DeWalt, Rich Flood, and Yury Ruskov. In memory of Marilyn Beckman.

References

1

Caballar, R. D. 2020. Programming Without Code: The Rise of No-Code Software Development. IEEE Spectrum. https://spectrum.ieee.org/programming-without-code-no-code-software-development

2

Miller, A. 2021. Low Code vs No Code Explained. BMC Blogs. https://www.bmc.com/blogs/low-code-vs-no-code/

bion2n's People

Contributors

agobrech avatar ahsanv avatar airmoi avatar alexgrozav avatar bhesseldieck avatar gdower avatar harshil1712 avatar ivov avatar janober avatar joffcom avatar krynble avatar medalimarz avatar michael-radency avatar milekz avatar miloradfilipovic avatar mscansian avatar mutdmour avatar pemontto avatar quansenb avatar rgeorgel avatar ricardoe105 avatar rons4 avatar rupenieks avatar schnapsterdog avatar shraddha2104 avatar snyk-bot avatar tanay1337 avatar that-one-tom avatar thomasleveil avatar trojanh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bion2n's Issues

debian 11 installation problems

Describe the bug
Errors installation on Debian 11

To Reproduce
Steps to reproduce the behavior:

  1. git clone https://github.com/SpeciesFileGroup/bion2n.git
  2. cd bion2n
  3. npm install
  4. npm run build

Expected behavior
166 vulnerabilities (1 low, 101 moderate, 52 high, 12 critical)
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@achrinza/[email protected]',
npm WARN EBADENGINE required: { node: '8 || 10 || 12 || 14 || 16 || 17' },
npm WARN EBADENGINE current: { node: 'v18.13.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: TSLint has been deprecated in favor of ESLint. Please see palantir/tslint#4534 for more information.
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
and many other deprecated

Environment (please complete the following information):

  • OS: Debian 11
  • n8n v18.19.0
  • Node.js v18.19.0
  • Database system SQLite
  • Operation mode own

Additional context
Add any other context about the problem here.

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.