Metodología
Fuentes Oficiales
Congreso de los Diputados
Open Data JSON con biografías. Patrón: odsDiputadosXX__*.json
https://www.congreso.es/webpublica/opendata/diputados/Senado
XML con fichas individuales. tipoFich=10 (lista) + tipoFich=1 (ficha)
https://www.senado.es/web/ficopendataservlet?tipoFich=10&legis=15Investigación con IA
Cuando las fuentes oficiales no incluyen información educativa o profesional, usamos Perplexity AI (modelo sonar) para investigar en tiempo real:
- →Wikipedia (español, catalán, euskera, gallego)
- →LinkedIn y perfiles profesionales
- →Webs de partidos políticos
- →Portales municipales y autonómicos
- →Hemerotecas y medios de comunicación
La IA busca datos verificables con fuentes citables. Los resultados se revisan antes de incorporarse.
Trazabilidad
Cada parlamentario tiene un campo source:
Clasificaciones
Nivel Educativo
UniversitarioUniversitario_inferidoFP_TecnicoSecundarioEstudios_incompletosNo_constaCategoría Profesional
Profesional_liberalFuncionarioEmpresarioPoliticaOficinaManualNo_constaActualización Automática
Cron mensual: Sincroniza con APIs oficiales de Congreso y Senado
Detección: Nuevos parlamentarios, bajas y cambios en composición
Bajas: Senadores que causan baja se mantienen con estado: baja
Investigación: Perplexity AI para perfiles sin datos educativos (cooldown 30 días)
Endpoint: /api/cron/check-updates
Por qué 1.257 parlamentarios
Nuestro dataset incluye parlamentarios de dos legislaturas históricamente significativas:
350 diputados
265 senadores
615 total
Primera legislatura democrática tras la Transición.
350 diputados
273 senadores activos
19 senadores (bajas)
642 total
Legislatura actual, actualizada mensualmente.
615 + 642 = 1.257 parlamentarios
Permitiendo comparación histórica: primera democracia vs. actualidad.
Calidad de Datos
Cada parlamentario pasa por un proceso de validación automática que detecta:
Duplicados
Detectamos entradas duplicadas por nombre exacto y por similitud fonética.
Conflictos entre fuentes
Cuando Congreso, Senado y Perplexity reportan datos diferentes para el mismo campo.
Inconsistencias lógicas
Profesiones que requieren título pero educación aparece como "No consta".
Metadatos de bajas
Senadores marcados como "baja" deben tener fecha y sustituto registrado.
El sistema genera un informe de calidad con métricas de cobertura (% de datos completos) y lista de conflictos a revisar.
Tracking Multi-Fuente
Cada dato de educación y profesión se registra con su fuente original. Un parlamentario puede tener múltiples entradas de diferentes fuentes:
congresosenadoperplexity{
"data_sources": [
{
"source": "congreso",
"field": "estudios",
"raw_text": "Licenciado en Derecho",
"extracted_at": "2025-01-15T10:30:00Z"
},
{
"source": "perplexity",
"field": "profesion",
"raw_text": "Abogado del Estado",
"extracted_at": "2025-01-20T14:00:00Z",
"citations": ["https://..."]
}
]
}Esto permite auditar de dónde viene cada dato y detectar conflictos cuando las fuentes no coinciden.
Normalización Educativa (3 niveles)
España ha tenido múltiples sistemas educativos. Normalizamos todo a tres niveles:
| Nivel | Descripción | Ejemplo |
|---|---|---|
original | Texto exacto de la fuente | "Licenciado en Derecho por la UCM" |
normalized | Sistema educativo actual | "Licenciatura" |
simplified | Categoría amplia | "Universitaria" |
Mapeo histórico
Reconocemos terminología de diferentes épocas:
Categorías normalizadas
Inferencia Educación-Profesión
Cuando falta el dato de educación pero conocemos la profesión, podemos inferir el nivel educativo requerido.
Reglas de inferencia
Las inferencias no se aplican automáticamente. Se almacenan con su nivel de confianza para revisión humana antes de incorporarse al dataset.
{
"education_inference": {
"inferred_education": "Licenciado en Derecho",
"inference_rule": "profession_requires_degree",
"confidence": 0.95,
"applied": false,
"reviewed_by": null,
"approved": null
}
}