biodiversity19 1.0.9 → 1.0.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/LICENSE +1 -1
- data/README.rdoc +5 -3
- data/VERSION +1 -1
- data/lib/biodiversity/parser/scientific_name_clean.treetop +3 -3
- data/lib/biodiversity/parser.rb +1 -1
- data/spec/parser/scientific_name.spec.rb +12 -0
- data/spec/parser/scientific_name_clean.spec.rb +16 -0
- data/spec/parser/scientific_name_dirty.spec.rb +1 -1
- data/spec/parser/test_data.txt +13 -2
- data/spec/parser/todo.txt +28 -0
- metadata +15 -14
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -31,9 +31,9 @@ to return a canonical form of the name string
|
|
31
31
|
|
32
32
|
parserver --output=canonical_with_rank
|
33
33
|
|
34
|
-
the same as above, but
|
34
|
+
the same as above, but infraspecies' rank is shown if available
|
35
35
|
|
36
|
-
|
36
|
+
parserver --port 5555
|
37
37
|
|
38
38
|
run socket server on a different port
|
39
39
|
|
@@ -88,7 +88,9 @@ You can use it as a library
|
|
88
88
|
# to parse using several CPUs (4 seem to be optimal)
|
89
89
|
parser = ParallelParser.new # ParallelParser.new(4) will try to run 4 processes if hardware allows
|
90
90
|
array_of_names = ["Betula alba", "Homo sapiens"....]
|
91
|
-
parser.parse(array_of_names) # -> {"Betula alba" =>
|
91
|
+
parser.parse(array_of_names) # -> {"Betula alba" => {:scientificName...}, "Homo sapiens" => {:scientificName...}, ...}
|
92
|
+
|
93
|
+
parallel parser takes list of names and returns back a hash with names as keys and parsed data as values
|
92
94
|
|
93
95
|
# to resolve lsid and get back RDF file
|
94
96
|
LsidResolver.resolve("urn:lsid:ubio.org:classificationbank:2232671")
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.10
|
@@ -909,7 +909,7 @@ grammar ScientificNameClean
|
|
909
909
|
end
|
910
910
|
|
911
911
|
rule author_name
|
912
|
-
space a:author_name_without_postfix space b:
|
912
|
+
space a:author_name_without_postfix space b:author_postfix_word space !latin_word {
|
913
913
|
def value
|
914
914
|
a.value + ' ' + b.value
|
915
915
|
end
|
@@ -1032,8 +1032,8 @@ grammar ScientificNameClean
|
|
1032
1032
|
}
|
1033
1033
|
end
|
1034
1034
|
|
1035
|
-
rule
|
1036
|
-
|
1035
|
+
rule author_postfix_word
|
1036
|
+
("f."/"filius") {
|
1037
1037
|
def value
|
1038
1038
|
text_value.strip
|
1039
1039
|
end
|
data/lib/biodiversity/parser.rb
CHANGED
@@ -47,7 +47,7 @@ class ParallelParser
|
|
47
47
|
private
|
48
48
|
def parse_process(name)
|
49
49
|
p = ScientificNameParser.new
|
50
|
-
p.parse(name)
|
50
|
+
p.parse(name) rescue {:scientificName => {:parsed => false, :verbatim => name, :error => 'Parser error'}}
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -70,4 +70,16 @@ describe ParallelParser do
|
|
70
70
|
names.size.should > 100
|
71
71
|
res.keys.size.should == names.size
|
72
72
|
end
|
73
|
+
|
74
|
+
it "should have parsed name in native ruby format and in returned as a hash with name as a key and parsed data as value" do
|
75
|
+
names = []
|
76
|
+
read_test_file { |n| names << (n[:name]) if n[:name] }
|
77
|
+
names.uniq!
|
78
|
+
pparser = ParallelParser.new(4)
|
79
|
+
res = pparser.parse(names)
|
80
|
+
names.each_with_index do |name, i|
|
81
|
+
res[name].is_a?(Hash).should be_true
|
82
|
+
res[name][:scientificName][:verbatim].should == name
|
83
|
+
end
|
84
|
+
end
|
73
85
|
end
|
@@ -255,7 +255,23 @@ describe ScientificNameClean do
|
|
255
255
|
sn = "Cassytha peninsularis J. Z. Weber var. flindersii"
|
256
256
|
canonical(sn).should == "Cassytha peninsularis flindersii"
|
257
257
|
sn = "Prunus armeniaca convar. budae (Pénzes) Soó"
|
258
|
+
|
258
259
|
canonical(sn).should == "Prunus armeniaca budae"
|
260
|
+
sn = "Polypodium pectinatum L. f. typica Rosenst."
|
261
|
+
canonical(sn).should == "Polypodium pectinatum typica"
|
262
|
+
# might get confused with forma vs filius
|
263
|
+
sn = "Polypodium pectinatum L.f. typica Rosenst."
|
264
|
+
canonical(sn).should == "Polypodium pectinatum typica"
|
265
|
+
sn = "Polypodium pectinatum (L.) f. typica Rosenst."
|
266
|
+
canonical(sn).should == "Polypodium pectinatum typica"
|
267
|
+
sn = "Polypodium pectinatum L. f., Rosenst."
|
268
|
+
canonical(sn).should == "Polypodium pectinatum"
|
269
|
+
sn = "Polypodium pectinatum L. f."
|
270
|
+
canonical(sn).should == "Polypodium pectinatum"
|
271
|
+
sn = "Polypodium pectinatum (L. f.) typica Rosent."
|
272
|
+
canonical(sn).should == "Polypodium pectinatum typica"
|
273
|
+
sn = "Polypodium pectinatum L. f. thisisjunk Rosent."
|
274
|
+
canonical(sn).should == "Polypodium pectinatum thisisjunk"
|
259
275
|
end
|
260
276
|
|
261
277
|
it 'should parse unknown original authors (auct.)/(hort.)/(?)' do
|
@@ -93,7 +93,7 @@ describe ScientificNameDirty do
|
|
93
93
|
end
|
94
94
|
|
95
95
|
it 'should parse names with "common" utf-8 charactes' do
|
96
|
-
names = ["Rühlella","Sténométope laevissimus Bibron 1855"].each do |name|
|
96
|
+
names = ["Rühlella","Sténométope laevissimus Bibron 1855", "Döringina Ihering 1929"].each do |name|
|
97
97
|
parse(name).should_not be_nil
|
98
98
|
end
|
99
99
|
end
|
data/spec/parser/test_data.txt
CHANGED
@@ -9,6 +9,7 @@ Pseudocercospora|{"scientificName":{"parsed":true, "parser_version":"test_versio
|
|
9
9
|
|
10
10
|
#uninomial with author
|
11
11
|
Pseudocercospora Speg.|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora Speg.","normalized":"Pseudocercospora Speg.","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"string":"Pseudocercospora","authorship":"Speg.","basionymAuthorTeam":{"authorTeam":"Speg.","author":["Speg."]}}}],"positions":{"0":["uninomial",16],"17":["author_word",22]}}}
|
12
|
+
Döringina Ihering 1929|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Döringina Ihering 1929", "normalized":"Doringina Ihering 1929", "canonical":"Doringina", "hybrid":false, "details":[{"uninomial":{"string":"Doringina", "authorship":"Ihering 1929", "basionymAuthorTeam":{"authorTeam":"Ihering", "author":["Ihering"], "year":"1929"}}}], "parser_run":2, "positions":{"0":["uninomial", 9], "10":["author_word", 17], "18":["year", 22]}}}
|
12
13
|
|
13
14
|
#uninomial with author and year
|
14
15
|
Pseudocercospora Speg. 1910|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora Speg. 1910","normalized":"Pseudocercospora Speg. 1910","canonical":"Pseudocercospora","hybrid":false,"details":[{"uninomial":{"string":"Pseudocercospora","authorship":"Speg. 1910","basionymAuthorTeam":{"authorTeam":"Speg.","author":["Speg."],"year":"1910"}}}],"positions":{"0":["uninomial",16],"17":["author_word",22],"23":["year",27]}}}
|
@@ -110,6 +111,13 @@ Sphaerotheca fuliginea f. dahliae Movss. 1967|{"scientificName"
|
|
110
111
|
Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay", "normalized":"Polypodium vulgare nothosubsp. mantoniae (Rothm.) Schidlay", "canonical":"Polypodium vulgare mantoniae", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"vulgare"}, "infraspecies":[{"string":"mantoniae", "rank":"nothosubsp.", "authorship":"(Rothm.) Schidlay", "combinationAuthorTeam":{"authorTeam":"Schidlay", "author":["Schidlay"]}, "basionymAuthorTeam":{"authorTeam":"Rothm.", "author":["Rothm."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 18], "19":["infraspecific_type", 30], "31":["infraspecies", 40], "42":["author_word", 48], "50":["author_word", 58]}}}
|
111
112
|
Allophylus amazonicus var amazonicus|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Allophylus amazonicus var amazonicus", "normalized":"Allophylus amazonicus var amazonicus", "canonical":"Allophylus amazonicus amazonicus", "hybrid":false, "details":[{"genus":{"string":"Allophylus"}, "species":{"string":"amazonicus"}, "infraspecies":[{"string":"amazonicus", "rank":"var"}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["infraspecific_type", 25], "26":["infraspecies", 36]}}}
|
112
113
|
Prunus armeniaca convar. budae (Pénzes) Soó|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Prunus armeniaca convar. budae (Pénzes) Soó", "normalized":"Prunus armeniaca convar. budae (Pénzes) Soó", "canonical":"Prunus armeniaca budae", "hybrid":false, "details":[{"genus":{"string":"Prunus"}, "species":{"string":"armeniaca"}, "infraspecies":[{"string":"budae", "rank":"convar.", "authorship":"(Pénzes) Soó", "combinationAuthorTeam":{"authorTeam":"Soó", "author":["Soó"]}, "basionymAuthorTeam":{"authorTeam":"Pénzes", "author":["Pénzes"]}}]}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 16], "17":["infraspecific_type", 24], "25":["infraspecies", 30], "32":["author_word", 38], "40":["author_word", 43]}}}
|
114
|
+
Polypodium pectinatum (L.) f. typica Rosenst.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum (L.) f. typica Rosenst.", "normalized":"Polypodium pectinatum (L.) f. typica Rosenst.", "canonical":"Polypodium pectinatum typica", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"(L.)", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"typica", "rank":"f.", "authorship":"Rosenst.", "basionymAuthorTeam":{"authorTeam":"Rosenst.", "author":["Rosenst."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "23":["author_word", 25], "27":["infraspecific_type", 29], "30":["infraspecies", 36], "37":["author_word", 45]}}}
|
115
|
+
Polypodium pectinatum L. f. typica Rosenst.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L. f. typica Rosenst.", "normalized":"Polypodium pectinatum L. f. typica Rosenst.", "canonical":"Polypodium pectinatum typica", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L.", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"typica", "rank":"f.", "authorship":"Rosenst.", "basionymAuthorTeam":{"authorTeam":"Rosenst.", "author":["Rosenst."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 24], "25":["infraspecific_type", 27], "28":["infraspecies", 34], "35":["author_word", 43]}}}
|
116
|
+
# TODO: the following phrasing can be ambiguous. Does f mean forma or filius? Currently capturing it as filius
|
117
|
+
Polypodium pectinatum L.f. typica Rosenst.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L.f. typica Rosenst.", "normalized":"Polypodium pectinatum L.f. typica Rosenst.", "canonical":"Polypodium pectinatum typica", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L.f.", "basionymAuthorTeam":{"authorTeam":"L.f.", "author":["L.f."]}}, "infraspecies":[{"string":"typica", "rank":"n/a", "authorship":"Rosenst.", "basionymAuthorTeam":{"authorTeam":"Rosenst.", "author":["Rosenst."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 26], "27":["infraspecies", 33], "34":["author_word", 42]}}}
|
118
|
+
Polypodium pectinatum L. f. thisisjunk Rosent.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L. f. thisisjunk Rosent.", "normalized":"Polypodium pectinatum L. f. thisisjunk Rosent.", "canonical":"Polypodium pectinatum thisisjunk", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L.", "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"thisisjunk", "rank":"f.", "authorship":"Rosent.", "basionymAuthorTeam":{"authorTeam":"Rosent.", "author":["Rosent."]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 24], "25":["infraspecific_type", 27], "28":["infraspecies", 38], "39":["author_word", 46]}}}
|
119
|
+
Polypodium lineare C.Chr. f. caudatoattenuatum Takeda|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium lineare C.Chr. f. caudatoattenuatum Takeda", "normalized":"Polypodium lineare C.Chr. f. caudatoattenuatum Takeda", "canonical":"Polypodium lineare caudatoattenuatum", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"lineare", "authorship":"C.Chr.", "basionymAuthorTeam":{"authorTeam":"C.Chr.", "author":["C.Chr."]}}, "infraspecies":[{"string":"caudatoattenuatum", "rank":"f.", "authorship":"Takeda", "basionymAuthorTeam":{"authorTeam":"Takeda", "author":["Takeda"]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 18], "19":["author_word", 25], "26":["infraspecific_type", 28], "29":["infraspecies", 46], "47":["author_word", 53]}}}
|
120
|
+
Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.", "normalized":"Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz.", "canonical":"Rhododendron weyrichii albiflorum", "hybrid":false, "details":[{"genus":{"string":"Rhododendron"}, "species":{"string":"weyrichii", "authorship":"Maxim.", "basionymAuthorTeam":{"authorTeam":"Maxim.", "author":["Maxim."]}}, "infraspecies":[{"string":"albiflorum", "rank":"f.", "authorship":"T.Yamaz.", "basionymAuthorTeam":{"authorTeam":"T.Yamaz.", "author":["T.Yamaz."]}}]}], "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 22], "23":["author_word", 29], "30":["infraspecific_type", 32], "33":["infraspecies", 43], "44":["author_word", 52]}}}
|
113
121
|
|
114
122
|
#infraspecies_multiple
|
115
123
|
Hydnellum scrobiculatum var. zonatum f. parvum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"parsed":true, "parser_version":"test_version", "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":{"string":"Hydnellum"}, "species":{"string":"scrobiculatum"}, "infraspecies":[{"string":"zonatum", "rank":"var."}, {"string":"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"]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 23], "24":["infraspecific_type", 28], "29":["infraspecies", 36], "37":["infraspecific_type", 39], "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]}}}
|
@@ -277,8 +285,8 @@ Eichornia crassipes ( (Martius) ) Solms-Laub.|{"scientificName":{"parsed":true,
|
|
277
285
|
Acarospora cratericola 1929|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Acarospora cratericola 1929","normalized":"Acarospora cratericola 1929","canonical":"Acarospora cratericola","hybrid":false,"details":[{"genus":{"string":"Acarospora"},"species":{"string":"cratericola","year":"1929"}}],"positions":{"0":["genus",10],"11":["species",22],"23":["year",27]}}}
|
278
286
|
|
279
287
|
#authorship with filius (son of)
|
280
|
-
Platypus bicaudatulus Schedl f. 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl f. 1935", "normalized":"Platypus bicaudatulus Schedl f. 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl f. 1935", "basionymAuthorTeam":{"authorTeam":"Schedl f.", "author":["Schedl f."], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word",
|
281
|
-
Platypus bicaudatulus Schedl filius 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl filius 1935", "normalized":"Platypus bicaudatulus Schedl filius 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl filius 1935", "basionymAuthorTeam":{"authorTeam":"Schedl filius", "author":["Schedl filius"], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word",
|
288
|
+
Platypus bicaudatulus Schedl f. 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl f. 1935", "normalized":"Platypus bicaudatulus Schedl f. 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl f. 1935", "basionymAuthorTeam":{"authorTeam":"Schedl f.", "author":["Schedl f."], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word", 31], "32":["year", 36]}}}
|
289
|
+
Platypus bicaudatulus Schedl filius 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Platypus bicaudatulus Schedl filius 1935", "normalized":"Platypus bicaudatulus Schedl filius 1935", "canonical":"Platypus bicaudatulus", "hybrid":false, "details":[{"genus":{"string":"Platypus"}, "species":{"string":"bicaudatulus", "authorship":"Schedl filius 1935", "basionymAuthorTeam":{"authorTeam":"Schedl filius", "author":["Schedl filius"], "year":"1935"}}}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["author_word", 28], "29":["author_word", 35], "36":["year", 40]}}}
|
282
290
|
Fimbristylis ovata (Burm. f.) J. Kern|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Fimbristylis ovata (Burm. f.) J. Kern", "normalized":"Fimbristylis ovata (Burm. f.) J. Kern", "canonical":"Fimbristylis ovata", "hybrid":false, "details":[{"genus":{"string":"Fimbristylis"}, "species":{"string":"ovata", "authorship":"(Burm. f.) J. Kern", "combinationAuthorTeam":{"authorTeam":"J. Kern", "author":["J. Kern"]}, "basionymAuthorTeam":{"authorTeam":"Burm. f.", "author":["Burm. f."]}}}], "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 18], "20":["author_word", 25], "26":["author_word", 28], "30":["author_word", 32], "33":["author_word", 37]}}}
|
283
291
|
Carex chordorrhiza Ehrh. ex L. f.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Carex chordorrhiza Ehrh. ex L. f.", "normalized":"Carex chordorrhiza Ehrh. ex L. f.", "canonical":"Carex chordorrhiza", "hybrid":false, "details":[{"genus":{"string":"Carex"}, "species":{"string":"chordorrhiza", "authorship":"Ehrh. ex L. f.", "basionymAuthorTeam":{"authorTeam":"Ehrh.", "author":["Ehrh."], "exAuthorTeam":{"authorTeam":"L. f.", "author":["L. f."]}}}}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 18], "19":["author_word", 24], "28":["author_word", 30], "31":["author_word", 33]}}}
|
284
292
|
Amelanchier arborea var. arborea (Michx. f.) Fernald|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Amelanchier arborea var. arborea (Michx. f.) Fernald", "normalized":"Amelanchier arborea var. arborea (Michx. f.) Fernald", "canonical":"Amelanchier arborea arborea", "hybrid":false, "details":[{"genus":{"string":"Amelanchier"}, "species":{"string":"arborea"}, "infraspecies":[{"string":"arborea", "rank":"var.", "authorship":"(Michx. f.) Fernald", "combinationAuthorTeam":{"authorTeam":"Fernald", "author":["Fernald"]}, "basionymAuthorTeam":{"authorTeam":"Michx. f.", "author":["Michx. f."]}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 19], "20":["infraspecific_type", 24], "25":["infraspecies", 32], "34":["author_word", 40], "41":["author_word", 43], "45":["author_word", 52]}}}
|
@@ -289,6 +297,9 @@ Amelanchier arborea f. hirsuta (Michx. f.) Fernald|{"scientificName":{"parsed":t
|
|
289
297
|
Betula pendula fo. dalecarlica (L. f.) C.K. Schneid.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Betula pendula fo. dalecarlica (L. f.) C.K. Schneid.", "normalized":"Betula pendula f. dalecarlica (L. f.) C.K. Schneid.", "canonical":"Betula pendula dalecarlica", "hybrid":false, "details":[{"genus":{"string":"Betula"}, "species":{"string":"pendula"}, "infraspecies":[{"string":"dalecarlica", "rank":"f.", "authorship":"(L. f.) C.K. Schneid.", "combinationAuthorTeam":{"authorTeam":"C.K. Schneid.", "author":["C.K. Schneid."]}, "basionymAuthorTeam":{"authorTeam":"L. f.", "author":["L. f."]}}]}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 14], "15":["infraspecific_type", 18], "19":["infraspecies", 30], "32":["author_word", 34], "35":["author_word", 37], "39":["author_word", 43], "44":["author_word", 52]}}}
|
290
298
|
Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk.", "normalized":"Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk.", "canonical":"Racomitrium canescens ericoides", "hybrid":false, "details":[{"genus":{"string":"Racomitrium"}, "species":{"string":"canescens"}, "infraspecies":[{"string":"ericoides", "rank":"f.", "authorship":"(F. Weber ex Brid.) Mönk.", "combinationAuthorTeam":{"authorTeam":"Mönk.", "author":["Mönk."]}, "basionymAuthorTeam":{"authorTeam":"F. Weber", "author":["F. Weber"], "exAuthorTeam":{"authorTeam":"Brid.", "author":["Brid."]}}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 21], "22":["infraspecific_type", 24], "25":["infraspecies", 34], "36":["author_word", 38], "39":["author_word", 44], "48":["author_word", 53], "55":["author_word", 60]}}}
|
291
299
|
Racomitrium canescens forma ericoides (F. Weber ex Brid.) Mönk.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Racomitrium canescens forma ericoides (F. Weber ex Brid.) Mönk.", "normalized":"Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk.", "canonical":"Racomitrium canescens ericoides", "hybrid":false, "details":[{"genus":{"string":"Racomitrium"}, "species":{"string":"canescens"}, "infraspecies":[{"string":"ericoides", "rank":"f.", "authorship":"(F. Weber ex Brid.) Mönk.", "combinationAuthorTeam":{"authorTeam":"Mönk.", "author":["Mönk."]}, "basionymAuthorTeam":{"authorTeam":"F. Weber", "author":["F. Weber"], "exAuthorTeam":{"authorTeam":"Brid.", "author":["Brid."]}}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 21], "22":["infraspecific_type", 27], "28":["infraspecies", 37], "39":["author_word", 41], "42":["author_word", 47], "51":["author_word", 56], "58":["author_word", 63]}}}
|
300
|
+
Polypodium pectinatum L. f., Rosenst.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L. f., Rosenst.", "normalized":"Polypodium pectinatum L. f., Rosenst.", "canonical":"Polypodium pectinatum", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L. f., Rosenst.", "basionymAuthorTeam":{"authorTeam":"L. f., Rosenst.", "author":["L. f.", "Rosenst."]}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 24], "25":["author_word", 27], "29":["author_word", 37]}}}
|
301
|
+
Polypodium pectinatum L. f.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum L. f.", "normalized":"Polypodium pectinatum L. f.", "canonical":"Polypodium pectinatum", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"L. f.", "basionymAuthorTeam":{"authorTeam":"L. f.", "author":["L. f."]}}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "22":["author_word", 24], "25":["author_word", 27]}}}
|
302
|
+
Polypodium pectinatum (L. f.) typica Rosent|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Polypodium pectinatum (L. f.) typica Rosent", "normalized":"Polypodium pectinatum (L. f.) typica Rosent", "canonical":"Polypodium pectinatum typica", "hybrid":false, "details":[{"genus":{"string":"Polypodium"}, "species":{"string":"pectinatum", "authorship":"(L. f.)", "basionymAuthorTeam":{"authorTeam":"L. f.", "author":["L. f."]}}, "infraspecies":[{"string":"typica", "rank":"n/a", "authorship":"Rosent", "basionymAuthorTeam":{"authorTeam":"Rosent", "author":["Rosent"]}}]}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 21], "23":["author_word", 25], "26":["author_word", 28], "30":["infraspecies", 36], "37":["author_word", 43]}}}
|
292
303
|
|
293
304
|
#year range
|
294
305
|
Tridentella tangeroae Bruce, 1987-92|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":2,"verbatim":"Tridentella tangeroae Bruce, 1987-92","normalized":"Tridentella tangeroae Bruce 1987-92","canonical":"Tridentella tangeroae","hybrid":false,"details":[{"genus":{"string":"Tridentella"},"species":{"string":"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]}}}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Rana aurora Baird and Girard, 1852; H.B. Shaffer et al., 2004 <---- WRONG CANONICAL FORM!!!!!!!!
|
2
|
+
|
3
|
+
Gemmula cf. cosmoi NP-2008 <--- WRONG CANONICAL FORM
|
4
|
+
Eupithecia cf. E. maestosa
|
5
|
+
Eupithecia cf. maestosa
|
6
|
+
Aleiodes Tetrasphaeropyx chumashanus => Aleiodes [subgenus] chumashanus
|
7
|
+
|
8
|
+
Cucurbita pepo subsp. ovifera x subsp. fraterna
|
9
|
+
|
10
|
+
Döringina Ihering 1929 (synonym) Dzzringina
|
11
|
+
Doringina Ihering, 1929 (synonym) Döringina
|
12
|
+
|
13
|
+
Lacanobia nr. subjuncta Bold:Aab, 0925 Lacanobia nr
|
14
|
+
Lacanobia sp. nr. subjuncta Bold:Aab, 0925 Lacanobia sp
|
15
|
+
|
16
|
+
Agropyron pectiniforme var. karabaljikji ined.? Agropyron pectiniforme
|
17
|
+
Shaanxilithes Xing, Yue & Zhang, 1984 Shaanxilithes ing
|
18
|
+
Parapandorina Xue, Tang, Yu & Zhou 1995 Parapandorina ue
|
19
|
+
|
20
|
+
Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien Potamogeton iilinoensis var. ventanicola af
|
21
|
+
Rhododendron weyrichii Maxim. f. albiflorum T.Yamaz. Rhododendron
|
22
|
+
|
23
|
+
Polypodium pectinatum L. f. typica Rosenst. Polypodium
|
24
|
+
Polypodium lineare C.Chr. f. caudatoattenuatum Takeda Polypodium
|
25
|
+
|
26
|
+
|
27
|
+
Rosa gallica × tomentosa var. eglandulosa R.Keller Rosa gallica
|
28
|
+
Rosa gallica × afzeliana subsp. vosagiaca forma subcomplicata R.Keller Rosa gallica
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: biodiversity19
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-01-25 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: treetop
|
16
|
-
requirement: &
|
16
|
+
requirement: &70227647806880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70227647806880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: parallel
|
27
|
-
requirement: &
|
27
|
+
requirement: &70227647806400 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70227647806400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70227647805920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70227647805920
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: treetop
|
49
|
-
requirement: &
|
49
|
+
requirement: &70227647805440 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70227647805440
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: parallel
|
60
|
-
requirement: &
|
60
|
+
requirement: &70227647804960 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70227647804960
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70227647804480 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70227647804480
|
80
80
|
description: Tools for biodiversity informatics
|
81
81
|
email: dmozzherin@gmail.com
|
82
82
|
executables:
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- spec/parser/scientific_name_dirty.spec.rb
|
116
116
|
- spec/parser/spec_helper.rb
|
117
117
|
- spec/parser/test_data.txt
|
118
|
+
- spec/parser/todo.txt
|
118
119
|
- spec/spec_helper.rb
|
119
120
|
homepage: http://github.com/GlobalNamesArchitecture/biodiversity
|
120
121
|
licenses: []
|