biblionetwork

CRAN Status Lifecycle: experimental DOI downloads downloads-total

What does biblionetwork do?

biblionetwork turns a table of links between two kinds of items (documents and the references they cite, authors and the documents they sign) into the edges of a network, whose nodes are one of the two kinds of items. You choose the type of network and the way the ties are weighted, depending on what you want to analyse:

Network Nodes are linked when they… Main function
bibliographic coupling cite the same references (Kessler 1963) biblio_coupling()
co-citation are cited together (Small 1973) biblio_cocitation()
coupling or co-citation of entities (authors, journals, institutions) the documents of the entities cite the same references (or are cited together) (Zhao and Strotmann 2008) entity_network()
co-authorship co-sign documents coauth_network()

The weight of a tie can be computed with several measures: the coupling angle (Sen and Gan 1983), the coupling strength and the idf-weighted similarity (Shen et al. 2019), the Jaccard index, the Vladutz-Cook formula, or full and fractional counting for co-authorship (Perianes-Rodriguez, Waltman, and Van Eck 2016; Leydesdorff and Park 2017-02). compute_couplings() computes several of them at once, and a few functions compare their distributions and rankings (merge_weights() ranks the pairs and measures the rank gap between two measures) on your own corpus.

The package returns plain tables (data.table), ready to be turned into a graph with tidygraph or igraph. It is written for very large corpora: the pairs of nodes are computed with sparse matrices, which keeps time and memory low. Nothing is specific to bibliography, though: any two-mode table (accounts and the accounts they follow, posts and their words…) can be projected the same way (see the vignette). To go further, networkflow builds on biblionetwork to cluster, follow and draw networks over time, and the backbone package (Neal 2026) can filter the ties that are not statistically significant.

The original function, which uses data.table (Dowle and Srinivasan 2020) and allows the user to find edges and calculate weights for large networks, was developed by François Claveau. The different functions in this package have been developed, from Claveau’s original idea, by Alexandre Truc and Aurélien Goutsmedt. The package is maintained by Aurélien Goutsmedt.1

Installation

You can install the release version from CRAN:

install.packages("biblionetwork")

or the development version from GitHub:

# install.packages("devtools")
devtools::install_github("agoutsmedt/biblionetwork")

You can cite this package as:

citation("biblionetwork")

Example

All you need is a table with entities (documents, authors, universities, etc.) citing references. biblio_coupling() calculates the number of references that different articles share together, and a weight for each pair of articles in a bibliographic coupling network. By default, the weight is the coupling angle (Sen and Gan 1983); the method argument selects another measure ("strength", "similarity", "jaccard", "vladutz").2 See the vignette “How to use biblionetwork” for a more in-depth presentation of the package.

This example uses the data included in the package.

library(biblionetwork)

biblio_coupling(Ref_stagflation,
                source = "Citing_ItemID_Ref",
                ref = "ItemID_Ref",
                normalized_weight_only = FALSE,
                weight_threshold = 1)
#>             from         to     weight nb_shared_references     Source
#>           <char>     <char>      <num>                <int>      <int>
#>    1:    1021902    1184127 0.04622502                    1    1021902
#>    2:     214927    2207578 0.14605935                    4     214927
#>    3:    1184127    2901822 0.04233338                    1    1184127
#>    4:    1184130    2901822 0.05184758                    1    1184130
#>    5:    1717556    2901822 0.02804964                    1    1717556
#>   ---                                                                 
#> 2712: 1111111122 1111111183 0.05572782                    1 1111111122
#> 2713: 1111111134 1111111183 0.04256283                    1 1111111134
#> 2714: 1111111146 1111111183 0.05212860                    1 1111111146
#> 2715: 1111111161 1111111183 0.04050542                    2 1111111161
#> 2716: 1111111182 1111111183 0.27060404                    8 1111111182
#>           Target
#>            <int>
#>    1:    1184127
#>    2:    2207578
#>    3:    2901822
#>    4:    2901822
#>    5:    2901822
#>   ---           
#> 2712: 1111111183
#> 2713: 1111111183
#> 2714: 1111111183
#> 2715: 1111111183
#> 2716: 1111111183

The same pairs of articles, weighted so that sharing a rare reference counts more than sharing a classic (Shen et al. 2019):

biblio_coupling(Ref_stagflation,
                source = "Citing_ItemID_Ref",
                ref = "ItemID_Ref",
                method = "strength",
                weight_threshold = 3)
