dimus-biodiversity 0.5.4 → 0.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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