migueldiazmacedo

Bibliometría

Bibliometría reproducible: automatizar el análisis de science mapping en una sola corrida

Automatiza el science mapping de biblioshiny sobre un corpus de Web of Science: de días de exportar a mano a ~13 minutos, determinista y reproducible.

30 de junio de 2026, 21:00

Ver el código en GitHub: CorpusBiblioExtractor

Explora un ejemplo del resultado 👉 una corrida completa en el navegador.

La bibliometría —el análisis cuantitativo de la literatura científica: qué se publica, quién cita a quién y cómo se agrupan los temas— rara vez es un ejercicio de una sola pasada. Un estudio de science mapping (el mapeo de la estructura de un campo a partir de sus publicaciones) se construye por iteración: se afina la consulta, se filtran documentos, llegan registros nuevos, y cada cambio obliga a rehacer el análisis completo.

La herramienta de referencia para ese trabajo es bibliometrix, un paquete del lenguaje R [3], junto con su interfaz gráfica biblioshiny [1][2]. biblioshiny es muy buena para explorar, pero su flujo es manual: cada tabla, cada figura y cada red se obtienen navegando menús y exportando a mano. Repetir las decenas de configuraciones de un análisis completo —cada vez que el corpus cambia— cuesta horas o días y, sobre todo, es difícil de reproducir de forma idéntica.

CorpusBiblioExtractor es una herramienta que construí para resolver exactamente eso [5]: recorre de forma automática y determinista todas las configuraciones de biblioshiny sobre un mismo corpus, en una sola corrida.

El valor está en la re-corrida, no en la primera

La intuición de fondo es simple. En un estudio bibliométrico, el primer análisis casi nunca es el definitivo: se corrige la búsqueda, se excluye un tipo de documento, se incorpora un año más de publicaciones. Lo costoso no es producir el mapa una vez, sino volver a producirlo igual después de cada ajuste.

Por eso la herramienta no automatiza “hacer el análisis”: automatiza poder repetirlo. Si la primera corrida y la décima entregan exactamente los mismos resultados a partir del mismo corpus, la iteración deja de ser semanas de exportar a mano y se vuelve cuestión de minutos.

A mano en biblioshinyCorpusBiblioExtractor
Esfuerzo por corridadías (clic y exportación manual de cientos de archivos)un comando
Tiempo (~473 docs)~13 min (159 escenarios)
Reproducible idénticodifícil / improbablesí (set.seed + renv)
Ante un cambio de corpusrepetir todo desde cerore-correr

La primera corrida te ahorra una tarde; cada cambio de corpus después te ahorra una semana.

Qué hace

Con una sola orden, CorpusBiblioExtractor toma un corpus y recorre las 42 secciones de análisis de biblioshiny —que, con sus combinaciones de configuración, se despliegan en 159 escenarios— llamando directo a las funciones de bibliometrix, sin pasar por la interfaz gráfica.

FlujoDetalle
EntradaUna exportación en formato BibTeX de Web of Science [4] (la base bibliográfica de Clarivate). Es el único formato de entrada admitido.
SalidasTablas en Excel (.xlsx), figuras en PNG, redes interactivas en HTML, diagramas de Sankey, archivos de red en formato Pajek (.net) y un visor HTML autónomo que reúne todo.

El recorrido se planea como el producto cartesiano de las secciones por los selectores de Main Configuration (campo, método, n-gramas…): en lugar de elegir a mano qué análisis correr, los corre todos.

Explora un ejemplo del resultado 👉 una corrida completa en el navegador.

Cómo sabe qué correr: leo el fuente, no mantengo una lista

En lugar de codificar a mano qué análisis y qué opciones existen, CorpusBiblioExtractor parsea el árbol de sintaxis (AST) del propio ui.R de la biblioshiny instalada (system.file("biblioshiny", package = "bibliometrix")) y deriva de ahí el menú completo: las 42 secciones, los selectores de Main Configuration (campo, método, n-gramas…), sus condicionales y qué resultados produce cada vista.

