How 55,154 records from 20 open sources became an auditable quadrilingual platform.
The decisions shared by the three registers (Portugal, France, Spain) and the common AAT ontology are explained on a separate page, in five languages. Common methodology →
No existe un CSV nacional: 20 agentes de investigación verificaron por HTTP los portales de datos abiertos de 19 territorios (17 comunidades autónomas + Ceuta + Melilla) y el endpoint BICA del Ministerio; tabla viva en tools/fuentes.csv. Agregación multi-fuente con licencia por CCAA y lagunas publicadas (Mallorca, Menorca, Formentera, La Rioja general, Ceuta y Melilla; Múrcia, Gran Canaria y La Palma pendientes de licencia).
20 scripts tools/ingest_*.py, cada uno con prueba de recuento contra las cifras reales verificadas y guarda de límites geográficos por CCAA. Defectos de fuente detectados y corregidos (documentados): columnas UTM intercambiadas (GVA), duplicación sistemática ×2 (País Vasco), miles con puntos en el ODS de Galicia («4.697.704»), geometrías inválidas (Castilla y León), fila-residuo del XLSX de Extremadura. Euskadi: la clave FICHA_NUME+EUSTAT solo es única dentro de cada capa del servicio (construido/arqueológico) y borraba bienes arqueológicos reales como falsos duplicados; se deduplica por el número de ficha Ondarea.
build_dataset.py funde los 20 intermedios en 55.154 registros (25.132 BIC y 30.022 del inventario andaluz, marcados «inventariado») con claves únicas globales validadas; provincias con nombres canónicos INE (50 + Ceuta + Melilla); inventario de categorías brutas (t1) como entrada del vocabulario.
Los 77 valores brutos se canonicalizan en 24 categorías de display (los filtros conservan el valor bruto); traducciones ES/EN/DE/PT con fuentes; 12 alineamientos al Getty AAT (con semillas FR/PT) verificados mediante fetch_aat_es.py (46 sondas SPARQL).
52 provincias (es-atlas / IGN, CC BY 4.0); prepare_map_points.py pre-filtra en la build: 29.990 puntos georreferenciados (PIP o <15 km) y 4 628 provincias rellenadas por PIP donde la fuente no las aportaba. Andalucía (IAPH) entra sin coordenadas.
Motor multi-país (docs/design-meta-site.md): un único motor con configuración y datos por país; 69 páginas estáticas × 4 idiomas (ES/EN/DE/PT), datos client-side sin pérdida SEO.
Un vocabulario controlado de 39 tipologías (cuatro lenguas + alineamiento Getty AAT verificado) se asigna al 95% de los registros. Como ninguna fuente abierta española trae tipología de edificio, la asignación es derivada: valores exactos de las fuentes cuando existen (Navarra «Dolmen», Cataluña «Castell»…), heurísticas del nombre con reglas explícitas de cabecera, topónimos de relieve y falsos amigos («Casa cueva» es casa; «Cerro del Castillo» es yacimiento), y reservas por categoría arqueológica/conjunto/jardín. Una auditoría por LLM (825 registros, dos rondas) midió la precisión; los resultados y las reglas quedan en tools/typology_es.json y raw/typology_audit/.
Las fechas de construcción (3% de los registros) vienen por tres vías, por este orden: campos de las fuentes (CLM «S. XVI», periodos de Asturias, texto de Cantabria), Wikidata P571 y pistas inequívocas del nombre («románico» = S. XI-XIII). Siglos a. C. quedan en eras arqueológicas y no en siglos numéricos; cada valor lleva proveniencia y no se toca el temporal de la protección. Con más cobertura de fechas de construcción de los BIC, el ES podría sumarse a los gráficos de siglos de la comparación entre países.
En preparación: cruce con Wikidata P808, fotografías, fechas de protección normalizadas, dumps citables multi-licencia, SKOS, /api/ y comparación triangular ES·FR·PT; la auditoría de fidelidad cierra el ciclo.
Partial coverage: BIC from open sources in 18 autonomous communities (Murcia, Gran Canaria and La Palma pending licence) and, for Andalusia, the IAPH inventory (30,022 records), which mixes BIC with merely inventoried assets and has no field to tell them apart: they are published as "inventoried", with 4,598 IAPH locator points and 971 from Wikidata (17,579 assets with only a municipal circle), and outside the country comparison. Persons not yet extracted; materials without data (network replaced by Category ↔ Denomination); dating by century only partial: most records carry protection dates.
None of the Spanish open data sources publishes a building typology field (the Portuguese SIPA does; the Spanish sources do not). Every typology was assigned only when there is evidence: first exact source values where they exist (Navarra «Dolmen», Castilla y León «HÓRREOS Y PALLOZAS»), then name heuristics with explicit rules (the head of the name decides, relief toponyms do not count, false friends resolved: «Casa cueva» is a house, «Cerro del Castillo» is an archaeological site), then Wikidata P31, and finally category-based reserves. When no rule decides, the field stays empty: honest emptiness over error. Quality is not claimed, it is measured: an LLM audit (825 records in a stratified sample, two rounds, agents that only see the name and source fields) produced per-record verdicts, failing rules were corrected and affected typologies were re-audited with a fresh sample. Rules, patterns and tests live in tools/typology_es.json and tools/build_typology_es.py; the same heuristic-plus-LLM-audit combination was applied to construction chronology.
A panel of 8 agents will audit site↔source fidelity over the entire population once the dataset is stable; reports will be published on this page.
Download the audit reports — informes de auditoría (próximamente)
El dataset agrega 20 fuentes abiertas, cada una con su licencia; los dumps respetarán la licencia original por fuente. Detalle por territorio en tools/fuentes.csv y docs/fuentes/; fallback para lagunas: BICA (Ministerio de Cultura).
Autonomous sources carry protection acts and dates in heterogeneous formats (decree, resolution, BOE/BOC/BOPA…); normalised agent extraction is planned as its own phase.