Skip to main content

No project description provided

Project description

bib2graph

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

PyPI version License Python Versions

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)

pip install bib2graph

Desde el Código Fuente

  1. Clonar el repositorio:

    git clone https://github.com/complexluise/bib2graph.git
    cd bib2graph
    
  2. Instalar dependencias con Poetry:

    poetry install
    

Configuración

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

# 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:

bib2graph completo

Ejecutar solo la fase de ingesta de datos:

bib2graph ingestar --input data/file.bib --tipo-archivo bibtex

Ejecutar solo la fase de enriquecimiento de datos:

bib2graph enriquecer

Ejecutar solo la fase de análisis de redes:

bib2graph analizar --tipo-red cocitacion --directorio-salida results

Ejecutar en modo simulación (sin efectos en la base de datos):

bib2graph completo --simulacion

Mostrar la versión del paquete:

bib2graph --version

Opciones disponibles:

Opciones comunes:

--neo4j-uri         URI de conexión a Neo4j
--neo4j-user        Nombre de usuario de Neo4j
--neo4j-password    Contraseña de Neo4j
--simulacion        Ejecuta en modo simulación sin realizar cambios en la base de datos

Comando 'ingestar':

--input             Archivo o directorio de entrada que contiene datos bibliométricos
--tipo-archivo      Tipo de archivo de entrada (bibtex)

Comando 'analizar':

--tipo-red          Tipo de red a extraer y analizar (cocitacion, autor, institucion, palabra_clave)
--peso-minimo       Peso mínimo para relaciones en la red
--directorio-salida Directorio para archivos de salida
--algoritmo-comunidad  Algoritmo a usar para detección de comunidades (louvain, label_propagation, greedy_modularity)

Comando 'completo':

--input             Archivo o directorio de entrada que contiene datos bibliométricos
--tipo-archivo      Tipo de archivo de entrada (bibtex)
--tipo-red          Tipo de red a extraer y analizar (cocitacion, autor, institucion, palabra_clave)
--peso-minimo       Peso mínimo para relaciones en la red
--directorio-salida Directorio para archivos de salida
--algoritmo-comunidad  Algoritmo a usar para detección de comunidades (louvain, label_propagation, greedy_modularity)

Ejemplos

Procesar un archivo BibTeX y generar una red de co-citación:

bib2graph completo --input data/references.bib --tipo-red cocitacion --directorio-salida results

Generar una red de colaboración entre autores:

bib2graph analizar --tipo-red autor --directorio-salida results

Generar una red de co-ocurrencia de palabras clave:

bib2graph analizar --tipo-red palabra_clave --directorio-salida results

Procesar un archivo BibTeX con un peso mínimo de arista de 2:

bib2graph completo --input data/references.bib --tipo-archivo bibtex --tipo-red cocitacion --peso-minimo 2 --directorio-salida results

Crear relaciones de red sin realizar análisis:

bib2graph crear-relaciones --tipo-red cocitacion

Estructura del Proyecto

bib2graph/
├── data/                      # Directorio de datos de entrada
│   └── references.bib         # Archivo BibTeX de ejemplo
├── bib2graph/                 # Código fuente
│   ├── __init__.py            # Inicialización del paquete
│   ├── __main__.py            # Punto de entrada del paquete
│   ├── cli.py                 # Interfaz de línea de comandos
│   ├── config.py              # Configuración y constantes
│   ├── 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
│   └── main.py                # Funciones principales del pipeline
├── results/                   # Resultados generados
├── tests/                     # Pruebas unitarias
├── 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 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

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

bib2graph-0.1.1.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bib2graph-0.1.1-py3-none-any.whl (35.1 kB view details)

Uploaded Python 3

File details

Details for the file bib2graph-0.1.1.tar.gz.

File metadata

  • Download URL: bib2graph-0.1.1.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.9.5 Windows/10

File hashes

Hashes for bib2graph-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1f0f2bc6f1a4c3be69835349b38832db0b0b74366a3c04b1a9843f258a012391
MD5 9a88bd05be2b75bc2386f8d0c2c79f5a
BLAKE2b-256 45aa422af57587d0b990fd4bd0420861ad721e0de6d31a04b527482567dfd519

See more details on using hashes here.

File details

Details for the file bib2graph-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bib2graph-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 35.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.9.5 Windows/10

File hashes

Hashes for bib2graph-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 062b9ea8264e1fcf90f69b76cc514116ebdaf810cb07e7c9b438162739563b5d
MD5 cc15c3c1596b3f7634209bedb562dd89
BLAKE2b-256 ef9a021d449ff618d75a0a51ae8c94d7f7832500c7971986e6c3b40628d55aa8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page