¿La consecuencia? Cuando biblioshiny cambia de versión, no edito una especificación a mano: la vuelvo a extraer del fuente instalado. La fuente de verdad de qué se puede correr es el código de biblioshiny, no mis notas.

Cómo logra ser reproducible

Esta es la parte que más me importa. Aquí, hacer el análisis reproducible se traduce en cuatro decisiones:

  • Determinismo. Donde hay azar —por ejemplo, en el acomodo de una red— se fija la semilla (set.seed), de modo que el resultado sea idéntico en cada corrida.
  • Versiones congeladas. Las 125 dependencias quedan ancladas con renv a versiones exactas (R 4.6.1, bibliometrix 5.4.1), para que el entorno de hoy sea el mismo dentro de un año. No depende de Python, pandoc ni Rtools.
  • Reanudable. Cada corrida deja manifiestos que permiten retomarla donde se quedó, sin rehacer lo ya hecho.
  • Verificación de versión. Avisa si tu R o tu bibliometrix difieren de las versiones probadas, en vez de fallar en silencio.

Rendimiento y alcance

Sobre un corpus de unos 473 documentos, recorrer las 42 secciones (159 escenarios) toma alrededor de 13 minutos. El escalado es sub-lineal: multiplicar el corpus por diez no multiplica por diez el tiempo, sino por algo cercano a 2.5.

Y, por honestidad, los límites —todos documentados en el repositorio—:

  • Acepta solo Web of Science. Scopus y OpenAlex no están soportados.
  • No incluye datos de ejemplo, porque los registros de Web of Science están licenciados.
  • Es beta, está bloqueada a esas versiones y se ofrece sin soporte; su deuda técnica está descrita abiertamente.

Cómo se usa

# Preparar el entorno (una sola vez)
Rscript make.R setup

# Correr el análisis completo sobre tu corpus
Rscript make.R run ruta/a/tu_corpus.bib

O desde R:

library(CorpusBiblioExtractor)
cbe_run(bib = "ruta/a/tu_corpus.bib")

El mismo oficio, otro dominio

Aunque parezcan mundos distintos, el cumplimiento fiscal del que escribo en la otra línea de este blog —el CFDI y el control continuo de transacciones— y la bibliometría reproducible comparten ADN: registrar, validar y controlar lo que ocurre, de forma verificable y auditable. El CFDI controla transacciones en tiempo real, con trazabilidad; la bibliometría reproducible vuelve auditable y re-ejecutable el registro de la producción científica. CorpusBiblioExtractor es, en el fondo, trazabilidad aplicada a un corpus.

Origen y atribución

CorpusBiblioExtractor nació como una herramienta personal para mi tesis: necesitaba repetir un análisis bibliométrico muchas veces sin volverme rehén de la interfaz. Se apoya por completo en bibliometrix [1], de Massimo Aria y Corrado Cuccurullo, a quienes corresponde el crédito del motor de análisis. Se publica bajo licencia GPL-3, igual que aquel, y no está avalada por sus autores. El código está abierto en el repositorio [5].

Referencias

[1] Aria, M. & Cuccurullo, C. (2017). bibliometrix: An R-tool for comprehensive science mapping analysis. Journal of Informetrics, 11(4), 959–975. https://doi.org/10.1016/j.joi.2017.08.007

[2] bibliometrix — sitio oficial del paquete y de biblioshiny. https://www.bibliometrix.org/

[3] The R Project for Statistical Computing. https://www.r-project.org/

[4] Web of Science (Clarivate) — base de datos bibliográfica. https://www.webofscience.com/

[5] CorpusBiblioExtractor — repositorio del proyecto (licencia GPL-3). https://github.com/migueldiaz66/CorpusBiblioExtractor

Glosario

