Metadata-Version: 2.4
Name: bib2graph
Version: 0.10.2
Summary: Librería de Python para transformar corpus bibliográficos en redes bibliométricas reproducibles (co-citación, colaboración, co-ocurrencia).
Project-URL: Homepage, https://github.com/complexluise/bib2graph
Project-URL: Repository, https://github.com/complexluise/bib2graph
Project-URL: Documentation, https://github.com/complexluise/bib2graph/tree/main/docs
Project-URL: Changelog, https://github.com/complexluise/bib2graph/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/complexluise/bib2graph/issues
Author: Equipo bib2graph
License: GPL-3.0-or-later
License-File: LICENSE
Keywords: bibliometrics,bibtex,co-citation,network-analysis,reproducible-research
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.11
Requires-Dist: click>=8.1
Requires-Dist: duckdb>=0.10
Requires-Dist: httpx>=0.27
Requires-Dist: networkx>=3.2
Requires-Dist: pyarrow>=15
Requires-Dist: pydantic>=2.6
Requires-Dist: python-louvain>=0.16
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: rapidfuzz<4,>=3
Requires-Dist: tqdm>=4.66
Provides-Extra: bibtex
Requires-Dist: bibtexparser>=1.4.4; extra == 'bibtex'
Provides-Extra: neo4j
Provides-Extra: s2
Provides-Extra: viz
Description-Content-Type: text/markdown

# bib2graph

> De una búsqueda bibliográfica a **redes de citación reproducibles** — una biblioteca de literatura que curás vos, sin servidores ni planillas.

[![PyPI](https://img.shields.io/pypi/v/bib2graph)](https://pypi.org/project/bib2graph/)
[![Python](https://img.shields.io/pypi/pyversions/bib2graph)](https://pypi.org/project/bib2graph/)
[![License: GPL-3.0](https://img.shields.io/badge/license-GPL--3.0--or--later-blue)](LICENSE)
[![CI](https://github.com/complexluise/bib2graph/actions/workflows/ci.yml/badge.svg)](https://github.com/complexluise/bib2graph/actions/workflows/ci.yml)

**bib2graph** toma una ecuación de búsqueda (o un archivo `.bib`), arma un corpus de papers
desde [OpenAlex](https://openalex.org), te deja **curarlo** y lo proyecta a **redes
bibliométricas** listas para analizar en Gephi, Python o donde quieras: acoplamiento
bibliográfico, co-citación, co-autoría, colaboración institucional y co-ocurrencia de keywords.

El corpus **persiste y crece** entre sesiones, y el resultado es **reproducible**: mismo input,
mismas redes.

> ⚠️ **Alpha.** Mientras la versión sea `0.x`, la API puede cambiar entre releases menores.
> Úsalo para explorar y validar, no como dependencia estable de producción todavía.

## Instalación

Recomendamos [**uv**](https://docs.astral.sh/uv/) para gestionar el entorno:

```bash
uv add bib2graph
```

También funciona con pip:

```bash
pip install bib2graph
```

Sembrar desde archivos BibTeX necesita un extra: `bib2graph[bibtex]`.

## Quickstart

De una ecuación a un GraphML, sin escribir código:

```bash
b2g init mi-investigacion
cd mi-investigacion

b2g seed --equation '"unequal ecological exchange"' --max-results 50   # corpus desde OpenAlex
b2g build                                                              # construye las redes
b2g export --format graphml                                           # → redes en GraphML
```

Cada comando acepta `--json` para orquestarlo desde scripts o agentes. Lista completa de
comandos: `b2g --help`.

### Con Claude Code: pedile a Claude que lo use

La forma más simple de usar bib2graph es **pedirle a Claude que lo use por vos**. bib2graph trae una
**skill de Claude Code** que entrevista tu pregunta de investigación y corre el ciclo completo
(`init → seed → chain → build → read`) sin que escribas comandos:

```bash
pip install bib2graph
b2g skill add            # instala la skill en ~/.claude/skills/bib2graph/
```

Después, en Claude Code: *"usá bib2graph para armar la red de citación de estos papers…"*. La skill
viaja **dentro del mismo paquete** que el CLI, así que **siempre está al día con tu versión** de
bib2graph. Usá `--project` para instalarla solo en el proyecto actual.

### Desde Python

```python
from pathlib import Path
from bib2graph import OpenAlexSource, DuckDBStore, Networks, GraphMLExporter

corpus = OpenAlexSource().seed('"unequal ecological exchange"').corpus
store = DuckDBStore(Path("biblioteca.duckdb"))
store.persist(corpus)

for red in Networks.quick(store.load()):
    GraphMLExporter().export(red.graph, red.metrics, out_dir=Path(f"redes/{red.spec.kind}"))
```

## Qué hace

- **Siembra** desde una ecuación de búsqueda (OpenAlex) o un archivo BibTeX.
- **Expande** el corpus siguiendo citaciones, rankeando candidatos por estructura — sin IA.
- **Curás vos:** aceptar/rechazar papers, filtros PRISMA, todo versionable en CSV.
- **5 redes bibliométricas:** acoplamiento, co-citación, co-autoría, instituciones, co-keywords.
- **Sub-redes temáticas** filtrando por keyword.
- **Biblioteca persistente** (DuckDB) que crece entre sesiones.
- **Reproducible:** mismo corpus → mismas redes y comunidades (hash de contenido).
- **Dos interfaces:** CLI scriptable (`b2g`, salida `--json`) y librería de Python.
- **Exporta** a GraphML/CSV para Gephi, Cytoscape, networkx, etc.

## Cómo se construye (y la IA)

bib2graph se desarrolla **con la IA en el lazo**: una persona plantea el problema, decide y
**aprueba cada cambio**; modelos de IA implementan el código, los tests y la documentación bajo
esa dirección. **El producto en sí no usa IA generativa** — el ranking del forrajeo es estructura
bibliométrica determinista (acoplamiento, co-citación, centralidad), sin LLM ni embeddings, y la
curación es 100% humana. El detalle está en [`AI_DISCLOSURE.md`](AI_DISCLOSURE.md).

## Documentación

- **[Guía de contribución](CONTRIBUTING.md)** — setup de desarrollo, convenciones, cómo aportar.
- **[Arquitectura](docs/ARCHITECTURE.md)** — cómo está construido por dentro.
- **[Referencia de la API](docs/API.md)** — contratos públicos de la librería y el CLI.
- **[Decisiones de diseño](docs/decisiones/)** — los ADRs, para quien quiera el porqué.

## Licencia

[GPL-3.0-or-later](LICENSE) — software libre con copyleft fuerte: cualquier derivado que se
distribuya debe seguir siendo libre y de código abierto. Es deliberado: esta herramienta queda
para la comunidad y no puede cerrarse en un producto propietario.

Copyright (C) 2026 Equipo bib2graph (complexluise).