#>            from         to      weight     Source     Target
#>          <char>     <char>       <num>      <int>      <int>
#>   1:     214927    2207578 0.020008623     214927    2207578
#>   2:    5160307    6714008 0.010611749    5160307    6714008
#>   3:    1717556    7815498 0.035262345    1717556    7815498
#>   4:     214927    8456979 0.011939901     214927    8456979
#>   5:    2207578    8456979 0.012807897    2207578    8456979
#>  ---                                                        
#> 958:   39858452 1111111180 0.005118578   39858452 1111111180
#> 959:  151268764 1111111180 0.007465000  151268764 1111111180
#> 960:    1021902 1111111183 0.006925280    1021902 1111111183
#> 961:  106566092 1111111183 0.002896722  106566092 1111111183
#> 962: 1111111182 1111111183 0.038292193 1111111182 1111111183

Included data

The biblionetwork package contains bibliometric data built by Goutsmedt (2021). These data gather the academic articles and books, published between 1975 and 2013, that endeavoured to explain the United States stagflation of the 1970s. They also gather all the references cited by these articles and books on stagflation. The Nodes_stagflation.rda file contains information about the academic articles and books on stagflation (the stagflation documents), as well as about the references cited at least by two of these stagflation documents. The Ref_stagflation.rda is a data frame of direct citations, with the identifiers of citing documents, and the identifiers of cited documents. The Authors_stagflation.rda is a data frame with the list of documents explaining the US stagflation, and all the authors of these documents (Nodes_stagflation.rda just takes the first author for each document).

References

Dowle, Matt, and Arun Srinivasan. 2020. Data.table: Extension of ‘Data.frame‘. https://CRAN.R-project.org/package=data.table.
Goutsmedt, Aurélien. 2021. “From the Stagflation to the Great Inflation: Explaining the US Economy of the 1970s.” Revue d’Economie Politique Forthcoming. https://aurelien-goutsmedt.com/media/pdf/stagflation-great-inflation.pdf.
Kessler, M. M. 1963. “Bibliographic Coupling Between Scientific Papers.” American Documentation 14 (1): 10–25. https://doi.org/10.1002/asi.5090140103.
Leydesdorff, Loet, and Han Woo Park. 2017-02. “Full and Fractional Counting in Bibliometric Networks.” Journal of Informetrics 11 (1): 117–20. https://linkinghub.elsevier.com/retrieve/pii/S1751157716303133.
Neal, Zachary P. 2026. “Backbone 3.0: An R Package for Extracting Network Backbones.” PLOS ONE 21 (5): e0349258. https://doi.org/10.1371/journal.pone.0349258.
Perianes-Rodriguez, Antonio, Ludo Waltman, and Nees Jan Van Eck. 2016. “Constructing Bibliometric Networks: A Comparison Between Full and Fractional Counting.” Journal of Informetrics 10 (4): 1178–95. https://www.sciencedirect.com/science/article/pii/S1751157716302036?casa_token=AtzjmZ-1QmYAAAAA:2mlBPZsjGUleYi9mnybHODFw2RmMh3GHvRAuMYXygRm63cQOv07M4ixbAmJXuGq71tx2ug29baTp.
Sen, Subir K., and Shymal K. Gan. 1983. “A Mathematical Extension of the Idea of Bibliographic Coupling and Its Applications.” Annals of Library Science and Documentation 30 (2).
Shen, Si, Danhao Zhu, Ronald Rousseau, Xinning Su, and Dongbo Wang. 2019. “A Refined Method for Computing Bibliographic Coupling Strengths.” Journal of Informetrics 13 (2): 605–15. https://linkinghub.elsevier.com/retrieve/pii/S1751157716300244.
Small, Henry. 1973. “Co-Citation in the Scientific Literature: A New Measure of the Relationship Between Two Documents.” Journal of the American Society for Information Science 24 (4): 265–69. https://doi.org/10.1002/asi.4630240406.
Zhao, Dangzhi, and Andreas Strotmann. 2008. “Author Bibliographic Coupling: Another Approach to Citation-Based Author Knowledge Network Analysis.” Proceedings of the American Society for Information Science and Technology 45 (1): 1–10. https://asistdl.onlinelibrary.wiley.com/doi/full/10.1002/meet.2008.1450450292.

  1. Contact: .↩︎

  2. If you want to build a coupling network with entities larger than a document (meaning entities that have published several documents, and thus can cite a reference several times), we rather recommend the use of the entity_network() function.↩︎