# CARDS: A collection of package, revision, and miscellaneous dependency graphs

Euxane Tran-Girard, Laurent Bulteau, Pierre-Yves David

<figure><img src="image_1.png" /></figure>

## To cite this version:

Euxane Tran-Girard, Laurent Bulteau, Pierre-Yves David. CARDS: A collection of package, revision, and miscellaneous dependency graphs. 2024. hal-04929691

HAL Id: hal-04929691

https://hal.science/hal-04929691v1

Preprint submitted on 4 Feb 2025

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# CARDS: A collection of package, revision, and miscellaneous dependency graphs

Euxane TRAN-GIRARD

LIGM, CNRS, Univ. Gustave Eiffel

Marne-la-Vallée, France

euxane.trangirard@univ-eiffel.fr

orcid.org/0009-0003-4190-7151

Laurent BULTEAU

LIGM, CNRS, Univ. Gustave Eiffel

Marne-la-Vallée, France

laurent.bulteau@univ-eiffel.fr

orcid.org/0000-0003-1645-9345

Pierre-Yves DAVID

Octobus S.c.o.p.

Montreuil, France

pierre-yves.david@octobus.fr

orcid.org/0009-0005-3618-3560

**Abstract**—CARDS (Corpus of Acyclic Repositories and Dependency Systems) is a collection of directed graphs which express dependency relations, extracted from diverse real-world sources such as package managers, version control systems, and event graphs. Each graph contains anywhere from thousands to hundreds of millions of nodes and edges, which are normalized into a simple, unified format. Both cyclic and acyclic variants are included (as some graphs, such as citation networks, are not entirely acyclic). The dataset is suitable for studying the structure of different kinds of dependencies, enabling the characterization and distinction of various dependency graph types. It has been utilized for developing and testing efficient algorithms which leverage the specificities of source version control graphs. The collection is publicly available at doi.org/10.5281/zenodo.14245890.

**Index Terms**—dependency, directed graphs, dataset, software, package, source, versioning.

## I. INTRODUCTION

Software development involves dependency systems at several levels: version-control repositories track dependency between successive versions of the source code, and package managers track dependencies between libraries in a given environment. Such systems maintain underlying (mostly acyclic) directed graphs, steadily growing with each new version and every new package. We present a Corpus of Acyclic Repositories and Dependency Systems (CARDS), collecting both package and versioning graphs in a unified setting.

The corpus contains 11 graphs extracted from system package managers (from Linux distributions such as Arch Linux, Debian, NixOS, etc.) for a total of nearly 700 thousand nodes. Similarly, 13 language-specific library dependency graphs are integrated (from software library repositories like Maven, rpmjs, etc.) for a total of 6 million nodes. The second category of graphs comprises revision graphs extracted from several hundreds of thousands public repositories, versioned under both the Git and Mercurial distributed version-control systems, with diverse history sizes from thousands to millions of commits, for a total of several hundred million nodes. Finally, we also include 45 dependency graphs from altogether different sources, in order to extend the corpus with as many types of DAGs as possible: messages and events in Matrix chat rooms, scientific paper citations, law references, etc. See Table I for complete details.

Each graph is given in a simple plain text format, in topological order; cycles are broken when necessary, in which case raw cyclic graphs are also made available.

The CARDS collection is made available under the Open Database License (ODbL v1.0 [1]). The associated scripts and programs used to produce the dataset are made available under the European Union Public Licence (EUPL v1.2 [2]). The latest version is available on Zenodo [3] at doi.org/10.5281/zenodo.14245890.

### A. Usage and Related Works

Previous works extracting dependency graphs exist for the Maven Central repository [4], patents and scientific paper citations [5] [6], as well as court case citations [7]. To the best of our knowledge, CARDS is the first corpus gathering such dependency graphs from various sources in a unified setting, along with topological orderings to simplify further research.

We expect this corpus can be used to develop specific algorithmic solutions for package managers and version control systems. In particular, a subset of the repositories presented here have already been used in a benchmark for new reachability algorithms in DAGs, specifically tailored for version-control systems [8].

### B. Organization of the Manuscript

Section II presents each dataset included in the corpus individually, with its processing specificities. Section III details the file format used for dependency files, both raw (.deps) and topologically sorted (.tdag). Section IV give the methods used to process datasets in general, and the topological sort algorithm in particular. We conclude in Section V with possible future improvements of the dataset.

## II. DATASETS

### A. Arch Linux packages (including AUR)

