Interface to 'Biodiversity' 'Heritage' Library ('BHL') (< https://www.biodiversitylibrary.org/>) API (< https://www.biodiversitylibrary.org/docs/api3.html>). 'BHL' is a repository of 'digitized' literature on 'biodiversity' studies, including 'floras', research papers, and more.
rbhl
is an R interface to the Biodiversity Heritage Library API.
Authentication:
options(BioHerLibKey = "YOURBHLAPIKEY")
, and the functions within this package will be able to use your API key without you having to enter it every time you run a search.Documentation:
Stable version from CRAN
install.packages("rbhl")
Development version from GitHub
install.packages("devtools")devtools::install_github("ropensci/rbhl")
library("rbhl")
You can output various formats using the as
parameter, setting to table
, list
, json
or xml
.
The default is usually table
:
bhl_authorsearch(name='dimmock')#> # A tibble: 6 × 12#> CreatorID Name Role Numeration Unit Title Location#> * <int> <chr> <lgl> <chr> <chr> <chr> <chr>#> 1 189035 Dimmock, Anna Katherina NA #> 2 59023 Dimmock, G NA #> 3 189042 Dimmock, Geo NA #> 4 189021 Dimmock, George NA #> 5 1970 Dimmock, George, NA #> 6 8126 Dimmock, George, NA #> # ... with 5 more variables: FullerForm <chr>, Relationship <lgl>,#> # TitleOfWork <lgl>, Dates <chr>, CreatorUrl <chr>
list output
bhl_authorsearch(name='dimmock', as='list')$Result[[1]]#> $CreatorID#> [1] 189035#> #> $Name#> [1] "Dimmock, Anna Katherina"#> #> $Role#> NULL#> #> $Numeration#> [1] ""#> #> $Unit#> [1] ""#> #> $Title#> [1] ""#> #> $Location#> [1] ""#> #> $FullerForm#> [1] ""#> #> $Relationship#> NULL#> #> $TitleOfWork#> NULL#> #> $Dates#> [1] ""#> #> $CreatorUrl#> [1] "http://www.biodiversitylibrary.org/creator/189035"
XML output
bhl_authorsearch(name='dimmock', as='xml')#> [1] "<?xml version=\"1.0\" encoding=\"utf-8\"?><Response xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Status>ok</Status><Result><Creator><CreatorID>189035</CreatorID><Name>Dimmock, Anna Katherina</Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates /><CreatorUrl>http://www.biodiversitylibrary.org/creator/189035</CreatorUrl></Creator><Creator><CreatorID>59023</CreatorID><Name>Dimmock, G</Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates /><CreatorUrl>http://www.biodiversitylibrary.org/creator/59023</CreatorUrl></Creator><Creator><CreatorID>189042</CreatorID><Name>Dimmock, Geo </Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates /><CreatorUrl>http://www.biodiversitylibrary.org/creator/189042</CreatorUrl></Creator><Creator><CreatorID>189021</CreatorID><Name>Dimmock, George</Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates /><CreatorUrl>http://www.biodiversitylibrary.org/creator/189021</CreatorUrl></Creator><Creator><CreatorID>1970</CreatorID><Name>Dimmock, George,</Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates>1852-</Dates><CreatorUrl>http://www.biodiversitylibrary.org/creator/1970</CreatorUrl></Creator><Creator><CreatorID>8126</CreatorID><Name>Dimmock, George,</Name><Numeration /><Unit /><Title /><Location /><FullerForm /><Dates>1852-1930</Dates><CreatorUrl>http://www.biodiversitylibrary.org/creator/8126</CreatorUrl></Creator></Result></Response>"
JSON output
bhl_authorsearch(name='dimmock', as='json')#> [1] "{\"Status\":\"ok\",\"ErrorMessage\":null,\"Result\":[{\"CreatorID\":189035,\"Name\":\"Dimmock, Anna Katherina\",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/189035\"},{\"CreatorID\":59023,\"Name\":\"Dimmock, G\",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/59023\"},{\"CreatorID\":189042,\"Name\":\"Dimmock, Geo \",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/189042\"},{\"CreatorID\":189021,\"Name\":\"Dimmock, George\",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/189021\"},{\"CreatorID\":1970,\"Name\":\"Dimmock, George,\",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"1852-\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/1970\"},{\"CreatorID\":8126,\"Name\":\"Dimmock, George,\",\"Role\":null,\"Numeration\":\"\",\"Unit\":\"\",\"Title\":\"\",\"Location\":\"\",\"FullerForm\":\"\",\"Relationship\":null,\"TitleOfWork\":null,\"Dates\":\"1852-1930\",\"CreatorUrl\":\"http://www.biodiversitylibrary.org/creator/8126\"}]}"
bhl_gettitlemetadata(titleid = 1726, items = TRUE, as="list")$Result$Items#> [[1]]#> [[1]]$ItemID#> [1] 16800#> #> [[1]]$PrimaryTitleID#> [1] 1726#> #> [[1]]$ThumbnailPageID#> [1] 1328691#> #> [[1]]$Source#> [1] "Internet Archive"#> #> [[1]]$SourceIdentifier#> [1] "anatomyofmouthpa00dimm"#> #> [[1]]$Volume#> [1] ""#> #> [[1]]$Year#> NULL#> #> [[1]]$CopySpecificInformation#> NULL#> #> [[1]]$Contributor#> [1] "MBLWHOI Library"#> #> [[1]]$RightsHolder#> NULL#> #> [[1]]$ScanningInstitution#> NULL#> #> [[1]]$Sponsor#> [1] "MBLWHOI Library"#> #> [[1]]$Language#> [1] "English"#> #> [[1]]$LicenseUrl#> [1] ""#> #> [[1]]$Rights#> [1] ""#> #> [[1]]$DueDiligence#> [1] ""#> #> [[1]]$CopyrightStatus#> [1] "Public domain. The BHL considers that this work is no longer under copyright protection."#> #> [[1]]$CopyrightRegion#> [1] ""#> #> [[1]]$ExternalUrl#> [1] ""#> #> [[1]]$ItemUrl#> [1] "http://www.biodiversitylibrary.org/item/16800"#> #> [[1]]$TitleUrl#> [1] "http://www.biodiversitylibrary.org/bibliography/1726"#> #> [[1]]$ItemThumbUrl#> [1] "http://www.biodiversitylibrary.org/pagethumb/1328691"#> #> [[1]]$Pages#> NULL#> #> [[1]]$Parts#> NULL#> #> [[1]]$Collections#> NULL
bhl_booksearch(title='Selborne', lname='White', volume=2, edition='new', year=1825, collectionid=4, language='eng')#> # A tibble: 1 × 22#> TitleID BibliographicLevel#> * <int> <chr>#> 1 32868 #> # ... with 20 more variables: FullTitle <chr>, ShortTitle <lgl>,#> # SortTitle <lgl>, PartNumber <chr>, PartName <chr>, CallNumber <lgl>,#> # Edition <chr>, PublisherPlace <chr>, PublisherName <chr>,#> # PublicationDate <chr>, PublicationFrequency <lgl>, Doi <lgl>,#> # TitleUrl <chr>, Authors <list>, Subjects <lgl>, Identifiers <lgl>,#> # Collections <lgl>, Variants <lgl>, Items <list>, Notes <lgl>
bhl_titlesearchsimple('husbandry')#> # A tibble: 154 × 22#> TitleID BibliographicLevel#> * <int> <chr>#> 1 25997 Monograph/Item#> 2 44403 Monograph/Item#> 3 27062 Monograph/Item#> 4 41956 Monograph/Item#> 5 44462 Monograph/Item#> 6 28081 Monograph/Item#> 7 56265 Monograph/Item#> 8 58205 Monograph/Item#> 9 51946 Monograph/Item#> 10 55665 Monograph/Item#> # ... with 144 more rows, and 20 more variables: FullTitle <chr>,#> # ShortTitle <chr>, SortTitle <chr>, PartNumber <chr>, PartName <chr>,#> # CallNumber <lgl>, Edition <chr>, PublisherPlace <chr>,#> # PublisherName <chr>, PublicationDate <chr>,#> # PublicationFrequency <chr>, Doi <lgl>, TitleUrl <lgl>, Authors <lgl>,#> # Subjects <lgl>, Identifiers <lgl>, Collections <lgl>, Variants <lgl>,#> # Items <lgl>, Notes <lgl>
bhl_getlanguages()#> # A tibble: 69 × 2#> LanguageCode LanguageName#> * <chr> <chr>#> 1 AFR Afrikaans#> 2 ARA Arabic#> 3 ARC Aramaic#> 4 MAP Austronesian (Other)#> 5 BUL Bulgarian#> 6 BUR Burmese#> 7 CAR Carib#> 8 CAT Catalan#> 9 CEL Celtic (Other)#> 10 CHI Chinese#> # ... with 59 more rows
rbhl
in R doing citation(package = 'rbhl')
httr
with crul
for http client (#21)bhl_getpartendnote()
and bhl_gettitleendnote
methods removed
due to their removal in the BHL APIbhl_getinstitutions()
(#16)data.frame
outputs created when as = "table"
are now
replaced by using tibble
. in addition, the data.frame used to be
printed as a data.frame, but was actually inside a list accessible by
x$data
to get to the data.frame. You no longer need to do that. Now
you run a function, and the output is a data.frame (and a tbl_df
) (#18)xml2
instead of XML
bhl_getpartnames
was down but it back up now (#17)bhl_getauthoparts()
, bhl_getitemparts()
,
bhl_getpartbibtex()
, bhl_getpartbyidentifier()
, bhl_getpartendnote()
,
bhl_getpartmetadata()
, bhl_getpartnames()
, bhl_getsubjectparts()
,
bhl_getunpublishedparts()
, and bhl_partsearch()
(#6)getpages()
to get multiple OCR pages at once, given
an itemid (#4)bhl_getpageocrtext()
for names and ocr that
weren't actually available in the API method. (#3)