biodiversity19 1.0.10 → 1.0.11
Sign up to get free protection for your applications and to get access to all the features.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.11
|
@@ -403,8 +403,7 @@ grammar ScientificNameClean
|
|
403
403
|
end
|
404
404
|
|
405
405
|
rule rank
|
406
|
-
("morph."/"f.sp."/"B"/"ssp."/"mut."/"nat"/"nothosubsp."/"convar."/"pseudovar."/"sect."/"ser."/"var."/"subvar."/ "[var.]" /"var"/"subsp."/"subsp"/"subf."/"race"/"α"
|
407
|
-
/"ββ"/"β"/"γ"/"δ"/"ε"/"φ"/"θ"/"μ"/"a."/"b."/"c."/"d."/"e."/"g."/"k."/"****"/"**"/"*")
|
406
|
+
("morph."/"f.sp."/"B"/"ssp."/"ssp"/"mut."/"nat"/"nothosubsp."/"convar."/"pseudovar."/"sect."/"ser."/"var."/"subvar."/ "[var.]" /"var"/"subsp."/"subsp"/"subf."/"race"/"forma"/"form."/"form"/"fo."/"f."/"α"/"ββ"/"β"/"γ"/"δ"/"ε"/"φ"/"θ"/"μ"/"a."/"b."/"c."/"d."/"e."/"g."/"k."/"****"/"**"/"*")
|
408
407
|
{
|
409
408
|
def value
|
410
409
|
text_value.strip
|
@@ -430,27 +429,6 @@ grammar ScientificNameClean
|
|
430
429
|
rank_forma
|
431
430
|
end
|
432
431
|
|
433
|
-
rule rank_forma
|
434
|
-
("forma"/"form."/"form"/"fo."/"f.")
|
435
|
-
{
|
436
|
-
def value
|
437
|
-
"f."
|
438
|
-
end
|
439
|
-
def apply(a)
|
440
|
-
" " + value + " " + a.value
|
441
|
-
end
|
442
|
-
def canonical(a)
|
443
|
-
" " + a.value
|
444
|
-
end
|
445
|
-
def pos(a)
|
446
|
-
{interval.begin => ['infraspecific_type', interval.end], a.interval.begin => ['infraspecies', a.interval.end]}
|
447
|
-
end
|
448
|
-
def details(a = nil)
|
449
|
-
{:infraspecies => {:string => (a.value rescue nil), :rank => value}}
|
450
|
-
end
|
451
|
-
}
|
452
|
-
end
|
453
|
-
|
454
432
|
rule species
|
455
433
|
a:species_string space b:authorship {
|
456
434
|
def value
|
data/lib/biodiversity/parser.rb
CHANGED
@@ -10,7 +10,7 @@ module PreProcessor
|
|
10
10
|
NOTES = /\s+(species\s+group|species\s+complex|group|author)\b.*$/i
|
11
11
|
TAXON_CONCEPTS1 = /\s+(sensu\.|sensu|auct\.|auct)\b.*$/i
|
12
12
|
TAXON_CONCEPTS2 = /\s+(\(?s\.\s?s\.|\(?s\.\s?l\.|\(?s\.\s?str\.|\(?s\.\s?lat\.|sec\.|sec|near)\b.*$/
|
13
|
-
TAXON_CONCEPTS3 = /(,\s*|\s+)(pro parte|p
|
13
|
+
TAXON_CONCEPTS3 = /(,\s*|\s+)(pro parte|p\.\s?p\.)\s*$/i
|
14
14
|
NOMEN_CONCEPTS = /(,\s*|\s+)(\(?nomen|\(?nom\.|\(?comb\.).*$/i
|
15
15
|
LAST_WORD_JUNK = /(,\s*|\s+)(von|van|sensu|new|non|nec|cf|ssp|subsp|subgen|hybrid|hort.|hort)\s*$/i
|
16
16
|
|
@@ -91,9 +91,9 @@ describe ScientificNameClean do
|
|
91
91
|
[ "Cerastium arvense var. fuegianum Hook.f.", [{:genus=>{:string=>"Cerastium"}, :species=>{:string=>"arvense"}, :infraspecies=>[{:string=>"fuegianum", :rank=>"var.", :authorship=>"Hook.f.", :basionymAuthorTeam=>{:authorTeam=>"Hook.f.", :author=>["Hook.f."]}}]}], 'Cerastium arvense var. fuegianum Hook.f.'],
|
92
92
|
[ "Cerastium arvense ssp. velutinum var. velutinum (Raf.) Britton f.", [{:genus=>{:string=>"Cerastium"}, :species=>{:string=>"arvense"}, :infraspecies=>[{:string=>"velutinum", :rank=>"ssp."}, {:string=>"velutinum", :rank=>"var.", :authorship=>"(Raf.) Britton f.", :combinationAuthorTeam=>{:authorTeam=>"Britton f.", :author=>["Britton f."]}, :basionymAuthorTeam=>{:authorTeam=>"Raf.", :author=>["Raf."]}}]}], "Cerastium arvense ssp. velutinum var. velutinum (Raf.) Britton f."],
|
93
93
|
["Amelanchier arborea f. hirsuta (Michx. f.) Fernald", [{:infraspecies=>[{:basionymAuthorTeam=>{:author=>["Michx. f."], :authorTeam=>"Michx. f."}, :string=>"hirsuta", :rank=>"f.", :combinationAuthorTeam=>{:author=>["Fernald"], :authorTeam=>"Fernald"}, :authorship=>"(Michx. f.) Fernald"}], :genus=>{:string=>"Amelanchier"}, :species=>{:string=>"arborea"}}], "Amelanchier arborea f. hirsuta (Michx. f.) Fernald"],
|
94
|
-
["Betula pendula fo. dalecarlica (L. f.) C.K. Schneid.", [{:infraspecies=>[{:basionymAuthorTeam=>{:author=>["L. f."], :authorTeam=>"L. f."}, :string=>"dalecarlica", :rank=>"
|
94
|
+
["Betula pendula fo. dalecarlica (L. f.) C.K. Schneid.", [{:infraspecies=>[{:basionymAuthorTeam=>{:author=>["L. f."], :authorTeam=>"L. f."}, :string=>"dalecarlica", :rank=>"fo.", :combinationAuthorTeam=>{:author=>["C.K. Schneid."], :authorTeam=>"C.K. Schneid."}, :authorship=>"(L. f.) C.K. Schneid."}], :genus=>{:string=>"Betula"}, :species=>{:string=>"pendula"}}], "Betula pendula fo. dalecarlica (L. f.) C.K. Schneid."],
|
95
95
|
["Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk.", [{: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."]}}}]}], "Racomitrium canescens f. ericoides (F. Weber ex Brid.) Mönk."],
|
96
|
-
["Racomitrium canescens forma ericoides (F. Weber ex Brid.) Mönk.", [{:genus=>{:string=>"Racomitrium"}, :species=>{:string=>"canescens"}, :infraspecies=>[{:string=>"ericoides", :rank=>"
|
96
|
+
["Racomitrium canescens forma ericoides (F. Weber ex Brid.) Mönk.", [{:genus=>{:string=>"Racomitrium"}, :species=>{:string=>"canescens"}, :infraspecies=>[{:string=>"ericoides", :rank=>"forma", :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."]}}}]}], "Racomitrium canescens forma ericoides (F. Weber ex Brid.) Mönk."],
|
97
97
|
]
|
98
98
|
names.each do |sn, sn_details, sn_value|
|
99
99
|
parse(sn).should_not be_nil
|
@@ -363,21 +363,21 @@ describe ScientificNameClean do
|
|
363
363
|
it "should parse name with forma/fo./form./f." do
|
364
364
|
sn = "Caulerpa cupressoides forma nuda"
|
365
365
|
parse(sn).should_not be_nil
|
366
|
-
value(sn).should == "Caulerpa cupressoides
|
366
|
+
value(sn).should == "Caulerpa cupressoides forma nuda"
|
367
367
|
canonical(sn).should == "Caulerpa cupressoides nuda"
|
368
|
-
details(sn).should == [{:genus=>{:string=>"Caulerpa"}, :species=>{:string=>"cupressoides"}, :infraspecies=>[{:string=>"nuda", :rank=>"
|
368
|
+
details(sn).should == [{:genus=>{:string=>"Caulerpa"}, :species=>{:string=>"cupressoides"}, :infraspecies=>[{:string=>"nuda", :rank=>"forma"}]}]
|
369
369
|
pos(sn).should == {0=>["genus", 8], 9=>["species", 21], 22=>["infraspecific_type", 27], 28=>["infraspecies", 32]}
|
370
370
|
sn = "Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó"
|
371
371
|
parse(sn).should_not be_nil
|
372
|
-
value("Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó").should == "Chlorocyperus glaber
|
372
|
+
value("Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó").should == "Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó"
|
373
373
|
canonical(sn).should == "Chlorocyperus glaber fasciculariforme"
|
374
|
-
details(sn).should == [{:genus=>{:string=>"Chlorocyperus"}, :species=>{:string=>"glaber"}, :infraspecies=>[{:string=>"fasciculariforme", :rank=>"
|
374
|
+
details(sn).should == [{:genus=>{:string=>"Chlorocyperus"}, :species=>{:string=>"glaber"}, :infraspecies=>[{:string=>"fasciculariforme", :rank=>"form.", :authorship=>"(Lojac.) Soó", :combinationAuthorTeam=>{:authorTeam=>"Soó", :author=>["Soó"]}, :basionymAuthorTeam=>{:authorTeam=>"Lojac.", :author=>["Lojac."]}}]}]
|
375
375
|
pos(sn).should == {0=>["genus", 13], 14=>["species", 20], 21=>["infraspecific_type", 26], 27=>["infraspecies", 43], 45=>["author_word", 51], 53=>["author_word", 56]}
|
376
376
|
sn = "Bambusa nana Roxb. fo. alphonse-karri (Mitford ex Satow) Makino ex Shiros."
|
377
377
|
parse(sn).should_not be_nil
|
378
|
-
value(sn).should == "Bambusa nana Roxb.
|
378
|
+
value(sn).should == "Bambusa nana Roxb. fo. alphonse-karri (Mitford ex Satow) Makino ex Shiros."
|
379
379
|
canonical(sn).should == "Bambusa nana alphonse-karri"
|
380
|
-
details(sn).should == [{:genus=>{:string=>"Bambusa"}, :species=>{:string=>"nana", :authorship=>"Roxb.", :basionymAuthorTeam=>{:authorTeam=>"Roxb.", :author=>["Roxb."]}}, :infraspecies=>[{:string=>"alphonse-karri", :rank=>"
|
380
|
+
details(sn).should == [{:genus=>{:string=>"Bambusa"}, :species=>{:string=>"nana", :authorship=>"Roxb.", :basionymAuthorTeam=>{:authorTeam=>"Roxb.", :author=>["Roxb."]}}, :infraspecies=>[{:string=>"alphonse-karri", :rank=>"fo.", :authorship=>"(Mitford ex Satow) Makino ex Shiros.", :combinationAuthorTeam=>{:authorTeam=>"Makino", :author=>["Makino"], :exAuthorTeam=>{:authorTeam=>"Shiros.", :author=>["Shiros."]}}, :basionymAuthorTeam=>{:authorTeam=>"Mitford", :author=>["Mitford"], :exAuthorTeam=>{:authorTeam=>"Satow", :author=>["Satow"]}}}]}]
|
381
381
|
pos(sn).should == {0=>["genus", 7], 8=>["species", 12], 13=>["author_word", 18], 19=>["infraspecific_type", 22], 23=>["infraspecies", 37], 39=>["author_word", 46], 50=>["author_word", 55], 57=>["author_word", 63], 67=>["author_word", 74]}
|
382
382
|
sn = " Sphaerotheca fuliginea f. dahliae Movss. 1967 "
|
383
383
|
sn = "Sphaerotheca fuliginea f. dahliae Movss. 1967"
|
@@ -556,6 +556,8 @@ describe ScientificNameClean do
|
|
556
556
|
details(sn).should == [{:genus=>{:string=>"Flexibacter"}, :species=>{:string=>"elegans", :authorship=>"Soriano 1945, non Lewin 1969", :basionymAuthorTeam=>{:authorTeam=>"Soriano", :author=>["Soriano"], :year=>"1945"}}}]
|
557
557
|
sn = 'Schottera nicaeënsis (J.V. Lamouroux ex Duby) Guiry & Hollenberg'
|
558
558
|
details(sn).should == [{:genus=>{:string=>"Schottera"}, :species=>{:string=>"nicaeënsis", :authorship=>"(J.V. Lamouroux ex Duby) Guiry & Hollenberg", :combinationAuthorTeam=>{:authorTeam=>"Guiry & Hollenberg", :author=>["Guiry", "Hollenberg"]}, :basionymAuthorTeam=>{:authorTeam=>"J.V. Lamouroux", :author=>["J.V. Lamouroux"], :exAuthorTeam=>{:authorTeam=>"Duby", :author=>["Duby"]}}}}]
|
559
|
+
sn = 'Deschampsia cespitosa ssp pumila'
|
560
|
+
details(sn).should == [{:genus=>{:string=>"Deschampsia"}, :species=>{:string=>"cespitosa"}, :infraspecies=>[{:string=>"pumila", :rank=>"ssp"}]}]
|
559
561
|
end
|
560
562
|
|
561
563
|
# Combination genus names should be merged without dash or capital letter
|
data/spec/parser/test_data.txt
CHANGED
@@ -41,6 +41,7 @@ Ba Solem 1983|{"scientificName":{"parsed":true, "parser_version":"test_version",
|
|
41
41
|
|
42
42
|
#canonical binomial
|
43
43
|
Pseudocercospora dendrobii|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii","normalized":"Pseudocercospora dendrobii","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii"}}],"positions":{"0":["genus",16],"21":["species",30]}}}
|
44
|
+
Cucurbita pepo|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cucurbita pepo", "normalized":"Cucurbita pepo", "canonical":"Cucurbita pepo", "hybrid":false, "details":[{"genus":{"string":"Cucurbita"}, "species":{"string":"pepo"}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 14]}}}
|
44
45
|
|
45
46
|
#binomial with author and a year
|
46
47
|
Platypus bicaudatulus Schedl 1935|{"scientificName":{"parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Platypus bicaudatulus Schedl 1935","normalized":"Platypus bicaudatulus Schedl 1935","canonical":"Platypus bicaudatulus","hybrid":false,"details":[{"genus":{"string":"Platypus"},"species":{"string":"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]}}}
|
@@ -105,8 +106,8 @@ Hydnellum scrobiculatum zonatum|{"scientificName":{"parsed":true, "parser_versio
|
|
105
106
|
Aus bus Linn. var. bus|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Aus bus Linn. var. bus", "normalized":"Aus bus Linn. var. bus", "canonical":"Aus bus bus", "hybrid":false, "details":[{"genus":{"string":"Aus"}, "species":{"string":"bus", "authorship":"Linn.", "basionymAuthorTeam":{"authorTeam":"Linn.", "author":["Linn."]}}, "infraspecies":[{"string":"bus", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 3], "4":["species", 7], "8":["author_word", 13], "14":["infraspecific_type", 18], "19":["infraspecies", 22]}}}
|
106
107
|
Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987|{"scientificName":{"parsed":true, "parser_version":"test_version", "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":{"string":"Agalinis"}, "species":{"string":"purpurea", "authorship":"(L.) Briton", "combinationAuthorTeam":{"authorTeam":"Briton", "author":["Briton"]}, "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"borealis", "rank":"var.", "authorship":"(Berg.) Peterson 1987", "combinationAuthorTeam":{"authorTeam":"Peterson", "author":["Peterson"], "year":"1987"}, "basionymAuthorTeam":{"authorTeam":"Berg.", "author":["Berg."]}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17], "19":["author_word", 21], "23":["author_word", 29], "30":["infraspecific_type", 34], "35":["infraspecies", 43], "45":["author_word", 50], "52":["author_word", 60], "61":["year", 65]}}}
|
107
108
|
Callideriphus flavicollis morph. reductus Fuchs 1961|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Callideriphus flavicollis morph. reductus Fuchs 1961", "normalized":"Callideriphus flavicollis morph. reductus Fuchs 1961", "canonical":"Callideriphus flavicollis reductus", "hybrid":false, "details":[{"genus":{"string":"Callideriphus"}, "species":{"string":"flavicollis"}, "infraspecies":[{"string":"reductus", "rank":"morph.", "authorship":"Fuchs 1961", "basionymAuthorTeam":{"authorTeam":"Fuchs", "author":["Fuchs"], "year":"1961"}}]}], "parser_run":1, "positions":{"0":["genus", 13], "14":["species", 25], "26":["infraspecific_type", 32], "33":["infraspecies", 41], "42":["author_word", 47], "48":["year", 52]}}}
|
108
|
-
Caulerpa cupressoides forma nuda|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Caulerpa cupressoides forma nuda", "normalized":"Caulerpa cupressoides
|
109
|
-
Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó", "normalized":"Chlorocyperus glaber
|
109
|
+
Caulerpa cupressoides forma nuda|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Caulerpa cupressoides forma nuda", "normalized":"Caulerpa cupressoides forma nuda", "canonical":"Caulerpa cupressoides nuda", "hybrid":false, "details":[{"genus":{"string":"Caulerpa"}, "species":{"string":"cupressoides"}, "infraspecies":[{"string":"nuda", "rank":"forma"}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 21], "22":["infraspecific_type", 27], "28":["infraspecies", 32]}}}
|
110
|
+
Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó", "normalized":"Chlorocyperus glaber form. fasciculariforme (Lojac.) Soó", "canonical":"Chlorocyperus glaber fasciculariforme", "hybrid":false, "details":[{"genus":{"string":"Chlorocyperus"}, "species":{"string":"glaber"}, "infraspecies":[{"string":"fasciculariforme", "rank":"form.", "authorship":"(Lojac.) Soó", "combinationAuthorTeam":{"authorTeam":"Soó", "author":["Soó"]}, "basionymAuthorTeam":{"authorTeam":"Lojac.", "author":["Lojac."]}}]}], "parser_run":1, "positions":{"0":["genus", 13], "14":["species", 20], "21":["infraspecific_type", 26], "27":["infraspecies", 43], "45":["author_word", 51], "53":["author_word", 56]}}}
|
110
111
|
Sphaerotheca fuliginea f. dahliae Movss. 1967|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Sphaerotheca fuliginea f. dahliae Movss. 1967", "normalized":"Sphaerotheca fuliginea f. dahliae Movss. 1967", "canonical":"Sphaerotheca fuliginea dahliae", "hybrid":false, "details":[{"genus":{"string":"Sphaerotheca"}, "species":{"string":"fuliginea"}, "infraspecies":[{"string":"dahliae", "rank":"f.", "authorship":"Movss. 1967", "basionymAuthorTeam":{"authorTeam":"Movss.", "author":["Movss."], "year":"1967"}}]}], "parser_run":1, "positions":{"0":["genus", 12], "16":["species", 25], "29":["infraspecific_type", 31], "36":["infraspecies", 43], "47":["author_word", 53], "58":["year", 62]}}}
|
111
112
|
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]}}}
|
112
113
|
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]}}}
|
@@ -294,9 +295,9 @@ Cerastium arvense var. fuegianum Hook. f.|{"scientificName":{"parsed":true, "par
|
|
294
295
|
Cerastium arvense var. fuegianum Hook.f.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cerastium arvense var. fuegianum Hook.f.", "normalized":"Cerastium arvense var. fuegianum Hook.f.", "canonical":"Cerastium arvense fuegianum", "hybrid":false, "details":[{"genus":{"string":"Cerastium"}, "species":{"string":"arvense"}, "infraspecies":[{"string":"fuegianum", "rank":"var.", "authorship":"Hook.f.", "basionymAuthorTeam":{"authorTeam":"Hook.f.", "author":["Hook.f."]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 17], "18":["infraspecific_type", 22], "23":["infraspecies", 32], "33":["author_word", 40]}}}
|
295
296
|
Cerastium arvense ssp. velutinum var. velutinum (Raf.) Britton f.|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Cerastium arvense ssp. velutinum var. velutinum (Raf.) Britton f.", "normalized":"Cerastium arvense ssp. velutinum var. velutinum (Raf.) Britton f.", "canonical":"Cerastium arvense velutinum velutinum", "hybrid":false, "details":[{"genus":{"string":"Cerastium"}, "species":{"string":"arvense"}, "infraspecies":[{"string":"velutinum", "rank":"ssp."}, {"string":"velutinum", "rank":"var.", "authorship":"(Raf.) Britton f.", "combinationAuthorTeam":{"authorTeam":"Britton f.", "author":["Britton f."]}, "basionymAuthorTeam":{"authorTeam":"Raf.", "author":["Raf."]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 17], "18":["infraspecific_type", 22], "23":["infraspecies", 32], "33":["infraspecific_type", 37], "38":["infraspecies", 47], "49":["author_word", 53], "55":["author_word", 62], "63":["author_word", 65]}}}
|
296
297
|
Amelanchier arborea f. hirsuta (Michx. f.) Fernald|{"scientificName":{"parsed":true, "parser_version":"test_version", "verbatim":"Amelanchier arborea f. hirsuta (Michx. f.) Fernald", "normalized":"Amelanchier arborea f. hirsuta (Michx. f.) Fernald", "canonical":"Amelanchier arborea hirsuta", "hybrid":false, "details":[{"genus":{"string":"Amelanchier"}, "species":{"string":"arborea"}, "infraspecies":[{"string":"hirsuta", "rank":"f.", "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", 22], "23":["infraspecies", 30], "32":["author_word", 38], "39":["author_word", 41], "43":["author_word", 50]}}}
|
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
|
298
|
+
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 fo. dalecarlica (L. f.) C.K. Schneid.", "canonical":"Betula pendula dalecarlica", "hybrid":false, "details":[{"genus":{"string":"Betula"}, "species":{"string":"pendula"}, "infraspecies":[{"string":"dalecarlica", "rank":"fo.", "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]}}}
|
298
299
|
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]}}}
|
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
|
300
|
+
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 forma ericoides (F. Weber ex Brid.) Mönk.", "canonical":"Racomitrium canescens ericoides", "hybrid":false, "details":[{"genus":{"string":"Racomitrium"}, "species":{"string":"canescens"}, "infraspecies":[{"string":"ericoides", "rank":"forma", "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
301
|
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
302
|
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
303
|
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]}}}
|
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.11
|
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: 2012-
|
12
|
+
date: 2012-06-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: treetop
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: parallel
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: jeweler
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: treetop
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: parallel
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: rspec
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,7 +101,12 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
description: Tools for biodiversity informatics
|
81
111
|
email: dmozzherin@gmail.com
|
82
112
|
executables:
|
@@ -137,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
167
|
version: '0'
|
138
168
|
requirements: []
|
139
169
|
rubyforge_project:
|
140
|
-
rubygems_version: 1.8.
|
170
|
+
rubygems_version: 1.8.24
|
141
171
|
signing_key:
|
142
172
|
specification_version: 3
|
143
173
|
summary: Parser of scientific names
|