This dataset contains software package dependency graphs for the Arch Linux distribution. It includes packages from the core and extra Arch Linux base repositories [9], as well as packages from the Arch User Repositories (AUR) [10], combined due to the dependency of the latter over the base repositories. The package metadata from the base repository were retrieved from the Arch Linux mirror as a tar archive
<table><caption>TABLE I
OVERVIEW OF THE CARDS DATASETS</caption><thead><tr><th>Group</th><th>Dataset</th><th>Selection</th><th>Snapshot</th><th>Labels</th><th>Cyclic</th><th>|G|</th><th>V&#773;</th><th>E&#773;</th></tr></thead><tbody><tr><td rowspan="5">System packages</td><td>Arch Linux (including AUR)</td><td>Whole</td><td>2024-10</td><td>Package name</td><td>Yes</td><td>4</td><td>108k</td><td>516k</td></tr><tr><td>Debian</td><td>Whole</td><td>2024-10</td><td>Package name</td><td>Yes</td><td>1</td><td>63k</td><td>297k</td></tr><tr><td>FreeBSD ports</td><td>Whole</td><td>2024-10</td><td>Package name</td><td>No</td><td>2</td><td>36k</td><td>1M</td></tr><tr><td>Homebrew formulae</td><td>Whole</td><td>2024-10</td><td>Package name</td><td>No</td><td>3</td><td>7k</td><td>7k</td></tr><tr><td>NixOS nixpkgs</td><td>Whole</td><td>2024-10</td><td>Hash-Name</td><td>Loops</td><td>1</td><td>116k</td><td>509k</td></tr><tr><td rowspan="5">Project dependencies</td><td>Maven Central</td><td>Whole</td><td>2018-09</td><td>Package name</td><td>Yes</td><td>6</td><td>223k</td><td>21k</td></tr><tr><td>npmjs</td><td>Whole</td><td>2024-10</td><td>Package name</td><td>Yes</td><td>2</td><td>3M</td><td>19M</td></tr><tr><td>Perl CPAN</td><td>Whole</td><td>2024-11</td><td>Package name</td><td>Yes</td><td>1</td><td>35k</td><td>353k</td></tr><tr><td>R CRAN</td><td>Whole</td><td>2024-11</td><td>Package name</td><td>No</td><td>1</td><td>21k</td><td>8k</td></tr><tr><td>Rust Crates</td><td>Whole</td><td>2024-11</td><td>Package name</td><td>Yes</td><td>3</td><td>55k</td><td>326k</td></tr><tr><td rowspan="3">Source versioning</td><td>Software Heritage Bitbucket Mercurial repositories</td><td>Whole</td><td>2020-07</td><td>Commit hash</td><td>No</td><td>245k</td><td>1k</td><td>1k</td></tr><tr><td>Software Heritage Bitbucket Mercurial wikis</td><td>Whole</td><td>2020-07</td><td>Commit hash</td><td>No</td><td>81k</td><td>3</td><td>2</td></tr><tr><td>Git large open-source repositories</td><td>Subset</td><td>2024-10</td><td>Commit hash</td><td>No</td><td>123</td><td>166k</td><td>191k</td></tr><tr><td>Events</td><td>Matrix large public rooms</td><td>Subset</td><td>2024-11</td><td>Event ID</td><td>No</td><td>38</td><td>40k</td><td>40k</td></tr><tr><td rowspan="6">Citations</td><td>AMiner citation</td><td>Whole</td><td>2023-01</td><td>In-dataset ID</td><td>Yes</td><td>1</td><td>5M</td><td>37M</td></tr><tr><td>Caselaw Access Project</td><td>Whole</td><td>2024-11</td><td>In-dataset ID</td><td>Yes</td><td>1</td><td>7M</td><td>68M</td></tr><tr><td>Légifrance LEGI</td><td>Whole</td><td>2024-11</td><td>In-dataset ID</td><td>Yes</td><td>1</td><td>2M</td><td>20M</td></tr><tr><td>OpenAlex works</td><td>Whole</td><td>2024-11</td><td>In-dataset ID</td><td>Yes</td><td>1</td><td>263M</td><td>3B</td></tr><tr><td>SNAP citations</td><td>Subset</td><td>multiple</td><td>In-dataset ID</td><td>Yes</td><td>3</td><td>1M</td><td>5M</td></tr></tbody></table>

