"gnparser": A powerful parser for scientific names based on Parsing Expression Grammar

Dmitry Y. Mozzherin, Alexander A. Myltsev, David J. Patterson

Research output: Contribution to journalArticlepeer-review


Background: Scientific names in biology act as universal links. They allow us to cross-reference information about organisms globally. However variations in spelling of scientific names greatly diminish their ability to interconnect data. Such variations may include abbreviations, annotations, misspellings, etc. Authorship is a part of a scientific name and may also differ significantly. To match all possible variations of a name we need to divide them into their elements and classify each element according to its role. We refer to this as 'parsing' the name. Parsing categorizes name's elements into those that are stable and those that are prone to change. Names are matched first by combining them according to their stable elements. Matches are then refined by examining their varying elements. This two stage process dramatically improves the number and quality of matches. It is especially useful for the automatic data exchange within the context of "Big Data" in biology. Results: We introduce Global Names Parser (gnparser). It is a Java tool written in Scala language (a language for Java Virtual Machine) to parse scientific names. It is based on a Parsing Expression Grammar. The parser can be applied to scientific names of any complexity. It assigns a semantic meaning (such as genus name, species epithet, rank, year of publication, authorship, annotations, etc.) to all elements of a name. It is able to work with nested structures as in the names of hybrids. gnparser performs with ≈ 99% accuracy and processes 30 million name-strings/hour per CPU thread. The gnparser library is compatible with Scala, Java, R, Jython, and JRuby. The parser can be used as a command line application, as a socket server, a web-app or as a RESTful HTTP-service. It is released under an Open source MIT license. Conclusions: Global Names Parser (gnparser) is a fast, high precision tool for biodiversity informaticians and biologists working with large numbers of scientific names. It can replace expensive and error-prone manual parsing and standardization of scientific names in many situations, and can quickly enhance the interoperability of distributed biological information.

Original languageEnglish (US)
Article number279
Pages (from-to)article 279
JournalBMC bioinformatics
Issue number1
StatePublished - 2017


  • INHS
  • Parsing Expression Grammar
  • Scientific name
  • Scala
  • Biodiversity informatics
  • Semantic parser
  • Biodiversity
  • Names based cyberinfrastructure
  • Parser

ASJC Scopus subject areas

  • Applied Mathematics
  • Molecular Biology
  • Structural Biology
  • Biochemistry
  • Computer Science Applications


Dive into the research topics of '"gnparser": A powerful parser for scientific names based on Parsing Expression Grammar'. Together they form a unique fingerprint.

Cite this