Skip to contents

 

https://github.com/ropensci/openalexR

Latest version: 2.0.2.9000, 2025-11-13

 

by Massimo Aria

Full Professor in Social Statistics

PhD in Computational Statistics

Laboratory and Research Group STAD Statistics, Technology, Data Analysis

Department of Economics and Statistics

University of Naples Federico II

email

https://massimoaria.com

 

An R-package to gather bibliographic data from OpenAlex

openalexR helps you interface with the OpenAlex API to retrieve bibliographic infomation about publications, authors, institutions, sources, funders, publishers, topics and concepts with 5 main functions:

  • oa_query(): generates a valid query, written following the OpenAlex API syntax, from a set of arguments provided by the user.

  • oa_request(): downloads a collection of entities matching the query created by oa_query() or manually written by the user, and returns a JSON object in a list format.

  • oa2df(): converts the JSON object in classical bibliographic tibble/data frame.

  • oa_fetch(): composes three functions above so the user can execute everything in one step, i.e., oa_query |> oa_request |> oa2df

  • oa_random(): to get random entity, e.g., oa_random("works") gives a different work each time you run it

Works (think papers, publications)

This paper:

Aria, M., & Cuccurullo, C. (2017). bibliometrix: 
An R-tool for comprehensive science mapping analysis. 
Journal of informetrics, 11(4), 959-975.

is associated to the OpenAlex-id W2755950973. If you know your paper’s OpenAlex ID, all you need to do is passing identifier = <openalex id> as an argument in oa_fetch():

paper_id <- oa_fetch(
  identifier = "W2755950973",
  entity = "works",
  verbose = TRUE
)
## Requesting url: https://api.openalex.org/works/W2755950973
dplyr::glimpse(paper_id)
## Rows: 1
## Columns: 39
## $ id                          <chr> "https://openalex.org/W2755950973"
## $ title                       <chr> "bibliometrix : An R-tool for comprehensiv…
## $ display_name                <chr> "bibliometrix : An R-tool for comprehensiv…
## $ authorships                 <list> [<tbl_df[2 x 7]>]
## $ doi                         <chr> "https://doi.org/10.1016/j.joi.2017.08.007"
## $ publication_date            <date> 2017-09-12
## $ publication_year            <int> 2017
## $ fwci                        <dbl> 128.3406
## $ cited_by_count              <int> 11599
## $ counts_by_year              <list> [<data.frame[11 x 2]>]
## $ ids                         <list> <"https://openalex.org/W2755950973", "http…
## $ type                        <chr> "article"
## $ is_oa                       <lgl> FALSE
## $ is_oa_anywhere              <lgl> FALSE
## $ oa_status                   <chr> "closed"
## $ oa_url                      <lgl> NA
## $ any_repository_has_fulltext <lgl> FALSE
## $ source_display_name         <chr> "Journal of Informetrics"
## $ source_id                   <chr> "https://openalex.org/S205292342"
## $ issn_l                      <chr> "1751-1577"
## $ host_organization           <chr> "https://openalex.org/P4310320990"
## $ host_organization_name      <chr> "Elsevier BV"
## $ landing_page_url            <chr> "https://doi.org/10.1016/j.joi.2017.08.007"
## $ version                     <chr> "publishedVersion"
## $ referenced_works            <list> <"https://openalex.org/W2045108252", "htt…
## $ referenced_works_count      <int> 78
## $ related_works               <list> <"https://openalex.org/W4386031268", "http…
## $ concepts                    <list> [<data.frame[10 x 5]>]
## $ topics                      <list> [<tbl_df[12 x 5]>]
## $ keywords                    <list> [<data.frame[9 x 3]>]
## $ is_paratext                 <lgl> FALSE
## $ is_retracted                <lgl> FALSE
## $ language                    <chr> "en"
## $ grants                      <lgl> NA
## $ apc                         <list> [<data.frame[2 x 5]>]
## $ first_page                  <chr> "959"
## $ last_page                   <chr> "975"
## $ volume                      <chr> "11"
## $ issue                       <chr> "4"

