bib2graph


Namebib2graph JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/complexluise/bib2graph
SummaryA Python package for bibliometric data processing and network analysis
upload_time2025-07-13 15:47:41
maintainerLuis Eduardo Higuera Calderon
docs_urlNone
authorLuis Eduardo Higuera Calderon
requires_python<4.0,>=3.12
licenseApache-2.0
keywords bibliometrics network-analysis citation-analysis data-science neo4j
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# bib2graph

Un paquete de Python para el procesamiento de datos bibliométricos y análisis de redes.

[![PyPI version](https://img.shields.io/pypi/v/bib2graph.svg)](https://pypi.org/project/bib2graph/)
[![License](https://img.shields.io/github/license/complexluise/bib2graph.svg)](https://github.com/complexluise/bib2graph/blob/main/LICENSE)
[![Python Versions](https://img.shields.io/pypi/pyversions/bib2graph.svg)](https://pypi.org/project/bib2graph/)

## Descripción

`bib2graph` es un pipeline de datos completo para el análisis bibliométrico de publicaciones científicas. Transforma datos bibliográficos en representaciones de red para análisis avanzados. El pipeline consta de tres fases principales:

1. **Ingesta de Datos**: Analiza y normaliza metadatos bibliográficos desde BibTeX y los carga en una base de datos de grafos Neo4j.

2. **Enriquecimiento de Datos**: Consulta APIs externas (Semantic Scholar, CrossRef, Scopus) para obtener metadatos adicionales como citas, referencias completas, ORCIDs de autores e información de financiamiento.

3. **Extracción de Redes**: Genera varias redes para análisis, incluyendo redes de co-citación, redes de colaboración entre autores, redes de colaboración institucional y redes de co-ocurrencia de palabras clave.

## Arquitectura

La arquitectura del sistema consta de tres módulos principales:

1. **Módulo de Ingesta de Datos** (`consigue_los_articulos.py`): Responsable de cargar datos desde diferentes fuentes y normalizarlos para su almacenamiento en Neo4j.

2. **Módulo de Enriquecimiento de Datos** (`enriquecimiento.py`): Consulta APIs externas para obtener metadatos adicionales y actualizar la base de datos.

3. **Módulo de Análisis de Redes** (`analisis_red.py`): Extrae diferentes tipos de redes del grafo y las exporta para análisis posterior.

## Requisitos

- Python 3.12 o superior
- Base de datos Neo4j (instalación local o en la nube)
- Claves de API para servicios externos (opcional):
  - API de Semantic Scholar
  - API de Scopus

## Instalación

### Desde PyPI (Recomendado)

```bash
pip install bib2graph
```

### Desde el Código Fuente

1. Clonar el repositorio:
   ```bash
   git clone https://github.com/complexluise/bib2graph.git
   cd bib2graph
   ```

2. Instalar dependencias con Poetry:
   ```bash
   poetry install
   ```

### Configuración

Configurar variables de entorno para las claves de API y la conexión a Neo4j (opcional):

```bash
# Para Linux/macOS
export SEMANTIC_SCHOLAR_API_KEY="tu_clave_api"
export SCOPUS_API_KEY="tu_clave_api"
export NEO4J_URI="bolt://localhost:7687"
export NEO4J_USER="neo4j"
export NEO4J_PASSWORD="tu_contraseña"

# Para Windows (PowerShell)
$env:SEMANTIC_SCHOLAR_API_KEY="tu_clave_api"
$env:SCOPUS_API_KEY="tu_clave_api"
$env:NEO4J_URI="bolt://localhost:7687"
$env:NEO4J_USER="neo4j"
$env:NEO4J_PASSWORD="tu_contraseña"
```

## Uso

El script principal proporciona una interfaz de línea de comandos para ejecutar el pipeline completo o fases individuales:

### Ejecutar el pipeline completo:
```bash
bib2graph --mode full
```

### Ejecutar solo la fase de ingesta de datos:
```bash
bib2graph --mode ingest --input data/file.bib --file-type bibtex
```

### Ejecutar solo la fase de enriquecimiento de datos:
```bash
bib2graph --mode enrich
```

### Ejecutar solo la fase de análisis de redes:
```bash
bib2graph --mode analyze --network-type cocitation --output-dir results
```

### Opciones disponibles:
```
--mode              Modo de operación (ingest, enrich, analyze, full)
--input             Archivo o directorio de entrada
--file-type         Tipo de archivo (csv, bibtex, json)
--network-type      Tipo de red (cocitation, author, institution, keyword)
--min-weight        Peso mínimo para relaciones
--output-dir        Directorio para archivos de salida
--community-algorithm  Algoritmo de detección de comunidades (louvain, label_propagation, greedy_modularity)
--neo4j-uri         URI de conexión a Neo4j
--neo4j-user        Nombre de usuario de Neo4j
--neo4j-password    Contraseña de Neo4j
```

## Ejemplos

### Procesar un archivo BibTeX y generar una red de co-citación:
```bash
bib2graph --mode full --input data/references.bib --network-type cocitation --output-dir results
```

### Generar una red de colaboración entre autores:
```bash
bib2graph --mode analyze --network-type author --output-dir results
```

### Generar una red de co-ocurrencia de palabras clave:
```bash
bib2graph --mode analyze --network-type keyword --output-dir results
```

### Procesar un archivo CSV con un peso mínimo de arista de 2:
```bash
bib2graph --mode full --input data/citations.csv --file-type csv --network-type cocitation --min-weight 2 --output-dir results
```

## Estructura del Proyecto

```
bib2graph/
├── data/                      # Directorio de datos de entrada
│   └── references.bib         # Archivo BibTeX de ejemplo
├── src/                       # Código fuente
│   ├── consigue_los_articulos.py  # Módulo de ingesta de datos
│   ├── enriquecimiento.py     # Módulo de enriquecimiento de datos
│   ├── analisis_red.py        # Módulo de análisis de redes
│   ├── models.py              # Modelos de datos
│   └── queries.py             # Consultas a la base de datos
├── results/                   # Resultados generados
├── main.py                    # Script principal
├── pyproject.toml             # Configuración de Poetry
├── .github/                   # Flujos de trabajo de GitHub
│   └── workflows/             # Flujos de trabajo de CI/CD
└── README.md                  # Documentación
```

## Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulte el archivo [LICENSE](LICENSE) para más detalles.

## Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.

## Cita

Si utiliza bib2graph en su investigación, por favor cítelo como:

```
Higuera-Calderon, L. E. (2025). bib2graph: Un paquete de Python para el procesamiento de datos bibliométricos y análisis de redes. 
https://github.com/complexluise/bib2graph
```
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/complexluise/bib2graph",
    "name": "bib2graph",
    "maintainer": "Luis Eduardo Higuera Calderon",
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": "lhiguerac@unal.edu.co",
    "keywords": "bibliometrics, network-analysis, citation-analysis, data-science, neo4j",
    "author": "Luis Eduardo Higuera Calderon",
    "author_email": "lhiguerac@unal.edu.co",
    "download_url": "https://files.pythonhosted.org/packages/40/27/75909286b31a0405581978cbdf799edf201ebc8db403b573c25aa2416dc8/bib2graph-0.1.0.tar.gz",
    "platform": null,
    "description": "\n# bib2graph\n\nUn paquete de Python para el procesamiento de datos bibliom\u00e9tricos y an\u00e1lisis de redes.\n\n[![PyPI version](https://img.shields.io/pypi/v/bib2graph.svg)](https://pypi.org/project/bib2graph/)\n[![License](https://img.shields.io/github/license/complexluise/bib2graph.svg)](https://github.com/complexluise/bib2graph/blob/main/LICENSE)\n[![Python Versions](https://img.shields.io/pypi/pyversions/bib2graph.svg)](https://pypi.org/project/bib2graph/)\n\n## Descripci\u00f3n\n\n`bib2graph` es un pipeline de datos completo para el an\u00e1lisis bibliom\u00e9trico de publicaciones cient\u00edficas. Transforma datos bibliogr\u00e1ficos en representaciones de red para an\u00e1lisis avanzados. El pipeline consta de tres fases principales:\n\n1. **Ingesta de Datos**: Analiza y normaliza metadatos bibliogr\u00e1ficos desde BibTeX y los carga en una base de datos de grafos Neo4j.\n\n2. **Enriquecimiento de Datos**: Consulta APIs externas (Semantic Scholar, CrossRef, Scopus) para obtener metadatos adicionales como citas, referencias completas, ORCIDs de autores e informaci\u00f3n de financiamiento.\n\n3. **Extracci\u00f3n de Redes**: Genera varias redes para an\u00e1lisis, incluyendo redes de co-citaci\u00f3n, redes de colaboraci\u00f3n entre autores, redes de colaboraci\u00f3n institucional y redes de co-ocurrencia de palabras clave.\n\n## Arquitectura\n\nLa arquitectura del sistema consta de tres m\u00f3dulos principales:\n\n1. **M\u00f3dulo de Ingesta de Datos** (`consigue_los_articulos.py`): Responsable de cargar datos desde diferentes fuentes y normalizarlos para su almacenamiento en Neo4j.\n\n2. **M\u00f3dulo de Enriquecimiento de Datos** (`enriquecimiento.py`): Consulta APIs externas para obtener metadatos adicionales y actualizar la base de datos.\n\n3. **M\u00f3dulo de An\u00e1lisis de Redes** (`analisis_red.py`): Extrae diferentes tipos de redes del grafo y las exporta para an\u00e1lisis posterior.\n\n## Requisitos\n\n- Python 3.12 o superior\n- Base de datos Neo4j (instalaci\u00f3n local o en la nube)\n- Claves de API para servicios externos (opcional):\n  - API de Semantic Scholar\n  - API de Scopus\n\n## Instalaci\u00f3n\n\n### Desde PyPI (Recomendado)\n\n```bash\npip install bib2graph\n```\n\n### Desde el C\u00f3digo Fuente\n\n1. Clonar el repositorio:\n   ```bash\n   git clone https://github.com/complexluise/bib2graph.git\n   cd bib2graph\n   ```\n\n2. Instalar dependencias con Poetry:\n   ```bash\n   poetry install\n   ```\n\n### Configuraci\u00f3n\n\nConfigurar variables de entorno para las claves de API y la conexi\u00f3n a Neo4j (opcional):\n\n```bash\n# Para Linux/macOS\nexport SEMANTIC_SCHOLAR_API_KEY=\"tu_clave_api\"\nexport SCOPUS_API_KEY=\"tu_clave_api\"\nexport NEO4J_URI=\"bolt://localhost:7687\"\nexport NEO4J_USER=\"neo4j\"\nexport NEO4J_PASSWORD=\"tu_contrase\u00f1a\"\n\n# Para Windows (PowerShell)\n$env:SEMANTIC_SCHOLAR_API_KEY=\"tu_clave_api\"\n$env:SCOPUS_API_KEY=\"tu_clave_api\"\n$env:NEO4J_URI=\"bolt://localhost:7687\"\n$env:NEO4J_USER=\"neo4j\"\n$env:NEO4J_PASSWORD=\"tu_contrase\u00f1a\"\n```\n\n## Uso\n\nEl script principal proporciona una interfaz de l\u00ednea de comandos para ejecutar el pipeline completo o fases individuales:\n\n### Ejecutar el pipeline completo:\n```bash\nbib2graph --mode full\n```\n\n### Ejecutar solo la fase de ingesta de datos:\n```bash\nbib2graph --mode ingest --input data/file.bib --file-type bibtex\n```\n\n### Ejecutar solo la fase de enriquecimiento de datos:\n```bash\nbib2graph --mode enrich\n```\n\n### Ejecutar solo la fase de an\u00e1lisis de redes:\n```bash\nbib2graph --mode analyze --network-type cocitation --output-dir results\n```\n\n### Opciones disponibles:\n```\n--mode              Modo de operaci\u00f3n (ingest, enrich, analyze, full)\n--input             Archivo o directorio de entrada\n--file-type         Tipo de archivo (csv, bibtex, json)\n--network-type      Tipo de red (cocitation, author, institution, keyword)\n--min-weight        Peso m\u00ednimo para relaciones\n--output-dir        Directorio para archivos de salida\n--community-algorithm  Algoritmo de detecci\u00f3n de comunidades (louvain, label_propagation, greedy_modularity)\n--neo4j-uri         URI de conexi\u00f3n a Neo4j\n--neo4j-user        Nombre de usuario de Neo4j\n--neo4j-password    Contrase\u00f1a de Neo4j\n```\n\n## Ejemplos\n\n### Procesar un archivo BibTeX y generar una red de co-citaci\u00f3n:\n```bash\nbib2graph --mode full --input data/references.bib --network-type cocitation --output-dir results\n```\n\n### Generar una red de colaboraci\u00f3n entre autores:\n```bash\nbib2graph --mode analyze --network-type author --output-dir results\n```\n\n### Generar una red de co-ocurrencia de palabras clave:\n```bash\nbib2graph --mode analyze --network-type keyword --output-dir results\n```\n\n### Procesar un archivo CSV con un peso m\u00ednimo de arista de 2:\n```bash\nbib2graph --mode full --input data/citations.csv --file-type csv --network-type cocitation --min-weight 2 --output-dir results\n```\n\n## Estructura del Proyecto\n\n```\nbib2graph/\n\u251c\u2500\u2500 data/                      # Directorio de datos de entrada\n\u2502   \u2514\u2500\u2500 references.bib         # Archivo BibTeX de ejemplo\n\u251c\u2500\u2500 src/                       # C\u00f3digo fuente\n\u2502   \u251c\u2500\u2500 consigue_los_articulos.py  # M\u00f3dulo de ingesta de datos\n\u2502   \u251c\u2500\u2500 enriquecimiento.py     # M\u00f3dulo de enriquecimiento de datos\n\u2502   \u251c\u2500\u2500 analisis_red.py        # M\u00f3dulo de an\u00e1lisis de redes\n\u2502   \u251c\u2500\u2500 models.py              # Modelos de datos\n\u2502   \u2514\u2500\u2500 queries.py             # Consultas a la base de datos\n\u251c\u2500\u2500 results/                   # Resultados generados\n\u251c\u2500\u2500 main.py                    # Script principal\n\u251c\u2500\u2500 pyproject.toml             # Configuraci\u00f3n de Poetry\n\u251c\u2500\u2500 .github/                   # Flujos de trabajo de GitHub\n\u2502   \u2514\u2500\u2500 workflows/             # Flujos de trabajo de CI/CD\n\u2514\u2500\u2500 README.md                  # Documentaci\u00f3n\n```\n\n## Licencia\n\nEste proyecto est\u00e1 licenciado bajo la Licencia Apache 2.0 - consulte el archivo [LICENSE](LICENSE) para m\u00e1s detalles.\n\n## Contribuciones\n\n\u00a1Las contribuciones son bienvenidas! No dude en enviar un Pull Request.\n\n## Cita\n\nSi utiliza bib2graph en su investigaci\u00f3n, por favor c\u00edtelo como:\n\n```\nHiguera-Calderon, L. E. (2025). bib2graph: Un paquete de Python para el procesamiento de datos bibliom\u00e9tricos y an\u00e1lisis de redes. \nhttps://github.com/complexluise/bib2graph\n```",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A Python package for bibliometric data processing and network analysis",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/complexluise/bib2graph",
        "Homepage": "https://github.com/complexluise/bib2graph",
        "Repository": "https://github.com/complexluise/bib2graph"
    },
    "split_keywords": [
        "bibliometrics",
        " network-analysis",
        " citation-analysis",
        " data-science",
        " neo4j"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "37be13c02bbdaa53e2b9c2b4b337da561af956aab9fce467c776ec065c783f9b",
                "md5": "55274dd314486801ae01d0d800589073",
                "sha256": "1ee8b4747b68c4284ad270fb98a98df0afc12dcfe45c0600a8233c47416cdf40"
            },
            "downloads": -1,
            "filename": "bib2graph-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "55274dd314486801ae01d0d800589073",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 20685,
            "upload_time": "2025-07-13T15:47:40",
            "upload_time_iso_8601": "2025-07-13T15:47:40.575739Z",
            "url": "https://files.pythonhosted.org/packages/37/be/13c02bbdaa53e2b9c2b4b337da561af956aab9fce467c776ec065c783f9b/bib2graph-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "402775909286b31a0405581978cbdf799edf201ebc8db403b573c25aa2416dc8",
                "md5": "04e7355f32798276985000bfff5daa73",
                "sha256": "840f14b91f16dcd51c5c0771b95c59455f38ccb3902f0e98c43386f75fa79d33"
            },
            "downloads": -1,
            "filename": "bib2graph-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "04e7355f32798276985000bfff5daa73",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 18112,
            "upload_time": "2025-07-13T15:47:41",
            "upload_time_iso_8601": "2025-07-13T15:47:41.928614Z",
            "url": "https://files.pythonhosted.org/packages/40/27/75909286b31a0405581978cbdf799edf201ebc8db403b573c25aa2416dc8/bib2graph-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 15:47:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "complexluise",
    "github_project": "bib2graph",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "bib2graph"
}
        
Elapsed time: 0.42069s