Friday, July 17, 2026

Migrating LoIR to the Catalogue of Life taxonomy

The Library of Identification Resources (LoIR) is a database of identification keys and other publications and resources that assist in the taxonomic identification of animals, plants, and fungi. As a result, the database contains a lot of taxonomic info, which can be roughly divided into two parts. Firstly, the taxonomic scope of every identification key or other type of resource is recorded, like “hoverflies” or “Syrphidae” in a key to the hoverflies of Europe. Secondly, if feasible, checklists are made for all of the individual species (or genera, etc.) included in each of the identification keys. Both sets of scientific names of taxa are mapped to external databases to allow easier comparisons and, importantly, to power the search engine. Until two days ago, this external database was the GBIF Backbone Taxonomy, maintained by the Global Biodiversity Information Facility (GBIF).

However, in June of 2026, GBIF replaced the GBIF Backbone Taxonomy with the Catalogue of Life (COL). This comes with many improvements, as the Catalogue of Life gets frequent updates, includes taxa with intermediate ranks, and provides an Extended Release (COL XR). The COL XR integrates additional checklists leading to better coverage of less common taxa, obscure synonyms, and recent taxonomic changes, directly affecting the data quality of GBIF. As opposed to the GBIF Backbone Taxonomy, which used to integrate various datasets as well, there also seems to be a clear path for small data publishers like LoIR to contribute to the COL XR.

This change also means that LoIR needed to move from the GBIF Backbone Taxonomy to COL (XR) before GBIF fully deprecates the old system. This transition came with its own challenges, for both parts of the taxonomic data in LoIR. Back in 2025, we found that the base release of COL missed 14.3% of the ‘endpoint’ taxa in checklists of identification keys in LoIR, compared to just 3.5% by the GBIF Backbone Taxonomy (Willighagen & Jongejans, 2025). The pressing question for me was whether COL XR could improve on this enough to use it as the main taxonomy in LoIR.

Now, after updating the tools used to develop LoIR (see Willighagen, 2026), all identification checklists have been mapped to COL XR instead of COL. This lead to a marked improvement, leaving just 3.5% of endpoint taxa unmapped compared to 5.0% with the GBIF Backbone Taxonomy. Only 1,029 scientific names (0.9%) were mapped to the GBIF Backbone Taxonomy but could not be mapped to COL XR (Fig. 1). This is a good sign!

Note that since 2025, the overall mapping coverage of both COL and the GBIF Backbone Taxonomy decreased, due to the addition of many publications about Heteroptera published between 1880 and 1963. Looking only at checklists added before August 4th, 2025 (see Willighagen, 2025), COL XR misses only 2.4% of endpoint taxa, compared to 3.5% with the GBIF Backbone Taxonomy at the time.

Alluvial diagram of changes in mappings of endpoint taxa in checklists
Figure 1: Alluvial diagram of changes in the coverage of mappings of endpoint taxa in checklists between the GBIF Backbone Taxonomy and COL XR.

The other part of the taxonomic info in LoIR, the taxonomic scopes, was more difficult to convert. However, here COL (XR) also offers immense improvements by including taxa with intermediate ranks. For example, say an identification key is intended for all weevils, i.e. the superfamily Curculionoidea. Before, that taxonomic scope had to be mapped to all constituent families, because the GBIF Backbone Taxonomy did not include superfamilies or any other intermediate taxa. Now, it can simply be mapped directly to COL’s entry for Curculionoidea: KV7G2.

This was possible for most, but not all taxa. For example, the subfamilies of shield bugs (Pentatomidae) have not been added to COL (XR) yet, and therefore still had to be mapped to all genera separately. The list of taxonomic scopes also contain a lot of taxa that are now considered obsolete, and have to be mapped to multiple current taxa. However, whereas with the GBIF Backbone Taxonomy only 72.5% of taxonomic scopes could be mapped directly, with COL XR this raises to 90.2% (Fig. 2). Additionally, 23 taxa that were not mapped at all in the GBIF Backbone Taxonomy are now mapped to COL (XR). Unfortunately, there were still 5 taxa that could not be mapped to COL (XR) yet, mostly heteropteran genera.

