
# Use like:# perl bio3.pl Malvales "flowering plant" rosid-stub p## TODO: detect wikiproject automatically# TODO: plants use binomial as article name use strict;use Perlwikipedia;use URI::Escape;use LWP::UserAgent;use Encode; my $soonest_next_op = time;my $wait_time = 10; my $family = shift;my $biotype = shift;my $stubtype = shift;my $wikiproject = shift; print "Running Polbot's bio function, family = $family, biotype = $biotype, stubtype = $stubtype, wikiproject = $wikiproject\n"; my %xhabitat = ( '1.1' => 'boreal ]s', '1.2' => 'subarctic ]s', '1.3' => 'subantarctic ]s', '1.4' => 'temperate ]s', '1.5' => 'subtropical or tropical dry ]s', '1.6' => 'subtropical or tropical moist lowland ]s', '1.7' => 'subtropical or tropical mangrove ]s', '1.8' => 'subtropical or tropical ]s', '1.9' => 'subtropical or tropical moist ]s', '2.1' => 'dry ]', '2.2' => 'moist ]', '3.1' => 'subarctic ]', '3.2' => 'subantarctic ]', '3.3' => 'boreal ]', '3.4' => 'temperate ]', '3.5' => 'subtropical or tropical dry ]', '3.6' => 'subtropical or tropical moist ]', '3.7' => 'subtropical or tropical high-altitude ]', '3.8' => 'Mediterranean-type shrubby vegetation', '4.1' => ']', '4.2' => 'subarctic ]', '4.3' => 'subantarctic ]', '4.4' => 'temperate ]', '4.5' => 'subtropical or tropical dry lowland ]', '4.6' => 'subtropical or tropical seasonally wet or flooded lowland ]', '4.7' => 'subtropical or tropical high-altitude ]', '5.1' => ']s', '5.2' => 'intermittent ]s', '5.3' => 'shrub-dominated ]s', '5.4' => ']s', '5.5' => 'freshwater ]s', '5.6' => 'intermittent freshwater ]s', '5.7' => 'freshwater ]es', '5.8' => 'intermittent freshwater ]es', '5.9' => 'freshwater ]s', '5.10' => 'tundra ]s', '5.11' => 'Alpine ]s', '5.12' => 'geothermal ]s', '5.13' => 'inland deltas', '5.14' => 'saline ]s', '5.15' => 'intermittent saline ]s', '5.16' => 'saline ]es', '5.17' => 'intermittent saline ]es', '5.18' => 'inland ]s', '6' => 'rocky areas', '7.1' => ']s', '7.2' => 'subterranean habitats (other than caves)', '8.1' => 'hot ]s', '8.2' => 'temperate ]', '8.3' => 'cold ]', '9.1' => 'open ]s', '9.2' => 'shallow ]s', '9.3' => 'subtidal aquatic beds', '9.4' => ']s', '10.1' => 'rocky shores', '10.2' => 'sandy shores', '10.3' => '] waters', '10.4' => 'intertidal flats', '10.5' => 'intertidal ]es', '10.6' => 'coastal saline ]s', '10.7' => 'coastal freshwater ]s', '10.8' => ']s', '11.1' => ']', '11.2' => 'pastureland', '11.3' => ']s ', '11.4' => 'rural gardens', '11.5' => ']s', '11.6' => 'heavily degraded former forest', '12.1' => 'water storage areas', '12.2' => ']s', '12.3' => 'aquaculture ]s', '12.4' => 'salt exploitation sites', '12.5' => 'open excavations', '12.6' => '] areas', '12.7' => 'irrigated land', '12.8' => 'seasonally flooded agricultural land', '12.9' => ']s and ditches', '12.10' => 'man-made ]s', '13' => 'introduced vegetation'); my %xfamily = ( 'Compositae' => 'Asteraceae', 'Cruciferae' => 'Brassicaceae', 'Gramineae' => 'Poaceae', 'Guttiferae' => 'Clusiaceae', 'Labiatae' => 'Lamiaceae', 'Leguminosae' => 'Fabaceae', 'Palmae' => 'Arecaceae', 'Umbelliferae' => 'Apiaceae',); my %xzoologist = ( 'Abe' => "]", 'Able' => "]", 'Abbott' => "]", 'Acerbi' => "]", 'Acero' => "]", 'A. Adams' => "]", 'Agassiz' => "]", 'A. Agassiz' => "]", 'Aguilera' => "]", 'D. R. de Aguilera' => "]", 'Ahl' => "]", 'E. Ahl' => "]", 'Ahlstrom' => "]", 'Ahnelt' => "]", 'Aizawa' => "]", 'Akama' => "]", 'Akihito' => "]", 'Albert' => "]", 'Albertis' => "]", 'Alcock' => "]", 'Alexander' => "]", 'Alencar' => "]", 'Alfaro' => "]", 'Alifanov' => "]", 'Allain' => "]", 'Allen' => "]", 'G.M. Allen' => "]", 'G.R. Allen' => "]", 'Allioni' => "]", 'Almeida-Toledo' => "]", 'Amadon' => "]", 'Ambrosio' => "]", 'Ameghino' => "]", 'K. Andersen' => "]", 'Anderson' => "]", 'André' => "]", 'Andriashev' => "]", 'Andriyashev' => "]", 'Angas' => "]", 'Annandale' => "]", 'Antunes' => "]", 'Apesteguía' => "]", 'Appellöf' => "]", 'Archbold' => "]", 'Arcucci' => "]", 'Arrow' => "]", 'Asano' => "]", 'Atkinson' => "]", 'Aubé' => "]", 'Audebert' => "]", 'Audubon' => "]", 'Ausserer' => "]", 'Ayling' => "]", 'Ayres' => "]", 'Azuma' => "]", 'Bachman' => "]", 'Bailey' => "]", 'R. G. Bailey' => "]", 'R. M. Bailey' => "]", 'Baillon' => "]", 'Baird' => "]", 'Baker' => "]", 'Bakker' => "]", 'Balanov' => "]", 'C. C. Baldwin' => "]", 'W. J. Baldwin' => "]", 'Z. H. Baldwin' => "]", 'Ball' => "]", 'Balon' => "]", 'Balouet' => "]", 'Balss' => "]", 'Balushkin' => "]", 'Bandyopadhyay' => "]", 'Bangs' => "]", 'Bannerman' => "]", 'Bannikov' => "]", 'Bansok' => "]", 'Barbour' => "]", 'F.K. Barker' => "]", 'M.J. Barker' => "]", 'Barrett' => "]", 'Barrows' => "]", 'Barsbold' => "]", 'Bartenef' => "]", 'Bartlett' => "]", 'A. D. Bartlett' => "]", 'Barton' => "]", 'Baskin' => "]", 'Batchelder' => "]", 'Bate' => "]", 'Bates' => "]", 'Bateson' => "]", 'Bean' => "]", 'Beavan' => "]", 'Bechstein' => "]", 'Beddome' => "]", 'Bedriaga' => "]", 'Behr' => "]", 'Bell' => "]", 'Bemmel' => "]", 'Bendire' => "]", 'Benitez' => "]", 'Bennett' => "]", 'Bennett' => "]", 'Benson' => "]", 'Benson' => "]", 'Bent' => "]", 'Benton' => "]", 'Beresford' => "]", 'Berg' => "]", 'Berkenhout' => "]", 'Berla' => "]", 'Berland' => "]", 'Berlepsch' => "]", 'Berlioz' => "]", 'Berry' => "]", 'Berthold ' => "]", 'Bertkau' => "]", 'Bianco' => "]", 'Bibron' => "]", 'Bigot' => "]", 'Bilek' => "]", 'Billberg' => "]", 'Billings' => "]", 'Bingham' => "]", 'Biswas' => "]", 'Blache' => "]", 'Black' => "]", 'Blackwall' => "]", 'Blainville' => "]", 'Blanchard' => "]", 'Blanford' => "]", 'Blasius' => "]", 'W. Blasius' => "]", 'Bleeker' => "]", 'Bloch' => "]", 'Blumenbach' => "]", 'Blyth' => "]", 'Bocage' => "]", 'Bocourt' => "]", 'Boddaert' => "]", 'Boettger' => "]", 'Boetticher' => "]", 'Bogert' => "]", 'Boheman' => "]", 'F. Boie' => "]", 'H. Boie' => "]", 'Boisduval' => "]", 'Bolle' => "]", 'Bolotsky' => "]", 'Bonaparte' => "]", 'Bonaparte' => "]", 'Bond' => "]", 'Bonelli' => "]", 'Bonhote' => "]", 'Bonnaterre' => "]", 'Borkhausen' => "]", 'Borodin' => "]", 'Borsuk-Bialynicka' => "]", 'Bosc' => "]", 'Boucard' => "]", 'Boulenger' => "]", 'Bourcier' => "]", 'Bouvier' => "]", 'Bowdich' => "]", 'Bowerbank' => "]", 'Brandt' => "]", 'Brauer' => "]", 'A. E. Brehm' => "]", 'C. L. Brehm' => "]", 'Bremer' => "]", 'Bremi-Wolf' => "]", 'Brett-Surman' => "]", 'Brevoort' => "]", 'Brewster' => "]", 'Briggs' => "]", 'Brischke' => "]", 'Brisson' => "]", 'Brittinger' => "]", 'Brodkorb' => "]", 'Brongniart' => "]", 'C. Brongniart' => "]", 'Bronn' => "]", 'Brooke' => "]", 'Brookes' => "]", 'W. S. Brooks' => "]", 'Broom' => "]", 'Brown' => "]", 'Bruch' => "]", 'Bruguière' => "]", 'Brullé' => "]", 'Brünnich' => "]", 'Brusatte' => "]", 'H. Bryant' => "]", 'W. E. Bryant' => "]", 'Bücherl' => "]", 'Buckland' => "]", 'Buffetaut' => "]", 'Buller' => "]", 'Bunzel' => "]", 'Burchell' => "]", 'Burge' => "]", 'Burmeister' => "]", 'Burnett' => "]", 'Burns' => "]", 'Butler' => "]", 'Buttikofer' => "]", 'Buturlin' => "]", 'Cabanis' => "]", 'Cabrera' => "]", 'Caldwell' => "]", 'Calman' => "]", 'Calvert' => "]", 'Calvo' => "]", 'Cambiaso' => "]", 'Camerano' => "]", 'Camp' => "]", 'Campos' => "]", 'Canestrini' => "]", 'Cantor' => "]", 'Carlson' => "]", 'Carpenter' => "]", 'Carvalho' => "]", 'Cassin' => "]", 'Castelnau' => "]", 'Cervigón' => "]", 'Chabanaud' => "]", 'Chamberlin' => "]", 'Chapin' => "]", 'Chapman' => "]", 'Charig' => "]", 'Charpentier' => "]", 'Chasen' => "]", 'Chatterjee' => "]", 'Cherrie' => "]", 'Chiaie' => "]", 'Chiappe' => "]", 'Children' => "]", 'Christ' => "]", 'Chun' => "]", 'Chure' => "]", 'E. Clark' => "]", 'H. L. Clark' => "]", 'J. M. Clark' => "]", 'Clements' => "]", 'Clemmer' => "]", 'Clerck' => "]", 'Cloward' => "]", 'Colbert' => "]", 'Colston' => "]", 'Compagno' => "]", 'Conci' => "]", 'Conde' => "]", 'Conover' => "]", 'Conrad' => "]", 'Coombs' => "]", 'Cooper' => "]", 'Cooper' => "]", 'Cope' => "]", 'Coquerel' => "]", 'Coria' => "]", 'Cornalia' => "]", 'Cory' => "]", 'Costa' => "]", 'O.G. Costa' => "]", 'W.J.E.M. Costa' => "]", 'Coues' => "]", 'Cramer' => "]", 'F. Cramer' => "]", 'Crampton' => "]", 'Cretzschmar' => "]", 'Crewe' => "]", 'Crotch' => "]", 'Crowson' => "]", 'Currie' => "]", 'Curry Rogers' => "]", 'Curtis' => "]", 'Cuvier' => "]", 'F. Cuvier' => "]", 'Czerkas' => "]", 'da Costa' => "]", 'da Silva' => "]", 'Dahl' => "]", 'Dahlbom' => "]", 'Dale' => "]", 'Dall' => "]", 'Dalla Torre' => "]", 'Dana' => "]", 'Daudin' => "]", 'David' => "]", 'de Azevedo' => "]", 'de Beaufort' => "]", 'de Blainville' => "]", 'de Castelnau' => "]", 'de Filippi' => "]", 'de Geer' => "]", 'de Hann' => "]", 'de Kay' => "]", 'de Man' => "]", 'de Naurois' => "]", 'de Nicéville' => "]", 'Bory de Saint-Vincent' => "]", 'de Valai' => "]", 'de Vis' => "]", 'de Winton' => "]", 'Delacour' => "]", 'Denis' => "]", 'Depéret' => "]", 'Deppe' => "]", 'Des Murs' => "]", 'Desfontaines' => "]", 'Desmarest' => "]", 'Diard' => "]", 'Dieffenbach' => "]", 'Dingus' => "]", 'Distant' => "]", 'Djakonov' => "]", 'Dobson' => "]", 'Döderlein' => "]", 'Dodson' => "]", 'Dollman' => "]", 'Dollo' => "]", 'Donis.' => "]", 'Donisthorpe' => "]", 'Donovan' => "]", "d'Orbigny" => "]", 'Dong' => "]", 'Doria' => "]", 'Doubleday' => "]", 'Drury' => "]", 'du Bus de Gisignies' => "]", 'du Chaillu' => "]", 'C. F. Dubois' => "]", 'Dufour' => "]", 'Duftschmid' => "]", 'Duméril' => "]", 'Dumont' => "]", 'Duncker' => "]", 'Duponchel' => "]", 'Duvernoy' => "]", 'Dwight' => "]", 'Earle' => "]", 'Eaton' => "]", 'Edwards' => "]", 'Ehrenberg' => "]", 'Eichwald' => "]", 'Eigenmann' => "]", 'R.S. Eigenmann' => "]", 'R. Smith' => "]", 'Ellerman' => "]", 'Elliot' => "]", 'Emery' => "]", 'A.R. Emery' => "]", 'Enslin' => "]", 'Erichson' => "]", 'Erxleben' => "]", 'Eschmeyer' => "]", 'Eschscholtz' => "]", 'Esper' => "]", 'Evermann' => "]", 'Eversmann' => "]", 'Evseenko' => "]", 'Eyton' => "]", 'Fabricius' => "]", 'Fairmaire' => "]", 'Falla' => "]", 'Fallén' => "]", 'Feinberg' => "]", 'C. Felder' => "]", 'R. Felder' => "]", 'Fernandes-Matioli' => "]", 'Ferrari-Perez ' => "]", 'Ferraris' => "]", 'Férussac' => "]", 'Filhol' => "]", 'Finsch' => "]", 'Fioroni' => "]", 'G. Fischer' => "]", 'Fischer de Waldheim' => "]", 'Fischer von Waldheim' => "]", 'J. Fischer' => "]", 'J. G. Fischer' => "]", 'Fitzinger' => "]", 'J. H. Fleming' => "]", 'Fleming' => "]", 'Fonscolombe' => "]", 'Forbes' => "]", 'Forel' => "]", 'Forsius' => "]", 'Forsskål' => "]", 'Forsyth Major' => "]", 'Forster' => "]", 'Forster' => "]", 'C. A. Forster' => "]", 'G. Forster' => "]", 'Först