biodiversity 3.4.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +2 -0
- data/lib/biodiversity/parser/scientific_name_clean.rb +164 -128
- data/lib/biodiversity/parser/scientific_name_clean.treetop +1 -1
- data/lib/biodiversity/version.rb +1 -1
- data/spec/files/test_data.txt +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e93f20afe7648a25abd17776d1393c4c26fe766a
|
|
4
|
+
data.tar.gz: db6597066a86813547957855fbbaa40f6531f459
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 31147b2fea27eb3de0291631ec268f1ec272222208b0e0b899ba10084f40c37ba8b26ce25297bcc8d38267f383cc941432ce8d92653a32a78d17753e51b31454
|
|
7
|
+
data.tar.gz: 19effcb528d52cba1652bcaf0578df91c72679bed1097bcd4477c0413b2db64116107d7d46128fcbacad7991d8fbbf1bf282df866f952642c766d1a1aa8e5fa6
|
data/CHANGELOG
CHANGED
|
@@ -5241,6 +5241,9 @@ module ScientificNameClean
|
|
|
5241
5241
|
end
|
|
5242
5242
|
|
|
5243
5243
|
module AuthorWord3
|
|
5244
|
+
end
|
|
5245
|
+
|
|
5246
|
+
module AuthorWord4
|
|
5244
5247
|
def value
|
|
5245
5248
|
text_value.gsub(/([\p{Lu}]{3,})/) do |match|
|
|
5246
5249
|
UnicodeUtils.titlecase(match)
|
|
@@ -5256,10 +5259,10 @@ module ScientificNameClean
|
|
|
5256
5259
|
end
|
|
5257
5260
|
end
|
|
5258
5261
|
|
|
5259
|
-
module
|
|
5262
|
+
module AuthorWord5
|
|
5260
5263
|
end
|
|
5261
5264
|
|
|
5262
|
-
module
|
|
5265
|
+
module AuthorWord6
|
|
5263
5266
|
def value
|
|
5264
5267
|
text_value
|
|
5265
5268
|
end
|
|
@@ -5351,147 +5354,180 @@ module ScientificNameClean
|
|
|
5351
5354
|
r0 = r2
|
|
5352
5355
|
else
|
|
5353
5356
|
i7, s7 = index, []
|
|
5354
|
-
|
|
5355
|
-
if has_terminal?("
|
|
5356
|
-
|
|
5357
|
+
i9, s9 = index, []
|
|
5358
|
+
if has_terminal?("d", false, index)
|
|
5359
|
+
r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5357
5360
|
@index += 1
|
|
5358
5361
|
else
|
|
5359
|
-
terminal_parse_failure("
|
|
5362
|
+
terminal_parse_failure("d")
|
|
5363
|
+
r10 = nil
|
|
5364
|
+
end
|
|
5365
|
+
s9 << r10
|
|
5366
|
+
if r10
|
|
5367
|
+
if has_terminal?('\G[\'’]', true, index)
|
|
5368
|
+
r11 = true
|
|
5369
|
+
@index += 1
|
|
5370
|
+
else
|
|
5371
|
+
r11 = nil
|
|
5372
|
+
end
|
|
5373
|
+
s9 << r11
|
|
5374
|
+
end
|
|
5375
|
+
if s9.last
|
|
5376
|
+
r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
|
|
5377
|
+
r9.extend(AuthorWord2)
|
|
5378
|
+
else
|
|
5379
|
+
@index = i9
|
|
5360
5380
|
r9 = nil
|
|
5361
5381
|
end
|
|
5362
5382
|
if r9
|
|
5363
5383
|
r8 = r9
|
|
5364
5384
|
else
|
|
5365
|
-
|
|
5366
|
-
|
|
5385
|
+
r8 = instantiate_node(SyntaxNode,input, index...index)
|
|
5386
|
+
end
|
|
5387
|
+
s7 << r8
|
|
5388
|
+
if r8
|
|
5389
|
+
i12 = index
|
|
5390
|
+
if has_terminal?("Å", false, index)
|
|
5391
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5367
5392
|
@index += 1
|
|
5368
5393
|
else
|
|
5369
|
-
terminal_parse_failure("
|
|
5370
|
-
|
|
5394
|
+
terminal_parse_failure("Å")
|
|
5395
|
+
r13 = nil
|
|
5371
5396
|
end
|
|
5372
|
-
if
|
|
5373
|
-
|
|
5397
|
+
if r13
|
|
5398
|
+
r12 = r13
|
|
5374
5399
|
else
|
|
5375
|
-
if has_terminal?("
|
|
5376
|
-
|
|
5400
|
+
if has_terminal?("Ö", false, index)
|
|
5401
|
+
r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5377
5402
|
@index += 1
|
|
5378
5403
|
else
|
|
5379
|
-
terminal_parse_failure("
|
|
5380
|
-
|
|
5404
|
+
terminal_parse_failure("Ö")
|
|
5405
|
+
r14 = nil
|
|
5381
5406
|
end
|
|
5382
|
-
if
|
|
5383
|
-
|
|
5407
|
+
if r14
|
|
5408
|
+
r12 = r14
|
|
5384
5409
|
else
|
|
5385
|
-
if has_terminal?("
|
|
5386
|
-
|
|
5410
|
+
if has_terminal?("Á", false, index)
|
|
5411
|
+
r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5387
5412
|
@index += 1
|
|
5388
5413
|
else
|
|
5389
|
-
terminal_parse_failure("
|
|
5390
|
-
|
|
5414
|
+
terminal_parse_failure("Á")
|
|
5415
|
+
r15 = nil
|
|
5391
5416
|
end
|
|
5392
|
-
if
|
|
5393
|
-
|
|
5417
|
+
if r15
|
|
5418
|
+
r12 = r15
|
|
5394
5419
|
else
|
|
5395
|
-
if has_terminal?("
|
|
5396
|
-
|
|
5420
|
+
if has_terminal?("Ø", false, index)
|
|
5421
|
+
r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5397
5422
|
@index += 1
|
|
5398
5423
|
else
|
|
5399
|
-
terminal_parse_failure("
|
|
5400
|
-
|
|
5424
|
+
terminal_parse_failure("Ø")
|
|
5425
|
+
r16 = nil
|
|
5401
5426
|
end
|
|
5402
|
-
if
|
|
5403
|
-
|
|
5427
|
+
if r16
|
|
5428
|
+
r12 = r16
|
|
5404
5429
|
else
|
|
5405
|
-
if has_terminal?("
|
|
5406
|
-
|
|
5430
|
+
if has_terminal?("Ô", false, index)
|
|
5431
|
+
r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5407
5432
|
@index += 1
|
|
5408
5433
|
else
|
|
5409
|
-
terminal_parse_failure("
|
|
5410
|
-
|
|
5434
|
+
terminal_parse_failure("Ô")
|
|
5435
|
+
r17 = nil
|
|
5411
5436
|
end
|
|
5412
|
-
if
|
|
5413
|
-
|
|
5437
|
+
if r17
|
|
5438
|
+
r12 = r17
|
|
5414
5439
|
else
|
|
5415
|
-
if has_terminal?("
|
|
5416
|
-
|
|
5440
|
+
if has_terminal?("Š", false, index)
|
|
5441
|
+
r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5417
5442
|
@index += 1
|
|
5418
5443
|
else
|
|
5419
|
-
terminal_parse_failure("
|
|
5420
|
-
|
|
5444
|
+
terminal_parse_failure("Š")
|
|
5445
|
+
r18 = nil
|
|
5421
5446
|
end
|
|
5422
|
-
if
|
|
5423
|
-
|
|
5447
|
+
if r18
|
|
5448
|
+
r12 = r18
|
|
5424
5449
|
else
|
|
5425
|
-
if has_terminal?("
|
|
5426
|
-
|
|
5450
|
+
if has_terminal?("Ś", false, index)
|
|
5451
|
+
r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5427
5452
|
@index += 1
|
|
5428
5453
|
else
|
|
5429
|
-
terminal_parse_failure("
|
|
5430
|
-
|
|
5454
|
+
terminal_parse_failure("Ś")
|
|
5455
|
+
r19 = nil
|
|
5431
5456
|
end
|
|
5432
|
-
if
|
|
5433
|
-
|
|
5457
|
+
if r19
|
|
5458
|
+
r12 = r19
|
|
5434
5459
|
else
|
|
5435
|
-
if has_terminal?("
|
|
5436
|
-
|
|
5460
|
+
if has_terminal?("Č", false, index)
|
|
5461
|
+
r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5437
5462
|
@index += 1
|
|
5438
5463
|
else
|
|
5439
|
-
terminal_parse_failure("
|
|
5440
|
-
|
|
5464
|
+
terminal_parse_failure("Č")
|
|
5465
|
+
r20 = nil
|
|
5441
5466
|
end
|
|
5442
|
-
if
|
|
5443
|
-
|
|
5467
|
+
if r20
|
|
5468
|
+
r12 = r20
|
|
5444
5469
|
else
|
|
5445
|
-
if has_terminal?("
|
|
5446
|
-
|
|
5470
|
+
if has_terminal?("Ķ", false, index)
|
|
5471
|
+
r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5447
5472
|
@index += 1
|
|
5448
5473
|
else
|
|
5449
|
-
terminal_parse_failure("
|
|
5450
|
-
|
|
5474
|
+
terminal_parse_failure("Ķ")
|
|
5475
|
+
r21 = nil
|
|
5451
5476
|
end
|
|
5452
|
-
if
|
|
5453
|
-
|
|
5477
|
+
if r21
|
|
5478
|
+
r12 = r21
|
|
5454
5479
|
else
|
|
5455
|
-
if has_terminal?("
|
|
5456
|
-
|
|
5480
|
+
if has_terminal?("Ł", false, index)
|
|
5481
|
+
r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5457
5482
|
@index += 1
|
|
5458
5483
|
else
|
|
5459
|
-
terminal_parse_failure("
|
|
5460
|
-
|
|
5484
|
+
terminal_parse_failure("Ł")
|
|
5485
|
+
r22 = nil
|
|
5461
5486
|
end
|
|
5462
|
-
if
|
|
5463
|
-
|
|
5487
|
+
if r22
|
|
5488
|
+
r12 = r22
|
|
5464
5489
|
else
|
|
5465
|
-
if has_terminal?("
|
|
5466
|
-
|
|
5490
|
+
if has_terminal?("É", false, index)
|
|
5491
|
+
r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5467
5492
|
@index += 1
|
|
5468
5493
|
else
|
|
5469
|
-
terminal_parse_failure("
|
|
5470
|
-
|
|
5494
|
+
terminal_parse_failure("É")
|
|
5495
|
+
r23 = nil
|
|
5471
5496
|
end
|
|
5472
|
-
if
|
|
5473
|
-
|
|
5497
|
+
if r23
|
|
5498
|
+
r12 = r23
|
|
5474
5499
|
else
|
|
5475
|
-
if has_terminal?(
|
|
5476
|
-
|
|
5500
|
+
if has_terminal?("Ž", false, index)
|
|
5501
|
+
r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5477
5502
|
@index += 1
|
|
5478
5503
|
else
|
|
5479
|
-
|
|
5504
|
+
terminal_parse_failure("Ž")
|
|
5505
|
+
r24 = nil
|
|
5480
5506
|
end
|
|
5481
|
-
if
|
|
5482
|
-
|
|
5507
|
+
if r24
|
|
5508
|
+
r12 = r24
|
|
5483
5509
|
else
|
|
5484
|
-
if has_terminal?('\G[
|
|
5485
|
-
|
|
5510
|
+
if has_terminal?('\G[A-W]', true, index)
|
|
5511
|
+
r25 = true
|
|
5486
5512
|
@index += 1
|
|
5487
5513
|
else
|
|
5488
|
-
|
|
5514
|
+
r25 = nil
|
|
5489
5515
|
end
|
|
5490
|
-
if
|
|
5491
|
-
|
|
5516
|
+
if r25
|
|
5517
|
+
r12 = r25
|
|
5492
5518
|
else
|
|
5493
|
-
|
|
5494
|
-
|
|
5519
|
+
if has_terminal?('\G[Y-Z]', true, index)
|
|
5520
|
+
r26 = true
|
|
5521
|
+
@index += 1
|
|
5522
|
+
else
|
|
5523
|
+
r26 = nil
|
|
5524
|
+
end
|
|
5525
|
+
if r26
|
|
5526
|
+
r12 = r26
|
|
5527
|
+
else
|
|
5528
|
+
@index = i12
|
|
5529
|
+
r12 = nil
|
|
5530
|
+
end
|
|
5495
5531
|
end
|
|
5496
5532
|
end
|
|
5497
5533
|
end
|
|
@@ -5505,30 +5541,30 @@ module ScientificNameClean
|
|
|
5505
5541
|
end
|
|
5506
5542
|
end
|
|
5507
5543
|
end
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5544
|
+
s7 << r12
|
|
5545
|
+
if r12
|
|
5546
|
+
s27, i27 = [], index
|
|
5547
|
+
loop do
|
|
5548
|
+
if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
|
|
5549
|
+
r28 = true
|
|
5550
|
+
@index += 1
|
|
5551
|
+
else
|
|
5552
|
+
r28 = nil
|
|
5553
|
+
end
|
|
5554
|
+
if r28
|
|
5555
|
+
s27 << r28
|
|
5556
|
+
else
|
|
5557
|
+
break
|
|
5558
|
+
end
|
|
5523
5559
|
end
|
|
5560
|
+
r27 = instantiate_node(SyntaxNode,input, i27...index, s27)
|
|
5561
|
+
s7 << r27
|
|
5524
5562
|
end
|
|
5525
|
-
r23 = instantiate_node(SyntaxNode,input, i23...index, s23)
|
|
5526
|
-
s7 << r23
|
|
5527
5563
|
end
|
|
5528
5564
|
if s7.last
|
|
5529
5565
|
r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
|
|
5530
|
-
r7.extend(AuthorWord2)
|
|
5531
5566
|
r7.extend(AuthorWord3)
|
|
5567
|
+
r7.extend(AuthorWord4)
|
|
5532
5568
|
else
|
|
5533
5569
|
@index = i7
|
|
5534
5570
|
r7 = nil
|
|
@@ -5536,52 +5572,52 @@ module ScientificNameClean
|
|
|
5536
5572
|
if r7
|
|
5537
5573
|
r0 = r7
|
|
5538
5574
|
else
|
|
5539
|
-
|
|
5575
|
+
i29, s29 = index, []
|
|
5540
5576
|
if has_terminal?("X", false, index)
|
|
5541
|
-
|
|
5577
|
+
r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
|
5542
5578
|
@index += 1
|
|
5543
5579
|
else
|
|
5544
5580
|
terminal_parse_failure("X")
|
|
5545
|
-
|
|
5581
|
+
r30 = nil
|
|
5546
5582
|
end
|
|
5547
|
-
|
|
5548
|
-
if
|
|
5549
|
-
|
|
5583
|
+
s29 << r30
|
|
5584
|
+
if r30
|
|
5585
|
+
s31, i31 = [], index
|
|
5550
5586
|
loop do
|
|
5551
5587
|
if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
|
|
5552
|
-
|
|
5588
|
+
r32 = true
|
|
5553
5589
|
@index += 1
|
|
5554
5590
|
else
|
|
5555
|
-
|
|
5591
|
+
r32 = nil
|
|
5556
5592
|
end
|
|
5557
|
-
if
|
|
5558
|
-
|
|
5593
|
+
if r32
|
|
5594
|
+
s31 << r32
|
|
5559
5595
|
else
|
|
5560
5596
|
break
|
|
5561
5597
|
end
|
|
5562
5598
|
end
|
|
5563
|
-
if
|
|
5564
|
-
@index =
|
|
5565
|
-
|
|
5599
|
+
if s31.empty?
|
|
5600
|
+
@index = i31
|
|
5601
|
+
r31 = nil
|
|
5566
5602
|
else
|
|
5567
|
-
|
|
5603
|
+
r31 = instantiate_node(SyntaxNode,input, i31...index, s31)
|
|
5568
5604
|
end
|
|
5569
|
-
|
|
5605
|
+
s29 << r31
|
|
5570
5606
|
end
|
|
5571
|
-
if
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5607
|
+
if s29.last
|
|
5608
|
+
r29 = instantiate_node(SyntaxNode,input, i29...index, s29)
|
|
5609
|
+
r29.extend(AuthorWord5)
|
|
5610
|
+
r29.extend(AuthorWord6)
|
|
5575
5611
|
else
|
|
5576
|
-
@index =
|
|
5577
|
-
|
|
5612
|
+
@index = i29
|
|
5613
|
+
r29 = nil
|
|
5578
5614
|
end
|
|
5579
|
-
if
|
|
5580
|
-
r0 =
|
|
5615
|
+
if r29
|
|
5616
|
+
r0 = r29
|
|
5581
5617
|
else
|
|
5582
|
-
|
|
5583
|
-
if
|
|
5584
|
-
r0 =
|
|
5618
|
+
r33 = _nt_author_prefix_word
|
|
5619
|
+
if r33
|
|
5620
|
+
r0 = r33
|
|
5585
5621
|
else
|
|
5586
5622
|
@index = i0
|
|
5587
5623
|
r0 = nil
|
|
@@ -1136,7 +1136,7 @@ grammar ScientificNameClean
|
|
|
1136
1136
|
end
|
|
1137
1137
|
}
|
|
1138
1138
|
/
|
|
1139
|
-
("Å"/"Ö"/"Á"/"Ø"/"Ô"/"Š"/"Ś"/"Č"/"Ķ"/"Ł"/"É"/"Ž"/[A-W]/[Y-Z]) [^0-9\[\]\(\)\s&,]* {
|
|
1139
|
+
("d" ['’])? ("Å"/"Ö"/"Á"/"Ø"/"Ô"/"Š"/"Ś"/"Č"/"Ķ"/"Ł"/"É"/"Ž"/[A-W]/[Y-Z]) [^0-9\[\]\(\)\s&,]* {
|
|
1140
1140
|
def value
|
|
1141
1141
|
text_value.gsub(/([\p{Lu}]{3,})/) do |match|
|
|
1142
1142
|
UnicodeUtils.titlecase(match)
|
data/lib/biodiversity/version.rb
CHANGED
data/spec/files/test_data.txt
CHANGED
|
@@ -221,6 +221,7 @@ Puya acris ht.|{"scientificName":{"id":"83c98b8e-f373-57df-92bf-5a39a56d9909", "
|
|
|
221
221
|
Puya acris anon.|{"scientificName":{"id":"2b5243d3-e8a7-5e6c-a2c1-beb2ee5c3020", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Puya acris anon.","normalized":"Puya acris anon.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"string":"Puya"},"species":{"string":"acris","authorship":"anon.","basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
|
|
222
222
|
Puya acris hort.|{"scientificName":{"id":"78228a5e-dcd3-58f9-bf21-b452c378f6ee", "parsed":true, "verbatim":"Puya acris hort.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
|
|
223
223
|
Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.|{"scientificName":{"id":"5ba1cc96-ab40-51b3-951d-f91b5bff1da8", "parsed":true, "parser_version":"test_version", "verbatim":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "normalized":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "canonical":"Prunus mexicana reticulata", "hybrid":false, "details":[{"genus":{"string":"Prunus"}, "species":{"string":"mexicana", "authorship":"S. Watson", "basionymAuthorTeam":{"authorTeam":"S. Watson", "author":["S. Watson"]}}, "infraspecies":[{"string":"reticulata", "rank":"var.", "authorship":"(Sarg.) Sarg.", "combinationAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}, "basionymAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}}]}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 18], "19":["author_word", 25], "26":["infraspecific_type", 30], "31":["infraspecies", 41], "43":["author_word", 48], "50":["author_word", 55]}}}
|
|
224
|
+
|
|
224
225
|
#miscellaneous names
|
|
225
226
|
Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet|{"scientificName":{"id":"f0bff1a3-0923-58d1-807f-c5da5b85531e", "parsed":true, "parser_version":"test_version", "verbatim":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet", "normalized":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet", "canonical":"Fagus sylvatica orientalis", "hybrid":false, "details":[{"genus":{"string":"Fagus"}, "species":{"string":"sylvatica"}, "infraspecies":[{"string":"orientalis", "rank":"subsp.", "authorship":"(Lipsky) Greuter & Burdet", "combinationAuthorTeam":{"authorTeam":"Greuter & Burdet", "author":["Greuter", "Burdet"]}, "basionymAuthorTeam":{"authorTeam":"Lipsky", "author":["Lipsky"]}}]}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15], "16":["infraspecific_type", 22], "23":["infraspecies", 33], "35":["author_word", 41], "43":["author_word", 50], "53":["author_word", 59]}}}
|
|
226
227
|
Stagonospora polyspora M.T. Lucas & Sousa da Câmara 1934|{"scientificName":{"id":"f03d53d7-2db1-591f-8727-6b77c0af2e0c", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Stagonospora polyspora M.T. Lucas & Sousa da C\u00e2mara 1934","normalized":"Stagonospora polyspora M.T. Lucas & Sousa da C\u00e2mara 1934","canonical":"Stagonospora polyspora","hybrid":false,"details":[{"genus":{"string":"Stagonospora"},"species":{"string":"polyspora","authorship":"M.T. Lucas & Sousa da C\u00e2mara 1934","basionymAuthorTeam":{"authorTeam":"M.T. Lucas & Sousa da C\u00e2mara","author":["M.T. Lucas","Sousa da C\u00e2mara"],"year":"1934"}}}],"positions":{"0":["genus",12],"13":["species",22],"23":["author_word",27],"28":["author_word",33],"36":["author_word",41],"42":["author_word",44],"45":["author_word",51],"52":["year",56]}}}
|
|
@@ -246,6 +247,8 @@ Cypraeovula (Luponia) amphithales perdentata|{"scientificName":{"id":"d05be4e3-a
|
|
|
246
247
|
Polyrhachis orsyllus nat musculus Forel 1901|{"scientificName":{"id":"3392132e-3dba-5b7e-a7c9-e4a68954c8b2", "parsed":true, "parser_version":"test_version", "verbatim":"Polyrhachis orsyllus nat musculus Forel 1901", "normalized":"Polyrhachis orsyllus nat musculus Forel 1901", "canonical":"Polyrhachis orsyllus musculus", "hybrid":false, "details":[{"genus":{"string":"Polyrhachis"}, "species":{"string":"orsyllus"}, "infraspecies":[{"string":"musculus", "rank":"nat", "authorship":"Forel 1901", "basionymAuthorTeam":{"authorTeam":"Forel", "author":["Forel"], "year":"1901"}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 20], "21":["infraspecific_type", 24], "25":["infraspecies", 33], "34":["author_word", 39], "40":["year", 44]}}}
|
|
247
248
|
Latrodectus 13-guttatus Thorell, 1875|{"scientificName":{"id":"0a2dd58d-0c7b-5aa3-99bf-2b4fbb5e9a52", "parsed":true, "verbatim":"Latrodectus 13-guttatus Thorell, 1875", "normalized":"Latrodectus tredecguttatus Thorell 1875", "canonical":"Latrodectus tredecguttatus", "hybrid":false, "details":[{"genus":{"string":"Latrodectus"}, "species":{"string":"tredecguttatus", "authorship":"Thorell, 1875", "basionymAuthorTeam":{"authorTeam":"Thorell", "author":["Thorell"], "year":"1875"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 23], "24":["author_word", 31], "33":["year", 37]}}}
|
|
248
249
|
Latrodectus 3-guttatus Thorell 1875|{"scientificName":{"id":"27d61aec-f214-54c2-8c35-a7a80617e54d", "parsed":true, "verbatim":"Latrodectus 3-guttatus Thorell 1875", "normalized":"Latrodectus triguttatus Thorell 1875", "canonical":"Latrodectus triguttatus", "hybrid":false, "details":[{"genus":{"string":"Latrodectus"}, "species":{"string":"triguttatus", "authorship":"Thorell 1875", "basionymAuthorTeam":{"authorTeam":"Thorell", "author":["Thorell"], "year":"1875"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 22], "23":["author_word", 30], "31":["year", 35]}}}
|
|
250
|
+
Cirsium creticum (Lam.) d'Urv. subsp. creticum|{"scientificName":{"id":"fb7cbaf0-d192-5302-b86f-612773b3abae", "parsed":true, "parser_version":"test_version", "verbatim":"Cirsium creticum (Lam.) d'Urv. subsp. creticum", "normalized":"Cirsium creticum (Lam.) d'Urv. subsp. creticum", "canonical":"Cirsium creticum creticum", "hybrid":false, "details":[{"genus":{"string":"Cirsium"}, "species":{"string":"creticum", "authorship":"(Lam.) d'Urv.", "combinationAuthorTeam":{"authorTeam":"d'Urv.", "author":["d'Urv."]}, "basionymAuthorTeam":{"authorTeam":"Lam.", "author":["Lam."]}}, "infraspecies":[{"string":"creticum", "rank":"subsp."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 16], "18":["author_word", 22], "24":["author_word", 30], "31":["infraspecific_type", 37], "38":["infraspecies", 46]}}}
|
|
251
|
+
Cirsium creticum (Lam.) d’Urv. subsp. creticum|{"scientificName":{"id":"2c2018ea-1185-5f97-8989-621a979c5349", "parsed":true, "parser_version":"test_version", "verbatim":"Cirsium creticum (Lam.) d’Urv. subsp. creticum", "normalized":"Cirsium creticum (Lam.) d’Urv. subsp. creticum", "canonical":"Cirsium creticum creticum", "hybrid":false, "details":[{"genus":{"string":"Cirsium"}, "species":{"string":"creticum", "authorship":"(Lam.) d’Urv.", "combinationAuthorTeam":{"authorTeam":"d’Urv.", "author":["d’Urv."]}, "basionymAuthorTeam":{"authorTeam":"Lam.", "author":["Lam."]}}, "infraspecies":[{"string":"creticum", "rank":"subsp."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 16], "18":["author_word", 22], "24":["author_word", 30], "31":["infraspecific_type", 37], "38":["infraspecies", 46]}}}
|
|
249
252
|
|
|
250
253
|
#names with ex authors
|
|
251
254
|
Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris|{"scientificName":{"id":"ab3998af-53dc-53fd-af8b-fab94dacbcbc", "parsed":true, "verbatim":"Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris", "normalized":"Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris", "canonical":"Arthopyrenia hyalospora", "hybrid":false, "details":[{"genus":{"string":"Arthopyrenia"}, "species":{"string":"hyalospora", "authorship":"(Nyl. ex Banker) R.C. Harris", "combinationAuthorTeam":{"authorTeam":"R.C. Harris", "author":["R.C. Harris"]}, "basionymAuthorTeam":{"authorTeam":"Nyl.", "author":["Nyl."], "exAuthorTeam":{"authorTeam":"Banker", "author":["Banker"]}}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 23], "25":["author_word", 29], "33":["author_word", 39], "41":["author_word", 45], "46":["author_word", 52]}}}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: biodiversity
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.4.
|
|
4
|
+
version: 3.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dmitry Mozzherin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-08-
|
|
11
|
+
date: 2015-08-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: treetop
|