COL XR as a whole does still require some additional curation. An issue with COL’s name index meant there are a lot of duplicate entries for the same taxa in the current release of COL XR (26.6). Additionally, some genera have been given an incorrect classification (see the previous link), and as aforementioned, several species, genera, and higher taxa are still missing. This should all improve as COL XR continues to develop though, and now hopefully the data in LoIR could contribute to this!

Alluvial diagram of changes in mappings of taxonomic scopes
Figure 2: Alluvial diagram of changes in the coverage of mappings of taxonomic scopes between the GBIF Backbone Taxonomy and COL XR.

After both sets of taxonomic info in LoIR were adapted to use COL XR, the search engine had to be updated to use the new mappings. This process was relatively simple, as GBIF has API endpoints for both the GBIF Backbone Taxonomy and COL XR. The API endpoint for COL XR is technically still experimental, but an equivalent, stable version will likely be added in the future.

All in all, I think this is a great succes, and I am excited for future developments.

References

Wednesday, June 24, 2026

Type locality confusion in the world of ambush bugs (Heteroptera: Phymatinae)

While working on adding resources on Heteroptera to the Library of Identification Resources, I came across this striking observation of an ambush bug (Reduviidae, subfamily Phymatinae) from the Dominican Republic:


© Jiri Hodecek, some rights reserved (CC-BY-NC) https://www.inaturalist.org/observations/171587100

It is identified as Paraphymata saileri Kormilev, 1962, a genus and species described from a single specimen from Haiti. In the same publication, Phymata superba Kormilev, 1962 is first described, also described from a single specimen from Haiti. The publication is available online from the publisher (archived).

There, the holotype of Paraphymata saileri is described as follows:

♂, Haiti, Acc. Hinche, August 30, 1930 (H. L. Dozier).

Whereas the holotype of Phymata superba is described as:

This species is so striking, that Dr. H. G. Barber put the label “New Gen.-sp. Has tarsi.

♂, Haiti Port-au-Prince, August 15, 1924 (W.A. Hoffman).

However, looking at the holotypes online show something else, for Paraphymata saileri (link):

Specimen Label

And for Phymata superba (link):

Specimen Label

The labels are exactly the other way around! Kormilev’s publication does luckily make it clear which species is which, both in the descriptions and in the associated figures, where fig. 355 (left) belongs to Paraphymata saileri and fig. 356 (right) belongs to Phymata superba (and I must say, are both wonderful drawings, made by Carlos A. Wappers).

So, what happened to the labels? Did Kormilev mix up the type localities in his manuscript? Or were the labels mixed up during deposition of the specimens, or in the digitization process? Barber’s confident comment of “New gen+sp.” (as opposed to the “Gen? sp?” in the other set of labels) could make sense for the specimen that actually led to a new genus and species (Paraphymata saileri), but both specimens are striking and distinct in their own ways, and Phymata superba is still in its own, new subgenus.

Update: The images actually have their original EXIF metadata, allowing us to determine the following: the photos of the labels were taken on January 2nd, 2003 (with a Fujifilm FinePix S5000), in sequence of specimen number, about 3–5 minutes apart. This suggests to me that the labels were photographed one by one, with only one set of labels off its pin at a time, making it unlikely the error occurred there. Most of the files where then modified (with Adobe Photoshop) on August 9th, 2011, again in sequence but about 1–2 minutes apart. Notably, two of the files were modified a day later (August 10th), just a few seconds apart: the two files belonging to Paraphymata saileri and Phymata superba.

Saturday, March 21, 2026

Integrating inventaire.io with the Library of Identification Resources

One of the main features of the Library of Identification Resources (LoIR)[1][2], is its search engine[3]. It finds applicable taxonomic resources (in the form of books, websites, etc.) for an observation of an organism (consisting of a location and a taxonomic group), and ranks those resources on relevance, usability, and recency. The second factor, usability, is determined from the level of detail of the resource, as well as its accessibility. Resources that are freely available online score higher, so people can more easily find a resource that they can actually use, instead of being directed to but an expensive book.