oa_fetch() is a composition of functions: oa_query |> oa_request |> oa2df. As results, oa_query() returns the query string including the OpenAlex endpoint API server address (default). oa_request() downloads the bibliographic records matching the query. Finally, oa2df() converts the final result list to a tibble. The final result is a complicated tibble, but we can use show_works() to display a simplified version:

paper_id %>% 
  show_works() %>%
  knitr::kable()
id display_name first_author last_author is_oa top_concepts
W2755950973 bibliometrix : An R-tool for comprehensive science mapping analysis Massimo Aria Corrado Cuccurullo FALSE Workflow, Bibliometrics, Software

External id formats

OpenAlex endpoint accepts OpenAlex IDs and other external IDs (e.g., DOI, ISSN) in several formats, including Digital Object Identifier (DOI) and Persistent Identifiers (PIDs).

oa_fetch(
  # identifier = "https://doi.org/10.1016/j.joi.2017.08.007", # would also work (PIDs)
  identifier = "doi:10.1016/j.joi.2017.08.007",
  entity = "works"
) %>% 
  show_works() %>%
  knitr::kable()
id display_name first_author last_author is_oa top_concepts
W2755950973 bibliometrix : An R-tool for comprehensive science mapping analysis Massimo Aria Corrado Cuccurullo FALSE Workflow, Bibliometrics, Software

More than one publications/authors

https://api.openalex.org/authors/https://orcid.org/

If you know the OpenAlex IDs of these entities, you can also feed them into the identifier argument.

oa_fetch(
  identifier = c("W2741809807", "W2755950973"),
  # identifier = c("https://doi.org/10.1016/j.joi.2017.08.007", "https://doi.org/10.1016/j.joi.2017.08.007"), # TODO
  entity = "works",
  verbose = TRUE
) %>% 
  show_works() %>%
  knitr::kable()
## Requesting url: https://api.openalex.org/works?filter=openalex%3AW2741809807%7CW2755950973
## Getting 1 page of results with a total of 2 records...
id display_name first_author last_author is_oa top_concepts
W2755950973 bibliometrix : An R-tool for comprehensive science mapping analysis Massimo Aria Corrado Cuccurullo FALSE Workflow, Bibliometrics, Software
W2741809807 The state of OA: a large-scale analysis of the prevalence and impact of Open Access articles Heather Piwowar Stefanie Haustein TRUE Citation, License, Bibliometrics