The CARDS collection is divided into multiple Datasets corresponding to the origin of their graphs. The more general kind of origin is given in the Group column. The Selection columns indicates whether the dataset considers all or a selected subset of the origin. The Snapshot column corresponds to the date of data extraction from the origin. The Labels column indicates the type of the node identifiers. The Cyclic column indicates the presence of cycles in the source graphs. The number of distinct graphs is given for each group, along with their average node and edge counts before cycle elimination. These exclude additional combined graphs.

of plain text package information, converted to JSONL using a custom Python tar-stream parsing script. The package list and metadata from the AUR were retrieved from a name index and the Aurweb JSON-RPC API [11] respectively, using another custom Python script for generating batches of API queries. The metadata from both sources were normalized into a common format using jaq [12]. The provider-dependent relations were then resolved using DuckDB [13] (taking into account package replacement). Version constraints were not considered when resolving dependencies. Distinct dependency graphs were derived for runtime, make, check, and optional dependencies. An additional complete dependency graph was also derived as their union. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### B. Debian packages

This dataset contains the software package dependency graph for the Debian Linux distribution. The complete package index was obtained from a Debian CDN package mirror [14] in its specific Package index file format [15]. The index was then parsed using a custom Python script to build a temporary provider-dependent mapping, from which the dependency graph was derived. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### C. FreeBSD ports

This dataset contains software package dependency graphs for the FreeBSD operating system. The complete package index was obtained from the FreeBSD Ports and Packages Collection FTP [16] in its specific INDEX file format [17], from which dependencies were extracted using a custom Python parsing script, then directly sorted in a topological order using the method IV-A (without cycle removal). Distinct dependency

graphs were derived for runtime and build dependencies. An additional graph was derived as the union of the two.

### D. Homebrew formulae

This dataset contains software package dependency graphs of the Homebrew package manager for macOS and Linux. The complete package index was obtained from the Homebrew Formulae JSON API [18], from which dependencies were extracted using jaq [12] and directly sorted in a topological order using the method IV-A (without cycle removal). Distinct dependency graphs were derived for runtime, build, and test dependencies. An additional graph was derived as the union of the three.

### E. NixOS nixpkgs

This dataset contains the software package dependency graph from the nixpkgs package collection. The complete package specifications were obtained by cloning the nixpkgs git repository [19], from which attributes were enumerated and evaluated to obtain their respective derivation output hash using Nix [20]. This operation took approximately a week. The referenced packages of each of those output packages were then queried from the NixOS public cache to derive the dependency graph using jaq [12]. Loops were eliminated when deriving the topologically-sort graph using IV-A.

### F. Maven Central

This dataset contains Java and JVM-related software library dependency graphs from the Maven Central repository. The CSV dependency tables of all packages (called "artifacts" in the Java ecosystem) from the Maven Central dependency graph dataset [21] [4] were re-used. The dependency relations were matched using DuckDB [13], producing one graph per scope
of dependency (runtime, compile, system, provided, test, and import). Only the latest artifact version was considered for each package. Artifact version constraints were not considered for resolving dependencies. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### G. `npmsjs`

This dataset contains the Node (JavaScript and related) software library dependency graphs from the `npmsjs` repository. The full packages metadata were obtained by mirroring the full `npmsjs.com` registry from its CouchDB replication endpoint [22] using a custom Python script. This operation took about a week, resulting in a 30GB (compressed) JSONL index. Package dependencies were then extracted using `jaq [12]`. Only the latest version was considered for each package. Version constraints were not considered for resolving dependencies. Distinct dependency graphs were derived for runtime and development dependencies. An additional graph was derived as the union of the three. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### H. Perl CPAN

This dataset contains the software library dependency graph from the Perl CPAN repository. The full metadata of the packages (called "distributions" in the Perl ecosystem) were obtained from the MetaCPAN Elasticsearch API [23] using a custom Python script, producing a JSONL index. The lists of modules provided by each package were then extracted using `jaq [12]`. Likewise for the module dependencies of each package. The provided-dependent packages were then matched using `DuckDB [13]`, ignoring version constraints. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### I. R CRAN

This dataset contains the software library dependency graph from the R CRAN repository. The packages metadata were obtained by mirroring the package index on the CRAN website [24] using `wget [25]`, and extracting the dependency information from the package pages using a custom Python program to form a single graph.

### J. Rust Crates

This dataset contains the software library dependency graph from the Rust crates.io repository. The packages metadata were obtained from the crates.io package index git repository [26] as JSON manifests, from which dependency relations were extracted using `jaq [12]`. Only the latest version was considered for each package. Version constraints were not considered for resolving dependencies. Distinct dependency graphs were derived for normal, development, and build dependencies. An additional graph was derived as the union of the three. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### K. Software Heritage Bitbucket Mercurial archive