However, maybe you already own that book, in which case it is already accessible. In that case, you would want to be able to specify which books you own so that the search engine can account for that. Luckily, there happens to be a open-data platform to do that: inventaire.io [4]. If you have a public account on inventaire.io, you can now connect this to LoIR.

If you go to the new “Settings” page (A), you can click the button “Add inventaire.io shelf” (B).

Page titled "User settings" with a section "Libraries" with a button "Add inventaire.io shelf" and a table containing columns "ID", "Title", "Location", "Library" and "Comment". In the header in the top right, a link "Settings" is labelled "A"; the add button is labelled "B".

Here, after entering your username, you can select a shelf.

Same page as the previous image, now with an overlaying modal dialog with a input named "Username" and a list of shelves with "Add" buttons.

LoIR will automatically match books based on ISBNs and other identifiers. If a match is incorrect, or if it fails to find a match, you can add it manually.

Bottom of the same table as in the first image. In the leftmost "ID" column, there are "Edit" buttons. Several items have a warning "Unknown holding" highlighted in red in place of the title.

Lastly, if there is a match, it will show up on the pages of the individual records as well as in the search results, where it also affects the ranking.

Two screenshots: the detailed page of individual resources where the "Libraries" field in the "Access" section is highlighted in a red rectangle; and a search results page where a URL underneath a search result is highlighted in a red rectangle.

References

  1. Willighagen L. G., Jongejans E. (2025). Library of Identification Resources: a FAIR overview of taxonomic keys. Biodiversity Data Journal 13: e161726. https://doi.org/10.3897/BDJ.13.e161726
  2. Willighagen, L. G. (2022-08-06). Library of Identification Resources. Syntaxus Baccata [blog]. https://doi.org/10.59350/h8qka-z4a05
  3. Willighagen, L. G. (2025-10-21). Updates to taxonomic coverage and search result scoring. Syntaxus Baccata [blog]. https://doi.org/10.59350/c87y0-72m49
  4. Lathuilière, M. (2015-02-09). Mapping resources using open knowledge: starting with books! InventaireWiki [blog]. https://wiki.inventaire.io/wiki/Mapping_resources_using_open_knowledge:_starting_with_books!

Wednesday, December 31, 2025

Citation.js: 2025 in review

This year marks 10 years since development of Citation.js started!


Horvathiolus superbus, observed November 18th, 2025, Colares, Portugal.

