dimus-biodiversity 0.5.4 → 0.5.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,13 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
6
+ *.swp
7
+ *.swo
8
+ biodiversity*.gem
9
+ *json
10
+ *xml
11
+ tmp
12
+ .DS_Store
13
+ spec/parser/test_data_new.txt
data/LICENSE CHANGED
@@ -1,21 +1,20 @@
1
- Copyright (c) 2007 Tusk-It Contributors See:
2
- http://code.google.com/p/tuskit/wiki/ProjectContributors
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining
5
- a copy of this software and associated documentation files (the
6
- "Software"), to deal in the Software without restriction, including
7
- without limitation the rights to use, copy, modify, merge, publish,
8
- distribute, sublicense, and/or sell copies of the Software, and to
9
- permit persons to whom the Software is furnished to do so, subject to
10
- the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright (c) 2009 Dmitry Mozzherin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,29 +1,39 @@
1
1
  dir = File.dirname(__FILE__)
2
2
  require 'rubygems'
3
3
  require 'rake'
4
- $LOAD_PATH.unshift(File.join(dir, 'vendor', 'rspec', 'lib'))
4
+ #$LOAD_PATH.unshift(File.join(dir, 'vendor', 'rspec', 'lib'))
5
5
  require 'spec/rake/spectask'
6
6
 
7
7
  #Gem::manage_gems
8
- require 'rake/gempackagetask'
8
+ #require 'rake/gempackagetask'
9
9
 
10
10
  task :default => :spec
11
11
 
12
- #begin
13
- # require 'jeweler'
14
- # Jeweler::Tasks.new do |gemspec|
15
- # gemspec.name = "biodiversity"
16
- # gemspec.summary = "scientific species name parser\n\nExecutable is nnparse"
17
- # gemspec.email = "dmozzherin {et} eol {dt} org"
18
- # gemspec.homepage = "http://github.com/dimus/biodiversity"
19
- # gemspec.description = "Biodiversity library provides a parser tool for scientific species names"
20
- # gemspec.authors = ["Dmitry Mozzherin", "Anna Shipunova"]
21
- # end
22
- #rescue LoadError
23
- # puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
24
- #end
12
+ Spec::Rake::SpecTask.new do |t|
13
+ t.pattern = 'spec/**/*spec.rb'
14
+ end
25
15
 
26
16
 
17
+ begin
18
+ require 'jeweler'
19
+ Jeweler::Tasks.new do |gem|
20
+ gem.name = "biodiversity"
21
+ gem.summary = 'Parser of scientific names'
22
+ gem.description = 'Tools for biodiversity informatics'
23
+ gem.email = "dmozzherin@gmail.com"
24
+ gem.homepage = "http://github.com/dimus/biodiversity"
25
+ gem.authors = ["Dmitry Mozzherin"]
26
+ gem.has_rdoc = false
27
+ gem.bindir = 'bin'
28
+ gem.executables = ['nnparse']
29
+ gem.add_dependency('treetop')
30
+ gem.add_dependency('json') if RUBY_VERSION.split(".")[0..1].join('').to_i < 19
31
+ gem.add_development_dependency "rspec"
32
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
33
+ end
34
+ rescue LoadError
35
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
36
+ end
27
37
 
28
38
  task :tt do
29
39
  system("tt #{dir}/lib/biodiversity/parser/scientific_name_clean.treetop")
@@ -31,11 +41,3 @@ task :tt do
31
41
  system("tt #{dir}/lib/biodiversity/parser/scientific_name_canonical.treetop")
32
42
  end
33
43
 
34
- task :files do
35
- puts FileList["LICENSE", "README.rdoc", "Rakefile", "{spec,lib,bin,doc,examples}/**/*"].to_a.join(' ')
36
- end
37
-
38
- Spec::Rake::SpecTask.new do |t|
39
- t.pattern = 'spec/**/*spec.rb'
40
- end
41
-
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.5.10
@@ -11,44 +11,18 @@ if ARGV.empty?
11
11
  exit
12
12
  end
13
13
 
14
-
15
- parser = ScientificNameParser.new
16
- dirty_parser = ScientificNameDirtyParser.new
17
-
14
+ input = ARGV[0]
18
15
  output = ARGV[1] || 'parsed.json'
19
- o = File.open(output,'w')
20
16
 
21
- # parse a file with names
22
- count = count2 = 0
23
- names = []
24
- last_result = nil
25
- o.write("[\n")
26
- IO.foreach(ARGV[0]) do |n|
27
- o.write(last_result + ",\n") if last_result
28
- name_dict = {}
29
- puts 'Parsing names' if count2 == 0
30
- count2 += 1
31
- p count2 if count2 % 5000 == 0
32
- n.strip!
33
- name_dict = {:input => n}
34
- parsed = parser.parse(n) || dirty_parser.parse(n)
35
- unless parsed
36
- name_dict[:details] = {:parsed => false}
37
- last_result = JSON.generate name_dict
38
- puts n
39
- count += 1
40
- else
41
- begin
42
- name_dict[:output] = parsed.value
43
- name_dict[:canononical] = parsed.canonical
44
- name_dict[:details] = parsed.details
45
- name_dict[:parsed => true]
46
- last_result = JSON.generate name_dict
47
- rescue
48
- puts 'PROBLEM: ' + n
49
- end
50
- end
17
+ p = ScientificNameParser.new
18
+ o = open(output, 'w')
19
+
20
+ count = 0
21
+ IO.foreach(input) do |line|
22
+ count += 1
23
+ puts("%s lines parsed" % count) if count % 10000 == 0
24
+ name = line.gsub(/^[\d]*\s*/, '').strip
25
+ parsed_data = p.parse(name).to_json rescue {'parsed' => false, 'vernacular' => name, 'error' => 'Parser error'}.to_json
26
+ o.write parsed_data + "\n"
51
27
  end
52
- o.write(last_result + "\n") if last_result
53
- o.write("]")
54
- puts "Found #{count2} records, #{count} of them could not be parsed."
28
+
@@ -1591,8 +1591,8 @@ module ScientificNameClean
1591
1591
  r1.extend(Rank0)
1592
1592
  else
1593
1593
  if input.index("α", index) == index
1594
- r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
1595
- @index += 1
1594
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
1595
+ @index += 2
1596
1596
  else
1597
1597
  terminal_parse_failure("α")
1598
1598
  r18 = nil
@@ -1602,8 +1602,8 @@ module ScientificNameClean
1602
1602
  r1.extend(Rank0)
1603
1603
  else
1604
1604
  if input.index("ββ", index) == index
1605
- r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
1606
- @index += 2
1605
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 4))
1606
+ @index += 4
1607
1607
  else
1608
1608
  terminal_parse_failure("ββ")
1609
1609
  r19 = nil
@@ -1613,8 +1613,8 @@ module ScientificNameClean
1613
1613
  r1.extend(Rank0)
1614
1614
  else
1615
1615
  if input.index("β", index) == index
1616
- r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
1617
- @index += 1
1616
+ r20 = instantiate_node(SyntaxNode,input, index...(index + 2))
1617
+ @index += 2
1618
1618
  else
1619
1619
  terminal_parse_failure("β")
1620
1620
  r20 = nil
@@ -1624,8 +1624,8 @@ module ScientificNameClean
1624
1624
  r1.extend(Rank0)
1625
1625
  else
1626
1626
  if input.index("γ", index) == index
1627
- r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
1628
- @index += 1
1627
+ r21 = instantiate_node(SyntaxNode,input, index...(index + 2))
1628
+ @index += 2
1629
1629
  else
1630
1630
  terminal_parse_failure("γ")
1631
1631
  r21 = nil
@@ -1635,8 +1635,8 @@ module ScientificNameClean
1635
1635
  r1.extend(Rank0)
1636
1636
  else
1637
1637
  if input.index("δ", index) == index
1638
- r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
1639
- @index += 1
1638
+ r22 = instantiate_node(SyntaxNode,input, index...(index + 2))
1639
+ @index += 2
1640
1640
  else
1641
1641
  terminal_parse_failure("δ")
1642
1642
  r22 = nil
@@ -1646,8 +1646,8 @@ module ScientificNameClean
1646
1646
  r1.extend(Rank0)
1647
1647
  else
1648
1648
  if input.index("ε", index) == index
1649
- r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
1650
- @index += 1
1649
+ r23 = instantiate_node(SyntaxNode,input, index...(index + 2))
1650
+ @index += 2
1651
1651
  else
1652
1652
  terminal_parse_failure("ε")
1653
1653
  r23 = nil
@@ -1657,8 +1657,8 @@ module ScientificNameClean
1657
1657
  r1.extend(Rank0)
1658
1658
  else
1659
1659
  if input.index("φ", index) == index
1660
- r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
1661
- @index += 1
1660
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 2))
1661
+ @index += 2
1662
1662
  else
1663
1663
  terminal_parse_failure("φ")
1664
1664
  r24 = nil
@@ -1668,8 +1668,8 @@ module ScientificNameClean
1668
1668
  r1.extend(Rank0)
1669
1669
  else
1670
1670
  if input.index("θ", index) == index
1671
- r25 = instantiate_node(SyntaxNode,input, index...(index + 1))
1672
- @index += 1
1671
+ r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
1672
+ @index += 2
1673
1673
  else
1674
1674
  terminal_parse_failure("θ")
1675
1675
  r25 = nil
@@ -1679,8 +1679,8 @@ module ScientificNameClean
1679
1679
  r1.extend(Rank0)
1680
1680
  else
1681
1681
  if input.index("μ", index) == index
1682
- r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
1683
- @index += 1
1682
+ r26 = instantiate_node(SyntaxNode,input, index...(index + 2))
1683
+ @index += 2
1684
1684
  else
1685
1685
  terminal_parse_failure("μ")
1686
1686
  r26 = nil
@@ -3999,8 +3999,8 @@ module ScientificNameClean
3999
3999
  i6, s6 = index, []
4000
4000
  i7 = index
4001
4001
  if input.index("Å", index) == index
4002
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
4003
- @index += 1
4002
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 2))
4003
+ @index += 2
4004
4004
  else
4005
4005
  terminal_parse_failure("Å")
4006
4006
  r8 = nil
@@ -4009,8 +4009,8 @@ module ScientificNameClean
4009
4009
  r7 = r8
4010
4010
  else
4011
4011
  if input.index("Ö", index) == index
4012
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
4013
- @index += 1
4012
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 2))
4013
+ @index += 2
4014
4014
  else
4015
4015
  terminal_parse_failure("Ö")
4016
4016
  r9 = nil
@@ -4019,8 +4019,8 @@ module ScientificNameClean
4019
4019
  r7 = r9
4020
4020
  else
4021
4021
  if input.index("Á", index) == index
4022
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
4023
- @index += 1
4022
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 2))
4023
+ @index += 2
4024
4024
  else
4025
4025
  terminal_parse_failure("Á")
4026
4026
  r10 = nil
@@ -4029,8 +4029,8 @@ module ScientificNameClean
4029
4029
  r7 = r10
4030
4030
  else
4031
4031
  if input.index("Ø", index) == index
4032
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
4033
- @index += 1
4032
+ r11 = instantiate_node(SyntaxNode,input, index...(index + 2))
4033
+ @index += 2
4034
4034
  else
4035
4035
  terminal_parse_failure("Ø")
4036
4036
  r11 = nil
@@ -4039,8 +4039,8 @@ module ScientificNameClean
4039
4039
  r7 = r11
4040
4040
  else
4041
4041
  if input.index("Ô", index) == index
4042
- r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
4043
- @index += 1
4042
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
4043
+ @index += 2
4044
4044
  else
4045
4045
  terminal_parse_failure("Ô")
4046
4046
  r12 = nil
@@ -4049,8 +4049,8 @@ module ScientificNameClean
4049
4049
  r7 = r12
4050
4050
  else
4051
4051
  if input.index("Š", index) == index
4052
- r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
4053
- @index += 1
4052
+ r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
4053
+ @index += 2
4054
4054
  else
4055
4055
  terminal_parse_failure("Š")
4056
4056
  r13 = nil
@@ -4059,8 +4059,8 @@ module ScientificNameClean
4059
4059
  r7 = r13
4060
4060
  else
4061
4061
  if input.index("Ś", index) == index
4062
- r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
4063
- @index += 1
4062
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 2))
4063
+ @index += 2
4064
4064
  else
4065
4065
  terminal_parse_failure("Ś")
4066
4066
  r14 = nil
@@ -4069,8 +4069,8 @@ module ScientificNameClean
4069
4069
  r7 = r14
4070
4070
  else
4071
4071
  if input.index("Č", index) == index
4072
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
4073
- @index += 1
4072
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
4073
+ @index += 2
4074
4074
  else
4075
4075
  terminal_parse_failure("Č")
4076
4076
  r15 = nil
@@ -4079,8 +4079,8 @@ module ScientificNameClean
4079
4079
  r7 = r15
4080
4080
  else
4081
4081
  if input.index("Ķ", index) == index
4082
- r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
4083
- @index += 1
4082
+ r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
4083
+ @index += 2
4084
4084
  else
4085
4085
  terminal_parse_failure("Ķ")
4086
4086
  r16 = nil
@@ -4089,8 +4089,8 @@ module ScientificNameClean
4089
4089
  r7 = r16
4090
4090
  else
4091
4091
  if input.index("Ł", index) == index
4092
- r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
4093
- @index += 1
4092
+ r17 = instantiate_node(SyntaxNode,input, index...(index + 2))
4093
+ @index += 2
4094
4094
  else
4095
4095
  terminal_parse_failure("Ł")
4096
4096
  r17 = nil
@@ -4099,8 +4099,8 @@ module ScientificNameClean
4099
4099
  r7 = r17
4100
4100
  else
4101
4101
  if input.index("É", index) == index
