A publication ranking and citation network analysis tools.
Project description
paperank
A Publication Ranking and Citation Network Analysis Tools
paperank is a Python package for analyzing scholarly impact using citation networks. It provides tools to build citation graphs from DOIs, compute PapeRank (a PageRank-like score), fetch publication metadata, and export ranked results. The package is designed for researchers, bibliometricians, and developers interested in quantifying publication influence within local or global citation networks.
For a discussion on the use of PageRank-like scores beyond the web see Gleich, 2014.
Features
-
Citation Graph Construction:
Automatically builds a citation network from a starting DOI, including both cited and citing works, with configurable depth. -
PapeRank Computation:
Calculates PageRank-like scores for all publications in the network, quantifying their relative importance. -
Metadata Retrieval:
Fetches publication metadata (authors, title, year, etc.) from Crossref and OpenCitations. -
Export Ranked Results:
Outputs ranked publication lists to JSON or CSV files, including scores and metadata. -
Robust HTTP Handling:
Uses retry logic for API requests to handle rate limits and transient errors.
Installation
Install via pip (recommended):
pip install paperank
Or clone the repository and install locally:
git clone https://github.com/gwr3n/paperank.git
cd paperank
pip install .
Dependencies are managed via pyproject.toml and include:
numpyscipyrequeststqdmurllib3
Quick Start
Here’s a minimal example to rank publications in a citation neighborhood:
from paperank.paperank_core import crawl_and_rank
# Set your target DOI
doi = "10.1016/j.ejor.2005.01.053"
# Run the analysis
results = crawl_and_rank(
doi=doi,
forward_steps=2,
backward_steps=2,
alpha=0.85,
output_format="json", # or "csv"
debug=False,
progress=True
)
This will:
- Collect the citation neighborhood around the DOI
- Compute PapeRank scores
- Save results to a file (
<DOI>.jsonor<DOI>.csv)
Main API
-
crawl_and_rank:
End-to-end workflow for crawling a citation network and ranking publications. -
rank:
Compute PapeRank scores for a list of DOIs. -
rank_and_save_publications_JSON:
Save ranked results to a JSON file. -
rank_and_save_publications_CSV:
Save ranked results to a CSV file. -
get_citation_neighborhood:
Collects DOIs in the citation neighborhood of a target publication.
Submodules
-
citation_crawler:
Functions for recursive citation/citing DOI collection. -
citation_matrix:
Builds sparse adjacency matrices for citation graphs. -
paperank_matrix:
Matrix utilities for stochastic and PageRank computations. -
crossref:
Metadata retrieval from Crossref. -
open_citations:
Citing DOI retrieval from OpenCitations. -
doi_utils:
DOI normalization and utility functions.
Example
See example.py for a comprehensive script demonstrating the workflow.
Testing
Unit tests are provided in the tests directory. Run with:
python -m unittest discover tests
License
MIT License. See LICENSE for details.
Citation
If you use paperank in published work, please cite the repository:
@software{rossi2025paperank,
author = {Roberto Rossi},
title = {paperank: a publication ranking and citation network analysis tools},
year = {2025},
url = {https://github.com/gwr3n/paperank}
}
Support & Contributions
- Issues and feature requests: GitHub Issues
- Pull requests welcome!
Project Homepage
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paperank-0.1.0.tar.gz.
File metadata
- Download URL: paperank-0.1.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afa2ac3fd0418f32113883bb33708b2475b75430911bcda427c6fa3954904278
|
|
| MD5 |
d8c099df85d948eb74875b5de3ddf3df
|
|
| BLAKE2b-256 |
18d807ee35530dab2f34e761bbb0ceceba260fa4bc259c2936bcd3ad38c00ef2
|
File details
Details for the file paperank-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paperank-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f607b5ee9f93b05cbaea92467e35d87f9c1813eb2fe02b60532b7852d565bfd
|
|
| MD5 |
a42f44943dd324937effda882203be7a
|
|
| BLAKE2b-256 |
c2b0343fa432781e541e8536a3f4996aababe8d7c7f919aa17ec8baa83829045
|