Changes

  • DOI: input data from e.g. Crossref is validated better, and common issues are fixed automatically
  • RIS: better handling for empty lines and non-standard types (#248)
  • Wikidata: 'mul' labels are now used as fallback, and various aspects of input validation are handled
  • Small improvements were made across the board, especially regarding deprecated libraries and language features.

New Year’s Eve tradition

After the releases on New Year’s Eve of 2016, 2017, and 2021 through 2024, this New Year’s Eve also brings a new release, v0.7.22. The documentation of the CSL has gotten a small update, and Wikidata input now supports the publication type of scholarly work (P13046) property.

Happy New Year!

Tuesday, October 21, 2025

Updates to taxonomic coverage and search result scoring

Two parts of the Library of Identification Resources have gotten major updates in the last year. First, the taxon coverage field (also labeled “For identifying …” in some places) is now linked to external databases, namely Wikidata and GBIF. Second, the scoring and sorting of search results in the Find resources tool was made more transparent and visible.

Taxon coverage

The taxon coverage field specifies the taxa to which the identification resource applies. For example, for the Key to the British Scathophagidae (Diptera) by Stuart G. Ball (B17) that would be the family Scathophagidae.

Previously, this was a plain-text field. Now, the values are all linked to a separate table. In this table, the rank of the taxon is given, and mappings are made with Wikidata and GBIF. The main taxonomy data in GBIF does not include minor ranks such as superfamilies, subfamilies, and subgenera; for those taxa, the GBIF identifiers of its children are recorded instead. The same goes for outdated taxa which are now considered paraphyletic, or were synonymized or split up.

Additionally, the parent taxa of each taxon are recorded, allowing statistics on the number of resources in larger groups. This is also shown on the taxon pages, such as that of Animalia (T55):

Screenshot of page about the taxonomic kingdom Animalia, with a permalink, GBIF identifier, links to Wikidata and Scholia, classification ("Biota > Animalia"), and a donut chart labelled "Children" with sections "Arthropoda" (~85%), "Chordata" (~7%), etc.

Search result sorting

In the Find resources tool, available at identification-resources.github.io/find-resources, search results are scored on a number of different factors. The score is now visually displayed next to the taxonomic completeness. When clicking on the scores, their factors are now shown in three groups which are explained in more detail.

In addition, results can now be sorted by those specific groups of factors, instead of only by the total score. Results can now also be filtered by language or by characteristics of observations and/or organisms, including keys specifically for females or males, or keys for nests galls, eggs, nymphs, etc.

Sunday, September 28, 2025

10 years of Citation.js

10 years ago, on September 28th, 2015, I pushed the first commit of “C[1]”, which would later form the basis of Citation.js. Back then, it was a simple webapp that took bibliographical data from manual input from a form and converted it to APA. I had not learned about Citation Style Language (CSL) or CSL-JSON yet, so the implementation was not particularly interoperable, but it served its purpose: allowing me and my classmates to format bibliographies without stressing over the correct punctuation.

In April of 2016 I created the larsgw/citation.js repository on GitHub, containing a JavaScript file for browser usage of Citation.js. In September of the same year, I added support for Node.js, including a CLI. Next, in November of 2018 I moved most of the code to a new repository under the new citation-js GitHub organization. Finally, in 2019 I published an article in PeerJ Computer Science (doi:10.7717/peerj-cs.214) on the software and mappings. Since then, development has been relatively stable.

During that time, it has been used in several projects. We have used it in Scholia for importing metadata from DOIs and ISBNs and exporting citations. At the Cuneiform Digital Library Initiative we use it to provide page citations and for importing BibTeX metadata. Additionally, it is used in Forgejo (and Gitea) to implement CITATION.cff support, which can also be seen on Codeberg. It is also used in several blogs and personal websites. If you know of any other cool uses, please let me know!

On to the next 10 years!

Striped fly (Stomorhina lunata) on the stalk of a yellow composite flower, with a diffuse beige background
Stomorhina lunata, 9.vi.2025, Noorbeek, NL

Monday, September 1, 2025

New paper: "Library of Identification Resources: a FAIR overview of taxonomic keys"

Biodiversity research is supported by an ever-increasing volume of citizen science observations, on platforms such as Waarneming.nl/Observation.org and iNaturalist.org. Taxonomic expertise is essential to sustain these platforms, but can be difficult to spread due to the decentralized nature of many citizen science projects. In our new scientific article in Biodiversity Data Journal we describe how and why to record information resources for the taxonomic identification of organisms in a FAIR database, and how to query that data to find applicable resources for an observation.

So I created the Library of Identification Resources (LoIR) which so far contains 2,158 records of such information resources, 54% of which are freely available online. At the moment, most resources are meant for groups of insects in parts of Northwestern Europe, but anyone can help by adding more resources!

See below for caption
Fig. 1: Geographical and taxonomic focus of the resources currently included in the Library of Identification Resources. (A) Choropleth of the geographic scopes of resources in the catalog. 460 publications with a geographic scope that cannot be expressed in administrative borders were omitted. (B) Breakdown of publications by the taxonomic group and continent. Publications spanning multiple continents and/or multiple taxonomic groups are counted for the category “Other”.

A major feature of the LoIR is a special search engine, where someone can enter an observation of an organism, for example a hoverfly in Nijmegen, The Netherlands, and it returns the most applicable resources for that observation. It works by comparing the list of expected species of hoverflies in The Netherlands to the different available resources. Try it out!

As the database and search engine grow, more and more citizen scientists should be able to find the resources needed to continue their extensive work.

The article, written with Eelke Jongejans, can be found here: https://doi.org/10.3897/BDJ.13.e161726