biodiversity 3.4.0 → 3.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd706ba900f6f136fae256b85f55223e955b4300
4
- data.tar.gz: 00b5ee4e9b8b34d7fcb5084ae4b82e6db8635522
3
+ metadata.gz: e93f20afe7648a25abd17776d1393c4c26fe766a
4
+ data.tar.gz: db6597066a86813547957855fbbaa40f6531f459
5
5
  SHA512:
6
- metadata.gz: f34fb2b4e2d7e97f748967f9cec04625416b33789287ac6de7d63de348b676d4504b4c8a631505d7074989aff2d0597b857b0843b3f45cb4c5c3f5d61e7336ca
7
- data.tar.gz: 8886e2fccfb35456c326e461c7f48d42ef3c5f76d2044219b8e63af2c690851f91cc4c536b2727ffe0684fdf0c006425322d6d7664b7dc7fe4717e02ed17031d
6
+ metadata.gz: 31147b2fea27eb3de0291631ec268f1ec272222208b0e0b899ba10084f40c37ba8b26ce25297bcc8d38267f383cc941432ce8d92653a32a78d17753e51b31454
7
+ data.tar.gz: 19effcb528d52cba1652bcaf0578df91c72679bed1097bcd4477c0413b2db64116107d7d46128fcbacad7991d8fbbf1bf282df866f952642c766d1a1aa8e5fa6
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ 3.4.1 -- support for authors starting with "d'"
2
+
1
3
  3.4.0 -- added ScientificNameParser.add_rank_to_canonical(parsed) method.
2
4
  This method allows to add infraspecific rank to a canonical form
3
5
  after the fact of parsing.
@@ -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 AuthorWord4
5262
+ module AuthorWord5
5260
5263
  end
5261
5264
 
5262
- module AuthorWord5
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
- i8 = index
5355
- if has_terminal?("Å", false, index)
5356
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- if has_terminal?("Ö", false, index)
5366
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r10 = nil
5394
+ terminal_parse_failure("Å")
5395
+ r13 = nil
5371
5396
  end
5372
- if r10
5373
- r8 = r10
5397
+ if r13
5398
+ r12 = r13
5374
5399
  else
5375
- if has_terminal?("Á", false, index)
5376
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r11 = nil
5404
+ terminal_parse_failure("Ö")
5405
+ r14 = nil
5381
5406
  end
5382
- if r11
5383
- r8 = r11
5407
+ if r14
5408
+ r12 = r14
5384
5409
  else
5385
- if has_terminal?("Ø", false, index)
5386
- r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r12 = nil
5414
+ terminal_parse_failure("Á")
5415
+ r15 = nil
5391
5416
  end
5392
- if r12
5393
- r8 = r12
5417
+ if r15
5418
+ r12 = r15
5394
5419
  else
5395
- if has_terminal?("Ô", false, index)
5396
- r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r13 = nil
5424
+ terminal_parse_failure("Ø")
5425
+ r16 = nil
5401
5426
  end
5402
- if r13
5403
- r8 = r13
5427
+ if r16
5428
+ r12 = r16
5404
5429
  else
5405
- if has_terminal?("Š", false, index)
5406
- r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r14 = nil
5434
+ terminal_parse_failure("Ô")
5435
+ r17 = nil
5411
5436
  end
5412
- if r14
5413
- r8 = r14
5437
+ if r17
5438
+ r12 = r17
5414
5439
  else
5415
- if has_terminal?("Ś", false, index)
5416
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r15 = nil
5444
+ terminal_parse_failure("Š")
5445
+ r18 = nil
5421
5446
  end
5422
- if r15
5423
- r8 = r15
5447
+ if r18
5448
+ r12 = r18
5424
5449
  else
5425
- if has_terminal?("Č", false, index)
5426
- r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r16 = nil
5454
+ terminal_parse_failure("Ś")
5455
+ r19 = nil
5431
5456
  end
5432
- if r16
5433
- r8 = r16
5457
+ if r19
5458
+ r12 = r19
5434
5459
  else
5435
- if has_terminal?("Ķ", false, index)
5436
- r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r17 = nil
5464
+ terminal_parse_failure("Č")
5465
+ r20 = nil
5441
5466
  end
5442
- if r17
5443
- r8 = r17
5467
+ if r20
5468
+ r12 = r20
5444
5469
  else