Bibliometría
Análisis cuantitativo de la literatura científica: a partir de los metadatos de las publicaciones, mide qué se publica, quién cita a quién y cómo se agrupan los temas y los autores de un campo.
bibliometrix
Paquete del lenguaje R para análisis bibliométrico y science mapping, creado por Massimo Aria y Corrado Cuccurullo. Es la herramienta de referencia del campo.
biblioshiny
La interfaz gráfica de bibliometrix: permite hacer el análisis bibliométrico desde el navegador, sin escribir código. Su flujo es manual, basado en menús y exportaciones.
BibTeX
Formato de texto para describir referencias bibliográficas. Es uno de los formatos en que las bases de datos exportan los registros de publicaciones.
Co-citación
Relación entre dos documentos (o autores) citados juntos por un tercero: cuanto más se les cita en conjunto, más cercanos se consideran. Es una de las bases del science mapping.
Corpus (bibliográfico)
El conjunto de registros de publicaciones —con sus metadatos: autores, citas, palabras clave, año— sobre el que se realiza un análisis bibliométrico.
Pajek
Programa y formato de archivo (.net) para representar y analizar redes grandes. Las redes bibliométricas pueden exportarse en ese formato para estudiarlas en otras herramientas.
Reproducibilidad
Propiedad de un análisis que, a partir de los mismos datos, entrega exactamente los mismos resultados cada vez que se ejecuta. Exige fijar el azar y congelar las versiones de las herramientas.
Science mapping (mapeo científico)
Rama de la bibliometría que reconstruye la estructura de un campo —sus temas, sus comunidades de autores y cómo se relacionan— mediante redes de co-citación, acoplamiento bibliográfico y co-ocurrencia de palabras.
WoS Web of Science
Base de datos bibliográfica de publicaciones científicas y sus citas, operada por Clarivate. Es la fuente de datos que admite CorpusBiblioExtractor.

Preguntas frecuentes

¿Qué es la bibliometría?

Es el análisis cuantitativo de la literatura científica: medir qué se publica, quién cita a quién y cómo se agrupan los temas y los autores de un campo, a partir de los metadatos de las publicaciones.

¿Qué es el science mapping (mapeo científico)?

Es la rama de la bibliometría que reconstruye la estructura de un campo —sus temas, sus comunidades de autores y cómo se relacionan— mediante redes de co-citación, acoplamiento bibliográfico y co-ocurrencia de palabras.

¿Qué son bibliometrix y biblioshiny?

bibliometrix es un paquete del lenguaje R para análisis bibliométrico; biblioshiny es su interfaz gráfica. Son la herramienta de referencia del science mapping, creada por Massimo Aria y Corrado Cuccurullo.

¿Qué es CorpusBiblioExtractor?

Una herramienta en R, creada por el autor de este blog, que recorre de forma automática y determinista todas las configuraciones de análisis de biblioshiny sobre un corpus, en una sola corrida, para hacer el análisis reproducible.

¿Qué formato de entrada acepta?

Únicamente exportaciones en formato BibTeX de Web of Science. Otras bases, como Scopus u OpenAlex, no están soportadas por ahora.

¿Por qué importa que sea reproducible?

Porque un estudio bibliométrico se rehace muchas veces al refinar la consulta o actualizar el corpus. Si cada corrida entrega resultados idénticos a partir del mismo corpus, la iteración pasa de semanas de trabajo manual a minutos.

¿Necesito saber programar en R para usarlo?

No para lo básico: una orden prepara el entorno y otra corre el análisis completo. Saber R ayuda para personalizar, pero no es indispensable para ejecutarlo.

¿Cuánto tarda?

Sobre un corpus de unos 473 documentos, recorrer las 42 secciones (159 escenarios) toma alrededor de 13 minutos. El escalado es sub-lineal: un corpus diez veces mayor no tarda diez veces más.

¿Está soportada oficialmente?

No. Es una herramienta beta, bloqueada a versiones específicas (R 4.6.1, bibliometrix 5.4.1) y ofrecida sin soporte; su deuda técnica está documentada en el repositorio.

¿Qué licencia tiene?

GPL-3, la misma que bibliometrix, en el que se apoya. No está avalada por los autores de bibliometrix.


← Volver a Bibliometría