Grafo second-brain — análisis desde knowledge-factory/zettelkasten

Fecha: 2026-09-19 · Proyecto: ~/nef/second-brain (rama main, 357 nodos, 75 proyectos)

Diagnóstico

Es un DAG curricular con forma de zettelkasten, no un slip-box asociativo. Vocabulario de edges 88% jerárquico (requires 250, implements 38, generalizes 28) vs. asociativo real (relates 3, contradicts 6 = 2% del total, 475 edges). requires/implements/generalizes responden “qué estudiar después de X”; relates/contradicts son los que generan síntesis nueva vía tensión entre ideas lejanas — y son casi inexistentes.

Hallazgos concretos

  1. Los 6 contradicts son el patrón de más valor y el menos usado: attention↔recurrent-neural-network, e-prop↔backpropagation, commons-governance↔late-capitalism, ironies-of-automation↔agentic-ai, technological-sovereignty↔digital-dispossession, stdp↔backpropagation. Reproducible a mano: buscar pares de dominios lejanos en tensión real.
  2. Orfandad: 55/357 nodos (15%) con edges: []. Ej: calculus, docker, database, ci-cd, distributed-systems. No es error de datos — es notas que no conversan con nada.
  3. open_questions casi sin usar: 25/357 (7%). Campo existe en el schema (diseño evergreen-note tipo Andy Matuschak: cada nota debería dejar pregunta abierta que dispare la próxima sesión) pero se llena poco. Palanca barata: llenarlo al cerrar cada nota nueva.
  4. Contaminación de atomicidad por scraping mal resuelto: content/nodes/calculus.md (título: Calculus) trae texto pegado sobre lambda calculus (colisión léxica, tema distinto). docker.md y dbt.md traen el dump crudo de página de desambiguación de Wikipedia (“Docker most often refers to: …”). Sospecha: scripts/enrich.mjs resolvió mal el artículo de Wikipedia al enriquecer. Rompe “una nota, una idea en tus propias palabras”.
  5. kind despersonalizado: 243 concept vs. 2 person, 2 experiment, 2 dataset (de 357). Casi no hay nodos de autor/paper como entidad de primera clase — no hay quién-dijo-qué ni desacuerdo entre autoridades.
  6. Hubs sanos (in-degree): statistics (25), model-evaluation (23), neural-network (18) — cimientos correctos, sin sorpresas.

Qué haría distinto (no ejecutado, para decidir)

  • Cada sesión de estudio: cerrar la nota nueva con 1 open_question y buscar activamente 1 par contradicts/relates cruzando dominios (técnico ↔ político, biológico ↔ artificial) en vez de solo encadenar requires.
  • Revisar y limpiar los nodos con dump de Wikipedia mal resuelto (docker.md, dbt.md, calculus.md al menos; grep "most often refers to\|may refer to:" sobre content/nodes/*.md para encontrar más).
  • Los 55 huérfanos: no forzar edges por completar métricas — solo los que tengan una conexión real y no encontrada todavía.