biodiversity 3.4.6 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de07f91c8ffc3108a904a721c51958eecb40b7f3
4
- data.tar.gz: e99325e7c1ffd69a54e141b0ac16b812b7ed8b04
3
+ metadata.gz: 39237a14ed21c0cdf5ea9f7687240b3af4477e47
4
+ data.tar.gz: 7d1d770ce5748b48f86cb0bebadb89307ef0a3bc
5
5
  SHA512:
6
- metadata.gz: 01d7cdc186ce25bbbbd9f6fe282863692b803f2b8886c277b8255b68c3cfceba2f26cd0472d898c4b34c47952948945a4542013237d72c79ba19656664dd1da4
7
- data.tar.gz: 4c34340ddecebc311bbe043d578fa3b4484bdb6fbf929609287176bed27d14b84d076d2810eb157fd79d658f92a24e506130e993c5e0c370b4f2563546a6d281
6
+ metadata.gz: d2eb0fa48343641f9c05ec8320834ddef60dc5794c058b91d813eed1db40991c0c865496fe6c39c485aabbe8d200a20aac71d67e3be58535e5972bf8b4d04697
7
+ data.tar.gz: eda4fb5b701f8c1606285d2e90d64a82f59958e1cf0a56247be8e2f2cc1c30b6ff04ace786ba6e0e6e7e36ce4ce3b113ed1e83ad28fdbdc02df6a11c39938841
@@ -0,0 +1,18 @@
1
+ q
2
+ res[:scientificName][:tail]
3
+ res[:scientificName]
4
+ q
5
+ res[:tail]
6
+ res[:scientificName][:tail]
7
+ res[:scientificName]
8
+ res
9
+ c
10
+ q
11
+ res
12
+ q
13
+ res
14
+ q
15
+ @ss
16
+ @2tt
17
+ @tail
18
+ res
@@ -1 +1 @@
1
- 2.1.6
1
+ 2.4.4
@@ -1,9 +1,9 @@
1
1
  rvm:
2
- - 2.0
3
2
  - 2.1
4
3
  - 2.2
5
4
  - 2.3
6
5
  - 2.4
6
+ - 2.5
7
7
  branches:
8
8
  only:
9
9
  - master
data/CHANGELOG CHANGED
@@ -1,91 +1,95 @@
1
- 3.4.6 -- gems update
1
+ 3.5.0 -- add the tail cut by preprocessing to the results. The tail usually
2
+ contains annotations about the name.
3
+
4
+ 3.4.6 -- gems update.
2
5
 
3
6
  3.4.5 -- fix "fil." and "filius" with infraspecies after them, add "'t" as a
4
7
  possible author prefix, add "emend." as "emendatum or rectified by" to
5
- authors
8
+ authors.
6
9
 
7
10
  3.4.4 -- support "del" as part of authorship, do not truncate epithets that
8
- start with "nomen", add "nvar." as a rank
11
+ start with "nomen", add "nvar." as a rank.
9
12
 
10
13
  3.4.3 -- add "fil." as a possible spelling of "filius", add "do" as an author
11
14
  prefix, add "apud" as an author separator, add possible second "ex" or
12
- "in"
15
+ "in".
13
16
 
14
- 3.4.2 -- update treetop to 1.6
17
+ 3.4.2 -- update treetop to 1.6.
15
18
 
16
- 3.4.1 -- support for authors starting with "d'"
19
+ 3.4.1 -- support for authors starting with "d'".
17
20
 
18
21
  3.4.0 -- added ScientificNameParser.add_rank_to_canonical(parsed) method.
19
22
  This method allows to add infraspecific rank to a canonical form
20
23
  after the fact of parsing.
21
24
 
22
- 3.3.0 -- parserver gets new option -- -H for host, default 127.0.0.1
25
+ 3.3.0 -- parserver gets new option -- -H for host, default 127.0.0.1.
23
26
 
24
27
  3.2.1 -- fix parserver -- it does remove new lines now (before it was not
25
- necessary as they were stripped in older versions by parser)
26
- necessary as they were stripped in older versions by parser)
28
+ necessary as they were stripped in older versions by parser)
29
+ necessary as they were stripped in older versions by parser).
27
30
 
28
31
  3.2.0 -- added UUID version 5 identifiers for every name string, better
29
- normalizing for the names with apostrophes, underscore-formatted names are
30
- supported. Verbatim field does mean nonchanged input now (before it was
31
- stripping empty spaces and new lines around name string). Minor version
32
- increase because of change in the output format ("id" field)
32
+ normalizing for the names with apostrophes, underscore-formatted
33
+ names are supported. Verbatim field does mean nonchanged input now
34
+ (before it was stripping empty spaces and new lines around name
35
+ string). Minor version increase because of change in the output
36
+ format ("id" field).
33
37
 
34
- 3.1.10 -- NPV viruses added
38
+ 3.1.10 -- NPV viruses added.
35
39
 
36
40
  3.1.9 -- more virus keywords, better handling of apostrophes in
37
- species epithets
41
+ species epithets.
38
42
 
39
- 3.1.8 -- downgrading dependency on treetop to 1.4.1
43
+ 3.1.8 -- downgrading dependency on treetop to 1.4.1.
40
44
 
41
- 3.1.7 -- fixed travis and dependencies
45
+ 3.1.7 -- fixed travis and dependencies.
42
46
 
43
- 3.1.6 -- added forma. to ranks, tests for species epithets with apostrophe
47
+ 3.1.6 -- added forma. to ranks, tests for species epithets with apostrophe.
44
48
 
45
- 3.1.5 -- updated depenencies
49
+ 3.1.5 -- updated depenencies.
46
50
 
47
- 3.1.4 -- added files generated by tt to repository
51
+ 3.1.4 -- added files generated by tt to repository.
48
52
 
49
- 3.1.3 -- removed dependency on jeweler
53
+ 3.1.3 -- removed dependency on jeweler.
50
54
 
51
55
  3.1.2 -- fixed problems with infraspecies epithets starting with fo,
52
- for example Peristernia nassatula forskali Tapparone-Canefri 1875
56
+ for example Peristernia nassatula forskali Tapparone-Canefri 1875.
53
57
 
54
- 3.1.1 -- fixed problem with names ending on sp
58
+ 3.1.1 -- fixed problem with names ending on sp.
55
59
 
56
60
  3.1.0 -- added surrogates: Genbank, Barcode of life names.
57
- Also cf., sp. spp are flagged as surrogates
61
+ Also cf., sp. spp are flagged as surrogates.
58
62
 
59
- 3.0.1 -- updated gems
63
+ 3.0.1 -- updated gems.
60
64
 
61
65
  3.0.0 -- removing support for ruby 1.8.7, making biodiversity gem be the same
62
66
  as biodiversity19, deprecating biodiversity19. A few newly discovered bugs
63
67
  are fixed.
64
68
 
65
- 2.1.0 -- added ScientificNameParser.version method
69
+ 2.1.0 -- added ScientificNameParser.version method.
66
70
 
67
71
  2.0.0 -- backward incompatibe change in parserver, therefore new major number.
68
72
  In parserver removed option --output=canonical_with_rank, instead added -r
69
73
  option which allows to have canonical with rank with either json or canonical
70
- outputs
74
+ outputs.
71
75
 
72
76
  1.2.0 -- changed method invocation signature ScientificNameParser.new
73
- Now it can take options
77
+ Now it can take options.
74
78
 
75
- 1.1.3 -- added 'fo' as rank
79
+ 1.1.3 -- added 'fo' as rank.
76
80
 
77
81
  1.1.2 -- static method for fixins all-caps canonical names, fixing caps
78
- for authors words, ampersand instead of 'et' in normalization
82
+ for authors words, ampersand instead of 'et' in normalization.
79
83
 
80
84
  1.1.1 -- more multi-uninomials cases, expanded viruses detection, added
81
- abbreviated genera and a few small fixes
85
+ abbreviated genera and a few small fixes.
82
86
 
83
87
  1.1.0 -- added multi-uninomials, fixes in identification annotations (aff.,
84
- cf., sp. etc), bug fixes, more robust salvage mode
88
+ cf., sp. etc), bug fixes, more robust salvage mode.
85
89
 
86
- 1.0.17 -- fixed a bug which prevented all diacritics be converted correctly
90
+ 1.0.17 -- fixed a bug which prevented all diacritics be converted correctly.
87
91
 
88
- 1.0.16 -- dirty mode now converts ë to e
92
+ 1.0.16 -- dirty mode now converts ë to e.
89
93
 
90
94
  1.0.15 -- additional rules added for names ending with ssp. sp sp. and cf.
91
95
 
@@ -96,7 +100,7 @@ multiplication sign for hybrids.
96
100
  1.0.13 -- canonical forms for cf. aff. qualifiers are modified: canonical for
97
101
  'Aus cf. bus' is now 'Aus bus'; canonical for 'Aus aff. bus' is now 'Aus'.
98
102
  Ranks at the end of the name like 'var', 'ssp', 'spp' are considered junk and
99
- are ignored
103
+ are ignored.
100
104
 
101
105
  1.0.12 -- bug is fixed which prevented 'Cucurbita pepo' be parsed correctly,
102
106
  f., forma, fr. are now treated as any other ranks.
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2008-2015 Marine Biological Laboratory
3
+ Copyright (c) 2008-2018 Dmitry Mozzherin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -222,7 +222,7 @@ Copyright
222
222
 
223
223
  Authors: [Dmitry Mozzherin][dimus]
224
224
 
