00

Introducción

La continua proliferación y crecimiento de la información publicada en la red hace necesario un conocimiento más profundo de las técnicas, herramientas y aplicaciones en recuperación de información. La producción documental digital ha experimentado un crecimiento exponencial desde la aparición de la web: millones de documentos, artículos, registros bibliográficos, noticias, datos de investigación y contenidos multimedia se generan y publican cada día en miles de repositorios, bases de datos y plataformas de publicación. Ante este volumen, el profesional de la información no puede limitarse a localizar documentos de forma manual; necesita comprender y dominar los sistemas que hacen posible la organización, indexación y recuperación automática a escala.

En este contexto, los sistemas de gestión de contenidos —también denominados CMS, como Joomla o Drupal— han contribuido a facilitar la organización de la información y a multiplicar el número de vías y medios de acceso a ella. En este mismo marco de trabajo se inscriben los sistemas de redifusión o sindicación de contenidos, así como las herramientas y modelos de recuperación de información que se estudian en esta asignatura.

Se consideran aplicaciones documentales en su sentido más amplio todas aquellas herramientas cognitivas de tipo clasificatorio, librario o informático que facilitan y ayudan al documentalista en su actividad profesional. No se trata únicamente de herramientas de búsqueda: incluyen también los procesos de tratamiento previo de la información (normalización, indexación, eliminación de ruido documental), los modelos de representación del conocimiento (vectores, ontologías, tesauros) y los sistemas que permiten explotar esa representación para ofrecer resultados pertinentes al usuario.

En el contexto de la recuperación de información que aborda esta asignatura, se consideran aplicaciones documentales los siguientes sistemas y metodologías:

Recuperación de Información Aplicaciones Documentales Bases de datos SQL Sindicación RSS/ATOM Clustering (Carrot2) FULLTEXT & TF-IDF OrangeUP / MARC-XML Apache Lucene / OmniFind

Figura 1. Mapa conceptual de los sistemas estudiados en la asignatura

01

Programa de la Asignatura

Asignatura: Aplicaciones Documentales de la Recuperación de Información
Máster: Gestión de la Documentación, Bibliotecas y Archivos · UCM
Profesor: Manuel Blázquez Ochando

Objetivos

Metodología

Evaluación

Temario abreviado

  1. Herramientas de difusión y recuperación de información
  2. Técnicas de recuperación y web semántica

Temario expandido

  1. Herramientas de difusión y recuperación de información
    • Recuperación de información en bases de datos — Introducción
    • Principios de SQL
    • Operaciones SQL esenciales
    • Recuperación avanzada con SQL (FULLTEXT)
    • Sindicación de contenidos y recuperación de información
    • Generación automática de canales RSS y MARC-XML
    • Recuperación de información en canales de sindicación
    • Recuperación por grupos: clustering
    • Recuperación masiva: expansión de consulta
  2. Técnicas de recuperación y web semántica
    • Introducción y conceptos fundamentales
    • Construcción de índices
    • Modelos de recuperación de información
    • Recuperación de información para la empresa
    • Evaluación centrada en usuarios
02

Recuperación de Información en Bases de Datos

¿Qué es una base de conocimiento?

Es cualquier colección o fondo documental que constituye el corpus de un sistema de recuperación de información. Habitualmente esta base de conocimiento se organiza y estructura en bases de datos para su mejor gestión, tratamiento y recuperación. Esto significa que una base de conocimiento puede ser desde un compendio de datos, cifras y cadenas de texto inconexas hasta documentos, referencias bibliográficas y compendios informativos y semánticos con plena significación.

En el ámbito de las Ciencias de la Documentación, la base de conocimiento es el sustrato sobre el que opera cualquier sistema de recuperación: un catálogo bibliográfico, un repositorio de artículos científicos, un archivo de expedientes administrativos o un conjunto de registros de autoridad son, todos ellos, bases de conocimiento susceptibles de ser gestionadas y explotadas con las técnicas que se estudian en esta asignatura.

¿Qué es una base de datos?

La base de datos es el sistema que posibilita la organización y estructuración de los contenidos en tablas y estas, a su vez, en campos, de tal forma que cada campo represente una característica o rasgo descriptivo de la información registrada. Cada tabla representa el dominio general que se está almacenando. Por ejemplo, una tabla de usuarios contendrá campos lógicos que definan, describan e identifiquen a cada usuario: nombre, apellidos, DNI, dirección, correo, website, teléfono, código postal, etc.

