Lombardi
De Casiopea

Lombardi
| Autor | Herbert Spencer |
|---|---|
| Ámbito Geográfico | Internacional |
| Período | 2026- |
| Palabras Clave | visualización, noticias, grafo, semántica, controversias |
| Oficios | Diseño |
| Área de Investigación | Forma, Cultura y Tecnología |
| Materialidad | software |
| URL | https://github.com/hspencer/lombardi |
| Descripción | Ingestor y visualizador de noticias |
Sentido de la obra
Lombardi es un grafo de eventos federado para mapear controversias y relaciones actor–evento–lugar en tiempo casi real. Persigue claridad ontológica y trazabilidad de evidencias para explorar debates públicos sin depender de una fuente única de verdad.
Necesidad que aborda
- Seguimiento de controversias geopolíticas y sociales con provenance explícito (fuentes, citas, fechas) y control de ambigüedad.
- Descubrimiento semántico asistido por LLM con restricciones ontológicas para evitar relaciones inválidas.
- Federar eventos, actores y ubicaciones con sincronización robusta y capacidad de auditoría.
Ontología (núcleo)
- Evento: id, name, event_type, date, source_url, evidence_quote, is_disputed.
- Actor: id, name, type, description; relaciones con eventos.
- Lugar (ubicación): actores tipo location; relación clave UBICADO_EN.
- Aristas principales (dirigidas): PARTICIPA (actor → evento), CAUSA, ACTUALIZA, CONTRADICE, DESMIENTE, COMPLEMENTA, PERTENECE_A, UBICADO_EN.
- Controversias: nodos con is_disputed = true; vistas especializadas muestran solo aristas de disputa/contradicción.
Arquitectura resumida
- Backend: Node.js + PostgreSQL + Apache AGE (property graph). Ingesta, extracción, descubrimiento y resolución en scripts backend.
- Frontend: mapa temporal/espacial con toggles de controversia y verificación; vista "event landscape" (jerarquía CONTIENE, deduplicación semántica, side-picking).
- Especificaciones Allium (carpeta spec): controversy-model.allium, controversy-toggle.allium, event-landscape.allium, batch-ingestion.allium.
- Documentación: docs/modelo-de-datos.md, docs/controversias.md, docs/fase1-implementacion.md, docs/oauth-setup.md.
Flujos clave
- Ingesta de noticias
- RSS a tabla news_raw; extracción (Claude/Ollama) genera nodos Evento y Actor con relaciones PARTICIPA, is_disputed, fecha, evidence_quote y source_url.
- Descubrimiento semántico
- /api/node/discover busca vecinos, alias, co-ocurrencias y relaciones sugeridas por LLM bajo la ontología.
- Modo controversias
- Filtra nodos is_disputed y aristas de disputa (CONTRADICE, DESMIENTE, etc.) para focalizar debates activos.
- Landscape de eventos
- Vista jerárquica CONTIENE, deduplicación semántica y comparación de narrativas (side-picking).
Diseño ontológico (detalle)
- Identidad: id estable por entidad; deduplicación por alias y co-ocurrencia.
- Provenance: cada evento enlaza a source_url y evidence_quote; fechas se backfillean desde news_raw si faltan.
- Tipos de aristas recomendados por contexto:
- Focal Evento: PARTICIPA, CAUSA, ACTUALIZA, CONTRADICE, DESMIENTE, COMPLEMENTA, UBICADO_EN.
- Focal Actor: PARTICIPA, PERTENECE_A, UBICADO_EN, COMPLEMENTA, CAUSA, CONTRADICE, DESMIENTE, ACTUALIZA.
- Focal Location: UBICADO_EN, PARTICIPA, COMPLEMENTA.
Referencias
- Repositorio: https://github.com/hspencer/lombardi
- Especificaciones Allium: carpeta spec del repo.
- Modelo de datos y controversias: docs/modelo-de-datos.md, docs/controversias.md.
Estado
- Rama main incluye modos de controversia y event landscape.
- Informe de brechas (branch claw): pendiente restringir edge types por tipo de focal, evitar duplicación de eventos focales en extracción, reabsorber ubicaciones (UBICADO_EN), co-ocurrencia especializada de eventos por actores compartidos y backfill resiliente.