225
- Copyright (c) 2008-2015 Marine Biological Laboratory. See [LICENSE][license]
225
+ Copyright (c) 2008-2018 Dmitry Mozzherin. See [LICENSE][license]
226
226
  for further details.
227
227
 
228
228
  [gem_svg]: https://badge.fury.io/rb/biodiversity.svg
@@ -23,13 +23,15 @@ module PreProcessor
23
23
  ssp\.|ssp|subsp|subgen|hybrid|hort\.|hort)\??\s*$/ix
24
24
 
25
25
  def self.clean(a_string)
26
+ orig = a_string
26
27
  [NOTES, TAXON_CONCEPTS1, TAXON_CONCEPTS2,
27
28
  TAXON_CONCEPTS3, NOMEN_CONCEPTS, LAST_WORD_JUNK].each do |i|
28
29
  a_string = a_string.gsub(i, "")
29
30
  end
31
+ tail = orig[a_string.size..-1]
30
32
  a_string = a_string.tr("ſ","s") #old "s"
31
33
  a_string = a_string.tr("_", " ") if a_string.strip.match(/\s/).nil?
32
- a_string
34
+ [a_string, tail.strip]
33
35
  end
34
36
  end
35
37
 
@@ -174,6 +176,7 @@ class ScientificNameParser
174
176
  @dirty = ScientificNameDirtyParser.new
175
177
  @canonical = ScientificNameCanonicalParser.new
176
178
  @parsed = nil
179
+ @tail = nil
177
180
  end
178
181
 
179
182
  def virus?(a_string)
@@ -198,7 +201,7 @@ class ScientificNameParser
198
201
 
199
202
  def parse(a_string)
200
203
  @verbatim = a_string
201
- a_string = PreProcessor::clean(a_string)
204
+ a_string, @tail = PreProcessor::clean(a_string)
202
205
 
203
206
  if virus?(a_string)
204
207
  @parsed = { verbatim: @verbatim, virus: true }
@@ -230,6 +233,7 @@ class ScientificNameParser
230
233
  parsed = self.class != Hash
231
234
  res = { id: @id, parsed: parsed,
232
235
  parser_version: ScientificNameParser::version}
236
+
233
237
  if parsed
234
238
  hybrid = self.hybrid rescue false