4102
- r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
4103
- @index += 1
4102
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
4103
+ @index += 2
4104
4104
  else
4105
4105
  terminal_parse_failure("É")
4106
4106
  r18 = nil
@@ -4109,8 +4109,8 @@ module ScientificNameClean
4109
4109
  r7 = r18
4110
4110
  else
4111
4111
  if input.index("Ž", index) == index
4112
- r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
4113
- @index += 1
4112
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
4113
+ @index += 2
4114
4114
  else
4115
4115
  terminal_parse_failure("Ž")
4116
4116
  r19 = nil
@@ -5454,9 +5454,9 @@ module ScientificNameClean
5454
5454
 
5455
5455
  i0 = index
5456
5456
  if input.index("Æ", index) == index
5457
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5457
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
5458
5458
  r1.extend(CapDigraph0)
5459
- @index += 1
5459
+ @index += 2
5460
5460
  else
5461
5461
  terminal_parse_failure("Æ")
5462
5462
  r1 = nil
@@ -5465,9 +5465,9 @@ module ScientificNameClean
5465
5465
  r0 = r1
5466
5466
  else
5467
5467
  if input.index("Œ", index) == index
5468
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5468
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
5469
5469
  r2.extend(CapDigraph1)
5470
- @index += 1
5470
+ @index += 2
5471
5471
  else
5472
5472
  terminal_parse_failure("Œ")
5473
5473
  r2 = nil
@@ -5507,9 +5507,9 @@ module ScientificNameClean
5507
5507
 
5508
5508
  i0 = index
5509
5509
  if input.index("æ", index) == index
5510
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
5510
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
5511
5511
  r1.extend(Digraph0)
5512
- @index += 1
5512
+ @index += 2
5513
5513
  else
5514
5514
  terminal_parse_failure("æ")
5515
5515
  r1 = nil
@@ -5518,9 +5518,9 @@ module ScientificNameClean
5518
5518
  r0 = r1
5519
5519
  else
5520
5520
  if input.index("œ", index) == index
5521
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
5521
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
5522
5522
  r2.extend(Digraph1)
5523
- @index += 1
5523
+ @index += 2
5524
5524
  else
5525
5525
  terminal_parse_failure("œ")
5526
5526
  r2 = nil
@@ -5908,9 +5908,9 @@ module ScientificNameClean
5908
5908
  end
5909
5909
 
5910
5910
  if input.index("×", index) == index
5911
- r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
5911
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 2))
5912
5912
  r0.extend(MultiplicationSign0)
5913
- @index += 1
5913
+ @index += 2
5914
5914
  else
5915
5915
  terminal_parse_failure("×")
5916
5916
  r0 = nil