However, if you only know their external identifies, say, DOIs, you would need to use doi as a filter (either the canonical form with https://doi.org/ or without should work):

oa_fetch(
  # identifier = c("W2741809807", "W2755950973"),
  doi = c("10.1016/j.joi.2017.08.007", "https://doi.org/10.1093/bioinformatics/btab727"),
  entity = "works",
  verbose = TRUE
) %>% 
  show_works() %>%
  knitr::kable()
## Requesting url: https://api.openalex.org/works?filter=doi%3A10.1016%2Fj.joi.2017.08.007%7Chttps%3A%2F%2Fdoi.org%2F10.1093%2Fbioinformatics%2Fbtab727
## Getting 1 page of results with a total of 2 records...
id display_name first_author last_author is_oa top_concepts
W2755950973 bibliometrix : An R-tool for comprehensive science mapping analysis Massimo Aria Corrado Cuccurullo FALSE Workflow, Bibliometrics, Software
W3108030349 PMLB v1.0: an open-source dataset collection for benchmarking machine learning methods Joseph D. Romano Jason H. Moore TRUE Benchmarking, Python (programming language), Benchmark (surveying)

Filters

In most cases, we are interested in downloading a collection of items that meet one or more inclusion/exclusion criteria (filters). Supported filters for each entity are listed here.

Example: We want to download all works published by a set of authors. We can do this by filtering on the authorships.author.id/author.id or authorships.author.orcid/author.orcid attribute (see more on works attributes):

oa_fetch(
  entity = "works",
  author.id = c("A5048491430", "A5023888391"),
  verbose = TRUE
) %>% 
  show_works() %>% 
  knitr::kable()
## Requesting url: https://api.openalex.org/works?filter=author.id%3AA5048491430%7CA5023888391
## Getting 1 page of results with a total of 124 records...
id display_name first_author last_author is_oa top_concepts
W2741809807 The state of OA: a large-scale analysis of the prevalence and impact of Open Access articles Heather Piwowar Stefanie Haustein TRUE Citation, License, Bibliometrics
W2046766973 Sharing Detailed Research Data Is Associated with Increased Citation Rate Heather Piwowar Douglas B. Fridsma TRUE Citation, Clinical trial, Impact factor
W2045657963 Data reuse and the open data citation advantage Heather Piwowar Todd Vision TRUE Citation, Reuse
W1572136682 Value all research products Heather Piwowar NA TRUE Altmetrics, Value (mathematics)
W2122130843 Scientometrics 2.0: New metrics of scholarly impact on the social Web Jason Priem Bradely H. Hemminger TRUE Bookmarking, Altmetrics, Social media
W2396414759 The Altmetrics Collection Jason Priem Dario Taraborelli TRUE Social media, Citation, Altmetrics
orcids <- c("0000-0003-3737-6565", "0000-0002-8517-9411")
canonical_orcids <- paste0("https://orcid.org/", orcids)
oa_fetch(
  entity = "works",
  author.orcid = canonical_orcids,
  verbose = TRUE
) %>% 
  show_works() %>% 
  knitr::kable()
## Requesting url: https://api.openalex.org/works?filter=author.orcid%3Ahttps%3A%2F%2Forcid.org%2F0000-0003-3737-6565%7Chttps%3A%2F%2Forcid.org%2F0000-0002-8517-9411
## Getting 2 pages of results with a total of 358 records...
id display_name first_author last_author is_oa top_concepts
W2755950973 bibliometrix : An R-tool for comprehensive science mapping analysis Massimo Aria Corrado Cuccurullo FALSE Workflow, Bibliometrics, Software
W2777772618 Interoception and Mental Health: A Roadmap Sahib S. Khalsa Nancy Zucker TRUE Mental health, Perception
W2955219525 Scaling tree-based automated machine learning to biomedical big data with a feature set selector Trang T. Le Jason H. Moore TRUE Pipeline (software), Scalability, Feature (linguistics)
W3005144120 Mapping the Evolution of Social Research and Data Science on 30 Years of Social Indicators Research Massimo Aria Maria Spano FALSE Human geography, Data collection, Position (finance)
W2408216567 Foundations and trends in performance management. A twenty-five years bibliometric analysis in business and public administration domains Corrado Cuccurullo Fabrizia Sarto FALSE Domain (mathematical analysis), Content analysis, Public domain
W2952824318 A Nonlinear Simulation Framework Supports Adjusting for Age When Analyzing BrainAGE Trang T. Le Martin P. Paulus TRUE Nonlinear system

Example: We want to download all works that have been cited more than 50 times, published between 2020 and 2021, and include the strings “bibliometric analysis” or “science mapping” in the title. Maybe we also want the results to be sorted by total citations in a descending order.

Setting the argument count_only = TRUE, the function oa_request() returns the number of items matching the query without downloading the collection.

oa_fetch(
  entity = "works",
  title.search = c("bibliometric analysis", "science mapping"),
  cited_by_count = ">50", 
  from_publication_date = "2020-01-01",
  to_publication_date = "2021-12-31",
  options = list(sort = "cited_by_count:desc"),
  count_only = TRUE,
  verbose = TRUE
)
## Requesting url: https://api.openalex.org/works?filter=title.search%3Abibliometric%20analysis%7Cscience%20mapping%2Ccited_by_count%3A%3E50%2Cfrom_publication_date%3A2020-01-01%2Cto_publication_date%3A2021-12-31&sort=cited_by_count%3Adesc
## $count
## [1] 546
## 
## $db_response_time_ms
## [1] 728
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL

We can now download the records and transform it into a tibble/data frame by setting count_only = FALSE (also the default value):

oa_fetch(
  entity = "works",
  title.search = c("bibliometric analysis", "science mapping"),
  cited_by_count = ">50", 
  from_publication_date = "2020-01-01",
  to_publication_date = "2021-12-31",
  options = list(sort = "cited_by_count:desc"),
  count_only = FALSE
) %>%
  show_works() %>%
  knitr::kable()
id display_name first_author last_author is_oa top_concepts
W3160856016 How to conduct a bibliometric analysis: An overview and guidelines Naveen Donthu Weng Marc Lim FALSE Bibliometrics, Field (mathematics), Resource (disambiguation)
W3001491100 Software tools for conducting bibliometric analysis in science: An up-to-date review José A. Moral-Muñoz Manuel J. Cobo TRUE Bibliometrics, Visualization, Set (abstract data type)
W3038273726 Investigating the emerging COVID-19 research trends in the field of business and management: A bibliometric analysis approach Surabhi Verma Anders Gustafsson FALSE Bibliometrics, Field (mathematics), Disease
W3044902155 Financial literacy: A systematic review and bibliometric analysis Kirti Goyal Satish Kumar FALSE Financial literacy, Citation, Content analysis
W3198357836 Artificial intelligence and machine learning in finance: Identifying foundations, themes, and research clusters from bibliometric analysis John W. Goodell Debidutta Pattnaik FALSE Scholarship, Valuation (finance), Corporate finance
W2998021954 Bibliometric Analysis using Bibliometrix an R Package Hamid Derviş NA TRUE Bibliometrics, Citation, Field (mathematics)

Read on to see how we can shorten these two function calls.

Authors

Similarly to work, we can use identifier to pass in authors’ OpenAlex ID.

Example: We want more information on authors with IDs A5069892096 and A5023888391.

oa_fetch(
  identifier = c("A5069892096", "A5023888391"),
  verbose = TRUE
) %>%
  show_authors() %>%
  knitr::kable()
## Requesting url: https://api.openalex.org/authors?filter=openalex%3AA5069892096%7CA5023888391
## Getting 1 page of results with a total of 2 records...
id display_name orcid works_count cited_by_count top_concepts
A5069892096 Massimo Aria 0000-0002-8517-9411 227 16124 Physiology, Pathology and Forensic Medicine, Sociology and Political Science
A5023888391 Jason Priem 0000-0001-6187-6610 61 4175 Statistics, Probability and Uncertainty, Information Systems, Communication

Example: We want download all authors’ records of scholars who work at the University of Naples Federico II (OpenAlex ID: I71267560) and who have published more than 499 works.

Let’s first check how many records match the query, then set count_only = FALSE to download the entire collection. We can do this by first defining a list of arguments, then adding count_only (default FALSE) to this list:

my_arguments <- list(
  entity = "authors",
  last_known_institutions.id = "I71267560",
  works_count = ">499"
  )

do.call(oa_fetch, c(my_arguments, list(count_only = TRUE)))
## $count
## [1] 74
## 
## $db_response_time_ms
## [1] 182
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL
do.call(oa_fetch, my_arguments) %>% 
  show_authors() %>%
  knitr::kable()
id display_name orcid works_count cited_by_count top_concepts
A5034359289 E. Rossi 0000-0002-2146-677X 4101 224046 Nuclear and High Energy Physics, Nuclear and High Energy Physics, Nuclear and High Energy Physics
A5114377868 L. Lista 0000-0001-6471-5492 2692 135410 Nuclear and High Energy Physics, Nuclear and High Energy Physics, Nuclear and High Energy Physics
A5106552509 C. Sciacca 0000-0002-8412-4072 2502 100801 Nuclear and High Energy Physics, Nuclear and High Energy Physics, Nuclear and High Energy Physics
A5058925624 Arnon Nagler 0000-0002-0763-1265 2094 70403 Hematology, Hematology, Public Health, Environmental and Occupational Health
A5066300938 S. D’Auria 0000-0003-3393-6318 2070 122159 Nuclear and High Energy Physics, Nuclear and High Energy Physics, Nuclear and High Energy Physics
A5071532577 V. Canale 0000-0003-2303-9306 2052 116221 Nuclear and High Energy Physics, Nuclear and High Energy Physics, Nuclear and High Energy Physics

You can also use other filters such as display_name, has_orcid, and orcid:

oa_fetch(
  entity = "authors",
  display_name.search = "Massimo Aria",
  has_orcid = "true"
) %>%
  show_authors() %>%
  knitr::kable()
id display_name orcid works_count cited_by_count top_concepts
A5069892096 Massimo Aria 0000-0002-8517-9411 227 16124 Physiology, Pathology and Forensic Medicine, Sociology and Political Science
A923435168 Massimo Aria 0000-0002-8517-9411 9 9 Computer Networks and Communications, Management Science and Operations Research, Management Science and Operations Research
oa_fetch(
  entity = "authors",
  orcid = "0000-0002-8517-9411"
) %>%
  show_authors() %>%
  knitr::kable()
id display_name orcid works_count cited_by_count top_concepts
A5069892096 Massimo Aria 0000-0002-8517-9411 227 16124 Physiology, Pathology and Forensic Medicine, Sociology and Political Science
A923435168 Massimo Aria 0000-0002-8517-9411 9 9 Computer Networks and Communications, Management Science and Operations Research, Management Science and Operations Research

Institutions

Example: We want download all records regarding Italian institutions (country_code:it) that are classified as educational (type:education). Again, we check how many records match the query then download the collection:

italian_insts <- list(
  entity = "institutions",
  country_code = "it",
  type = "education",
  verbose = TRUE
)

do.call(oa_fetch, c(italian_insts, list(count_only = TRUE)))
## Requesting url: https://api.openalex.org/institutions?filter=country_code%3Ait%2Ctype%3Aeducation
## $count
## [1] 236
## 
## $db_response_time_ms
## [1] 31
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL
dplyr::glimpse(do.call(oa_fetch, italian_insts))
## Requesting url: https://api.openalex.org/institutions?filter=country_code%3Ait%2Ctype%3Aeducation
## Getting 2 pages of results with a total of 236 records...
## Rows: 236
## Columns: 22
## $ id                         <chr> "https://openalex.org/I861853513", "https:/…
## $ display_name               <chr> "Sapienza University of Rome", "University …
## $ display_name_alternatives  <list> <"Università degli Studi di Roma \"La Sapi…
## $ display_name_acronyms      <list> NA, "UNIMI", "UNIBO", "UNIPD", NA, NA, "UN…
## $ international_display_name <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
## $ ror                        <chr> "https://ror.org/02be6w209", "https://ror.o…
## $ ids                        <list> <"https://openalex.org/I861853513", "https…
## $ country_code               <chr> "IT", "IT", "IT", "IT", "IT", "IT", "IT", "…
## $ geo                        <list> [<data.frame[1 x 7]>], [<data.frame[1 x 7]…
## $ type                       <chr> "education", "education", "education", "edu…
## $ homepage_url               <chr> "https://www.uniroma1.it", "https://www.uni…
## $ image_url                  <chr> "https://commons.wikimedia.org/w/index.php?…
## $ image_thumbnail_url        <chr> "https://commons.wikimedia.org/w/index.php?…
## $ associated_institutions    <list> [<data.frame[4 x 6]>], [<data.frame[3 x 6]…
## $ works_count                <int> 195177, 188454, 171681, 168341, 119428, 113…
## $ cited_by_count             <int> 15566587, 14890864, 13613398, 15086329, 107…
## $ counts_by_year             <list> [<data.frame[18 x 4]>], [<data.frame[17 x …
## $ summary_stats              <list> <4.501852e+00, 8.090000e+02, 2.846060e+05>…
## $ works_api_url              <chr> "https://api.openalex.org/works?filter=inst…
## $ topics                     <list> [<tbl_df[100 x 5]>], [<tbl_df[100 x 5]>], 
## $ updated_date               <chr> "2025-11-12T23:15:19.534421", "2025-11-12T2…
## $ created_date               <chr> "2016-06-24T00:00:00", "2016-06-24T00:00:00…

Keywords

Example: We want to download the records of all the keywords that more than 1000 works were tagged with:

popular_keywords <- list(
  entity = "keywords",
  works_count = ">1000",
  verbose = TRUE
)

do.call(oa_fetch, c(popular_keywords, list(count_only = TRUE)))
## Requesting url: https://api.openalex.org/keywords?filter=works_count%3A%3E1000
## $count
## [1] 45106
## 
## $db_response_time_ms
## [1] 13
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL
dplyr::glimpse(do.call(oa_fetch, popular_keywords))
## Requesting url: https://api.openalex.org/keywords?filter=works_count%3A%3E1000
## Getting 226 pages of results with a total of 45106 records...
## Rows: 45,106
## Columns: 7
## $ id             <chr> "https://openalex.org/keywords/computer-science", "http…
## $ display_name   <chr> "Computer science", "Medicine", "Identification (biolog…
## $ works_count    <int> 75046201, 37632550, 37179723, 28126442, 27855481, 27583…
## $ cited_by_count <int> 116220114, 358875130, 11518650, 17425794, 20439044, 781…
## $ works_api_url  <chr> "https://api.openalex.org/works?filter=keywords.id:keyw…
## $ updated_date   <chr> "2025-08-20T06:05:26.496371", "2025-08-20T06:05:26.4963…
## $ created_date   <chr> "2016-06-24", "2016-06-24", "2022-04-12", "2022-04-12",

Other examples

Get all works citing a particular work

We can download all publications citing another publication by using the filter attribute cites.

For example, if we want to download all publications citing the article Aria and Cuccurullo (2017), we have just to set the argument filter as cites = "W2755950973" where “W2755950973” is the OA id for the article by Aria and Cuccurullo.

aria_count <- oa_fetch(
  entity = "works",
  cites = "W2755950973",
  count_only = TRUE,
  verbose = TRUE
) 
## Requesting url: https://api.openalex.org/works?filter=cites%3AW2755950973
aria_count
## $count
## [1] 11468
## 
## $db_response_time_ms
## [1] 55
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL

This query will return a collection of 11468 publications. Among these articles, let’s download the ones published in the following year:

oa_fetch(
  entity = "works",
  cites = "W2755950973",
  publication_year = 2018,
  count_only = FALSE,
  verbose = TRUE
) %>% 
  dplyr::glimpse()
## Requesting url: https://api.openalex.org/works?filter=cites%3AW2755950973%2Cpublication_year%3A2018
## Getting 1 page of results with a total of 32 records...
## Rows: 32
## Columns: 42
## $ id                          <chr> "https://openalex.org/W2896801517", "https…
## $ title                       <chr> "Global trends in infectious diseases of s…
## $ display_name                <chr> "Global trends in infectious diseases of s…
## $ authorships                 <list> [<tbl_df[2 x 7]>], [<tbl_df[2 x 7]>], [<t…
## $ abstract                    <chr> "Pork accounts for more than one-third of …
## $ doi                         <chr> "https://doi.org/10.1073/pnas.1806068115",
## $ publication_date            <date> 2018-10-22, 2018-11-26, 2018-12-20, 2018-…
## $ publication_year            <int> 2018, 2018, 2018, 2018, 2018, 2018, 2018, 
## $ fwci                        <dbl> 30.017326, 16.796992, 11.341179, 49.123934…
## $ cited_by_count              <int> 316, 265, 222, 187, 134, 131, 130, 98, 93,
## $ counts_by_year              <list> [<data.frame[8 x 2]>], [<data.frame[7 x 2…
## $ ids                         <list> <"https://openalex.org/W2896801517", "htt…
## $ type                        <chr> "review", "article", "article", "article",
## $ is_oa                       <lgl> TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FAL…
## $ is_oa_anywhere              <lgl> TRUE, TRUE, TRUE, FALSE, TRUE, FALSE, FALS…
## $ oa_status                   <chr> "bronze", "bronze", "green", "closed", "go…
## $ oa_url                      <chr> "https://www.pnas.org/content/pnas/115/45/…
## $ any_repository_has_fulltext <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ source_display_name         <chr> "Proceedings of the National Academy of Sc…
## $ source_id                   <chr> "https://openalex.org/S125754415", "https:…
## $ issn_l                      <chr> "0027-8424", "0043-1397", "0169-5347", "00…
## $ host_organization           <chr> "https://openalex.org/P4310320052", "https…
## $ host_organization_name      <chr> "National Academy of Sciences", "Wiley", "…
## $ landing_page_url            <chr> "https://doi.org/10.1073/pnas.1806068115",
## $ pdf_url                     <chr> "https://www.pnas.org/content/pnas/115/45/…
## $ license                     <chr> NA, NA, NA, NA, "cc-by", NA, NA, NA, "cc-b…
## $ version                     <chr> "publishedVersion", "publishedVersion", "p…
## $ referenced_works            <list> <"https://openalex.org/W2184285645", "htt…
## $ referenced_works_count      <int> 23, 87, 101, 248, 89, 75, 235, 138, 18, 64…
## $ related_works               <list> <"https://openalex.org/W2270788023", "htt…
## $ concepts                    <list> [<data.frame[26 x 5]>], [<data.frame[22 x…
## $ topics                      <list> [<tbl_df[12 x 5]>], [<tbl_df[12 x 5]>], […
## $ keywords                    <list> [<data.frame[22 x 3]>], [<data.frame[19 x…
## $ is_paratext                 <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ is_retracted                <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ language                    <chr> "en", "en", "en", "en", "en", "en", "en", 
## $ grants                      <list> <"https://openalex.org/F4320332299", "Nat…
## $ apc                         <list> NA, [<data.frame[2 x 5]>], [<data.frame[2…
## $ first_page                  <chr> "11495", "378", "224", "12", "e0207655", "…
## $ last_page                   <chr> "11500", "390", "238", "63", "e0207655", "…
## $ volume                      <chr> "115", "55", "34", "50", "13", "45", "205"…
## $ issue                       <chr> "45", "1", "3", "1", "11", "3", NA, "4-5",

Convert an OpenAlex data frame to a bibliometrix object

The bibliometrix R-package (https://www.bibliometrix.org) provides a set of tools for quantitative research in bibliometrics and scientometrics. Today it represents one of the most used science mapping software in the world. In a recent survey on bibliometric analysis tools, Moral-Muñoz et al. (2020) wrote: “At this moment, maybe Bibliometrix and its Shiny platform contain the more extensive set of techniques implemented, and together with the easiness of its interface, could be a great software for practitioners”.

The function oa2bibliometrix converts a bibliographic data frame of works into a bibliometrix object. This object can be used as input collection of a science mapping workflow.

bib_ls <- list(
  identifier = NULL,
  entity = "works",
  cites = "W2755950973",
  from_publication_date = "2022-01-01",
  to_publication_date = "2022-03-31"
)

do.call(oa_fetch, c(bib_ls, list(count_only = TRUE)))
## $count
## [1] 420
## 
## $db_response_time_ms
## [1] 17
## 
## $page
## [1] 1
## 
## $per_page
## [1] 1
## 
## $groups_count
## NULL
do.call(oa_fetch, bib_ls) %>% 
  oa2bibliometrix() %>% 
  dplyr::glimpse()
## Warning in oa2bibliometrix(.): oa2bibliometrix() is deprecated. Please use
## bibliometrix::convert2df() instead.
## Rows: 420
## Columns: 58
## $ AU                          <chr> "JÔNATAS AUGUSTO MANZOLLI;JOÃO PEDRO F. TR…
## $ RP                          <chr> "INESC COIMBRA, UNIVERSITY OF COIMBRA, DEE…
## $ C1                          <chr> "INESC COIMBRA, UNIVERSITY OF COIMBRA, DEE…
## $ AU_UN                       <chr> "C(\"INSTITUTE FOR SYSTEMS ENGINEERING AND…
## $ AU_CO                       <chr> "PORTUGAL;PORTUGAL;CANADA;PORTUGAL;PORTUGA…
## $ ID                          <chr> "PERSONALIZATION;BIBLIOMETRICS;KNOWLEDGE M…
## $ id_url                      <chr> "https://openalex.org/W4220923293", "https…
## $ title                       <chr> "Artificial intelligence in E-Commerce: a …
## $ authorships                 <list> [<tbl_df[4 x 7]>], [<tbl_df[5 x 7]>], [<t…
## $ abstract                    <chr> NA, "AbstractThe study aims to identify th…
## $ doi                         <chr> "https://doi.org/10.1007/s12525-022-00537-…
## $ publication_date            <date> 2022-03-01, 2022-02-09, 2022-02-08, 2022-…
## $ fwci                        <dbl> 128.519044, 54.956584, 17.177701, 47.38331…
## $ counts_by_year              <list> [<data.frame[5 x 2]>], [<data.frame[4 x 2…
## $ ids                         <list> <"https://openalex.org/W4220923293", "htt…
## $ is_oa                       <lgl> TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, TRU…
## $ is_oa_anywhere              <lgl> TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, TRU…
## $ oa_status                   <chr> "bronze", "closed", "closed", "closed", "h…
## $ oa_url                      <chr> "https://link.springer.com/content/pdf/10.…
## $ any_repository_has_fulltext <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ source_display_name         <chr> "Electronic Markets", "International Journ…
## $ source_id                   <chr> "https://openalex.org/S137519996", "https:…
## $ issn_l                      <chr> "1019-6781", "0020-7543", "0045-6535", "07…
## $ host_organization           <chr> "https://openalex.org/P4310319900", "https…
## $ host_organization_name      <chr> "Springer Science+Business Media", "Taylor…
## $ landing_page_url            <chr> "https://doi.org/10.1007/s12525-022-00537-…
## $ pdf_url                     <chr> "https://link.springer.com/content/pdf/10.…
## $ license                     <chr> NA, NA, NA, NA, "cc-by", "cc-by", "cc-by-n…
## $ version                     <chr> "publishedVersion", "publishedVersion", "p…
## $ referenced_works            <list> <"https://openalex.org/W2164422986", "htt…
## $ referenced_works_count      <int> 405, 157, 89, 190, 91, 44, 179, 183, 78, 6…
## $ related_works               <list> <"https://openalex.org/W4386031268", "htt…
## $ concepts                    <list> [<data.frame[9 x 5]>], [<data.frame[12 x …
## $ topics                      <list> [<tbl_df[12 x 5]>], [<tbl_df[12 x 5]>], […
## $ keywords                    <list> [<data.frame[8 x 3]>], [<data.frame[11 x …
## $ is_paratext                 <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ is_retracted                <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
## $ language                    <chr> "en", "en", "en", "en", "en", "en", "en", 
## $ grants                      <list> NA, NA, <"https://openalex.org/F432032100…
## $ apc                         <list> [<data.frame[2 x 5]>], NA, [<data.frame[2…
## $ first_page                  <chr> "297", "7527", "133932", "1129", "104608",
## $ last_page                   <chr> "338", "7550", "133932", "1155", "104608",
## $ volume                      <chr> "32", "60", "297", "39", "136", "14", "159…
## $ issue                       <chr> "1", "24", NA, "6", NA, "7", NA, NA, "2", 
## $ id_oa                       <chr> "W4220923293", "W4210997151", "W4210864411…
## $ CR                          <chr> "W2164422986;W3155929575;W2112430581;W2171…
## $ TI                          <chr> "ARTIFICIAL INTELLIGENCE IN E-COMMERCE: A …
## $ AB                          <chr> NA, "ABSTRACTTHE STUDY AIMS TO IDENTIFY TH…
## $ SO                          <chr> "ELECTRONIC MARKETS", "INTERNATIONAL JOURN…
## $ DT                          <chr> "ARTICLE", "ARTICLE", "REVIEW", "ARTICLE",
## $ DB                          <chr> "OPENALEX", "OPENALEX", "OPENALEX", "OPENA…
## $ JI                          <chr> "S137519996", "S65690446", "S203465130", "…
## $ J9                          <chr> "S137519996", "S65690446", "S203465130", "…
## $ PY                          <int> 2022, 2022, 2022, 2022, 2022, 2022, 2022, 
## $ TC                          <int> 267, 251, 248, 242, 185, 175, 155, 154, 15…
## $ DI                          <chr> "10.1007/s12525-022-00537-z", "10.1080/002…
## $ SR_FULL                     <chr> "JÔNATAS AUGUSTO MANZOLLI, 2022, ELECTRONI…
## $ SR                          <chr> "JÔNATAS AUGUSTO MANZOLLI, 2022, ELECTRONI…

About OpenAlex

OpenAlex is a fully open catalog of the global research system. It’s named after the ancient Library of Alexandria. The OpenAlex dataset describes scholarly entities and how those entities are connected to each other. There are five types of entities:

  • Works are papers, books, datasets, etc; they cite other works

  • Authors are people who create works

  • Institutions are universities and other orgs that are affiliated with works (via authors)

  • Concepts tag Works with a topic

Acknowledgements

Package hex was made with Midjourney and thus inherits a CC BY-NC 4.0 license.