235
239
  res.merge!({
@@ -263,7 +267,9 @@ class ScientificNameParser
263
267
  end
264
268
 
265
269
  @parsed.verbatim = @verbatim
266
- @parsed.all(canonical_with_rank: @canonical_with_rank)
270
+ res = @parsed.all(canonical_with_rank: @canonical_with_rank)
271
+ res[:scientificName].merge!(tail: @tail) if @tail && @tail != ""
272
+ res
267
273
  end
268
274
 
269
275
  private
@@ -285,4 +291,4 @@ class ScientificNameParser
285
291
  name.match(surrogate2))
286
292
  is_surrogate
287
293
  end
288
- end
294
+ end
@@ -1,3 +1,3 @@
1
1
  module Biodiversity
2
- VERSION = "3.4.6"
2
+ VERSION = "3.5.0"
3
3
  end
@@ -139,7 +139,7 @@ Hordeum vulgare cœrulescens Metzger|{"scientificName":{"id":"3029cf1f-da59-5955
139
139
  Hordeum vulgare f. cœrulescens|{"scientificName":{"id":"27dd2ab3-8bf9-5f72-90bb-5c94530822f2", "parsed":true, "parser_version":"test_version", "verbatim":"Hordeum vulgare f. cœrulescens", "normalized":"Hordeum vulgare f. coerulescens", "canonical":"Hordeum vulgare coerulescens", "hybrid":false, "details":[{"genus":{"string":"Hordeum"}, "species":{"string":"vulgare"}, "infraspecies":[{"string":"coerulescens", "rank":"f."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 15], "16":["infraspecific_type", 18], "19":["infraspecies", 30]}}}
140
140
 
141
141
  # old style s (ſ)
142
- Musca domeſtica Linnaeus 1758 sec. Pemberton 1947|{"scientificName":{"id":"da29293e-5bc4-5e28-ac02-a0100e9f4d50", "parsed":true, "verbatim":"Musca domeſtica Linnaeus 1758 sec. Pemberton 1947", "normalized":"Musca domestica Linnaeus 1758", "canonical":"Musca domestica", "hybrid":false, "details":[{"genus":{"string":"Musca"}, "species":{"string":"domestica", "authorship":"Linnaeus 1758", "basionymAuthorTeam":{"authorTeam":"Linnaeus", "author":["Linnaeus"], "year":"1758"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15], "16":["author_word", 24], "25":["year", 29]}}}
142
+ Musca domeſtica Linnaeus 1758 sec. Pemberton 1947|{"scientificName":{"id":"da29293e-5bc4-5e28-ac02-a0100e9f4d50", "tail": "sec. Pemberton 1947", "parsed":true, "verbatim":"Musca domeſtica Linnaeus 1758 sec. Pemberton 1947", "normalized":"Musca domestica Linnaeus 1758", "canonical":"Musca domestica", "hybrid":false, "details":[{"genus":{"string":"Musca"}, "species":{"string":"domestica", "authorship":"Linnaeus 1758", "basionymAuthorTeam":{"authorTeam":"Linnaeus", "author":["Linnaeus"], "year":"1758"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15], "16":["author_word", 24], "25":["year", 29]}}}
143
143
  Amphisbæna fuliginoſa Linnaeus 1758|{"scientificName":{"id":"d2f6423b-7a8f-5389-a286-c074fb634c5a", "parsed":true, "parser_version":"test_version", "verbatim":"Amphisbæna fuliginoſa Linnaeus 1758", "normalized":"Amphisbaena fuliginosa Linnaeus 1758", "canonical":"Amphisbaena fuliginosa", "hybrid":false, "details":[{"genus":{"string":"Amphisbaena"}, "species":{"string":"fuliginosa", "authorship":"Linnaeus 1758", "basionymAuthorTeam":{"authorTeam":"Linnaeus", "author":["Linnaeus"], "year":"1758"}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 30], "31":["year", 35]}}}
144
144
 
145
145
  #basionym author in parenthesis
@@ -202,17 +202,17 @@ Acarinina aff. pentacamerata|{"scientificName":{"id":"c4ab66ee-79a2-5100-8b87-20
202
202
  Acarinina aff pentacamerata|{"scientificName":{"id":"06a32183-0aa7-5a00-9753-46db1141daa4", "parsed":true, "parser_version":"test_version", "verbatim":"Acarinina aff pentacamerata", "normalized":"Acarinina", "canonical":"Acarinina", "hybrid":false, "details":[{"genus":{"string":"Acarinina"}, "annotation_identification":"aff", "ignored":{"species":{"string":"pentacamerata"}}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["annotation_identification", 14]}}}
203
203
  Abturia cf. alabamensis (Morton )|{"scientificName":{"id":"5fd4ce59-98d3-50af-9e28-918adc47d264", "parsed":true, "parser_version":"test_version", "verbatim":"Abturia cf. alabamensis (Morton )", "normalized":"Abturia cf. alabamensis (Morton)", "canonical":"Abturia alabamensis", "hybrid":false, "details":[{"genus":{"string":"Abturia"}, "annotation_identification":"cf.", "species":{"species":{"string":"alabamensis", "authorship":"(Morton )", "basionymAuthorTeam":{"authorTeam":"Morton", "author":["Morton"]}}}}], "parser_run":1, "positions":{"0":["genus", 7], "8":["annotation_identification", 11], "12":["species", 23], "25":["author_word", 31]}, "surrogate": true}}
204
204
  Abturia cf alabamensis (Morton )|{"scientificName":{"id":"423cd26d-c6fd-54fb-937b-f98ba8056fc0", "parsed":true, "parser_version":"test_version", "verbatim":"Abturia cf alabamensis (Morton )", "normalized":"Abturia cf alabamensis (Morton)", "canonical":"Abturia alabamensis", "hybrid":false, "details":[{"genus":{"string":"Abturia"}, "annotation_identification":"cf", "species":{"species":{"string":"alabamensis", "authorship":"(Morton )", "basionymAuthorTeam":{"authorTeam":"Morton", "author":["Morton"]}}}}], "parser_run":1, "positions":{"0":["genus", 7], "8":["annotation_identification", 11], "11":["species", 22], "24":["author_word", 30]}, "surrogate": true}}
205
- Alyxia reinwardti var|{"scientificName":{"id":"2f0ee2be-8d37-5e43-9eed-776c17f47e93", "parsed":true, "parser_version":"test_version", "verbatim":"Alyxia reinwardti var", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
206
- Alyxia reinwardti var.|{"scientificName":{"id":"aed34708-82ed-52e4-876f-d4468af73fc3", "parsed":true, "parser_version":"test_version", "verbatim":"Alyxia reinwardti var.", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
207
- Alyxia reinwardti ssp|{"scientificName":{"id":"760486d1-93ed-55c5-ade1-ba2c5b2aa900", "parsed":true, "parser_version":"test_version", "verbatim":"Alyxia reinwardti ssp", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
208
- Alyxia reinwardti ssp.|{"scientificName":{"id":"72b5072a-d952-54f8-aea1-5b5bd3c65c45", "parsed":true, "parser_version":"test_version", "verbatim":"Alyxia reinwardti ssp.", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
209
- Alaria spp|{"scientificName":{"id":"5b31e830-ccf6-5918-94c5-75c4db7ef302", "parsed":true, "parser_version":"test_version", "verbatim":"Alaria spp", "normalized":"Alaria", "canonical":"Alaria", "hybrid":false, "details":[{"uninomial":{"string":"Alaria"}}], "parser_run":1, "positions":{"0":["uninomial", 6]}, "surrogate": true}}
210
- Alaria spp.|{"scientificName":{"id":"d1cd4f1a-f511-5d5a-8f41-64911995fdec", "parsed":true, "parser_version":"test_version", "verbatim":"Alaria spp.", "normalized":"Alaria", "canonical":"Alaria", "hybrid":false, "details":[{"uninomial":{"string":"Alaria"}}], "parser_run":1, "positions":{"0":["uninomial", 6]}, "surrogate": true}}
211
- Xenodon sp|{"scientificName":{"id":"7b0cb348-7fe9-5248-b396-b0336225ba2a", "parsed":true, "parser_version":"test_version", "verbatim":"Xenodon sp", "normalized":"Xenodon", "canonical":"Xenodon", "hybrid":false, "details":[{"uninomial":{"string":"Xenodon"}}], "parser_run":1, "positions":{"0":["uninomial", 7]}, "surrogate": true}}
212
- Xenodon sp.|{"scientificName":{"id":"77b6718f-a26e-5ddf-a4cf-119e972cd015", "parsed":true, "parser_version":"test_version", "verbatim":"Xenodon sp.", "normalized":"Xenodon", "canonical":"Xenodon", "hybrid":false, "details":[{"uninomial":{"string":"Xenodon"}}], "parser_run":1, "positions":{"0":["uninomial", 7]}, "surrogate": true}}
213
- Formicidae cf.|{"scientificName":{"id":"61f9ebc4-346e-5857-ab45-38808ff1c960", "parsed":true, "parser_version":"test_version", "verbatim":"Formicidae cf.", "normalized":"Formicidae", "canonical":"Formicidae", "hybrid":false, "details":[{"uninomial":{"string":"Formicidae"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
214
- Formicidae cf|{"scientificName":{"id":"90473425-7ce1-5ec6-8160-737646816ea7", "parsed":true, "parser_version":"test_version", "verbatim":"Formicidae cf", "normalized":"Formicidae", "canonical":"Formicidae", "hybrid":false, "details":[{"uninomial":{"string":"Formicidae"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
215
- Acastoides spp.|{"scientificName":{"id":"9853f0a4-6324-5a7d-8108-e910578e612b", "parsed":true, "parser_version":"test_version", "verbatim":"Acastoides spp.", "normalized":"Acastoides", "canonical":"Acastoides", "hybrid":false, "details":[{"uninomial":{"string":"Acastoides"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
205
+ Alyxia reinwardti var|{"scientificName":{"id":"2f0ee2be-8d37-5e43-9eed-776c17f47e93", "parsed":true, "tail": "var", "parser_version":"test_version", "verbatim":"Alyxia reinwardti var", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
206
+ Alyxia reinwardti var.|{"scientificName":{"id":"aed34708-82ed-52e4-876f-d4468af73fc3", "parsed":true, "tail": "var.", "parser_version":"test_version", "verbatim":"Alyxia reinwardti var.", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
207
+ Alyxia reinwardti ssp|{"scientificName":{"id":"760486d1-93ed-55c5-ade1-ba2c5b2aa900", "parsed":true, "tail": "ssp", "parser_version":"test_version", "verbatim":"Alyxia reinwardti ssp", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
208
+ Alyxia reinwardti ssp.|{"scientificName":{"id":"72b5072a-d952-54f8-aea1-5b5bd3c65c45", "parsed":true, "tail": "ssp.", "parser_version":"test_version", "verbatim":"Alyxia reinwardti ssp.", "normalized":"Alyxia reinwardti", "canonical":"Alyxia reinwardti", "hybrid":false, "details":[{"genus":{"string":"Alyxia"}, "species":{"string":"reinwardti"}}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 17]}}}
209
+ Alaria spp|{"scientificName":{"id":"5b31e830-ccf6-5918-94c5-75c4db7ef302", "parsed":true, "tail": "spp", "parser_version":"test_version", "verbatim":"Alaria spp", "normalized":"Alaria", "canonical":"Alaria", "hybrid":false, "details":[{"uninomial":{"string":"Alaria"}}], "parser_run":1, "positions":{"0":["uninomial", 6]}, "surrogate": true}}
210
+ Alaria spp.|{"scientificName":{"id":"d1cd4f1a-f511-5d5a-8f41-64911995fdec", "parsed":true, "tail": "spp.", "parser_version":"test_version", "verbatim":"Alaria spp.", "normalized":"Alaria", "canonical":"Alaria", "hybrid":false, "details":[{"uninomial":{"string":"Alaria"}}], "parser_run":1, "positions":{"0":["uninomial", 6]}, "surrogate": true}}
211
+ Xenodon sp|{"scientificName":{"id":"7b0cb348-7fe9-5248-b396-b0336225ba2a", "parsed":true, "tail": "sp", "parser_version":"test_version", "verbatim":"Xenodon sp", "normalized":"Xenodon", "canonical":"Xenodon", "hybrid":false, "details":[{"uninomial":{"string":"Xenodon"}}], "parser_run":1, "positions":{"0":["uninomial", 7]}, "surrogate": true}}
212
+ Xenodon sp.|{"scientificName":{"id":"77b6718f-a26e-5ddf-a4cf-119e972cd015", "parsed":true, "tail": "sp.", "parser_version":"test_version", "verbatim":"Xenodon sp.", "normalized":"Xenodon", "canonical":"Xenodon", "hybrid":false, "details":[{"uninomial":{"string":"Xenodon"}}], "parser_run":1, "positions":{"0":["uninomial", 7]}, "surrogate": true}}
213
+ Formicidae cf.|{"scientificName":{"id":"61f9ebc4-346e-5857-ab45-38808ff1c960", "parsed":true, "tail": "cf.", "parser_version":"test_version", "verbatim":"Formicidae cf.", "normalized":"Formicidae", "canonical":"Formicidae", "hybrid":false, "details":[{"uninomial":{"string":"Formicidae"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
214
+ Formicidae cf|{"scientificName":{"id":"90473425-7ce1-5ec6-8160-737646816ea7", "parsed":true, "tail": "cf", "parser_version":"test_version", "verbatim":"Formicidae cf", "normalized":"Formicidae", "canonical":"Formicidae", "hybrid":false, "details":[{"uninomial":{"string":"Formicidae"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
215
+ Acastoides spp.|{"scientificName":{"id":"9853f0a4-6324-5a7d-8108-e910578e612b", "parsed":true, "tail": "spp.", "parser_version":"test_version", "verbatim":"Acastoides spp.", "normalized":"Acastoides", "canonical":"Acastoides", "hybrid":false, "details":[{"uninomial":{"string":"Acastoides"}}], "parser_run":1, "positions":{"0":["uninomial", 10]}, "surrogate": true}}
216
216
  Sphingomonas sp. 37|{"scientificName":{"id":"1daffd3a-f4de-58d9-91e3-ae4d08a50ce0", "parsed":true, "parser_version":"test_version", "verbatim":"Sphingomonas sp. 37", "normalized":"Sphingomonas", "canonical":"Sphingomonas", "hybrid":false, "details":[{"genus":{"string":"Sphingomonas"}, "annotation_identification":"sp.", "ignored":{"unparsed":"37"}}], "parser_run":1, "positions":{"0":["genus", 12], "13":["annotation_identification", 16]}, "surrogate": true}}
217
217
  Thryothorus leucotis spp. bogotensis|{"scientificName":{"id":"d2cb7212-ff62-5e31-9ab9-31214a9782d5", "parsed":true, "parser_version":"test_version", "verbatim":"Thryothorus leucotis spp. bogotensis", "normalized":"Thryothorus leucotis", "canonical":"Thryothorus leucotis", "hybrid":false, "details":[{"genus":{"string":"Thryothorus"}, "species":{"string":"leucotis"}, "infraspecies":[{"annotation_identification":"spp.", "ignored":{"infraspecies":{"string":"bogotensis", "rank":"n/a"}}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 20], "21":["annotation_identification", 25]}, "surrogate": true}}
218
218
  Endoxyla sp. GM-, 2003|{"scientificName":{"id":"8a80bfee-947d-5602-9958-a2338ff46a4d", "parsed":true, "parser_version":"test_version", "verbatim":"Endoxyla sp. GM-, 2003", "normalized":"Endoxyla", "canonical":"Endoxyla", "hybrid":false, "details":[{"genus":{"string":"Endoxyla"}, "annotation_identification":"sp.", "ignored":{"unparsed":"GM-, 2003"}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["annotation_identification", 12]}, "surrogate": true}}
@@ -231,7 +231,7 @@ Lachenalia tricolor var. nelsonii (ht.) Baker|{"scientificName":{"id":"0f7ce439-
231
231
  Lachenalia tricolor var. nelsonii (hort.) Baker|{"scientificName":{"id":"cc118b05-14ff-5a42-8780-802f60eba565", "parsed":true, "parser_version":"test_version", "verbatim":"Lachenalia tricolor var. nelsonii (hort.) Baker", "normalized":"Lachenalia tricolor var. nelsonii (hort.) Baker", "canonical":"Lachenalia tricolor nelsonii", "hybrid":false, "details":[{"genus":{"string":"Lachenalia"}, "species":{"string":"tricolor"}, "infraspecies":[{"string":"nelsonii", "rank":"var.", "authorship":"(hort.) Baker", "combinationAuthorTeam":{"authorTeam":"Baker", "author":["Baker"]}, "basionymAuthorTeam":{"authorTeam":"hort.", "author":["unknown"]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 19], "20":["infraspecific_type", 24], "25":["infraspecies", 33], "35":["unknown_author", 40], "42":["author_word", 47]}}}
232
232
  Puya acris ht.|{"scientificName":{"id":"83c98b8e-f373-57df-92bf-5a39a56d9909", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Puya acris ht.","normalized":"Puya acris ht.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"string":"Puya"},"species":{"string":"acris","authorship":"ht.","basionymAuthorTeam":{"authorTeam":"ht.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",14]}}}
233
233
  Puya acris anon.|{"scientificName":{"id":"2b5243d3-e8a7-5e6c-a2c1-beb2ee5c3020", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Puya acris anon.","normalized":"Puya acris anon.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"string":"Puya"},"species":{"string":"acris","authorship":"anon.","basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
234
- Puya acris hort.|{"scientificName":{"id":"78228a5e-dcd3-58f9-bf21-b452c378f6ee", "parsed":true, "verbatim":"Puya acris hort.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
234
+ Puya acris hort.|{"scientificName":{"id":"78228a5e-dcd3-58f9-bf21-b452c378f6ee", "parsed":true, "tail": "hort.", "verbatim":"Puya acris hort.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
235
235
  Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.|{"scientificName":{"id":"5ba1cc96-ab40-51b3-951d-f91b5bff1da8", "parsed":true, "parser_version":"test_version", "verbatim":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "normalized":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "canonical":"Prunus mexicana reticulata", "hybrid":false, "details":[{"genus":{"string":"Prunus"}, "species":{"string":"mexicana", "authorship":"S. Watson", "basionymAuthorTeam":{"authorTeam":"S. Watson", "author":["S. Watson"]}}, "infraspecies":[{"string":"reticulata", "rank":"var.", "authorship":"(Sarg.) Sarg.", "combinationAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}, "basionymAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}}]}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 18], "19":["author_word", 25], "26":["infraspecific_type", 30], "31":["infraspecies", 41], "43":["author_word", 48], "50":["author_word", 55]}}}
236
236
 
237
237
  #miscellaneous names
@@ -321,19 +321,19 @@ Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":
321
321
  ####
322
322
 
323
323
  #removing annotations
324
- Acarospora cratericola cratericola Shenk 1974 group|{"scientificName":{"id":"0f466e31-7e23-5320-ac7e-4c1026bc8af6", "parsed":true, "verbatim":"Acarospora cratericola cratericola Shenk 1974 group", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
325
- Acarospora cratericola cratericola Shenk 1974 species group|{"scientificName":{"id":"a7684260-ed99-5d55-9a35-fd97b67e8933", "parsed":true, "verbatim":"Acarospora cratericola cratericola Shenk 1974 species group", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
326
- Acarospora cratericola cratericola Shenk 1974 species complex|{"scientificName":{"id":"d227da04-7c89-50f7-8cf1-de09bc5aa903", "parsed":true, "verbatim":"Acarospora cratericola cratericola Shenk 1974 species complex", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
324
+ Acarospora cratericola cratericola Shenk 1974 group|{"scientificName":{"id":"0f466e31-7e23-5320-ac7e-4c1026bc8af6", "parsed":true, "tail": "group", "verbatim":"Acarospora cratericola cratericola Shenk 1974 group", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
325
+ Acarospora cratericola cratericola Shenk 1974 species group|{"scientificName":{"id":"a7684260-ed99-5d55-9a35-fd97b67e8933", "parsed":true, "tail": "species group", "verbatim":"Acarospora cratericola cratericola Shenk 1974 species group", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
326
+ Acarospora cratericola cratericola Shenk 1974 species complex|{"scientificName":{"id":"d227da04-7c89-50f7-8cf1-de09bc5aa903", "parsed":true, "tail": "species complex", "verbatim":"Acarospora cratericola cratericola Shenk 1974 species complex", "normalized":"Acarospora cratericola cratericola Shenk 1974", "canonical":"Acarospora cratericola cratericola", "hybrid":false, "details":[{"genus":{"string":"Acarospora"}, "species":{"string":"cratericola"}, "infraspecies":[{"string":"cratericola", "rank":"n/a", "authorship":"Shenk 1974", "basionymAuthorTeam":{"authorTeam":"Shenk", "author":["Shenk"], "year":"1974"}}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 22], "23":["infraspecies", 34], "35":["author_word", 40], "41":["year", 45]}}}
327
327
 
328
328
  #ignoring sensu sec
329
- Senecio legionensis sensu Samp., non Lange|{"scientificName":{"id":"948d73b7-499b-5060-ace4-dd061f2f4373", "parsed":true, "verbatim":"Senecio legionensis sensu Samp., non Lange", "normalized":"Senecio legionensis", "canonical":"Senecio legionensis", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"legionensis"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 19]}}}
330
- Pseudomonas methanica (Söhngen 1906) sensu. Dworkin and Foster 1956|{"scientificName":{"id":"f4261966-4f80-52c1-a3ff-8eaece507964", "parsed":true, "verbatim":"Pseudomonas methanica (Söhngen 1906) sensu. Dworkin and Foster 1956", "normalized":"Pseudomonas methanica (Söhngen 1906)", "canonical":"Pseudomonas methanica", "hybrid":false, "details":[{"genus":{"string":"Pseudomonas"}, "species":{"string":"methanica", "authorship":"(Söhngen 1906)", "basionymAuthorTeam":{"authorTeam":"Söhngen", "author":["Söhngen"], "year":"1906"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 21], "23":["author_word", 30], "31":["year", 35]}}}
331
- Abarema scutifera sensu auct., non (Blanco)Kosterm.|{"scientificName":{"id":"59f4b32d-3f8c-569f-bc81-3fe49d708c88", "parsed":true, "verbatim":"Abarema scutifera sensu auct., non (Blanco)Kosterm.", "normalized":"Abarema scutifera", "canonical":"Abarema scutifera", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"scutifera"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17]}}}
332
- Puya acris Auct.|{"scientificName":{"id":"926ec12b-a597-5842-92f2-4b0ae4989df1", "parsed":true, "verbatim":"Puya acris Auct.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
333
- Puya acris Auct non L.|{"scientificName":{"id":"6c11df68-9e9d-5e97-b0f0-3609e4f18121", "parsed":true, "verbatim":"Puya acris Auct non L.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
334
- Galium tricorne Stokes, pro parte|{"scientificName":{"id":"c4d3da85-86b7-5ca9-925b-6e09ffad3a30", "parsed":true, "verbatim":"Galium tricorne Stokes, pro parte", "normalized":"Galium tricorne Stokes", "canonical":"Galium tricorne", "hybrid":false, "details":[{"genus":{"string":"Galium"}, "species":{"string":"tricorne", "authorship":"Stokes", "basionymAuthorTeam":{"authorTeam":"Stokes", "author":["Stokes"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 22]}}}
335
- Galium tricorne Stokes,pro parte|{"scientificName":{"id":"7166cbd9-2b0f-5537-9ac9-98157b60a395", "parsed":true, "verbatim":"Galium tricorne Stokes,pro parte", "normalized":"Galium tricorne Stokes", "canonical":"Galium tricorne", "hybrid":false, "details":[{"genus":{"string":"Galium"}, "species":{"string":"tricorne", "authorship":"Stokes", "basionymAuthorTeam":{"authorTeam":"Stokes", "author":["Stokes"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 22]}}}
336
- Senecio jacquinianus sec. Rchb.|{"scientificName":{"id":"e8ad283f-afa8-5fd2-ae8f-bbedf2fb0bb7", "parsed":true, "verbatim":"Senecio jacquinianus sec. Rchb.", "normalized":"Senecio jacquinianus", "canonical":"Senecio jacquinianus", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"jacquinianus"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 20]}}}
329
+ Senecio legionensis sensu Samp., non Lange|{"scientificName":{"id":"948d73b7-499b-5060-ace4-dd061f2f4373", "parsed":true, "tail": "sensu Samp., non Lange", "verbatim":"Senecio legionensis sensu Samp., non Lange", "normalized":"Senecio legionensis", "canonical":"Senecio legionensis", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"legionensis"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 19]}}}
330
+ Pseudomonas methanica (Söhngen 1906) sensu. Dworkin and Foster 1956|{"scientificName":{"id":"f4261966-4f80-52c1-a3ff-8eaece507964", "parsed":true, "tail": "sensu. Dworkin and Foster 1956", "verbatim":"Pseudomonas methanica (Söhngen 1906) sensu. Dworkin and Foster 1956", "normalized":"Pseudomonas methanica (Söhngen 1906)", "canonical":"Pseudomonas methanica", "hybrid":false, "details":[{"genus":{"string":"Pseudomonas"}, "species":{"string":"methanica", "authorship":"(Söhngen 1906)", "basionymAuthorTeam":{"authorTeam":"Söhngen", "author":["Söhngen"], "year":"1906"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 21], "23":["author_word", 30], "31":["year", 35]}}}
331
+ Abarema scutifera sensu auct., non (Blanco)Kosterm.|{"scientificName":{"id":"59f4b32d-3f8c-569f-bc81-3fe49d708c88", "parsed":true, "tail": "sensu auct., non (Blanco)Kosterm.", "verbatim":"Abarema scutifera sensu auct., non (Blanco)Kosterm.", "normalized":"Abarema scutifera", "canonical":"Abarema scutifera", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"scutifera"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17]}}}
332
+ Puya acris Auct.|{"scientificName":{"id":"926ec12b-a597-5842-92f2-4b0ae4989df1", "parsed":true, "tail": "Auct.", "verbatim":"Puya acris Auct.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
333
+ Puya acris Auct non L.|{"scientificName":{"id":"6c11df68-9e9d-5e97-b0f0-3609e4f18121", "parsed":true, "tail": "Auct non L.", "verbatim":"Puya acris Auct non L.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
334
+ Galium tricorne Stokes, pro parte|{"scientificName":{"id":"c4d3da85-86b7-5ca9-925b-6e09ffad3a30", "parsed":true, "tail": ", pro parte", "verbatim":"Galium tricorne Stokes, pro parte", "normalized":"Galium tricorne Stokes", "canonical":"Galium tricorne", "hybrid":false, "details":[{"genus":{"string":"Galium"}, "species":{"string":"tricorne", "authorship":"Stokes", "basionymAuthorTeam":{"authorTeam":"Stokes", "author":["Stokes"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 22]}}}
335
+ Galium tricorne Stokes,pro parte|{"scientificName":{"id":"7166cbd9-2b0f-5537-9ac9-98157b60a395", "parsed":true, "tail": ",pro parte", "verbatim":"Galium tricorne Stokes,pro parte", "normalized":"Galium tricorne Stokes", "canonical":"Galium tricorne", "hybrid":false, "details":[{"genus":{"string":"Galium"}, "species":{"string":"tricorne", "authorship":"Stokes", "basionymAuthorTeam":{"authorTeam":"Stokes", "author":["Stokes"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 22]}}}
336
+ Senecio jacquinianus sec. Rchb.|{"scientificName":{"id":"e8ad283f-afa8-5fd2-ae8f-bbedf2fb0bb7", "parsed":true, "tail": "sec. Rchb.", "verbatim":"Senecio jacquinianus sec. Rchb.", "normalized":"Senecio jacquinianus", "canonical":"Senecio jacquinianus", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"jacquinianus"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 20]}}}
337
337
  Acantholimon ulicinum s.l. (Schultes) Boiss.|{"scientificName":{"id":"cf4b7aa4-b78f-5b79-86c3-9416de24c918", "parsed":true, "verbatim":"Acantholimon ulicinum s.l. (Schultes) Boiss.", "normalized":"Acantholimon ulicinum", "canonical":"Acantholimon ulicinum", "hybrid":false, "details":[{"genus":{"string":"Acantholimon"}, "species":{"string":"ulicinum"}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 12], "13":["species", 21]}}}
338
338
  Acantholimon ulicinum s. l. (Schultes) Boiss.|{"scientificName":{"id":"3a0b0412-f076-5714-8537-62761718ca7c", "parsed":true, "verbatim":"Acantholimon ulicinum s. l. (Schultes) Boiss.", "normalized":"Acantholimon ulicinum", "canonical":"Acantholimon ulicinum", "hybrid":false, "details":[{"genus":{"string":"Acantholimon"}, "species":{"string":"ulicinum"}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 12], "13":["species", 21]}}}
339
339
  Acantholimon ulicinum S. L. Schultes|{"scientificName":{"id":"702f97e0-792b-5ed4-b2d5-d813544c4139", "parsed":true, "verbatim":"Acantholimon ulicinum S. L. Schultes", "normalized":"Acantholimon ulicinum S. L. Schultes", "canonical":"Acantholimon ulicinum", "hybrid":false, "details":[{"genus":{"string":"Acantholimon"}, "species":{"string":"ulicinum", "authorship":"S. L. Schultes", "basionymAuthorTeam":{"authorTeam":"S. L. Schultes", "author":["S. L. Schultes"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 21], "22":["author_word", 24], "25":["author_word", 27], "28":["author_word", 36]}}}
@@ -343,24 +343,24 @@ Ammodramus caudacutus (s.s.) diversus|{"scientificName":{"id":"2fb79b29-1579-560
343
343
  Arenaria serpyllifolia L. s.str.|{"scientificName":{"id":"8a350298-0dfc-5ad0-9a10-60902587f335", "parsed":true, "verbatim":"Arenaria serpyllifolia L. s.str.", "normalized":"Arenaria serpyllifolia L.", "canonical":"Arenaria serpyllifolia", "hybrid":false, "details":[{"genus":{"string":"Arenaria"}, "species":{"string":"serpyllifolia", "authorship":"L.", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 22], "23":["author_word", 25]}}}
344
344
  Asplenium trichomanes L. s.lat. - Asplen trich|{"scientificName":{"id":"1687d870-6bea-5573-80ef-4e55eca3199f", "parsed":true, "verbatim":"Asplenium trichomanes L. s.lat. - Asplen trich", "normalized":"Asplenium trichomanes L.", "canonical":"Asplenium trichomanes", "hybrid":false, "details":[{"genus":{"string":"Asplenium"}, "species":{"string":"trichomanes", "authorship":"L.", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 9], "10":["species", 21], "22":["author_word", 24]}}}
345
345
  Asplenium anisophyllum Kunze, s.l.|{"scientificName":{"id":"a0d7a55a-ffad-5243-905e-048177b440df", "parsed":true, "verbatim":"Asplenium anisophyllum Kunze, s.l.", "normalized":"Asplenium anisophyllum Kunze", "canonical":"Asplenium anisophyllum", "hybrid":false, "details":[{"genus":{"string":"Asplenium"}, "species":{"string":"anisophyllum", "authorship":"Kunze", "basionymAuthorTeam":{"authorTeam":"Kunze", "author":["Kunze"]}}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 9], "10":["species", 22], "23":["author_word", 28]}}}
346
- Abramis Cuvier 1816 sec. Dybowski 1862|{"scientificName":{"id":"1fddff95-f470-5c36-8bc5-4436fe727bda", "parsed":true, "verbatim":"Abramis Cuvier 1816 sec. Dybowski 1862", "normalized":"Abramis Cuvier 1816", "canonical":"Abramis", "hybrid":false, "details":[{"uninomial":{"string":"Abramis", "authorship":"Cuvier 1816", "basionymAuthorTeam":{"authorTeam":"Cuvier", "author":["Cuvier"], "year":"1816"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["uninomial", 7], "8":["author_word", 14], "15":["year", 19]}}}
347
- Abramis brama subsp. bergi Grib & Vernidub 1935 sec Eschmeyer 2004|{"scientificName":{"id":"5ac5f7fd-0a42-5133-961e-df94a54fb75f", "parsed":true, "parser_version":"test_version", "verbatim":"Abramis brama subsp. bergi Grib & Vernidub 1935 sec Eschmeyer 2004", "normalized":"Abramis brama subsp. bergi Grib & Vernidub 1935", "canonical":"Abramis brama bergi", "hybrid":false, "details":[{"genus":{"string":"Abramis"}, "species":{"string":"brama"}, "infraspecies":[{"string":"bergi", "rank":"subsp.", "authorship":"Grib & Vernidub 1935", "basionymAuthorTeam":{"authorTeam":"Grib & Vernidub", "author":["Grib", "Vernidub"], "year":"1935"}}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 13], "14":["infraspecific_type", 20], "21":["infraspecies", 26], "27":["author_word", 31], "34":["author_word", 42], "43":["year", 47]}}}
348
- Abarema clypearia (Jack) Kosterm., P. P.|{"scientificName":{"id":"2e18b789-865b-55dc-831b-f1fdd6bf740d", "parsed":true, "verbatim":"Abarema clypearia (Jack) Kosterm., P. P.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
349
- Abarema clypearia (Jack) Kosterm., p.p.|{"scientificName":{"id":"bc9b0feb-8a33-5f35-97a9-8ee93220fff8", "parsed":true, "verbatim":"Abarema clypearia (Jack) Kosterm., p.p.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
350
- Abarema clypearia (Jack) Kosterm., p. p.|{"scientificName":{"id":"1fae34cb-12f4-5600-9589-672199934719", "parsed":true, "verbatim":"Abarema clypearia (Jack) Kosterm., p. p.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
346
+ Abramis Cuvier 1816 sec. Dybowski 1862|{"scientificName":{"id":"1fddff95-f470-5c36-8bc5-4436fe727bda", "parsed":true, "tail": "sec. Dybowski 1862", "verbatim":"Abramis Cuvier 1816 sec. Dybowski 1862", "normalized":"Abramis Cuvier 1816", "canonical":"Abramis", "hybrid":false, "details":[{"uninomial":{"string":"Abramis", "authorship":"Cuvier 1816", "basionymAuthorTeam":{"authorTeam":"Cuvier", "author":["Cuvier"], "year":"1816"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["uninomial", 7], "8":["author_word", 14], "15":["year", 19]}}}
347
+ Abramis brama subsp. bergi Grib & Vernidub 1935 sec Eschmeyer 2004|{"scientificName":{"id":"5ac5f7fd-0a42-5133-961e-df94a54fb75f", "parsed":true, "tail": "sec Eschmeyer 2004", "parser_version":"test_version", "verbatim":"Abramis brama subsp. bergi Grib & Vernidub 1935 sec Eschmeyer 2004", "normalized":"Abramis brama subsp. bergi Grib & Vernidub 1935", "canonical":"Abramis brama bergi", "hybrid":false, "details":[{"genus":{"string":"Abramis"}, "species":{"string":"brama"}, "infraspecies":[{"string":"bergi", "rank":"subsp.", "authorship":"Grib & Vernidub 1935", "basionymAuthorTeam":{"authorTeam":"Grib & Vernidub", "author":["Grib", "Vernidub"], "year":"1935"}}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 13], "14":["infraspecific_type", 20], "21":["infraspecies", 26], "27":["author_word", 31], "34":["author_word", 42], "43":["year", 47]}}}
348
+ Abarema clypearia (Jack) Kosterm., P. P.|{"scientificName":{"id":"2e18b789-865b-55dc-831b-f1fdd6bf740d", "parsed":true, "tail": ", P. P.", "verbatim":"Abarema clypearia (Jack) Kosterm., P. P.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
349
+ Abarema clypearia (Jack) Kosterm., p.p.|{"scientificName":{"id":"bc9b0feb-8a33-5f35-97a9-8ee93220fff8", "parsed":true, "tail": ", p.p.", "verbatim":"Abarema clypearia (Jack) Kosterm., p.p.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
350
+ Abarema clypearia (Jack) Kosterm., p. p.|{"scientificName":{"id":"1fae34cb-12f4-5600-9589-672199934719", "parsed":true, "tail": ", p. p.", "verbatim":"Abarema clypearia (Jack) Kosterm., p. p.", "normalized":"Abarema clypearia (Jack) Kosterm.", "canonical":"Abarema clypearia", "hybrid":false, "details":[{"genus":{"string":"Abarema"}, "species":{"string":"clypearia", "authorship":"(Jack) Kosterm.", "combinationAuthorTeam":{"authorTeam":"Kosterm.", "author":["Kosterm."]}, "basionymAuthorTeam":{"authorTeam":"Jack", "author":["Jack"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 23], "25":["author_word", 33]}}}
351
351
  Indigofera phyllogramme var. aphylla R.Vig., p.p.B|{"scientificName":{"id":"04bb878e-4442-5b7c-86d7-a41f2f6aefd3", "parsed":true, "parser_version":"test_version", "verbatim":"Indigofera phyllogramme var. aphylla R.Vig., p.p.B", "normalized":"Indigofera phyllogramme var. aphylla R.Vig.", "canonical":"Indigofera phyllogramme aphylla", "hybrid":false, "details":[{"genus":{"string":"Indigofera"}, "species":{"string":"phyllogramme"}, "infraspecies":[{"string":"aphylla", "rank":"var.", "authorship":"R.Vig.", "basionymAuthorTeam":{"authorTeam":"R.Vig.", "author":["R.Vig."]}}]}], "parser_run":2, "positions":{"0":["genus", 10], "11":["species", 23], "24":["infraspecific_type", 28], "29":["infraspecies", 36], "37":["author_word", 43]}}}
352
352
 
353
353
  #removing nomenclatural annotations
354
- Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.|{"scientificName":{"id":"06b58578-d00c-5c90-b77a-bc2325694b51", "parsed":true, "parser_version":"test_version", "verbatim":"Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.", "normalized":"Amphiprora pseudoduplex (Osada & Kobayasi 1990)", "canonical":"Amphiprora pseudoduplex", "hybrid":false, "details":[{"genus":{"string":"Amphiprora"}, "species":{"string":"pseudoduplex", "authorship":"(Osada & Kobayasi, 1990)", "basionymAuthorTeam":{"authorTeam":"Osada & Kobayasi", "author":["Osada", "Kobayasi"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 23], "25":["author_word", 30], "33":["author_word", 41], "43":["year", 47]}}}
355
- Arthopyrenia hyalospora (Nyl.) R.C. Harris comb. nov.|{"scientificName":{"id":"2dcef387-edc3-55a1-9cfc-ee95200bff08", "parsed":true, "verbatim":"Arthopyrenia hyalospora (Nyl.) R.C. Harris comb. nov.", "normalized":"Arthopyrenia hyalospora (Nyl.) R.C. Harris", "canonical":"Arthopyrenia hyalospora", "hybrid":false, "details":[{"genus":{"string":"Arthopyrenia"}, "species":{"string":"hyalospora", "authorship":"(Nyl.) R.C. Harris", "combinationAuthorTeam":{"authorTeam":"R.C. Harris", "author":["R.C. Harris"]}, "basionymAuthorTeam":{"authorTeam":"Nyl.", "author":["Nyl."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 23], "25":["author_word", 29], "31":["author_word", 35], "36":["author_word", 42]}}}
356
- Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)|{"scientificName":{"id":"aa527c3b-972e-56e9-9b8b-0c61c497422d", "parsed":true, "parser_version":"test_version", "verbatim":"Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)", "normalized":"Acanthophis lancasteri Wells & Wellington", "canonical":"Acanthophis lancasteri", "hybrid":false, "details":[{"genus":{"string":"Acanthophis"}, "species":{"string":"lancasteri", "authorship":"WELLS & WELLINGTON", "basionymAuthorTeam":{"authorTeam":"WELLS & WELLINGTON", "author":["Wells", "Wellington"]}}}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 22], "23":["author_word", 28], "31":["author_word", 41]}}}
357
- Acontias lineatus WAGLER 1830: 196 (nomen nudum)|{"scientificName":{"id":"16afe3dd-7724-5dc0-817c-f6d138d27174", "parsed":true, "parser_version":"test_version", "verbatim":"Acontias lineatus WAGLER 1830: 196 (nomen nudum)", "normalized":"Acontias lineatus Wagler 1830", "canonical":"Acontias lineatus", "hybrid":false, "details":[{"genus":{"string":"Acontias"}, "species":{"string":"lineatus", "authorship":"WAGLER 1830: 196", "basionymAuthorTeam":{"authorTeam":"WAGLER", "author":["Wagler"], "year":"1830"}}}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 17], "18":["author_word", 24], "25":["year", 29]}}}
358
- Akeratidae Nomen Nudum|{"scientificName":{"id":"6bd60fba-9b78-5e4e-b904-dda976085fc7", "parsed":true, "verbatim":"Akeratidae Nomen Nudum", "normalized":"Akeratidae", "canonical":"Akeratidae", "hybrid":false, "details":[{"uninomial":{"string":"Akeratidae"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["uninomial", 10]}}}
359
- Aster exilis Ell., nomen dubium|{"scientificName":{"id":"00884bdf-ca19-5c07-8e48-e1adef987844", "parsed":true, "verbatim":"Aster exilis Ell., nomen dubium", "normalized":"Aster exilis Ell.", "canonical":"Aster exilis", "hybrid":false, "details":[{"genus":{"string":"Aster"}, "species":{"string":"exilis", "authorship":"Ell.", "basionymAuthorTeam":{"authorTeam":"Ell.", "author":["Ell."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 12], "13":["author_word", 17]}}}
360
- Abutilon avicennae Gaertn., nom. illeg.|{"scientificName":{"id":"366d9605-0686-5072-b025-6c7b3695f086", "parsed":true, "verbatim":"Abutilon avicennae Gaertn., nom. illeg.", "normalized":"Abutilon avicennae Gaertn.", "canonical":"Abutilon avicennae", "hybrid":false, "details":[{"genus":{"string":"Abutilon"}, "species":{"string":"avicennae", "authorship":"Gaertn.", "basionymAuthorTeam":{"authorTeam":"Gaertn.", "author":["Gaertn."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 18], "19":["author_word", 26]}}}
361
- Achillea bonarota nom. in herb.|{"scientificName":{"id":"cae8ac71-b3c4-52f7-94cb-31e639081e0d", "parsed":true, "verbatim":"Achillea bonarota nom. in herb.", "normalized":"Achillea bonarota", "canonical":"Achillea bonarota", "hybrid":false, "details":[{"genus":{"string":"Achillea"}, "species":{"string":"bonarota"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17]}}}
362
- Aconitum napellus var. formosum (Rchb.) W. D. J. Koch (nom. ambig.)|{"scientificName":{"id":"9f79b2b3-cfd1-541a-9898-b60829134b11", "parsed":true, "parser_version":"test_version", "verbatim":"Aconitum napellus var. formosum (Rchb.) W. D. J. Koch (nom. ambig.)", "normalized":"Aconitum napellus var. formosum (Rchb.) W. D. J. Koch", "canonical":"Aconitum napellus formosum", "hybrid":false, "details":[{"genus":{"string":"Aconitum"}, "species":{"string":"napellus"}, "infraspecies":[{"string":"formosum", "rank":"var.", "authorship":"(Rchb.) W. D. J. Koch", "combinationAuthorTeam":{"authorTeam":"W. D. J. Koch", "author":["W. D. J. Koch"]}, "basionymAuthorTeam":{"authorTeam":"Rchb.", "author":["Rchb."]}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17], "18":["infraspecific_type", 22], "23":["infraspecies", 31], "33":["author_word", 38], "40":["author_word", 42], "43":["author_word", 45], "46":["author_word", 48], "49":["author_word", 53]}}}
363
- × Dialaeliopsis Hort.|{"scientificName":{"id":"70953b19-19cd-52a3-a766-551e74437d55", "parsed":true, "verbatim":"× Dialaeliopsis Hort.", "normalized":"× Dialaeliopsis", "canonical":"Dialaeliopsis", "hybrid":true, "details":[{"uninomial":{"string":"Dialaeliopsis"}}], "parser_version":"test_version", "parser_run":1, "positions":{"2":["uninomial", 15]}}}
354
+ Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.|{"scientificName":{"id":"06b58578-d00c-5c90-b77a-bc2325694b51", "parsed":true, "tail": "comb. nov.", "parser_version":"test_version", "verbatim":"Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.", "normalized":"Amphiprora pseudoduplex (Osada & Kobayasi 1990)", "canonical":"Amphiprora pseudoduplex", "hybrid":false, "details":[{"genus":{"string":"Amphiprora"}, "species":{"string":"pseudoduplex", "authorship":"(Osada & Kobayasi, 1990)", "basionymAuthorTeam":{"authorTeam":"Osada & Kobayasi", "author":["Osada", "Kobayasi"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 23], "25":["author_word", 30], "33":["author_word", 41], "43":["year", 47]}}}
355
+ Arthopyrenia hyalospora (Nyl.) R.C. Harris comb. nov.|{"scientificName":{"id":"2dcef387-edc3-55a1-9cfc-ee95200bff08", "parsed":true, "tail": "comb. nov.", "verbatim":"Arthopyrenia hyalospora (Nyl.) R.C. Harris comb. nov.", "normalized":"Arthopyrenia hyalospora (Nyl.) R.C. Harris", "canonical":"Arthopyrenia hyalospora", "hybrid":false, "details":[{"genus":{"string":"Arthopyrenia"}, "species":{"string":"hyalospora", "authorship":"(Nyl.) R.C. Harris", "combinationAuthorTeam":{"authorTeam":"R.C. Harris", "author":["R.C. Harris"]}, "basionymAuthorTeam":{"authorTeam":"Nyl.", "author":["Nyl."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 23], "25":["author_word", 29], "31":["author_word", 35], "36":["author_word", 42]}}}
356
+ Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)|{"scientificName":{"id":"aa527c3b-972e-56e9-9b8b-0c61c497422d", "parsed":true, "tail": "(nomen nudum)", "parser_version":"test_version", "verbatim":"Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)", "normalized":"Acanthophis lancasteri Wells & Wellington", "canonical":"Acanthophis lancasteri", "hybrid":false, "details":[{"genus":{"string":"Acanthophis"}, "species":{"string":"lancasteri", "authorship":"WELLS & WELLINGTON", "basionymAuthorTeam":{"authorTeam":"WELLS & WELLINGTON", "author":["Wells", "Wellington"]}}}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 22], "23":["author_word", 28], "31":["author_word", 41]}}}
357
+ Acontias lineatus WAGLER 1830: 196 (nomen nudum)|{"scientificName":{"id":"16afe3dd-7724-5dc0-817c-f6d138d27174", "parsed":true, "tail": "(nomen nudum)", "parser_version":"test_version", "verbatim":"Acontias lineatus WAGLER 1830: 196 (nomen nudum)", "normalized":"Acontias lineatus Wagler 1830", "canonical":"Acontias lineatus", "hybrid":false, "details":[{"genus":{"string":"Acontias"}, "species":{"string":"lineatus", "authorship":"WAGLER 1830: 196", "basionymAuthorTeam":{"authorTeam":"WAGLER", "author":["Wagler"], "year":"1830"}}}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 17], "18":["author_word", 24], "25":["year", 29]}}}
358
+ Akeratidae Nomen Nudum|{"scientificName":{"id":"6bd60fba-9b78-5e4e-b904-dda976085fc7", "parsed":true, "tail": "Nomen Nudum", "verbatim":"Akeratidae Nomen Nudum", "normalized":"Akeratidae", "canonical":"Akeratidae", "hybrid":false, "details":[{"uninomial":{"string":"Akeratidae"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["uninomial", 10]}}}
359
+ Aster exilis Ell., nomen dubium|{"scientificName":{"id":"00884bdf-ca19-5c07-8e48-e1adef987844", "parsed":true, "tail": ", nomen dubium", "verbatim":"Aster exilis Ell., nomen dubium", "normalized":"Aster exilis Ell.", "canonical":"Aster exilis", "hybrid":false, "details":[{"genus":{"string":"Aster"}, "species":{"string":"exilis", "authorship":"Ell.", "basionymAuthorTeam":{"authorTeam":"Ell.", "author":["Ell."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 12], "13":["author_word", 17]}}}
360
+ Abutilon avicennae Gaertn., nom. illeg.|{"scientificName":{"id":"366d9605-0686-5072-b025-6c7b3695f086", "parsed":true, "tail": ", nom. illeg.", "verbatim":"Abutilon avicennae Gaertn., nom. illeg.", "normalized":"Abutilon avicennae Gaertn.", "canonical":"Abutilon avicennae", "hybrid":false, "details":[{"genus":{"string":"Abutilon"}, "species":{"string":"avicennae", "authorship":"Gaertn.", "basionymAuthorTeam":{"authorTeam":"Gaertn.", "author":["Gaertn."]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 18], "19":["author_word", 26]}}}
361
+ Achillea bonarota nom. in herb.|{"scientificName":{"id":"cae8ac71-b3c4-52f7-94cb-31e639081e0d", "parsed":true, "tail": "nom. in herb.", "verbatim":"Achillea bonarota nom. in herb.", "normalized":"Achillea bonarota", "canonical":"Achillea bonarota", "hybrid":false, "details":[{"genus":{"string":"Achillea"}, "species":{"string":"bonarota"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17]}}}
362
+ Aconitum napellus var. formosum (Rchb.) W. D. J. Koch (nom. ambig.)|{"scientificName":{"id":"9f79b2b3-cfd1-541a-9898-b60829134b11", "parsed":true, "tail": "(nom. ambig.)", "parser_version":"test_version", "verbatim":"Aconitum napellus var. formosum (Rchb.) W. D. J. Koch (nom. ambig.)", "normalized":"Aconitum napellus var. formosum (Rchb.) W. D. J. Koch", "canonical":"Aconitum napellus formosum", "hybrid":false, "details":[{"genus":{"string":"Aconitum"}, "species":{"string":"napellus"}, "infraspecies":[{"string":"formosum", "rank":"var.", "authorship":"(Rchb.) W. D. J. Koch", "combinationAuthorTeam":{"authorTeam":"W. D. J. Koch", "author":["W. D. J. Koch"]}, "basionymAuthorTeam":{"authorTeam":"Rchb.", "author":["Rchb."]}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17], "18":["infraspecific_type", 22], "23":["infraspecies", 31], "33":["author_word", 38], "40":["author_word", 42], "43":["author_word", 45], "46":["author_word", 48], "49":["author_word", 53]}}}
363
+ × Dialaeliopsis Hort.|{"scientificName":{"id":"70953b19-19cd-52a3-a766-551e74437d55", "parsed":true, "tail": "Hort.", "verbatim":"× Dialaeliopsis Hort.", "normalized":"× Dialaeliopsis", "canonical":"Dialaeliopsis", "hybrid":true, "details":[{"uninomial":{"string":"Dialaeliopsis"}}], "parser_version":"test_version", "parser_run":1, "positions":{"2":["uninomial", 15]}}}
364
364
 
365
365
  #should not parse incertae sedis
366
366
 
@@ -455,7 +455,7 @@ Deyeuxia coarctata Kunth, 1815 [1816]|{"scientificName":{"id":"2f479365-40be-518
455
455
 
456
456
  #names with garbage at the end
457
457
  Morea (Morea) Burt 2342343242 23424322342 23424234|{"scientificName":{"id":"ca23679f-f3d8-5194-a406-048f970c4020", "parsed":true, "parser_version":"test_version", "verbatim":"Morea (Morea) Burt 2342343242 23424322342 23424234", "normalized":"Morea (Morea) Burt", "canonical":"Morea", "hybrid":false, "details":[{"uninomial":{"string":"Morea", "infragenus":{"string":"Morea"}, "authorship":"Burt", "basionymAuthorTeam":{"authorTeam":"Burt", "author":["Burt"]}}}], "parser_run":2, "positions":{"0":["uninomial", 5], "7":["infragenus", 12], "14":["author_word", 18]}, "surrogate":true}}
458
- Nautilus asterizans von|{"scientificName":{"id":"0716f658-c952-5415-b2ad-79a39c2b7b0d", "parsed":true, "verbatim":"Nautilus asterizans von", "normalized":"Nautilus asterizans", "canonical":"Nautilus asterizans", "hybrid":false, "details":[{"genus":{"string":"Nautilus"}, "species":{"string":"asterizans"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 19]}}}
458
+ Nautilus asterizans von|{"scientificName":{"id":"0716f658-c952-5415-b2ad-79a39c2b7b0d", "parsed":true, "tail": "von", "verbatim":"Nautilus asterizans von", "normalized":"Nautilus asterizans", "canonical":"Nautilus asterizans", "hybrid":false, "details":[{"genus":{"string":"Nautilus"}, "species":{"string":"asterizans"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 19]}}}
459
459
 
460
460
  #salvage canonical
461
461
  Morea ssjjlajajaj324$33 234243242|{"scientificName":{"id":"268627a4-0984-5b51-b5c1-1a6ad54bf9b9", "parsed":true, "parser_version":"test_version", "verbatim":"Morea ssjjlajajaj324$33 234243242", "normalized":"Morea", "canonical":"Morea", "hybrid":false, "details":[{"uninomial":{"string":"Morea"}}], "parser_run":2, "positions":{"0":["uninomial", 5]}, "surrogate":true}}
@@ -466,7 +466,7 @@ Moraea spathulata ( (L. f. Klatt|{"scientificName":{"id":"21cb8638-ff53-534f-b81
466
466
  Stewartia micrantha (Chun) Sealy, Bot. Mag. 176: t. 510. 1967.|{"scientificName":{"id":"7a4ffc19-61a9-551b-bea2-ebb0f5fe9c5a", "parsed":true, "parser_version":"test_version", "verbatim":"Stewartia micrantha (Chun) Sealy, Bot. Mag. 176: t. 510. 1967.", "normalized":"Stewartia micrantha (Chun) Sealy, Bot. Mag.", "canonical":"Stewartia micrantha", "hybrid":false, "details":[{"genus":{"string":"Stewartia"}, "species":{"string":"micrantha", "authorship":"(Chun) Sealy, Bot. Mag.", "combinationAuthorTeam":{"authorTeam":"Sealy, Bot. Mag.", "author":["Sealy", "Bot. Mag."]}, "basionymAuthorTeam":{"authorTeam":"Chun", "author":["Chun"]}}}], "parser_run":2, "positions":{"0":["genus", 9], "10":["species", 19], "21":["author_word", 25], "27":["author_word", 32], "34":["author_word", 38], "39":["author_word", 43]}}}
467
467
  Pyrobaculum neutrophilum V24Sta|{"scientificName":{"id":"6d0be585-ec54-5662-9d30-1d369ecf2a64", "parsed":true, "parser_version":"test_version", "verbatim":"Pyrobaculum neutrophilum V24Sta", "normalized":"Pyrobaculum neutrophilum", "canonical":"Pyrobaculum neutrophilum", "hybrid":false, "details":[{"genus":{"string":"Pyrobaculum"}, "species":{"string":"neutrophilum"}}], "parser_run":2, "positions":{"0":["genus", 11], "12":["species", 24]}}}
468
468
  Rana aurora Baird and Girard, 1852; H.B. Shaffer et al., 2004|{"scientificName":{"id":"f0fa6cd1-8018-5fec-92ad-1bda9ac929ca", "parsed":true, "parser_version":"test_version", "verbatim":"Rana aurora Baird and Girard, 1852; H.B. Shaffer et al., 2004", "normalized":"Rana aurora Baird & Girard", "canonical":"Rana aurora", "hybrid":false, "details":[{"genus":{"string":"Rana"}, "species":{"string":"aurora", "authorship":"Baird and Girard", "basionymAuthorTeam":{"authorTeam":"Baird and Girard", "author":["Baird", "Girard"]}}}], "parser_run":2, "positions":{"0":["genus", 4], "5":["species", 11], "12":["author_word", 17], "22":["author_word", 28]}}}
469
- Agropyron pectiniforme var. karabaljikji ined.?|{"scientificName":{"id":"e951b7d4-0009-54df-9de6-efbb392dc8d6", "parsed":true, "parser_version":"test_version", "verbatim":"Agropyron pectiniforme var. karabaljikji ined.?", "normalized":"Agropyron pectiniforme var. karabaljikji", "canonical":"Agropyron pectiniforme karabaljikji", "hybrid":false, "details":[{"genus":{"string":"Agropyron"}, "species":{"string":"pectiniforme"}, "infraspecies":[{"string":"karabaljikji", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 22], "23":["infraspecific_type", 27], "28":["infraspecies", 40]}}}
469
+ Agropyron pectiniforme var. karabaljikji ined.?|{"scientificName":{"id":"e951b7d4-0009-54df-9de6-efbb392dc8d6", "parsed":true, "tail": "ined.?", "parser_version":"test_version", "verbatim":"Agropyron pectiniforme var. karabaljikji ined.?", "normalized":"Agropyron pectiniforme var. karabaljikji", "canonical":"Agropyron pectiniforme karabaljikji", "hybrid":false, "details":[{"genus":{"string":"Agropyron"}, "species":{"string":"pectiniforme"}, "infraspecies":[{"string":"karabaljikji", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 22], "23":["infraspecific_type", 27], "28":["infraspecies", 40]}}}
470
470
  Staphylococcus hyicus chromogenes Devriese et al. 1978 (Approved Lists 1980).|{"scientificName":{"id":"ec17eb44-742c-5325-aca6-e33a0888ef0d", "parsed":true, "parser_version":"test_version", "verbatim":"Staphylococcus hyicus chromogenes Devriese et al. 1978 (Approved Lists 1980).", "normalized":"Staphylococcus hyicus chromogenes Devriese et al. 1978", "canonical":"Staphylococcus hyicus chromogenes", "hybrid":false, "details":[{"genus":{"string":"Staphylococcus"}, "species":{"string":"hyicus"}, "infraspecies":[{"string":"chromogenes", "rank":"n/a", "authorship":"Devriese et al. 1978", "basionymAuthorTeam":{"authorTeam":"Devriese et al.", "author":["Devriese et al."], "year":"1978"}}]}], "parser_run":2, "positions":{"0":["genus", 14], "15":["species", 21], "22":["infraspecies", 33], "34":["author_word", 42], "43":["author_word", 49], "50":["year", 54]}}}
471
471
  Kerana var. cameroni|{"scientificName":{"id":"d3ca40c3-28ed-51c5-8e87-a22c3e05e8d7", "parsed":true, "parser_version":"test_version", "verbatim":"Kerana var. cameroni", "normalized":"Kerana", "canonical":"Kerana", "hybrid":false, "details":[{"uninomial":{"string":"Kerana"}}], "parser_run":2, "positions":{"0":["uninomial", 6]}}}
472
472
 
@@ -474,7 +474,7 @@ Kerana var. cameroni|{"scientificName":{"id":"d3ca40c3-28ed-51c5-8e87-a22c3e05e8
474
474
  Buteo borealis ? ventralis|{"scientificName":{"id":"d26a4791-4858-5239-8a57-c88957d40919", "parsed":true, "parser_version":"test_version", "verbatim":"Buteo borealis ? ventralis", "normalized":"Buteo borealis", "canonical":"Buteo borealis", "hybrid":false, "details":[{"genus":{"string":"Buteo"}, "species":{"string":"borealis"}, "infraspecies":[{"annotation_identification":"?", "ignored":{"infraspecies":{"string":"ventralis", "rank":"n/a"}}}]}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 14], "15":["annotation_identification", 17]}}}
475
475
  Cetraria islandica ? islandica|{"scientificName":{"id":"01af8da5-3a16-5270-82bb-b0123048ec63", "parsed":true, "parser_version":"test_version", "verbatim":"Cetraria islandica ? islandica", "normalized":"Cetraria islandica", "canonical":"Cetraria islandica", "hybrid":false, "details":[{"genus":{"string":"Cetraria"}, "species":{"string":"islandica"}, "infraspecies":[{"annotation_identification":"?", "ignored":{"infraspecies":{"string":"islandica", "rank":"n/a"}}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 18], "19":["annotation_identification", 21]}}}
476
476
  Euxoa nr. idahoensis sp. 1clay|{"scientificName":{"id":"02a664be-422a-56cb-b431-99aecf793721", "parsed":true, "parser_version":"test_version", "verbatim":"Euxoa nr. idahoensis sp. 1clay", "normalized":"Euxoa idahoensis", "canonical":"Euxoa idahoensis", "hybrid":false, "details":[{"genus":{"string":"Euxoa"}, "species":{"string":"idahoensis"}, "infraspecies":[{"annotation_identification":"sp.", "ignored":{"infraspecies":{"string":"uniclay", "rank":"n/a"}}}]}], "parser_run":1, "positions":{"0":["genus", 5], "10":["species", 20], "21":["annotation_identification", 24]}, "surrogate": true}}
477
- Parus caeruleus species complex|{"scientificName":{"id":"f3752c09-242f-501c-8c8c-0feaf86c4693", "parsed":true, "parser_version":"test_version", "verbatim":"Parus caeruleus species complex", "normalized":"Parus caeruleus", "canonical":"Parus caeruleus", "hybrid":false, "details":[{"genus":{"string":"Parus"}, "species":{"string":"caeruleus"}}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15]}}}
477
+ Parus caeruleus species complex|{"scientificName":{"id":"f3752c09-242f-501c-8c8c-0feaf86c4693", "parsed":true, "tail": "species complex", "parser_version":"test_version", "verbatim":"Parus caeruleus species complex", "normalized":"Parus caeruleus", "canonical":"Parus caeruleus", "hybrid":false, "details":[{"genus":{"string":"Parus"}, "species":{"string":"caeruleus"}}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15]}}}
478
478
  Peristernia nassatula forskali Tapparone-Canefri 1875|{"scientificName":{"id":"5aa39b53-32ee-5e9f-aa29-c268a9662fd7", "parsed":true, "parser_version":"test_version", "verbatim":"Peristernia nassatula forskali Tapparone-Canefri 1875", "normalized":"Peristernia nassatula forskali Tapparone-Canefri 1875", "canonical":"Peristernia nassatula forskali", "hybrid":false, "details":[{"genus":{"string":"Peristernia"}, "species":{"string":"nassatula"}, "infraspecies":[{"string":"forskali", "rank":"n/a", "authorship":"Tapparone-Canefri 1875", "basionymAuthorTeam":{"authorTeam":"Tapparone-Canefri", "author":["Tapparone-Canefri"], "year":"1875"}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 21], "22":["infraspecies", 30], "31":["author_word", 48], "49":["year", 53]}}}
479
479
 
480
480
  #should flag surrogate names
@@ -131,6 +131,13 @@ describe ".add_rank_to_canonical" do
131
131
  end
132
132
  end
133
133
 
134
+ it "returns preprocessing tail if it exists" do
135
+ sn = "Stenometope laevissimus sensu Eschmeyer 2004"
136
+ res = parser.parse(sn)
137
+ expect(res).to_not be_nil
138
+ expect(res[:scientificName][:tail]).to eq "sensu Eschmeyer 2004"
139
+ end
140
+
134
141
  it "does not work for hybrids yet" do
135
142
  data = [["Corda X cordiflora var. puberula",
136
143
  "Corda cordiflora puberula"]]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biodiversity
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.6
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Mozzherin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-26 00:00:00.000000000 Z
11
+ date: 2018-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -158,6 +158,7 @@ executables:
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
+ - ".byebug_history"
161
162
  - ".document"
162
163
  - ".gitignore"
163
164
  - ".rspec"
@@ -215,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
216
  version: '0'
216
217
  requirements: []
217
218
  rubyforge_project:
218
- rubygems_version: 2.2.3
219
+ rubygems_version: 2.6.14.1
219
220
  signing_key:
220
221
  specification_version: 4
221
222
  summary: Parser of scientific names