Bitbucket [27] is an online software forge which offered hosting for projects using the Mercurial [28] [29] version-control system. The 254k Mercurial projects hosted on it were archived by Software Heritage [30] [31] in 2020, when support for Mercurial was dropped by the platform. A local copy of this 4.7TB compressed snapshot was re-packed from `.tar.gz` into one seekable `.zip` archive per repository. 81k projects were also accompanied by a wiki (the vast majority of which only containing one revision), also making use of Mercurial as version tracker. The commit history was then obtained through the `hg [28]` command line, reading the seekable archives through a virtual mount point using `mount-zip [32]`. This IO-bound extraction took about a week.

### L. Git large open-source repositories

This dataset contains the commit history graphs of a selection of 123 large open-source software projects which use `git [33]` for source versioning. The repositories were first cloned in full, resulting in a total of 170GB of data. The acyclic commit graphs (one per repository) were then extracted using the `git` command line interface.

### M. Matrix rooms

Matrix [34] is a decentralized communication protocol in which events are stored in a directed acyclic graph. Those graphs were obtained by joining 38 popular public chat rooms and spaces (groups) on the Matrix network using a local instance of the Synapse server [35]. The graphs (one per room and one per space) were extracted from the PostgreSQL database [36], [37]. While the graphs did not contain cyclic dependencies, the topological sort needed to be recomputed IV-A, as the server storage ordering is not necessarily topological (even taking into account the appropriate sort keys).

### N. AMiner Citation

AMiner is a published dataset of citations extracted from DBLP [5] [38]. The citation network was extracted from the latest version of the dataset (DBLP+Citation v14), given in 6GB compressed JSON data, using `jaq [12]`. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

### O. Caselaw Access Project

This dataset contains the citation network between the 6.9 million U.S. unique court cases from the Caselaw Access Project (CAP) [39]. Because the pre-processed citation graph [7] was no longer available for download at the time of writing, our citation graph was instead derived from the source metadata instead. The case metadata for each available volume was retrieved in bulk from the CAP website [40] using `wget [25]`, totaling to 30GB of JSON data. The citation network was then extracted from using `jaq [12]`. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.
P. Légifrance LEGI

This dataset contains the full citation network between all the laws, codes, and regulations of the French Republic available in consolidated format (from 1945), from the Légifrance LEGI dataset [41]. The LEGI law data were mirrored from the OpenData web server [42] as tar archives using wget [25]. The citation network was then extracted from the XML consolidated legal documents using a custom Python script, skimming through the tar archives in stream mode to filter the citations using an XPath query [43]. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

Q. OpenAlex works

This dataset contains the full reference network between all the works in the OpenAlex bibliographic database [44]. The whole snapshot (about 390GB compressed) was retrieved in bulk from S3 as JSONL entries [45]. The references were then extracted using jaq [12]. This bulk retrieval and stream-processing was faster than using projections through the OpenAlex API. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

R. SNAP citations

This dataset contains three citations graphs from the SNAP collection [6], for U.S. patents from 1963 to 1999 [46], and for high-energy physics theory [47] and phenomenology [48] articles on arXiv [49] between 1993 and 2003. The SNAP graphs were retrieved in a format directly compatible with our own .deps III-A. Cyclic dependencies were eliminated when deriving the acyclic variants using method IV-A.

III. DATA FORMAT

The graphs of the CARDS collection are encoded in the plain text formats described in this section.

A. Dependency specifications: .deps

The .deps format is used to encode directed graphs. Each line is a space-separated list of one or more identifiers, specifying a node and nodes on which it depends. Lines are ended with 
 and may appear in any order. Identifiers can be any space- and line return-free strings.

Nodes and dependencies may be specified multiple times, on the same line or over multiple lines. The concatenation of multiple .deps files corresponds to the union of the graphs described by each, merging dependencies.

B. Topological DAG: .tdag

The .tdag format is a constrained variant of the .deps format for DAGs, with exactly one line per node (no repetitions) and nodes appearing in topological order. See Fig 1 for an example of DAG and its .tdag encoding.

The .tdag format allows consumer programs to incrementally load a graph's nodes (with references only to known nodes at any given step). The format is also incremental: new nodes depending only on existing ones can be appended to the file.

<figure><img src="image_3.png" /><figcaption>Fig. 1. An example DAG on the left and a corresponding .tdag on the right.</figcaption></figure>

