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.
- data/.document +5 -0
- data/.gitignore +13 -0
- data/LICENSE +20 -21
- data/Rakefile +25 -23
- data/VERSION +1 -0
- data/bin/nnparse +12 -38
- data/lib/biodiversity/parser/scientific_name_clean.rb +52 -52
- data/spec/biodiversity_spec.rb +0 -0
- data/spec/parser/spec_helper.rb +69 -0
- data/spec/parser/test_data.txt +235 -0
- data/spec/spec_helper.rb +0 -0
- metadata +53 -32
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
Copyright (c)
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
data/bin/nnparse
CHANGED
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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 +
|
|
1595
|
-
@index +=
|
|
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 +
|
|
1606
|
-
@index +=
|
|
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 +
|
|
1617
|
-
@index +=
|
|
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 +
|
|
1628
|
-
@index +=
|
|
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 +
|
|
1639
|
-
@index +=
|
|
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 +
|
|
1650
|
-
@index +=
|
|
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 +
|
|
1661
|
-
@index +=
|
|
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 +
|
|
1672
|
-
@index +=
|
|
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 +
|
|
1683
|
-
@index +=
|
|
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 +
|
|
4003
|
-
@index +=
|
|
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 +
|
|
4013
|
-
@index +=
|
|
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 +
|
|
4023
|
-
@index +=
|
|
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 +
|
|
4033
|
-
@index +=
|
|
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 +
|
|
4043
|
-
@index +=
|
|
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 +
|
|
4053
|
-
@index +=
|
|
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 +
|
|
4063
|
-
@index +=
|
|
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 +
|
|
4073
|
-
@index +=
|
|
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 +
|
|
4083
|
-
@index +=
|
|
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 +
|
|
4093
|
-
@index +=
|
|
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 +
|
|
4103
|
-
@index +=
|
|
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 +
|
|
4113
|
-
@index +=
|
|
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 +
|
|
5457
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
5458
5458
|
r1.extend(CapDigraph0)
|
|
5459
|
-
@index +=
|
|
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 +
|
|
5468
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
5469
5469
|
r2.extend(CapDigraph1)
|
|
5470
|
-
@index +=
|
|
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 +
|
|
5510
|
+
r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
5511
5511
|
r1.extend(Digraph0)
|
|
5512
|
-
@index +=
|
|
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 +
|
|
5521
|
+
r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
5522
5522
|
r2.extend(Digraph1)
|
|
5523
|
-
@index +=
|
|
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 +
|
|
5911
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + 2))
|
|
5912
5912
|
r0.extend(MultiplicationSign0)
|
|
5913
|
-
@index +=
|
|
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]}}}
|
data/spec/spec_helper.rb
ADDED
|
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
|
+
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-
|
|
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:
|
|
23
|
+
version: "0"
|
|
24
24
|
version:
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
-
|
|
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
|
-
-
|
|
50
|
+
- VERSION
|
|
51
|
+
- bin/nnparse
|
|
38
52
|
- conf/environment.rb
|
|
39
|
-
-
|
|
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
|
|
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
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
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
|
|
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.
|
|
96
|
+
rubygems_version: 1.3.5
|
|
83
97
|
signing_key:
|
|
84
98
|
specification_version: 2
|
|
85
|
-
summary:
|
|
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
|