Treating botanical nomenclature like code

Overview

Open Plant Names

NOTE: At this point I'm trying this out as an idea. I need to check that what is written here will work. e.g. how many files will GitHub handle etc. This is NOT READY FOR PRIME TIME YET AND MAY BE SCRAPPED but if you think this is a good idea and might want to contribute please get in touch.

A collection of data about names governed by the ICBN (International Code of Botanical Nomenclature).

There are many projects around the world that use plant nomenclature for various purposes. Each of these projects puts work into cleaning up and linking data but these tend to be siloed within projects and institutions or become dated or lost. This is especially so as much of the data is locked away in SQL databases and so not easy to work on collaboratively.

The purpose of this repository is to act as a shared authority file containing plant names and links to other sources.

There are currently 1.7m names in 40k files.

Principles

  1. Just plants - focussed on ICBN rules so we don't get all the semantics messed up doing double duty with ICZN nomenclature. We will have our basionyms!
  2. Just names - The facts that govern how the rules of nomenclature are applied are universal and can therefore be the subject of a single authority file we all share. Whether a name is the accepted name of a taxon or not is a matter of taxonomic opinion and varies between experts. This repository is just about nomenclature. You won't find what the accepted name for a species here.
  3. All plant names - Other nomenclators have tended to focus on major groups; vascular plants, bryophytes or fungi. Here we cover the names governed by ICBN (i.e. within the ICBN 'namespace'). This is the only way to track homonyms effectively. We really are taxonomy agnostic.
  4. Links not data - Keeping short strings (like citations) and links to full resources. Never the full data.
  5. Open to read AND write - Not only is the data licensed as CC-0 but the ability to be added as a contributor or fork on GitHub and to issue Pull requests for your improvements make this truly open. Or, if you don't like the way it is being to managed, you are free to fork it permanently and start your own project.
  6. Easy to edit - Excel/OpenOffice for small edits.
  7. Wikidata as a default authority file for other data (e.g dead people, places & things).
  8. Zenodo for archiving of releases with a DOI.
  9. Prioritized ranks - A lot of funky stuff has happened in nomenclature in the last two centuries and it can get really complex. We will therefore prioritize genera, species, subspecies and varieties over other names where needed.
  10. Prioritize names We will track legitimate and illegitimate published names but few invalid names, typographic errors or orthographic variants (unless formally conserved). It would be counterproductive to perpetuate and amplify every error ever made. The default is to quietly expunge these from the record and move on.

How it works

The data is a series of CSV files. This allows us to do diffs and merges to incorporated changes.

For bigger projects it is assumed that utilities will be used to import/export the data structure to SQL or other non-relational databases for editing but it should be equally possible to clone the repo, edit the files with a text editor or spreadsheet, and issue a pull request to make a contributions.

For small projects (individual taxonomists) it should be possible to download a file, edit it and submit it by email to Roger Hyam

Utilities will be used to unit test different aspects of the data and then acceptance test the whole dataset before it is versioned. When versioned it will also be submitted to Zenodo for archival storage.

In short: This is an attempt to treat nomenclatural data like open source software.

Documentation

Key documentation is in README.md files alongside the data and utilities. If we ever write more general guides they'll be in the github wiki.

Acknowledgements

This is a synthetic work that has become possible because so many people have made their work openly available for others to use. It will never be possible to acknowledge them all individually but we hope to list some of them here.

Initial seed data has come from the World Flora Online, the GBIF Taxonomy backbone and Index Fungorum (as hosted by GBIF 2016).

You might also like...
Kirby 3 Plugin for running jobs like cleaning the cache from within the Panel, PHP code, CLI or a cronjob

Kirby 3 Janitor Kirby 3 Plugin for running jobs. It is a Panel Button! It has jobs build-in for cleaning the cache, sessions, create zip-backup, pre-g

A full-scale PHP 5.3.2+ sandbox class that utilizes PHPParser to prevent sandboxed code from running unsafe code.
A full-scale PHP 5.3.2+ sandbox class that utilizes PHPParser to prevent sandboxed code from running unsafe code.

##DEPRECATED: The PHPSandbox project has transfered to Corveda/PHPSandbox and will be actively maintained there. This branch is no longer being active

Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code frameworks.
Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code frameworks.

Mind Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code fram

30 seconds of code Short PHP code snippets for all your development needs
30 seconds of code Short PHP code snippets for all your development needs

30 seconds of code Short PHP code snippets for all your development needs Visit our website to view our snippet collection. Use the Search page to fin

Library for counting the lines of code in PHP source code

sebastian/lines-of-code Library for counting the lines of code in PHP source code. Installation You can add this library as a local, per-project depen

Laravel quickly creates a verification code tool similar to Google verification code
Laravel quickly creates a verification code tool similar to Google verification code

laravel-gridCaptcha Laravel quickly creates a verification code tool similar to Google verification code laravel 快速创建一个类似于 Google 点图验证码的本地验证码扩展 介绍 lar

thinkphp6 quickly creates a verification code tool similar to Google verification code
thinkphp6 quickly creates a verification code tool similar to Google verification code

tp-gridCaptcha thinkphp6 quickly creates a verification code tool similar to Google verification code thinkphp6 快速创建一个类似于 Google 点图验证码的本地验证码扩展 介绍 tp-g

Result of our code-along meetup writing PHP 8.1 code

PHP 8.1 Demo Code This code demonstrates various PHP 8.0 and 8.1 features in a realistic, functional (but incomplete) codebase. The code is part of so