In this collection, .tdag are derived from .deps using topological sort with cycle elimination from IV-A. The concatenation of multiple .tdag files results in a valid .deps file, which can be canonicalized again using the same method.

IV. PROCESSING METHODS

A. Topological sort with cycle elimination

Topological sort was performed by a simple Depth-First Search. Edges from the current node to another open node (i.e., with a known path to the current node) are removed, thus effectively removing cycles. This algorithm was chosen for its simplicity and linear time, even though the result may not be a minimum-size feedback arc set. This was implemented as a Nim program, provided together with the collection.

B. General extraction and processing method

The graphs were extracted using the following main steps, with adaptations for each input as described in the previous section. All scripts were run on local machines.

Data was acquired first using bulk data archives, unless a fast API was available, using curl [50] and wget [25]. Flat files and archives were then processed as streams (in various formats for intermediate files: jsonl [51] [52], tsv, csv; then deps III-A and tdag III-B) then compressed using gzip [53]. For this processing, we used a combination of command line tools, general and domain-specific languages: jq with jaq [12], SQL with DuckDB [13], Python [54], Nim [55], as well as Fish shell [56] scripts to define the transformation pipelines.

The main bottleneck was disk IO for most operations (excluding topological sorting). Disk seek operations and RAM usage were kept to a minimum by leveraging stream processing, including for tar and zip archives, allowing skipping unpacking their content.

All scripts are provided within the Zenodo archive: doi.org/10.5281/zenodo.14245890.

V. FUTURE WORKS AND IMPROVEMENTS

This dataset offers a large collection of acyclic graphs to study dependency systems in software development. A first possible improvement would be to run advanced feedback arc set algorithms in order to maximize the number of retained dependencies in the sorted DAGs, or maybe provide the graph of strongly connected components. Also, other types of DAGs could be included, in particular functional dependencies (function calls, type usage, ...) in existing source code would be of interest.
REFERENCES

[1] "Open Database License (ODbL) v1.0," Open Knowledge. [Online].
Available: https://opendatacommons.org/licenses/odbl/1.0/

[2] "European Union Public Licence (EUPL) v1.2," The European Union, May 2017. [Online]. Available: https://eur-lex.europa.eu/eli/dec_impl/2017/863/oj

[3] European Organization For Nuclear Research and OpenAIRE, "Zenodo," 2013. [Online]. Available: https://www.zenodo.org/

[4] A. Benelallam, N. Harrand, C. S. Valero, B. Baudry, and O. Barais, "Maven central dependency graph," Nov. 2018. [Online]. Available: https://doi.org/10.5281/zenodo.1489120

[5] J. Tang, J. Zhang, L. Yao, J. Li, L. Zhang, and Z. Su, "Arnetminer: extraction and mining of academic social networks," in Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, 2008, pp. 990-998.

[6] J. Leskovec and A. Krevl, "SNAP Datasets: Stanford large network dataset collection," http://snap.stanford.edu/data, Jun. 2014.

[7] "Caselaw Access Project citation graph." [Online]. Available: https://lil.law.harvard.edu/blog/2020/04/22/caselaw-access-project-citation-graph/

[8] L. Bulteau, P.-Y. David, F. Horn, and E. Tran-Girard, "Dichotomy for reachability and label synchronisation in large version-controlled repositories," Nov. 2024, working paper or preprint. [Online]. Available: https://hal.science/hal-04778558

[9] "Arch Linux packages repository." [Online]. Available: https://archlinux.org/packages/

[10] "Arch User Repository (AUR)." [Online]. Available: https://aur.archlinux.org/

[11] "Aurweb RPC interface documentation." [Online]. Available: https://wiki.archlinux.org/title/Aurweb_RPC_interface

[12] "jaq." [Online]. Available: https://github.com/01mf02/jaq

[13] M. Raasveldt and H. Muehleisen, "DuckDB." [Online]. Available: https://github.com/duckdb/duckdb

[14] "Debian CDN mirror." [Online]. Available: http://ftp.debian.org/

[15] "Debian repository format documentation." [Online]. Available: https://wiki.debian.org/DebianRepository/Format

[16] "FreeBSD ports and packages index." [Online]. Available: http://ftp.freebsd.org/pub/FreeBSD/ports/index/

[17] "FreeBSD ports INDEX file." [Online]. Available: https://wiki.freebsd.org/Ports/INDEX

[18] "Homebrew formulæ API documentation." [Online]. Available: https://formulae.brew.sh/docs/api/

[19] "NixOS nixpkgs git repository." [Online]. Available: https://github.com/NixOS/nixpkgs/