Dentro de las distintas tablas de una base de datos es posible encontrar relaciones evidentes, ampliando la magnitud de la información. Este es el caso de las bases de datos relacionales: la tabla de usuarios puede estar relacionada con la tabla de préstamos, en la que se registran los documentos que se les presta. Esta operación requiere un campo clave de relación —habitualmente denominado clave foránea o foreign key— que vincula el identificador del usuario con los datos del préstamo y el identificador del libro prestado. Este mecanismo permite que tablas independientes queden vinculadas y puedan ser contrastadas y filtradas conjuntamente mediante consultas SQL que empleen la cláusula JOIN.

Tipos de campos en MySQL

El diseño de los campos de una tabla es una decisión crítica para la eficiencia del sistema. Los tipos de datos más habituales en MySQL son:

¿Qué es un gestor de bases de datos?

El manejo de las bases de datos habitualmente se lleva a cabo mediante comandos definidos en terminales especializados (shell en Linux, cmd en Windows). Estos comandos responden en su mayoría al lenguaje de consulta normalizado SQL (Structured Query Language), con el que la base de datos entiende qué debe hacer. Dado que este método requiere un tecleado continuo, se han desarrollado programas informáticos que proporcionan un interfaz gráfico para la edición, tratamiento y recuperación de la información. Estos programas se denominan gestores de bases de datos. Uno de los más conocidos y utilizados en el mundo es phpMyAdmin, diseñado especialmente para trabajar con bases de datos que emplean SQL.

Otras alternativas modernas al phpMyAdmin son MySQL Workbench (cliente de escritorio oficial de Oracle/MySQL), DBeaver (multiplataforma y multi-motor) o TablePlus, todas ellas con soporte para SQL completo y visualización de relaciones entre tablas.

¿Qué es MySQL?

MySQL es el sistema de gestión de bases de datos relacionales de código abierto más extendido del mundo. Desarrollado originalmente por MySQL AB y actualmente mantenido por Oracle Corporation, utiliza el lenguaje de consulta SQL y se emplea conjuntamente con PHP para crear la mayoría de las aplicaciones web. Normalmente actúa como componente esencial de los paradigmas de desarrollo web:

Entre sus características más relevantes desde el punto de vista documental destacan:

¿Cómo se conecta a MySQL?

Para trabajar con MySQL se necesita instalarlo previamente mediante una distribución WAMP (XAMPP), LAMP o MAMP. Una vez instalado, se requieren los siguientes datos de conexión:

Ejemplo de conexión en PHP (sintaxis moderna con PDO):

<?php
// Conexión con PDO (recomendado desde PHP 7+)
$dsn  = 'mysql:host=localhost;port=3306;dbname=openbiblio;charset=utf8mb4';
$user = 'root';
$pass = 'root';