⚗️ Adds code analysis to Laravel improving developer productivity and code quality.
⚗️ Adds code analysis to Laravel improving developer productivity and code quality.

⚗️ About Larastan Larastan was created by Can Vural and Nuno Maduro, got artwork designed by @Caneco, is maintained by Can Vural, Nuno Maduro, and Vik

Free ZIP Code API - Free Access to Worldwide Postal Code Data

About Zipcodebase - Free Zip Code API Zipcodebase is a zip code API that was founded in 2019 to solve common issues with postal code data. As we have

Dead Code Detector (DCD) for PHP code.

This project is no longer maintained and its repository is only kept for archival purposes. PHP Dead Code Detector (PHPDCD) phpdcd is a Dead Code Dete

Preload your sweet sweet code to opcache with a composer command, making your code faster to run.

Composer Preload Preload your sweet sweet code to opcache with a composer command, making your code run faster. Composer Preload is a composer plugin

The SensioLabs DeprecationDetector runs a static code analysis against your project's source code to find usages of deprecated methods, classes and interfaces

SensioLabs DeprecationDetector CAUTION: This package is abandoned and will no longer receive any updates. The SensioLabs DeprecationDetector runs a st

🔌  Convert Bootstrap CSS code to Tailwind CSS code
🔌 Convert Bootstrap CSS code to Tailwind CSS code

Tailwindo This tool can convert Your CSS framework (currently Bootstrap) classes in HTML/PHP (any of your choice) files to equivalent Tailwind CSS cla

Stash makes it easy to speed up your code by caching the results of expensive functions or code

Stash - A PHP Caching Library Stash makes it easy to speed up your code by caching the results of expensive functions or code. Certain actions, like d

A full-scale PHP sandbox class that utilizes PHP-Parser to prevent sandboxed code from running unsafe code
A full-scale PHP sandbox class that utilizes PHP-Parser to prevent sandboxed code from running unsafe code

A full-scale PHP 7.4+ sandbox class that utilizes PHP-Parser to prevent sandboxed code from running unsafe code. It also utilizes FunctionParser to di

Webman quickly creates a verification code tool similar to Google verification code
Webman quickly creates a verification code tool similar to Google verification code

webman-captcha-grid webman quickly creates a verification code tool similar to Google verification code webman 快速创建一个类似于 Google 点图验证码的本地验证码扩展 介绍 webma

A filesystem-like repository for storing arbitrary resources.

The Puli Repository Component Latest release: 1.0.0-beta10 PHP = 5.3.9 The Puli Repository Component provides an API for storing arbitrary resources

Comments
  • Add citation strings in APA format and DOIs

    Add citation strings in APA format and DOIs

    @rogerhyam As a test I've added citation strings for publications in Wikidata, and the DOI for the publication (if one exists). The citations are in APA format. The DOIs have prefix "DOI:" so that it's obvious that they are DOIs. Some publications don't have DOIs may may well have other identifiers (e.g., Handles, JSTOR, BioStor, etc.).

    opened by rdmpage 1
  • Added Q105743545 for

    Added Q105743545 for "Neue Namen und neue Kombinationen..."

    @rogerhyam Hi Roger, as a test of my ability to use Github I've added citation_id values for some names in the genus Eulophia and created a pull request.

    opened by rdmpage 1
Owner
Roger Hyam
Roger Hyam
A simple Reddit-like forum made where people can talk about anything that has to do with outer space.

SpaceTalk SpaceTalk is a forum where people can talk about our vast universe. It contains all functionalities that a major forum does. Functionalities

Henrique Ferreira 1 Oct 18, 2021
Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way.

String Component The String component provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a un

Symfony 1.3k Dec 29, 2022
Eloquent Befriended brings social media-like features like following, blocking and filtering content based on following or blocked models.

Laravel Befriended Eloquent Befriended brings social media-like features like following, blocking and filtering content based on following or blocked

Renoki Co. 720 Jan 3, 2023
GitHub action to setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer...

Setup PHP in GitHub Actions Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in GitHub

Shivam Mathur 2.4k Jan 6, 2023
😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.

Tracy - PHP debugger Introduction Tracy library is a useful helper for everyday PHP programmers. It helps you to: quickly detect and correct errors lo

Nette Foundation 1.6k Dec 23, 2022
Michael Pratt 307 Dec 23, 2022
GitHub action to setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer...

Setup PHP in GitHub Actions Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in GitHub

Shivam Mathur 2.4k Jan 6, 2023
Basic Crud Generator (With Code Files, like GII (YII2)) Using Laravel, Livewire and Tailwind CSS

LiveCrud Live Crud Generator. This package generates Basic Crud with Livewire. Features Generate Complete Crud With Livewire Component and Blade Files

Ritesh Singh 28 Oct 12, 2022
Infopanel is a simple tool getting some information from source. It works basically like a slider that shows only title, image, a little bit description and QR-Code for links.

Infopanel is a simple tool getting some information from source. It works basically like a slider that shows only title, image, a little bit description and QR-Code for links. It has its own GUI for the editing. The GUI provides a very simple role concept. This tool can be used for digital signage, Information panels, News or Events or similar.

null 4 Aug 22, 2022
Runtime Code Generator like Lombok for PocketMine-MP

PlumbokPM Runtime Code Generator like Lombok for PocketMine-MP. Code generation starts when additional autoloader detects class uses PlumbokPM annotat

OctoPush 4 Apr 18, 2022