5445
- if has_terminal?("Ł", false, index)
5446
- r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r18 = nil
5474
+ terminal_parse_failure("Ķ")
5475
+ r21 = nil
5451
5476
  end
5452
- if r18
5453
- r8 = r18
5477
+ if r21
5478
+ r12 = r21
5454
5479
  else
5455
- if has_terminal?("É", false, index)
5456
- r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r19 = nil
5484
+ terminal_parse_failure("Ł")
5485
+ r22 = nil
5461
5486
  end
5462
- if r19
5463
- r8 = r19
5487
+ if r22
5488
+ r12 = r22
5464
5489
  else
5465
- if has_terminal?("Ž", false, index)
5466
- r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
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
- r20 = nil
5494
+ terminal_parse_failure("É")
5495
+ r23 = nil
5471
5496
  end
5472
- if r20
5473
- r8 = r20
5497
+ if r23
5498
+ r12 = r23
5474
5499
  else
5475
- if has_terminal?('\G[A-W]', true, index)
5476
- r21 = true
5500
+ if has_terminal?("Ž", false, index)
5501
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
5477
5502
  @index += 1
5478
5503
  else
5479
- r21 = nil
5504
+ terminal_parse_failure("Ž")
5505
+ r24 = nil
5480
5506
  end
5481
- if r21
5482
- r8 = r21
5507
+ if r24
5508
+ r12 = r24
5483
5509
  else
5484
- if has_terminal?('\G[Y-Z]', true, index)
5485
- r22 = true
5510
+ if has_terminal?('\G[A-W]', true, index)
5511
+ r25 = true
5486
5512
  @index += 1
5487
5513
  else
5488
- r22 = nil
5514
+ r25 = nil
5489
5515
  end
5490
- if r22
5491
- r8 = r22
5516
+ if r25
5517
+ r12 = r25
5492
5518
  else
5493
- @index = i8
5494
- r8 = nil
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
- end
5509
- s7 << r8
5510
- if r8
5511
- s23, i23 = [], index
5512
- loop do
5513
- if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
5514
- r24 = true
5515
- @index += 1
5516
- else
5517
- r24 = nil
5518
- end
5519
- if r24
5520
- s23 << r24
5521
- else
5522
- break
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
- i25, s25 = index, []
5575
+ i29, s29 = index, []
5540
5576
  if has_terminal?("X", false, index)
5541
- r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
5577
+ r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
5542
5578
  @index += 1
5543
5579
  else
5544
5580
  terminal_parse_failure("X")
5545
- r26 = nil
5581
+ r30 = nil
5546
5582
  end
5547
- s25 << r26
5548
- if r26
5549
- s27, i27 = [], index
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
- r28 = true
5588
+ r32 = true
5553
5589
  @index += 1
5554
5590
  else
5555
- r28 = nil
5591
+ r32 = nil
5556
5592
  end
5557
- if r28
5558
- s27 << r28
5593
+ if r32
5594
+ s31 << r32
5559
5595
  else
5560
5596
  break
5561
5597
  end
5562
5598
  end
5563
- if s27.empty?
5564
- @index = i27
5565
- r27 = nil
5599
+ if s31.empty?
5600
+ @index = i31
5601
+ r31 = nil
5566
5602
  else
5567
- r27 = instantiate_node(SyntaxNode,input, i27...index, s27)
5603
+ r31 = instantiate_node(SyntaxNode,input, i31...index, s31)
5568
5604
  end
5569
- s25 << r27
5605
+ s29 << r31
5570
5606
  end
5571
- if s25.last
5572
- r25 = instantiate_node(SyntaxNode,input, i25...index, s25)
5573
- r25.extend(AuthorWord4)
5574
- r25.extend(AuthorWord5)
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 = i25
5577
- r25 = nil
5612
+ @index = i29
5613
+ r29 = nil
5578
5614
  end
5579
- if r25
5580
- r0 = r25
5615
+ if r29
5616
+ r0 = r29
5581
5617
  else
5582
- r29 = _nt_author_prefix_word
5583
- if r29
5584
- r0 = r29
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)
@@ -1,3 +1,3 @@
1
1
  module Biodiversity
2
- VERSION = "3.4.0"
2
+ VERSION = "3.4.1"
3
3
  end
@@ -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.0
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-20 00:00:00.000000000 Z
11
+ date: 2015-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop