biodiversity19 1.0.22 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +3 -0
- data/Gemfile +1 -3
- data/Gemfile.lock +8 -14
- data/VERSION +1 -1
- data/lib/biodiversity/parser.rb +12 -7
- data/lib/biodiversity/parser/scientific_name_canonical.treetop +2 -0
- data/lib/biodiversity/parser/scientific_name_clean.treetop +219 -46
- data/lib/biodiversity/parser/scientific_name_dirty.treetop +36 -36
- data/spec/parser/scientific_name_clean.spec.rb +29 -2
- data/spec/parser/scientific_name_dirty.spec.rb +0 -2
- data/spec/parser/test_data.txt +48 -16
- data/spec/parser/todo.txt +2 -0
- metadata +3 -3
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
archive-tar-minitar (0.5.2)
|
5
4
|
columnize (0.3.6)
|
5
|
+
debugger (1.2.1)
|
6
|
+
columnize (>= 0.3.1)
|
7
|
+
debugger-linecache (~> 1.1.1)
|
8
|
+
debugger-ruby_core_source (~> 1.1.4)
|
9
|
+
debugger-linecache (1.1.2)
|
10
|
+
debugger-ruby_core_source (>= 1.1.1)
|
11
|
+
debugger-ruby_core_source (1.1.4)
|
6
12
|
diff-lcs (1.1.3)
|
7
13
|
git (1.2.5)
|
8
14
|
jeweler (1.8.4)
|
@@ -11,8 +17,6 @@ GEM
|
|
11
17
|
rake
|
12
18
|
rdoc
|
13
19
|
json (1.7.5)
|
14
|
-
linecache19 (0.5.12)
|
15
|
-
ruby_core_source (>= 0.1.4)
|
16
20
|
parallel (0.5.18)
|
17
21
|
polyglot (0.3.3)
|
18
22
|
rake (0.9.2.2)
|
@@ -26,16 +30,6 @@ GEM
|
|
26
30
|
rspec-expectations (2.11.2)
|
27
31
|
diff-lcs (~> 1.1.3)
|
28
32
|
rspec-mocks (2.11.2)
|
29
|
-
ruby-debug-base19 (0.11.25)
|
30
|
-
columnize (>= 0.3.1)
|
31
|
-
linecache19 (>= 0.5.11)
|
32
|
-
ruby_core_source (>= 0.1.4)
|
33
|
-
ruby-debug19 (0.11.6)
|
34
|
-
columnize (>= 0.3.1)
|
35
|
-
linecache19 (>= 0.5.11)
|
36
|
-
ruby-debug-base19 (>= 0.11.19)
|
37
|
-
ruby_core_source (0.1.5)
|
38
|
-
archive-tar-minitar (>= 0.5.2)
|
39
33
|
treetop (1.4.10)
|
40
34
|
polyglot
|
41
35
|
polyglot (>= 0.3.1)
|
@@ -44,8 +38,8 @@ PLATFORMS
|
|
44
38
|
ruby
|
45
39
|
|
46
40
|
DEPENDENCIES
|
41
|
+
debugger
|
47
42
|
jeweler
|
48
43
|
parallel
|
49
44
|
rspec
|
50
|
-
ruby-debug19
|
51
45
|
treetop
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/lib/biodiversity/parser.rb
CHANGED
@@ -12,17 +12,12 @@ module PreProcessor
|
|
12
12
|
TAXON_CONCEPTS2 = /\s+(\(?s\.\s?s\.|\(?s\.\s?l\.|\(?s\.\s?str\.|\(?s\.\s?lat\.|sec\.|sec|near)\b.*$/
|
13
13
|
TAXON_CONCEPTS3 = /(,\s*|\s+)(pro parte|p\.\s?p\.)\s*$/i
|
14
14
|
NOMEN_CONCEPTS = /(,\s*|\s+)(\(?nomen|\(?nom\.|\(?comb\.).*$/i
|
15
|
-
COMPARATORS = /\s+(aff\.|aff)\b.*$/i
|
16
|
-
CF_COMPARATOR = /\s+(cf\.|cf)\s+/i
|
17
15
|
LAST_WORD_JUNK = /(,\s*|\s+)(spp\.|spp|var\.|var|von|van|sensu|new|non|nec|cf\.|cf|sp\.|sp|ssp\.|ssp|subsp|subgen|hybrid|hort\.|hort)\s*$/i
|
18
16
|
|
19
17
|
def self.clean(a_string)
|
20
|
-
[NOTES, TAXON_CONCEPTS1, TAXON_CONCEPTS2, TAXON_CONCEPTS3, NOMEN_CONCEPTS,
|
18
|
+
[NOTES, TAXON_CONCEPTS1, TAXON_CONCEPTS2, TAXON_CONCEPTS3, NOMEN_CONCEPTS, LAST_WORD_JUNK].each do |i|
|
21
19
|
a_string = a_string.gsub(i, '')
|
22
20
|
end
|
23
|
-
[CF_COMPARATOR].each do |i|
|
24
|
-
a_string = a_string.gsub(i, ' ')
|
25
|
-
end
|
26
21
|
a_string = a_string.tr('ſ','s') #old 's'
|
27
22
|
a_string
|
28
23
|
end
|
@@ -100,7 +95,17 @@ class ScientificNameParser
|
|
100
95
|
elsif unknown_placement?(a_string)
|
101
96
|
@parsed = { :verbatim => a_string }
|
102
97
|
else
|
103
|
-
|
98
|
+
begin
|
99
|
+
@parsed = @clean.parse(a_string) || @dirty.parse(a_string)
|
100
|
+
unless @parsed
|
101
|
+
index = @dirty.index || @clean.index
|
102
|
+
salvage_match = a_string[0..index].match(/(.*[^,|\s]+)[,|\s]?\b.+$/)
|
103
|
+
salvage_string = salvage_match ? salvage_match[1] : a_string
|
104
|
+
@parsed = @dirty.parse(salvage_string) || @canonical.parse(a_string) || { :verbatim => a_string }
|
105
|
+
end
|
106
|
+
rescue
|
107
|
+
@parsed = {:scientificName => {:parsed => false, :verbatim => name, :error => 'Parser error'}}
|
108
|
+
end
|
104
109
|
end
|
105
110
|
|
106
111
|
def @parsed.verbatim=(a_string)
|
@@ -178,6 +178,8 @@ grammar ScientificNameClean
|
|
178
178
|
end
|
179
179
|
|
180
180
|
rule scientific_name_1
|
181
|
+
multiuninomial_name
|
182
|
+
/
|
181
183
|
multinomial_name
|
182
184
|
/
|
183
185
|
uninomial_name
|
@@ -209,10 +211,34 @@ grammar ScientificNameClean
|
|
209
211
|
#/
|
210
212
|
#latin_word
|
211
213
|
end
|
212
|
-
|
214
|
+
|
215
|
+
rule unparsed
|
216
|
+
.+ space {
|
217
|
+
|
218
|
+
def value
|
219
|
+
''
|
220
|
+
end
|
221
|
+
|
222
|
+
def hybrid
|
223
|
+
false
|
224
|
+
end
|
225
|
+
|
226
|
+
def canonical
|
227
|
+
''
|
228
|
+
end
|
229
|
+
|
230
|
+
def pos
|
231
|
+
{interval.begin => ['unparsed', interval.end]}
|
232
|
+
end
|
233
|
+
|
234
|
+
def details
|
235
|
+
{:unparsed => text_value}
|
236
|
+
end
|
237
|
+
}
|
238
|
+
end
|
213
239
|
|
214
240
|
rule multinomial_name
|
215
|
-
a:genus space b:infragenus space
|
241
|
+
a:genus space b:infragenus space aid:annotation_identification? space c:species space_hard d:infraspecies_mult {
|
216
242
|
def value
|
217
243
|
a.value + " " + b.value + " " + c.value + " " + d.value
|
218
244
|
end
|
@@ -234,17 +260,29 @@ grammar ScientificNameClean
|
|
234
260
|
end
|
235
261
|
}
|
236
262
|
/
|
237
|
-
a:genus space b:infragenus space
|
263
|
+
a:genus space b:infragenus space aid:annotation_identification? space c:species {
|
238
264
|
def value
|
239
|
-
|
265
|
+
if defined? aid.apply
|
266
|
+
a.value + " " + b.value + aid.apply(c)
|
267
|
+
else
|
268
|
+
a.value + " " + b.value + " " + c.value
|
269
|
+
end
|
240
270
|
end
|
241
271
|
|
242
272
|
def canonical
|
243
|
-
|
273
|
+
if defined? aid.apply
|
274
|
+
a.canonical + aid.canonical(c)
|
275
|
+
else
|
276
|
+
a.canonical + " " + c.canonical
|
277
|
+
end
|
244
278
|
end
|
245
279
|
|
246
280
|
def pos
|
247
|
-
|
281
|
+
if defined? aid.apply
|
282
|
+
a.pos.merge(b.pos).merge(aid.pos(c))
|
283
|
+
else
|
284
|
+
a.pos.merge(b.pos).merge(c.pos)
|
285
|
+
end
|
248
286
|
end
|
249
287
|
|
250
288
|
def hybrid
|
@@ -252,11 +290,15 @@ grammar ScientificNameClean
|
|
252
290
|
end
|
253
291
|
|
254
292
|
def details
|
255
|
-
|
293
|
+
if defined? aid.apply
|
294
|
+
a.details.merge(b.details).merge(aid.apply(c))
|
295
|
+
else
|
296
|
+
a.details.merge(b.details).merge(c.details)
|
297
|
+
end
|
256
298
|
end
|
257
299
|
}
|
258
300
|
/
|
259
|
-
a:genus space
|
301
|
+
a:genus space aid:annotation_identification? space b:species space_hard c:infraspecies_mult {
|
260
302
|
def value
|
261
303
|
a.value + " " + b.value + " " + c.value
|
262
304
|
end
|
@@ -278,17 +320,29 @@ grammar ScientificNameClean
|
|
278
320
|
end
|
279
321
|
}
|
280
322
|
/
|
281
|
-
a:genus space
|
323
|
+
a:genus space aid:annotation_identification? space b:species {
|
282
324
|
def value
|
283
|
-
|
325
|
+
if defined? aid.apply
|
326
|
+
a.value + aid.apply(b)
|
327
|
+
else
|
328
|
+
a.value + " " + b.value
|
329
|
+
end
|
284
330
|
end
|
285
331
|
|
286
332
|
def canonical
|
287
|
-
|
333
|
+
if defined? aid.apply
|
334
|
+
a.canonical + aid.canonical(b)
|
335
|
+
else
|
336
|
+
a.canonical + " " + b.canonical
|
337
|
+
end
|
288
338
|
end
|
289
339
|
|
290
340
|
def pos
|
291
|
-
|
341
|
+
if defined? aid.apply
|
342
|
+
a.pos.merge(aid.pos(b))
|
343
|
+
else
|
344
|
+
a.pos.merge(b.pos)
|
345
|
+
end
|
292
346
|
end
|
293
347
|
|
294
348
|
def hybrid
|
@@ -296,7 +350,58 @@ grammar ScientificNameClean
|
|
296
350
|
end
|
297
351
|
|
298
352
|
def details
|
299
|
-
|
353
|
+
if defined? aid.apply
|
354
|
+
a.details.merge(aid.details(b))
|
355
|
+
else
|
356
|
+
a.details.merge(b.details)
|
357
|
+
end
|
358
|
+
end
|
359
|
+
}
|
360
|
+
/
|
361
|
+
a:genus space aid:annotation_identification space b:unparsed {
|
362
|
+
def value
|
363
|
+
a.value + aid.apply(b)
|
364
|
+
end
|
365
|
+
|
366
|
+
def canonical
|
367
|
+
a.canonical + aid.canonical(b)
|
368
|
+
end
|
369
|
+
|
370
|
+
def pos
|
371
|
+
a.pos.merge(aid.pos(b))
|
372
|
+
end
|
373
|
+
|
374
|
+
def hybrid
|
375
|
+
false
|
376
|
+
end
|
377
|
+
|
378
|
+
def details
|
379
|
+
a.details.merge(aid.details(b))
|
380
|
+
end
|
381
|
+
}
|
382
|
+
end
|
383
|
+
|
384
|
+
rule multiuninomial_name
|
385
|
+
a:uninomial_name space b:rank_uninomial space c:uninomial_name {
|
386
|
+
|
387
|
+
def value
|
388
|
+
a.value + " " + b.value + " " + c.value
|
389
|
+
end
|
390
|
+
|
391
|
+
def canonical
|
392
|
+
a.canonical
|
393
|
+
end
|
394
|
+
|
395
|
+
def hybrid
|
396
|
+
false
|
397
|
+
end
|
398
|
+
|
399
|
+
def pos
|
400
|
+
a.pos.merge(b.pos(c))
|
401
|
+
end
|
402
|
+
|
403
|
+
def details
|
404
|
+
a.details.merge(b.details(c))
|
300
405
|
end
|
301
406
|
}
|
302
407
|
end
|
@@ -324,7 +429,11 @@ grammar ScientificNameClean
|
|
324
429
|
/
|
325
430
|
infraspecies {
|
326
431
|
def details
|
327
|
-
|
432
|
+
if super[:annotation_identification]
|
433
|
+
{:infraspecies => [{:annotation_identification => super[:annotation_identification], :ignored => super[:ignored]}]}
|
434
|
+
else
|
435
|
+
{:infraspecies => [super[:infraspecies]]}
|
436
|
+
end
|
328
437
|
end
|
329
438
|
}
|
330
439
|
end
|
@@ -352,7 +461,7 @@ grammar ScientificNameClean
|
|
352
461
|
end
|
353
462
|
|
354
463
|
rule infraspecies_string
|
355
|
-
sel:rank
|
464
|
+
sel:rank space a:species_word {
|
356
465
|
def value
|
357
466
|
sel.apply(a)
|
358
467
|
end
|
@@ -369,6 +478,30 @@ grammar ScientificNameClean
|
|
369
478
|
end
|
370
479
|
}
|
371
480
|
/
|
481
|
+
aid:annotation_identification space a:species_word ![\.] {
|
482
|
+
def value
|
483
|
+
aid.apply(a)
|
484
|
+
end
|
485
|
+
|
486
|
+
def canonical
|
487
|
+
aid.canonical(a)
|
488
|
+
end
|
489
|
+
|
490
|
+
def pos
|
491
|
+
def a.pos
|
492
|
+
{interval.begin => ['infraspecies', a.interval.end]}
|
493
|
+
end
|
494
|
+
aid.pos(a)
|
495
|
+
end
|
496
|
+
|
497
|
+
def details
|
498
|
+
def a.details
|
499
|
+
{:infraspecies => {:string => value, :rank => 'n/a'}}
|
500
|
+
end
|
501
|
+
aid.details(a)
|
502
|
+
end
|
503
|
+
}
|
504
|
+
/
|
372
505
|
a:species_word ![\.] {
|
373
506
|
def value
|
374
507
|
a.value
|
@@ -403,14 +536,14 @@ grammar ScientificNameClean
|
|
403
536
|
end
|
404
537
|
|
405
538
|
rule rank
|
406
|
-
("morph."/"f.sp."/"B"/"ssp."/"ssp"/"mut."/"nat"/"nothosubsp."/"convar."/"pseudovar."/"sect."/"ser."/"var."/"subvar."/ "[var.]" /"var"/"subsp."/"subsp"/"subf."/"race"/"forma"/"form."/"form"/"fo."/"f."/"α"/"ββ"/"β"/"γ"/"δ"/"ε"/"φ"/"θ"/"μ"/"a."/"b."/"c."/"d."/"e."/"g."/"k."/"****"/"**"/"*")
|
539
|
+
("morph."/"f.sp."/"B "/"ssp."/"ssp "/"mut."/"nat "/"nothosubsp."/"convar."/"pseudovar."/"sect."/"ser."/"var."/"subvar."/ "[var.]" /"var "/"subsp."/"subsp "/"subf."/"race "/"forma "/"fma."/"fma "/"form."/"form "/"fo."/"f."/"α"/"ββ"/"β"/"γ"/"δ"/"ε"/"φ"/"θ"/"μ"/"a."/"b."/"c."/"d."/"e."/"g."/"k."/"****"/"**"/"*")
|
407
540
|
{
|
408
541
|
def value
|
409
542
|
text_value.strip
|
410
543
|
end
|
411
544
|
|
412
545
|
def apply(a)
|
413
|
-
" " + text_value + " " + a.value
|
546
|
+
" " + text_value.strip + " " + a.value
|
414
547
|
end
|
415
548
|
|
416
549
|
def canonical(a)
|
@@ -418,11 +551,28 @@ grammar ScientificNameClean
|
|
418
551
|
end
|
419
552
|
|
420
553
|
def pos(a)
|
421
|
-
|
554
|
+
interval_end = text_value[-1] == ' ' ? interval.end - 1 : interval.end
|
555
|
+
{interval.begin => ['infraspecific_type', interval_end], a.interval.begin => ['infraspecies', a.interval.end]}
|
422
556
|
end
|
423
557
|
|
424
558
|
def details(a = nil)
|
425
|
-
{:infraspecies => {:string => (a.value rescue nil), :rank => text_value}}
|
559
|
+
{:infraspecies => {:string => (a.value rescue nil), :rank => text_value.strip}}
|
560
|
+
end
|
561
|
+
}
|
562
|
+
end
|
563
|
+
|
564
|
+
rule rank_uninomial
|
565
|
+
("sect."/"sect "/"subsect."/"subsect "/"trib."/"trib "/"subtrib."/"subtrib "/"fam."/"fam "/"subfam."/"subfam "/"supertrib."/"supertrib ") {
|
566
|
+
def value
|
567
|
+
text_value.strip
|
568
|
+
end
|
569
|
+
|
570
|
+
def pos(uni)
|
571
|
+
{interval.begin => ['rank_uninomial', interval.end], uni.interval.begin => ['uninomial', uni.interval.end]}
|
572
|
+
end
|
573
|
+
|
574
|
+
def details(uni)
|
575
|
+
{:rank_uninomials => value, :uninomial2 => uni.details[:uninomial]}
|
426
576
|
end
|
427
577
|
}
|
428
578
|
end
|
@@ -454,28 +604,6 @@ grammar ScientificNameClean
|
|
454
604
|
end
|
455
605
|
|
456
606
|
rule species_string
|
457
|
-
# a:species_word &(space_hard author_prefix_word space_hard) {
|
458
|
-
# def value
|
459
|
-
# a.value
|
460
|
-
# end
|
461
|
-
#
|
462
|
-
# def canonical
|
463
|
-
# a.value
|
464
|
-
# end
|
465
|
-
#
|
466
|
-
# def hybrid
|
467
|
-
# a.hybrid rescue false
|
468
|
-
# end
|
469
|
-
#
|
470
|
-
# def pos
|
471
|
-
# {a.interval.begin => ['species', a.interval.end]}
|
472
|
-
# end
|
473
|
-
#
|
474
|
-
# def details
|
475
|
-
# {:species => {:string => a.value}}
|
476
|
-
# end
|
477
|
-
# }
|
478
|
-
# /
|
479
607
|
species_word {
|
480
608
|
def canonical
|
481
609
|
value
|
@@ -847,7 +975,7 @@ grammar ScientificNameClean
|
|
847
975
|
|
848
976
|
|
849
977
|
rule unknown_auth
|
850
|
-
("auct."/"auct"/"hort."/"hort"/"anon."/"anon"/"ht."/"ht") {
|
978
|
+
("auct."/"auct"/"hort."/"hort"/"anon."/"anon"/"ht."/"ht") !latin_word {
|
851
979
|
def value
|
852
980
|
text_value
|
853
981
|
end
|
@@ -1130,10 +1258,55 @@ grammar ScientificNameClean
|
|
1130
1258
|
}
|
1131
1259
|
end
|
1132
1260
|
|
1133
|
-
rule
|
1134
|
-
("aff."/"
|
1261
|
+
rule annotation_identification
|
1262
|
+
("sp.aff."/"sp. aff."/"sp."/"sp "/"spp."/"spp "/"aff."/"aff "/"?") {
|
1263
|
+
|
1264
|
+
def value
|
1265
|
+
text_value.strip
|
1266
|
+
end
|
1267
|
+
|
1268
|
+
def apply(sp)
|
1269
|
+
''
|
1270
|
+
end
|
1271
|
+
|
1272
|
+
def canonical(sp)
|
1273
|
+
''
|
1274
|
+
end
|
1275
|
+
|
1276
|
+
def pos(sp)
|
1277
|
+
interval_end = text_value[-1] == ' ' ? interval.end - 1 : interval.end
|
1278
|
+
{interval.begin => ['annotation_identification', interval.end]}
|
1279
|
+
end
|
1280
|
+
|
1281
|
+
def details(sp)
|
1282
|
+
{:annotation_identification => value, :ignored => sp.details}
|
1283
|
+
end
|
1284
|
+
}
|
1285
|
+
/
|
1286
|
+
("cf."/"cf ") {
|
1287
|
+
def value
|
1288
|
+
text_value.strip
|
1289
|
+
end
|
1290
|
+
|
1291
|
+
def apply(sp)
|
1292
|
+
' ' + value + ' ' + sp.value
|
1293
|
+
end
|
1294
|
+
|
1295
|
+
def canonical(sp)
|
1296
|
+
' ' + sp.canonical
|
1297
|
+
end
|
1298
|
+
|
1299
|
+
def pos(sp)
|
1300
|
+
interval_end = text_value[-1] == ' ' ? interval.end - 1 : interval.end
|
1301
|
+
{interval.begin => ['annotation_identification', interval.end]}.merge(sp.pos)
|
1302
|
+
end
|
1303
|
+
|
1304
|
+
def details(sp)
|
1305
|
+
{:annotation_identification => value, :species => sp.details}
|
1306
|
+
end
|
1307
|
+
}
|
1135
1308
|
end
|
1136
|
-
|
1309
|
+
|
1137
1310
|
rule species_word
|
1138
1311
|
a:[0-9]+ "-"? b:latin_word {
|
1139
1312
|
def value
|
@@ -1241,7 +1414,7 @@ grammar ScientificNameClean
|
|
1241
1414
|
end
|
1242
1415
|
|
1243
1416
|
rule year_number
|
1244
|
-
[12] [7890] [0-9] [0-9]
|
1417
|
+
[12] [7890] [0-9] ([0-9] [\?]?/"?") {
|
1245
1418
|
def value
|
1246
1419
|
text_value
|
1247
1420
|
end
|
@@ -92,42 +92,42 @@ grammar ScientificNameDirty
|
|
92
92
|
super
|
93
93
|
end
|
94
94
|
|
95
|
-
rule infraspecies_string
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
end
|
95
|
+
# rule infraspecies_string
|
96
|
+
# sel:rank space_hard a:species_word {
|
97
|
+
# def value
|
98
|
+
# sel.apply(a)
|
99
|
+
# end
|
100
|
+
# def canonical
|
101
|
+
# sel.canonical(a)
|
102
|
+
# end
|
103
|
+
#
|
104
|
+
# def pos
|
105
|
+
# sel.pos(a)
|
106
|
+
# end
|
107
|
+
#
|
108
|
+
# def details
|
109
|
+
# sel.details(a)
|
110
|
+
# end
|
111
|
+
# }
|
112
|
+
# /
|
113
|
+
# a:species_word ![\\.] {
|
114
|
+
# def value
|
115
|
+
# a.value
|
116
|
+
# end
|
117
|
+
#
|
118
|
+
# def canonical
|
119
|
+
# value
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# def pos
|
123
|
+
# {interval.begin => ['infraspecies', interval.end]}
|
124
|
+
# end
|
125
|
+
#
|
126
|
+
# def details
|
127
|
+
# {:infraspecies => {:string => value, :rank => 'n/a'}}
|
128
|
+
# end
|
129
|
+
# }
|
130
|
+
# end
|
131
131
|
|
132
132
|
rule species
|
133
133
|
a:species_string space b:year {
|
@@ -28,6 +28,12 @@ describe ScientificNameClean do
|
|
28
28
|
details(sn).should == [{:uninomial=>{:string=>"Pseudocercospora", :authorship=>"Spegazzini, 1910", :basionymAuthorTeam=>{:authorTeam=>"Spegazzini", :author=>["Spegazzini"], :year=>"1910"}}}]
|
29
29
|
pos(sn).should == {0=>["uninomial", 16], 17=>["author_word", 27], 29=>["year", 33]}
|
30
30
|
end
|
31
|
+
|
32
|
+
it "should parse uninomials with uninomial ranks" do
|
33
|
+
sn = "Epacridaceae trib. Archerieae Crayn & Quinn"
|
34
|
+
parse(sn).should_not be_nil
|
35
|
+
details(sn).should == [{:uninomial=>{:string=>"Epacridaceae"}, :rank_uninomials=>"trib.", :uninomial2=>{:string=>"Archerieae", :authorship=>"Crayn & Quinn", :basionymAuthorTeam=>{:authorTeam=>"Crayn & Quinn", :author=>["Crayn", "Quinn"]}}}]
|
36
|
+
end
|
31
37
|
|
32
38
|
it 'should parse names with a valid 2 letter genus' do
|
33
39
|
["Ca Dyar 1914",
|
@@ -204,6 +210,23 @@ describe ScientificNameClean do
|
|
204
210
|
parse("Zophosis persis (Chatanay) 1914").should_not be_nil
|
205
211
|
#parse("Zophosis persis Chatanay (1914)").should_not be_nil
|
206
212
|
end
|
213
|
+
|
214
|
+
it "should be able to parse name with identificaation annotation -- aff cf sp spp" do
|
215
|
+
sn = 'Diplocephalus aff. procerus Thaler, 1972'
|
216
|
+
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :annotation_identification=>"aff.", :ignored=>{:species=>{:string=>"procerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}}]
|
217
|
+
sn = 'Diplocephalus aff procerus Thaler, 1972'
|
218
|
+
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :annotation_identification=>"aff", :ignored=>{:species=>{:string=>"procerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}}]
|
219
|
+
sn = 'Diplocephalus affprocerus Thaler, 1972'
|
220
|
+
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :species=>{:string=>"affprocerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}]
|
221
|
+
sn = 'Diplocephalus cf. procerus Thaler, 1972'
|
222
|
+
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :annotation_identification=>"cf.", :species=>{:species=>{:string=>"procerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}}]
|
223
|
+
sn = 'Diplocephalus cf procerus Thaler, 1972'
|
224
|
+
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :annotation_identification=>"cf", :species=>{:species=>{:string=>"procerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}}]
|
225
|
+
sn = 'Sphingomonas sp. 37'
|
226
|
+
details(sn).should == [{:genus=>{:string=>"Sphingomonas"}, :annotation_identification=>"sp.", :ignored=>{:unparsed=>"37"}}]
|
227
|
+
sn = "Thryothorus leucotis spp. bogotensis"
|
228
|
+
details(sn).should == [{:genus=>{:string=>"Thryothorus"}, :species=>{:string=>"leucotis"}, :infraspecies=>[{:annotation_identification=>"spp.", :ignored=>{:infraspecies=>{:string=>"bogotensis", :rank=>"n/a"}}}]}]
|
229
|
+
end
|
207
230
|
|
208
231
|
it 'should parse scientific name' do
|
209
232
|
sn = "Pseudocercospora dendrobii(H.C. Burnett)U. Braun & Crous 2003"
|
@@ -291,6 +314,12 @@ describe ScientificNameClean do
|
|
291
314
|
parse(sn).should_not be_nil
|
292
315
|
pos(sn).should == {0=>["genus", 4], 5=>["species", 10], 11=>["unknown_author", 14]}
|
293
316
|
end
|
317
|
+
|
318
|
+
it 'should parse normal names with hort or anon in them' do
|
319
|
+
sn = "Mus musculus hortulanus"
|
320
|
+
pr = parse(sn).should_not be_nil
|
321
|
+
pos(sn).should == {0=>["genus", 3], 4=>["species", 12], 13=>["infraspecies", 23]}
|
322
|
+
end
|
294
323
|
|
295
324
|
it 'should parse real world examples' do
|
296
325
|
sn = "Stagonospora polyspora M.T. Lucas & Sousa da Câmara 1934"
|
@@ -539,8 +568,6 @@ describe ScientificNameClean do
|
|
539
568
|
parse('Dipoena yoshidai Ono, in Ono et al., 1991').should_not be_nil
|
540
569
|
sn = 'Latrodectus mactans bishopi Kaston, 1938'
|
541
570
|
details(sn).should == [{:genus=>{:string=>"Latrodectus"}, :species=>{:string=>"mactans"}, :infraspecies=>[{:string=>"bishopi", :rank=>"n/a", :authorship=>"Kaston, 1938", :basionymAuthorTeam=>{:authorTeam=>"Kaston", :author=>["Kaston"], :year=>"1938"}}]}]
|
542
|
-
sn = 'Diplocephalus aff. procerus Thaler, 1972'
|
543
|
-
details(sn).should == [{:genus=>{:string=>"Diplocephalus"}, :species=>{:string=>"procerus", :authorship=>"Thaler, 1972", :basionymAuthorTeam=>{:authorTeam=>"Thaler", :author=>["Thaler"], :year=>"1972"}}}]
|
544
571
|
sn = 'Thiobacillus x Parker and Prisk 1953' #have to figure out black lists for this one
|
545
572
|
sn = 'Bacille de Plaut, Kritchevsky and Séguin 1921'
|
546
573
|
details(sn).should == [{:uninomial=>{:string=>"Bacille", :authorship=>"de Plaut, Kritchevsky and Séguin 1921", :basionymAuthorTeam=>{:authorTeam=>"de Plaut, Kritchevsky and Séguin", :author=>["de Plaut", "Kritchevsky", "Séguin"], :year=>"1921"}}}]
|
@@ -76,8 +76,6 @@ describe ScientificNameDirty do
|
|
76
76
|
details(sn).should == [{:genus=>{:string=>"Campylobacter"}, :species=>{:string=>"pyloridis", :authorship=>"Marshall et al.1985.", :basionymAuthorTeam=>{:authorTeam=>"Marshall et al.", :author=>["Marshall et al."], :year=>"1985"}}}]
|
77
77
|
sn = 'Staphylococcus hyicus chromogenes Devriese et al. 1978 (Approved Lists 1980).'
|
78
78
|
details(sn).should == [{: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"}}]}]
|
79
|
-
sn = 'Kitasatospora corrig. griseola Takahashi et al. 1985.'
|
80
|
-
details(sn).should == [{:genus=>{:string=>"Kitasatospora"}, :species=>{:string=>"griseola", :authorship=>"Takahashi et al. 1985.", :basionymAuthorTeam=>{:authorTeam=>"Takahashi et al.", :author=>["Takahashi et al."], :year=>"1985"}}}]
|
81
79
|
sn = 'Beijerinckia derxii venezuelae corrig. Thompson and Skerman, 1981'
|
82
80
|
details(sn).should == [{:genus=>{:string=>"Beijerinckia"}, :species=>{:string=>"derxii"}, :infraspecies=>[{:string=>"venezuelae", :rank=>"n/a", :authorship=>"Thompson and Skerman, 1981", :basionymAuthorTeam=>{:authorTeam=>"Thompson and Skerman", :author=>["Thompson", "Skerman"], :year=>"1981"}}]}]
|
83
81
|
details('Streptomyces parvisporogenes ignotus 1960').should == [{:genus=>{:string=>"Streptomyces"}, :species=>{:string=>"parvisporogenes"}, :infraspecies=>[{:string=>"ignotus", :rank=>"n/a", :year=>"1960"}]}]
|
data/spec/parser/test_data.txt
CHANGED
@@ -39,6 +39,13 @@ Qu Durkoop|{"scientificName":{"parsed":true, "parser_version":"test_version", "p
|
|
39
39
|
As Slipinski 1982|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"As Slipinski 1982","normalized":"As Slipinski 1982","canonical":"As","hybrid":false,"details":[{"uninomial":{"string":"As","authorship":"Slipinski 1982","basionymAuthorTeam":{"authorTeam":"Slipinski","author":["Slipinski"],"year":"1982"}}}],"positions":{"0":["uninomial",2],"3":["author_word",12],"13":["year",17]}}}
|
40
40
|
Ba Solem 1983|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Ba Solem 1983","normalized":"Ba Solem 1983","canonical":"Ba","hybrid":false,"details":[{"uninomial":{"string":"Ba","authorship":"Solem 1983","basionymAuthorTeam":{"authorTeam":"Solem","author":["Solem"],"year":"1983"}}}],"positions":{"0":["uninomial",2],"3":["author_word",8],"9":["year",13]}}}
|
41
41
|
|
42
|
+
#multi-uninomials
|
43
|
+
Poaceae subtrib. Scolochloinae Soreng|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Poaceae subtrib. Scolochloinae Soreng", "normalized":"Poaceae subtrib. Scolochloinae Soreng", "canonical":"Poaceae", "hybrid":false, "details":[{"uninomial":{"string":"Poaceae"}, "rank_uninomials":"subtrib.", "uninomial2":{"string":"Scolochloinae", "authorship":"Soreng", "basionymAuthorTeam":{"authorTeam":"Soreng", "author":["Soreng"]}}}], "parser_run":1, "positions":{"0":["uninomial", 7], "8":["rank_uninomial", 16], "17":["uninomial", 37]}}}
|
44
|
+
Zygophyllaceae subfam. Tribuloideae D.M.Porter|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Zygophyllaceae subfam. Tribuloideae D.M.Porter", "normalized":"Zygophyllaceae subfam. Tribuloideae D.M.Porter", "canonical":"Zygophyllaceae", "hybrid":false, "details":[{"uninomial":{"string":"Zygophyllaceae"}, "rank_uninomials":"subfam.", "uninomial2":{"string":"Tribuloideae", "authorship":"D.M.Porter", "basionymAuthorTeam":{"authorTeam":"D.M.Porter", "author":["D.M.Porter"]}}}], "parser_run":1, "positions":{"0":["uninomial", 14], "15":["rank_uninomial", 22], "23":["uninomial", 46]}}}
|
45
|
+
Cordia (Adans.) Kuntze sect. Salimori|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cordia (Adans.) Kuntze sect. Salimori", "normalized":"Cordia (Adans.) Kuntze sect. Salimori", "canonical":"Cordia", "hybrid":false, "details":[{"uninomial":{"string":"Cordia", "authorship":"(Adans.) Kuntze", "combinationAuthorTeam":{"authorTeam":"Kuntze", "author":["Kuntze"]}, "basionymAuthorTeam":{"authorTeam":"Adans.", "author":["Adans."]}}, "rank_uninomials":"sect.", "uninomial2":{"string":"Salimori"}}], "parser_run":1, "positions":{"0":["uninomial", 6], "8":["author_word", 14], "16":["author_word", 22], "23":["rank_uninomial", 28], "29":["uninomial", 37]}}}
|
46
|
+
Poaceae supertrib. Arundinarodae L.Liu|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Poaceae supertrib. Arundinarodae L.Liu", "normalized":"Poaceae supertrib. Arundinarodae L.Liu", "canonical":"Poaceae", "hybrid":false, "details":[{"uninomial":{"string":"Poaceae"}, "rank_uninomials":"supertrib.", "uninomial2":{"string":"Arundinarodae", "authorship":"L.Liu", "basionymAuthorTeam":{"authorTeam":"L.Liu", "author":["L.Liu"]}}}], "parser_run":1, "positions":{"0":["uninomial", 7], "8":["rank_uninomial", 18], "19":["uninomial", 38]}}}
|
47
|
+
Alchemilla subsect. Sericeae A.Plocek|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Alchemilla subsect. Sericeae A.Plocek", "normalized":"Alchemilla subsect. Sericeae A.Plocek", "canonical":"Alchemilla", "hybrid":false, "details":[{"uninomial":{"string":"Alchemilla"}, "rank_uninomials":"subsect.", "uninomial2":{"string":"Sericeae", "authorship":"A.Plocek", "basionymAuthorTeam":{"authorTeam":"A.Plocek", "author":["A.Plocek"]}}}], "parser_run":1, "positions":{"0":["uninomial", 10], "11":["rank_uninomial", 19], "20":["uninomial", 37]}}}
|
48
|
+
|
42
49
|
#canonical binomial
|
43
50
|
Pseudocercospora dendrobii|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii","normalized":"Pseudocercospora dendrobii","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii"}}],"positions":{"0":["genus",16],"21":["species",30]}}}
|
44
51
|
Cucurbita pepo|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cucurbita pepo", "normalized":"Cucurbita pepo", "canonical":"Cucurbita pepo", "hybrid":false, "details":[{"genus":{"string":"Cucurbita"}, "species":{"string":"pepo"}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 14]}}}
|
@@ -52,9 +59,9 @@ Platypus bicaudatulus Schedl, 1935h|{"scientificName":{"parsed":true, "parser_ve
|
|
52
59
|
#TODO Donatia novae-zelandiae Hook.f.
|
53
60
|
|
54
61
|
#binomial with several authours
|
55
|
-
Pseudocercospora dendrobii
|
56
|
-
Pseudocercospora dendrobii
|
57
|
-
Pseudocercospora dendrobii
|
62
|
+
Pseudocercospora dendrobii Goh & W.H. Hsieh 1990|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh & W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh et W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh & W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh & W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "33":["author_word", 37], "38":["author_word", 43], "44":["year", 48]}}}
|
63
|
+
Pseudocercospora dendrobii Goh and W.H. Hsieh 1990|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh and W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh et W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh and W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh and W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "35":["author_word", 39], "40":["author_word", 45], "46":["year", 50]}}}
|
64
|
+
Pseudocercospora dendrobii Goh et W.H. Hsieh 1990|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh et W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh et W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh et W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh et W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "34":["author_word", 38], "39":["author_word", 44], "45":["year", 49]}}}
|
58
65
|
Schottera nicaeënsis (J.V. Lamouroux ex Duby) Guiry & Hollenberg|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Schottera nicaeënsis (J.V. Lamouroux ex Duby) Guiry & Hollenberg", "normalized":"Schottera nicaeensis (J.V. Lamouroux ex Duby) Guiry et Hollenberg", "canonical":"Schottera nicaeensis", "hybrid":false, "details":[{"genus":{"string":"Schottera"}, "species":{"string":"nicaeensis", "authorship":"(J.V. Lamouroux ex Duby) Guiry & Hollenberg", "combinationAuthorTeam":{"authorTeam":"Guiry & Hollenberg", "author":["Guiry", "Hollenberg"]}, "basionymAuthorTeam":{"authorTeam":"J.V. Lamouroux", "author":["J.V. Lamouroux"], "exAuthorTeam":{"authorTeam":"Duby", "author":["Duby"]}}}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 20], "22":["author_word", 26], "27":["author_word", 36], "40":["author_word", 44], "46":["author_word", 51], "54":["author_word", 64]}}}
|
59
66
|
Hirsutëlla mâle|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hirsutëlla mâle", "normalized":"Hirsutella male", "canonical":"Hirsutella male", "hybrid":false, "details":[{"genus":{"string":"Hirsutella"}, "species":{"string":"male"}}], "parser_run":2, "positions":{"0":["genus", 10], "11":["species", 15]}}}
|
60
67
|
Triticum repens vulgäre|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Triticum repens vulgäre", "normalized":"Triticum repens vulgare", "canonical":"Triticum repens vulgare", "hybrid":false, "details":[{"genus":{"string":"Triticum"}, "species":{"string":"repens"}, "infraspecies":[{"string":"vulgare", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 15], "16":["infraspecies", 23]}}}
|
@@ -65,6 +72,7 @@ Aëtosaurus ferratus|{"scientificName":{"parsed":true, "parser_version":"test_ve
|
|
65
72
|
Pseudocercospora dendrobii U. Braun & Crous 2003|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii U. Braun & Crous 2003","normalized":"Pseudocercospora dendrobii U. Braun et Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii","authorship":"U. Braun & Crous 2003","basionymAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"],"year":"2003"}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",29],"30":["author_word",35],"38":["author_word",43],"44":["year",48]}}}
|
66
73
|
|
67
74
|
#iczn: species name with infragenus
|
75
|
+
Hegeter (Hegeter) tenuipunctatus Brullé, 1838|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hegeter (Hegeter) tenuipunctatus Brullé, 1838", "normalized":"Hegeter (Hegeter) tenuipunctatus Brullé 1838", "canonical":"Hegeter tenuipunctatus", "hybrid":false, "details":[{"genus":{"string":"Hegeter"}, "infragenus":{"string":"Hegeter"}, "species":{"string":"tenuipunctatus", "authorship":"Brullé, 1838", "basionymAuthorTeam":{"authorTeam":"Brullé", "author":["Brullé"], "year":"1838"}}}], "parser_run":1, "positions":{"0":["genus", 7], "9":["infragenus", 16], "18":["species", 32], "33":["author_word", 39], "41":["year", 45]}}}
|
68
76
|
Hegeter (Hegeter) intercedens Lindberg H 1950|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hegeter (Hegeter) intercedens Lindberg H 1950","normalized":"Hegeter (Hegeter) intercedens Lindberg H 1950","canonical":"Hegeter intercedens","hybrid":false,"details":[{"genus":{"string":"Hegeter"},"infragenus":{"string":"Hegeter"},"species":{"string":"intercedens","authorship":"Lindberg H 1950","basionymAuthorTeam":{"authorTeam":"Lindberg H","author":["Lindberg H"],"year":"1950"}}}],"positions":{"0":["genus",7],"9":["infragenus",16],"18":["species",29],"30":["author_word",38],"39":["author_word",40],"41":["year",45]}}}
|
69
77
|
Brachytrypus (B.) grandidieri|{"scientificName":{"parsed":true, "verbatim":"Brachytrypus (B.) grandidieri", "normalized":"Brachytrypus (B.) grandidieri", "canonical":"Brachytrypus grandidieri", "hybrid":false, "details":[{"genus":{"string":"Brachytrypus"}, "infragenus":{"string":"B."}, "species":{"string":"grandidieri"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "14":["infragenus", 16], "18":["species", 29]}}}
|
70
78
|
Cyprideis (Cyprideis) thessalonike amasyaensis|{"scientificName":{"parsed":true, "verbatim":"Cyprideis (Cyprideis) thessalonike amasyaensis", "normalized":"Cyprideis (Cyprideis) thessalonike amasyaensis", "canonical":"Cyprideis thessalonike amasyaensis", "hybrid":false, "details":[{"genus":{"string":"Cyprideis"}, "infragenus":{"string":"Cyprideis"}, "species":{"string":"thessalonike"}, "infraspecies":[{"string":"amasyaensis", "rank":"n/a"}]}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 9], "11":["infragenus", 20], "22":["species", 34], "35":["infraspecies", 46]}}}
|
@@ -78,7 +86,10 @@ Sténométope laevissimus Bibron 1855|{"scientificName":{"parsed":true, "parser_
|
|
78
86
|
Choriozopella trägårdhi Lawrence, 1947|{"scientificName":{"parsed":true, "verbatim":"Choriozopella trägårdhi Lawrence, 1947", "normalized":"Choriozopella tragardhi Lawrence 1947", "canonical":"Choriozopella tragardhi", "hybrid":false, "details":[{"genus":{"string":"Choriozopella"}, "species":{"string":"tragardhi", "authorship":"Lawrence, 1947", "basionymAuthorTeam":{"authorTeam":"Lawrence", "author":["Lawrence"], "year":"1947"}}}], "parser_version":"test_version", "parser_run":2, "positions":{"0":["genus", 13], "14":["species", 23], "24":["author_word", 32], "34":["year", 38]}}}
|
79
87
|
Isoëtes asplundii H. P. Fuchs|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Isoëtes asplundii H. P. Fuchs", "normalized":"Isoetes asplundii H. P. Fuchs", "canonical":"Isoetes asplundii", "hybrid":false, "details":[{"genus":{"string":"Isoetes"}, "species":{"string":"asplundii", "authorship":"H. P. Fuchs", "basionymAuthorTeam":{"authorTeam":"H. P. Fuchs", "author":["H. P. Fuchs"]}}}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "18":["author_word", 20], "21":["author_word", 23], "24":["author_word", 29]}}}
|
80
88
|
Cerambyx thomæ GMELIN J. F., 1790|{"scientificName":{"parsed":true, "verbatim":"Cerambyx thomæ GMELIN J. F., 1790", "normalized":"Cerambyx thomae GMELIN J. F. 1790", "canonical":"Cerambyx thomae", "hybrid":false, "details":[{"genus":{"string":"Cerambyx"}, "species":{"string":"thomae", "authorship":"GMELIN J. F., 1790", "basionymAuthorTeam":{"authorTeam":"GMELIN J. F.", "author":["GMELIN J. F."], "year":"1790"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 14], "15":["author_word", 21], "22":["author_word", 24], "25":["author_word", 27], "29":["year", 33]}}}
|
89
|
+
#Campethera cailliautii fülleborni|{"scientificName":{"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]}}}
|
90
|
+
|
81
91
|
#digraph unicode characters
|
92
|
+
Æschopalæa grisella Pascoe, 1864|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Æschopalæa grisella Pascoe, 1864", "normalized":"Aeschopalaea grisella Pascoe 1864", "canonical":"Aeschopalaea grisella", "hybrid":false, "details":[{"genus":{"string":"Aeschopalaea"}, "species":{"string":"grisella", "authorship":"Pascoe, 1864", "basionymAuthorTeam":{"authorTeam":"Pascoe", "author":["Pascoe"], "year":"1864"}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 19], "20":["author_word", 26], "28":["year", 32]}}}
|
82
93
|
Læptura laetifica Dow, 1913|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"L\u00e6ptura laetifica Dow, 1913","normalized":"Laeptura laetifica Dow 1913","canonical":"Laeptura laetifica","hybrid":false,"details":[{"genus":{"string":"Laeptura"},"species":{"string":"laetifica","authorship":"Dow, 1913","basionymAuthorTeam":{"authorTeam":"Dow","author":["Dow"],"year":"1913"}}}],"positions":{"0":["genus",7],"8":["species",17],"18":["author_word",21],"23":["year",27]}}}
|
83
94
|
Leptura lætifica Dow, 1913|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Leptura l\u00e6tifica Dow, 1913","normalized":"Leptura laetifica Dow 1913","canonical":"Leptura laetifica","hybrid":false,"details":[{"genus":{"string":"Leptura"},"species":{"string":"laetifica","authorship":"Dow, 1913","basionymAuthorTeam":{"authorTeam":"Dow","author":["Dow"],"year":"1913"}}}],"positions":{"0":["genus",7],"8":["species",16],"17":["author_word",20],"22":["year",26]}}}
|
84
95
|
Leptura leætifica Dow, 1913|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Leptura le\u00e6tifica Dow, 1913","normalized":"Leptura leaetifica Dow 1913","canonical":"Leptura leaetifica","hybrid":false,"details":[{"genus":{"string":"Leptura"},"species":{"string":"leaetifica","authorship":"Dow, 1913","basionymAuthorTeam":{"authorTeam":"Dow","author":["Dow"],"year":"1913"}}}],"positions":{"0":["genus",7],"8":["species",17],"18":["author_word",21],"23":["year",27]}}}
|
@@ -88,25 +99,33 @@ Leœptura laetifica Dow, 1913|{"scientificName":{"parsed":true, "parser_version"
|
|
88
99
|
Œdicnemus capensis|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"\u0152dicnemus capensis","normalized":"Oedicnemus capensis","canonical":"Oedicnemus capensis","hybrid":false,"details":[{"genus":{"string":"Oedicnemus"},"species":{"string":"capensis"}}],"positions":{"0":["genus",9],"10":["species",18]}}}
|
89
100
|
Œnanthe œnanthe|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"\u0152nanthe \u0153nanthe","normalized":"Oenanthe oenanthe","canonical":"Oenanthe oenanthe","hybrid":false,"details":[{"genus":{"string":"Oenanthe"},"species":{"string":"oenanthe"}}],"positions":{"0":["genus",7],"8":["species",15]}}}
|
90
101
|
Hördeum vulgare cœrulescens|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hördeum vulgare cœrulescens", "normalized":"Hordeum vulgare coerulescens", "canonical":"Hordeum vulgare coerulescens", "hybrid":false, "details":[{"genus":{"string":"Hordeum"}, "species":{"string":"vulgare"}, "infraspecies":[{"string":"coerulescens", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 7], "8":["species", 15], "16":["infraspecies", 27]}}}
|
102
|
+
Hordeum vulgare cœrulescens Metzger|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hordeum vulgare cœrulescens Metzger", "normalized":"Hordeum vulgare coerulescens Metzger", "canonical":"Hordeum vulgare coerulescens", "hybrid":false, "details":[{"genus":{"string":"Hordeum"}, "species":{"string":"vulgare"}, "infraspecies":[{"string":"coerulescens", "rank":"n/a", "authorship":"Metzger", "basionymAuthorTeam":{"authorTeam":"Metzger", "author":["Metzger"]}}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 15], "16":["infraspecies", 27], "28":["author_word", 35]}}}
|
91
103
|
Hordeum vulgare f. cœrulescens|{"scientificName":{"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]}}}
|
92
104
|
|
93
105
|
# old style s (ſ)
|
94
106
|
Musca domeſtica Linnaeus 1758 sec. Pemberton 1947|{"scientificName":{"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]}}}
|
107
|
+
Amphisbæna fuliginoſa Linnaeus 1758|{"scientificName":{"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]}}}
|
95
108
|
|
96
|
-
#basionym in parenthesis
|
109
|
+
#basionym author in parenthesis
|
97
110
|
Zophosis persis (Chatanay, 1914)|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Zophosis persis (Chatanay, 1914)","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"string":"Zophosis"},"species":{"string":"persis","authorship":"(Chatanay, 1914)","basionymAuthorTeam":{"authorTeam":"Chatanay","author":["Chatanay"],"year":"1914"}}}],"positions":{"0":["genus",8],"9":["species",15],"17":["author_word",25],"27":["year",31]}}}
|
98
111
|
Zophosis persis (Chatanay 1914)|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Zophosis persis (Chatanay 1914)","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"string":"Zophosis"},"species":{"string":"persis","authorship":"(Chatanay 1914)","basionymAuthorTeam":{"authorTeam":"Chatanay","author":["Chatanay"],"year":"1914"}}}],"positions":{"0":["genus",8],"9":["species",15],"17":["author_word",25],"26":["year",30]}}}
|
99
112
|
Zophosis persis (Chatanay), 1914|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Zophosis persis (Chatanay), 1914","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"string":"Zophosis"},"species":{"string":"persis","authorship":"(Chatanay), 1914","basionymAuthorTeam":{"author_team":"(Chatanay), 1914","author":["Chatanay"],"year":"1914"}}}],"positions":{"0":["genus",8],"9":["species",15],"17":["author_word",25],"28":["year",32]}}}
|
113
|
+
Zophosis quadrilineata (Oliv. )|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Zophosis quadrilineata (Oliv. )", "normalized":"Zophosis quadrilineata (Oliv.)", "canonical":"Zophosis quadrilineata", "hybrid":false, "details":[{"genus":{"string":"Zophosis"}, "species":{"string":"quadrilineata", "authorship":"(Oliv. )", "basionymAuthorTeam":{"authorTeam":"Oliv.", "author":["Oliv."]}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 22], "24":["author_word", 29]}}}
|
114
|
+
Zophosis quadrilineata (Olivier 1795)|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Zophosis quadrilineata (Olivier 1795)", "normalized":"Zophosis quadrilineata (Olivier 1795)", "canonical":"Zophosis quadrilineata", "hybrid":false, "details":[{"genus":{"string":"Zophosis"}, "species":{"string":"quadrilineata", "authorship":"(Olivier 1795)", "basionymAuthorTeam":{"authorTeam":"Olivier", "author":["Olivier"], "year":"1795"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 22], "24":["author_word", 31], "32":["year", 36]}}}
|
100
115
|
|
101
116
|
#binomial with basionym and combination authors
|
102
117
|
Pseudocercospora dendrobii(H.C. Burnett)U. Braun & Crous 2003|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii(H.C. Burnett)U. Braun & Crous 2003","normalized":"Pseudocercospora dendrobii (H.C. Burnett) U. Braun et Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii","authorship":"(H.C. Burnett)U. Braun & Crous 2003","combinationAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"],"year":"2003"},"basionymAuthorTeam":{"authorTeam":"H.C. Burnett","author":["H.C. Burnett"]}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",31],"36":["author_word",43],"44":["author_word",46],"47":["author_word",52],"55":["author_word",60],"65":["year",69]}}}
|
103
118
|
Pseudocercospora dendrobii(H.C. Burnett, 1873)U. Braun & Crous 2003|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii(H.C. Burnett, 1873)U. Braun & Crous 2003","normalized":"Pseudocercospora dendrobii (H.C. Burnett 1873) U. Braun et Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii","authorship":"(H.C. Burnett, 1873)U. Braun & Crous 2003","combinationAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"],"year":"2003"},"basionymAuthorTeam":{"authorTeam":"H.C. Burnett","author":["H.C. Burnett"],"year":"1873"}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",31],"36":["author_word",43],"45":["year",49],"50":["author_word",52],"53":["author_word",58],"61":["author_word",66],"71":["year",75]}}}
|
104
119
|
Pseudocercospora dendrobii(H.C. Burnett 1873)U. Braun & Crous , 2003|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii(H.C. Burnett 1873)U. Braun & Crous , 2003","normalized":"Pseudocercospora dendrobii (H.C. Burnett 1873) U. Braun et Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii","authorship":"(H.C. Burnett 1873)U. Braun & Crous , 2003","combinationAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"],"year":"2003"},"basionymAuthorTeam":{"authorTeam":"H.C. Burnett","author":["H.C. Burnett"],"year":"1873"}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",31],"36":["author_word",43],"44":["year",48],"49":["author_word",51],"52":["author_word",57],"60":["author_word",65],"71":["year",75]}}}
|
120
|
+
Sedella pumila (Benth.) Britton & Rose|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Sedella pumila (Benth.) Britton & Rose", "normalized":"Sedella pumila (Benth.) Britton et Rose", "canonical":"Sedella pumila", "hybrid":false, "details":[{"genus":{"string":"Sedella"}, "species":{"string":"pumila", "authorship":"(Benth.) Britton & Rose", "combinationAuthorTeam":{"authorTeam":"Britton & Rose", "author":["Britton", "Rose"]}, "basionymAuthorTeam":{"authorTeam":"Benth.", "author":["Benth."]}}}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 14], "16":["author_word", 22], "24":["author_word", 31], "34":["author_word", 38]}}}
|
105
121
|
|
106
122
|
#infraspecies without rank
|
123
|
+
Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961", "normalized":"Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961", "canonical":"Hydnellum scrobiculatum zonatum", "hybrid":false, "details":[{"genus":{"string":"Hydnellum"}, "species":{"string":"scrobiculatum"}, "infraspecies":[{"string":"zonatum", "rank":"n/a", "authorship":"(Batsch) K. A. Harrison 1961", "combinationAuthorTeam":{"authorTeam":"K. A. Harrison", "author":["K. A. Harrison"], "year":"1961"}, "basionymAuthorTeam":{"authorTeam":"Batsch", "author":["Batsch"]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 23], "24":["infraspecies", 31], "33":["author_word", 39], "41":["author_word", 43], "44":["author_word", 46], "47":["author_word", 55], "56":["year", 60]}}}
|
107
124
|
Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","normalized":"Hydnellum scrobiculatum zonatum (Banker) D. Hall et D.E. Stuntz 1972","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"string":"Hydnellum"},"species":{"string":"scrobiculatum"},"infraspecies":[{"string":"zonatum","rank":"n\/a","authorship":"(Banker) D. Hall & D.E. Stuntz 1972","combinationAuthorTeam":{"authorTeam":"D. Hall & D.E. Stuntz","author":["D. Hall","D.E. Stuntz"],"year":"1972"},"basionymAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}]}],"positions":{"0":["genus",9],"10":["species",23],"24":["infraspecies",31],"33":["author_word",39],"41":["author_word",43],"44":["author_word",48],"51":["author_word",55],"56":["author_word",62],"63":["year",67]}}}
|
108
125
|
Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","normalized":"Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall et D.E. Stuntz 1972","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"string":"Hydnellum"},"infragenus":{"string":"Hydnellum"},"species":{"string":"scrobiculatum"},"infraspecies":[{"string":"zonatum","rank":"n\/a","authorship":"(Banker) D. Hall & D.E. Stuntz 1972","combinationAuthorTeam":{"authorTeam":"D. Hall & D.E. Stuntz","author":["D. Hall","D.E. Stuntz"],"year":"1972"},"basionymAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}]}],"positions":{"0":["genus",9],"11":["infragenus",20],"22":["species",35],"36":["infraspecies",43],"45":["author_word",51],"53":["author_word",55],"56":["author_word",60],"63":["author_word",67],"68":["author_word",74],"75":["year",79]}}}
|
109
126
|
Hydnellum scrobiculatum zonatum|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hydnellum scrobiculatum zonatum","normalized":"Hydnellum scrobiculatum zonatum","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"string":"Hydnellum"},"species":{"string":"scrobiculatum"},"infraspecies":[{"string":"zonatum","rank":"n\/a"}]}],"positions":{"0":["genus",9],"10":["species",23],"24":["infraspecies",31]}}}
|
127
|
+
Mus musculus hortulanus|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Mus musculus hortulanus", "normalized":"Mus musculus hortulanus", "canonical":"Mus musculus hortulanus", "hybrid":false, "details":[{"genus":{"string":"Mus"}, "species":{"string":"musculus"}, "infraspecies":[{"string":"hortulanus", "rank":"n/a"}]}], "parser_run":1, "positions":{"0":["genus", 3], "4":["species", 12], "13":["infraspecies", 23]}}}
|
128
|
+
Ortygospiza atricollis mülleri|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Ortygospiza atricollis mülleri", "normalized":"Ortygospiza atricollis mulleri", "canonical":"Ortygospiza atricollis mulleri", "hybrid":false, "details":[{"genus":{"string":"Ortygospiza"}, "species":{"string":"atricollis"}, "infraspecies":[{"string":"mulleri", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 11], "12":["species", 22], "23":["infraspecies", 30]}}}
|
110
129
|
|
111
130
|
#infraspecies with rank
|
112
131
|
Aus bus Linn. var. bus|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Aus bus Linn. var. bus", "normalized":"Aus bus Linn. var. bus", "canonical":"Aus bus bus", "hybrid":false, "details":[{"genus":{"string":"Aus"}, "species":{"string":"bus", "authorship":"Linn.", "basionymAuthorTeam":{"authorTeam":"Linn.", "author":["Linn."]}}, "infraspecies":[{"string":"bus", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 3], "4":["species", 7], "8":["author_word", 13], "14":["infraspecific_type", 18], "19":["infraspecies", 22]}}}
|
@@ -125,18 +144,21 @@ Polypodium pectinatum L.f. typica Rosenst.|{"scientificName":{"parsed":true, "pa
|
|
125
144
|
Polypodium pectinatum L. f. thisisjunk Rosent.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L. f. thisisjunk Rosent.", "normalized":"Polypodium pectinatum L. f. thisisjunk Rosent.", "canonical":"Polypodium pectinatum thisisjunk", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L.", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"thisisjunk", "rank":"f.", "authorship":"Rosent.", "basionymAuthorTeam":{"authorTeam":"Rosent.", "author":["Rosent."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 24], "25":["infraspecific_type", 27], "28":["infraspecies", 38], "39":["author_word", 46]}}}
|
126
145
|
Polypodium lineare C.Chr. f. caudatoattenuatum Takeda|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium lineare C.Chr. f. caudatoattenuatum Takeda", "normalized":"Polypodium lineare C.Chr. f. caudatoattenuatum Takeda", "canonical":"Polypodium lineare caudatoattenuatum", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"lineare", "authorship":"C.Chr.", "basionymAuthorTeam":{"authorTeam":"C.Chr.", "author":["C.Chr."]}}, "infraspecies":[{"string":"caudatoattenuatum", "rank":"f.", "authorship":"Takeda", "basionymAuthorTeam":{"authorTeam":"Takeda", "author":["Takeda"]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 18], "19":["author_word", 25], "26":["infraspecific_type", 28], "29":["infraspecies", 46], "47":["author_word", 53]}}}
|
127
146
|
Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.", "normalized":"Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.", "canonical":"Rhododendron weyrichii albiflorum", "hybrid":false, "details":[{"genus":{"string":"Rhododendron"}, "species":{"string":"weyrichii", "authorship":"Maxim.", "basionymAuthorTeam":{"authorTeam":"Maxim.", "author":["Maxim."]}}, "infraspecies":[{"string":"albiflorum", "rank":"f.", "authorship":"T.Yamaz.", "basionymAuthorTeam":{"authorTeam":"T.Yamaz.", "author":["T.Yamaz."]}}]}], "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 22], "23":["author_word", 29], "30":["infraspecific_type", 32], "33":["infraspecies", 43], "44":["author_word", 52]}}}
|
147
|
+
Armeria maaritima (Mill.) Willd. fma. originaria Bern.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Armeria maaritima (Mill.) Willd. fma. originaria Bern.", "normalized":"Armeria maaritima (Mill.) Willd. fma. originaria Bern.", "canonical":"Armeria maaritima originaria", "hybrid":false, "details":[{"genus":{"string":"Armeria"}, "species":{"string":"maaritima", "authorship":"(Mill.) Willd.", "combinationAuthorTeam":{"authorTeam":"Willd.", "author":["Willd."]}, "basionymAuthorTeam":{"authorTeam":"Mill.", "author":["Mill."]}}, "infraspecies":[{"string":"originaria", "rank":"fma.", "authorship":"Bern.", "basionymAuthorTeam":{"authorTeam":"Bern.", "author":["Bern."]}}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 17], "19":["author_word", 24], "26":["author_word", 32], "33":["infraspecific_type", 37], "38":["infraspecies", 48], "49":["author_word", 54]}}}
|
148
|
+
Cotoneaster (Pyracantha) rogersiana var.aurantiaca|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cotoneaster (Pyracantha) rogersiana var.aurantiaca", "normalized":"Cotoneaster (Pyracantha) rogersiana var. aurantiaca", "canonical":"Cotoneaster rogersiana aurantiaca", "hybrid":false, "details":[{"genus":{"string":"Cotoneaster"}, "infragenus":{"string":"Pyracantha"}, "species":{"string":"rogersiana"}, "infraspecies":[{"string":"aurantiaca", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 11], "13":["infragenus", 23], "25":["species", 35], "36":["infraspecific_type", 40], "40":["infraspecies", 50]}}}
|
149
|
+
#TODO: Homalanthus nutans (Mull.Arg.) Benth. & Hook. f. ex Drake|{}
|
128
150
|
|
129
151
|
#infraspecies_multiple
|
130
152
|
Hydnellum scrobiculatum var. zonatum f. parvum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Hydnellum scrobiculatum var. zonatum f. parvum (Banker) D. Hall & D.E. Stuntz 1972", "normalized":"Hydnellum scrobiculatum var. zonatum f. parvum (Banker) D. Hall et D.E. Stuntz 1972", "canonical":"Hydnellum scrobiculatum zonatum parvum", "hybrid":false, "details":[{"genus":{"string":"Hydnellum"}, "species":{"string":"scrobiculatum"}, "infraspecies":[{"string":"zonatum", "rank":"var."}, {"string":"parvum", "rank":"f.", "authorship":"(Banker) D. Hall & D.E. Stuntz 1972", "combinationAuthorTeam":{"authorTeam":"D. Hall & D.E. Stuntz", "author":["D. Hall", "D.E. Stuntz"], "year":"1972"}, "basionymAuthorTeam":{"authorTeam":"Banker", "author":["Banker"]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 23], "24":["infraspecific_type", 28], "29":["infraspecies", 36], "37":["infraspecific_type", 39], "40":["infraspecies", 46], "48":["author_word", 54], "56":["author_word", 58], "59":["author_word", 63], "66":["author_word", 70], "71":["author_word", 77], "78":["year", 82]}}}
|
131
153
|
Senecio fuchsii C.C.Gmel. subsp. fuchsii var. expansus (Boiss. & Heldr.) Hayek|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Senecio fuchsii C.C.Gmel. subsp. fuchsii var. expansus (Boiss. & Heldr.) Hayek", "normalized":"Senecio fuchsii C.C.Gmel. subsp. fuchsii var. expansus (Boiss. et Heldr.) Hayek", "canonical":"Senecio fuchsii fuchsii expansus", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"fuchsii", "authorship":"C.C.Gmel.", "basionymAuthorTeam":{"authorTeam":"C.C.Gmel.", "author":["C.C.Gmel."]}}, "infraspecies":[{"string":"fuchsii", "rank":"subsp."}, {"string":"expansus", "rank":"var.", "authorship":"(Boiss. & Heldr.) Hayek", "combinationAuthorTeam":{"authorTeam":"Hayek", "author":["Hayek"]}, "basionymAuthorTeam":{"authorTeam":"Boiss. & Heldr.", "author":["Boiss.", "Heldr."]}}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 15], "16":["author_word", 25], "26":["infraspecific_type", 32], "33":["infraspecies", 40], "41":["infraspecific_type", 45], "46":["infraspecies", 54], "56":["author_word", 62], "65":["author_word", 71], "73":["author_word", 78]}}}
|
132
154
|
Senecio fuchsii C.C.Gmel. subsp. fuchsii var. fuchsii|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Senecio fuchsii C.C.Gmel. subsp. fuchsii var. fuchsii", "normalized":"Senecio fuchsii C.C.Gmel. subsp. fuchsii var. fuchsii", "canonical":"Senecio fuchsii fuchsii fuchsii", "hybrid":false, "details":[{"genus":{"string":"Senecio"}, "species":{"string":"fuchsii", "authorship":"C.C.Gmel.", "basionymAuthorTeam":{"authorTeam":"C.C.Gmel.", "author":["C.C.Gmel."]}}, "infraspecies":[{"string":"fuchsii", "rank":"subsp."}, {"string":"fuchsii", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 15], "16":["author_word", 25], "26":["infraspecific_type", 32], "33":["infraspecies", 40], "41":["infraspecific_type", 45], "46":["infraspecies", 53]}}}
|
133
|
-
|
155
|
+
Euastrum divergens var. rhodesiense f. coronulum A.M. Scott & Prescott|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Euastrum divergens var. rhodesiense f. coronulum A.M. Scott & Prescott", "normalized":"Euastrum divergens var. rhodesiense f. coronulum A.M. Scott et Prescott", "canonical":"Euastrum divergens rhodesiense coronulum", "hybrid":false, "details":[{"genus":{"string":"Euastrum"}, "species":{"string":"divergens"}, "infraspecies":[{"string":"rhodesiense", "rank":"var."}, {"string":"coronulum", "rank":"f.", "authorship":"A.M. Scott & Prescott", "basionymAuthorTeam":{"authorTeam":"A.M. Scott & Prescott", "author":["A.M. Scott", "Prescott"]}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 18], "19":["infraspecific_type", 23], "24":["infraspecies", 35], "36":["infraspecific_type", 38], "39":["infraspecies", 48], "49":["author_word", 53], "54":["author_word", 59], "62":["author_word", 70]}}}
|
134
156
|
|
135
157
|
#species and infraspecies without epithets, comparisons
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
158
|
+
Acarinina aff. pentacamerata|{"scientificName":{"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]}}}
|
159
|
+
Acarinina aff pentacamerata|{"scientificName":{"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]}}}
|
160
|
+
Abturia cf. alabamensis (Morton )|{"scientificName":{"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]}}}
|
161
|
+
Abturia cf alabamensis (Morton )|{"scientificName":{"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]}}}
|
140
162
|
Alyxia reinwardti var|{"scientificName":{"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]}}}
|
141
163
|
Alyxia reinwardti var.|{"scientificName":{"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]}}}
|
142
164
|
Alyxia reinwardti ssp|{"scientificName":{"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]}}}
|
@@ -147,7 +169,11 @@ Xenodon sp|{"scientificName":{"parsed":true, "parser_version":"test_version", "v
|
|
147
169
|
Xenodon sp.|{"scientificName":{"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]}}}
|
148
170
|
Formicidae cf.|{"scientificName":{"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]}}}
|
149
171
|
Formicidae cf|{"scientificName":{"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]}}}
|
150
|
-
|
172
|
+
Acastoides spp.|{"scientificName":{"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]}}}
|
173
|
+
Sphingomonas sp. 37|{"scientificName":{"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]}}}
|
174
|
+
Thryothorus leucotis spp. bogotensis|{"scientificName":{"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]}}}
|
175
|
+
Endoxyla sp. GM-, 2003|{"scientificName":{"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]}}}
|
176
|
+
Liopropoma sp.2 Not applicable|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Liopropoma sp.2 Not applicable", "normalized":"Liopropoma", "canonical":"Liopropoma", "hybrid":false, "details":[{"genus":{"string":"Liopropoma"}, "annotation_identification":"sp.", "ignored":{"unparsed":"2 Not applicable"}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["annotation_identification", 14]}}}
|
151
177
|
|
152
178
|
#unknown authorship
|
153
179
|
Tragacantha leporina (?) Kuntze|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Tragacantha leporina (?) Kuntze","normalized":"Tragacantha leporina (?) Kuntze","canonical":"Tragacantha leporina","hybrid":false,"details":[{"genus":{"string":"Tragacantha"},"species":{"string":"leporina","authorship":"(?) Kuntze","combinationAuthorTeam":{"authorTeam":"Kuntze","author":["Kuntze"]},"basionymAuthorTeam":{"authorTeam":"(?)","author":["?"]}}}],"positions":{"0":["genus",11],"12":["species",20],"22":["unknown_author",23],"25":["author_word",31]}}}
|
@@ -219,6 +245,7 @@ Arthopyrenia hyalospora x|{"scientificName":{"parsed":true, "parser_version":"te
|
|
219
245
|
Arthopyrenia hyalospora × ?|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Arthopyrenia hyalospora \u00d7 ?","normalized":"Arthopyrenia hyalospora \u00d7 ?","canonical":"Arthopyrenia hyalospora","hybrid":true,"details":[{"genus":{"string":"Arthopyrenia"},"species":{"string":"hyalospora"}},"?"],"positions":{"0":["genus",12],"13":["species",23]}}}
|
220
246
|
Agrostis L. × Polypogon Desf.|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Agrostis L. \u00d7 Polypogon Desf.","normalized":"Agrostis L. \u00d7 Polypogon Desf.","canonical":"Agrostis × Polypogon","hybrid":true,"details":[{"uninomial":{"string":"Agrostis","authorship":"L.","basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}},{"uninomial":{"string":"Polypogon","authorship":"Desf.","basionymAuthorTeam":{"authorTeam":"Desf.","author":["Desf."]}}}],"positions":{"0":["uninomial",8],"9":["author_word",11],"14":["uninomial",23],"24":["author_word",29]}}}
|
221
247
|
Agrostis stolonifera L. × Polypogon monspeliensis (L.) Desf.|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Agrostis stolonifera L. \u00d7 Polypogon monspeliensis (L.) Desf.","normalized":"Agrostis stolonifera L. \u00d7 Polypogon monspeliensis (L.) Desf.","canonical":"Agrostis stolonifera × Polypogon monspeliensis","hybrid":true,"details":[{"genus":{"string":"Agrostis"},"species":{"string":"stolonifera","authorship":"L.","basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}},{"genus":{"string":"Polypogon"},"species":{"string":"monspeliensis","authorship":"(L.) Desf.","combinationAuthorTeam":{"authorTeam":"Desf.","author":["Desf."]},"basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}}],"positions":{"0":["genus",8],"9":["species",20],"21":["author_word",23],"26":["genus",35],"36":["species",49],"51":["author_word",53],"55":["author_word",60]}}}
|
248
|
+
Coeloglossum viride (L.) Hartman x Dactylorhiza majalis (Rchb. f.) P.F. Hunt & Summerhayes ssp. praetermissa (Druce) D.M. Moore & Soó|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Coeloglossum viride (L.) Hartman x Dactylorhiza majalis (Rchb. f.) P.F. Hunt & Summerhayes ssp. praetermissa (Druce) D.M. Moore & Soó", "normalized":"Coeloglossum viride (L.) Hartman × Dactylorhiza majalis (Rchb. f.) P.F. Hunt et Summerhayes ssp. praetermissa (Druce) D.M. Moore et Soó", "canonical":"Coeloglossum viride × Dactylorhiza majalis praetermissa", "hybrid":true, "details":[{"genus":{"string":"Coeloglossum"}, "species":{"string":"viride", "authorship":"(L.) Hartman", "combinationAuthorTeam":{"authorTeam":"Hartman", "author":["Hartman"]}, "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}}, {"genus":{"string":"Dactylorhiza"}, "species":{"string":"majalis", "authorship":"(Rchb. f.) P.F. Hunt & Summerhayes", "combinationAuthorTeam":{"authorTeam":"P.F. Hunt & Summerhayes", "author":["P.F. Hunt", "Summerhayes"]}, "basionymAuthorTeam":{"authorTeam":"Rchb. f.", "author":["Rchb. f."]}}, "infraspecies":[{"string":"praetermissa", "rank":"ssp.", "authorship":"(Druce) D.M. Moore & Soó", "combinationAuthorTeam":{"authorTeam":"D.M. Moore & Soó", "author":["D.M. Moore", "Soó"]}, "basionymAuthorTeam":{"authorTeam":"Druce", "author":["Druce"]}}]}], "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 19], "21":["author_word", 23], "25":["author_word", 32], "35":["genus", 47], "48":["species", 55], "57":["author_word", 62], "63":["author_word", 65], "67":["author_word", 71], "72":["author_word", 76], "79":["author_word", 90], "91":["infraspecific_type", 95], "96":["infraspecies", 108], "110":["author_word", 115], "117":["author_word", 121], "122":["author_word", 127], "130":["author_word", 133]}}}
|
222
249
|
#TODO Asplenium rhizophyllum X A. ruta-muraria E.L. Braun 1939|''
|
223
250
|
#TODO Asplenium rhizophyllum DC. x ruta-muraria E.L. Braun 1939|''
|
224
251
|
#TODO Asplenium rhizophyllum x ruta-muraria|''
|
@@ -229,8 +256,7 @@ Agrostis stolonifera L. × Polypogon monspeliensis (L.) Desf.|{"scientificName":
|
|
229
256
|
Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay", "normalized":"Polypodium × vulgare nothosubsp. mantoniae (Rothm.) Schidlay", "canonical":"Polypodium vulgare mantoniae", "hybrid":true, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"vulgare"}, "infraspecies":[{"string":"mantoniae", "rank":"nothosubsp.", "authorship":"(Rothm.) Schidlay", "combinationAuthorTeam":{"authorTeam":"Schidlay", "author":["Schidlay"]}, "basionymAuthorTeam":{"authorTeam":"Rothm.", "author":["Rothm."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "14":["species", 21], "22":["infraspecific_type", 33], "34":["infraspecies", 43], "45":["author_word", 51], "53":["author_word", 61]}}}
|
230
257
|
|
231
258
|
#empty spaces
|
232
|
-
|
233
|
-
|
259
|
+
Asplenium Xinexpectatum(E. L. Braun ex Friesner )Morton |{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":" Asplenium Xinexpectatum(E. L. Braun ex Friesner )Morton ", "normalized":"Asplenium × inexpectatum (E. L. Braun ex Friesner) Morton", "canonical":"Asplenium inexpectatum", "hybrid":true, "details":[{"genus":{"string":"Asplenium"}, "species":{"string":"inexpectatum", "authorship":"(E. L. Braun ex Friesner )Morton", "combinationAuthorTeam":{"authorTeam":"Morton", "author":["Morton"]}, "basionymAuthorTeam":{"authorTeam":"E. L. Braun", "author":["E. L. Braun"], "exAuthorTeam":{"authorTeam":"Friesner", "author":["Friesner"]}}}}], "parser_run":1, "positions":{"4":["genus", 13], "21":["species", 33], "34":["author_word", 36], "37":["author_word", 39], "40":["author_word", 45], "49":["author_word", 57], "64":["author_word", 70]}}}
|
234
260
|
|
235
261
|
####
|
236
262
|
#
|
@@ -238,7 +264,7 @@ Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":
|
|
238
264
|
#
|
239
265
|
####
|
240
266
|
|
241
|
-
#removing
|
267
|
+
#removing annotations
|
242
268
|
Acarospora cratericola cratericola Shenk 1974 group|{"scientificName":{"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]}}}
|
243
269
|
Acarospora cratericola cratericola Shenk 1974 species group|{"scientificName":{"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]}}}
|
244
270
|
Acarospora cratericola cratericola Shenk 1974 species complex|{"scientificName":{"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]}}}
|
@@ -268,7 +294,8 @@ Abarema clypearia (Jack) Kosterm., p.p.|{"scientificName":{"parsed":true, "verba
|
|
268
294
|
Abarema clypearia (Jack) Kosterm., p. p.|{"scientificName":{"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]}}}
|
269
295
|
Indigofera phyllogramme var. aphylla R.Vig., p.p.B|{"scientificName":{"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]}}}
|
270
296
|
|
271
|
-
#removing nomenclatural
|
297
|
+
#removing nomenclatural annotations
|
298
|
+
Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Amphiprora pseudoduplex (Osada & Kobayasi, 1990) comb. nov.", "normalized":"Amphiprora pseudoduplex (Osada et 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]}}}
|
272
299
|
Arthopyrenia hyalospora (Nyl.) R.C. Harris comb. nov.|{"scientificName":{"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]}}}
|
273
300
|
Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)|{"scientificName":{"parsed":true, "verbatim":"Acanthophis lancasteri WELLS & WELLINGTON (nomen nudum)", "normalized":"Acanthophis lancasteri WELLS et WELLINGTON", "canonical":"Acanthophis lancasteri", "hybrid":false, "details":[{"genus":{"string":"Acanthophis"}, "species":{"string":"lancasteri", "authorship":"WELLS & WELLINGTON", "basionymAuthorTeam":{"authorTeam":"WELLS & WELLINGTON", "author":["WELLS", "WELLINGTON"]}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 22], "23":["author_word", 28], "31":["author_word", 41]}}}
|
274
301
|
Acontias lineatus WAGLER 1830: 196 (nomen nudum)|{"scientificName":{"parsed":true, "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_version":"test_version", "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 17], "18":["author_word", 24], "25":["year", 29]}}}
|
@@ -308,8 +335,10 @@ Eichornia crassipes ( (Martius) ) Solms-Laub.|{"scientificName":{"parsed":true,
|
|
308
335
|
|
309
336
|
#year without authorship
|
310
337
|
Acarospora cratericola 1929|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Acarospora cratericola 1929","normalized":"Acarospora cratericola 1929","canonical":"Acarospora cratericola","hybrid":false,"details":[{"genus":{"string":"Acarospora"},"species":{"string":"cratericola","year":"1929"}}],"positions":{"0":["genus",10],"11":["species",22],"23":["year",27]}}}
|
338
|
+
Goggia gemmula 1996|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Goggia gemmula 1996", "normalized":"Goggia gemmula 1996", "canonical":"Goggia gemmula", "hybrid":false, "details":[{"genus":{"string":"Goggia"}, "species":{"string":"gemmula", "year":"1996"}}], "parser_run":2, "positions":{"0":["genus", 6], "7":["species", 14], "15":["year", 19]}}}
|
311
339
|
|
312
340
|
#authorship with filius (son of)
|
341
|
+
Oxytropis minjanensis Rech. f.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Oxytropis minjanensis Rech. f.", "normalized":"Oxytropis minjanensis Rech. f.", "canonical":"Oxytropis minjanensis", "hybrid":false, "details":[{"genus":{"string":"Oxytropis"}, "species":{"string":"minjanensis", "authorship":"Rech. f.", "basionymAuthorTeam":{"authorTeam":"Rech. f.", "author":["Rech. f."]}}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 21], "22":["author_word", 27], "28":["author_word", 30]}}}
|
313
342
|
Platypus bicaudatulus Schedl f. 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl f. 1935", "normalized":"Platypus bicaudatulus Schedl f. 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl f. 1935", "basionymAuthorTeam":{"authorTeam":"Schedl f.", "author":["Schedl f."], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word", 31], "32":["year", 36]}}}
|
314
343
|
Platypus bicaudatulus Schedl filius 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl filius 1935", "normalized":"Platypus bicaudatulus Schedl filius 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl filius 1935", "basionymAuthorTeam":{"authorTeam":"Schedl filius", "author":["Schedl filius"], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word", 35], "36":["year", 40]}}}
|
315
344
|
Fimbristylis ovata (Burm. f.) J. Kern|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Fimbristylis ovata (Burm. f.) J. Kern", "normalized":"Fimbristylis ovata (Burm. f.) J. Kern", "canonical":"Fimbristylis ovata", "hybrid":false, "details":[{"genus":{"string":"Fimbristylis"}, "species":{"string":"ovata", "authorship":"(Burm. f.) J. Kern", "combinationAuthorTeam":{"authorTeam":"J. Kern", "author":["J. Kern"]}, "basionymAuthorTeam":{"authorTeam":"Burm. f.", "author":["Burm. f."]}}}], "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 18], "20":["author_word", 25], "26":["author_word", 28], "30":["author_word", 32], "33":["author_word", 37]}}}
|
@@ -327,6 +356,7 @@ Polypodium pectinatum L. f.|{"scientificName":{"parsed":true, "parser_version":"
|
|
327
356
|
Polypodium pectinatum (L. f.) typica Rosent|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum (L. f.) typica Rosent", "normalized":"Polypodium pectinatum (L. f.) typica Rosent", "canonical":"Polypodium pectinatum typica", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"(L. f.)", "basionymAuthorTeam":{"authorTeam":"L. f.", "author":["L. f."]}}, "infraspecies":[{"string":"typica", "rank":"n/a", "authorship":"Rosent", "basionymAuthorTeam":{"authorTeam":"Rosent", "author":["Rosent"]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "23":["author_word", 25], "26":["author_word", 28], "30":["infraspecies", 36], "37":["author_word", 43]}}}
|
328
357
|
|
329
358
|
#year range
|
359
|
+
Eurodryas orientalis Herrich-Schäffer 1845-1847|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Eurodryas orientalis Herrich-Schäffer 1845-1847", "normalized":"Eurodryas orientalis Herrich-Schäffer 1845-1847", "canonical":"Eurodryas orientalis", "hybrid":false, "details":[{"genus":{"string":"Eurodryas"}, "species":{"string":"orientalis", "authorship":"Herrich-Schäffer 1845-1847", "basionymAuthorTeam":{"authorTeam":"Herrich-Schäffer", "author":["Herrich-Schäffer"], "year":"1845-1847"}}}], "parser_run":2, "positions":{"0":["genus", 9], "10":["species", 20], "21":["author_word", 37], "38":["year", 47]}}}
|
330
360
|
Tridentella tangeroae Bruce, 1987-92|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Tridentella tangeroae Bruce, 1987-92","normalized":"Tridentella tangeroae Bruce 1987-92","canonical":"Tridentella tangeroae","hybrid":false,"details":[{"genus":{"string":"Tridentella"},"species":{"string":"tangeroae","authorship":"Bruce, 1987-92","basionymAuthorTeam":{"authorTeam":"Bruce","author":["Bruce"],"year":"1987-92"}}}],"positions":{"0":["genus",11],"12":["species",21],"22":["author_word",27],"29":["year",36]}}}
|
331
361
|
|
332
362
|
#year in square brackets
|
@@ -344,8 +374,10 @@ Morea (Morea) Burt 2342343242 23424322342 23424234|{"scientificName":{"parsed":t
|
|
344
374
|
Nautilus asterizans von|{"scientificName":{"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]}}}
|
345
375
|
|
346
376
|
#salvage canonical
|
347
|
-
Morea ssjjlajajaj324$33 234243242|{"scientificName":{"parsed":true, "parser_version":"test_version", "
|
377
|
+
Morea ssjjlajajaj324$33 234243242|{"scientificName":{"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]}}}
|
348
378
|
Morea (Morea) burtius 2342343242 23424322342 23424234|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Morea (Morea) burtius 2342343242 23424322342 23424234","normalized":"Morea (Morea) burtius","canonical":"Morea burtius","hybrid":false,"details":[{"genus":{"string":"Morea"},"infragenus":{"string":"Morea"},"species":{"string":"burtius"}}],"positions":{"0":["genus",5],"7":["infragenus",12],"14":["species",21]}}}
|
349
379
|
Verpericola megasoma ""Dall" Pils.|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Verpericola megasoma \"\"Dall\" Pils.","normalized":"Verpericola megasoma","canonical":"Verpericola megasoma","hybrid":false,"details":[{"genus":{"string":"Verpericola"},"species":{"string":"megasoma"}}],"positions":{"0":["genus",11],"12":["species",20]}}}
|
380
|
+
Verpericola megasoma "Dall" Pils.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Verpericola megasoma \"Dall\" Pils.", "normalized":"Verpericola megasoma", "canonical":"Verpericola megasoma", "hybrid":false, "details":[{"genus":{"string":"Verpericola"}, "species":{"string":"megasoma"}}], "parser_run":2, "positions":{"0":["genus", 11], "12":["species", 20]}}}
|
350
381
|
Moraea spathulata ( (L. f. Klatt|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Moraea spathulata ( (L. f. Klatt","normalized":"Moraea spathulata","canonical":"Moraea spathulata","hybrid":false,"details":[{"genus":{"string":"Moraea"},"species":{"string":"spathulata"}}],"positions":{"0":["genus",6],"7":["species",17]}}}
|
351
|
-
|
382
|
+
Stewartia micrantha (Chun) Sealy, Bot. Mag. 176: t. 510. 1967.|{"scientificName":{"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]}}}
|
383
|
+
Pyrobaculum neutrophilum V24Sta|{"scientificName":{"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]}}}
|
data/spec/parser/todo.txt
CHANGED
@@ -26,3 +26,5 @@ Polypodium lineare C.Chr. f. caudatoattenuatum Takeda Polypodium
|
|
26
26
|
|
27
27
|
Rosa gallica × tomentosa var. eglandulosa R.Keller Rosa gallica
|
28
28
|
Rosa gallica × afzeliana subsp. vosagiaca forma subcomplicata R.Keller Rosa gallica
|
29
|
+
|
30
|
+
Salmonella sp. (ser.) brancaster Macdonald, Sivell, Emms and Taylor 1948
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: biodiversity19
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: treetop
|
@@ -162,7 +162,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
162
|
version: '0'
|
163
163
|
segments:
|
164
164
|
- 0
|
165
|
-
hash:
|
165
|
+
hash: 1697761162885604721
|
166
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
167
|
none: false
|
168
168
|
requirements:
|