SEMTEST (Semantic Enrichment Test) es un demostrador interactivo diseñado para ilustrar, paso a paso y de forma completamente transparente, el proceso de enriquecimiento semántico de consultas documentales. A partir de un único término o frase libre introducida por el usuario, el sistema despliega de forma automática un pipeline de nueve fases que recorre las principales infraestructuras de conocimiento abierto de la Web Semántica: Wikipedia, Wikimedia Commons, DBpedia, Wikidata y Open Library.
▶ Prueba de enriquecimiento semántico de consultas SEMTEST
https://mblazquez.es/lab/semTest/
El objetivo no es simplemente recuperar información sobre un concepto, sino mostrar cómo ese concepto puede ser progresivamente enriquecido mediante la agregación de descriptores, categorías, relaciones semánticas, recursos gráficos, bibliografía asociada y representaciones formales en estándares RDF — todo ello con las URLs reales, las respuestas JSON en bruto y el código fuente de cada llamada visibles para el estudiante.
La herramienta nació como un experimento vinculado al proyecto de buscador Portudois y como demostrador docente para la asignatura de Técnicas Avanzadas de Recuperación de Información. Gracias al uso de Inteligencia Artificial en 2026 ha sido posible su rápida renovación, ampliando considerablemente su alcance técnico y pedagógico.
El concepto de enriquecimiento semántico en Documentación
El enriquecimiento semántico de consultas es un proceso central en los sistemas modernos de recuperación de información. Parte de una premisa sencilla: el término que introduce un usuario en un buscador es, por lo general, ambiguo, incompleto y descontextualizado. «Inteligencia artificial», «Psicología natural» o «Renacimiento» son solo ejemplos de etiquetas textuales que adquieren significado pleno cuando se relacionan con un conjunto estructurado de conceptos, categorías, propiedades y entidades vinculadas.
En el ámbito de la Biblioteconomía y la Documentación, este proceso entronca directamente con tradiciones consolidadas como el análisis de materias, el control de autoridades, los tesauros y las ontologías. La novedad que aporta el entorno de la Web Semántica es que esas estructuras de conocimiento ya no están encerradas en herramientas propietarias, sino que están publicadas como datos enlazados abiertos (Linked Open Data) y accesibles mediante APIs estándar. SEMTEST convierte ese acceso en un proceso pedagógicamente visible.
Las nueve fases del pipeline semántico
El pipeline de SEMTEST está estructurado en nueve fases secuenciales, cada una de las cuales añade una capa de enriquecimiento al concepto original. El estudiante puede seguir cada paso en tiempo real gracias a una barra de progreso que refleja el estado de cada fase, y puede inspeccionar las URLs utilizadas, las respuestas JSON completas y el código HTML fuente de cada fuente consultada.
Fase 1 — Búsqueda en Wikipedia mediante la API MediaWiki
La primera fase convierte el término introducido por el usuario en una consulta estructurada contra la API JSON oficial de Wikipedia en español (action=query&list=search&srwhat=text). El sistema recupera hasta diez artículos relacionados con el concepto, ordenados por relevancia, con información sobre su tamaño, número de palabras y un fragmento de texto que permite identificar la pertinencia de cada resultado.
El primer artículo de la lista se convierte en el artículo de referencia (top-1) para el resto del pipeline. Este mecanismo reproduce el comportamiento de los sistemas de desambiguación automática de entidades (entity linking), que seleccionan la acepción más probable de un término en función del contexto.
Figura 1. En la fase 1 se obtienen todos los artículos relacionados con el tema de búsqueda
Fase 2 — Extracción de contenidos del artículo top-1
Una vez identificado el artículo de referencia, se realizan dos llamadas adicionales a la API de Wikipedia:
- Una primera llamada con
prop=extracts|linkspara obtener el texto del artículo en formato plano (sin marcas HTML) y los términos enlazados internamente (hasta 500 entidades de namespace 0). Estos términos constituyen una primera red de conceptos relacionados. - Una segunda llamada con
action=parse&prop=sectionspara extraer las secciones del artículo (titulares), que actúan como descriptores temáticos implícitos del concepto.
El resultado de esta fase es un vocabulario documental emergente: el conjunto de entidades que Wikipedia considera suficientemente relevantes para enlazar desde el artículo, más la estructura temática del propio artículo.
Figura 2. Se recupera el primer artículo de la búsqueda, obteniendo titulares, párrafos, secciones, y términos enlazados
Fase 3 — Extracción de backlinks
Los backlinks son los artículos de Wikipedia que enlazan hacia el artículo de referencia. Su extracción se realiza mediante prop=linkshere con el identificador numérico de página (pageID), que es el identificador estable de Wikipedia, independiente de los cambios en el título del artículo.
En términos documentales, los backlinks son el equivalente a las referencias de remisión inversa en un tesauro: artículos que mencionan el concepto como parte de su contenido principal. El conjunto de backlinks delimita, de forma indirecta, el campo de aplicación y los dominios de uso del concepto.
Figura 3. Se muestran los backlinks del artículo que se ha consultado
Fase 4 — Recuperación de recursos multimedia en Wikimedia Commons
Wikimedia Commons es el repositorio de recursos multimedia libres que sustenta a todos los proyectos Wikimedia. Esta fase consulta su API con action=query&list=search&srnamespace=6 para localizar archivos de imagen relacionados con el término. A continuación, una segunda llamada con prop=imageinfo&iiprop=url&iiurlwidth=180 obtiene las URLs reales de las miniaturas y de las páginas descriptivas de cada archivo.
Los resultados se presentan como una galería visual interactiva. Cada imagen enlaza a su página en Commons, donde el estudiante puede consultar metadatos de autoría, licencia y categorías. Desde una perspectiva documental, las imágenes recuperadas constituyen representaciones icónicas del concepto, complementarias a las representaciones textuales de las fases anteriores.
Figura 4. Se muestran los contenidos multimedia relacionados con la consulta
Fase 5 — Recuperación del recurso semántico en DBpedia
DBpedia es la versión estructurada y enlazada de Wikipedia: un grafo de conocimiento que extrae las propiedades de las cajas de información (infoboxes) y las categorías de los artículos de Wikipedia y las publica como tripletas RDF.
Esta fase opera en dos pasos. El primero consulta el DBpedia Lookup Service (https://lookup.dbpedia.org/api/search) para obtener el URI canónico del recurso en el grafo de DBpedia, resolviendo así los problemas de ambigüedad, redirecciones y diferencias ortográficas entre el término de la consulta y la denominación exacta usada en DBpedia. El segundo paso accede a la página HTML del recurso para extraer su título, nota introductoria, resumen (dbo:abstract en español), categorías temáticas (dct:subject), tipos ontológicos (rdf:type) y enlaces externos.
La distinción entre el URI RDF canónico (http://dbpedia.org/resource/X) y la URL de navegación web (https://dbpedia.org/page/X) es uno de los conceptos fundamentales de los Datos Enlazados: el URI es el identificador del recurso en el espacio de nombres del grafo RDF; la URL con /page/ es la representación HTML de ese recurso para el consumo humano.
Figura 5. Se presenta la información semántica vinculada a la consulta en DBpedia
Fase 6 — Recuperación del recurso semántico en Wikidata
Wikidata es la base de conocimiento estructurado de los proyectos Wikimedia, distinta de DBpedia en que es mantenida de forma activa por una comunidad y no derivada automáticamente de Wikipedia. Esta fase utiliza la API de Wikidata en dos pasos:
wbsearchentitiespara localizar el identificador Q del concepto (por ejemplo,Q11660para Inteligencia artificial).wbgetentitiesconprops=claimspara extraer todos los claims (declaraciones) que apuntan a otras entidades Q. A continuación, una resolución en lote de etiquetas (labels) en español e inglés convierte los identificadores Q en nombres legibles.
El resultado es una densa red de entidades relacionadas con el concepto: personas, lugares, disciplinas, tecnologías, obras, instituciones. Esta red es cualitativamente diferente a la de Wikipedia: mientras que los enlaces internos de Wikipedia son editoriales y contextuales, las relaciones de Wikidata son explícitamente tipadas y forman parte de un modelo ontológico formal.
La Fase 6 incluye además un visor del iframe de Wikidata Query Service, que ejecuta una consulta SPARQL visual sobre las relaciones de la entidad.
Figura 6. Consulta SPARQL del tema de búsqueda, identificador y entidades relacionadas semánticamente
Fase 7 — Consulta SPARQL directa al endpoint de DBpedia
Esta fase ejecuta una consulta SPARQL real contra el endpoint público de DBpedia (https://dbpedia.org/sparql), recuperando hasta 60 tripletas del recurso filtradas por idioma (español, inglés y literales sin etiqueta de idioma) y por tipo de valor (literales y URIs). Los resultados se presentan en una tabla estructurada con tres columnas: propiedad (nombre abreviado con tooltip al URI completo), valor (enlazado cuando es URI) y tipo de dato.
Un aspecto técnico relevante, con valor pedagógico explícito: el endpoint SPARQL de DBpedia requiere la cabecera HTTP Accept: application/sparql-results+json, que es diferente del tipo MIME genérico application/json. Esta distinción es visible en la interfaz del sistema, donde se muestra la cabecera exacta utilizada en la llamada.
El contraste entre las Fases 5 y 7 ilustra la diferencia entre el acceso HTML (web de documentos) y el acceso RDF/SPARQL (web de datos) a la misma información.
Figura 7. Se muestra la URL canónica del objeto de búsqueda y su página web pública así, como la consulta SPARQL empleada para obtener sus tripletas RDF
Fase 8 — Enriquecimiento bibliográfico mediante Open Library
Open Library es el catálogo bibliográfico abierto de Internet Archive, con más de 20 millones de registros de obras. Esta fase consulta su API de búsqueda (https://openlibrary.org/search.json) para recuperar hasta doce obras relacionadas con el concepto de la consulta.
Para cada obra se recupera título, autores, año de primera publicación y portada (desde https://covers.openlibrary.org). Los resultados se presentan en una rejilla de tarjetas bibliográficas visuales, clicables, que enlazan a la página completa del registro en Open Library.
Esta fase establece un puente entre el enriquecimiento semántico del concepto y su materialización bibliográfica: los recursos textuales que han articulado, desarrollado o debatido ese concepto a lo largo del tiempo. Desde el punto de vista documental, es la fase que conecta el proceso de análisis conceptual con los instrumentos clásicos de la gestión bibliográfica.
Figura 8. Adicionalmente se realiza una consulta de enriquecimiento bibliográfico en Open Library, relacionada con la búsqueda y entidad original
Fase 9 — Visualización del grafo semántico y exportación RDF
La fase final sintetiza todos los resultados anteriores en dos productos: Grafo interactivo D3.js. Un grafo de fuerza (force-directed graph) construido con la librería D3.js v7 representa visualmente las relaciones entre el concepto central y los nodos recuperados en las fases anteriores. Los nodos están codificados por color según su procedencia (Wikipedia, DBpedia, Wikidata, Open Library) y por tamaño según su relevancia. El grafo es completamente interactivo: admite zoom, desplazamiento y arrastre de nodos individuales. Al hacer clic sobre cualquier nodo se abre la URL del recurso correspondiente.
Exportación en cuatro formatos estándar de la Web Semántica:
- JSON-LD — formato de datos enlazados basado en JSON, con contexto Schema.org, DBpedia y Wikidata. Listo para incrustarse en páginas web como metadatos estructurados.
- Turtle (.ttl) — serialización RDF con prefijos
schema:,dct:yowl:, directamente importable en triplestore. - Grafo JSON (D3) — la estructura de nodos y aristas en formato JSON, reutilizable para otros proyectos de visualización.
- SVG — la imagen vectorial del grafo tal como aparece en pantalla, descargable para publicación o presentación.
Figura 9. Grafo semántico que muestra las relaciones o linked-data en relación a la entidad consultada
Cambios principales respecto a la primera versión
La versión original de SEMTEST fue un demostrador funcional que permitía ilustrar el concepto de enriquecimiento semántico, pero presentaba importantes limitaciones técnicas que con el tiempo lo fueron dejando inoperativo. La renovación en la versión 2.3 ha sido integral: no se trata de un conjunto de parches, sino de una reescritura completa orientada a la robustez, la extensibilidad y la calidad pedagógica.
De HTML scraping a APIs JSON oficiales
Este es el cambio más profundo. La versión original construía las URLs de búsqueda de Wikipedia directamente como URLs de la interfaz web, utilizando parámetros como profile=advanceddefault que dejaron de ser válidos con las actualizaciones de MediaWiki. Los backlinks se obtenían accediendo a la página Especial:LoQueEnlazaAquí, cuya estructura HTML también cambió con el tiempo. La versión 2.3 reemplaza todas estas llamadas frágiles por las APIs JSON oficiales de MediaWiki y Wikidata:
Función | Versión original | Versión 2.3 |
|---|---|---|
Búsqueda Wikipedia | Scraping HTML con |
|
Contenidos artículo | Scraping XPath del HTML |
|
Backlinks | Scraping de |
|
Imágenes Wikimedia | Scraping HTML (URLs relativas rotas) |
|
DBpedia | URL manual | Lookup API → URI canónico → página de datos |
Wikidata | Scraping HTML de la página de entidad |
|
SPARQL | No existía | Llamada directa con |
Open Library | No existía | API |
Corrección de timeouts y User-Agent en cURL
Un problema técnico que afectaba a todas las fases era la configuración de func.curl.php. La función getcurl1() original tenía un CURLOPT_CONNECTTIMEOUT de 1 segundo y un CURLOPT_TIMEOUT de 4 segundos, valores demasiado bajos para las APIs remotas de Wikipedia y Wikidata (que pueden tardar 3-8 segundos en responder). Además, no se enviaba ningún User-Agent, y Wikipedia bloquea o devuelve respuestas vacías a peticiones sin identificación.
La versión 2.3 introduce una función nueva, getcurl_api(), con timeouts de 10 y 30 segundos respectivamente, CURLOPT_FOLLOWLOCATION=true (para seguir redirecciones 301/302), descompresión automática con CURLOPT_ENCODING='' y User-Agent identificado. Para el endpoint SPARQL se usa adicionalmente la cabecera correcta Accept: application/sparql-results+json.
Tres nuevas fases de conocimiento
Las fases 7, 8 y 9 no existían en la versión original:
- Fase 7 (SPARQL): Acceso directo al grafo RDF de DBpedia mediante SPARQL, que ilustra la diferencia fundamental entre el acceso web convencional y el acceso semántico al mismo recurso.
- Fase 8 (Open Library): Enriquecimiento bibliográfico que cierra el ciclo conectando el análisis conceptual con los registros documentales.
- Fase 9 (Grafo + Exportación): Síntesis visual e integración de resultados en formatos estándar de la Web Semántica, convirtiendo el proceso de análisis en un mini-grafo de conocimiento exportable.
Aplicaciones y usos en Biblioteconomía y Documentación
SEMTEST está diseñado fundamentalmente como instrumento docente, pero sus aplicaciones van más allá del aula. En la enseñanza de recuperación de información permite demostrar de forma práctica conceptos que de otro modo quedarían en el plano abstracto: qué es un URI, cómo funciona el Linked Open Data, qué diferencia hay entre una búsqueda por texto libre y una consulta SPARQL, qué significa que un concepto esté «enriquecido» semánticamente. El estudiante no lee sobre estos conceptos: los ve funcionar en tiempo real sobre sus propias consultas. En el análisis de materias puede usarse como herramienta exploratoria para identificar descriptores candidatos, términos relacionados y categorías bibliográficas para cualquier concepto. Los resultados de DBpedia (dct:subject) y Wikidata son directamente comparables con las listas de encabezamientos de materias de la BNE o con los tesauros especializados. En proyectos de catalogación semántica, la exportación en JSON-LD y Turtle hace de SEMTEST un prototipo de herramienta de generación automática de metadatos estructurados. Los registros exportados pueden ser ingestados directamente en un triplestore o usados como base para el enriquecimiento de registros bibliográficos existentes. En proyectos de humanidades digitales, el grafo semántico y la bibliografía de Open Library ofrecen un punto de partida para mapear las relaciones conceptuales de un dominio de investigación, identificar autores clave y conectar fuentes primarias con representaciones formales del conocimiento. Como demostrador tecnológico ilustra el estado actual de los servicios de la Web Semántica: qué está disponible, cómo se accede, qué devuelve cada API, cuáles son sus limitaciones. Esto es especialmente valioso en un contexto en el que los grandes modelos de lenguaje tienden a invisibilizar la infraestructura subyacente del conocimiento estructurado.
Reflexión final
El enriquecimiento semántico no es un proceso nuevo en Documentación. Los profesionales de la información llevan décadas haciendo exactamente esto: tomar un término, contextualizarlo en una estructura de conocimiento, asignarle descriptores, relacionarlo con otros conceptos, ubicarlo en categorías y representarlo en formatos normalizados. Lo que ha cambiado es que esa estructura de conocimiento ya está disponible en la web, es accesible mediante APIs estándar y puede ser consultada de forma automatizada.
SEMTEST intenta mostrar ese puente: que lo que hacemos en Documentación cuando analizamos materias y construimos representaciones del conocimiento es, conceptualmente, lo mismo que hace una máquina cuando consulta DBpedia, ejecuta una query SPARQL o descarga el grafo de Wikidata. El rigor intelectual es el mismo; lo que cambia es la escala y la velocidad.
La versión 2.3 es una herramienta más robusta y más completa que la original. Pero sobre todo es una herramienta viva: cada consulta ejecuta procesos reales sobre infraestructuras reales, con resultados que cambian con el tiempo. Eso, en sí mismo, es parte de la lección.