[20] E. Dolstra, M. de Jonge, and E. Visser, "Nix: A safe and policy-free system for software deployment," in Proceedings of the 18th Conference on Systems Administration (LISA 2004), Atlanta, USA, November 14-19, 2004. USENIX, 2004, pp. 79-92. [Online]. Available: http://www.usenix.org/publications/library/proceedings/lisa04/tech/dolstra.html

[21] A. Benelallam, N. Harrand, C. Soto-Valero, B. Baudry, and O. Barais, "The maven dependency graph: a temporal graph-based representation of maven central," CoRR, vol. abs/1901.05392, 2019. [Online]. Available: http://arxiv.org/abs/1901.05392

[22] "Public registry api," rpm, Inc., Oct. 2016. [Online]. Available: https://github.com/rpm/registry/blob/c164c1d/docs/REGISTRY-API.md

[23] "MetaCPAN API documentation." [Online]. Available: https://github.com/metacpan/metacpan-api/blob/39e68d/API-docs.md

[24] "Cran." [Online]. Available: https://cran.r-project.org/web/packages/

[25] "GNU Wget." [Online]. Available: https://www.gnu.org/software/wget/

[26] "The crates.io package index." [Online]. Available: https://github.com/rust-lang/crates.io-index

[27] "Bitbucket." [Online]. Available: https://bitbucket.org/

[28] "Mercurial." [Online]. Available: https://www.mercurial-scm.org/

[29] O. Mackall, "Towards a better scm: Revlog and mercurial," Proc. Ottawa Linux Sympo, vol. 2, pp. 83-90, 2006.

[30] "Bitbucket public Mercurial archive," Octobus and Software Heritage, Apr. 2020. [Online]. Available: https://bitbucket-archive.softwareheritage.org

[31] "Boatbucket scripts." [Online]. Available: https://heptapod.host/octobus/boatbucket/

[32] "mount-zip." [Online]. Available: https://github.com/google/mount-zip

[33] "Git." [Online]. Available: https://git-scm.com/

[34] "Matrix protocol website." [Online]. Available: https://matrix.org/

[35] "Matrix Synapse source repository." [Online]. Available: https://github.com/element-hq/synapse

[36] "Room DAG concepts." [Online]. Available: https://github.com/matrix-org/synapse/blob/3500626/development/room-dag-concepts.md

[37] "PostgreSQL." [Online]. Available: https://www.postgresql.org/

[38] "AMiner DBLP+Citation network v14," Jan. 2023. [Online]. Available: https://www.aminer.cn/citation

[39] "Caselaw Access Project." [Online]. Available: https://case.law/

[40] "Caselaw Access Project documentation." [Online]. Available: https://case.law/docs/

[41] "LEGI: Codes, lois et règlements consolidés," République Française. [Online]. Available: https://www.data.gouv.fr/fr/datasets/legi-codes-lois-et-reglements-consolides/

[42] "LEGI OpenData archive." [Online]. Available: https://echanges.dila.gouv.fr/OPENDATA/LEGI/

[43] "XML Path Language XPath 3.1," W3C, Mar. 2017. [Online]. Available: https://www.w3.org/TR/xpath-31/

[44] J. Priem, H. Piwowar, and R. Orr, "Openalex: A fully-open index of scholarly works, authors, venues, institutions, and concepts," 2022. [Online]. Available: https://arxiv.org/abs/2205.01833

[45] "OpenAlex snapshot." [Online]. Available: https://docs.openalex.org/download-all-data/snapshot-data-format

[46] "SNAP patent citation network." [Online]. Available: https://snap.stanford.edu/data/cit-Patents.html

[47] "SNAP high-energy physics theory citation network." [Online]. Available: https://snap.stanford.edu/data/cit-HepTh.html

[48] "SNAP high-energy physics phenomenology citation network." [Online]. Available: https://snap.stanford.edu/data/cit-HepPh.html

[49] "arxiv e-print repository." [Online]. Available: https://arxiv.org/

[50] "curl." [Online]. Available: https://curl.se/

[51] "JSON Lines." [Online]. Available: https://jsonlines.org/

[52] "Newline Delimited JSON (NDJSON)." [Online]. Available: https://github.com/ndjson/ndjson-spec/blob/8a5a23/README.md

[53] "gzip." [Online]. Available: https://www.gzip.org/

[54] "Python." [Online]. Available: https://www.python.org/

[55] "Nim." [Online]. Available: https://nim-lang.org/

[56] "Fish shell." [Online]. Available: https://fishshell.com/