The taxonomic name resolution service: an online tool for automated standardization of plant names
© Boyle et al.; licensee BioMed Central Ltd. 2013
Received: 25 September 2012
Accepted: 2 January 2013
Published: 16 January 2013
The digitization of biodiversity data is leading to the widespread application of taxon names that are superfluous, ambiguous or incorrect, resulting in mismatched records and inflated species numbers. The ultimate consequences of misspelled names and bad taxonomy are erroneous scientific conclusions and faulty policy decisions. The lack of tools for correcting this ‘names problem’ has become a fundamental obstacle to integrating disparate data sources and advancing the progress of biodiversity science.
The TNRS, or Taxonomic Name Resolution Service, is an online application for automated and user-supervised standardization of plant scientific names. The TNRS builds upon and extends existing open-source applications for name parsing and fuzzy matching. Names are standardized against multiple reference taxonomies, including the Missouri Botanical Garden's Tropicos database. Capable of processing thousands of names in a single operation, the TNRS parses and corrects misspelled names and authorities, standardizes variant spellings, and converts nomenclatural synonyms to accepted names. Family names can be included to increase match accuracy and resolve many types of homonyms. Partial matching of higher taxa combined with extraction of annotations, accession numbers and morphospecies allows the TNRS to standardize taxonomy across a broad range of active and legacy datasets.
We show how the TNRS can resolve many forms of taxonomic semantic heterogeneity, correct spelling errors and eliminate spurious names. As a result, the TNRS can aid the integration of disparate biological datasets. Although the TNRS was developed to aid in standardizing plant names, its underlying algorithms and design can be extended to all organisms and nomenclatural codes. The TNRS is accessible via a web interface at http://tnrs.iplantcollaborative.org/ and as a RESTful web service and application programming interface. Source code is available at https://github.com/iPlantCollaborativeOpenSource/TNRS/.
KeywordsBiodiversity informatics Database integration Taxonomy Plants
The past two decades have seen an explosive growth of biodiversity databases, providing access to millions of species observations. The more prominent large databases include compilations of museum records and observations (e.g., GBIF , Tropicos , REMIB , OBIS , VertNet , MaNIS ), fossil datasets (The Paleobiology Database ), ecological inventories (VegBank , SALVIAS , USFS FIA database , Forest Plots Database , CTFS ; see GIVD ), trait measurements (TraitNet , TRY ), molecular sequences (GenBank ) and phylogenies (TreeBase ). Collectively, these databases encompass hundreds of thousands of species . This vast and growing information resource is being used to address fundamental questions in ecology, evolution and systematics [17, 18] and to explore patterns in the distribution of organismal form, function and diversity at previously impossible temporal and spatial scales [19-23]. Researchers are only beginning to explore the potential applications of these global biodiversity data sources for agriculture , plant products research  and conservation biology . Integration of such large, disparate, and heterogeneous datasets has involved overcoming numerous challenges of data exchange, interoperability, and scaling [18, 24]. Despite considerable progress , however, one critical challenge remains largely unsolved: the correction and standardization of taxonomic names in scientific data and literature.
Incorrect, ambiguous or synonymous taxon names present a fundamental problem for the study of comparative biology and biodiversity . Ecological studies that encompass large numbers of species, conservation decisions based on data from many sources, and phylogenetic analyses linking sequence data to phenotypic traits all require accurate matching of species identities among datasets. If uncorrected, lack of standardization of species names can result in mismatched observations and inflated measures of species richness, leading to erroneous scientific conclusions, faulty conservation policy, and an inability to make reliable predictions across space and time . Although progress has been made toward developing an authoritative global taxonomy (Global Names , The Plant List ), the growing availability of digitized sources of names (International Plant Names Index , Global Names , Tropicos , ZooBank , UBio , Encyclopedia of Life , Integrated Taxonomic Information System , Catalogue of Life ), identifiers (Global Names , UBio , ZooBank ) and taxonomic opinion (Tropicos , The Plant List ), has yet to provide a solution to the rapid accumulation of erroneous names in the scientific literature and data repositories.
Recent applications for the automated recognition of taxon names  have accelerated the digitization of biodiversity literature . Unfortunately, the inability of these applications to recognize and correct ambiguous or erroneous scientific names means they fall short of meeting the needs of researchers. Combining large datasets from different sources requires careful standardization of hundreds or thousands of taxon names—a task that must be performed manually or with ad hoc scripting, resulting in duplication of effort and propagation of error. In short, the lack of automated tools and standardized workflows for correcting taxonomic names is a major impediment to conducting synthetic science with heterogeneous sources of biodiversity data .
How widespread is taxonomic error? A recent study of New World plant distributions and species richness  illustrates the severity of the problem. Compilation of 308,000 geo-referenced plant observations from 51 digitized sources of herbarium specimens and forest inventories resulted in 22,100 unique species names; after correcting misspellings and updating synonymous names, that total was reduced to 12,980 accepted species. Thus, over 42% of the names in the original data were erroneous, obsolete, or otherwise inconsistent with currently accepted names. Uncritical use of the original, uncorrected taxon names would have grossly inflated species richness and led to distorted, possibly biased distributional patterns due to spurious species with artificially small ranges. At best, erroneous taxon names limit the usefulness of the data they mislabel by preventing linkages among observations of the same organism; at worst, they represent an insidious source of error.
Misspelled names are just one component of the larger problem of taxonomic semantic heterogeneity . Such ambiguity can arise for a number of reasons: (1) misspellings, vernacular variants, and lexical variants (different ways of writing the same name); (2) homotypic synonyms (sets of different scientific names based on the same type specimen and representing changes in genus classification or technical changes such as substitute names, that objectively refer to the same taxon); (3) heterotypic synonyms (names that may or may not refer to the same taxon, depending on expert opinion); (4) homonyms (identical names that refer to different taxa); and (5) differing taxonomic concepts (narrower or broader interpretations of taxa represented by the same name and authority ). While automated and semi-automated applications can frequently address the first and second sources of error, the third, fourth and fifth present significantly more difficult challenges. For example, resolution of complex, or pro parte, synonyms (for example, a species which was split into two or more species) requires additional information such as when and where the name was used. Disambiguating homonyms requires information on higher taxa such as family or kingdom (although homonyms in the same family can only be distinguished by the authorities portions of the scientific names). Even if a name is correctly resolved to an accepted taxon, the exact circumscription of that taxon can vary from expert to expert; such taxon concepts are not easily or precisely communicated by names alone . While no automated system can perfectly resolve all the kinds of taxonomic problems listed, a service that corrects variant and erroneous spellings, disambiguates homonyms by means of higher taxonomic filtering, and updates simple synonyms with reference to authoritative taxonomic sources would go a long way toward solving the "names problem". Here we present such a solution, the Taxonomic Name Resolution Service.
The Taxonomic Name Resolution Service, or TNRS, is an application for automated and user-supervised correction and standardization of plant taxonomic names. Developed by the iPlant Collaborative  as a collaboration between the iPlant Tree of Life project  and the Botanical Information and Ecology Network , the TNRS standardizes names according to one or more authoritative taxonomic sources. Capable of processing thousands of names in a single operation, the TNRS detects likely misspelled taxon names, transforms names and authorities to a single canonical form, converts synonyms to accepted names, discriminates among many types of homonyms, and detects and flags ambiguous results. The TNRS also handles features peculiar to both ecological data (such as morphospecies and partial identifications) and phylogenetic data (such as embedded accession codes). The TNRS is accessible both as a web service and a user-friendly web interface.
Four core principles guided the development of the TNRS. First, use existing sources of high-quality, digitized taxonomy that provide information on synonymy in addition to names. Second, build on existing applications whenever possible. Third, use Open Source tools and adhere to Open Source principles , including public release of all source code. Fourth, provide a generalizable solution extendable to other organisms and nomenclatural codes—not just plants.
Details of taxonomic sources used by the TNRS
Comprehensive coverage of North, Central and South America; partial coverage of Old World, especially Madagascar, Aast Africa and China.
Embryophytes and lichens
U.S. and its territories, Canada, Greenland
Global Compositae Checklist
Taxonomic sources currently accessed by the TNRS provide nearly complete coverage of land plants (mosses, liverworts, hornworts, ferns, lycophytes, gymnosperms and flowering plants) for the New World (Table 1). With the exception of the flowering plant family Asteraceae, coverage of Old World plant names is less complete. A central goal of the TNRS is to enable users to resolve names of all organisms governed by the International Code of Nomenclature for algae, fungi and plants (ICN) , and we invite curators of high quality taxonomic databases to help fill gaps in our current taxonomic coverage by exposing their content via the iPlant TNRS. The TNRS website provides information on how to become a data provider to the TNRS, including a description of a simple exchange schema which can be used to expose taxonomic content to automatic validation and ingest by the TNRS (see http://tnrs.iplantcollaborative.org/sources.html#Provider). Alternatively, taxonomic data providers can deploy their own instance of the TNRS using source code available from the iPlant OpenSource repository on GitHub (see https://github.com/iPlantCollaborativeOpenSource/TNRS/).
The TNRS consists of four main components: (1) the TNRS database, which contains names and synonymy from external taxonomic sources; (2) a name resolution engine consisting of a name parsing application and a fuzzy matching application; (3) a web services layer and application programming interface (API); and (4) a web-based user interface.
The TNRS database
The TNRS database is a periodically refreshed local cache of external sources of taxonomy, and consists of two interrelated components: (1) a MySQL core database containing the normalized and indexed names, synonymy and higher classifications, and (2) partially denormalized representations of the same taxonomic content, optimized for use by the fuzzy matching application. Information stored in the core database includes names and authors, an indication of taxonomic rank, a pointer to the immediate parent within the taxonomic hierarchy, and assertions as to the validity of a name (e.g., "accepted", "not accepted") accompanied by a pointer to the accepted name for synonymous names.
Parent-child links and synonym-accepted name assertions are stored separately from the names themselves, thus allowing storage of multiple classifications and taxonomic opinions. Retrieval of ancestor and descendent taxa to arbitrary depth is supported by secondary indexing according to a modified preorder tree traversal algorithm . Two sources (Tropicos, equivalent to the APG III classification , and NCBI taxonomy) serve as alternative family classifications; genera, species and infraspecific taxa from all sources are joined to these families by genus.
Taxonomic content is normalized to the source database by loading scripts written in PHP. The normalization process separates names from classifications and assertions of synonymy, joining new names to alternative family classifications and building foreign keys and indexes. The loading scripts also pre-load the fuzzy matching tables and perform critical validations such as checking for missing or conflicting parent-child links. Taxonomic content can be exposed to the TNRS using an exchange schema based on Simple Darwin Core . For details of the "TNRS Simple Darwin Core Format" see http://tnrs.iplantcollaborative.org/sources.html#DWC.
Name resolution engine
Name resolution by the TNRS consists of four steps: pre-processing, name parsing, fuzzy matching and post-processing.
Prior to submitting names to the parsing and fuzzy-matching applications, family names pre-pended to species names are removed by searching the initial string of the name for standard family endings (“aceae” and “idae”) and checking against a list of conserved plant family names (Gramineae, Compositae, etc.; although plant-specific, the latter check could be generalized by expanding this list to include conserved family names from all nomenclatural codes). Indications of uncertain identification such as “cf.” and “aff.”  are also removed. For names submitted as all capital letters, case is adjusted by capitalizing the first letter and setting all remaining letters to lower case. This last step is necessary as the name parser uses case to identify name components and cannot correctly parse all-caps names.
The final step in pre-processing is to match the remaining string directly against the core database. Strings matching completely are given an overall match score of 1.0 (see Match score calculation) and removed from further processing. Unmatched names are passed to the name parser (see Name parsing). The results of parsing are matched a second time against the core database before passing the remaining unmatched names to the fuzzy matching application (see Fuzzy matching).
Separation and classification of name components is performed by the GNA Scientific Name Parser , which is distributed as a Ruby gem library, a command line utility and a server script. It is based on Treetop gem which implements the Parsing Expression Grammars algorithm . The parser defines the components of a scientific name as a series of recursive regular expressions. It begins by using white spaces to separate the components of the scientific name and authorship, and then moves to identifying each components as a genus, specific epithet, infraspecific epithet, author, year, etc. The higher level definitions describe how simpler components combine together as a name or a conglomerate of names (hybrids). At first the parser follows the rules of all nomenclatural codes inclusively; if something is allowed in the ICBN (International Code of Botanical Nomenclature, but not allowed in the ICZN (International Code of Zoological Nomenclature), it is allowed by the parser. If the parser fails to atomize a name it moves into ‘relaxed’ mode, where common mistakes in writing names or authorship are taken into account. For example, relaxed mode allows diacritic characters not permitted by zoological or botanical codes, double parentheses surrounding author names, year without an author, square brackets and question marks around years (as in the example ‘[185?]’), etc. Relaxed mode does not perform fuzzy matching. If relaxed mode fails as well the parser uses ‘salvage’ mode, which tries to extract the canonical form of the name from the string, discarding anything to the right of it.` Parsing is case sensitive, which means, for example, that the genus part of a binomial must be capitalized, and the species epithet must be in lower case to be recognized. Scientific names that do not follow a rigid linear structure (for example, hybrid names such as Coeloglossum viride (L.) Hartman × Dactylorhiza majalis (Rchb. f.) P.F. Hunt & Summerhayes ssp. praetermissa (Druce) D.M. Moore & Soó) are also supported as a result of a recursive nature of the algorithm.
In addition to separating the author from the taxon name, the parser detects and separates the genus from specific and infraspecific epithets, and extracts rank indicators such as “var.”, “ssp.”, “subsp.”, etc. For example, “Bromus inermis var. confinis (Nees ex Steud.) Stapf” is separated into genus "Bromus", specific epithet "inermis", infraspecific rank indicator "var.", infraspecific epithet "confinis", basionym author "Nees ex Steud." and combining author "Stapf". The results of parsing are also used to determine the overall taxonomic rank of the name submitted (for example, genus, species, subspecies, variety, etc.). This information is required for flagging partial matches and for constraining matches by higher taxonomy (see User options).
Fuzzy matching is performed by a modified version of the PHP implementation  of Taxamatch . The Taxamatch algorithm speeds matching of taxonomic names by matching higher taxonomic name components first, then searching only for taxa within the best-matching higher taxon (for example, genera, followed by the species within the best-matching genus). Matches to names minus the authority are determined using two separate tests: phonetic similarity and orthographic (spelling) similarity. A name passing either of these tests, or both, is considered a "match" (although see Candidate match selection for additional rules enforced by the TNRS).
Phonetic similarity is assessed using a custom algorithm that substitutes specific characters or character pairs for others, thereby transforming each name to a simplified phonetic equivalent. Although similar to approaches such as Soundex  and Phonix , the Taxamatch algorithm also takes into account specific lexical conventions of scientific names and incorporates a degree of “stemming” of species epithets, in which a range of possible variant word endings are transformed to a single standardized form (cf. ). The stemming (equivalent) in Taxamatch equates -a, -is -us, -ys, -es, -um, -as and -os when they occur at the end of a species epithet (or infraspecies) by changing them all to -a. Thus (for example) the epithets “nitidus”, “nitidum”, “nitidus” and “nitida” will all be considered equivalent following this process. Once transformed, names are compared using an exact match; this operation is very fast as reference names are transformed in advance during the loading of each taxonomic source to the TNRS database.
Orthographic similarity for each name component (e.g., genus, species, subspecies; but not author; see below) is calculated using a modified Damerau-Levenshtein Distance [60, 61] with additional corrections for transposed syllables (T. Rees, unpubl.), hereafter referred to as edit distance (ED). “Classic” ED using Levenshtein’s original algorithm  is a measure of the minimum number of single-character deletions, insertions, or substitutions required to transform one string into a second string. Thus, “faveolata” and “flaveolata” have an edit distance of 1 by that measure (single character insertion) as do “Ficus” and “Fucus” (single character substitution). The “Damerau-Levenshtein” version of the algorithm also allows single character transpositions (for example, “Nais” vs. “Nias”) at a cost of ED 1 which under “classic” Levenshtein would incur a cost of 2 (substitutions), since transpositions are not recognised in the original case. The additional modification introduced for Taxamatch, termed Modified Damerau-Levenshtein Distance or MDLD, further permits multi-character transpositions (for example, “vecusilosus” to “vesiculosus”), at a cost of the number of transposed characters only (ED 2 in this case) rather than the more expensive cost (ED 4) that would be incurred if each character were to be substituted individually, as in either of the preceding algorithms.
Due to its variable spelling, abbreviation and format, similarity of the author is calculated using the more relaxed n-gram method , which produces an author match score (AMS) ranging from 0-1. This index is calculated as a blend of 2/3 bigram and 1/3 trigram similarity between the strings, for which known botanical author abbreviations are expanded according to a dictionary of stored abbreviations prior to the comparison. The abbreviations are chiefly a subset of the standard abbreviations found in Brummitt & Powell , supplemented with additional abbreviated forms, including some for animal names, as compiled in one of the authors' (TR) Interim Register of Marine and Nonmarine Genera database . The index is calculated twice, once using the original UTF8 strings and a second time using plain ASCII version, so as to reduce differences solely due to presence or absence of diacritical marks. The final author similarity score is the unweighted average of the two calculations. For example, consider the authority portions of the two species name strings “Jovetia erecta Guédès” vs. “Jovetia erecta M.Guedes”. Treating the letters with diacritics (“é” and “è”) as different characters from their non-diacritic equivalents (“e” in both cases) would result in an undesirably low similarity (0.305, or 0.411 if the leading “M.” initial is omitted) whereas treating both as identical to “e” results in arguably too high a similarity (0.795, or 1.0 if the leading “M.” initial is omitted). Therefore, in order to score these variants as similar but not identical, the average value of the two approaches is used (0.550, or 0.705 if the leading “M.” initial is omitted). This example of multiple accented characters in a comparatively short word is somewhat unusual; in most cases the difference between the two approaches will be apparent but less extreme.
Extensions to the original Taxamatch code and schema were made to support matching of family names, trinomials (e.g., Bromus inermis subsp. inermis) and quadrinomials (e.g., Bromus inermis subsp. inermis var. divaricatus). An overall match score based on both name and author similarity scores is calculated during the post-processing stage (see Match score calculation, below).
Match score calculation. After fuzzy matching is complete, the EDs of each name component (family, genus, species, variety, etc.; see Fuzzy matching , above) are combined and transformed to an Overall Match Score (OMS). The OMS provides a more intuitive measure of the confidence that a submitted string matches a name, with 0 indicating no confidence in a match (or, possibly, high confidence in a non-match) and 1 indicating certainty that the returned name is the correct match for the submitted name. With the exception of names matching perfectly to the TNRS database—which are automatically assigned an OMS of 1—calculation of the OMS involves the following four steps.
where MaxED, the maximum possible value of ED, is equal to the length of the longest of the two strings compared. PMS thus ranges between -1 and 1, where 1 is an exact match. A penalty of -0.3 is applied if a rank indicator (“var.”, “ssp.”, “subsp.”, etc.) is present in the submitted string but is not the correct one. For example, in the case of Chondrophora nudata var. virgata, if the user submits Chondrophora nudata fo. virgata, the infraspecific taxon will receive a score of 0.7: 1 for the infraspecific epithet, minus 0.3 for the incorrect infraspecific rank indicator ("fo." instead of "var.").
This is the final OMS that is presented to the user.
Candidate match selection. To qualify as a candidate match, a name must pass the maximum ED test and also pass either the phonetic test or the match threshold test. The phonetic test is performed during fuzzy matching (see Fuzzy matching, above). The remaining two tests are performed during post processing, as described below.
To pass the maximum ED test, the following must be true: ED ≤ 2 * (number of name parts). Rank indicators of infraspecific taxon names ("var.", "subsp.", etc.) are not counted as name parts. Thus, for a variety such as Poa annua var. spuria, the number of name parts is three, and the maximum ED is 6. For a species name, which consists of two parts, the maximum ED is 4.
The match threshold test is based on the EDs of each name component, weighted by the lengths of the strings compared. The following conditions must be satisfied for each name component: (ED / MSL ≤ MaxEDR) AND ((2 ≤ ED < 4 AND the first character matches) OR (ED = 4 AND the first 3 characters match)), where MSL is the minimum length of the two strings being compared and MaxEDR is the maximum edit distance ratio, a constant which takes on one of two values depending on the value of MSL. For MSL < 6, MaxEDR= 0.5; for MSL ≥ 6, MaxEDR= 0.3334. The values of MaxEDR were determined empirically by examining performance for samples of names. Although in general MaxEDR=1/3 provides intuitively "reasonable" matching of most names (BB, pers. observation), it is increased for strings of five characters or less to compensate for a bias against matching short strings. For example, "Marsilleya", which differs from its target genus "Marsilea" by an ED of 2 (MSL=8), passes the match threshold test (ED/MSL ≤ 0.3334). "Ulleya", which also differs from its target "Ulea" by an ED of 2 (MSL=4), passes the match threshold test at the less stringent MaxEDR of 0.5 (ED/MSL ≤ 0.5), but would fail at MaxEDR=0.3334.
Ranking and best match selection. Once candidate matches have been determined by applying the phonetic, match threshold and maximum ED tests, multiple candidate matches to a single submitted name are ranked to select the best match. During name processing, the TNRS performs and stores two alternative sets of rankings, one unconstrained and the other constrained by higher taxonomy.
Using the unconstrained algorithm, the TNRS ranks all candidate matches by descending SNMS, OMS and taxonomic status. Taxonomic status is ranked as follows: “accepted” > “synonym” > “no opinion” ("illegitimate" and "invalid" are treated as "synonym" for ranking purposes). The highest ranking candidate match is then presented to the user as the best match. If two or more candidate matches have identical values of SNMS, OMS and taxonomic status, the name with the lowest alphabetical sort order is presented as the best match but flagged as “Ambiguous Match” (see Warnings, below).
The taxonomically-constrained rank calculation is similar to the unconstrained algorithm, except that the calculation is performed separately for each name component, starting with genus (or family, if a family was submitted with the name), then species, then infraspecific taxa, if any. The result of the taxonomically-constrained algorithm is that the best (highest ranked) match for a species name with a misspelled genus but perfectly spelled specific epithet will be the best-matching genus, whereas the best match using the unconstrained algorithm will be best-matching species. For example, the best overall match for Fucus insipida is the species Ficus insipida (OMS = 0.96) in the Moraceae (fig family), whereas the best genus match is Fucus (OMS = 0.50) in the Fucaceae (brown algae). Under the default unconstrained ranking algorithm, Ficus insipida will be displayed as the best match and flagged with the warning "Better higher taxonomic match available". Under the taxonomically-constrained ranking algorithm, Fucus will be displayed as the best match and given two warnings: "Partial match" and "Better spelling match in different higher taxon" (see Warnings, below).
Both sets of rankings are calculated and stored during name processing, and the user may switch between taxonomically-constrained or unconstrained matches after name processing is complete by checking or unchecking "Constrain by higher taxonomy" under "Best match settings" (see User options). In addition, a second user setting provides the option of constraining best matches by taxonomic source. This ranking is performed "on the fly" by checking "Constrain by source" under "Best match settings", and causes all candidate matches from the top-ranked source to rank above those of lower-ranked sources. Thus, a candidate match with a low OMS will appear as the best match even if candidate match with a higher OMS is found for a lower-ranked taxonomic source. Adjusting this setting only has an effect if >1 taxonomic source has been used. This setting is recommended if using multiple sources simultaneously, as it minimizes the effect of spelling and synonymy conflicts between sources.
Warnings. The TNRS issues four types of warnings about names matched. "Partial match" indicates that the name matched is of a higher taxonomic rank than the name submitted by the user. For example, if the user submitted a species name but the TNRS was able to match only the genus, the TNRS would return the genus along with the warning "Partial match". "Ambiguous match" indicates a “tie”, meaning that one or more other candidate matches have identical match scores and taxonomic status. Two additional warnings indicate that the name submitted matches to taxa which are not closely related. "Better spelling match in different higher taxon" indicates that another candidate match with a better overall match score is available in a different higher taxon. "Better higher taxonomic match available" indicates that a another candidate match with a lower overall match score provides a better match to the higher taxon of the name submitted (see Ranking and best match selection, above).
Web services and application programming interface
The TNRS web-services layer acts as an asynchronous job execution and data management server. It controls traffic between the user interface and the TNRS name resolution. These services manage input and output files and schedule jobs submitted for parsing and fuzzy matching.
The TNRS web services can be accessed programmatically via a RESTful API, using a GET call with two parameters: retrieve (followed by options requesting the return of all matches or the single best match only) and names (followed by a comma-separated list of URL-encoded taxon names). Results are returned from the web service as JSON. Details of the TNRS API are provided at http://tnrs.iplantcollaborative.org/about.html#api . As a demonstation of how to use the TNRS in third-party software, Additional file 1 provides an example R script that calls the TNRS API in the context of adding taxon names to a phylogeny.
The TNRS web interface uses a Rich Internet Application (RIA)  front end and is built using the Google Web Toolkit for a high degree of user interactivity within a web browser. The interface is supported by a layer of web services that provide a bridge between the user interface (UI) and the underlying algorithms that perform the matching (see Web services and application programming interface).
Name resolution results are displayed below the data entry panel (Figure 2). Only the single best match is displayed by the web interface; however, users may view alternative matches by clicking on the “(+n more)” hyperlink. Additional hyperlinks allow the user to view matched names and accepted names in their original source databases. Taxonomic status of each name is indicated as “Accepted”, “Synonym” or “No opinion” (some sources further distinguish "Illegitimate" or "Invalid" non-accepted names). For matched names that are not accepted according to the sources consulted a link to the accepted name is provided. Results can be copied directly from the results display or downloaded as a comma-delimited text file.
Name processing settings
Determines whether the name is parsed and resolved (corrected) or parsed only
Full name resolution (default)
Parse names only
Adjusts the minimum OMS required to return a name as a candidate match
Slider from lowest (default) to highest (perfect match, OMS = 1.0)
Allow partial matches
If enabled, the TNRS will match a higher taxonomic component of a name if it cannot match the name at the rank submitted
Taxonomic sources used to resolve names. Higher-ranked sources applied first if Best match setting "Constrain by source" enabled (see text)
Rank by dragging/dropping
Source of family classification for matched and accepted names
Tropicos / APG III (default)
NCBI (similar to APG III, with recent changes)
Results and discussion
Comparison with existing name resolution applications
Comparison of features of name resolution applications
Provides confidence score
Returns alternative matches
Handles infraspecific taxa
Tropicos web service
Catalogue of Life
Tropicos name matching utility
GRIN Taxonomic Nomenclature Checker
To our knowledge, Plantminer  and The Global Names Resolver (GNResolver)  are the only applications in addition to the TNRS that combine batch resolution of plant scientific names, spelling correction via fuzzy matching, and access via both a user interface and web services. Like the TNRS, both these applications convert synonyms to accepted names. Like the TNRS (but unlike Plantminer) the GNResolver can provide alternative matches and also returns a score indicating overall level of confidence in the match. To compare the name matching abilities of Plantminer and the GNResolver relative to the TNRS, we submitted to each application a list of 1000 uncorrected plant names from a database of ecological inventories (The SALVIAS Project ; see Additional file 2). The list contained a variety of errors such as misspelled taxon names, annotations, frame shifts, unconverted extended ASCII codes, morphospecies, etc. For the TNRS, we used Tropicos as the only taxonomic source; all other options were left at the default settings. As Plantminer checks names against both The Plant List and Tropicos, we expected that all names resolved by the TNRS should also be discoverable by Plantminer. Tropicos taxonomy is not available for use by the GNResolver; instead, we selected the International Plant Names Index (IPNI)  as the taxonomic source due to the high overlap between the two databases . We scored a name as successfully resolved if the application returned the expected name, as determined by inspection against the Tropicos database. For the GNResolver, we excluded from error counts any names which failed to resolve because the intended name was not in IPNI. Due to different conventions for spelling and abbreviation of author names between the source databases, we did not require matching of authorities.
The TNRS processed the 1000 names in 43 sec, or 0.04 sec/name, successfully correcting 980 names. Of the 20 failed matches, 17 were incomplete (matching to genus only), one was a non-match, and two were incorrect matches (matches to the wrong name). Plantminer processed the names in 10 min 13 sec, or 0.6 sec/name, successfully correcting 881 names. Of the 119 failed matches, 20 were incomplete, 76 were non-matches, and 23 were incorrect matches. The GNResolver processed the names in 5 min 12 sec or 0.3 sec/name successfully correcting 745 names. Of the 255 failed matches, 33 were incomplete, 226 were non-matches, and 4 were incorrect matches.
Types of errors made during resolution of 1000 names by Plantminer, GNResolver and the TNRS
Most likely cause of error
Annotation not recognized
Name all caps
Capitalized specific epithet
Failed to match family or genus
Infraspecific rank indicator not recognized
Morphospecies treated as taxon
Name submitted matches to >1 name
Failed fuzzy match, outside threshold
Parsing error caused by number in authority
Parsing error caused by special character in name
Features of the TNRS that enabled it to achieve a higher rate of success than both Plantminer and the GNResolver included recognition of a larger diversity of botanical annotations and alternative formulations of infraspecific rank indicators ("ssp" instead of "subsp."), the ability to perform partial matches to genus or family when the full name cannot be matched, and reduced sensitivity to case. In addition, the above results suggest that most TNRS match failures are easily remedied by allowing a less strict match threshold than the current default (although at the risk of an increased rate of false positives). Finally, this test compared only the abilities of the three applications to match names. Features such as warning flags, constraining by higher taxonomy, and tools for comparing and selecting alternative matches are unique to the TNRS and cannot be compared to other applications.
Improving linkages between taxonomic databases
As a test of the ability of the TNRS to increase linkages among biodiversity datasets, we compared overlap between two major taxonomic databases, pre- and post-standardization with the TNRS. The databases compared were the Integrated Taxonomic Information System (ITIS ) and the National Center for Biotechnology Information taxonomic database (NCBI, the taxonomic component of GenBank ). From each database, we extracted all plant names at the rank of species or below (NCBI, viridiplantae subtree; ITIS, kingdom="Plantae"). From NCBI, we included only formal scientific names, excluding informal names referring to samples or accessions (so-called “dark taxa” sensu R. Page ).
The lists of unique names from both databases combined were then standardized using the TNRS. As both USDA Plants and NCBI can be used as taxonomic sources by the TNRS (USDA species are in theory a subset of those in ITIS), we used only Tropicos and the GCC (Global Compositae Checklist) as taxonomic sources. All other options were left at their default settings.
Total names within two plant taxonomic databases before and after name resolution using the TNRS
After matching by TNRS
After matching & synonym conversion by TNRS
NCBI+ITIS (shared names)
NCBI+ITIS (total unique names)
The most important outcome of name resolution was the nearly five-fold increase in taxonomic overlap between the two taxonomic databases. This result highlights the potential of taxonomic resolution as a general tool for integrating and building linkages between biodiversity databases.
One of the primary strengths of the TNRS is to provide a repeatable and efficient workflow for accessing existing, best available taxonomic sources. The ease with which new sources are added to the TNRS database suggest that future efforts should be directed to encouraging providers of high-quality taxonomy to make their information available via the TNRS.
Although the TNRS provides a way to resolve many common forms of taxonomic semantic heterogeneity—in particular ambiguities due to misspellings and lexical variants, nomenclatural synonyms, and many forms of homonyms—major challenges remain. In particular, divergent taxonomic concepts can translate to differences in traits and geographic distributions; yet such differences are not reflected by differences in taxon names and authorities . For example, depending on the concept used, Abies lasiocarpa (Hook.) Nutt. (subalpine fir) is either (a) widely distributed throughout the Pacific Northwest and the interior Rocky Mountains of North America or (b) restricted to the coastal ranges of British Columbia and Alaska. A more complex example is provided by the grass Andropogon virginicus where the name has at least 5 meanings that overlap with 17 different taxon concepts that are variously given 27 scientific names . Unfortunately, at the present time, disambiguating such taxonomic ambiguity due to differing taxon concepts requires information on usage not communicated by the name alone, and rarely provided by most current taxonomic sources (but see ). As such information becomes available, future efforts should be directed toward the resolution not simply of names but of biologically more meaningful taxon concepts.
Although the TNRS was developed to resolve plant names, relatively minor changes are needed to extend coverage to other organisms and nomenclatural codes. Such improvements are beyond the scope of the current project, but we encourage others in the community to adapt the TNRS to their needs by accessing the source code at our publicly available repository.
The increasing availability of large, digitized biological datasets, while clearly a boon for biodiversity research, is also leading to an accumulation of incorrect, ambiguous or outdated taxon names, with negative consequences for comparative biological science, policy making, and data discovery. In an effort to provide a way forward we have developed the Taxonomic Name Resolution Service or TNRS, an application for correcting and standardizing taxonomic names with reference to existing sources of high-quality taxonomy.
The TNRS combines, within a single application, automated name parsing and correction with tools for inspection and resolution of ambiguous results. The TNRS provides a labor-saving and repeatable workflow for standardizing taxonomic names across an array of legacy and contemporary biodiversity data. A web interface makes the TNRS accessible to non-specialist users, while web services support programmatic access by expert users in need of automated name resolution. Tests demonstrate the potential of the TNRS for reducing error and increasing integration among major organismal databases.
Availability and requirements
Project name: Taxonomic Name Resolution Service
Project home page: http://tnrs.iplantcollaborative.org/
Operating systems: Linux based
Programming languages: PHP, MySQL, Ruby, Java
Other requirements: Java JDK 1.7.0 or higher, Git 1.7.4 or higher, MySQL 5.0.95 or higher, PHP 5.3.3 or higher (including mysql and mbstring extensions), Maven 2.2.1 or higher, Apache Tomcat 7.0.33 or higher, Apache HTTP Server 2.2.3 or higher, Apache JK Modules 1.2.31 or higher, YAML 0.1.4, Ruby 1.9.3 or higher, Rubygems 1.8.23 or higher. The setup has been tested on CentOS 5.8. Details are available at http://github.com/iPlantCollaborativeOpenSource/TNRS/blob/master/INSTALL.
Licences: The TNRS was built on two existing open-source projects, each of which retain their original licensing. The SilverBiology PHP port of Taxamatch  uses the Apache 2.0 license, and GNI's name parser uses a BSD style license. All other code is licensed using a standard BSD license .
Any restrictions to use by non-academics: None
Access to source code: The TNRS user interface is freely accessible via the TNRS website at http://tnrs.iplantcollaborative.org/. Instructions for accessing the TNRS matchNames web service can be found at http://tnrs.iplantcollaborative.org/api.html. Developers wishing to modify the TNRS for their own needs can download source code from the iPlant GitHub repository at https://github.com/iPlantCollaborativeOpenSource/TNRS/. A virtual machine image of the TNRS pre-loaded with an example database can be launched from within iPlant's Atmosphere cloud computing environment (https://atmo.iplantcollaborative.org; requires iPlant credentials).
Author match score
Application programming interface
Maximum edit distance ratio
Minimum length of the two strings being compared
Overall match score
Partial match score
Scientific name match score
Transformed scientific name match score.
We thank the Missouri Botanical Garden for sharing data from Tropicos, for modifying their web service API to enable improved access to these data and for their collaboration throughout this project. We thank Michael Giddens (Silver Biology) for access to his PHP implementation of Taxamatch. David Shorthouse collaborated with DM in developing the algorithm upon which the TNRS score transformation is based. Several iPlant developers made important contributions: Andrew Muir and Sriram Srinivasan developed the framework for the user interface, Hariolf Haefele provided database support, John Wregglesworth assisted with the job execution framework, and members of the Core Software team (Edwin Skidmore, Sangeeta Kuchimanchi, Steven Gregory and Andy Edmonds) deployed services and provide ongoing support. Bob Magill, Charles Miller, Paul Morris, Peter Jørgensen, Jay Paige, Alan Paton, Cam Webb, and Amy Zanne attended the preliminary TNRS planning meeting and provided many valuable suggestions. Finally, we would like to acknowledge Shannon Oliver for her invaluable contribution to the website design and documentation.
BJE was supported by NSF grant DBI 0850373 and TR by CSIRO Marine and Atmospheric Research, Australia,. BB and BJE acknowledge early financial support from Conservation International and TEAM who funded the development of early prototypes of taxonomic name resolution. The iPlant Collaborative (http://www.iplantcollaborative.org) is funded by a grant from the National Science Foundation (#DBI-0735191).
- Global biodiversity information facility. http://www.gbif.org/
- Tropicos. http://www.tropicos.org
- REMIB - Red mundial de informacion sobre biodiversidad. http://www.conabio.gob.mx/remib/doctos/remib_esp.html
- OBIS. http://www.iobis.org/
- VertNet. http://vertnet.org/index.php
- MaNIS. http://manisnet.org/
- The paleobiology database. http://paleodb.org/cgi-bin/bridge.pl
- Peet RK, Lee MT, Jennings MD, Faber-Langendoen D: VegBank: a permanent, open-access archive for vegetation plot data. Biodiversity Ecol 2012, 4: 233-241.View Article
- Enquist B, Boyle B, et al.: The SALVIAS vegetation inventory database. Biodiversity & Ecology. In Vegetation databases for the 21st century Edited by: Dengler J, Oldeland J, Jansen F. 2012, 288.
- Gray AN, Brandeis TJ, Shaw JD, McWilliams WH, Miles PD: Forest inventory and analysis database of the United States of America. Biodiversity Ecol 2012, 4: 225-231.View Article
- Lopez-Gonzalez G, Lewis SL, Burkitt M, Phillips OL: ForestPlots.net: a web application and research tool to manage and analyse tropical forest plot data. J Veg Sci 2011, 22: 610-613. 10.1111/j.1654-1103.2011.01312.xView Article
- Center for tropical forest science. http://www.ctfs.si.edu/
- Dengler J, Jansen F, Glöckler F, et al.: The Global Index of Vegetation-Plot Databases (GIVD): a new resource for vegetation science. J Veg Sci 2011, 22: 582-597. 10.1111/j.1654-1103.2011.01265.xView Article
- TraitNet. http://traitnet.ecoinformatics.org/
- Kattge J, Díaz S, Lavorel S, et al.: TRY-a global database of plant traits. Glob Chang Biol 2011, 17: 2905-2935. 10.1111/j.1365-2486.2011.02451.xPubMed CentralView Article
- Benson DA, Karsch-Mizrachi I, Lipman DJ, Ostell J, Sayers EW: GenBank. Nucleic Acids Res 2009, 37: D26-31. 10.1093/nar/gkn723PubMed CentralView ArticlePubMed
- TreeBASE. http://www.treebase.org/treebase-web/home.html
- Thomas C: Biodiversity databases spread, prompting unification call. Science 2009, 324: 1632. 10.1126/science.324_1632View ArticlePubMed
- Funk VA, Zermoglio MF, Nasir N: Testing the use of specimen collection data and GIS in biodiversity exploration and conservation decision making in Guyana. Biodivers Conserv 1999, 8: 727-751. 10.1023/A:1008877222842View Article
- Frese L: Towards improved in situ management of Europe’s crop wild relatives. Crop Wild Relative 2008, 3627: 24-25.
- Harris ESJ, Erickson SD, Tolopko AN, et al.: Traditional Medicine Collection Tracking System (TM-CTS): a database for ethnobotanically driven drug-discovery programs. J Ethnopharmacol 2011, 135: 590-3. 10.1016/j.jep.2011.03.029PubMed CentralView ArticlePubMed
- Paton A: Biodiversity informatics and the plant conservation baseline. Trends Plant Sci 2009, 14: 629-37. 10.1016/j.tplants.2009.08.007View ArticlePubMed
- Edwards JL: Interoperability of biodiversity databases: biodiversity information on every desktop. Science 2000, 289: 2312-2314. 10.1126/science.289.5488.2312View ArticlePubMed
- The plant list. http://www.theplantlist.org
- Guralnick RP, Hill AW, Lane M: Towards a collaborative, global infrastructure for biodiversity assessment. Ecol Lett 2007, 10: 663-72. 10.1111/j.1461-0248.2007.01063.xPubMed CentralView ArticlePubMed
- Dayrat B: Towards integrative taxonomy. Biol J Linn Soc 2005, 85: 407-415. 10.1111/j.1095-8312.2005.00503.xView Article
- Bortolus A: Error cascades in the biological sciences: the unwanted consequences of using bad taxonomy in ecology. AMBIO: J Hum Environ 2008, 37: 114-118. 10.1579/0044-7447(2008)37[114:ECITBS]2.0.CO;2View Article
- Global names. http://www.globalnames.org
- UBio. http://www.ubio.org
- International plant names index. http://www.ipni.org/
- Encyclopedia of life. http://www.eol.org
- Integrated Taxonomic Information System (ITIS). http://www.itis.gov/customdownload.html
- Catalogue of life. http://www.catalogueoflife.org
- Gerner M, Nenadic G, Bergman CM: LINNAEUS: a species name identification system for biomedical literature. BMC Bioinforma 2010, 11: 85. 10.1186/1471-2105-11-85View Article
- Gwinn NE, Rinaldo C: The biodiversity heritage library: sharing biodiversity literature with the world. IFLA J 2009, 35: 25-34. 10.1177/0340035208102032View Article
- ZooBank. http://zoobank.org:80/Default.aspx
- Chave J, Muller-Landau HC, Baker TR, et al.: Regional and phylogenetic variation of wood density across 2456 Neotropical tree species. Ecol Appl: Publ Ecol Soc Am 2006, 16: 2356-67.View Article
- Weiser MD, Enquist BJ, Boyle B, et al.: Latitudinal patterns of range size and species richness of New World woody plants. Glob Ecol Biogeogr 2007, 16: 679-688. 10.1111/j.1466-8238.2007.00323.xView Article
- Franz NM, Peet RK: Perspectives: towards a language for mapping relationships among taxonomic concepts. Syst Biodivers 2009, 7: 5-20. 10.1017/S147720000800282XView Article
- Goff SA, Vaughn M, McKay S, et al.: The iPlant collaborative: cyberinfrastructure for plant biology. Front Plant Sci 2011, 2: 1-16.View Article
- The iPlant tree of life project. http://www.iplantcollaborative.org/grand-challenges/about-grand-challenges/current-challenges/iptol
- The botanical information and ecology network. http://bien.nceas.ucsb.edu/bien/
- History of the OSI. http://www.opensource.org/history
- Global compositae checklist. http://compositae.landcareresearch.co.nz/
- USDA Plants. http://plants.usda.gov/java/
- NCBI Taxonomy. http://www.ncbi.nlm.nih.gov/Taxonomy/taxonomyhome.html/
- Dark taxa: GenBank in a post-taxonomic world. http://iphylo.blogspot.com/2011/04/dark-taxa-genbank-in-post-taxonomic.html
- Karthick B, Williams D: The international code for nomenclature for algae, fungi and plants - a significant rewrite of the international code of botanical nomenclature. Curr Sci (Bangalore) 2012, 102: 551-552.
- Celko J: Joe Celko’s SQL for smarties: trees and hierarchies. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA; 2004.
- Haston E, Richardson JE, Stevens PF, et al.: The linear angiosperm phylogeny group ( LAPG ) III: a linear sequence of the families in APG III. Bot J Linn Soc 2009, 161: 128-131. 10.1111/j.1095-8339.2009.01000.xView Article
- Simple darwin core. http://rs.tdwg.org/dwc/terms/simple/index.htm
- Stearn WT: Botanical latin. Timber Press, Portland, Oregon; 2004:560.
- GNI name parser. https://github.com/GlobalNamesArchitecture/biodiversity
- Ford B: Parsing expression grammars. ACM SIGPLAN Not 2004, 39: 111-122. 10.1145/982962.964011View Article
- Taxamatch Web service. http://www.silverbiology.com/products/taxamatch/
- TAXAMATCH - fuzzy matching algorithm for genus and species scientific names. http://www.cmar.csiro.au/datacentre/taxamatch.htm
- Odell M, Russell R: The soundex coding system. 1918.
- Gadd TN: PHONIX: The algorithm. Program: Electron Libr Inform Syst 1990, 24: 363-366. 10.1108/eb047069View Article
- Fuller M, Zobel J: Conflation-based comparison of stemming algorithms. In Proceedings of the third Australian document computing symposium, Sydney, Australia, August 21, 1998. Edited by: Kay J, Milosavlje M. University of Sydney, Sydney; 1998:8-13.
- Damerau FJ: A technique for computer detection and correction of spelling errors. Commun ACM 1964, 7: 171-176. 10.1145/363958.363994View Article
- Levenshtein VI: Binary codes capable of correcting deletions, insertions, and reversals. Sov Phys Dokl 1966, 10: 707-710.
- Owolabi O, McGregor DR: Fast approximate string matching. Software Pract Ex 1988, 18: 387-393. 10.1002/spe.4380180407View Article
- Brummitt RK, Powell CE: Authors of plant names. Kew: Royal Botanical Gardens, London, U.K; 1992:732.
- Interim register of marine and nonmarine genera. http://www.cmar.csiro.au/datacentre/irmng/
- Farrell J, Nezlek GS: Rich internet applications the next stage of application development. In 29th International Conference on Information Technology Interfaces, ITI 2007, June 25-28. Institute of Electrical and Electronics Engineers (IEEE), Cavtat, Croatia; 2007:413-418.View Article
- Tropicos Web services. http://services.tropicos.org/
- Tropicos name matching. http://www.tropicos.org/NameMatching.aspx
- GRIN taxonomic nomenclature checker. http://pgrdoc.bioversity.cgiar.org/taxcheck/grin/index.html
- Carvalho GH, Cianciaruso MV, Batalha MA: Plantminer: A web tool for checking and gathering plant species taxonomic information. Environ Model Software 2010, 25: 815-816. 10.1016/j.envsoft.2009.11.014View Article
- Global names resolver. http://resolver.globalnames.org/
- The plant list: sources. http://www.theplantlist.org/about/#collaborators
- NCBI taxonomy ftp site. ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdmp.zip
- Franz N, Peet R, Weakley A: On the use of taxonomic concepts in support of biodiversity research and taxonomy. In The New taxonomy, systematics association special volume series 74. Edited by: Wheeler oca Raton QD. Taylor & Francis, FL; 2008:61-84.
- Open source initiative. http://www.opensource.org/licenses/index.html
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.