Como procesamos los datos

Metodologia de extraccion

Pipeline transparente desde el BOE hasta los artefactos de consulta.

OpenBorme convierte el Boletin Oficial del Registro Mercantil —publicado en PDF y XML por la Agencia Estatal BOE— en un dataset estructurado, versionado y consultable. Todo el pipeline es automatico, reproducible y auditable: cualquier acto publicado puede trazarse hasta el PDF oficial del dia en que se publico. Ejecutamos el pipeline completo cada dia habil tras la publicacion matinal del BORME.

1. Ingesta diaria automatizada

Cada manana, tras la publicacion oficial (~08:00 CET), el pipeline se conecta a la API de datos abiertos del BOE y descarga:

  • Sumario XML diario del BORME con el indice de todos los actos.
  • Documentos individuales PDF y XML de las Secciones I (actos inscribibles) y II (anuncios legales).
  • Metadatos estructurales (provincia, seccion, fecha oficial, identificador BORME-A-YYYY-NNN-NN).

Los ficheros originales se conservan con su hash SHA-256 para garantizar integridad y permitir re-procesamiento si detectamos mejoras en los parsers.

2. Parsing dual PDF + XML

Dos motores especializados trabajan en paralelo sobre los documentos del dia:

  • Motor PDF (Seccion I): extrae texto plano con pdfplumber y aplica una bateria de reglas regex + heuristicas para identificar el CIF (letra de control validada), razon social, tipo de acto (nombramientos, ceses, ampliaciones, fusiones, concursales, etc.) y personas involucradas con su cargo.
  • Motor XML (Seccion II): procesa los anuncios legales estructurados directamente desde el XML oficial, donde los campos ya estan etiquetados.
  • Validador cruzado: cuando un mismo acto aparece en ambas secciones, se concilian los campos y se elige el de mayor fiabilidad (XML > PDF).

Precision medida en Seccion I: >98% en CIF, >96% en razon social, >92% en tipo de acto (auditoria semanal).

3. Normalizacion y enriquecimiento

  • CIFs: validados con el algoritmo oficial de letra de control; descartamos los malformados.
  • Nombres de empresa: normalizados (mayusculas/acentos/puntuacion), se genera un slug SEO-friendly y se detectan alias historicos (cambios de denominacion).
  • Personas: unificamos por nombre canonico + empresa + cargo para detectar a la misma persona a traves de nombramientos en varias sociedades.
  • Fechas: normalizadas a ISO-8601 y asociadas a la fecha de publicacion del BORME, no a la fecha del acto interno.
  • Provincias: inferidas del Registro Mercantil competente.

4. Generacion de artefactos

En lugar de una base de datos relacional, producimos un dataset estatico particionado (filosofia «data-as-code»):

  • Indices por prefijo de dos caracteres (in.json, te.json...) para busqueda instantanea.
  • Reportes individuales por empresa ({slug-cif}.json) y por persona con KPIs, timeline y cargos.
  • Datasets mensuales para descarga masiva (CSV y JSONL bajo CC BY 4.0).
  • Sitemaps XML particionados para indexacion por buscadores.

5. Publicacion y cache

El frontend PHP lee directamente los JSON estaticos y pre-renderiza HTML cacheado por LiteSpeed + Cloudflare. Sin base de datos en produccion: alta disponibilidad, coste marginal y tiempo de respuesta <100 ms para busqueda y <200 ms para ficha de empresa.

Garantia de trazabilidad

Todo acto listado en OpenBorme conserva el identificador oficial BORME-A-YYYY-NNN-NN y enlaza al PDF original del BOE. Si detectas un error de extraccion, puedes compararlo siempre con la fuente autoritativa y solicitar correccion a traves del canal de contacto.