Summary
The accepted species Macromitrium st-johnii E.B. Bartram (usageKey 9W722) cannot be found by name matching. A scientificName match for it falls back to the genus (matchType=HIGHERRANK) instead of resolving to the species.
The underlying cause is that the name is indexed with a degenerate canonical name: the specific epithet st-johnii is correctly extracted into specificEpithet, but it is omitted from canonicalName (which is just "Macromitrium"), and the name is rendered as Macromitrium sp.. This makes the species unreachable via name-based matching, even though it is retrievable by key.
The trigger appears to be the hyphenated epithet beginning with st- (likely mis-parsed as an abbreviation/placeholder rather than a valid specific epithet).
Environment
- Service: GBIF species matching (
/v2/species/match)
- Dataset: Catalogue of Life eXtended Release (COL-XR); usageKey
9W722
- Reproduced on a local matching-ws Docker container, but the defect is in the indexed name interpretation, so it should reproduce wherever this name is served.
Steps to reproduce
1. Retrieve the taxon by key (works, but note the broken canonical name):
GET /v2/species/match?usageKey=9W722
"usage": {
"key": "9W722",
"name": "Macromitrium st-johnii E.B. Bartram",
"canonicalName": "Macromitrium",
"specificEpithet": "st-johnii",
"rank": "SPECIES",
"status": "ACCEPTED",
"formattedName": "<i>Macromitrium</i> sp. E.B. Bartram"
}
2. Match the same taxon by name (fails — resolves only to the genus):
GET /v2/species/match?scientificName=Macromitrium%20st-johnii%20E.B.%20Bartram&kingdom=Plantae
"usage": { "key": "9JL6J", "name": "Macromitrium Brid.", "rank": "GENUS" },
"diagnostics": { "matchType": "HIGHERRANK", "confidence": 95 }
Every spelling variant tried (Macromitrium stjohnii, Macromitrium st johnii, Macromitrium st.johnii, Macromitrium saintjohnii) also returns HIGHERRANK → genus 9JL6J.
Expected vs actual
|
Expected |
Actual |
canonicalName |
Macromitrium st-johnii |
Macromitrium |
formattedName |
<i>Macromitrium st-johnii</i> E.B. Bartram |
<i>Macromitrium</i> sp. E.B. Bartram |
| Name match result |
usageKey=9W722 (SPECIES) |
usageKey=9JL6J (GENUS), HIGHERRANK |
Control (a normal congeneric species parses correctly)
GET /v2/species/match?usageKey=6QSFR
"usage": {
"key": "6QSFR",
"name": "Macromitrium gracile (Hook.) Schwägr.",
"canonicalName": "Macromitrium gracile",
"specificEpithet": "gracile",
"rank": "SPECIES",
"formattedName": "<i>Macromitrium</i> <i>gracile</i> (Hook.) Schwägr."
}
M. gracile and other congeners (e.g. 72SFV, 3X6BN) match EXACT by name. Only the st-johnii epithet is affected, which points to a name-parsing edge case for the st-/hyphen prefix.
Summary
The accepted species Macromitrium st-johnii E.B. Bartram (usageKey
9W722) cannot be found by name matching. AscientificNamematch for it falls back to the genus (matchType=HIGHERRANK) instead of resolving to the species.The underlying cause is that the name is indexed with a degenerate canonical name: the specific epithet
st-johniiis correctly extracted intospecificEpithet, but it is omitted fromcanonicalName(which is just"Macromitrium"), and the name is rendered asMacromitrium sp.. This makes the species unreachable via name-based matching, even though it is retrievable by key.The trigger appears to be the hyphenated epithet beginning with
st-(likely mis-parsed as an abbreviation/placeholder rather than a valid specific epithet).Environment
/v2/species/match)9W722Steps to reproduce
1. Retrieve the taxon by key (works, but note the broken canonical name):
2. Match the same taxon by name (fails — resolves only to the genus):
Every spelling variant tried (
Macromitrium stjohnii,Macromitrium st johnii,Macromitrium st.johnii,Macromitrium saintjohnii) also returnsHIGHERRANK→ genus9JL6J.Expected vs actual
canonicalNameMacromitrium st-johniiMacromitriumformattedName<i>Macromitrium st-johnii</i> E.B. Bartram<i>Macromitrium</i> sp. E.B. BartramusageKey=9W722(SPECIES)usageKey=9JL6J(GENUS),HIGHERRANKControl (a normal congeneric species parses correctly)
M. gracile and other congeners (e.g.
72SFV,3X6BN) matchEXACTby name. Only thest-johniiepithet is affected, which points to a name-parsing edge case for thest-/hyphen prefix.