knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
Access data and download documents from the Open Archive HAL. This package provides a programmatic access to the HAL API.
You can install the development version from GitHub with:
# install.packages("remotes") remotes::install_github("nfrerebeau/odyssey")
The use of odyssey involves three steps. First, a standard query is created using hal_api()
. Then, a set of functions allows to customize this query (see below). Finally, hal_search()
and hal_download()
allow to collect data and to download documents.
The following functions allow you to customize a query. They must be applied to the object returned by hal_api()
and can be called in any order. hal_filter
can be used several times to add multiple search filters. See the HAL search API documentation for a list of available fields.
hal_query()
allows to choose the fields to query and to define the query terms using boolean logic (q
parameter). For a simple search, grouping terms in a list allows to combine them with AND, while grouping terms in a vector allows to combine all the terms with OR. If needed, the infix functions %AND%
, %OR%
, %NOT%
, %IN%
, %TO%
allow to build more complex queries (remember that infix operators are composed left to right).hal_select()
is used to select the fields to be returned in the results (fl
parameter).hal_filter()
is used to retain all results that satisfy a conditions (fq
parameter).hal_sort()
orders the results by the value of the select field (sort
parameter). According to the HAL API documentation, you should avoid text fields and multi-valued fields which will produce unpredictable results.hal_group()
is used to group search results (group.*
parameters).hal_facet()
is used to facet search results (facet.*
parameters).## Load packages library(odyssey) library(magrittr) # pipes
Get the 10 most recent documents about archaeology of Celts in France:
## Topic selection ## Will be combined with AND topic <- list("archéologie", "Celtes", "France") ## Search publications hal_api() %>% hal_query(topic) %>% hal_select("title_s", "producedDate_tdate") %>% hal_filter("notice" %IN% "submitType_s") %>% hal_sort("producedDate_tdate", decreasing = TRUE) %>% hal_search(limit = 10)
Get the most recent archaeological publication (in French) by journal:
hal_api() %>% hal_query("archéologie") %>% hal_select("producedDate_tdate") %>% hal_filter("ART" %IN% "docType_s") %>% hal_sort("producedDate_tdate", decreasing = TRUE) %>% hal_group( field = "journalTitle_s", sort = "producedDate_tdate", decreasing = TRUE ) %>% hal_search(limit = 10)
Please note that the odyssey project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.