File without changes
@@ -0,0 +1,69 @@
1
+ dir = File.dirname("__FILE__")
2
+ require 'rubygems'
3
+ require 'spec'
4
+ require 'yaml'
5
+ require 'treetop'
6
+ require 'json'
7
+ require File.expand_path(dir + '../../lib/biodiversity/parser')
8
+
9
+ Treetop.load(File.expand_path(dir + '../../lib/biodiversity/parser/scientific_name_clean'))
10
+ Treetop.load(File.expand_path(dir + '../../lib/biodiversity/parser/scientific_name_dirty'))
11
+ Treetop.load(File.expand_path(dir + '../../lib/biodiversity/parser/scientific_name_canonical'))
12
+
13
+ def set_parser(parser)
14
+ @parser = parser
15
+ end
16
+
17
+ def parse(input)
18
+ @parser.parse(input)
19
+ end
20
+
21
+ def value(input)
22
+ parse(input).value
23
+ end
24
+
25
+ def canonical(input)
26
+ parse(input).canonical
27
+ end
28
+
29
+ def details(input)
30
+ parse(input).details
31
+ end
32
+
33
+ def pos(input)
34
+ parse(input).pos
35
+ end
36
+
37
+ def json(input)
38
+ parse(input).to_json
39
+ end
40
+
41
+ def debug(input)
42
+ res = parse(input)
43
+ puts "<pre>"
44
+ if res
45
+ puts 'success!'
46
+ puts res.inspect
47
+ else
48
+ puts input
49
+ val = @parser.failure_reason.to_s.match(/column [0-9]*/).to_s.gsub(/column /,'').to_i
50
+ print ("-" * (val - 1))
51
+ print "^ Computer says 'no'!\n"
52
+ puts @parser.failure_reason
53
+ puts @parser.to_yaml
54
+ end
55
+ puts "</pre>"
56
+ end
57
+
58
+ def read_test_file
59
+ f = open(File.expand_path(File.dirname("__FILE__") + "../../spec/parser/test_data.txt"))
60
+ f.each do |line|
61
+ name, jsn = line.split("|")
62
+ if line.match(/^\s*#/) == nil && name && jsn
63
+ yield({:name => name, :jsn => jsn})
64
+ else
65
+ yield({:comment => line})
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,235 @@
1
+ ####
2
+ # Scientific Names Parser Test
3
+ #
4
+ # Test consists of a pipe delimited input (scientific name) and parsed output in json format
5
+ ####
6
+
7
+ #uninomial
8
+ Pseudocercospora|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora","normalized":"Pseudocercospora","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"epitheton":"Pseudocercospora"}}],"positions":{"0":["uninomial",16]}}}
9
+
10
+ #uninomial with author
11
+ Pseudocercospora Speg.|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora Speg.","normalized":"Pseudocercospora Speg.","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"epitheton":"Pseudocercospora","authorship":"Speg.","basionymAuthorTeam":{"authorTeam":"Speg.","author":["Speg."]}}}],"positions":{"0":["uninomial",16],"17":["author_word",22]}}}
12
+
13
+ #uninomial with author and year
14
+ Pseudocercospora Speg. 1910|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora Speg. 1910","normalized":"Pseudocercospora Speg. 1910","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"epitheton":"Pseudocercospora","authorship":"Speg. 1910","basionymAuthorTeam":{"authorTeam":"Speg.","author":["Speg."],"year":"1910"}}}],"positions":{"0":["uninomial",16],"17":["author_word",22],"23":["year",27]}}}
15
+ Pseudocercospora Spegazzini, 1910|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora Spegazzini, 1910","normalized":"Pseudocercospora Spegazzini 1910","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"epitheton":"Pseudocercospora","authorship":"Spegazzini, 1910","basionymAuthorTeam":{"authorTeam":"Spegazzini","author":["Spegazzini"],"year":"1910"}}}],"positions":{"0":["uninomial",16],"17":["author_word",27],"29":["year",33]}}}
16
+ Platypus bicaudatulus Schedl (1935h)|{"scientificName":{"parsed":true,"verbatim":"Platypus bicaudatulus Schedl (1935h)","normalized":"Platypus bicaudatulus Schedl 1935","canonical":"Platypus bicaudatulus","hybrid":false,"details":[{"genus":{"epitheton":"Platypus"},"species":{"epitheton":"bicaudatulus","authorship":"Schedl (1935h)","basionymAuthorTeam":{"authorTeam":"Schedl","author":["Schedl"],"year":"1935"}}}],"positions":{"0":["genus",8],"9":["species",21],"22":["author_word",28],"30":["year",35]}}}
17
+ Platypus bicaudatulus Schedl (1935)|{"scientificName":{"parsed":true,"verbatim":"Platypus bicaudatulus Schedl (1935)","normalized":"Platypus bicaudatulus Schedl 1935","canonical":"Platypus bicaudatulus","hybrid":false,"details":[{"genus":{"epitheton":"Platypus"},"species":{"epitheton":"bicaudatulus","authorship":"Schedl (1935)","basionymAuthorTeam":{"authorTeam":"Schedl","author":["Schedl"],"year":"1935"}}}],"positions":{"0":["genus",8],"9":["species",21],"22":["author_word",28],"30":["year",34]}}}
18
+ Tridentella tangeroae Bruce, 198?|{"scientificName":{"parsed":true,"verbatim":"Tridentella tangeroae Bruce, 198?","normalized":"Tridentella tangeroae Bruce 198?","canonical":"Tridentella tangeroae","hybrid":false,"details":[{"genus":{"epitheton":"Tridentella"},"species":{"epitheton":"tangeroae","authorship":"Bruce, 198?","basionymAuthorTeam":{"authorTeam":"Bruce","author":["Bruce"],"year":"198?"}}}],"positions":{"0":["genus",11],"12":["species",21],"22":["author_word",27],"29":["year",33]}}}
19
+
20
+ #two-letter genus names (legacy genera, not allowed anymore)
21
+ Ca Dyar 1914|{"scientificName":{"parsed":true,"verbatim":"Ca Dyar 1914","normalized":"Ca Dyar 1914","canonical":"Ca","hybrid":false,"details":[{"uninomial":{"epitheton":"Ca","authorship":"Dyar 1914","basionymAuthorTeam":{"authorTeam":"Dyar","author":["Dyar"],"year":"1914"}}}],"positions":{"0":["uninomial",2],"3":["author_word",7],"8":["year",12]}}}
22
+ Ea Distant 1911|{"scientificName":{"parsed":true,"verbatim":"Ea Distant 1911","normalized":"Ea Distant 1911","canonical":"Ea","hybrid":false,"details":[{"uninomial":{"epitheton":"Ea","authorship":"Distant 1911","basionymAuthorTeam":{"authorTeam":"Distant","author":["Distant"],"year":"1911"}}}],"positions":{"0":["uninomial",2],"3":["author_word",10],"11":["year",15]}}}
23
+ Ge Nicéville 1895|{"scientificName":{"parsed":true,"verbatim":"Ge Nic\u00e9ville 1895","normalized":"Ge Nic\u00e9ville 1895","canonical":"Ge","hybrid":false,"details":[{"uninomial":{"epitheton":"Ge","authorship":"Nic\u00e9ville 1895","basionymAuthorTeam":{"authorTeam":"Nic\u00e9ville","author":["Nic\u00e9ville"],"year":"1895"}}}],"positions":{"0":["uninomial",2],"3":["author_word",12],"13":["year",17]}}}
24
+ Ia Thomas 1902|{"scientificName":{"parsed":true,"verbatim":"Ia Thomas 1902","normalized":"Ia Thomas 1902","canonical":"Ia","hybrid":false,"details":[{"uninomial":{"epitheton":"Ia","authorship":"Thomas 1902","basionymAuthorTeam":{"authorTeam":"Thomas","author":["Thomas"],"year":"1902"}}}],"positions":{"0":["uninomial",2],"3":["author_word",9],"10":["year",14]}}}
25
+ Io Lea 1831|{"scientificName":{"parsed":true,"verbatim":"Io Lea 1831","normalized":"Io Lea 1831","canonical":"Io","hybrid":false,"details":[{"uninomial":{"epitheton":"Io","authorship":"Lea 1831","basionymAuthorTeam":{"authorTeam":"Lea","author":["Lea"],"year":"1831"}}}],"positions":{"0":["uninomial",2],"3":["author_word",6],"7":["year",11]}}}
26
+ Io Blanchard 1852|{"scientificName":{"parsed":true,"verbatim":"Io Blanchard 1852","normalized":"Io Blanchard 1852","canonical":"Io","hybrid":false,"details":[{"uninomial":{"epitheton":"Io","authorship":"Blanchard 1852","basionymAuthorTeam":{"authorTeam":"Blanchard","author":["Blanchard"],"year":"1852"}}}],"positions":{"0":["uninomial",2],"3":["author_word",12],"13":["year",17]}}}
27
+ Ix Bergroth 1916|{"scientificName":{"parsed":true,"verbatim":"Ix Bergroth 1916","normalized":"Ix Bergroth 1916","canonical":"Ix","hybrid":false,"details":[{"uninomial":{"epitheton":"Ix","authorship":"Bergroth 1916","basionymAuthorTeam":{"authorTeam":"Bergroth","author":["Bergroth"],"year":"1916"}}}],"positions":{"0":["uninomial",2],"3":["author_word",11],"12":["year",16]}}}
28
+ Lo Seale 1906|{"scientificName":{"parsed":true,"verbatim":"Lo Seale 1906","normalized":"Lo Seale 1906","canonical":"Lo","hybrid":false,"details":[{"uninomial":{"epitheton":"Lo","authorship":"Seale 1906","basionymAuthorTeam":{"authorTeam":"Seale","author":["Seale"],"year":"1906"}}}],"positions":{"0":["uninomial",2],"3":["author_word",8],"9":["year",13]}}}
29
+ Oa Girault 1929|{"scientificName":{"parsed":true,"verbatim":"Oa Girault 1929","normalized":"Oa Girault 1929","canonical":"Oa","hybrid":false,"details":[{"uninomial":{"epitheton":"Oa","authorship":"Girault 1929","basionymAuthorTeam":{"authorTeam":"Girault","author":["Girault"],"year":"1929"}}}],"positions":{"0":["uninomial",2],"3":["author_word",10],"11":["year",15]}}}
30
+ Ra Whitley 1931|{"scientificName":{"parsed":true,"verbatim":"Ra Whitley 1931","normalized":"Ra Whitley 1931","canonical":"Ra","hybrid":false,"details":[{"uninomial":{"epitheton":"Ra","authorship":"Whitley 1931","basionymAuthorTeam":{"authorTeam":"Whitley","author":["Whitley"],"year":"1931"}}}],"positions":{"0":["uninomial",2],"3":["author_word",10],"11":["year",15]}}}
31
+ Ty Bory de St. Vincent 1827|{"scientificName":{"parsed":true,"verbatim":"Ty Bory de St. Vincent 1827","normalized":"Ty Bory de St. Vincent 1827","canonical":"Ty","hybrid":false,"details":[{"uninomial":{"epitheton":"Ty","authorship":"Bory de St. Vincent 1827","basionymAuthorTeam":{"authorTeam":"Bory de St. Vincent","author":["Bory de St. Vincent"],"year":"1827"}}}],"positions":{"0":["uninomial",2],"3":["author_word",7],"8":["author_word",10],"11":["author_word",14],"15":["author_word",22],"23":["year",27]}}}
32
+ Ua Girault 1929|{"scientificName":{"parsed":true,"verbatim":"Ua Girault 1929","normalized":"Ua Girault 1929","canonical":"Ua","hybrid":false,"details":[{"uninomial":{"epitheton":"Ua","authorship":"Girault 1929","basionymAuthorTeam":{"authorTeam":"Girault","author":["Girault"],"year":"1929"}}}],"positions":{"0":["uninomial",2],"3":["author_word",10],"11":["year",15]}}}
33
+ Aa Baker 1940|{"scientificName":{"parsed":true,"verbatim":"Aa Baker 1940","normalized":"Aa Baker 1940","canonical":"Aa","hybrid":false,"details":[{"uninomial":{"epitheton":"Aa","authorship":"Baker 1940","basionymAuthorTeam":{"authorTeam":"Baker","author":["Baker"],"year":"1940"}}}],"positions":{"0":["uninomial",2],"3":["author_word",8],"9":["year",13]}}}
34
+ Ja Uéno 1955|{"scientificName":{"parsed":true,"verbatim":"Ja U\u00e9no 1955","normalized":"Ja U\u00e9no 1955","canonical":"Ja","hybrid":false,"details":[{"uninomial":{"epitheton":"Ja","authorship":"U\u00e9no 1955","basionymAuthorTeam":{"authorTeam":"U\u00e9no","author":["U\u00e9no"],"year":"1955"}}}],"positions":{"0":["uninomial",2],"3":["author_word",7],"8":["year",12]}}}
35
+ Zu Walters & Fitch 1960|{"scientificName":{"parsed":true,"verbatim":"Zu Walters & Fitch 1960","normalized":"Zu Walters et Fitch 1960","canonical":"Zu","hybrid":false,"details":[{"uninomial":{"epitheton":"Zu","authorship":"Walters & Fitch 1960","basionymAuthorTeam":{"authorTeam":"Walters & Fitch","author":["Walters","Fitch"],"year":"1960"}}}],"positions":{"0":["uninomial",2],"3":["author_word",10],"13":["author_word",18],"19":["year",23]}}}
36
+ La Bleszynski 1966|{"scientificName":{"parsed":true,"verbatim":"La Bleszynski 1966","normalized":"La Bleszynski 1966","canonical":"La","hybrid":false,"details":[{"uninomial":{"epitheton":"La","authorship":"Bleszynski 1966","basionymAuthorTeam":{"authorTeam":"Bleszynski","author":["Bleszynski"],"year":"1966"}}}],"positions":{"0":["uninomial",2],"3":["author_word",13],"14":["year",18]}}}
37
+ Qu Durkoop|{"scientificName":{"parsed":true,"verbatim":"Qu Durkoop","normalized":"Qu Durkoop","canonical":"Qu","hybrid":false,"details":[{"uninomial":{"epitheton":"Qu","authorship":"Durkoop","basionymAuthorTeam":{"authorTeam":"Durkoop","author":["Durkoop"]}}}],"positions":{"0":["uninomial",2],"3":["author_word",10]}}}
38
+ As Slipinski 1982|{"scientificName":{"parsed":true,"verbatim":"As Slipinski 1982","normalized":"As Slipinski 1982","canonical":"As","hybrid":false,"details":[{"uninomial":{"epitheton":"As","authorship":"Slipinski 1982","basionymAuthorTeam":{"authorTeam":"Slipinski","author":["Slipinski"],"year":"1982"}}}],"positions":{"0":["uninomial",2],"3":["author_word",12],"13":["year",17]}}}
39
+ Ba Solem 1983|{"scientificName":{"parsed":true,"verbatim":"Ba Solem 1983","normalized":"Ba Solem 1983","canonical":"Ba","hybrid":false,"details":[{"uninomial":{"epitheton":"Ba","authorship":"Solem 1983","basionymAuthorTeam":{"authorTeam":"Solem","author":["Solem"],"year":"1983"}}}],"positions":{"0":["uninomial",2],"3":["author_word",8],"9":["year",13]}}}
40
+
41
+ #canonical binomial
42
+ Pseudocercospora dendrobii|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora dendrobii","normalized":"Pseudocercospora dendrobii","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"dendrobii"}}],"positions":{"0":["genus",16],"21":["species",30]}}}
43
+
44
+ #binomial with author and a year
45
+ Platypus bicaudatulus Schedl 1935|{"scientificName":{"parsed":true,"verbatim":"Platypus bicaudatulus Schedl 1935","normalized":"Platypus bicaudatulus Schedl 1935","canonical":"Platypus bicaudatulus","hybrid":false,"details":[{"genus":{"epitheton":"Platypus"},"species":{"epitheton":"bicaudatulus","authorship":"Schedl 1935","basionymAuthorTeam":{"authorTeam":"Schedl","author":["Schedl"],"year":"1935"}}}],"positions":{"0":["genus",8],"9":["species",21],"22":["author_word",28],"29":["year",33]}}}
46
+ Platypus bicaudatulus Schedl, 1935h|{"scientificName":{"parsed":true,"verbatim":"Platypus bicaudatulus Schedl, 1935h","normalized":"Platypus bicaudatulus Schedl 1935","canonical":"Platypus bicaudatulus","hybrid":false,"details":[{"genus":{"epitheton":"Platypus"},"species":{"epitheton":"bicaudatulus","authorship":"Schedl, 1935h","basionymAuthorTeam":{"authorTeam":"Schedl","author":["Schedl"],"year":"1935"}}}],"positions":{"0":["genus",8],"9":["species",21],"22":["author_word",28],"30":["year",35]}}}
47
+
48
+ # whitespace names (rare, only ~50 cases)
49
+ #TODO Donatia novae zelandiae Hook.f.
50
+ #TODO Donatia novae-zelandiae Hook.f.
51
+
52
+ #binomial with several authours
53
+ Pseudocercospora dendrobii U. Braun & Crous|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora dendrobii U. Braun & Crous","normalized":"Pseudocercospora dendrobii U. Braun et Crous","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"dendrobii","authorship":"U. Braun & Crous","basionymAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"]}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",29],"30":["author_word",35],"38":["author_word",43]}}}
54
+ Pseudocercospora dendrobii U. Braun et Crous|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora dendrobii U. Braun et Crous","normalized":"Pseudocercospora dendrobii U. Braun et Crous","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"dendrobii","authorship":"U. Braun et Crous","basionymAuthorTeam":{"authorTeam":"U. Braun et Crous","author":["U. Braun","Crous"]}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",29],"30":["author_word",35],"39":["author_word",44]}}}
55
+ Pseudocercospora dendrobii U. Braun and Crous|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora dendrobii U. Braun and Crous","normalized":"Pseudocercospora dendrobii U. Braun et Crous","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"dendrobii","authorship":"U. Braun and Crous","basionymAuthorTeam":{"authorTeam":"U. Braun and Crous","author":["U. Braun","Crous"]}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",29],"30":["author_word",35],"40":["author_word",45]}}}
56
+
57
+ #binomial with several authors and a year
58
+ Pseudocercospora dendrobii U. Braun & Crous 2003|{"scientificName":{"parsed":true,"verbatim":"Pseudocercospora dendrobii U. Braun & Crous 2003","normalized":"Pseudocercospora dendrobii U. Braun et Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"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]}}}
59
+
60
+ #iczn: species name with subgenus
61
+ Hegeter (Hegeter) intercedens Lindberg H 1950|{"scientificName":{"parsed":true,"verbatim":"Hegeter (Hegeter) intercedens Lindberg H 1950","normalized":"Hegeter (Hegeter) intercedens Lindberg H 1950","canonical":"Hegeter intercedens","hybrid":false,"details":[{"genus":{"epitheton":"Hegeter"},"subgenus":{"epitheton":"Hegeter"},"species":{"epitheton":"intercedens","authorship":"Lindberg H 1950","basionymAuthorTeam":{"authorTeam":"Lindberg H","author":["Lindberg H"],"year":"1950"}}}],"positions":{"0":["genus",7],"9":["subgenus",16],"18":["species",29],"30":["author_word",38],"39":["author_word",40],"41":["year",45]}}}
62
+
63
+ #genus with question mark
64
+ Ferganoconcha? oblonga|{"scientificName":{"parsed":true,"verbatim":"Ferganoconcha? oblonga","normalized":"Ferganoconcha oblonga","canonical":"Ferganoconcha oblonga","hybrid":false,"details":[{"genus":{"epitheton":"Ferganoconcha"},"species":{"epitheton":"oblonga"}}],"positions":{"0":["genus",14],"15":["species",22]}}}
65
+
66
+ #unicode utf8 characters in name
67
+ Rühlella|{"scientificName":{"parsed":true,"verbatim":"R\u00fchlella","normalized":"R\u00fchlella","canonical":"R\u00fchlella","hybrid":false,"details":[{"uninomial":{"epitheton":"R\u00fchlella"}}],"positions":{"0":["uninomial",8]}}}
68
+ Sténométope laevissimus Bibron 1855|{"scientificName":{"parsed":true,"verbatim":"St\u00e9nom\u00e9tope laevissimus Bibron 1855","normalized":"St\u00e9nom\u00e9tope laevissimus Bibron 1855","canonical":"St\u00e9nom\u00e9tope laevissimus","hybrid":false,"details":[{"genus":{"epitheton":"St\u00e9nom\u00e9tope"},"species":{"epitheton":"laevissimus","authorship":"Bibron 1855","basionymAuthorTeam":{"authorTeam":"Bibron","author":["Bibron"],"year":"1855"}}}],"positions":{"0":["genus",11],"12":["species",23],"24":["author_word",30],"31":["year",35]}}}
69
+ Choriozopella trägårdhi Lawrence, 1947|{"scientificName":{"parsed":true,"verbatim":"Choriozopella tr\u00e4g\u00e5rdhi Lawrence, 1947","normalized":"Choriozopella tr\u00e4g\u00e5rdhi Lawrence 1947","canonical":"Choriozopella tr\u00e4g\u00e5rdhi","hybrid":false,"details":[{"genus":{"epitheton":"Choriozopella"},"species":{"epitheton":"tr\u00e4g\u00e5rdhi","authorship":"Lawrence, 1947","basionymAuthorTeam":{"authorTeam":"Lawrence","author":["Lawrence"],"year":"1947"}}}],"positions":{"0":["genus",13],"14":["species",23],"24":["author_word",32],"34":["year",38]}}}
70
+
71
+ #digraph unicode characters
72
+ Læptura laetifica Dow, 1913|{"scientificName":{"parsed":true,"verbatim":"L\u00e6ptura laetifica Dow, 1913","normalized":"Laeptura laetifica Dow 1913","canonical":"Laeptura laetifica","hybrid":false,"details":[{"genus":{"epitheton":"Laeptura"},"species":{"epitheton":"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]}}}
73
+ Leptura lætifica Dow, 1913|{"scientificName":{"parsed":true,"verbatim":"Leptura l\u00e6tifica Dow, 1913","normalized":"Leptura laetifica Dow 1913","canonical":"Leptura laetifica","hybrid":false,"details":[{"genus":{"epitheton":"Leptura"},"species":{"epitheton":"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]}}}
74
+ Leptura leætifica Dow, 1913|{"scientificName":{"parsed":true,"verbatim":"Leptura le\u00e6tifica Dow, 1913","normalized":"Leptura leaetifica Dow 1913","canonical":"Leptura leaetifica","hybrid":false,"details":[{"genus":{"epitheton":"Leptura"},"species":{"epitheton":"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]}}}
75
+ Leæptura laetifica Dow, 1913|{"scientificName":{"parsed":true,"verbatim":"Le\u00e6ptura laetifica Dow, 1913","normalized":"Leaeptura laetifica Dow 1913","canonical":"Leaeptura laetifica","hybrid":false,"details":[{"genus":{"epitheton":"Leaeptura"},"species":{"epitheton":"laetifica","authorship":"Dow, 1913","basionymAuthorTeam":{"authorTeam":"Dow","author":["Dow"],"year":"1913"}}}],"positions":{"0":["genus",8],"9":["species",18],"19":["author_word",22],"24":["year",28]}}}
76
+ Leœptura laetifica Dow, 1913|{"scientificName":{"parsed":true,"verbatim":"Le\u0153ptura laetifica Dow, 1913","normalized":"Leoeptura laetifica Dow 1913","canonical":"Leoeptura laetifica","hybrid":false,"details":[{"genus":{"epitheton":"Leoeptura"},"species":{"epitheton":"laetifica","authorship":"Dow, 1913","basionymAuthorTeam":{"authorTeam":"Dow","author":["Dow"],"year":"1913"}}}],"positions":{"0":["genus",8],"9":["species",18],"19":["author_word",22],"24":["year",28]}}}
77
+ Ærenea cognata Lacordaire, 1872|{"scientificName":{"parsed":true,"verbatim":"\u00c6renea cognata Lacordaire, 1872","normalized":"Aerenea cognata Lacordaire 1872","canonical":"Aerenea cognata","hybrid":false,"details":[{"genus":{"epitheton":"Aerenea"},"species":{"epitheton":"cognata","authorship":"Lacordaire, 1872","basionymAuthorTeam":{"authorTeam":"Lacordaire","author":["Lacordaire"],"year":"1872"}}}],"positions":{"0":["genus",6],"7":["species",14],"15":["author_word",25],"27":["year",31]}}}
78
+ Œdicnemus capensis|{"scientificName":{"parsed":true,"verbatim":"\u0152dicnemus capensis","normalized":"Oedicnemus capensis","canonical":"Oedicnemus capensis","hybrid":false,"details":[{"genus":{"epitheton":"Oedicnemus"},"species":{"epitheton":"capensis"}}],"positions":{"0":["genus",9],"10":["species",18]}}}
79
+ Œnanthe œnanthe|{"scientificName":{"parsed":true,"verbatim":"\u0152nanthe \u0153nanthe","normalized":"Oenanthe oenanthe","canonical":"Oenanthe oenanthe","hybrid":false,"details":[{"genus":{"epitheton":"Oenanthe"},"species":{"epitheton":"oenanthe"}}],"positions":{"0":["genus",7],"8":["species",15]}}}
80
+
81
+ #basionym in parenthesis
82
+ Zophosis persis (Chatanay, 1914)|{"scientificName":{"parsed":true,"verbatim":"Zophosis persis (Chatanay, 1914)","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"epitheton":"Zophosis"},"species":{"epitheton":"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]}}}
83
+ Zophosis persis (Chatanay 1914)|{"scientificName":{"parsed":true,"verbatim":"Zophosis persis (Chatanay 1914)","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"epitheton":"Zophosis"},"species":{"epitheton":"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]}}}
84
+ Zophosis persis (Chatanay), 1914|{"scientificName":{"parsed":true,"verbatim":"Zophosis persis (Chatanay), 1914","normalized":"Zophosis persis (Chatanay 1914)","canonical":"Zophosis persis","hybrid":false,"details":[{"genus":{"epitheton":"Zophosis"},"species":{"epitheton":"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]}}}
85
+
86
+ #binomial with basionym and combination authors
87
+ Pseudocercospora dendrobii(H.C. Burnett)U. Braun & Crous 2003|{"scientificName":{"parsed":true,"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":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"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]}}}
88
+ Pseudocercospora dendrobii(H.C. Burnett, 1873)U. Braun & Crous 2003|{"scientificName":{"parsed":true,"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":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"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]}}}
89
+ Pseudocercospora dendrobii(H.C. Burnett 1873)U. Braun & Crous , 2003|{"scientificName":{"parsed":true,"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":{"epitheton":"Pseudocercospora"},"species":{"epitheton":"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]}}}
90
+
91
+ #infraspecies without rank
92
+ Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true,"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":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum"},"infraspecies":[{"epitheton":"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]}}}
93
+ Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true,"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 Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"epitheton":"Hydnellum"},"subgenus":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum"},"infraspecies":[{"epitheton":"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":["subgenus",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]}}}
94
+ Hydnellum scrobiculatum zonatum|{"scientificName":{"parsed":true,"verbatim":"Hydnellum scrobiculatum zonatum","normalized":"Hydnellum scrobiculatum zonatum","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum"},"infraspecies":[{"epitheton":"zonatum","rank":"n\/a"}]}],"positions":{"0":["genus",9],"10":["species",23],"24":["infraspecies",31]}}}
95
+
96
+ #infraspecies with rank
97
+ Aus bus Linn. var. bus|{"scientificName":{"parsed":true,"verbatim":"Aus bus Linn. var. bus","normalized":"Aus bus Linn. var. bus","canonical":"Aus bus bus","hybrid":false,"details":[{"genus":{"epitheton":"Aus"},"species":{"epitheton":"bus","authorship":"Linn.","basionymAuthorTeam":{"authorTeam":"Linn.","author":["Linn."]}},"infraspecies":[{"epitheton":"bus","rank":"var."}]}],"positions":{"0":["genus",3],"4":["species",7],"8":["author_word",13],"19":["infraspecies",22]}}}
98
+ Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987|{"scientificName":{"parsed":true,"verbatim":"Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987","normalized":"Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987","canonical":"Agalinis purpurea borealis","hybrid":false,"details":[{"genus":{"epitheton":"Agalinis"},"species":{"epitheton":"purpurea","authorship":"(L.) Briton","combinationAuthorTeam":{"authorTeam":"Briton","author":["Briton"]},"basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}},"infraspecies":[{"epitheton":"borealis","rank":"var.","authorship":"(Berg.) Peterson 1987","combinationAuthorTeam":{"authorTeam":"Peterson","author":["Peterson"],"year":"1987"},"basionymAuthorTeam":{"authorTeam":"Berg.","author":["Berg."]}}]}],"positions":{"0":["genus",8],"9":["species",17],"19":["author_word",21],"23":["author_word",29],"35":["infraspecies",43],"45":["author_word",50],"52":["author_word",60],"61":["year",65]}}}
99
+ Callideriphus flavicollis morph. reductus Fuchs 1961|{"scientificName":{"parsed":true,"verbatim":"Callideriphus flavicollis morph. reductus Fuchs 1961","normalized":"Callideriphus flavicollis morph. reductus Fuchs 1961","canonical":"Callideriphus flavicollis reductus","hybrid":false,"details":[{"genus":{"epitheton":"Callideriphus"},"species":{"epitheton":"flavicollis"},"infraspecies":[{"epitheton":"reductus","rank":"morph.","authorship":"Fuchs 1961","basionymAuthorTeam":{"authorTeam":"Fuchs","author":["Fuchs"],"year":"1961"}}]}],"positions":{"0":["genus",13],"14":["species",25],"33":["infraspecies",41],"42":["author_word",47],"48":["year",52]}}}
100
+ Caulerpa cupressoides forma nuda|{"scientificName":{"parsed":true,"verbatim":"Caulerpa cupressoides forma nuda","normalized":"Caulerpa cupressoides f. nuda","canonical":"Caulerpa cupressoides nuda","hybrid":false,"details":[{"genus":{"epitheton":"Caulerpa"},"species":{"epitheton":"cupressoides"},"infraspecies":[{"epitheton":"nuda","rank":"f."}]}],"positions":{"0":["genus",8],"9":["species",21],"28":["infraspecies",32]}}}
101
+ Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó|{"scientificName":{"parsed":true,"verbatim":"Chlorocyperus glaber form. fasciculariforme (Lojac.) So\u00f3","normalized":"Chlorocyperus glaber f. fasciculariforme (Lojac.) So\u00f3","canonical":"Chlorocyperus glaber fasciculariforme","hybrid":false,"details":[{"genus":{"epitheton":"Chlorocyperus"},"species":{"epitheton":"glaber"},"infraspecies":[{"epitheton":"fasciculariforme","rank":"f.","authorship":"(Lojac.) So\u00f3","combinationAuthorTeam":{"authorTeam":"So\u00f3","author":["So\u00f3"]},"basionymAuthorTeam":{"authorTeam":"Lojac.","author":["Lojac."]}}]}],"positions":{"0":["genus",13],"14":["species",20],"27":["infraspecies",43],"45":["author_word",51],"53":["author_word",56]}}}
102
+ Sphaerotheca fuliginea f. dahliae Movss. 1967|{"scientificName":{"parsed":true,"verbatim":"Sphaerotheca fuliginea f. dahliae Movss. 1967","normalized":"Sphaerotheca fuliginea f. dahliae Movss. 1967","canonical":"Sphaerotheca fuliginea dahliae","hybrid":false,"details":[{"genus":{"epitheton":"Sphaerotheca"},"species":{"epitheton":"fuliginea"},"infraspecies":[{"epitheton":"dahliae","rank":"f.","authorship":"Movss. 1967","basionymAuthorTeam":{"authorTeam":"Movss.","author":["Movss."],"year":"1967"}}]}],"positions":{"0":["genus",12],"16":["species",25],"36":["infraspecies",43],"47":["author_word",53],"58":["year",62]}}}
103
+ Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":{"parsed":true,"verbatim":"Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay","normalized":"Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay","canonical":"Polypodium vulgare mantoniae","hybrid":false,"details":[{"genus":{"epitheton":"Polypodium"},"species":{"epitheton":"vulgare"},"infraspecies":[{"epitheton":"mantoniae","rank":"nothosubsp.","authorship":"(Rothm.) Schidlay","combinationAuthorTeam":{"authorTeam":"Schidlay","author":["Schidlay"]},"basionymAuthorTeam":{"authorTeam":"Rothm.","author":["Rothm."]}}]}],"positions":{"0":["genus",10],"11":["species",18],"31":["infraspecies",40],"42":["author_word",48],"50":["author_word",58]}}}
104
+
105
+ #infraspecies_multiple
106
+ Hydnellum scrobiculatum var. zonatum f. parvum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true,"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":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum"},"infraspecies":[{"epitheton":"zonatum","rank":"var."},{"epitheton":"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"]}}]}],"positions":{"0":["genus",9],"10":["species",23],"29":["infraspecies",36],"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]}}}
107
+ Senecio fuchsii C.C.Gmel. subsp. fuchsii var. expansus (Boiss. & Heldr.) Hayek|{"scientificName":{"parsed":true,"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":{"epitheton":"Senecio"},"species":{"epitheton":"fuchsii","authorship":"C.C.Gmel.","basionymAuthorTeam":{"authorTeam":"C.C.Gmel.","author":["C.C.Gmel."]}},"infraspecies":[{"epitheton":"fuchsii","rank":"subsp."},{"epitheton":"expansus","rank":"var.","authorship":"(Boiss. & Heldr.) Hayek","combinationAuthorTeam":{"authorTeam":"Hayek","author":["Hayek"]},"basionymAuthorTeam":{"authorTeam":"Boiss. & Heldr.","author":["Boiss.","Heldr."]}}]}],"positions":{"0":["genus",7],"8":["species",15],"16":["author_word",25],"33":["infraspecies",40],"46":["infraspecies",54],"56":["author_word",62],"65":["author_word",71],"73":["author_word",78]}}}
108
+ Senecio fuchsii C.C.Gmel. subsp. fuchsii var. fuchsii|{"scientificName":{"parsed":true,"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":{"epitheton":"Senecio"},"species":{"epitheton":"fuchsii","authorship":"C.C.Gmel.","basionymAuthorTeam":{"authorTeam":"C.C.Gmel.","author":["C.C.Gmel."]}},"infraspecies":[{"epitheton":"fuchsii","rank":"subsp."},{"epitheton":"fuchsii","rank":"var."}]}],"positions":{"0":["genus",7],"8":["species",15],"16":["author_word",25],"33":["infraspecies",40],"46":["infraspecies",53]}}}
109
+
110
+ #unknown authorship
111
+ Tragacantha leporina (?) Kuntze|{"scientificName":{"parsed":true,"verbatim":"Tragacantha leporina (?) Kuntze","normalized":"Tragacantha leporina (?) Kuntze","canonical":"Tragacantha leporina","hybrid":false,"details":[{"genus":{"epitheton":"Tragacantha"},"species":{"epitheton":"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]}}}
112
+ Lachenalia tricolor var. nelsonii (auct.) Baker|{"scientificName":{"parsed":true,"verbatim":"Lachenalia tricolor var. nelsonii (auct.) Baker","normalized":"Lachenalia tricolor var. nelsonii (auct.) Baker","canonical":"Lachenalia tricolor nelsonii","hybrid":false,"details":[{"genus":{"epitheton":"Lachenalia"},"species":{"epitheton":"tricolor"},"infraspecies":[{"epitheton":"nelsonii","rank":"var.","authorship":"(auct.) Baker","combinationAuthorTeam":{"authorTeam":"Baker","author":["Baker"]},"basionymAuthorTeam":{"authorTeam":"auct.","author":["unknown"]}}]}],"positions":{"0":["genus",10],"11":["species",19],"25":["infraspecies",33],"35":["unknown_author",40],"42":["author_word",47]}}}
113
+ Lachenalia tricolor var. nelsonii (anon.) Baker|{"scientificName":{"parsed":true,"verbatim":"Lachenalia tricolor var. nelsonii (anon.) Baker","normalized":"Lachenalia tricolor var. nelsonii (anon.) Baker","canonical":"Lachenalia tricolor nelsonii","hybrid":false,"details":[{"genus":{"epitheton":"Lachenalia"},"species":{"epitheton":"tricolor"},"infraspecies":[{"epitheton":"nelsonii","rank":"var.","authorship":"(anon.) Baker","combinationAuthorTeam":{"authorTeam":"Baker","author":["Baker"]},"basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}]}],"positions":{"0":["genus",10],"11":["species",19],"25":["infraspecies",33],"35":["unknown_author",40],"42":["author_word",47]}}}
114
+ Lachenalia tricolor var. nelsonii (ht.) Baker|{"scientificName":{"parsed":true,"verbatim":"Lachenalia tricolor var. nelsonii (ht.) Baker","normalized":"Lachenalia tricolor var. nelsonii (ht.) Baker","canonical":"Lachenalia tricolor nelsonii","hybrid":false,"details":[{"genus":{"epitheton":"Lachenalia"},"species":{"epitheton":"tricolor"},"infraspecies":[{"epitheton":"nelsonii","rank":"var.","authorship":"(ht.) Baker","combinationAuthorTeam":{"authorTeam":"Baker","author":["Baker"]},"basionymAuthorTeam":{"authorTeam":"ht.","author":["unknown"]}}]}],"positions":{"0":["genus",10],"11":["species",19],"25":["infraspecies",33],"35":["unknown_author",38],"40":["author_word",45]}}}
115
+ Lachenalia tricolor var. nelsonii (hort.) Baker|{"scientificName":{"parsed":true,"verbatim":"Lachenalia tricolor var. nelsonii (hort.) Baker","normalized":"Lachenalia tricolor var. nelsonii (hort.) Baker","canonical":"Lachenalia tricolor nelsonii","hybrid":false,"details":[{"genus":{"epitheton":"Lachenalia"},"species":{"epitheton":"tricolor"},"infraspecies":[{"epitheton":"nelsonii","rank":"var.","authorship":"(hort.) Baker","combinationAuthorTeam":{"authorTeam":"Baker","author":["Baker"]},"basionymAuthorTeam":{"authorTeam":"hort.","author":["unknown"]}}]}],"positions":{"0":["genus",10],"11":["species",19],"25":["infraspecies",33],"35":["unknown_author",40],"42":["author_word",47]}}}
116
+ Puya acris ht.|{"scientificName":{"parsed":true,"verbatim":"Puya acris ht.","normalized":"Puya acris ht.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"epitheton":"Puya"},"species":{"epitheton":"acris","authorship":"ht.","basionymAuthorTeam":{"authorTeam":"ht.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",14]}}}
117
+ Puya acris anon.|{"scientificName":{"parsed":true,"verbatim":"Puya acris anon.","normalized":"Puya acris anon.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"epitheton":"Puya"},"species":{"epitheton":"acris","authorship":"anon.","basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
118
+ Puya acris hort.|{"scientificName":{"parsed":true,"verbatim":"Puya acris hort.","normalized":"Puya acris hort.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"epitheton":"Puya"},"species":{"epitheton":"acris","authorship":"hort.","basionymAuthorTeam":{"authorTeam":"hort.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
119
+ Puya acris auct.|{"scientificName":{"parsed":true,"verbatim":"Puya acris auct.","normalized":"Puya acris auct.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"epitheton":"Puya"},"species":{"epitheton":"acris","authorship":"auct.","basionymAuthorTeam":{"authorTeam":"auct.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
120
+
121
+ #miscellaneous names
122
+ Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet|{"scientificName":{"parsed":true,"verbatim":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet","normalized":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter et Burdet","canonical":"Fagus sylvatica orientalis","hybrid":false,"details":[{"genus":{"epitheton":"Fagus"},"species":{"epitheton":"sylvatica"},"infraspecies":[{"epitheton":"orientalis","rank":"subsp.","authorship":"(Lipsky) Greuter & Burdet","combinationAuthorTeam":{"authorTeam":"Greuter & Burdet","author":["Greuter","Burdet"]},"basionymAuthorTeam":{"authorTeam":"Lipsky","author":["Lipsky"]}}]}],"positions":{"0":["genus",5],"6":["species",15],"23":["infraspecies",33],"35":["author_word",41],"43":["author_word",50],"53":["author_word",59]}}}
123
+ Stagonospora polyspora M.T. Lucas & Sousa da Câmara 1934|{"scientificName":{"parsed":true,"verbatim":"Stagonospora polyspora M.T. Lucas & Sousa da C\u00e2mara 1934","normalized":"Stagonospora polyspora M.T. Lucas et Sousa da C\u00e2mara 1934","canonical":"Stagonospora polyspora","hybrid":false,"details":[{"genus":{"epitheton":"Stagonospora"},"species":{"epitheton":"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]}}}
124
+ Stagonospora polyspora M.T. Lucas et Sousa da Câmara 1934|{"scientificName":{"parsed":true,"verbatim":"Stagonospora polyspora M.T. Lucas et Sousa da C\u00e2mara 1934","normalized":"Stagonospora polyspora M.T. Lucas et Sousa da C\u00e2mara 1934","canonical":"Stagonospora polyspora","hybrid":false,"details":[{"genus":{"epitheton":"Stagonospora"},"species":{"epitheton":"polyspora","authorship":"M.T. Lucas et Sousa da C\u00e2mara 1934","basionymAuthorTeam":{"authorTeam":"M.T. Lucas et 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],"37":["author_word",42],"43":["author_word",45],"46":["author_word",52],"53":["year",57]}}}
125
+ Cladoniicola staurospora Diederich, van den Boom & Aptroot 2001|{"scientificName":{"parsed":true,"verbatim":"Cladoniicola staurospora Diederich, van den Boom & Aptroot 2001","normalized":"Cladoniicola staurospora Diederich, van den Boom et Aptroot 2001","canonical":"Cladoniicola staurospora","hybrid":false,"details":[{"genus":{"epitheton":"Cladoniicola"},"species":{"epitheton":"staurospora","authorship":"Diederich, van den Boom & Aptroot 2001","basionymAuthorTeam":{"authorTeam":"Diederich, van den Boom & Aptroot","author":["Diederich","van den Boom","Aptroot"],"year":"2001"}}}],"positions":{"0":["genus",12],"13":["species",24],"25":["author_word",34],"36":["author_word",39],"40":["author_word",43],"44":["author_word",48],"51":["author_word",58],"59":["year",63]}}}
126
+ Yarrowia lipolytica var. lipolytica (Wick., Kurtzman & E.A. Herrm.) Van der Walt & Arx 1981|{"scientificName":{"parsed":true,"verbatim":"Yarrowia lipolytica var. lipolytica (Wick., Kurtzman & E.A. Herrm.) Van der Walt & Arx 1981","normalized":"Yarrowia lipolytica var. lipolytica (Wick., Kurtzman et E.A. Herrm.) Van der Walt et Arx 1981","canonical":"Yarrowia lipolytica lipolytica","hybrid":false,"details":[{"genus":{"epitheton":"Yarrowia"},"species":{"epitheton":"lipolytica"},"infraspecies":[{"epitheton":"lipolytica","rank":"var.","authorship":"(Wick., Kurtzman & E.A. Herrm.) Van der Walt & Arx 1981","combinationAuthorTeam":{"authorTeam":"Van der Walt & Arx","author":["Van der Walt","Arx"],"year":"1981"},"basionymAuthorTeam":{"authorTeam":"Wick., Kurtzman & E.A. Herrm.","author":["Wick.","Kurtzman","E.A. Herrm."]}}]}],"positions":{"0":["genus",8],"9":["species",19],"25":["infraspecies",35],"37":["author_word",42],"44":["author_word",52],"55":["author_word",59],"60":["author_word",66],"68":["author_word",71],"72":["author_word",75],"76":["author_word",80],"83":["author_word",86],"87":["year",91]}}}
127
+ Physalospora rubiginosa (Fr.) anon.|{"scientificName":{"parsed":true,"verbatim":"Physalospora rubiginosa (Fr.) anon.","normalized":"Physalospora rubiginosa (Fr.) anon.","canonical":"Physalospora rubiginosa","hybrid":false,"details":[{"genus":{"epitheton":"Physalospora"},"species":{"epitheton":"rubiginosa","authorship":"(Fr.) anon.","combinationAuthorTeam":{"authorTeam":"anon.","author":["unknown"]},"basionymAuthorTeam":{"authorTeam":"Fr.","author":["Fr."]}}}],"positions":{"0":["genus",12],"13":["species",23],"25":["author_word",28],"30":["unknown_author",35]}}}
128
+ Pleurotus ëous (Berk.) Sacc. 1887|{"scientificName":{"parsed":true,"verbatim":"Pleurotus \u00ebous (Berk.) Sacc. 1887","normalized":"Pleurotus \u00ebous (Berk.) Sacc. 1887","canonical":"Pleurotus \u00ebous","hybrid":false,"details":[{"genus":{"epitheton":"Pleurotus"},"species":{"epitheton":"\u00ebous","authorship":"(Berk.) Sacc. 1887","combinationAuthorTeam":{"authorTeam":"Sacc.","author":["Sacc."],"year":"1887"},"basionymAuthorTeam":{"authorTeam":"Berk.","author":["Berk."]}}}],"positions":{"0":["genus",9],"10":["species",14],"16":["author_word",21],"23":["author_word",28],"29":["year",33]}}}
129
+ Lecanora wetmorei Śliwa 2004|{"scientificName":{"parsed":true,"verbatim":"Lecanora wetmorei \u015aliwa 2004","normalized":"Lecanora wetmorei \u015aliwa 2004","canonical":"Lecanora wetmorei","hybrid":false,"details":[{"genus":{"epitheton":"Lecanora"},"species":{"epitheton":"wetmorei","authorship":"\u015aliwa 2004","basionymAuthorTeam":{"authorTeam":"\u015aliwa","author":["\u015aliwa"],"year":"2004"}}}],"positions":{"0":["genus",8],"9":["species",17],"18":["author_word",23],"24":["year",28]}}}
130
+ Calicium furfuraceum * furfuraceum (L.) Pers. 1797|{"scientificName":{"parsed":true,"verbatim":"Calicium furfuraceum * furfuraceum (L.) Pers. 1797","normalized":"Calicium furfuraceum * furfuraceum (L.) Pers. 1797","canonical":"Calicium furfuraceum furfuraceum","hybrid":false,"details":[{"genus":{"epitheton":"Calicium"},"species":{"epitheton":"furfuraceum"},"infraspecies":[{"epitheton":"furfuraceum","rank":"*","authorship":"(L.) Pers. 1797","combinationAuthorTeam":{"authorTeam":"Pers.","author":["Pers."],"year":"1797"},"basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}]}],"positions":{"0":["genus",8],"9":["species",20],"23":["infraspecies",34],"36":["author_word",38],"40":["author_word",45],"46":["year",50]}}}
131
+ Exobasidium vaccinii ** andromedae (P. Karst.) P. Karst. 1882|{"scientificName":{"parsed":true,"verbatim":"Exobasidium vaccinii ** andromedae (P. Karst.) P. Karst. 1882","normalized":"Exobasidium vaccinii ** andromedae (P. Karst.) P. Karst. 1882","canonical":"Exobasidium vaccinii andromedae","hybrid":false,"details":[{"genus":{"epitheton":"Exobasidium"},"species":{"epitheton":"vaccinii"},"infraspecies":[{"epitheton":"andromedae","rank":"**","authorship":"(P. Karst.) P. Karst. 1882","combinationAuthorTeam":{"authorTeam":"P. Karst.","author":["P. Karst."],"year":"1882"},"basionymAuthorTeam":{"authorTeam":"P. Karst.","author":["P. Karst."]}}]}],"positions":{"0":["genus",11],"12":["species",20],"24":["infraspecies",34],"36":["author_word",38],"39":["author_word",45],"47":["author_word",49],"50":["author_word",56],"57":["year",61]}}}
132
+ Urceolaria scruposa **** clausa Flot. 1849|{"scientificName":{"parsed":true,"verbatim":"Urceolaria scruposa **** clausa Flot. 1849","normalized":"Urceolaria scruposa **** clausa Flot. 1849","canonical":"Urceolaria scruposa clausa","hybrid":false,"details":[{"genus":{"epitheton":"Urceolaria"},"species":{"epitheton":"scruposa"},"infraspecies":[{"epitheton":"clausa","rank":"****","authorship":"Flot. 1849","basionymAuthorTeam":{"authorTeam":"Flot.","author":["Flot."],"year":"1849"}}]}],"positions":{"0":["genus",10],"11":["species",19],"25":["infraspecies",31],"32":["author_word",37],"38":["year",42]}}}
133
+ Cortinarius angulatus B gracilescens Fr. 1838|{"scientificName":{"parsed":true,"verbatim":"Cortinarius angulatus B gracilescens Fr. 1838","normalized":"Cortinarius angulatus B gracilescens Fr. 1838","canonical":"Cortinarius angulatus gracilescens","hybrid":false,"details":[{"genus":{"epitheton":"Cortinarius"},"species":{"epitheton":"angulatus","authorship":"B","basionymAuthorTeam":{"authorTeam":"B","author":["B"]}},"infraspecies":[{"epitheton":"gracilescens","rank":"n\/a","authorship":"Fr. 1838","basionymAuthorTeam":{"authorTeam":"Fr.","author":["Fr."],"year":"1838"}}]}],"positions":{"0":["genus",11],"12":["species",21],"22":["author_word",23],"24":["infraspecies",36],"37":["author_word",40],"41":["year",45]}}}
134
+ Cyathicula scelobelonium|{"scientificName":{"parsed":true,"verbatim":"Cyathicula scelobelonium","normalized":"Cyathicula scelobelonium","canonical":"Cyathicula scelobelonium","hybrid":false,"details":[{"genus":{"epitheton":"Cyathicula"},"species":{"epitheton":"scelobelonium"}}],"positions":{"0":["genus",10],"11":["species",24]}}}
135
+ Tuber liui A S. Xu 1999|{"scientificName":{"parsed":true,"verbatim":"Tuber liui A S. Xu 1999","normalized":"Tuber liui A S. Xu 1999","canonical":"Tuber liui","hybrid":false,"details":[{"genus":{"epitheton":"Tuber"},"species":{"epitheton":"liui","authorship":"A S. Xu 1999","basionymAuthorTeam":{"authorTeam":"A S. Xu","author":["A S. Xu"],"year":"1999"}}}],"positions":{"0":["genus",5],"6":["species",10],"11":["author_word",1],"13":["author_word",2],"16":["author_word",2],"19":["year",23]}}}
136
+ Xylaria potentillae A S. Xu|{"scientificName":{"parsed":true,"verbatim":"Xylaria potentillae A S. Xu","normalized":"Xylaria potentillae A S. Xu","canonical":"Xylaria potentillae","hybrid":false,"details":[{"genus":{"epitheton":"Xylaria"},"species":{"epitheton":"potentillae","authorship":"A S. Xu","basionymAuthorTeam":{"authorTeam":"A S. Xu","author":["A S. Xu"]}}}],"positions":{"0":["genus",7],"8":["species",19],"20":["author_word",1],"22":["author_word",2],"25":["author_word",2]}}}
137
+ Agaricus squamula Berk. & M.A. Curtis 1860|{"scientificName":{"parsed":true,"verbatim":"Agaricus squamula Berk. & M.A. Curtis 1860","normalized":"Agaricus squamula Berk. et M.A. Curtis 1860","canonical":"Agaricus squamula","hybrid":false,"details":[{"genus":{"epitheton":"Agaricus"},"species":{"epitheton":"squamula","authorship":"Berk. & M.A. Curtis 1860","basionymAuthorTeam":{"authorTeam":"Berk. & M.A. Curtis","author":["Berk.","M.A. Curtis"],"year":"1860"}}}],"positions":{"0":["genus",8],"9":["species",17],"18":["author_word",23],"26":["author_word",30],"31":["author_word",37],"38":["year",42]}}}
138
+ Peltula coriacea Büdel, Henssen & Wessels 1986|{"scientificName":{"parsed":true,"verbatim":"Peltula coriacea B\u00fcdel, Henssen & Wessels 1986","normalized":"Peltula coriacea B\u00fcdel, Henssen et Wessels 1986","canonical":"Peltula coriacea","hybrid":false,"details":[{"genus":{"epitheton":"Peltula"},"species":{"epitheton":"coriacea","authorship":"B\u00fcdel, Henssen & Wessels 1986","basionymAuthorTeam":{"authorTeam":"B\u00fcdel, Henssen & Wessels","author":["B\u00fcdel","Henssen","Wessels"],"year":"1986"}}}],"positions":{"0":["genus",7],"8":["species",16],"17":["author_word",22],"24":["author_word",31],"34":["author_word",41],"42":["year",46]}}}
139
+ Saccharomyces drosophilae anon.|{"scientificName":{"parsed":true,"verbatim":"Saccharomyces drosophilae anon.","normalized":"Saccharomyces drosophilae anon.","canonical":"Saccharomyces drosophilae","hybrid":false,"details":[{"genus":{"epitheton":"Saccharomyces"},"species":{"epitheton":"drosophilae","authorship":"anon.","basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}}],"positions":{"0":["genus",13],"14":["species",25],"26":["unknown_author",31]}}}
140
+ Abacetus laevicollis de Chaudoir, 1869|{"scientificName":{"parsed":true,"verbatim":"Abacetus laevicollis de Chaudoir, 1869","normalized":"Abacetus laevicollis de Chaudoir 1869","canonical":"Abacetus laevicollis","hybrid":false,"details":[{"genus":{"epitheton":"Abacetus"},"species":{"epitheton":"laevicollis","authorship":"de Chaudoir, 1869","basionymAuthorTeam":{"authorTeam":"de Chaudoir","author":["de Chaudoir"],"year":"1869"}}}],"positions":{"0":["genus",8],"9":["species",20],"21":["author_word",23],"24":["author_word",32],"34":["year",38]}}}
141
+ Gastrosericus eremorum von Beaumont 1955|{"scientificName":{"parsed":true,"verbatim":"Gastrosericus eremorum von Beaumont 1955","normalized":"Gastrosericus eremorum von Beaumont 1955","canonical":"Gastrosericus eremorum","hybrid":false,"details":[{"genus":{"epitheton":"Gastrosericus"},"species":{"epitheton":"eremorum","authorship":"von Beaumont 1955","basionymAuthorTeam":{"authorTeam":"von Beaumont","author":["von Beaumont"],"year":"1955"}}}],"positions":{"0":["genus",13],"14":["species",22],"23":["author_word",26],"27":["author_word",35],"36":["year",40]}}}
142
+ Cypraeovula (Luponia) amphithales perdentata|{"scientificName":{"parsed":true,"verbatim":"Cypraeovula (Luponia) amphithales perdentata","normalized":"Cypraeovula (Luponia) amphithales perdentata","canonical":"Cypraeovula Luponia amphithales perdentata","hybrid":false,"details":[{"genus":{"epitheton":"Cypraeovula"},"subgenus":{"epitheton":"Luponia"},"species":{"epitheton":"amphithales"},"infraspecies":[{"epitheton":"perdentata","rank":"n\/a"}]}],"positions":{"0":["genus",11],"13":["subgenus",20],"22":["species",33],"34":["infraspecies",44]}}}
143
+ Polyrhachis orsyllus nat musculus Forel 1901|{"scientificName":{"parsed":true,"verbatim":"Polyrhachis orsyllus nat musculus Forel 1901","normalized":"Polyrhachis orsyllus nat musculus Forel 1901","canonical":"Polyrhachis orsyllus musculus","hybrid":false,"details":[{"genus":{"epitheton":"Polyrhachis"},"species":{"epitheton":"orsyllus"},"infraspecies":[{"epitheton":"musculus","rank":"nat","authorship":"Forel 1901","basionymAuthorTeam":{"authorTeam":"Forel","author":["Forel"],"year":"1901"}}]}],"positions":{"0":["genus",11],"12":["species",20],"25":["infraspecies",33],"34":["author_word",39],"40":["year",44]}}}
144
+ Latrodectus 13-guttatus Thorell, 1875|{"scientificName":{"parsed":true,"verbatim":"Latrodectus 13-guttatus Thorell, 1875","normalized":"Latrodectus 13-guttatus Thorell 1875","canonical":"Latrodectus 13-guttatus","hybrid":false,"details":[{"genus":{"epitheton":"Latrodectus"},"species":{"epitheton":"13-guttatus","authorship":"Thorell, 1875","basionymAuthorTeam":{"authorTeam":"Thorell","author":["Thorell"],"year":"1875"}}}],"positions":{"0":["genus",11],"12":["species",23],"24":["author_word",31],"33":["year",37]}}}
145
+ Latrodectus 3-guttatus Thorell 1875|{"scientificName":{"parsed":true,"verbatim":"Latrodectus 3-guttatus Thorell 1875","normalized":"Latrodectus 3-guttatus Thorell 1875","canonical":"Latrodectus 3-guttatus","hybrid":false,"details":[{"genus":{"epitheton":"Latrodectus"},"species":{"epitheton":"3-guttatus","authorship":"Thorell 1875","basionymAuthorTeam":{"authorTeam":"Thorell","author":["Thorell"],"year":"1875"}}}],"positions":{"0":["genus",11],"12":["species",22],"23":["author_word",30],"31":["year",35]}}}
146
+
147
+ #names with status at the end
148
+ 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 comb. nov.","canonical":"Arthopyrenia hyalospora","hybrid":false,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora","authorship":"(Nyl.) R.C. Harris","combinationAuthorTeam":{"authorTeam":"R.C. Harris ","author":["R.C. Harris"]},"basionymAuthorTeam":{"authorTeam":"Nyl.","author":["Nyl."]}},"status":"comb. nov."}],"positions":{"0":["genus",12],"13":["species",23],"25":["author_word",29],"31":["author_word",35],"36":["author_word",42]}}}
149
+
150
+ #names with ex authors
151
+ Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris|{"scientificName":{"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":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"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"]}}}}],"positions":{"0":["genus",12],"13":["species",23],"25":["author_word",29],"33":["author_word",39],"41":["author_word",45],"46":["author_word",52]}}}
152
+ Arthopyrenia hyalospora Nyl. ex Banker|{"scientificName":{"parsed":true,"verbatim":"Arthopyrenia hyalospora Nyl. ex Banker","normalized":"Arthopyrenia hyalospora Nyl. ex Banker","canonical":"Arthopyrenia hyalospora","hybrid":false,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora","authorship":"Nyl. ex Banker","basionymAuthorTeam":{"authorTeam":"Nyl.","author":["Nyl."],"exAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}}}],"positions":{"0":["genus",12],"13":["species",23],"24":["author_word",28],"32":["author_word",38]}}}
153
+ Glomopsis lonicerae Peck ex C.J. Gould 1945|{"scientificName":{"parsed":true,"verbatim":"Glomopsis lonicerae Peck ex C.J. Gould 1945","normalized":"Glomopsis lonicerae Peck ex C.J. Gould 1945","canonical":"Glomopsis lonicerae","hybrid":false,"details":[{"genus":{"epitheton":"Glomopsis"},"species":{"epitheton":"lonicerae","authorship":"Peck ex C.J. Gould 1945","basionymAuthorTeam":{"authorTeam":"Peck","author":["Peck"],"exAuthorTeam":{"authorTeam":"C.J. Gould","author":["C.J. Gould"],"year":"1945"}}}}],"positions":{"0":["genus",9],"10":["species",19],"20":["author_word",24],"28":["author_word",32],"33":["author_word",38],"39":["year",43]}}}
154
+ Acanthobasidium delicatum (Wakef.) Oberw. ex Jülich 1979|{"scientificName":{"parsed":true,"verbatim":"Acanthobasidium delicatum (Wakef.) Oberw. ex J\u00fclich 1979","normalized":"Acanthobasidium delicatum (Wakef.) Oberw. ex J\u00fclich 1979","canonical":"Acanthobasidium delicatum","hybrid":false,"details":[{"genus":{"epitheton":"Acanthobasidium"},"species":{"epitheton":"delicatum","authorship":"(Wakef.) Oberw. ex J\u00fclich 1979","combinationAuthorTeam":{"authorTeam":"Oberw.","author":["Oberw."],"exAuthorTeam":{"authorTeam":"J\u00fclich","author":["J\u00fclich"],"year":"1979"}},"basionymAuthorTeam":{"authorTeam":"Wakef.","author":["Wakef."]}}}],"positions":{"0":["genus",15],"16":["species",25],"27":["author_word",33],"35":["author_word",41],"45":["author_word",51],"52":["year",56]}}}
155
+ Mycosphaerella eryngii (Fr. ex Duby) Johanson ex Oudem. 1897|{"scientificName":{"parsed":true,"verbatim":"Mycosphaerella eryngii (Fr. ex Duby) Johanson ex Oudem. 1897","normalized":"Mycosphaerella eryngii (Fr. ex Duby) Johanson ex Oudem. 1897","canonical":"Mycosphaerella eryngii","hybrid":false,"details":[{"genus":{"epitheton":"Mycosphaerella"},"species":{"epitheton":"eryngii","authorship":"(Fr. ex Duby) Johanson ex Oudem. 1897","combinationAuthorTeam":{"authorTeam":"Johanson","author":["Johanson"],"exAuthorTeam":{"authorTeam":"Oudem.","author":["Oudem."],"year":"1897"}},"basionymAuthorTeam":{"authorTeam":"Fr.","author":["Fr."],"exAuthorTeam":{"authorTeam":"Duby","author":["Duby"]}}}}],"positions":{"0":["genus",14],"15":["species",22],"24":["author_word",27],"31":["author_word",35],"37":["author_word",45],"49":["author_word",55],"56":["year",60]}}}
156
+ Mycosphaerella eryngii (Fr. Duby) ex Oudem. 1897|{"scientificName":{"parsed":true,"verbatim":"Mycosphaerella eryngii (Fr. Duby) ex Oudem. 1897","normalized":"Mycosphaerella eryngii (Fr. Duby) ex Oudem. 1897","canonical":"Mycosphaerella eryngii ex","hybrid":false,"details":[{"genus":{"epitheton":"Mycosphaerella"},"species":{"epitheton":"eryngii","authorship":"(Fr. Duby)","basionymAuthorTeam":{"authorTeam":"Fr. Duby","author":["Fr. Duby"]}},"infraspecies":[{"epitheton":"ex","rank":"n\/a","authorship":"Oudem. 1897","basionymAuthorTeam":{"authorTeam":"Oudem.","author":["Oudem."],"year":"1897"}}]}],"positions":{"0":["genus",14],"15":["species",22],"24":["author_word",27],"28":["author_word",32],"34":["infraspecies",36],"37":["author_word",43],"44":["year",48]}}}
157
+ Mycosphaerella eryngii (Fr.ex Duby) ex Oudem. 1897|{"scientificName":{"parsed":true,"verbatim":"Mycosphaerella eryngii (Fr.ex Duby) ex Oudem. 1897","normalized":"Mycosphaerella eryngii (Fr.ex Duby) ex Oudem. 1897","canonical":"Mycosphaerella eryngii ex","hybrid":false,"details":[{"genus":{"epitheton":"Mycosphaerella"},"species":{"epitheton":"eryngii","authorship":"(Fr.ex Duby)","basionymAuthorTeam":{"authorTeam":"Fr.ex Duby","author":["Fr.ex Duby"]}},"infraspecies":[{"epitheton":"ex","rank":"n\/a","authorship":"Oudem. 1897","basionymAuthorTeam":{"authorTeam":"Oudem.","author":["Oudem."],"year":"1897"}}]}],"positions":{"0":["genus",14],"15":["species",22],"24":["author_word",29],"30":["author_word",34],"36":["infraspecies",38],"39":["author_word",45],"46":["year",50]}}}
158
+ Salmonella werahensis (Castellani) Hauduroy and Ehringer in Hauduroy 1937|{"scientificName":{"parsed":true,"verbatim":"Salmonella werahensis (Castellani) Hauduroy and Ehringer in Hauduroy 1937","normalized":"Salmonella werahensis (Castellani) Hauduroy et Ehringer ex Hauduroy 1937","canonical":"Salmonella werahensis","hybrid":false,"details":[{"genus":{"epitheton":"Salmonella"},"species":{"epitheton":"werahensis","authorship":"(Castellani) Hauduroy and Ehringer in Hauduroy 1937","combinationAuthorTeam":{"authorTeam":"Hauduroy and Ehringer","author":["Hauduroy","Ehringer"],"exAuthorTeam":{"authorTeam":"Hauduroy","author":["Hauduroy"],"year":"1937"}},"basionymAuthorTeam":{"authorTeam":"Castellani","author":["Castellani"]}}}],"positions":{"0":["genus",10],"11":["species",21],"23":["author_word",33],"35":["author_word",43],"48":["author_word",56],"60":["author_word",68],"69":["year",73]}}}
159
+
160
+ #named hybrids
161
+ ×Agropogon P. Fourn. 1934|{"scientificName":{"parsed":true,"verbatim":"\u00d7Agropogon P. Fourn. 1934","normalized":"\u00d7 Agropogon P. Fourn. 1934","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon","authorship":"P. Fourn. 1934","basionymAuthorTeam":{"authorTeam":"P. Fourn.","author":["P. Fourn."],"year":"1934"}}}],"positions":{"1":["uninomial",10],"11":["author_word",13],"14":["author_word",20],"21":["year",25]}}}
162
+ xAgropogon P. Fourn.|{"scientificName":{"parsed":true,"verbatim":"xAgropogon P. Fourn.","normalized":"\u00d7 Agropogon P. Fourn.","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon","authorship":"P. Fourn.","basionymAuthorTeam":{"authorTeam":"P. Fourn.","author":["P. Fourn."]}}}],"positions":{"1":["uninomial",10],"11":["author_word",13],"14":["author_word",20]}}}
163
+ XAgropogon P.Fourn.|{"scientificName":{"parsed":true,"verbatim":"XAgropogon P.Fourn.","normalized":"\u00d7 Agropogon P.Fourn.","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon","authorship":"P.Fourn.","basionymAuthorTeam":{"authorTeam":"P.Fourn.","author":["P.Fourn."]}}}],"positions":{"1":["uninomial",10],"11":["author_word",19]}}}
164
+ × Agropogon|{"scientificName":{"parsed":true,"verbatim":"\u00d7 Agropogon","normalized":"\u00d7 Agropogon","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon"}}],"positions":{"2":["uninomial",11]}}}
165
+ x Agropogon|{"scientificName":{"parsed":true,"verbatim":"x Agropogon","normalized":"\u00d7 Agropogon","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon"}}],"positions":{"2":["uninomial",11]}}}
166
+ X Agropogon|{"scientificName":{"parsed":true,"verbatim":"X Agropogon","normalized":"\u00d7 Agropogon","canonical":"Agropogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agropogon"}}],"positions":{"2":["uninomial",11]}}}
167
+ X Cupressocyparis leylandii|{"scientificName":{"parsed":true,"verbatim":"X Cupressocyparis leylandii","normalized":"\u00d7 Cupressocyparis leylandii","canonical":"Cupressocyparis leylandii","hybrid":true,"details":[{"genus":{"epitheton":"Cupressocyparis"},"species":{"epitheton":"leylandii"}}],"positions":{"2":["genus",17],"18":["species",27]}}}
168
+ ×Heucherella tiarelloides|{"scientificName":{"parsed":true,"verbatim":"\u00d7Heucherella tiarelloides","normalized":"\u00d7 Heucherella tiarelloides","canonical":"Heucherella tiarelloides","hybrid":true,"details":[{"genus":{"epitheton":"Heucherella"},"species":{"epitheton":"tiarelloides"}}],"positions":{"1":["genus",12],"13":["species",25]}}}
169
+ xHeucherella tiarelloides|{"scientificName":{"parsed":true,"verbatim":"xHeucherella tiarelloides","normalized":"\u00d7 Heucherella tiarelloides","canonical":"Heucherella tiarelloides","hybrid":true,"details":[{"genus":{"epitheton":"Heucherella"},"species":{"epitheton":"tiarelloides"}}],"positions":{"1":["genus",12],"13":["species",25]}}}
170
+ x Heucherella tiarelloides|{"scientificName":{"parsed":true,"verbatim":"x Heucherella tiarelloides","normalized":"\u00d7 Heucherella tiarelloides","canonical":"Heucherella tiarelloides","hybrid":true,"details":[{"genus":{"epitheton":"Heucherella"},"species":{"epitheton":"tiarelloides"}}],"positions":{"2":["genus",13],"14":["species",26]}}}
171
+ ×Agropogon littoralis (Sm.) C. E. Hubb. 1946|{"scientificName":{"parsed":true,"verbatim":"\u00d7Agropogon littoralis (Sm.) C. E. Hubb. 1946","normalized":"\u00d7 Agropogon littoralis (Sm.) C. E. Hubb. 1946","canonical":"Agropogon littoralis","hybrid":true,"details":[{"genus":{"epitheton":"Agropogon"},"species":{"epitheton":"littoralis","authorship":"(Sm.) C. E. Hubb. 1946","combinationAuthorTeam":{"authorTeam":"C. E. Hubb.","author":["C. E. Hubb."],"year":"1946"},"basionymAuthorTeam":{"authorTeam":"Sm.","author":["Sm."]}}}],"positions":{"1":["genus",10],"11":["species",21],"23":["author_word",26],"28":["author_word",30],"31":["author_word",33],"34":["author_word",39],"40":["year",44]}}}
172
+ Asplenium X inexpectatum (E.L. Braun 1940) Morton (1956)|{"scientificName":{"parsed":true,"verbatim":"Asplenium X inexpectatum (E.L. Braun 1940) Morton (1956)","normalized":"Asplenium \u00d7 inexpectatum (E.L. Braun 1940) Morton 1956","canonical":"Asplenium inexpectatum","hybrid":true,"details":[{"genus":{"epitheton":"Asplenium"},"species":{"epitheton":"inexpectatum","authorship":"(E.L. Braun 1940) Morton (1956)","combinationAuthorTeam":{"authorTeam":"Morton","author":["Morton"],"year":"1956"},"basionymAuthorTeam":{"authorTeam":"E.L. Braun","author":["E.L. Braun"],"year":"1940"}}}],"positions":{"0":["genus",9],"12":["species",24],"26":["author_word",30],"31":["author_word",36],"37":["year",41],"43":["author_word",49],"51":["year",55]}}}
173
+ Mentha ×smithiana R. A. Graham 1949|{"scientificName":{"parsed":true,"verbatim":"Mentha \u00d7smithiana R. A. Graham 1949","normalized":"Mentha \u00d7 smithiana R. A. Graham 1949","canonical":"Mentha smithiana","hybrid":true,"details":[{"genus":{"epitheton":"Mentha"},"species":{"epitheton":"smithiana","authorship":"R. A. Graham 1949","basionymAuthorTeam":{"authorTeam":"R. A. Graham","author":["R. A. Graham"],"year":"1949"}}}],"positions":{"0":["genus",6],"8":["species",17],"18":["author_word",20],"21":["author_word",23],"24":["author_word",30],"31":["year",35]}}}
174
+ Salix ×capreola Andersson (1867)|{"scientificName":{"parsed":true,"verbatim":"Salix \u00d7capreola Andersson (1867)","normalized":"Salix \u00d7 capreola Andersson 1867","canonical":"Salix capreola","hybrid":true,"details":[{"genus":{"epitheton":"Salix"},"species":{"epitheton":"capreola","authorship":"Andersson (1867)","basionymAuthorTeam":{"authorTeam":"Andersson","author":["Andersson"],"year":"1867"}}}],"positions":{"0":["genus",5],"7":["species",15],"16":["author_word",25],"27":["year",31]}}}
175
+ Salix x capreola Andersson|{"scientificName":{"parsed":true,"verbatim":"Salix x capreola Andersson","normalized":"Salix \u00d7 capreola Andersson","canonical":"Salix capreola","hybrid":true,"details":[{"genus":{"epitheton":"Salix"},"species":{"epitheton":"capreola","authorship":"Andersson","basionymAuthorTeam":{"authorTeam":"Andersson","author":["Andersson"]}}}],"positions":{"0":["genus",5],"8":["species",16],"17":["author_word",26]}}}
176
+
177
+ #hybrid formula
178
+ Arthopyrenia hyalospora X Hydnellum scrobiculatum|{"scientificName":{"parsed":true,"verbatim":"Arthopyrenia hyalospora X Hydnellum scrobiculatum","normalized":"Arthopyrenia hyalospora \u00d7 Hydnellum scrobiculatum","canonical":"Arthopyrenia hyalospora Hydnellum scrobiculatum","hybrid":true,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora"}},{"genus":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum"}}],"positions":{"0":["genus",12],"13":["species",23],"26":["genus",35],"36":["species",49]}}}
179
+ Arthopyrenia hyalospora (Banker) D. Hall X Hydnellum scrobiculatum D.E. Stuntz|{"scientificName":{"parsed":true,"verbatim":"Arthopyrenia hyalospora (Banker) D. Hall X Hydnellum scrobiculatum D.E. Stuntz","normalized":"Arthopyrenia hyalospora (Banker) D. Hall \u00d7 Hydnellum scrobiculatum D.E. Stuntz","canonical":"Arthopyrenia hyalospora Hydnellum scrobiculatum","hybrid":true,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora","authorship":"(Banker) D. Hall","combinationAuthorTeam":{"authorTeam":"D. Hall ","author":["D. Hall"]},"basionymAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}},{"genus":{"epitheton":"Hydnellum"},"species":{"epitheton":"scrobiculatum","authorship":"D.E. Stuntz","basionymAuthorTeam":{"authorTeam":"D.E. Stuntz","author":["D.E. Stuntz"]}}}],"positions":{"0":["genus",12],"13":["species",23],"25":["author_word",31],"33":["author_word",35],"36":["author_word",40],"43":["genus",52],"53":["species",66],"67":["author_word",71],"72":["author_word",78]}}}
180
+ Arthopyrenia hyalospora x|{"scientificName":{"parsed":true,"verbatim":"Arthopyrenia hyalospora x","normalized":"Arthopyrenia hyalospora \u00d7 ?","canonical":"Arthopyrenia hyalospora","hybrid":true,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora"}},"?"],"positions":{"0":["genus",12],"13":["species",23]}}}
181
+ Arthopyrenia hyalospora × ?|{"scientificName":{"parsed":true,"verbatim":"Arthopyrenia hyalospora \u00d7 ?","normalized":"Arthopyrenia hyalospora \u00d7 ?","canonical":"Arthopyrenia hyalospora","hybrid":true,"details":[{"genus":{"epitheton":"Arthopyrenia"},"species":{"epitheton":"hyalospora"}},"?"],"positions":{"0":["genus",12],"13":["species",23]}}}
182
+ Agrostis L. × Polypogon Desf.|{"scientificName":{"parsed":true,"verbatim":"Agrostis L. \u00d7 Polypogon Desf.","normalized":"Agrostis L. \u00d7 Polypogon Desf.","canonical":"Agrostis Polypogon","hybrid":true,"details":[{"uninomial":{"epitheton":"Agrostis","authorship":"L.","basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}},{"uninomial":{"epitheton":"Polypogon","authorship":"Desf.","basionymAuthorTeam":{"authorTeam":"Desf.","author":["Desf."]}}}],"positions":{"0":["uninomial",8],"9":["author_word",11],"14":["uninomial",23],"24":["author_word",29]}}}
183
+ Agrostis stolonifera L. × Polypogon monspeliensis (L.) Desf.|{"scientificName":{"parsed":true,"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":{"epitheton":"Agrostis"},"species":{"epitheton":"stolonifera","authorship":"L.","basionymAuthorTeam":{"authorTeam":"L.","author":["L."]}}},{"genus":{"epitheton":"Polypogon"},"species":{"epitheton":"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]}}}
184
+ #TODO Asplenium rhizophyllum X A. ruta-muraria E.L. Braun 1939|''
185
+ #TODO Asplenium rhizophyllum DC. x ruta-muraria E.L. Braun 1939|''
186
+ #TODO Asplenium rhizophyllum x ruta-muraria|''
187
+ #TODO Salix aurita L. × S. caprea L.|''
188
+ #TODO Mentha aquatica L. × M. arvensis L. × M. spicata L.|''
189
+ #TODO Polypodium vulgare subsp. prionodes (Asch.) Rothm. × subsp. vulgare|''
190
+ #TODO Tilletia caries (Bjerk.) Tul. × T. foetida (Wallr.) Liro.|''
191
+ Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":{"parsed":true,"verbatim":"Polypodium x vulgare nothosubsp. mantoniae (Rothm.) Schidlay","normalized":"Polypodium \u00d7 vulgare nothosubsp. mantoniae (Rothm.) Schidlay","canonical":"Polypodium vulgare mantoniae","hybrid":true,"details":[{"genus":{"epitheton":"Polypodium"},"species":{"epitheton":"vulgare"},"infraspecies":[{"epitheton":"mantoniae","rank":"nothosubsp.","authorship":"(Rothm.) Schidlay","combinationAuthorTeam":{"authorTeam":"Schidlay","author":["Schidlay"]},"basionymAuthorTeam":{"authorTeam":"Rothm.","author":["Rothm."]}}]}],"positions":{"0":["genus",10],"14":["species",21],"34":["infraspecies",43],"45":["author_word",51],"53":["author_word",61]}}}
192
+ #concepts
193
+ Senecio jacquinianus sec. Rchb.|{"scientificName":{"parsed":true,"verbatim":"Senecio jacquinianus sec. Rchb.","normalized":"Senecio jacquinianus sec. Rchb.","canonical":"Senecio jacquinianus","hybrid":false,"details":[{"genus":{"epitheton":"Senecio"},"species":{"epitheton":"jacquinianus"},"taxon_concept":{"authorship":"Rchb.","basionymAuthorTeam":{"authorTeam":"Rchb.","author":["Rchb."]}}}],"positions":{"0":["genus",7],"8":["species",20],"26":["author_word",31]}}}
194
+ #TODO Senecio legionensis sensu Samp., non Lange|{}
195
+ #TODO Pseudomonas methanica (Söhngen 1906) sensu. Dworkin and Foster 1956|{}
196
+
197
+ #empty spaces
198
+ Asplenium Xinexpectatum ( E.L. Braun 1940 ) Morton(1956) |{"scientificName":{"parsed":true,"verbatim":" Asplenium Xinexpectatum ( E.L. Braun 1940 ) Morton(1956) ","normalized":"Asplenium \u00d7 inexpectatum (E.L. Braun 1940) Morton 1956","canonical":"Asplenium inexpectatum","hybrid":true,"details":[{"genus":{"epitheton":"Asplenium"},"species":{"epitheton":"inexpectatum","authorship":"( E.L. Braun 1940 ) Morton(1956)","combinationAuthorTeam":{"authorTeam":"Morton","author":["Morton"],"year":"1956"},"basionymAuthorTeam":{"authorTeam":"E.L. Braun","author":["E.L. Braun"],"year":"1940"}}}],"positions":{"3":["genus",12],"22":["species",34],"37":["author_word",41],"47":["author_word",52],"55":["year",59],"66":["author_word",72],"73":["year",77]}}}
199
+
200
+
201
+ ####
202
+ #
203
+ # Names with problems
204
+ #
205
+ ####
206
+
207
+ #double parenthesis
208
+ Eichornia crassipes ( (Martius) ) Solms-Laub.|{"scientificName":{"parsed":true,"verbatim":"Eichornia crassipes ( (Martius) ) Solms-Laub.","normalized":"Eichornia crassipes (Martius) Solms-Laub.","canonical":"Eichornia crassipes","hybrid":false,"details":[{"genus":{"epitheton":"Eichornia"},"species":{"epitheton":"crassipes","authorship":"( (Martius) ) Solms-Laub.","combinationAuthorTeam":{"authorTeam":"Solms-Laub.","author":["Solms-Laub."]},"basionymAuthorTeam":{"authorTeam":"Martius","author":["Martius"]}}}],"positions":{"0":["genus",9],"10":["species",19],"23":["author_word",30],"34":["author_word",45]}}}
209
+
210
+ #year without authorship
211
+ Acarospora cratericola 1929|{"scientificName":{"parsed":true,"verbatim":"Acarospora cratericola 1929","normalized":"Acarospora cratericola 1929","canonical":"Acarospora cratericola","hybrid":false,"details":[{"genus":{"epitheton":"Acarospora"},"species":{"epitheton":"cratericola","year":"1929"}}],"positions":{"0":["genus",10],"11":["species",22],"23":["year",27]}}}
212
+
213
+
214
+ #year range
215
+ Tridentella tangeroae Bruce, 1987-92|{"scientificName":{"parsed":true,"verbatim":"Tridentella tangeroae Bruce, 1987-92","normalized":"Tridentella tangeroae Bruce 1987-92","canonical":"Tridentella tangeroae","hybrid":false,"details":[{"genus":{"epitheton":"Tridentella"},"species":{"epitheton":"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]}}}
216
+
217
+ #year in square brackets
218
+ Anthoscopus Cabanis [1851]|{"scientificName":{"parsed":true,"verbatim":"Anthoscopus Cabanis [1851]","normalized":"Anthoscopus Cabanis (1851)","canonical":"Anthoscopus","hybrid":false,"details":[{"uninomial":{"epitheton":"Anthoscopus","authorship":"Cabanis [1851]","basionymAuthorTeam":{"authorTeam":"Cabanis","author":["Cabanis"],"approximate_year":"(1851)"}}}],"positions":{"0":["uninomial",11],"12":["author_word",19],"21":["year",25]}}}
219
+ Anthoscopus Cabanis [185?]|{"scientificName":{"parsed":true,"verbatim":"Anthoscopus Cabanis [185?]","normalized":"Anthoscopus Cabanis (185?)","canonical":"Anthoscopus","hybrid":false,"details":[{"uninomial":{"epitheton":"Anthoscopus","authorship":"Cabanis [185?]","basionymAuthorTeam":{"authorTeam":"Cabanis","author":["Cabanis"],"approximate_year":"(185?)"}}}],"positions":{"0":["uninomial",11],"12":["author_word",19],"21":["year",25]}}}
220
+ Anthoscopus Cabanis [1851?]|{"scientificName":{"parsed":true,"verbatim":"Anthoscopus Cabanis [1851?]","normalized":"Anthoscopus Cabanis (1851?)","canonical":"Anthoscopus","hybrid":false,"details":[{"uninomial":{"epitheton":"Anthoscopus","authorship":"Cabanis [1851?]","basionymAuthorTeam":{"authorTeam":"Cabanis","author":["Cabanis"],"approximate_year":"(1851?)"}}}],"positions":{"0":["uninomial",11],"12":["author_word",19],"21":["year",26]}}}
221
+ Anthoscopus Cabanis [1851]|{"scientificName":{"parsed":true,"verbatim":"Anthoscopus Cabanis [1851]","normalized":"Anthoscopus Cabanis (1851)","canonical":"Anthoscopus","hybrid":false,"details":[{"uninomial":{"epitheton":"Anthoscopus","authorship":"Cabanis [1851]","basionymAuthorTeam":{"authorTeam":"Cabanis","author":["Cabanis"],"approximate_year":"(1851)"}}}],"positions":{"0":["uninomial",11],"12":["author_word",19],"21":["year",25]}}}
222
+ Anthoscopus Cabanis [1851?]|{"scientificName":{"parsed":true,"verbatim":"Anthoscopus Cabanis [1851?]","normalized":"Anthoscopus Cabanis (1851?)","canonical":"Anthoscopus","hybrid":false,"details":[{"uninomial":{"epitheton":"Anthoscopus","authorship":"Cabanis [1851?]","basionymAuthorTeam":{"authorTeam":"Cabanis","author":["Cabanis"],"approximate_year":"(1851?)"}}}],"positions":{"0":["uninomial",11],"12":["author_word",19],"21":["year",26]}}}
223
+ Trismegistia monodii Ando, 1973 [1974]|{"scientificName":{"parsed":true,"verbatim":"Trismegistia monodii Ando, 1973 [1974]","normalized":"Trismegistia monodii Ando 1973 (1974)","canonical":"Trismegistia monodii","hybrid":false,"details":[{"genus":{"epitheton":"Trismegistia"},"species":{"epitheton":"monodii","authorship":"Ando, 1973 [1974]","basionymAuthorTeam":{"authorTeam":"Ando","author":["Ando"],"year":"1973","approximate_year":"(1974)"}}}],"positions":{"0":["genus",12],"13":["species",20],"21":["author_word",25],"27":["year",31],"33":["year",37]}}}
224
+ Zygaena witti Wiegel [1973]|{"scientificName":{"parsed":true,"verbatim":"Zygaena witti Wiegel [1973]","normalized":"Zygaena witti Wiegel (1973)","canonical":"Zygaena witti","hybrid":false,"details":[{"genus":{"epitheton":"Zygaena"},"species":{"epitheton":"witti","authorship":"Wiegel [1973]","basionymAuthorTeam":{"authorTeam":"Wiegel","author":["Wiegel"],"approximate_year":"(1973)"}}}],"positions":{"0":["genus",7],"8":["species",13],"14":["author_word",20],"22":["year",26]}}}
225
+ Deyeuxia coarctata Kunth, 1815 [1816]|{"scientificName":{"parsed":true,"verbatim":"Deyeuxia coarctata Kunth, 1815 [1816]","normalized":"Deyeuxia coarctata Kunth 1815 (1816)","canonical":"Deyeuxia coarctata","hybrid":false,"details":[{"genus":{"epitheton":"Deyeuxia"},"species":{"epitheton":"coarctata","authorship":"Kunth, 1815 [1816]","basionymAuthorTeam":{"authorTeam":"Kunth","author":["Kunth"],"year":"1815","approximate_year":"(1816)"}}}],"positions":{"0":["genus",8],"9":["species",18],"19":["author_word",24],"26":["year",30],"32":["year",36]}}}
226
+
227
+ #names with garbage at the end
228
+ Morea (Morea) Burt 2342343242 23424322342 23424234|{"scientificName":{"parsed":true,"verbatim":"Morea (Morea) Burt 2342343242 23424322342 23424234","normalized":"Morea (Morea) Burt","canonical":"Morea","hybrid":false,"details":[{"uninomial":{"epitheton":"Morea","authorship":"(Morea) Burt","combinationAuthorTeam":{"authorTeam":"Burt","author":["Burt"]},"basionymAuthorTeam":{"authorTeam":"Morea","author":["Morea"]}}}],"positions":{"0":["uninomial",5],"7":["author_word",12],"14":["author_word",18]}}}
229
+
230
+
231
+ #salvage canonical
232
+ Morea ssjjlajajaj324$33 234243242|{"scientificName":{"parsed":true,"verbatim":"Morea ssjjlajajaj324$33 234243242","normalized":"Morea","canonical":"Morea","hybrid":false,"details":[{"uninomial":{"epitheton":"Morea"}}],"positions":{"0":["uninomial",5]}}}
233
+ Morea (Morea) burtius 2342343242 23424322342 23424234|{"scientificName":{"parsed":true,"verbatim":"Morea (Morea) burtius 2342343242 23424322342 23424234","normalized":"Morea (Morea) burtius","canonical":"Morea burtius","hybrid":false,"details":[{"genus":{"epitheton":"Morea"},"subgenus":{"epitheton":"Morea"},"species":{"epitheton":"burtius"}}],"positions":{"0":["genus",5],"7":["subgenus",12],"14":["species",21]}}}
234
+ Verpericola megasoma ""Dall" Pils.|{"scientificName":{"parsed":true,"verbatim":"Verpericola megasoma \"\"Dall\" Pils.","normalized":"Verpericola megasoma","canonical":"Verpericola megasoma","hybrid":false,"details":[{"genus":{"epitheton":"Verpericola"},"species":{"epitheton":"megasoma"}}],"positions":{"0":["genus",11],"12":["species",20]}}}
235
+ Moraea spathulata ( (L. f. Klatt|{"scientificName":{"parsed":true,"verbatim":"Moraea spathulata ( (L. f. Klatt","normalized":"Moraea spathulata","canonical":"Moraea spathulata","hybrid":false,"details":[{"genus":{"epitheton":"Moraea"},"species":{"epitheton":"spathulata"}}],"positions":{"0":["genus",6],"7":["species",17]}}}
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dimus-biodiversity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Mozzherin
@@ -9,8 +9,8 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-11 00:00:00 -07:00
13
- default_executable:
12
+ date: 2009-08-12 00:00:00 -07:00
13
+ default_executable: nnparse
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: treetop
@@ -20,48 +20,62 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.2.4
23
+ version: "0"
24
24
  version:
25
- description: Biodiversity library provides a parser tool for scientific species names
26
- email: dmozzherin {et} eol {dt} org
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: Tools for biodiversity informatics
36
+ email: dmozzherin@gmail.com
27
37
  executables:
28
- - - nnparse
38
+ - nnparse
29
39
  extensions: []
30
40
 
31
- extra_rdoc_files: []
32
-
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README.rdoc
33
44
  files:
45
+ - .document
46
+ - .gitignore
34
47
  - LICENSE
35
48
  - README.rdoc
36
49
  - Rakefile
37
- - conf
50
+ - VERSION
51
+ - bin/nnparse
38
52
  - conf/environment.rb
39
- - spec/parser
40
- - spec/parser/scientific_name.spec.rb
41
- - spec/parser/scientific_name_canonical.spec.rb
42
- - spec/parser/scientific_name_clean.spec.rb
43
- - spec/parser/scientific_name_dirty.spec.rb
44
- - spec/guid
45
- - spec/guid/lsid.spec.rb
46
- - lib/biodiversity
47
- - lib/biodiversity/parser
53
+ - lib/biodiversity.rb
48
54
  - lib/biodiversity/guid.rb
49
- - lib/biodiversity/guid
50
55
  - lib/biodiversity/guid/lsid.rb
51
- - lib/biodiversity/parser/scientific_name_clean.rb
56
+ - lib/biodiversity/parser.rb
52
57
  - lib/biodiversity/parser/scientific_name_canonical.rb
53
- - lib/biodiversity/parser/scientific_name_dirty.rb
54
58
  - lib/biodiversity/parser/scientific_name_canonical.treetop
59
+ - lib/biodiversity/parser/scientific_name_clean.rb
55
60
  - lib/biodiversity/parser/scientific_name_clean.treetop
61
+ - lib/biodiversity/parser/scientific_name_dirty.rb
56
62
  - lib/biodiversity/parser/scientific_name_dirty.treetop
57
- - lib/biodiversity/parser.rb
58
- - lib/biodiversity.rb
59
- - bin/nnparse
63
+ - pkg/.gitignore
64
+ - spec/biodiversity_spec.rb
65
+ - spec/guid/lsid.spec.rb
66
+ - spec/parser/scientific_name.spec.rb
67
+ - spec/parser/scientific_name_canonical.spec.rb
68
+ - spec/parser/scientific_name_clean.spec.rb
69
+ - spec/parser/scientific_name_dirty.spec.rb
70
+ - spec/parser/spec_helper.rb
71
+ - spec/parser/test_data.txt
72
+ - spec/spec_helper.rb
60
73
  has_rdoc: false
61
- homepage: http://github.com/dimus/biodiversity/wikis
74
+ homepage: http://github.com/dimus/biodiversity
75
+ licenses:
62
76
  post_install_message:
63
- rdoc_options: []
64
-
77
+ rdoc_options:
78
+ - --charset=UTF-8
65
79
  require_paths:
66
80
  - lib
67
81
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -79,9 +93,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
93
  requirements: []
80
94
 
81
95
  rubyforge_project:
82
- rubygems_version: 1.2.0
96
+ rubygems_version: 1.3.5
83
97
  signing_key:
84
98
  specification_version: 2
85
- summary: scientific species name parser Executable is nnparse
86
- test_files: []
87
-
99
+ summary: Parser of scientific names
100
+ test_files:
101
+ - spec/biodiversity_spec.rb
102
+ - spec/guid/lsid.spec.rb
103
+ - spec/parser/scientific_name.spec.rb
104
+ - spec/parser/scientific_name_canonical.spec.rb
105
+ - spec/parser/scientific_name_clean.spec.rb
106
+ - spec/parser/scientific_name_dirty.spec.rb
107
+ - spec/parser/spec_helper.rb
108
+ - spec/spec_helper.rb