try {
    $pdo = new PDO($dsn, $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die('Error de conexión: ' . $e->getMessage());
}
?>

La función mysql_connect() está obsoleta desde PHP 5.5 y eliminada en PHP 7. Se recomienda usar PDO (para múltiples motores de BD) o MySQLi (específico para MySQL). PDO permite además el uso de sentencias preparadas (prepared statements), que previenen ataques de inyección SQL.

03

Principios de SQL y Sintaxis Básica

SQL (Structured Query Language) es un lenguaje de consulta estándar diseñado para operar sobre bases de datos relacionales. Aunque en el contexto de esta asignatura se utiliza principalmente MySQL, SQL es también el lenguaje nativo de Oracle, DB2, SQL Server, PostgreSQL y muchos otros sistemas. Las principales operaciones que SQL permite llevar a cabo son:

Sintaxis básica de consulta

SELECT campos FROM tabla WHERE condición;

Estructura fundamental de consulta SQL

Siempre que se desea obtener datos de una consulta SQL se requiere: un selector de los campos que son objetivo de la búsqueda, la tabla en la que se desea buscar y las condiciones que deben cumplir los resultados. Ejemplo:

SELECT isbn FROM catalogo WHERE autor LIKE '%bryson%';

Recuperar todos los ISBN del catálogo cuyo autor sea Bryson. Los porcentajes actúan como truncamiento.

Crear una base de datos

CREATE DATABASE biblioteca;

El nombre debe estar en minúsculas, sin acentos ni símbolos; los espacios se sustituyen por guiones bajos.

Crear una tabla con campos

El diseño de la estructura de una tabla es fundamental para una buena recuperación. Se deben especificar el tipo de campo, su extensión y la codificación de caracteres:

CREATE TABLE users (
  id          INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
  name        VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  surname     VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  allvisits   LONGTEXT     CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  lastvisit   VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  lastsession VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  online      VARCHAR(50)  CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  level       VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  username    VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  password    VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  email       VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Nota: se recomienda usar utf8mb4 en lugar de utf8 para soporte completo de Unicode (incluidos emojis).

Insertar un nuevo registro

INSERT INTO users SET
  name        = 'nombre',
  surname     = 'apellidos',
  allvisits   = 'registro de todas las visitas',
  lastvisit   = 'última visita',
  lastsession = 'última sesión',
  online      = 'estado',
  level       = 'nivel de acceso',
  username    = 'nombre de usuario',
  password    = 'contraseña hasheada',
  email       = 'correo@dominio.com';
⚠️ SeguridadLas contraseñas nunca deben almacenarse en texto plano. Utiliza siempre funciones de hash seguras como PASSWORD_BCRYPT en PHP o la función SHA2() de MySQL.

Modificar y actualizar un registro

UPDATE users SET
  name    = 'nuevo nombre',
  surname = 'nuevos apellidos'
WHERE id = 42;

Eliminar un registro

DELETE FROM items WHERE id = 42;
⚠️ PrecauciónNunca ejecutes DELETE sin cláusula WHERE, pues eliminaría todos los registros de la tabla.
04

Operaciones de Consulta SQL Esenciales

En este apartado se exploran las posibilidades de consulta esenciales de SQL: el operador LIKE, el operador REGEXP (de comparación de cadenas) y los operadores booleanos AND, OR, XOR y NOT.

Operador LIKE

El operador LIKE efectúa una comparación de la cadena de consulta de forma absoluta a menos que se especifiquen caracteres comodín:

-- Busca cualquier registro cuyo título contenga "cupe"
-- (recuperación, irrecuperable, ocupe, desocupen...)
SELECT * FROM catalogo WHERE titulo LIKE '%cupe%';

-- Busca ISBN con estructura 978-84-????-???-5
SELECT * FROM catalogo WHERE isbn LIKE '978-84-____-___-5';

Operador AND ( && )

Recupera registros únicamente cuando todas las condiciones establecidas se verifican. Si alguna condición no se cumple, el registro no se incluye en los resultados.

SELECT * FROM catalogo WHERE
    titulo      LIKE '%texto%' AND
    subtitulo   LIKE '%texto%' AND
    resumen     LIKE '%texto%' AND
    descripcion LIKE '%texto%' AND
    autor       LIKE '%texto%'
LIMIT 0, 30;

Operador OR ( || )

Recupera registros cuando al menos una de las condiciones establecidas se verifica.

SELECT * FROM catalogo WHERE
    titulo      LIKE '%texto%' OR
    subtitulo   LIKE '%texto%' OR
    resumen     LIKE '%texto%' OR
    descripcion LIKE '%texto%' OR
    autor       LIKE '%texto%'
LIMIT 0, 30;

Operador XOR

Variante exclusiva del operador OR: recupera registros que cumplan una condición u otra, pero nunca ambas simultáneamente.

-- Recupera libros de arquitectura O de bibliotecas, pero no de "arquitectura de bibliotecas"
SELECT * FROM catalogo WHERE
    tematica LIKE '%arquitectura%' XOR
    tematica LIKE '%bibliotecas%'
LIMIT 0, 30;

Operador NOT ( ! )

Se utiliza como operador de negación. Permite excluir registros que contengan determinado patrón.

-- Obras de Cervantes que NO contengan "quijote" en el título
SELECT * FROM catalogo WHERE
    autor  LIKE     '%cervantes%' AND
    titulo NOT LIKE '%quijote%'
LIMIT 0, 30;

Operador REGEXP

REGEXP es un operador especializado en comparación de cadenas mediante expresiones regulares (Regular Expressions), que permiten afinar la consulta con mucha más precisión. Los caracteres especiales más comunes son:

-- Autores cuyo apellido empiece por Bal (Balzac, Balza, Balz...)
SELECT * FROM catalogo
WHERE autor REGEXP '^Bal'
LIMIT 0, 30;
📚 Referencias sobre expresiones regulares
04bis

Cláusulas SQL para Ordenar Resultados y Mostrar Valores Únicos: ORDER BY y SELECT DISTINCT

Cláusula ORDER BY

La cláusula ORDER BY se utiliza para ordenar el resultado de la consulta conforme a una o más columnas. Permite ordenar de forma ascendente (ASC), descendente (DESC) u orden natural (numérico).

-- Orden ascendente por campo3 y descendente por campo4
SELECT campo1, campo2 FROM tabla
ORDER BY campo3 ASC, campo4 DESC;

-- Ejemplo: título ascendente, fecha descendente
SELECT titulo, autor FROM catalogo
ORDER BY fecha ASC, titulo DESC;

Cuando los campos contienen valores numéricos almacenados como texto (VARCHAR), se puede forzar un orden numérico añadiendo +0 al nombre del campo:

-- Orden natural descendente (numérico) por campo1
SELECT * FROM tabla ORDER BY campo1+0 DESC;

-- Orden natural ascendente campo1 y descendente campo2
SELECT * FROM catalogo ORDER BY titulo+0 ASC, fecha+0 DESC;

Cláusula SELECT DISTINCT

La cláusula SELECT DISTINCT permite seleccionar resultados cuyo valor en los campos indicados no sea duplicado. Es útil para obtener listas de valores únicos de un campo.

-- Valores únicos de un campo
SELECT DISTINCT campo1 FROM tabla;

-- Ejemplo: autores únicos del catálogo
SELECT DISTINCT autor FROM catalogo;

-- Combinación de DISTINCT con múltiples campos y condición
SELECT DISTINCT materia, autor, titulo
FROM catalogo
WHERE fecha LIKE '%2010%';

Selecciona registros del año 2010 cuyos valores en materia, autor y título no sean duplicados entre sí.

05

Práctica 1: Experimentando con SQL

🔬 Descripción de la práctica

Aprendida la teoría esencial para efectuar consultas en MySQL, se propone la resolución de una práctica en la que se pondrán en práctica todos los conocimientos adquiridos. Se debe descargar un archivo SQL con estructura y datos correspondientes a un catálogo bibliográfico, instalarlo correctamente desde phpMyAdmin, incluir un campo de identificación autonumérico y responder a las preguntas y consultas planteadas.

06

Recuperación Avanzada con SQL: Índices FULLTEXT y TF-IDF

MySQL dispone de una serie de funciones de recuperación de información para los campos definidos como de tipo FULLTEXT. Esto significa que MySQL es capaz de indexar el texto completo de los campos que el administrador le especifique, creando internamente un fichero inverso que calcula frecuencias y elimina palabras vacías. Todo ello ocurre de manera automática en el momento en que se almacena información.

Particularidades del método FULLTEXT

Algoritmo TF-IDF en MySQL

MySQL utiliza un algoritmo de recuperación muy similar a la ponderación TF-IDF (Term Frequency — Inverse Document Frequency), una medida estadística que determina la importancia de una palabra dentro de un documento en relación con toda la colección:

TF Term Frequency Frecuencia del término en el documento × IDF Inverse Document Freq. log(N / df_t) Rareza en la colección = TF-IDF Peso del término en el documento respecto a la colección

Figura 2. Cálculo de relevancia TF-IDF en MySQL FULLTEXT

Preparar la tabla para FULLTEXT

CREATE TABLE comments (
  id        INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
  title     TEXT         CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  user      VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  date      VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  comments  LONGTEXT     CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  responses LONGTEXT     CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  indexer   LONGTEXT     CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  FULLTEXT(indexer)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

El campo indexer almacenará el contenido consolidado para indexación FULLTEXT. Se recomienda un único campo índice para mayor eficiencia.

Búsqueda a texto completo en lenguaje natural

SELECT * FROM catalogo
WHERE MATCH(indexer) AGAINST('recuperación documental');

Los resultados se clasifican automáticamente por orden de relevancia, basándose en: número de palabras del registro, palabras únicas, total de palabras en la colección y número de registros que contienen cada palabra (modelo vectorial).

Búsqueda booleana a texto completo

SELECT * FROM catalogo
WHERE MATCH(indexer)
AGAINST('+recuperacion -perdida documental >informacion <datos (biblioteca archivo) ~ruido tesis* "recuperacion de informacion"' IN BOOLEAN MODE);

Modificadores del modo booleano:

Búsqueda con expansión de consulta

Las consultas FULLTEXT también soportan el método de retroalimentación automática por relevancia (Blind Relevance Feedback). Funciona ejecutando dos consultas: la búsqueda original y una segunda búsqueda que concatena los términos de los documentos más representativos de la primera.

SELECT * FROM catalogo
WHERE MATCH(indexer)
AGAINST('recuperación información' WITH QUERY EXPANSION);

Ranking por relevancia (SCORE)

SELECT
    id,
    title,
    content,
    MATCH(indexer) AGAINST('recuperación información') AS score
FROM catalogo
WHERE MATCH(indexer) AGAINST('recuperación información')
ORDER BY score DESC;

El campo temporal score almacena el coeficiente de relevancia para ordenar los resultados de mayor a menor pertinencia.

07

Práctica 2: Consultas FULLTEXT

🔬 Descripción de la práctica

Conocida la sintaxis de consulta FULLTEXT, se propone la resolución de una práctica consistente en la experimentación con sentencias MATCH() AGAINST(). Se debe descargar un archivo SQL con estructura y datos de un servicio de información global, instalarlo correctamente desde phpMyAdmin y responder a las preguntas y consultas planteadas.

08

Práctica 3: Asentando Conocimientos de MySQL

🔬 Descripción de la práctica

Con el objetivo de asentar los conocimientos adquiridos en consulta de datos y recuperación de información, se propone el desarrollo del siguiente ejercicio. Se debe descargar el archivo SQL con estructura y datos de un servicio de información global, instalarlo desde phpMyAdmin y responder a las preguntas planteadas.

Instalación de un entorno de desarrollo local (XAMPP)

Para llevar a cabo las prácticas fuera del horario de clase, se recomienda instalar XAMPP, una distribución libre que incluye Apache HTTP, PHP, MySQL y phpMyAdmin, disponible para Windows, Linux y macOS. Es la alternativa moderna y activamente mantenida a la antigua distribución AppServ.

Sistema Operativo (Windows / Linux / macOS) Apache HTTP MySQL 8 PHP 8.x phpMyAdmin (gestión visual) Tu aplicación Navegador Web (cliente)

Figura 3. Arquitectura de una pila XAMPP/WAMP para desarrollo local

Una vez instalado XAMPP e iniciados los servicios Apache y MySQL, se accede a phpMyAdmin en: http://localhost/phpmyadmin/. En instalaciones locales el usuario y contraseña son por defecto root / root (o en blanco en XAMPP).

09

Sistemas de Clustering: Recuperación por Agrupación de Documentos

Los sistemas de clustering —o agrupación de documentos— son aquellos sistemas de recuperación que emplean algoritmos para agrupar automáticamente los documentos de una colección según sus similitudes semánticas y temáticas, sin necesidad de clasificación previa.

El concepto de categorización de documentos refiere al proceso de encontrar grupos dentro de una colección basándose en las similitudes existentes entre ellos, sin un conocimiento a priori de sus características. (GOLDENBERG, D., 2007)

Principales algoritmos de agrupación

1. Categorización por objeto

El objetivo es encontrar agrupaciones entre todos los documentos de la colección. Un porcentaje de términos relevantes de un grupo debe estar presente en todos y cada uno de los documentos que lo forman.

2. Representación vectorial

Cada documento se representa mediante vectores, caracterizados por la frecuencia de aparición de los términos más representativos. Los pasos del proceso son:

3. Similaridad documental

Consiste en medir la distancia entre los vectores de cada documento mediante:

4. Métodos jerárquicos

Emplean algoritmos que caracterizan los documentos con una estructura arbórea denominada dendrograma. A partir de la raíz (un único grupo con todos los documentos), la división por grupos se produce analizando qué documento tiene mayor similitud con otro.

5. Métodos particionales

En vez de trabajar a varios niveles para crear una estructura arbórea, se trabaja a un solo nivel. El patrón de agrupación viene dado de antemano (p. ej., el conocido algoritmo k-means).

6. Mapas auto-organizados (SOM)

También denominados sistemas de redes neuronales (Self-Organizing Maps, de Kohonen), proyectan los documentos en un espacio bidimensional preservando las relaciones de similitud.

D1 D2 D3 D4 D5 D6 D7 D8 D9 Cluster A: Biblioteconomía Cluster B: Archivística Cluster C: Documentación

Figura 4. Representación esquemática del proceso de clustering de documentos

Un ejemplo de clustering: Carrot2

Carrot2 es un sistema de recuperación basado en técnicas de agrupación de documentos y contenidos web. Uno de sus algoritmos es el método jerárquico Lingo, capaz de agrupar automáticamente resultados de búsqueda de Google o Bing.

Algoritmos disponibles en Carrot2

Opciones de visualización

Parámetros de configuración principales

📚 Bibliografía
  • FIGUEROLA, C. G.; ALONSO BERROCAL, J. L.; ZAZO RODRÍGUEZ, A. F.; RODRÍGUEZ, E. (2002). Algunas técnicas de clasificación automática de documentos.
  • GOLDENBERG, D. (2007). Categorización automática de documentos con mapas auto-organizados de Kohonen. Tesis de Magíster, ITBA.
  • OSINSKI, S.; WEISS, D. (2005). A Concept-Driven Algorithm for Clustering Search Results. IEEE Intelligent Systems, 20(3), 48–54.
10

Práctica 4: Recuperación con Carrot2

🔬 Descripción de la práctica

Las técnicas de agrupación de contenidos pueden ser de gran utilidad para la recuperación masiva de documentos y su clasificación automática. Para poner a prueba los conceptos aprendidos, se propone la resolución de una práctica basada en un caso real: recuperación de empresas especializadas en ingeniería.

11

Práctica 4bis: Recuperación con Carrot2 (modalidad online)

🔬 Descripción de la práctica

Versión alternativa de la práctica 4 para estudiantes que no dispongan de ordenador personal o no puedan instalar el programa Carrot2. Puede realizarse en los ordenadores de la facultad o desde cualquier navegador web. Se propone una práctica basada en la colección de prueba ODP239.

12

Sindicación de Contenidos y Recuperación de Información

La sindicación de contenidos —también denominada redifusión de contenidos— es una técnica ampliamente empleada para la transmisión y seguimiento de información publicada en la red. La gran cantidad de información que se genera diariamente en medios digitales hace necesario su conocimiento y explotación documental para su organización, clasificación y posterior recuperación.

Desde el punto de vista técnico, la sindicación de contenidos se basa en la generación automática de un archivo XML que describe los contenidos publicados por un sitio o sistema, incluyendo título, resumen, autor, fecha y enlace permanente de cada elemento. Este archivo —denominado feed o canal de sindicación— es generado automáticamente por el sistema publicador cada vez que se produce un nuevo contenido, y puede ser consumido por cualquier programa parser o lector de canales que comprenda el formato.

La relevancia de la sindicación de contenidos para las Ciencias de la Documentación va más allá de la mera suscripción a noticias. Sus implicaciones fundamentales son:

Comparativa de formatos de sindicación

📋 Tabla comparativa de formatos
Formato Año Base Características
RSS 0.9/0.911997–1999XML/RDFPrimera versión; solo titular y enlace
RSS 1.02000RDF/XMLBasado en RDF; extensible con módulos; orientado a la web semántica
RSS 2.02002XMLMás simple que RSS 1.0; ampliamente adoptado; soporta enclosures (podcasting)
ATOM 1.02005XML (RFC 4287)Estándar IETF; más riguroso que RSS; soporte nativo de internacionalización
MARC-XML2002XML (LOC)Equivalente XML del formato MARC 21; para registros bibliográficos y de autoridad
JSON Feed2017JSONAlternativa moderna basada en JSON; más ligero para consumo en APIs REST

MARC-XML como formato de sindicación documental

MARC-XML es el equivalente en XML del formato de intercambio bibliográfico MARC 21, desarrollado por la Biblioteca del Congreso de los Estados Unidos. Su estructura permite representar todos los campos y subcampos del formato MARC en un esquema XML válido y procesable por cualquier herramienta estándar de tratamiento XML. En el contexto de la sindicación documental, MARC-XML puede emplearse exactamente de la misma forma que RSS o ATOM: un generador produce el archivo XML con registros bibliográficos, y un parser lo consume, interpreta y almacena en la base de datos documental.

<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.loc.gov/MARC21/slim">
  <record>
    <leader>00000nam a2200000 i 4500</leader>
    <datafield tag="100" ind1="1" ind2=" ">
      <subfield code="a">Blázquez Ochando, Manuel</subfield>
    </datafield>
    <datafield tag="245" ind1="1" ind2="0">
      <subfield code="a">Aplicaciones documentales de la recuperación de información</subfield>
    </datafield>
    <datafield tag="520" ind1=" " ind2=" ">
      <subfield code="a">Recursos docentes del Máster en Gestión de la Documentación, UCM.</subfield>
    </datafield>
  </record>
</collection>

Ejemplo de registro bibliográfico en formato MARC-XML

Evolución histórica de los formatos de sindicación

1995 MCF 1997 RSS 0.9 1999 RSS 1.0 2002 RSS 2.0 2005 ATOM 1.0 2011+ JSON Feed MARC-XML Evolución de los formatos de sindicación

Figura 5. Cronograma de la evolución de los formatos de sindicación de contenidos

Cómo funciona la sindicación de contenidos

Emisor Blog / CMS / App Genera canal XML Canal de sindicación RSS 1.0 / RSS 2.0 / ATOM archivo .xml en servidor Receptor Lector RSS / Parser Interpreta XML Publica Suscripción

Figura 6. Esquema de funcionamiento de la sindicación de contenidos en el entorno web

Estructura de un canal de sindicación RSS 2.0

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Nombre del canal</title>
    <link>https://ejemplo.com</link>
    <description>Descripción del canal</description>
    <language>es</language>
    <item>
      <title>Título del artículo</title>
      <link>https://ejemplo.com/articulo</link>
      <description>Resumen o contenido completo</description>
      <pubDate>Mon, 31 Oct 2011 08:41:00 +0000</pubDate>
      <guid>https://ejemplo.com/articulo#1</guid>
    </item>
  </channel>
</rss>

Anatomía básica de un canal RSS 2.0

Para ampliar los conceptos de sindicación, se ha desarrollado un documento de referencia que explica las bases técnicas y los fundamentos sobre los que se asienta esta técnica:

Esquemas originales

Cronograma de la evolución de los formatos de sindicación

Cronograma de la evolución de los formatos de sindicación

Esquema de funcionamiento de la sindicación de contenidos en el entorno web

Esquema de funcionamiento de la sindicación de contenidos en el entorno web

Fisionomía de un canal de sindicación

Fisionomía de un canal de sindicación

13

Demostrador de Procesos de Sindicación: OrangeUP

La sindicación de contenidos es un proceso de comunicación y transmisión de datos ampliamente utilizado para efectuar el seguimiento de fuentes de información de forma sencilla y rápida. Dicho proceso requiere de programas capaces de generar canales de sindicación en formato XML y de otros capaces de leer dichos canales. Para que exista comunicación entre el emisor y el lector, ambos deben compartir y entender el lenguaje de codificación. En el caso de la sindicación, estos lenguajes derivados de XML son RSS 1.0, RSS 2.0 y ATOM.

En este punto cabe plantearse las siguientes preguntas:

Interfaz de OrangeUP, demostrador de procesos de sindicación documental

Interfaz del demostrador OrangeUP

🍊 OrangeUP — Demostrador de sindicación documental

OrangeUP es un programa demostrador desarrollado expresamente para responder a estas preguntas, explicando el funcionamiento de las técnicas de sindicación, sus formatos y sus aplicaciones en el ámbito documental. Demuestra que el proceso de sindicación funciona exactamente igual para formatos bibliográficos especializados (como MARC-XML) que para RSS o ATOM.

Acceder a OrangeUP →

14

Práctica 5: Generación de Canales de Sindicación

🔬 Descripción de la práctica

La generación de canales de sindicación es un proceso que realiza automáticamente un programa adjunto a las herramientas de publicación digital (blogs, wikis, CMS y otros sistemas). Su ejecución se activa cuando se publican nuevos contenidos, regenerando un archivo XML que porta la información del canal.

En la práctica 5 se comprobará cómo trabajan este tipo de programas, verificando que su funcionamiento es idéntico tanto para formatos de sindicación tradicionales (RSS, ATOM) como para formatos especializados (MARC-XML). Con ello se demuestra empíricamente que el emisor del canal es siempre el mismo para cualquier tipo de formato.

15

Práctica 6: Lectura y Recuperación de Canales de Sindicación

🔬 Descripción de la práctica

El segundo elemento esencial para demostrar un proceso de sindicación de contenidos es disponer de un lector de canales capaz de interpretar RSS 1.0, RSS 2.0 y ATOM. En la práctica 6 se demostrará de forma irrefutable que MARC-XML no solo puede generarse y compartirse como cualquier canal de sindicación, sino que también puede capturarse, recuperarse y leerse con un programa parser similar al utilizado para todos los demás formatos.

De esta forma se evidencia que la sindicación de contenidos puede emplearse para actividades bibliográficas, archivísticas, biblioteconómicas y documentales.

16

Sistemas de Recuperación Masiva basados en Sindicación de Contenidos

Las técnicas de lectura y recuperación de canales de sindicación hacen posible el desarrollo de una nueva generación de buscadores especializados, muy similares conceptualmente a los motores de búsqueda tradicionales (Google, Yahoo, Bing), pero muy distintos en cuanto a su alimentación contextual y corpus documental. La principal diferencia reside en la selección controlada de las fuentes de información, su descripción y recuperación de contenidos de forma exhaustiva y precisa.

Un ejemplo de este tipo de buscadores especializados es MedWorm, un motor de búsqueda biomédico que agrega contenidos de miles de canales de sindicación especializados en medicina y ciencias de la salud. Una búsqueda en MedWorm resulta mucho más productiva para médicos y especialistas clínicos que una búsqueda equivalente en Google, porque el corpus documental está cuidadosamente seleccionado.

Interfaz de MedWorm, buscador especializado biomédico basado en sindicación de contenidos

Interfaz de MedWorm — buscador especializado que agrega canales RSS/ATOM de fuentes biomédicas

Fuente 1 RSS Fuente 2 ATOM Fuente 3 RSS Fuente N … Agregador Parser RSS/ATOM Normalización Índice MySQL FULLTEXT Lucene / Solr Buscador Interfaz de búsqueda Ranking · Clustering Arquitectura de un buscador especializado basado en sindicación

Figura 7. Arquitectura de un sistema de recuperación masiva basado en sindicación de contenidos

La sindicación de contenidos es clave para las Ciencias de la Documentación no solo por su interés técnico, sino porque la mayor parte de los sitios web y sistemas de publicación digital disponen de un canal de sindicación paralelo. Esto significa que una enorme cantidad de información se genera constantemente de forma limpia, estructurada y accesible, cuyas fuentes pueden ser de gran importancia y relevancia científica.

Motores de recuperación a gran escala: Apache Lucene, Solr y Elasticsearch

Para sistemas de recuperación masiva con millones de documentos, MySQL FULLTEXT resulta insuficiente. Los motores de indexación de alto rendimiento resuelven esta limitación:

Síntesis: del canal de sindicación al sistema de recuperación completo

Todo buscador especializado de esta naturaleza emplea de forma integrada las técnicas aprendidas a lo largo de esta asignatura:

Con estos fundamentos teóricos y prácticos se asienta la base necesaria para comprender, configurar, evaluar y, en su caso, desarrollar un sistema de recuperación de información documental especializado, capaz de operar sobre grandes volúmenes de fuentes heterogéneas con precisión y exhaustividad controladas.

📚 Referencias bibliográficas finales
  • BAEZA-YATES, R.; RIBEIRO-NETO, B. (2011). Modern Information Retrieval: The Concepts and Technology behind Search. 2.ª ed. Addison-Wesley.
  • MANNING, C. D.; RAGHAVAN, P.; SCHÜTZE, H. (2008). Introduction to Information Retrieval. Cambridge University Press. Disponible en: nlp.stanford.edu/IR-book
  • BLÁZQUEZ OCHANDO, M. (2011). Sindicación de contenidos: fundamentos y aplicaciones documentales. UCM.
  • GOLDENBERG, D. (2007). Categorización automática de documentos con mapas auto-organizados de Kohonen. Tesis de Magíster, ITBA.
§

Bibliografía y Recursos de Referencia

Recuperación de información: fundamentos

Bases de datos y lenguaje SQL

Sindicación de contenidos y formatos XML

Clustering y clasificación automática

Motores de búsqueda y recuperación a gran escala

Sistemas de gestión de bibliotecas y documentación digital

Recursos en línea de referencia continua