Interfaz de solo lectura entre R y las bases SQLite de EntropIA. Estilo tidyverse: explorás el corpus — ítems, textos, entidades, temas, resultados de LLM — sin escribir SQL.
La base se abre siempre en lectura. Nada de este paquete la modifica.
library(entropiaR)
library(dplyr)
con <- entropia_connect(system.file(
"extdata", "entropia-example.sqlite",
package = "entropiaR"
))
# 1. ¿Qué hay? Agregados en SQLite, sin bajar el texto.
eda <- entropia_overview(con)
eda$counts
eda$collections
# 2. Un dataset reproducible (un universo, una receta).
ds <- entropia_analysis_dataset(
con,
asset_type == "pdf",
name = "pdfs",
text = FALSE
)
entropia_provenance(ds)$dataset_sha256
# 3. Gráficos sobre las mismas tablas.
entropia_plot_collections(eda$collections)
entropia_plot_entities(eda$entities)
entropia_plot_coverage(eda$quality, metric = "ocr_coverage")
entropia_disconnect(con)Esperado: eda$counts informa items/assets/colecciones; el dataset es un
tibble con sello entropia_prov; los entropia_plot_* devuelven ggplot
extensibles con +.
# Si EntropIA puede estar abierta, snapshot primero (VACUUM INTO, WAL-aware).
live <- entropia_connect("ruta/a/entropia.sqlite")
snap <- tempfile(fileext = ".sqlite")
entropia_copy(live, snap)
entropia_disconnect(live)
con <- entropia_connect(snap)Compatibilidad al abrir (warn por defecto):
options(entropiaR.schema_policy = "warn") # o "error" | "allow"
entropia_schema_compat(con)$compatibleSin las tablas núcleo (collections, items, assets), warn y error
rechazan la conexión. allow abre para diagnóstico.
entropia_overview() agrega el universo elegido en SQL. No materializa
texto ni embeddings.
eda <- entropia_overview(
con,
asset_types = c("pdf", "image"),
page_assets = FALSE
)
eda$quality # n, total, pct, status, group_id
eda$entities # n = ocurrencias; pct = prevalencia por item
eda$topics
attr(eda$temporal, "exclusions")entropia_profile() perfila un tibble ya recolectado:
lengths <- entropia_text(con) |>
entropia_collect() |>
entropia_document_lengths()
entropia_profile(lengths, columns = c("n_chars", "n_words"))Caveats que el paquete no oculta:
| Hecho | Consecuencia |
|---|---|
Fechas de created_at |
Son operativas (alta/importación), no necesariamente la fecha del documento |
n de entidades |
Ocurrencias; pct es prevalencia sobre items del universo |
| Colecciones homónimas | Se distinguen por collection_id, no por el nombre |
| Páginas de PDF | Cada página es un asset; un item no es “un documento × N páginas” |
| Entidades de IA | Extracciones, no hechos verificados |
# No abre el navegador: devuelve un shiny.appobj.
app <- entropia_dashboard(snap)
# shiny::runApp(app)
# Informe HTML congelado (requiere Quarto en PATH).
entropia_report(eda, "estudio.html") # redacta rutas y etiquetas
entropia_report(eda, "estudio-interno.html", redact = FALSE)Shiny, bslib, ggplot2 y Quarto son opcionales. El núcleo (conexión, corpus, overview, export) funciona sin ellos.
| Capa | Entrada típica |
|---|---|
| Conexión / esquema | entropia_connect(), entropia_copy(), entropia_schema_*(), entropia_validate() |
| Tablas perezosas | entropia_items(), entropia_entities(), … + dplyr |
| Corpus y texto | entropia_corpus(), entropia_text(), entropia_metadata(), entropia_search() |
| EDA | entropia_overview(), entropia_profile() |
| Análisis | entropia_temporal_profile(), entropia_*_frequency(), entropia_compare_collections() |
| Datasets | entropia_analysis_dataset(), entropia_provenance(), entropia_export() |
| Gráficos | entropia_plot_*() (Suggests: ggplot2) |
| Apps | entropia_dashboard(), entropia_report() |
El español es el idioma principal (este README y vignette("connect"),
etc.). El inglés es la versión secundaria: README.en.md y
vignette("connect.en"), etc.
Artículos, en orden de uso:
vignette("connect")— abrir, validar, snapshotvignette("corpus")— colecciones, ítems, assetsvignette("text")— OCR, transcripciones, metadatosvignette("dplyr")— filtros perezosos y tipadovignette("eda")— overview y profilevignette("visualize")— gráficos individualesvignette("datasets")— procedencia v2 y exportaciónvignette("analysis")— un análisis completovignette("dashboard")— Shiny y Quartovignette("administration")— solo lectura, WAL, stubs de escritura
Sitio: https://humalab.github.io/EntropIA-R/
Desarrollo temprano, v1 solo lectura. Los stubs entropia_insert/update/upsert/delete
fallan con entropia_error_write_disabled. Escritura real: v2.
Requiere R >= 4.1.
MIT.